From 9ccf7d7a2bedae22e20a07e447a5123bb48318d5 Mon Sep 17 00:00:00 2001 From: cvs2svn <> Date: Thu, 28 Feb 2002 13:50:42 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'predaemon'. Sprout from master 2002-02-28 13:50:41 UTC Robert Collins '2002-02-28 Robert Collins ' Delete: COPYING COPYING.LIB COPYING.NEWLIB ChangeLog MAINTAINERS Makefile.in README README-maintainer-mode config-ml.in config.guess config.if config.sub config/ChangeLog config/acinclude.m4 config/mh-a68bsd config/mh-aix386 config/mh-apollo68 config/mh-armpic config/mh-cxux config/mh-cygwin config/mh-decstation config/mh-delta88 config/mh-dgux config/mh-dgux386 config/mh-djgpp config/mh-elfalphapic config/mh-hp300 config/mh-hpux config/mh-hpux8 config/mh-i370pic config/mh-ia64pic config/mh-interix config/mh-irix4 config/mh-irix5 config/mh-irix6 config/mh-lynxos config/mh-lynxrs6k config/mh-m68kpic config/mh-mingw32 config/mh-ncr3000 config/mh-ncrsvr43 config/mh-necv4 config/mh-openedition config/mh-papic config/mh-ppcpic config/mh-riscos config/mh-s390pic config/mh-sco config/mh-solaris config/mh-sparcpic config/mh-sun3 config/mh-sysv config/mh-sysv4 config/mh-sysv5 config/mh-vaxult2 config/mh-x86pic config/mpw-mh-mpw config/mpw/ChangeLog config/mpw/MoveIfChange config/mpw/README config/mpw/forward-include config/mpw/g-mpw-make.sed config/mpw/mpw-touch config/mpw/mpw-true config/mpw/null-command config/mpw/open-brace config/mpw/tr-7to8-src config/mpw/true config/mt-aix43 config/mt-armpic config/mt-d30v config/mt-elfalphapic config/mt-i370pic config/mt-ia64pic config/mt-linux config/mt-m68kpic config/mt-netware config/mt-ospace config/mt-papic config/mt-ppcpic config/mt-s390pic config/mt-sparcpic config/mt-v810 config/mt-wince config/mt-x86pic configure configure.in djunpack.bat etc/ChangeLog etc/Makefile.in etc/add-log.el etc/add-log.vi etc/configbuild.ein etc/configbuild.fig etc/configbuild.jin etc/configbuild.tin etc/configdev.ein etc/configdev.fig etc/configdev.jin etc/configdev.tin etc/configure etc/configure.in etc/configure.texi etc/fdl.texi etc/make-stds.texi etc/standards.texi etc/texi2pod.pl gettext.m4 include/COPYING include/ChangeLog include/MAINTAINERS include/alloca-conf.h include/ansidecl.h include/aout/ChangeLog include/aout/adobe.h include/aout/aout64.h include/aout/ar.h include/aout/dynix3.h include/aout/encap.h include/aout/host.h include/aout/hp.h include/aout/hp300hpux.h include/aout/hppa.h include/aout/ranlib.h include/aout/reloc.h include/aout/stab.def include/aout/stab_gnu.h include/aout/sun4.h include/bfdlink.h include/bin-bugs.h include/bout.h include/callback.h include/coff/ChangeLog include/coff/a29k.h include/coff/alpha.h include/coff/apollo.h include/coff/arm.h include/coff/aux-coff.h include/coff/ecoff.h include/coff/external.h include/coff/go32exe.h include/coff/h8300.h include/coff/h8500.h include/coff/i386.h include/coff/i860.h include/coff/i960.h include/coff/ia64.h include/coff/internal.h include/coff/m68k.h include/coff/m88k.h include/coff/mcore.h include/coff/mips.h include/coff/mipspe.h include/coff/or32.h include/coff/pe.h include/coff/powerpc.h include/coff/rs6000.h include/coff/rs6k64.h include/coff/sh.h include/coff/sparc.h include/coff/sym.h include/coff/symconst.h include/coff/ti.h include/coff/tic30.h include/coff/tic54x.h include/coff/tic80.h include/coff/w65.h include/coff/we32k.h include/coff/xcoff.h include/coff/z8k.h include/demangle.h include/dis-asm.h include/dyn-string.h include/elf/ChangeLog include/elf/alpha.h include/elf/arc.h include/elf/arm.h include/elf/avr.h include/elf/common.h include/elf/cris.h include/elf/d10v.h include/elf/d30v.h include/elf/dwarf.h include/elf/dwarf2.h include/elf/external.h include/elf/fr30.h include/elf/h8.h include/elf/hppa.h include/elf/i370.h include/elf/i386.h include/elf/i860.h include/elf/i960.h include/elf/ia64.h include/elf/internal.h include/elf/m32r.h include/elf/m68hc11.h include/elf/m68k.h include/elf/mcore.h include/elf/mips.h include/elf/mmix.h include/elf/mn10200.h include/elf/mn10300.h include/elf/openrisc.h include/elf/or32.h include/elf/pj.h include/elf/ppc.h include/elf/reloc-macros.h include/elf/s390.h include/elf/sh.h include/elf/sparc.h include/elf/v850.h include/elf/x86-64.h include/elf/xstormy16.h include/fibheap.h include/filenames.h include/floatformat.h include/fnmatch.h include/fopen-bin.h include/fopen-same.h include/fopen-vms.h include/gdbm.h include/getopt.h include/hashtab.h include/hp-symtab.h include/ieee.h include/libiberty.h include/md5.h include/mpw/ChangeLog include/mpw/README include/mpw/dir.h include/mpw/dirent.h include/mpw/fcntl.h include/mpw/grp.h include/mpw/mpw.h include/mpw/pwd.h include/mpw/spin.h include/mpw/stat.h include/mpw/sys/file.h include/mpw/sys/param.h include/mpw/sys/resource.h include/mpw/sys/stat.h include/mpw/sys/time.h include/mpw/sys/types.h include/mpw/utime.h include/mpw/varargs.h include/nlm/ChangeLog include/nlm/alpha-ext.h include/nlm/common.h include/nlm/external.h include/nlm/i386-ext.h include/nlm/internal.h include/nlm/ppc-ext.h include/nlm/sparc32-ext.h include/oasys.h include/objalloc.h include/obstack.h include/opcode/ChangeLog include/opcode/a29k.h include/opcode/alpha.h include/opcode/arc.h include/opcode/arm.h include/opcode/avr.h include/opcode/cgen.h include/opcode/convex.h include/opcode/cris.h include/opcode/d10v.h include/opcode/d30v.h include/opcode/h8300.h include/opcode/hppa.h include/opcode/i370.h include/opcode/i386.h include/opcode/i860.h include/opcode/i960.h include/opcode/ia64.h include/opcode/m68hc11.h include/opcode/m68k.h include/opcode/m88k.h include/opcode/mips.h include/opcode/mmix.h include/opcode/mn10200.h include/opcode/mn10300.h include/opcode/np1.h include/opcode/ns32k.h include/opcode/or32.h include/opcode/pdp11.h include/opcode/pj.h include/opcode/pn.h include/opcode/ppc.h include/opcode/pyr.h include/opcode/s390.h include/opcode/sparc.h include/opcode/tahoe.h include/opcode/tic30.h include/opcode/tic54x.h include/opcode/tic80.h include/opcode/v850.h include/opcode/vax.h include/os9k.h include/partition.h include/progress.h include/regs/ChangeLog include/remote-sim.h include/safe-ctype.h include/sim-d10v.h include/sort.h include/splay-tree.h include/symcat.h include/ternary.h include/xregex.h include/xregex2.h install-sh libgloss/ChangeLog libgloss/Makefile.in libgloss/README libgloss/arm/Makefile.in libgloss/arm/coff-iq80310.specs libgloss/arm/coff-redboot.ld libgloss/arm/coff-redboot.specs libgloss/arm/configure libgloss/arm/configure.in libgloss/arm/elf-iq80310.specs libgloss/arm/elf-redboot.ld libgloss/arm/elf-redboot.specs libgloss/arm/redboot-crt0.S libgloss/arm/redboot-syscalls.c libgloss/close.c libgloss/config/default.mh libgloss/config/default.mt libgloss/config/dos.mh libgloss/config/mips.mt libgloss/config/mn10200.mt libgloss/config/mn10300.mt libgloss/config/ppc.mh libgloss/configure libgloss/configure.in libgloss/d30v/Makefile.in libgloss/d30v/configure libgloss/d30v/configure.in libgloss/d30v/crt0.S libgloss/d30v/inbyte.c libgloss/d30v/outbyte.c libgloss/d30v/syscalls.c libgloss/debug.c libgloss/debug.h libgloss/doc/Makefile.in libgloss/doc/configure libgloss/doc/configure.in libgloss/doc/porting.texi libgloss/fr30/Makefile.in libgloss/fr30/configure libgloss/fr30/configure.in libgloss/fr30/crt0.s libgloss/fr30/syscalls.c libgloss/fstat.c libgloss/getpid.c libgloss/glue.h libgloss/hp74x/Makefile.in libgloss/hp74x/README libgloss/hp74x/checksum.c libgloss/hp74x/configure libgloss/hp74x/configure.in libgloss/hp74x/crt0.s libgloss/hp74x/debugger.h libgloss/hp74x/debugger.s libgloss/hp74x/diagnose.h libgloss/hp74x/hppa-defs.h libgloss/hp74x/hppa.ld libgloss/hp74x/io.c libgloss/hp74x/iva_table.h libgloss/hp74x/iva_table.s libgloss/hp74x/pa_stub.c libgloss/hp74x/test.c libgloss/i386/Makefile.in libgloss/i386/configure libgloss/i386/configure.in libgloss/i386/cygmon-crt0.S libgloss/i386/cygmon-gmon.c libgloss/i386/cygmon-gmon.h libgloss/i386/cygmon-salib.c libgloss/i386/cygmon-syscall.h libgloss/i386/cygmon.ld libgloss/i960/Makefile.in libgloss/i960/asm.h libgloss/i960/configure libgloss/i960/configure.in libgloss/i960/crt0.c libgloss/i960/mon-read.c libgloss/i960/mon-syscalls.S libgloss/i960/mon-write.c libgloss/i960/mon960.c libgloss/i960/mon960.ld libgloss/i960/syscall.h libgloss/isatty.c libgloss/kill.c libgloss/libnosys/Makefile.in libgloss/libnosys/acconfig.h libgloss/libnosys/close.c libgloss/libnosys/config.h.in libgloss/libnosys/configure libgloss/libnosys/configure.in libgloss/libnosys/environ.c libgloss/libnosys/execve.c libgloss/libnosys/fork.c libgloss/libnosys/fstat.c libgloss/libnosys/getpid.c libgloss/libnosys/gettod.c libgloss/libnosys/isatty.c libgloss/libnosys/kill.c libgloss/libnosys/link.c libgloss/libnosys/lseek.c libgloss/libnosys/open.c libgloss/libnosys/read.c libgloss/libnosys/sbrk.c libgloss/libnosys/stat.c libgloss/libnosys/times.c libgloss/libnosys/unlink.c libgloss/libnosys/wait.c libgloss/libnosys/warning.h libgloss/libnosys/write.c libgloss/lseek.c libgloss/m32r/Makefile.in libgloss/m32r/chmod.c libgloss/m32r/close.c libgloss/m32r/configure libgloss/m32r/configure.in libgloss/m32r/crt0.S libgloss/m32r/eit.h libgloss/m32r/eva-stub.ld libgloss/m32r/eva.ld libgloss/m32r/exit.c libgloss/m32r/fstat.c libgloss/m32r/getpid.c libgloss/m32r/isatty.c libgloss/m32r/kill.c libgloss/m32r/lseek.c libgloss/m32r/m32r-lib.c libgloss/m32r/mon.specs libgloss/m32r/open.c libgloss/m32r/raise.c libgloss/m32r/read.c libgloss/m32r/sbrk.c libgloss/m32r/stat.c libgloss/m32r/trap0.S libgloss/m32r/trapmon0.c libgloss/m32r/unlink.c libgloss/m32r/utime.c libgloss/m32r/write.c libgloss/m68k/Makefile.in libgloss/m68k/README libgloss/m68k/asm.h libgloss/m68k/bcc.ld libgloss/m68k/configure libgloss/m68k/configure.in libgloss/m68k/cpu32bug.S libgloss/m68k/cpu32bug.h libgloss/m68k/crt0.S libgloss/m68k/dbug-exit.S libgloss/m68k/dbug-inbyte.S libgloss/m68k/dbug-outbyte.S libgloss/m68k/dtor.C libgloss/m68k/idp-inbyte.c libgloss/m68k/idp-outbyte.c libgloss/m68k/idp.ld libgloss/m68k/idpgdb.ld libgloss/m68k/leds.c libgloss/m68k/leds.h libgloss/m68k/mc68681reg.h libgloss/m68k/mc68ec.c libgloss/m68k/mvme-stub.c libgloss/m68k/mvme.S libgloss/m68k/mvme135-asm.S libgloss/m68k/mvme135.ld libgloss/m68k/mvme162.ld libgloss/m68k/mvme162lx-asm.S libgloss/m68k/sbc5204.ld libgloss/m68k/sbc5206.ld libgloss/m68k/sim-abort.c libgloss/m68k/sim-crt0.S libgloss/m68k/sim-errno.c libgloss/m68k/sim-funcs.c libgloss/m68k/sim-inbyte.c libgloss/m68k/sim-print.c libgloss/m68k/sim-sbrk.c libgloss/m68k/sim.ld libgloss/m68k/simulator.S libgloss/m68k/test.c libgloss/mcore/Makefile.in libgloss/mcore/close.c libgloss/mcore/cmb-exit.c libgloss/mcore/cmb-inbyte.c libgloss/mcore/cmb-outbyte.c libgloss/mcore/configure libgloss/mcore/configure.in libgloss/mcore/crt0.S libgloss/mcore/elf-cmb.ld libgloss/mcore/elf-cmb.specs libgloss/mcore/fstat.c libgloss/mcore/getpid.c libgloss/mcore/kill.c libgloss/mcore/lseek.c libgloss/mcore/open.c libgloss/mcore/pe-cmb.ld libgloss/mcore/pe-cmb.specs libgloss/mcore/print.c libgloss/mcore/putnum.c libgloss/mcore/raise.c libgloss/mcore/read.c libgloss/mcore/sbrk.c libgloss/mcore/stat.c libgloss/mcore/syscalls.S libgloss/mcore/unlink.c libgloss/mcore/write.c libgloss/mips/Makefile.in libgloss/mips/array-io.c libgloss/mips/array.ld libgloss/mips/cma101.c libgloss/mips/configure libgloss/mips/configure.in libgloss/mips/crt0.S libgloss/mips/ddb-kseg0.ld libgloss/mips/ddb.ld libgloss/mips/dtor.C libgloss/mips/dve.ld libgloss/mips/dvemon.c libgloss/mips/entry.S libgloss/mips/idt.ld libgloss/mips/idt32.ld libgloss/mips/idt64.ld libgloss/mips/idtecoff.ld libgloss/mips/idtmon.S libgloss/mips/jmr3904-io.c libgloss/mips/jmr3904app-java.ld libgloss/mips/jmr3904app.ld libgloss/mips/jmr3904dram-java.ld libgloss/mips/jmr3904dram.ld libgloss/mips/lsi.ld libgloss/mips/lsi33k-stub.c libgloss/mips/lsi33k-stub.h libgloss/mips/lsipmon.S libgloss/mips/nullmon.c libgloss/mips/nullmon.ld libgloss/mips/pmon.S libgloss/mips/pmon.ld libgloss/mips/regs.S libgloss/mips/syscalls.c libgloss/mips/test.c libgloss/mips/vr4300.S libgloss/mips/vr5xxx.S libgloss/mn10200/Makefile.in libgloss/mn10200/_exit.c libgloss/mn10200/access.c libgloss/mn10200/chmod.c libgloss/mn10200/chown.c libgloss/mn10200/close.c libgloss/mn10200/configure libgloss/mn10200/configure.in libgloss/mn10200/creat.c libgloss/mn10200/crt0.S libgloss/mn10200/crt1.c libgloss/mn10200/eval.ld libgloss/mn10200/execv.c libgloss/mn10200/execve.c libgloss/mn10200/fork.c libgloss/mn10200/fstat.c libgloss/mn10200/getpid.c libgloss/mn10200/gettime.c libgloss/mn10200/isatty.c libgloss/mn10200/kill.c libgloss/mn10200/lseek.c libgloss/mn10200/open.c libgloss/mn10200/pipe.c libgloss/mn10200/read.c libgloss/mn10200/sbrk.c libgloss/mn10200/sim.ld libgloss/mn10200/stat.c libgloss/mn10200/test.c libgloss/mn10200/time.c libgloss/mn10200/times.c libgloss/mn10200/trap.S libgloss/mn10200/trap.h libgloss/mn10200/unlink.c libgloss/mn10200/utime.c libgloss/mn10200/wait.c libgloss/mn10200/write.c libgloss/mn10300/Makefile.in libgloss/mn10300/_exit.c libgloss/mn10300/access.c libgloss/mn10300/chmod.c libgloss/mn10300/chown.c libgloss/mn10300/close.c libgloss/mn10300/configure libgloss/mn10300/configure.in libgloss/mn10300/creat.c libgloss/mn10300/crt0-eval.S libgloss/mn10300/crt0.S libgloss/mn10300/crt0_cygmon.S libgloss/mn10300/crt0_redboot.S libgloss/mn10300/crt1.c libgloss/mn10300/cygmon.c libgloss/mn10300/eval.ld libgloss/mn10300/execv.c libgloss/mn10300/execve.c libgloss/mn10300/fork.c libgloss/mn10300/fstat.c libgloss/mn10300/getpid.c libgloss/mn10300/gettime.c libgloss/mn10300/isatty.c libgloss/mn10300/kill.c libgloss/mn10300/lseek.c libgloss/mn10300/open.c libgloss/mn10300/pipe.c libgloss/mn10300/read.c libgloss/mn10300/sbrk.c libgloss/mn10300/sim.ld libgloss/mn10300/stat.c libgloss/mn10300/test.c libgloss/mn10300/time.c libgloss/mn10300/times.c libgloss/mn10300/trap.S libgloss/mn10300/trap.h libgloss/mn10300/unlink.c libgloss/mn10300/utime.c libgloss/mn10300/wait.c libgloss/mn10300/write.c libgloss/open.c libgloss/pa/Makefile.in libgloss/pa/README libgloss/pa/configure libgloss/pa/configure.in libgloss/pa/crt0.S libgloss/pa/hp-milli.s libgloss/pa/op50n-io.S libgloss/pa/op50n.h libgloss/pa/op50n.ld libgloss/pa/op50nled.c libgloss/pa/setjmp.S libgloss/pa/test.c libgloss/pa/w89k-io.c libgloss/pa/w89k.h libgloss/pa/w89k.ld libgloss/print.c libgloss/putnum.c libgloss/read.c libgloss/rs6000/Makefile.in libgloss/rs6000/ads-exit.S libgloss/rs6000/ads-io.c libgloss/rs6000/ads.ld libgloss/rs6000/configure libgloss/rs6000/configure.in libgloss/rs6000/crt0.S libgloss/rs6000/mbx-exit.c libgloss/rs6000/mbx-inbyte.c libgloss/rs6000/mbx-outbyte.c libgloss/rs6000/mbx-print.c libgloss/rs6000/mbx.ld libgloss/rs6000/mbx.specs libgloss/rs6000/mcount.S libgloss/rs6000/mvme-errno.c libgloss/rs6000/mvme-exit.S libgloss/rs6000/mvme-inbyte.S libgloss/rs6000/mvme-outbyte.S libgloss/rs6000/mvme-print.c libgloss/rs6000/mvme-read.c libgloss/rs6000/sim-abort.c libgloss/rs6000/sim-crt0.S libgloss/rs6000/sim-errno.c libgloss/rs6000/sim-inbyte.c libgloss/rs6000/sim-print.c libgloss/rs6000/sim-sbrk.c libgloss/rs6000/simulator.S libgloss/rs6000/sol-cfuncs.c libgloss/rs6000/sol-syscall.S libgloss/rs6000/test.c libgloss/rs6000/yellowknife.ld libgloss/sbrk.c libgloss/sh/sh1lcevb.ld libgloss/sh/sh2lcevb.ld libgloss/sh/sh3bb.ld libgloss/sh/sh3lcevb.ld libgloss/sparc/Makefile.in libgloss/sparc/asm.h libgloss/sparc/cache.c libgloss/sparc/configure libgloss/sparc/configure.in libgloss/sparc/crt0-701.S libgloss/sparc/crt0.S libgloss/sparc/cygmon-crt0.S libgloss/sparc/cygmon-salib.c libgloss/sparc/cygmon-sparc64-ld.src libgloss/sparc/cygmon.ld.src libgloss/sparc/dtor.C libgloss/sparc/elfsim.ld libgloss/sparc/erc32-crt0.S libgloss/sparc/erc32-io.c libgloss/sparc/erc32-stub.c libgloss/sparc/erc32.ld libgloss/sparc/ex930.ld libgloss/sparc/ex931.ld libgloss/sparc/ex934.ld libgloss/sparc/fixctors.c libgloss/sparc/libsys/Makefile.in libgloss/sparc/libsys/_exit.S libgloss/sparc/libsys/cerror.S libgloss/sparc/libsys/configure libgloss/sparc/libsys/configure.in libgloss/sparc/libsys/isatty.c libgloss/sparc/libsys/libsys-crt0.S libgloss/sparc/libsys/sbrk.S libgloss/sparc/libsys/syscall.h libgloss/sparc/libsys/syscallasm.h libgloss/sparc/libsys/template.S libgloss/sparc/libsys/template_r.S libgloss/sparc/salib-701.c libgloss/sparc/salib.c libgloss/sparc/slite.h libgloss/sparc/sparc-stub.c libgloss/sparc/sparc86x.ld libgloss/sparc/sparcl-stub.c libgloss/sparc/sparclet-stub.c libgloss/sparc/sparclite.h libgloss/sparc/sysc-701.c libgloss/sparc/syscalls.c libgloss/sparc/test.c libgloss/sparc/traps.S libgloss/sparc/tsc701.ld libgloss/stat.c libgloss/syscall.h libgloss/testsuite/Makefile.in libgloss/testsuite/config/hppa.mt libgloss/testsuite/config/m68k.mt libgloss/testsuite/config/mips.mt libgloss/testsuite/config/support.c libgloss/testsuite/configure.in libgloss/testsuite/lib/libgloss.exp libgloss/testsuite/libgloss.all/.gdbinit libgloss/testsuite/libgloss.all/Makefile.in libgloss/testsuite/libgloss.all/array.c libgloss/testsuite/libgloss.all/configure.in libgloss/testsuite/libgloss.all/div.c libgloss/testsuite/libgloss.all/double.c libgloss/testsuite/libgloss.all/float.c libgloss/testsuite/libgloss.all/func.c libgloss/testsuite/libgloss.all/io.c libgloss/testsuite/libgloss.all/math.c libgloss/testsuite/libgloss.all/memory.c libgloss/testsuite/libgloss.all/misc.c libgloss/testsuite/libgloss.all/printf.c libgloss/testsuite/libgloss.all/struct.c libgloss/testsuite/libgloss.all/varargs.c libgloss/testsuite/libgloss.all/varargs2.c libgloss/unlink.c libgloss/v850/sys/syscall.h libgloss/wince/Makefile.am libgloss/wince/Makefile.in libgloss/wince/aclocal.m4 libgloss/wince/configure libgloss/wince/configure.in libgloss/write.c libgloss/xstormy16/Makefile.in libgloss/xstormy16/close.c libgloss/xstormy16/configure libgloss/xstormy16/configure.in libgloss/xstormy16/crt0.s libgloss/xstormy16/crt0_stub.s libgloss/xstormy16/crti.s libgloss/xstormy16/crtn.s libgloss/xstormy16/eva_app.c libgloss/xstormy16/eva_app.ld libgloss/xstormy16/eva_stub.ld libgloss/xstormy16/fstat.c libgloss/xstormy16/getpid.c libgloss/xstormy16/kill.c libgloss/xstormy16/lseek.c libgloss/xstormy16/open.c libgloss/xstormy16/sim_high.ld libgloss/xstormy16/sim_malloc_start.s libgloss/xstormy16/stat.c libgloss/xstormy16/syscalls.S libgloss/xstormy16/syscalls.m4 libgloss/xstormy16/unlink.c libgloss/xstormy16/xstormy16_stub.c libtool.m4 ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh ltconfig ltmain.sh makefile.vms missing mkdep mkinstalldirs move-if-change mpw-README mpw-build.in mpw-config.in mpw-configure mpw-install newlib/ChangeLog newlib/MAINTAINERS newlib/Makefile.am newlib/Makefile.in newlib/Makefile.shared newlib/NEWS newlib/README newlib/acinclude.m4 newlib/aclocal.m4 newlib/configure newlib/configure.host newlib/configure.in newlib/doc/Makefile.am newlib/doc/Makefile.in newlib/doc/aclocal.m4 newlib/doc/ansidecl.h newlib/doc/configure newlib/doc/configure.in newlib/doc/doc.str newlib/doc/makedoc.c newlib/libc/Makefile.am newlib/libc/Makefile.in newlib/libc/aclocal.m4 newlib/libc/configure newlib/libc/configure.in newlib/libc/ctype/Makefile.am newlib/libc/ctype/Makefile.in newlib/libc/ctype/_tolower.c newlib/libc/ctype/_toupper.c newlib/libc/ctype/ctype.tex newlib/libc/ctype/ctype_.c newlib/libc/ctype/isalnum.c newlib/libc/ctype/isalpha.c newlib/libc/ctype/isascii.c newlib/libc/ctype/iscntrl.c newlib/libc/ctype/isdigit.c newlib/libc/ctype/islower.c newlib/libc/ctype/isprint.c newlib/libc/ctype/ispunct.c newlib/libc/ctype/isspace.c newlib/libc/ctype/isupper.c newlib/libc/ctype/isxdigit.c newlib/libc/ctype/toascii.c newlib/libc/ctype/tolower.c newlib/libc/ctype/toupper.c newlib/libc/errno/Makefile.am newlib/libc/errno/Makefile.in newlib/libc/errno/errno.c newlib/libc/include/_ansi.h newlib/libc/include/_syslist.h newlib/libc/include/alloca.h newlib/libc/include/ar.h newlib/libc/include/assert.h newlib/libc/include/ctype.h newlib/libc/include/dirent.h newlib/libc/include/errno.h newlib/libc/include/fastmath.h newlib/libc/include/fcntl.h newlib/libc/include/grp.h newlib/libc/include/ieeefp.h newlib/libc/include/locale.h newlib/libc/include/machine/ansi.h newlib/libc/include/machine/fastmath.h newlib/libc/include/machine/ieeefp.h newlib/libc/include/machine/setjmp-dj.h newlib/libc/include/machine/setjmp.h newlib/libc/include/machine/time.h newlib/libc/include/machine/types.h newlib/libc/include/malloc.h newlib/libc/include/math.h newlib/libc/include/paths.h newlib/libc/include/process.h newlib/libc/include/pthread.h newlib/libc/include/pwd.h newlib/libc/include/reent.h newlib/libc/include/regdef.h newlib/libc/include/setjmp.h newlib/libc/include/signal.h newlib/libc/include/stdio.h newlib/libc/include/stdlib.h newlib/libc/include/string.h newlib/libc/include/sys/_types.h newlib/libc/include/sys/config.h newlib/libc/include/sys/dirent.h newlib/libc/include/sys/errno.h newlib/libc/include/sys/fcntl.h newlib/libc/include/sys/features.h newlib/libc/include/sys/file.h newlib/libc/include/sys/param.h newlib/libc/include/sys/reent.h newlib/libc/include/sys/resource.h newlib/libc/include/sys/sched.h newlib/libc/include/sys/signal.h newlib/libc/include/sys/stat-dj.h newlib/libc/include/sys/stat.h newlib/libc/include/sys/time.h newlib/libc/include/sys/timeb.h newlib/libc/include/sys/times.h newlib/libc/include/sys/types.h newlib/libc/include/sys/unistd.h newlib/libc/include/sys/utime.h newlib/libc/include/sys/wait.h newlib/libc/include/termios.h newlib/libc/include/time.h newlib/libc/include/unctrl.h newlib/libc/include/unistd.h newlib/libc/include/utime.h newlib/libc/include/utmp.h newlib/libc/libc.texinfo newlib/libc/locale/Makefile.am newlib/libc/locale/Makefile.in newlib/libc/locale/locale.c newlib/libc/locale/locale.tex newlib/libc/machine/Makefile.am newlib/libc/machine/Makefile.in newlib/libc/machine/a29k/Makefile.am newlib/libc/machine/a29k/Makefile.in newlib/libc/machine/a29k/aclocal.m4 newlib/libc/machine/a29k/configure newlib/libc/machine/a29k/configure.in newlib/libc/machine/aclocal.m4 newlib/libc/machine/arm/Makefile.am newlib/libc/machine/arm/Makefile.in newlib/libc/machine/arm/aclocal.m4 newlib/libc/machine/arm/configure newlib/libc/machine/arm/configure.in newlib/libc/machine/configure newlib/libc/machine/configure.in newlib/libc/machine/d10v/Makefile.am newlib/libc/machine/d10v/Makefile.in newlib/libc/machine/d10v/aclocal.m4 newlib/libc/machine/d10v/configure newlib/libc/machine/d10v/configure.in newlib/libc/machine/d10v/setjmp.S newlib/libc/machine/d30v/Makefile.am newlib/libc/machine/d30v/Makefile.in newlib/libc/machine/d30v/aclocal.m4 newlib/libc/machine/d30v/configure newlib/libc/machine/d30v/configure.in newlib/libc/machine/d30v/setjmp.S newlib/libc/machine/fr30/Makefile.am newlib/libc/machine/fr30/Makefile.in newlib/libc/machine/fr30/aclocal.m4 newlib/libc/machine/fr30/configure newlib/libc/machine/fr30/configure.in newlib/libc/machine/fr30/setjmp.S newlib/libc/machine/h8300/Makefile.am newlib/libc/machine/h8300/Makefile.in newlib/libc/machine/h8300/aclocal.m4 newlib/libc/machine/h8300/configure newlib/libc/machine/h8300/configure.in newlib/libc/machine/h8300/defines.h newlib/libc/machine/h8300/memcpy.S newlib/libc/machine/h8300/memset.S newlib/libc/machine/h8300/reg_memcpy.S newlib/libc/machine/h8300/reg_memset.S newlib/libc/machine/h8300/setjmp.S newlib/libc/machine/h8300/strcmp.S newlib/libc/machine/h8500/Makefile.am newlib/libc/machine/h8500/Makefile.in newlib/libc/machine/h8500/aclocal.m4 newlib/libc/machine/h8500/cmpsi.c newlib/libc/machine/h8500/configure newlib/libc/machine/h8500/configure.in newlib/libc/machine/h8500/divhi3.S newlib/libc/machine/h8500/divsi3.c newlib/libc/machine/h8500/mulhi3.c newlib/libc/machine/h8500/mulsi3.c newlib/libc/machine/h8500/negsi2.c newlib/libc/machine/h8500/psi.S newlib/libc/machine/h8500/setjmp.S newlib/libc/machine/h8500/shifts.c newlib/libc/machine/hppa/DEFS.h newlib/libc/machine/hppa/Makefile.am newlib/libc/machine/hppa/Makefile.in newlib/libc/machine/hppa/aclocal.m4 newlib/libc/machine/hppa/configure newlib/libc/machine/hppa/configure.in newlib/libc/machine/hppa/memchr.S newlib/libc/machine/hppa/memcmp.S newlib/libc/machine/hppa/memcpy.S newlib/libc/machine/hppa/memset.S newlib/libc/machine/hppa/pcc_prefix.s newlib/libc/machine/hppa/setjmp.S newlib/libc/machine/hppa/strcat.S newlib/libc/machine/hppa/strcmp.S newlib/libc/machine/hppa/strcpy.S newlib/libc/machine/hppa/strlen.S newlib/libc/machine/hppa/strncat.S newlib/libc/machine/hppa/strncmp.S newlib/libc/machine/hppa/strncpy.S newlib/libc/machine/i386/Makefile.am newlib/libc/machine/i386/Makefile.in newlib/libc/machine/i386/aclocal.m4 newlib/libc/machine/i386/configure newlib/libc/machine/i386/configure.in newlib/libc/machine/i386/f_atan2.S newlib/libc/machine/i386/f_atan2f.S newlib/libc/machine/i386/f_exp.c newlib/libc/machine/i386/f_expf.c newlib/libc/machine/i386/f_frexp.S newlib/libc/machine/i386/f_frexpf.S newlib/libc/machine/i386/f_ldexp.S newlib/libc/machine/i386/f_ldexpf.S newlib/libc/machine/i386/f_log.S newlib/libc/machine/i386/f_log10.S newlib/libc/machine/i386/f_log10f.S newlib/libc/machine/i386/f_logf.S newlib/libc/machine/i386/f_math.h newlib/libc/machine/i386/f_pow.c newlib/libc/machine/i386/f_powf.c newlib/libc/machine/i386/f_tan.S newlib/libc/machine/i386/f_tanf.S newlib/libc/machine/i386/i386mach.h newlib/libc/machine/i386/memchr.S newlib/libc/machine/i386/memcmp.S newlib/libc/machine/i386/memcpy.S newlib/libc/machine/i386/memmove.S newlib/libc/machine/i386/memset.S newlib/libc/machine/i386/setjmp.S newlib/libc/machine/i386/strchr.S newlib/libc/machine/i386/strlen.S newlib/libc/machine/i960/Makefile.am newlib/libc/machine/i960/Makefile.in newlib/libc/machine/i960/aclocal.m4 newlib/libc/machine/i960/configure newlib/libc/machine/i960/configure.in newlib/libc/machine/i960/memccpy.S newlib/libc/machine/i960/memccpy_ca.S newlib/libc/machine/i960/memchr.S newlib/libc/machine/i960/memchr_ca.S newlib/libc/machine/i960/memcmp.S newlib/libc/machine/i960/memcmp_ca.S newlib/libc/machine/i960/memcpy.S newlib/libc/machine/i960/memcpy_ca.S newlib/libc/machine/i960/memset.S newlib/libc/machine/i960/setjmp.S newlib/libc/machine/i960/strchr.S newlib/libc/machine/i960/strchr_ca.S newlib/libc/machine/i960/strcmp.S newlib/libc/machine/i960/strcmp_ca.S newlib/libc/machine/i960/strcpy.S newlib/libc/machine/i960/strcpy_ca.S newlib/libc/machine/i960/strcspn.S newlib/libc/machine/i960/strdup.S newlib/libc/machine/i960/strlen.S newlib/libc/machine/i960/strlen_ca.S newlib/libc/machine/i960/strncat.S newlib/libc/machine/i960/strncat_ca.S newlib/libc/machine/i960/strncmp.S newlib/libc/machine/i960/strncmp_ca.S newlib/libc/machine/i960/strncpy.S newlib/libc/machine/i960/strncpy_ca.S newlib/libc/machine/i960/strpbrk.S newlib/libc/machine/i960/strrchr.S newlib/libc/machine/m32r/Makefile.am newlib/libc/machine/m32r/Makefile.in newlib/libc/machine/m32r/aclocal.m4 newlib/libc/machine/m32r/configure newlib/libc/machine/m32r/configure.in newlib/libc/machine/m32r/setjmp.S newlib/libc/machine/m68k/Makefile.am newlib/libc/machine/m68k/Makefile.in newlib/libc/machine/m68k/aclocal.m4 newlib/libc/machine/m68k/configure newlib/libc/machine/m68k/configure.in newlib/libc/machine/m68k/setjmp.S newlib/libc/machine/m68k/strcpy.c newlib/libc/machine/m68k/strlen.c newlib/libc/machine/m88k/Makefile.am newlib/libc/machine/m88k/Makefile.in newlib/libc/machine/m88k/aclocal.m4 newlib/libc/machine/m88k/configure newlib/libc/machine/m88k/configure.in newlib/libc/machine/m88k/setjmp.S newlib/libc/machine/mips/Makefile.am newlib/libc/machine/mips/Makefile.in newlib/libc/machine/mips/aclocal.m4 newlib/libc/machine/mips/configure newlib/libc/machine/mips/configure.in newlib/libc/machine/mips/machine/regdef.h newlib/libc/machine/mips/setjmp.S newlib/libc/machine/mn10200/Makefile.am newlib/libc/machine/mn10200/Makefile.in newlib/libc/machine/mn10200/aclocal.m4 newlib/libc/machine/mn10200/configure newlib/libc/machine/mn10200/configure.in newlib/libc/machine/mn10200/setjmp.S newlib/libc/machine/mn10300/Makefile.am newlib/libc/machine/mn10300/Makefile.in newlib/libc/machine/mn10300/aclocal.m4 newlib/libc/machine/mn10300/configure newlib/libc/machine/mn10300/configure.in newlib/libc/machine/mn10300/memchr.S newlib/libc/machine/mn10300/memcmp.S newlib/libc/machine/mn10300/memcpy.S newlib/libc/machine/mn10300/memset.S newlib/libc/machine/mn10300/setjmp.S newlib/libc/machine/mn10300/strchr.S newlib/libc/machine/mn10300/strcmp.S newlib/libc/machine/mn10300/strcpy.S newlib/libc/machine/mn10300/strlen.S newlib/libc/machine/necv70/Makefile.am newlib/libc/machine/necv70/Makefile.in newlib/libc/machine/necv70/aclocal.m4 newlib/libc/machine/necv70/configure newlib/libc/machine/necv70/configure.in newlib/libc/machine/necv70/fastmath.s newlib/libc/machine/necv70/machine/registers.h newlib/libc/machine/necv70/necv70.tex newlib/libc/machine/necv70/setjmp.s newlib/libc/machine/powerpc/Makefile.am newlib/libc/machine/powerpc/Makefile.in newlib/libc/machine/powerpc/aclocal.m4 newlib/libc/machine/powerpc/configure newlib/libc/machine/powerpc/configure.in newlib/libc/machine/powerpc/setjmp.S newlib/libc/machine/sh/Makefile.am newlib/libc/machine/sh/Makefile.in newlib/libc/machine/sh/aclocal.m4 newlib/libc/machine/sh/asm.h newlib/libc/machine/sh/configure newlib/libc/machine/sh/configure.in newlib/libc/machine/sh/memcpy.S newlib/libc/machine/sh/memset.S newlib/libc/machine/sh/setjmp.S newlib/libc/machine/sh/strcmp.S newlib/libc/machine/sh/strcpy.S newlib/libc/machine/sparc/Makefile.am newlib/libc/machine/sparc/Makefile.in newlib/libc/machine/sparc/aclocal.m4 newlib/libc/machine/sparc/configure newlib/libc/machine/sparc/configure.in newlib/libc/machine/sparc/machine/sparclet.h newlib/libc/machine/sparc/scan.c newlib/libc/machine/sparc/setjmp.S newlib/libc/machine/sparc/shuffle.c newlib/libc/machine/tic80/Makefile.am newlib/libc/machine/tic80/Makefile.in newlib/libc/machine/tic80/aclocal.m4 newlib/libc/machine/tic80/configure newlib/libc/machine/tic80/configure.in newlib/libc/machine/tic80/setjmp.S newlib/libc/machine/v850/Makefile.am newlib/libc/machine/v850/Makefile.in newlib/libc/machine/v850/aclocal.m4 newlib/libc/machine/v850/configure newlib/libc/machine/v850/configure.in newlib/libc/machine/v850/setjmp.S newlib/libc/machine/w65/Makefile.am newlib/libc/machine/w65/Makefile.in newlib/libc/machine/w65/aclocal.m4 newlib/libc/machine/w65/cmpsi.c newlib/libc/machine/w65/configure newlib/libc/machine/w65/configure.in newlib/libc/machine/w65/divsi3.c newlib/libc/machine/w65/lshrhi.s newlib/libc/machine/w65/mulsi3.c newlib/libc/machine/w65/sdivhi3.s newlib/libc/machine/w65/smulhi3.s newlib/libc/machine/w65/udivhi3.s newlib/libc/machine/w65/umodhi3.s newlib/libc/machine/xscale/Makefile.am newlib/libc/machine/xscale/Makefile.in newlib/libc/machine/xscale/aclocal.m4 newlib/libc/machine/xscale/configure newlib/libc/machine/xscale/configure.in newlib/libc/machine/xscale/memchr.c newlib/libc/machine/xscale/memcmp.c newlib/libc/machine/xscale/memcpy.c newlib/libc/machine/xscale/memmove.c newlib/libc/machine/xscale/memset.c newlib/libc/machine/xscale/strchr.c newlib/libc/machine/xscale/strcmp.c newlib/libc/machine/xscale/strcpy.c newlib/libc/machine/xscale/strlen.c newlib/libc/machine/xscale/xscale.h newlib/libc/machine/xstormy16/Makefile.am newlib/libc/machine/xstormy16/Makefile.in newlib/libc/machine/xstormy16/aclocal.m4 newlib/libc/machine/xstormy16/configure newlib/libc/machine/xstormy16/configure.in newlib/libc/machine/xstormy16/mallocr.c newlib/libc/machine/xstormy16/setjmp.S newlib/libc/machine/xstormy16/tiny-malloc.c newlib/libc/machine/z8k/Makefile.am newlib/libc/machine/z8k/Makefile.in newlib/libc/machine/z8k/aclocal.m4 newlib/libc/machine/z8k/args.h newlib/libc/machine/z8k/configure newlib/libc/machine/z8k/configure.in newlib/libc/machine/z8k/setjmp.S newlib/libc/misc/Makefile.am newlib/libc/misc/Makefile.in newlib/libc/misc/dprintf.c newlib/libc/misc/ffs.c newlib/libc/misc/misc.tex newlib/libc/misc/unctrl.c newlib/libc/posix/Makefile.am newlib/libc/posix/Makefile.in newlib/libc/posix/closedir.c newlib/libc/posix/creat.c newlib/libc/posix/execl.c newlib/libc/posix/execle.c newlib/libc/posix/execlp.c newlib/libc/posix/execv.c newlib/libc/posix/execve.c newlib/libc/posix/execvp.c newlib/libc/posix/isatty.c newlib/libc/posix/opendir.c newlib/libc/posix/popen.c newlib/libc/posix/readdir.c newlib/libc/posix/rewinddir.c newlib/libc/posix/scandir.c newlib/libc/posix/seekdir.c newlib/libc/posix/telldir.c newlib/libc/reent/Makefile.am newlib/libc/reent/Makefile.in newlib/libc/reent/closer.c newlib/libc/reent/execr.c newlib/libc/reent/fstatr.c newlib/libc/reent/impure.c newlib/libc/reent/linkr.c newlib/libc/reent/lseekr.c newlib/libc/reent/openr.c newlib/libc/reent/readr.c newlib/libc/reent/reent.c newlib/libc/reent/reent.tex newlib/libc/reent/sbrkr.c newlib/libc/reent/signalr.c newlib/libc/reent/signgam.c newlib/libc/reent/statr.c newlib/libc/reent/timer.c newlib/libc/reent/unlinkr.c newlib/libc/reent/writer.c newlib/libc/saber newlib/libc/signal/Makefile.am newlib/libc/signal/Makefile.in newlib/libc/signal/raise.c newlib/libc/signal/signal.c newlib/libc/signal/signal.tex newlib/libc/stdio/Makefile.am newlib/libc/stdio/Makefile.in newlib/libc/stdio/clearerr.c newlib/libc/stdio/fclose.c newlib/libc/stdio/fdopen.c newlib/libc/stdio/feof.c newlib/libc/stdio/ferror.c newlib/libc/stdio/fflush.c newlib/libc/stdio/fgetc.c newlib/libc/stdio/fgetpos.c newlib/libc/stdio/fgets.c newlib/libc/stdio/fileno.c newlib/libc/stdio/findfp.c newlib/libc/stdio/fiprintf.c newlib/libc/stdio/flags.c newlib/libc/stdio/floatio.h newlib/libc/stdio/fopen.c newlib/libc/stdio/fprintf.c newlib/libc/stdio/fputc.c newlib/libc/stdio/fputs.c newlib/libc/stdio/fread.c newlib/libc/stdio/freopen.c newlib/libc/stdio/fscanf.c newlib/libc/stdio/fseek.c newlib/libc/stdio/fsetpos.c newlib/libc/stdio/ftell.c newlib/libc/stdio/fvwrite.c newlib/libc/stdio/fvwrite.h newlib/libc/stdio/fwalk.c newlib/libc/stdio/fwrite.c newlib/libc/stdio/getc.c newlib/libc/stdio/getchar.c newlib/libc/stdio/gets.c newlib/libc/stdio/getw.c newlib/libc/stdio/iprintf.c newlib/libc/stdio/local.h newlib/libc/stdio/makebuf.c newlib/libc/stdio/mktemp.c newlib/libc/stdio/perror.c newlib/libc/stdio/printf.c newlib/libc/stdio/putc.c newlib/libc/stdio/putchar.c newlib/libc/stdio/puts.c newlib/libc/stdio/putw.c newlib/libc/stdio/refill.c newlib/libc/stdio/remove.c newlib/libc/stdio/rename.c newlib/libc/stdio/rewind.c newlib/libc/stdio/rget.c newlib/libc/stdio/scanf.c newlib/libc/stdio/setbuf.c newlib/libc/stdio/setvbuf.c newlib/libc/stdio/siprintf.c newlib/libc/stdio/snprintf.c newlib/libc/stdio/sprintf.c newlib/libc/stdio/sscanf.c newlib/libc/stdio/stdio.c newlib/libc/stdio/stdio.tex newlib/libc/stdio/tmpfile.c newlib/libc/stdio/tmpnam.c newlib/libc/stdio/ungetc.c newlib/libc/stdio/vfieeefp.h newlib/libc/stdio/vfprintf.c newlib/libc/stdio/vfscanf.c newlib/libc/stdio/vprintf.c newlib/libc/stdio/vscanf.c newlib/libc/stdio/vsnprintf.c newlib/libc/stdio/vsprintf.c newlib/libc/stdio/vsscanf.c newlib/libc/stdio/wbuf.c newlib/libc/stdio/wsetup.c newlib/libc/stdlib/Makefile.am newlib/libc/stdlib/Makefile.in newlib/libc/stdlib/__adjust.c newlib/libc/stdlib/__exp10.c newlib/libc/stdlib/__ten_mu.c newlib/libc/stdlib/abort.c newlib/libc/stdlib/abs.c newlib/libc/stdlib/assert.c newlib/libc/stdlib/atexit.c newlib/libc/stdlib/atexit.h newlib/libc/stdlib/atof.c newlib/libc/stdlib/atoff.c newlib/libc/stdlib/atoi.c newlib/libc/stdlib/atol.c newlib/libc/stdlib/bsearch.c newlib/libc/stdlib/calloc.c newlib/libc/stdlib/div.c newlib/libc/stdlib/drand48.c newlib/libc/stdlib/dtoa.c newlib/libc/stdlib/dtoastub.c newlib/libc/stdlib/ecvtbuf.c newlib/libc/stdlib/efgcvt.c newlib/libc/stdlib/environ.c newlib/libc/stdlib/envlock.c newlib/libc/stdlib/envlock.h newlib/libc/stdlib/eprintf.c newlib/libc/stdlib/erand48.c newlib/libc/stdlib/exit.c newlib/libc/stdlib/getenv.c newlib/libc/stdlib/getenv_r.c newlib/libc/stdlib/getopt.c newlib/libc/stdlib/jrand48.c newlib/libc/stdlib/labs.c newlib/libc/stdlib/lcong48.c newlib/libc/stdlib/ldiv.c newlib/libc/stdlib/ldtoa.c newlib/libc/stdlib/local.h newlib/libc/stdlib/lrand48.c newlib/libc/stdlib/malign.c newlib/libc/stdlib/malloc.c newlib/libc/stdlib/mallocr.c newlib/libc/stdlib/mbctype.h newlib/libc/stdlib/mblen.c newlib/libc/stdlib/mblen_r.c newlib/libc/stdlib/mbstowcs.c newlib/libc/stdlib/mbstowcs_r.c newlib/libc/stdlib/mbtowc.c newlib/libc/stdlib/mbtowc_r.c newlib/libc/stdlib/mlock.c newlib/libc/stdlib/mprec.c newlib/libc/stdlib/mprec.h newlib/libc/stdlib/mrand48.c newlib/libc/stdlib/msize.c newlib/libc/stdlib/mstats.c newlib/libc/stdlib/mtrim.c newlib/libc/stdlib/nrand48.c newlib/libc/stdlib/putenv.c newlib/libc/stdlib/putenv_r.c newlib/libc/stdlib/qsort.c newlib/libc/stdlib/rand.c newlib/libc/stdlib/rand48.c newlib/libc/stdlib/rand48.h newlib/libc/stdlib/rand_r.c newlib/libc/stdlib/realloc.c newlib/libc/stdlib/seed48.c newlib/libc/stdlib/setenv.c newlib/libc/stdlib/setenv_r.c newlib/libc/stdlib/srand48.c newlib/libc/stdlib/std.h newlib/libc/stdlib/stdlib.tex newlib/libc/stdlib/strdup.c newlib/libc/stdlib/strdup_r.c newlib/libc/stdlib/strtod.c newlib/libc/stdlib/strtol.c newlib/libc/stdlib/strtoll.c newlib/libc/stdlib/strtoll_r.c newlib/libc/stdlib/strtoul.c newlib/libc/stdlib/strtoull.c newlib/libc/stdlib/strtoull_r.c newlib/libc/stdlib/system.c newlib/libc/stdlib/valloc.c newlib/libc/stdlib/wcstombs.c newlib/libc/stdlib/wcstombs_r.c newlib/libc/stdlib/wctomb.c newlib/libc/stdlib/wctomb_r.c newlib/libc/string/Makefile.am newlib/libc/string/Makefile.in newlib/libc/string/bcmp.c newlib/libc/string/bcopy.c newlib/libc/string/bzero.c newlib/libc/string/index.c newlib/libc/string/memchr.c newlib/libc/string/memcmp.c newlib/libc/string/memcpy.c newlib/libc/string/memmove.c newlib/libc/string/memset.c newlib/libc/string/rindex.c newlib/libc/string/strcasecmp.c newlib/libc/string/strcat.c newlib/libc/string/strchr.c newlib/libc/string/strcmp.c newlib/libc/string/strcoll.c newlib/libc/string/strcpy.c newlib/libc/string/strcspn.c newlib/libc/string/strerror.c newlib/libc/string/strings.tex newlib/libc/string/strlen.c newlib/libc/string/strlwr.c newlib/libc/string/strncasecmp.c newlib/libc/string/strncat.c newlib/libc/string/strncmp.c newlib/libc/string/strncpy.c newlib/libc/string/strpbrk.c newlib/libc/string/strrchr.c newlib/libc/string/strspn.c newlib/libc/string/strstr.c newlib/libc/string/strtok.c newlib/libc/string/strtok_r.c newlib/libc/string/strupr.c newlib/libc/string/strxfrm.c newlib/libc/string/swab.c newlib/libc/string/u_strerr.c newlib/libc/sys.tex newlib/libc/sys/Makefile.am newlib/libc/sys/Makefile.in newlib/libc/sys/a29khif/Makefile.am newlib/libc/sys/a29khif/Makefile.in newlib/libc/sys/a29khif/_alloc.s newlib/libc/sys/a29khif/_close.s newlib/libc/sys/a29khif/_cycles.s newlib/libc/sys/a29khif/_exit.s newlib/libc/sys/a29khif/_fstat.s newlib/libc/sys/a29khif/_getpsiz.s newlib/libc/sys/a29khif/_gettz.s newlib/libc/sys/a29khif/_ioctl.s newlib/libc/sys/a29khif/_iostat.s newlib/libc/sys/a29khif/_iowait.s newlib/libc/sys/a29khif/_isatty.s newlib/libc/sys/a29khif/_lseek.s newlib/libc/sys/a29khif/_open.s newlib/libc/sys/a29khif/_query.s newlib/libc/sys/a29khif/_read.s newlib/libc/sys/a29khif/_sbrk.s newlib/libc/sys/a29khif/_setim.s newlib/libc/sys/a29khif/_settrap.s newlib/libc/sys/a29khif/_setvec.s newlib/libc/sys/a29khif/_tmpnam.s newlib/libc/sys/a29khif/_write.s newlib/libc/sys/a29khif/aclocal.m4 newlib/libc/sys/a29khif/alloc.s newlib/libc/sys/a29khif/clock.s newlib/libc/sys/a29khif/configure newlib/libc/sys/a29khif/configure.in newlib/libc/sys/a29khif/crt0.s newlib/libc/sys/a29khif/getargs.s newlib/libc/sys/a29khif/getenv.s newlib/libc/sys/a29khif/getpid.c newlib/libc/sys/a29khif/kill.c newlib/libc/sys/a29khif/read.s newlib/libc/sys/a29khif/remove.s newlib/libc/sys/a29khif/rename.s newlib/libc/sys/a29khif/signal.s newlib/libc/sys/a29khif/stubs.s newlib/libc/sys/a29khif/sys/cpudef.h newlib/libc/sys/a29khif/sys/fpsymbol.h newlib/libc/sys/a29khif/sys/intrinsi.h newlib/libc/sys/a29khif/sys/macros.h newlib/libc/sys/a29khif/sys/proreg.h newlib/libc/sys/a29khif/sys/romdcl.h newlib/libc/sys/a29khif/sys/smartmac.h newlib/libc/sys/a29khif/sys/sysmac.h newlib/libc/sys/a29khif/systime.s newlib/libc/sys/a29khif/vec.s newlib/libc/sys/aclocal.m4 newlib/libc/sys/arc/Makefile.am newlib/libc/sys/arc/Makefile.in newlib/libc/sys/arc/aclocal.m4 newlib/libc/sys/arc/configure newlib/libc/sys/arc/configure.in newlib/libc/sys/arc/crt0.S newlib/libc/sys/arc/isatty.c newlib/libc/sys/arc/mem-layout.c newlib/libc/sys/arc/sbrk.c newlib/libc/sys/arc/sys/syscall.h newlib/libc/sys/arc/syscalls.c newlib/libc/sys/arm/Makefile.am newlib/libc/sys/arm/Makefile.in newlib/libc/sys/arm/aclocal.m4 newlib/libc/sys/arm/configure newlib/libc/sys/arm/configure.in newlib/libc/sys/arm/crt0.S newlib/libc/sys/arm/libcfunc.c newlib/libc/sys/arm/setjmp.S newlib/libc/sys/arm/swi.h newlib/libc/sys/arm/sys/param.h newlib/libc/sys/arm/syscalls.c newlib/libc/sys/arm/trap.S newlib/libc/sys/configure newlib/libc/sys/configure.in newlib/libc/sys/cygwin/Makefile.am newlib/libc/sys/cygwin/Makefile.in newlib/libc/sys/cygwin/aclocal.m4 newlib/libc/sys/cygwin/configure newlib/libc/sys/cygwin/configure.in newlib/libc/sys/cygwin/crt0.c newlib/libc/sys/cygwin/include/unistd.h newlib/libc/sys/cygwin/sys/dirent.h newlib/libc/sys/cygwin/sys/param.h newlib/libc/sys/cygwin/sys/utime.h newlib/libc/sys/cygwin/sys/utmp.h newlib/libc/sys/d10v/Makefile.am newlib/libc/sys/d10v/Makefile.in newlib/libc/sys/d10v/aclocal.m4 newlib/libc/sys/d10v/configure newlib/libc/sys/d10v/configure.in newlib/libc/sys/d10v/creat.c newlib/libc/sys/d10v/crt0.S newlib/libc/sys/d10v/sys/syscall.h newlib/libc/sys/d10v/syscalls.c newlib/libc/sys/d10v/trap.S newlib/libc/sys/decstation/Makefile.am newlib/libc/sys/decstation/Makefile.in newlib/libc/sys/decstation/_main.c newlib/libc/sys/decstation/aclocal.m4 newlib/libc/sys/decstation/configure newlib/libc/sys/decstation/configure.in newlib/libc/sys/decstation/sys/dirent.h newlib/libc/sys/go32/Makefile.am newlib/libc/sys/go32/Makefile.in newlib/libc/sys/go32/_exit.s newlib/libc/sys/go32/_main.c newlib/libc/sys/go32/abort.c newlib/libc/sys/go32/access.c newlib/libc/sys/go32/aclocal.m4 newlib/libc/sys/go32/bdos.c newlib/libc/sys/go32/bdosptr.c newlib/libc/sys/go32/brk.s newlib/libc/sys/go32/chdir.s newlib/libc/sys/go32/chmod.c newlib/libc/sys/go32/chown.c newlib/libc/sys/go32/clock.S newlib/libc/sys/go32/close.s newlib/libc/sys/go32/configure newlib/libc/sys/go32/configure.in newlib/libc/sys/go32/copying.dj newlib/libc/sys/go32/creat.s newlib/libc/sys/go32/crlf2nl.c newlib/libc/sys/go32/crt0.S newlib/libc/sys/go32/dir.c newlib/libc/sys/go32/dir.h newlib/libc/sys/go32/djtime.h newlib/libc/sys/go32/dos.h newlib/libc/sys/go32/dosmem.S newlib/libc/sys/go32/dpmi.c newlib/libc/sys/go32/dpmi.h newlib/libc/sys/go32/dup.s newlib/libc/sys/go32/dup2.s newlib/libc/sys/go32/exec.c newlib/libc/sys/go32/fchmod.c newlib/libc/sys/go32/findfirs.s newlib/libc/sys/go32/findnext.s newlib/libc/sys/go32/fixpath.c newlib/libc/sys/go32/fstat.s newlib/libc/sys/go32/fsync.s newlib/libc/sys/go32/ftruncat.c newlib/libc/sys/go32/gerrno.s newlib/libc/sys/go32/getcwd.c newlib/libc/sys/go32/getdate.c newlib/libc/sys/go32/getdtabl.c newlib/libc/sys/go32/getgid.c newlib/libc/sys/go32/getkey.s newlib/libc/sys/go32/getpages.c newlib/libc/sys/go32/getpid.c newlib/libc/sys/go32/getrusag.c newlib/libc/sys/go32/gettime.c newlib/libc/sys/go32/gettimeo.c newlib/libc/sys/go32/gettimeo.s newlib/libc/sys/go32/getuid.c newlib/libc/sys/go32/getwd.s newlib/libc/sys/go32/go32.h newlib/libc/sys/go32/go32func.c newlib/libc/sys/go32/infoblk.c newlib/libc/sys/go32/inportb.s newlib/libc/sys/go32/inportl.s newlib/libc/sys/go32/inportsb.s newlib/libc/sys/go32/inportsl.s newlib/libc/sys/go32/inportsw.s newlib/libc/sys/go32/inportw.s newlib/libc/sys/go32/int86x.s newlib/libc/sys/go32/intdos.c newlib/libc/sys/go32/intdosx.c newlib/libc/sys/go32/isatty.s newlib/libc/sys/go32/kbhit.s newlib/libc/sys/go32/kill.c newlib/libc/sys/go32/link.s newlib/libc/sys/go32/longjmp.S newlib/libc/sys/go32/lseek.s newlib/libc/sys/go32/lstat.s newlib/libc/sys/go32/mkdir.s newlib/libc/sys/go32/open.s newlib/libc/sys/go32/outportb.s newlib/libc/sys/go32/outportl.s newlib/libc/sys/go32/outportw.s newlib/libc/sys/go32/outprtsb.s newlib/libc/sys/go32/outprtsl.s newlib/libc/sys/go32/outprtsw.s newlib/libc/sys/go32/pc.h newlib/libc/sys/go32/read.s newlib/libc/sys/go32/readv.c newlib/libc/sys/go32/rename.s newlib/libc/sys/go32/rmdir.s newlib/libc/sys/go32/sbrk.s newlib/libc/sys/go32/screen.S newlib/libc/sys/go32/setjmp.S newlib/libc/sys/go32/setmode.s newlib/libc/sys/go32/setstack.S newlib/libc/sys/go32/settimeo.s newlib/libc/sys/go32/sleep.c newlib/libc/sys/go32/stat.c newlib/libc/sys/go32/stat.s newlib/libc/sys/go32/stat_ast.s newlib/libc/sys/go32/sys/dir.h newlib/libc/sys/go32/sys/dirent.h newlib/libc/sys/go32/sys/dos.h newlib/libc/sys/go32/sys/dpmi.h newlib/libc/sys/go32/sys/errno.h newlib/libc/sys/go32/sys/fcntl.h newlib/libc/sys/go32/sys/file.h newlib/libc/sys/go32/sys/go32.h newlib/libc/sys/go32/sys/param.h newlib/libc/sys/go32/sys/pc.h newlib/libc/sys/go32/sys/register.h newlib/libc/sys/go32/sys/resource.h newlib/libc/sys/go32/sys/setjmp.h newlib/libc/sys/go32/sys/stdc.h newlib/libc/sys/go32/sys/uio.h newlib/libc/sys/go32/syserr.c newlib/libc/sys/go32/system.s newlib/libc/sys/go32/tell.s newlib/libc/sys/go32/time.c newlib/libc/sys/go32/truncate.c newlib/libc/sys/go32/turbo.s newlib/libc/sys/go32/umask.c newlib/libc/sys/go32/unlink.s newlib/libc/sys/go32/utime.c newlib/libc/sys/go32/utimes.c newlib/libc/sys/go32/write.s newlib/libc/sys/go32/writestub.c newlib/libc/sys/go32/writev.c newlib/libc/sys/h8300hms/Makefile.am newlib/libc/sys/h8300hms/Makefile.in newlib/libc/sys/h8300hms/_exit.c newlib/libc/sys/h8300hms/aclocal.m4 newlib/libc/sys/h8300hms/configure newlib/libc/sys/h8300hms/configure.in newlib/libc/sys/h8300hms/crt0.S newlib/libc/sys/h8300hms/crt1.c newlib/libc/sys/h8300hms/misc.c newlib/libc/sys/h8300hms/sbrk.c newlib/libc/sys/h8300hms/sys/file.h newlib/libc/sys/h8300hms/syscalls.c newlib/libc/sys/h8300hms/write.c newlib/libc/sys/h8500hms/Makefile.am newlib/libc/sys/h8500hms/Makefile.in newlib/libc/sys/h8500hms/aclocal.m4 newlib/libc/sys/h8500hms/configure newlib/libc/sys/h8500hms/configure.in newlib/libc/sys/h8500hms/crt0.c newlib/libc/sys/h8500hms/misc.c newlib/libc/sys/h8500hms/syscalls.c newlib/libc/sys/linux/Makefile.am newlib/libc/sys/linux/Makefile.in newlib/libc/sys/linux/aclocal.m4 newlib/libc/sys/linux/brk.c newlib/libc/sys/linux/configure newlib/libc/sys/linux/configure.in newlib/libc/sys/linux/crt0.c newlib/libc/sys/linux/getoptlong.c newlib/libc/sys/linux/ids.c newlib/libc/sys/linux/include/getopt.h newlib/libc/sys/linux/include/stdint.h newlib/libc/sys/linux/include/unistd.h newlib/libc/sys/linux/inode.c newlib/libc/sys/linux/io.c newlib/libc/sys/linux/linux.c newlib/libc/sys/linux/process.c newlib/libc/sys/linux/realpath.c newlib/libc/sys/linux/select.c newlib/libc/sys/linux/shared.ld newlib/libc/sys/linux/signal.c newlib/libc/sys/linux/sys/cdefs.h newlib/libc/sys/linux/sys/dirent.h newlib/libc/sys/linux/sys/errno.h newlib/libc/sys/linux/sys/fcntl.h newlib/libc/sys/linux/sys/file.h newlib/libc/sys/linux/sys/ioctl.h newlib/libc/sys/linux/sys/resource.h newlib/libc/sys/linux/sys/signal.h newlib/libc/sys/linux/sys/stat.h newlib/libc/sys/linux/sys/syscall.h newlib/libc/sys/linux/sys/termios.h newlib/libc/sys/linux/sys/time.h newlib/libc/sys/linux/sys/types.h newlib/libc/sys/linux/sys/utmp.h newlib/libc/sys/linux/sys/utsname.h newlib/libc/sys/linux/sys/wait.h newlib/libc/sys/linux/systat.c newlib/libc/sys/linux/termios.c newlib/libc/sys/linux/time.c newlib/libc/sys/linux/wait.c newlib/libc/sys/m88kbug/Makefile.am newlib/libc/sys/m88kbug/Makefile.in newlib/libc/sys/m88kbug/aclocal.m4 newlib/libc/sys/m88kbug/configure newlib/libc/sys/m88kbug/configure.in newlib/libc/sys/m88kbug/crt0.c newlib/libc/sys/m88kbug/sys/systraps.h newlib/libc/sys/m88kbug/syscalls.c newlib/libc/sys/mmixware/Makefile.am newlib/libc/sys/mmixware/Makefile.in newlib/libc/sys/mmixware/_exit.c newlib/libc/sys/mmixware/access.c newlib/libc/sys/mmixware/aclocal.m4 newlib/libc/sys/mmixware/chmod.c newlib/libc/sys/mmixware/chown.c newlib/libc/sys/mmixware/close.c newlib/libc/sys/mmixware/configure newlib/libc/sys/mmixware/configure.in newlib/libc/sys/mmixware/creat.c newlib/libc/sys/mmixware/crt0.c newlib/libc/sys/mmixware/execv.c newlib/libc/sys/mmixware/execve.c newlib/libc/sys/mmixware/fork.c newlib/libc/sys/mmixware/fstat.c newlib/libc/sys/mmixware/getpid.c newlib/libc/sys/mmixware/gettime.c newlib/libc/sys/mmixware/isatty.c newlib/libc/sys/mmixware/kill.c newlib/libc/sys/mmixware/link.c newlib/libc/sys/mmixware/lseek.c newlib/libc/sys/mmixware/open.c newlib/libc/sys/mmixware/pipe.c newlib/libc/sys/mmixware/read.c newlib/libc/sys/mmixware/sbrk.c newlib/libc/sys/mmixware/setjmp.S newlib/libc/sys/mmixware/stat.c newlib/libc/sys/mmixware/sys/syscall.h newlib/libc/sys/mmixware/time.c newlib/libc/sys/mmixware/times.c newlib/libc/sys/mmixware/unlink.c newlib/libc/sys/mmixware/utime.c newlib/libc/sys/mmixware/wait.c newlib/libc/sys/mmixware/write.c newlib/libc/sys/netware/Makefile.am newlib/libc/sys/netware/Makefile.in newlib/libc/sys/netware/aclocal.m4 newlib/libc/sys/netware/configure newlib/libc/sys/netware/configure.in newlib/libc/sys/netware/crt0.c newlib/libc/sys/netware/getpid.c newlib/libc/sys/netware/link.c newlib/libc/sys/rtems/Makefile.am newlib/libc/sys/rtems/Makefile.in newlib/libc/sys/rtems/aclocal.m4 newlib/libc/sys/rtems/configure newlib/libc/sys/rtems/configure.in newlib/libc/sys/rtems/crt0.c newlib/libc/sys/rtems/dummysys.c newlib/libc/sys/rtems/include/limits.h newlib/libc/sys/rtems/sys/dirent.h newlib/libc/sys/sh/Makefile.am newlib/libc/sys/sh/Makefile.in newlib/libc/sys/sh/aclocal.m4 newlib/libc/sys/sh/configure newlib/libc/sys/sh/configure.in newlib/libc/sys/sh/creat.c newlib/libc/sys/sh/crt0.S newlib/libc/sys/sh/sys/syscall.h newlib/libc/sys/sh/syscalls.c newlib/libc/sys/sh/trap.S newlib/libc/sys/sparc64/Makefile.am newlib/libc/sys/sparc64/Makefile.in newlib/libc/sys/sparc64/_exit.S newlib/libc/sys/sparc64/_main.c newlib/libc/sys/sparc64/aclocal.m4 newlib/libc/sys/sparc64/cerror.S newlib/libc/sys/sparc64/closedir.c newlib/libc/sys/sparc64/configure newlib/libc/sys/sparc64/configure.in newlib/libc/sys/sparc64/creat.c newlib/libc/sys/sparc64/crt0.S newlib/libc/sys/sparc64/dup2.S newlib/libc/sys/sparc64/execve.S newlib/libc/sys/sparc64/ieee.c newlib/libc/sys/sparc64/isatty.c newlib/libc/sys/sparc64/lstat.S newlib/libc/sys/sparc64/opendir.c newlib/libc/sys/sparc64/readdir.c newlib/libc/sys/sparc64/rewinddir.c newlib/libc/sys/sparc64/sbrk.S newlib/libc/sys/sparc64/scandir.c newlib/libc/sys/sparc64/seekdir.c newlib/libc/sys/sparc64/sigsetjmp.S newlib/libc/sys/sparc64/stat.S newlib/libc/sys/sparc64/sys/dirent.h newlib/libc/sys/sparc64/sys/fcntl.h newlib/libc/sys/sparc64/sys/file.h newlib/libc/sys/sparc64/sys/stat.h newlib/libc/sys/sparc64/sys/syscall.h newlib/libc/sys/sparc64/sys/syscallasm.h newlib/libc/sys/sparc64/sys/termios.h newlib/libc/sys/sparc64/sys/time.h newlib/libc/sys/sparc64/sys/utime.h newlib/libc/sys/sparc64/sys/utmp.h newlib/libc/sys/sparc64/sys/wait.h newlib/libc/sys/sparc64/telldir.c newlib/libc/sys/sparc64/template.S newlib/libc/sys/sparc64/template_r.S newlib/libc/sys/sparc64/utime.S newlib/libc/sys/sparc64/utime2.c newlib/libc/sys/sparc64/wait.S newlib/libc/sys/sun4/Makefile.am newlib/libc/sys/sun4/Makefile.in newlib/libc/sys/sun4/_main.c newlib/libc/sys/sun4/aclocal.m4 newlib/libc/sys/sun4/configure newlib/libc/sys/sun4/configure.in newlib/libc/sys/sun4/ieee.c newlib/libc/sys/sun4/sys/dirent.h newlib/libc/sys/sun4/sys/file.h newlib/libc/sys/sun4/sys/termios.h newlib/libc/sys/sun4/sys/utime.h newlib/libc/sys/sun4/sys/utmp.h newlib/libc/sys/sun4/sys/wait.h newlib/libc/sys/sysmec/Makefile.am newlib/libc/sys/sysmec/Makefile.in newlib/libc/sys/sysmec/_exit.c newlib/libc/sys/sysmec/access.c newlib/libc/sys/sysmec/aclocal.m4 newlib/libc/sys/sysmec/chmod.c newlib/libc/sys/sysmec/chown.c newlib/libc/sys/sysmec/close.c newlib/libc/sys/sysmec/configure newlib/libc/sys/sysmec/configure.in newlib/libc/sys/sysmec/creat.c newlib/libc/sys/sysmec/crt0.S newlib/libc/sys/sysmec/crt1.c newlib/libc/sys/sysmec/execv.c newlib/libc/sys/sysmec/execve.c newlib/libc/sys/sysmec/fork.c newlib/libc/sys/sysmec/fstat.c newlib/libc/sys/sysmec/getpid.c newlib/libc/sys/sysmec/gettime.c newlib/libc/sys/sysmec/isatty.c newlib/libc/sys/sysmec/kill.c newlib/libc/sys/sysmec/lseek.c newlib/libc/sys/sysmec/open.c newlib/libc/sys/sysmec/pipe.c newlib/libc/sys/sysmec/read.c newlib/libc/sys/sysmec/sbrk.c newlib/libc/sys/sysmec/stat.c newlib/libc/sys/sysmec/sys/syscall.h newlib/libc/sys/sysmec/time.c newlib/libc/sys/sysmec/times.c newlib/libc/sys/sysmec/trap.S newlib/libc/sys/sysmec/unlink.c newlib/libc/sys/sysmec/utime.c newlib/libc/sys/sysmec/wait.c newlib/libc/sys/sysmec/write.c newlib/libc/sys/sysnec810/Makefile.am newlib/libc/sys/sysnec810/Makefile.in newlib/libc/sys/sysnec810/aclocal.m4 newlib/libc/sys/sysnec810/configure newlib/libc/sys/sysnec810/configure.in newlib/libc/sys/sysnec810/crt0.s newlib/libc/sys/sysnec810/io.s newlib/libc/sys/sysnec810/misc.c newlib/libc/sys/sysnec810/sbrk.c newlib/libc/sys/sysnec810/write.c newlib/libc/sys/sysnecv850/Makefile.am newlib/libc/sys/sysnecv850/Makefile.in newlib/libc/sys/sysnecv850/_exit.c newlib/libc/sys/sysnecv850/access.c newlib/libc/sys/sysnecv850/aclocal.m4 newlib/libc/sys/sysnecv850/chmod.c newlib/libc/sys/sysnecv850/chown.c newlib/libc/sys/sysnecv850/close.c newlib/libc/sys/sysnecv850/configure newlib/libc/sys/sysnecv850/configure.in newlib/libc/sys/sysnecv850/creat.c newlib/libc/sys/sysnecv850/crt0.S newlib/libc/sys/sysnecv850/crt1.c newlib/libc/sys/sysnecv850/execv.c newlib/libc/sys/sysnecv850/execve.c newlib/libc/sys/sysnecv850/fork.c newlib/libc/sys/sysnecv850/fstat.c newlib/libc/sys/sysnecv850/getpid.c newlib/libc/sys/sysnecv850/gettime.c newlib/libc/sys/sysnecv850/isatty.c newlib/libc/sys/sysnecv850/kill.c newlib/libc/sys/sysnecv850/link.c newlib/libc/sys/sysnecv850/lseek.c newlib/libc/sys/sysnecv850/open.c newlib/libc/sys/sysnecv850/pipe.c newlib/libc/sys/sysnecv850/read.c newlib/libc/sys/sysnecv850/sbrk.c newlib/libc/sys/sysnecv850/stat.c newlib/libc/sys/sysnecv850/sys/syscall.h newlib/libc/sys/sysnecv850/time.c newlib/libc/sys/sysnecv850/times.c newlib/libc/sys/sysnecv850/trap.S newlib/libc/sys/sysnecv850/unlink.c newlib/libc/sys/sysnecv850/utime.c newlib/libc/sys/sysnecv850/wait.c newlib/libc/sys/sysnecv850/write.c newlib/libc/sys/sysvi386/Makefile.am newlib/libc/sys/sysvi386/Makefile.in newlib/libc/sys/sysvi386/_exit.s newlib/libc/sys/sysvi386/_longjmp.s newlib/libc/sys/sysvi386/_setjmp.s newlib/libc/sys/sysvi386/access.s newlib/libc/sys/sysvi386/aclocal.m4 newlib/libc/sys/sysvi386/alarm.s newlib/libc/sys/sysvi386/brk.s newlib/libc/sys/sysvi386/cerror.s newlib/libc/sys/sysvi386/chdir.s newlib/libc/sys/sysvi386/chmod.s newlib/libc/sys/sysvi386/close.s newlib/libc/sys/sysvi386/closedir.c newlib/libc/sys/sysvi386/configure newlib/libc/sys/sysvi386/configure.in newlib/libc/sys/sysvi386/crt0.c newlib/libc/sys/sysvi386/dup.c newlib/libc/sys/sysvi386/dup2.c newlib/libc/sys/sysvi386/exec.c newlib/libc/sys/sysvi386/execve.s newlib/libc/sys/sysvi386/fcntl.s newlib/libc/sys/sysvi386/fork.s newlib/libc/sys/sysvi386/fpathconf.s newlib/libc/sys/sysvi386/fps.s newlib/libc/sys/sysvi386/fpx.c newlib/libc/sys/sysvi386/fstat.s newlib/libc/sys/sysvi386/getdents.s newlib/libc/sys/sysvi386/getegid.s newlib/libc/sys/sysvi386/geteuid.s newlib/libc/sys/sysvi386/getgid.s newlib/libc/sys/sysvi386/getgroups.s newlib/libc/sys/sysvi386/getpid.s newlib/libc/sys/sysvi386/getuid.s newlib/libc/sys/sysvi386/ioctl.s newlib/libc/sys/sysvi386/isatty.c newlib/libc/sys/sysvi386/kill.s newlib/libc/sys/sysvi386/link.s newlib/libc/sys/sysvi386/lseek.s newlib/libc/sys/sysvi386/mkdir.s newlib/libc/sys/sysvi386/open.s newlib/libc/sys/sysvi386/opendir.c newlib/libc/sys/sysvi386/pathconf.s newlib/libc/sys/sysvi386/pause.s newlib/libc/sys/sysvi386/pipe.s newlib/libc/sys/sysvi386/read.s newlib/libc/sys/sysvi386/readdir.c newlib/libc/sys/sysvi386/rename.s newlib/libc/sys/sysvi386/rewinddir.c newlib/libc/sys/sysvi386/rmdir.s newlib/libc/sys/sysvi386/sbrk.c newlib/libc/sys/sysvi386/scandir.c newlib/libc/sys/sysvi386/seekdir.c newlib/libc/sys/sysvi386/setgid.s newlib/libc/sys/sysvi386/setuid.s newlib/libc/sys/sysvi386/sigaction.s newlib/libc/sys/sysvi386/signal.s newlib/libc/sys/sysvi386/sigprocmask.s newlib/libc/sys/sysvi386/sleep.c newlib/libc/sys/sysvi386/speed.c newlib/libc/sys/sysvi386/stat.s newlib/libc/sys/sysvi386/sys/dirent.h newlib/libc/sys/sysvi386/sys/param.h newlib/libc/sys/sysvi386/sys/setjmp.h newlib/libc/sys/sysvi386/sys/termio.h newlib/libc/sys/sysvi386/sys/termios.h newlib/libc/sys/sysvi386/sys/utime.h newlib/libc/sys/sysvi386/sys/utmp.h newlib/libc/sys/sysvi386/sys/wait.h newlib/libc/sys/sysvi386/sysconf.s newlib/libc/sys/sysvi386/tcgetattr.c newlib/libc/sys/sysvi386/tcline.c newlib/libc/sys/sysvi386/tcsetattr.c newlib/libc/sys/sysvi386/telldir.c newlib/libc/sys/sysvi386/time.s newlib/libc/sys/sysvi386/times.s newlib/libc/sys/sysvi386/unlink.s newlib/libc/sys/sysvi386/utime.s newlib/libc/sys/sysvi386/wait.s newlib/libc/sys/sysvi386/waitpid.s newlib/libc/sys/sysvi386/write.s newlib/libc/sys/sysvnecv70/Makefile.am newlib/libc/sys/sysvnecv70/Makefile.in newlib/libc/sys/sysvnecv70/aclocal.m4 newlib/libc/sys/sysvnecv70/cerror.s newlib/libc/sys/sysvnecv70/close.s newlib/libc/sys/sysvnecv70/configure newlib/libc/sys/sysvnecv70/configure.in newlib/libc/sys/sysvnecv70/crt0.s newlib/libc/sys/sysvnecv70/exit.s newlib/libc/sys/sysvnecv70/fps.s newlib/libc/sys/sysvnecv70/fpx.c newlib/libc/sys/sysvnecv70/fstat.s newlib/libc/sys/sysvnecv70/ioctl.s newlib/libc/sys/sysvnecv70/isatty.s newlib/libc/sys/sysvnecv70/lseek.s newlib/libc/sys/sysvnecv70/open.s newlib/libc/sys/sysvnecv70/read.s newlib/libc/sys/sysvnecv70/sbrk.s newlib/libc/sys/sysvnecv70/sysv60.s newlib/libc/sys/sysvnecv70/sysvnecv70.tex newlib/libc/sys/sysvnecv70/write.s newlib/libc/sys/tic80/Makefile.am newlib/libc/sys/tic80/Makefile.in newlib/libc/sys/tic80/aclocal.m4 newlib/libc/sys/tic80/configure newlib/libc/sys/tic80/configure.in newlib/libc/sys/tic80/crt0.c newlib/libc/sys/w65/Makefile.am newlib/libc/sys/w65/Makefile.in newlib/libc/sys/w65/aclocal.m4 newlib/libc/sys/w65/configure newlib/libc/sys/w65/configure.in newlib/libc/sys/w65/crt0.c newlib/libc/sys/w65/sys/syscall.h newlib/libc/sys/w65/syscalls.c newlib/libc/sys/w65/trap.c newlib/libc/sys/z8ksim/Makefile.am newlib/libc/sys/z8ksim/Makefile.in newlib/libc/sys/z8ksim/aclocal.m4 newlib/libc/sys/z8ksim/configure newlib/libc/sys/z8ksim/configure.in newlib/libc/sys/z8ksim/crt0.c newlib/libc/sys/z8ksim/glue.c newlib/libc/sys/z8ksim/sys/syscall.h newlib/libc/syscalls/Makefile.am newlib/libc/syscalls/Makefile.in newlib/libc/syscalls/sysclose.c newlib/libc/syscalls/sysexecve.c newlib/libc/syscalls/sysfcntl.c newlib/libc/syscalls/sysfork.c newlib/libc/syscalls/sysfstat.c newlib/libc/syscalls/sysgetpid.c newlib/libc/syscalls/sysgettod.c newlib/libc/syscalls/syskill.c newlib/libc/syscalls/syslink.c newlib/libc/syscalls/syslseek.c newlib/libc/syscalls/sysopen.c newlib/libc/syscalls/sysread.c newlib/libc/syscalls/syssbrk.c newlib/libc/syscalls/sysstat.c newlib/libc/syscalls/systimes.c newlib/libc/syscalls/sysunlink.c newlib/libc/syscalls/syswait.c newlib/libc/syscalls/syswrite.c newlib/libc/time/Makefile.am newlib/libc/time/Makefile.in newlib/libc/time/asctime.c newlib/libc/time/asctime_r.c newlib/libc/time/clock.c newlib/libc/time/ctime.c newlib/libc/time/ctime_r.c newlib/libc/time/difftime.c newlib/libc/time/gmtime.c newlib/libc/time/gmtime_r.c newlib/libc/time/lcltime.c newlib/libc/time/lcltime_r.c newlib/libc/time/mktime.c newlib/libc/time/strftime.c newlib/libc/time/time.c newlib/libc/time/time.tex newlib/libc/unix/Makefile.am newlib/libc/unix/Makefile.in newlib/libc/unix/getcwd.c newlib/libc/unix/getlogin.c newlib/libc/unix/getpass.c newlib/libc/unix/getpwent.c newlib/libc/unix/getut.c newlib/libc/unix/sigset.c newlib/libc/unix/ttyname.c newlib/libm/Makefile.am newlib/libm/Makefile.in newlib/libm/aclocal.m4 newlib/libm/common/Makefile.am newlib/libm/common/Makefile.in newlib/libm/common/common.tex newlib/libm/common/fdlibm.h newlib/libm/common/s_cbrt.c newlib/libm/common/s_copysign.c newlib/libm/common/s_expm1.c newlib/libm/common/s_finite.c newlib/libm/common/s_ilogb.c newlib/libm/common/s_infinity.c newlib/libm/common/s_lib_ver.c newlib/libm/common/s_log1p.c newlib/libm/common/s_logb.c newlib/libm/common/s_matherr.c newlib/libm/common/s_modf.c newlib/libm/common/s_nan.c newlib/libm/common/s_nextafter.c newlib/libm/common/s_rint.c newlib/libm/common/s_scalbn.c newlib/libm/common/sf_cbrt.c newlib/libm/common/sf_copysign.c newlib/libm/common/sf_expm1.c newlib/libm/common/sf_finite.c newlib/libm/common/sf_ilogb.c newlib/libm/common/sf_infinity.c newlib/libm/common/sf_log1p.c newlib/libm/common/sf_logb.c newlib/libm/common/sf_modf.c newlib/libm/common/sf_nan.c newlib/libm/common/sf_nextafter.c newlib/libm/common/sf_rint.c newlib/libm/common/sf_scalbn.c newlib/libm/config.h.in newlib/libm/configure newlib/libm/configure.in newlib/libm/libm.texinfo newlib/libm/machine/Makefile.am newlib/libm/machine/Makefile.in newlib/libm/machine/aclocal.m4 newlib/libm/machine/configure newlib/libm/machine/configure.in newlib/libm/machine/i386/Makefile.am newlib/libm/machine/i386/Makefile.in newlib/libm/machine/i386/aclocal.m4 newlib/libm/machine/i386/configure newlib/libm/machine/i386/configure.in newlib/libm/machine/i386/f_atan2.S newlib/libm/machine/i386/f_atan2f.S newlib/libm/machine/i386/f_exp.c newlib/libm/machine/i386/f_expf.c newlib/libm/machine/i386/f_frexp.S newlib/libm/machine/i386/f_frexpf.S newlib/libm/machine/i386/f_ldexp.S newlib/libm/machine/i386/f_ldexpf.S newlib/libm/machine/i386/f_log.S newlib/libm/machine/i386/f_log10.S newlib/libm/machine/i386/f_log10f.S newlib/libm/machine/i386/f_logf.S newlib/libm/machine/i386/f_math.h newlib/libm/machine/i386/f_pow.c newlib/libm/machine/i386/f_powf.c newlib/libm/machine/i386/f_tan.S newlib/libm/machine/i386/f_tanf.S newlib/libm/machine/i386/i386mach.h newlib/libm/math/Makefile.am newlib/libm/math/Makefile.in newlib/libm/math/e_acos.c newlib/libm/math/e_acosh.c newlib/libm/math/e_asin.c newlib/libm/math/e_atan2.c newlib/libm/math/e_atanh.c newlib/libm/math/e_cosh.c newlib/libm/math/e_exp.c newlib/libm/math/e_fmod.c newlib/libm/math/e_hypot.c newlib/libm/math/e_j0.c newlib/libm/math/e_j1.c newlib/libm/math/e_jn.c newlib/libm/math/e_log.c newlib/libm/math/e_log10.c newlib/libm/math/e_pow.c newlib/libm/math/e_rem_pio2.c newlib/libm/math/e_remainder.c newlib/libm/math/e_scalb.c newlib/libm/math/e_sinh.c newlib/libm/math/e_sqrt.c newlib/libm/math/ef_acos.c newlib/libm/math/ef_acosh.c newlib/libm/math/ef_asin.c newlib/libm/math/ef_atan2.c newlib/libm/math/ef_atanh.c newlib/libm/math/ef_cosh.c newlib/libm/math/ef_exp.c newlib/libm/math/ef_fmod.c newlib/libm/math/ef_hypot.c newlib/libm/math/ef_j0.c newlib/libm/math/ef_j1.c newlib/libm/math/ef_jn.c newlib/libm/math/ef_log.c newlib/libm/math/ef_log10.c newlib/libm/math/ef_pow.c newlib/libm/math/ef_rem_pio2.c newlib/libm/math/ef_remainder.c newlib/libm/math/ef_scalb.c newlib/libm/math/ef_sinh.c newlib/libm/math/ef_sqrt.c newlib/libm/math/er_gamma.c newlib/libm/math/er_lgamma.c newlib/libm/math/erf_gamma.c newlib/libm/math/erf_lgamma.c newlib/libm/math/k_cos.c newlib/libm/math/k_rem_pio2.c newlib/libm/math/k_sin.c newlib/libm/math/k_standard.c newlib/libm/math/k_tan.c newlib/libm/math/kf_cos.c newlib/libm/math/kf_rem_pio2.c newlib/libm/math/kf_sin.c newlib/libm/math/kf_tan.c newlib/libm/math/math.tex newlib/libm/math/s_asinh.c newlib/libm/math/s_atan.c newlib/libm/math/s_ceil.c newlib/libm/math/s_cos.c newlib/libm/math/s_erf.c newlib/libm/math/s_fabs.c newlib/libm/math/s_floor.c newlib/libm/math/s_frexp.c newlib/libm/math/s_infconst.c newlib/libm/math/s_isinf.c newlib/libm/math/s_isnan.c newlib/libm/math/s_ldexp.c newlib/libm/math/s_signif.c newlib/libm/math/s_sin.c newlib/libm/math/s_tan.c newlib/libm/math/s_tanh.c newlib/libm/math/sf_asinh.c newlib/libm/math/sf_atan.c newlib/libm/math/sf_ceil.c newlib/libm/math/sf_cos.c newlib/libm/math/sf_erf.c newlib/libm/math/sf_fabs.c newlib/libm/math/sf_floor.c newlib/libm/math/sf_frexp.c newlib/libm/math/sf_isinf.c newlib/libm/math/sf_isnan.c newlib/libm/math/sf_ldexp.c newlib/libm/math/sf_signif.c newlib/libm/math/sf_sin.c newlib/libm/math/sf_tan.c newlib/libm/math/sf_tanh.c newlib/libm/math/w_acos.c newlib/libm/math/w_acosh.c newlib/libm/math/w_asin.c newlib/libm/math/w_atan2.c newlib/libm/math/w_atanh.c newlib/libm/math/w_cabs.c newlib/libm/math/w_cosh.c newlib/libm/math/w_drem.c newlib/libm/math/w_exp.c newlib/libm/math/w_fmod.c newlib/libm/math/w_gamma.c newlib/libm/math/w_hypot.c newlib/libm/math/w_j0.c newlib/libm/math/w_j1.c newlib/libm/math/w_jn.c newlib/libm/math/w_lgamma.c newlib/libm/math/w_log.c newlib/libm/math/w_log10.c newlib/libm/math/w_pow.c newlib/libm/math/w_remainder.c newlib/libm/math/w_scalb.c newlib/libm/math/w_sinh.c newlib/libm/math/w_sqrt.c newlib/libm/math/wf_acos.c newlib/libm/math/wf_acosh.c newlib/libm/math/wf_asin.c newlib/libm/math/wf_atan2.c newlib/libm/math/wf_atanh.c newlib/libm/math/wf_cabs.c newlib/libm/math/wf_cosh.c newlib/libm/math/wf_drem.c newlib/libm/math/wf_exp.c newlib/libm/math/wf_fmod.c newlib/libm/math/wf_gamma.c newlib/libm/math/wf_hypot.c newlib/libm/math/wf_j0.c newlib/libm/math/wf_j1.c newlib/libm/math/wf_jn.c newlib/libm/math/wf_lgamma.c newlib/libm/math/wf_log.c newlib/libm/math/wf_log10.c newlib/libm/math/wf_pow.c newlib/libm/math/wf_remainder.c newlib/libm/math/wf_scalb.c newlib/libm/math/wf_sinh.c newlib/libm/math/wf_sqrt.c newlib/libm/math/wr_gamma.c newlib/libm/math/wr_lgamma.c newlib/libm/math/wrf_gamma.c newlib/libm/math/wrf_lgamma.c newlib/libm/mathfp/Makefile.am newlib/libm/mathfp/Makefile.in newlib/libm/mathfp/e_acosh.c newlib/libm/mathfp/e_atanh.c newlib/libm/mathfp/e_hypot.c newlib/libm/mathfp/e_j0.c newlib/libm/mathfp/e_j1.c newlib/libm/mathfp/e_remainder.c newlib/libm/mathfp/e_scalb.c newlib/libm/mathfp/ef_acosh.c newlib/libm/mathfp/ef_atanh.c newlib/libm/mathfp/ef_hypot.c newlib/libm/mathfp/ef_j0.c newlib/libm/mathfp/ef_j1.c newlib/libm/mathfp/ef_remainder.c newlib/libm/mathfp/ef_scalb.c newlib/libm/mathfp/er_gamma.c newlib/libm/mathfp/er_lgamma.c newlib/libm/mathfp/erf_gamma.c newlib/libm/mathfp/erf_lgamma.c newlib/libm/mathfp/mathfp.tex newlib/libm/mathfp/s_acos.c newlib/libm/mathfp/s_asin.c newlib/libm/mathfp/s_asine.c newlib/libm/mathfp/s_asinh.c newlib/libm/mathfp/s_atan.c newlib/libm/mathfp/s_atan2.c newlib/libm/mathfp/s_atangent.c newlib/libm/mathfp/s_ceil.c newlib/libm/mathfp/s_cos.c newlib/libm/mathfp/s_cosh.c newlib/libm/mathfp/s_erf.c newlib/libm/mathfp/s_exp.c newlib/libm/mathfp/s_fabs.c newlib/libm/mathfp/s_floor.c newlib/libm/mathfp/s_fmod.c newlib/libm/mathfp/s_frexp.c newlib/libm/mathfp/s_infconst.c newlib/libm/mathfp/s_isinf.c newlib/libm/mathfp/s_isnan.c newlib/libm/mathfp/s_ispos.c newlib/libm/mathfp/s_ldexp.c newlib/libm/mathfp/s_log.c newlib/libm/mathfp/s_log10.c newlib/libm/mathfp/s_logarithm.c newlib/libm/mathfp/s_mathcnst.c newlib/libm/mathfp/s_numtest.c newlib/libm/mathfp/s_pow.c newlib/libm/mathfp/s_signif.c newlib/libm/mathfp/s_sin.c newlib/libm/mathfp/s_sine.c newlib/libm/mathfp/s_sineh.c newlib/libm/mathfp/s_sinf.c newlib/libm/mathfp/s_sinh.c newlib/libm/mathfp/s_sqrt.c newlib/libm/mathfp/s_tan.c newlib/libm/mathfp/s_tanh.c newlib/libm/mathfp/sf_acos.c newlib/libm/mathfp/sf_asin.c newlib/libm/mathfp/sf_asine.c newlib/libm/mathfp/sf_asinh.c newlib/libm/mathfp/sf_atan.c newlib/libm/mathfp/sf_atan2.c newlib/libm/mathfp/sf_atangent.c newlib/libm/mathfp/sf_ceil.c newlib/libm/mathfp/sf_cos.c newlib/libm/mathfp/sf_cosh.c newlib/libm/mathfp/sf_erf.c newlib/libm/mathfp/sf_exp.c newlib/libm/mathfp/sf_fabs.c newlib/libm/mathfp/sf_floor.c newlib/libm/mathfp/sf_fmod.c newlib/libm/mathfp/sf_frexp.c newlib/libm/mathfp/sf_isinf.c newlib/libm/mathfp/sf_isnan.c newlib/libm/mathfp/sf_ispos.c newlib/libm/mathfp/sf_ldexp.c newlib/libm/mathfp/sf_log.c newlib/libm/mathfp/sf_log10.c newlib/libm/mathfp/sf_logarithm.c newlib/libm/mathfp/sf_numtest.c newlib/libm/mathfp/sf_pow.c newlib/libm/mathfp/sf_signif.c newlib/libm/mathfp/sf_sin.c newlib/libm/mathfp/sf_sine.c newlib/libm/mathfp/sf_sineh.c newlib/libm/mathfp/sf_sinh.c newlib/libm/mathfp/sf_sqrt.c newlib/libm/mathfp/sf_tan.c newlib/libm/mathfp/sf_tanh.c newlib/libm/mathfp/w_cabs.c newlib/libm/mathfp/w_drem.c newlib/libm/mathfp/w_jn.c newlib/libm/mathfp/wf_cabs.c newlib/libm/mathfp/wf_drem.c newlib/libm/mathfp/wf_jn.c newlib/libm/mathfp/zmath.h newlib/libm/test/Makefile.in newlib/libm/test/acos_vec.c newlib/libm/test/acosf_vec.c newlib/libm/test/acosh_vec.c newlib/libm/test/acoshf_vec.c newlib/libm/test/asin_vec.c newlib/libm/test/asinf_vec.c newlib/libm/test/asinh_vec.c newlib/libm/test/asinhf_vec.c newlib/libm/test/atan2_vec.c newlib/libm/test/atan2f_vec.c newlib/libm/test/atan_vec.c newlib/libm/test/atanf_vec.c newlib/libm/test/atanh_vec.c newlib/libm/test/atanhf_vec.c newlib/libm/test/ceil_vec.c newlib/libm/test/ceilf_vec.c newlib/libm/test/conv_vec.c newlib/libm/test/convert.c newlib/libm/test/cos_vec.c newlib/libm/test/cosf_vec.c newlib/libm/test/cosh_vec.c newlib/libm/test/coshf_vec.c newlib/libm/test/dcvt.c newlib/libm/test/dvec.c newlib/libm/test/erf_vec.c newlib/libm/test/erfc_vec.c newlib/libm/test/erfcf_vec.c newlib/libm/test/erff_vec.c newlib/libm/test/exp_vec.c newlib/libm/test/expf_vec.c newlib/libm/test/fabs_vec.c newlib/libm/test/fabsf_vec.c newlib/libm/test/floor_vec.c newlib/libm/test/floorf_vec.c newlib/libm/test/fmod_vec.c newlib/libm/test/fmodf_vec.c newlib/libm/test/gamma_vec.c newlib/libm/test/gammaf_vec.c newlib/libm/test/hypot_vec.c newlib/libm/test/hypotf_vec.c newlib/libm/test/iconv_vec.c newlib/libm/test/j0_vec.c newlib/libm/test/j0f_vec.c newlib/libm/test/j1_vec.c newlib/libm/test/j1f_vec.c newlib/libm/test/jn_vec.c newlib/libm/test/jnf_vec.c newlib/libm/test/log10_vec.c newlib/libm/test/log10f_vec.c newlib/libm/test/log1p_vec.c newlib/libm/test/log1pf_vec.c newlib/libm/test/log2_vec.c newlib/libm/test/log2f_vec.c newlib/libm/test/log_vec.c newlib/libm/test/logf_vec.c newlib/libm/test/math.c newlib/libm/test/math2.c newlib/libm/test/sin_vec.c newlib/libm/test/sinf_vec.c newlib/libm/test/sinh_vec.c newlib/libm/test/sinhf_vec.c newlib/libm/test/sprint_ivec.c newlib/libm/test/sprint_vec.c newlib/libm/test/sqrt_vec.c newlib/libm/test/sqrtf_vec.c newlib/libm/test/string.c newlib/libm/test/tan_vec.c newlib/libm/test/tanf_vec.c newlib/libm/test/tanh_vec.c newlib/libm/test/tanhf_vec.c newlib/libm/test/test.c newlib/libm/test/test.h newlib/libm/test/test_ieee.c newlib/libm/test/test_is.c newlib/libm/test/y0_vec.c newlib/libm/test/y0f_vec.c newlib/libm/test/y1_vec.c newlib/libm/test/y1f_vec.c newlib/libm/test/yn_vec.c newlib/libm/test/ynf_vec.c setup.com symlink-tree texinfo/texinfo.tex winsup/CYGWIN_LICENSE winsup/ChangeLog winsup/MAINTAINERS winsup/Makefile.common winsup/Makefile.in winsup/bz2lib/CHANGES winsup/bz2lib/ChangeLog winsup/bz2lib/LICENSE winsup/bz2lib/Makefile winsup/bz2lib/Makefile-libbz2_so winsup/bz2lib/Makefile.in winsup/bz2lib/README winsup/bz2lib/README.COMPILATION.PROBLEMS winsup/bz2lib/Y2K_INFO winsup/bz2lib/aclocal.m4 winsup/bz2lib/blocksort.c winsup/bz2lib/bzip2.1 winsup/bz2lib/bzip2.1.preformatted winsup/bz2lib/bzip2.c winsup/bz2lib/bzip2.txt winsup/bz2lib/bzip2recover.c winsup/bz2lib/bzlib.c winsup/bz2lib/bzlib.h winsup/bz2lib/bzlib_private.h winsup/bz2lib/compress.c winsup/bz2lib/configure winsup/bz2lib/configure.in winsup/bz2lib/crctable.c winsup/bz2lib/decompress.c winsup/bz2lib/dlltest.c winsup/bz2lib/dlltest.dsp winsup/bz2lib/huffman.c winsup/bz2lib/libbz2.def winsup/bz2lib/libbz2.dsp winsup/bz2lib/makefile.msc winsup/bz2lib/manual.ps winsup/bz2lib/manual.texi winsup/bz2lib/manual_1.html winsup/bz2lib/manual_2.html winsup/bz2lib/manual_3.html winsup/bz2lib/manual_4.html winsup/bz2lib/manual_toc.html winsup/bz2lib/randtable.c winsup/bz2lib/sample1.bz2 winsup/bz2lib/sample1.ref winsup/bz2lib/sample2.bz2 winsup/bz2lib/sample2.ref winsup/bz2lib/sample3.bz2 winsup/bz2lib/sample3.ref winsup/bz2lib/spewG.c winsup/bz2lib/unzcrash.c winsup/bz2lib/words0 winsup/bz2lib/words1 winsup/bz2lib/words2 winsup/bz2lib/words3 winsup/configure winsup/configure.in winsup/doc/ChangeLog winsup/doc/Makefile.in winsup/doc/calls.texinfo winsup/doc/changes.texinfo winsup/doc/configure winsup/doc/configure.in winsup/doc/copy.texinfo winsup/doc/cygwin-api.in.sgml winsup/doc/cygwin-ug-net.in.sgml winsup/doc/cygwin-ug.in.sgml winsup/doc/cygwinenv.sgml winsup/doc/dll.sgml winsup/doc/doctool.c winsup/doc/doctool.txt winsup/doc/faq.texinfo winsup/doc/fhandler-tut.txt winsup/doc/filemodes.sgml winsup/doc/gcc.sgml winsup/doc/gdb.sgml winsup/doc/history.texinfo winsup/doc/how-api.texinfo winsup/doc/how-programming.texinfo winsup/doc/how-resources.texinfo winsup/doc/how-using.texinfo winsup/doc/how.texinfo winsup/doc/install.texinfo winsup/doc/legal.sgml winsup/doc/ntsec.sgml winsup/doc/overview.sgml winsup/doc/overview2.sgml winsup/doc/pathnames.sgml winsup/doc/programming.sgml winsup/doc/readme.texinfo winsup/doc/relnotes.texinfo winsup/doc/setup-net.sgml winsup/doc/setup.sgml winsup/doc/setup2.sgml winsup/doc/textbinary.sgml winsup/doc/using.sgml winsup/doc/what.texinfo winsup/doc/who.texinfo winsup/doc/windres.sgml winsup/mingw/CRT_noglob.c winsup/mingw/CRTfmode.c winsup/mingw/CRTglob.c winsup/mingw/CRTinit.c winsup/mingw/ChangeLog winsup/mingw/Makefile.in winsup/mingw/README winsup/mingw/TODO winsup/mingw/config.guess winsup/mingw/config.sub winsup/mingw/configure winsup/mingw/configure.in winsup/mingw/crt1.c winsup/mingw/crtdll.def winsup/mingw/crtmt.c winsup/mingw/crtst.c winsup/mingw/ctype_old.c winsup/mingw/dirent.c winsup/mingw/dllcrt1.c winsup/mingw/dllmain.c winsup/mingw/gccmain.c winsup/mingw/include/_mingw.h winsup/mingw/include/assert.h winsup/mingw/include/conio.h winsup/mingw/include/ctype.h winsup/mingw/include/dir.h winsup/mingw/include/direct.h winsup/mingw/include/dirent.h winsup/mingw/include/dos.h winsup/mingw/include/errno.h winsup/mingw/include/excpt.h winsup/mingw/include/fcntl.h winsup/mingw/include/float.h winsup/mingw/include/io.h winsup/mingw/include/limits.h winsup/mingw/include/locale.h winsup/mingw/include/malloc.h winsup/mingw/include/math.h winsup/mingw/include/mem.h winsup/mingw/include/memory.h winsup/mingw/include/process.h winsup/mingw/include/setjmp.h winsup/mingw/include/share.h winsup/mingw/include/signal.h winsup/mingw/include/stdarg.h winsup/mingw/include/stddef.h winsup/mingw/include/stdint.h winsup/mingw/include/stdio.h winsup/mingw/include/stdlib.h winsup/mingw/include/string.h winsup/mingw/include/strings.h winsup/mingw/include/sys/fcntl.h winsup/mingw/include/sys/file.h winsup/mingw/include/sys/locking.h winsup/mingw/include/sys/stat.h winsup/mingw/include/sys/time.h winsup/mingw/include/sys/timeb.h winsup/mingw/include/sys/types.h winsup/mingw/include/sys/unistd.h winsup/mingw/include/sys/utime.h winsup/mingw/include/tchar.h winsup/mingw/include/time.h winsup/mingw/include/unistd.h winsup/mingw/include/values.h winsup/mingw/include/varargs.h winsup/mingw/include/wchar.h winsup/mingw/include/wctype.h winsup/mingw/init.c winsup/mingw/install-sh winsup/mingw/jamfile winsup/mingw/main.c winsup/mingw/mkinstalldirs winsup/mingw/moldname-crtdll.def winsup/mingw/moldname-msvcrt.def winsup/mingw/moldname.def winsup/mingw/moldname.def.in winsup/mingw/msvcrt.def winsup/mingw/msvcrt20.def winsup/mingw/msvcrt40.def winsup/mingw/mthr.c winsup/mingw/mthr_init.c winsup/mingw/mthr_stub.c winsup/mingw/profile/Makefile.in winsup/mingw/profile/configure winsup/mingw/profile/configure.in winsup/mingw/profile/gcrt0.c winsup/mingw/profile/gmon.c winsup/mingw/profile/gmon.h winsup/mingw/profile/mcount.c winsup/mingw/profile/profil.c winsup/mingw/profile/profil.h winsup/mingw/profile/profile.h winsup/mingw/readme.txt winsup/mingw/samples/dirent/jamfile winsup/mingw/samples/dirent/test.c winsup/mingw/samples/dlltest/dll.c winsup/mingw/samples/dlltest/dll.def winsup/mingw/samples/dlltest/dll.h winsup/mingw/samples/dlltest/exe.c winsup/mingw/samples/dlltest/exe.exp winsup/mingw/samples/dlltest/expexe.c winsup/mingw/samples/dlltest/expexe.def winsup/mingw/samples/dlltest/jamfile winsup/mingw/samples/dlltest/loaddll.c winsup/mingw/samples/dlltest/loadexe.c winsup/mingw/samples/dlltest/readme.txt winsup/mingw/samples/dlltest/silly.cpp winsup/mingw/samples/dlltest/silly.def winsup/mingw/samples/dlltest/silly.exp winsup/mingw/samples/dlltest/silly.h winsup/mingw/samples/dlltest/sillydll.cpp winsup/mingw/samples/filehand/filehand.c winsup/mingw/samples/filehand/jamfile winsup/mingw/samples/filehand/junk.txt winsup/mingw/samples/fixargv/fixargv.c winsup/mingw/samples/fixargv/fixargv.h winsup/mingw/samples/fixargv/readme.txt winsup/mingw/samples/fmode/all.c winsup/mingw/samples/fmode/jamfile winsup/mingw/samples/fmode/readme.txt winsup/mingw/samples/fmode/test.c winsup/mingw/samples/globbing/glob.c winsup/mingw/samples/globbing/jamfile winsup/mingw/samples/globbing/noglob.c winsup/mingw/samples/globbing/readme.txt winsup/mingw/samples/print/jamfile winsup/mingw/samples/print/prntest.c winsup/mingw/samples/seh/eh3.c winsup/mingw/samples/seh/exutil.c winsup/mingw/samples/seh/exutil.def winsup/mingw/samples/seh/exutil.h winsup/mingw/samples/seh/jamfile winsup/mingw/samples/seh/sehfix.c winsup/mingw/samples/seh/sehsub.c winsup/mingw/samples/seh/sehtest.c winsup/mingw/samples/simpledll/dll.c winsup/mingw/samples/simpledll/dll.cpp winsup/mingw/samples/simpledll/dll.def winsup/mingw/samples/simpledll/exe.c winsup/mingw/samples/simpledll/jamfile winsup/mingw/samples/simpledll/makedll.bat winsup/mingw/samples/test/jamfile winsup/mingw/samples/test/test.c winsup/mingw/samples/wintest/jamfile winsup/mingw/samples/wintest/test.c winsup/mingw/string_old.c winsup/subauth/ChangeLog winsup/subauth/Makefile.in winsup/subauth/configure winsup/subauth/configure.in winsup/subauth/cygsuba.c winsup/subauth/cygsuba.din winsup/testsuite/ChangeLog winsup/testsuite/Makefile.in winsup/testsuite/README winsup/testsuite/config/default.exp winsup/testsuite/configure winsup/testsuite/configure.in winsup/testsuite/libltp/include/dataascii.h winsup/testsuite/libltp/include/databin.h winsup/testsuite/libltp/include/file_lock.h winsup/testsuite/libltp/include/forker.h winsup/testsuite/libltp/include/open_flags.h winsup/testsuite/libltp/include/pattern.h winsup/testsuite/libltp/include/random_range.h winsup/testsuite/libltp/include/rmobj.h winsup/testsuite/libltp/include/search_path.h winsup/testsuite/libltp/include/str_to_bytes.h winsup/testsuite/libltp/include/string_to_tokens.h winsup/testsuite/libltp/include/test.h winsup/testsuite/libltp/include/tlibio.h winsup/testsuite/libltp/include/usctest.h winsup/testsuite/libltp/include/write_log.h winsup/testsuite/libltp/lib/dataascii.c winsup/testsuite/libltp/lib/databin.c winsup/testsuite/libltp/lib/datapid.c winsup/testsuite/libltp/lib/forker.c winsup/testsuite/libltp/lib/get_high_address.c winsup/testsuite/libltp/lib/libtestsuite.c winsup/testsuite/libltp/lib/open_flags.c winsup/testsuite/libltp/lib/parse_opts.c winsup/testsuite/libltp/lib/pattern.c winsup/testsuite/libltp/lib/rmobj.c winsup/testsuite/libltp/lib/search_path.c winsup/testsuite/libltp/lib/str_to_bytes.c winsup/testsuite/libltp/lib/string_to_tokens.c winsup/testsuite/libltp/lib/tst_res.c winsup/testsuite/libltp/lib/tst_sig.c winsup/testsuite/libltp/lib/tst_tmpdir.c winsup/testsuite/libltp/lib/write_log.c winsup/testsuite/winsup.api/checksignal.c winsup/testsuite/winsup.api/crlf.c winsup/testsuite/winsup.api/devzero.c winsup/testsuite/winsup.api/iospeed.c winsup/testsuite/winsup.api/known_bugs.tcl winsup/testsuite/winsup.api/ltp/access01.c winsup/testsuite/winsup.api/ltp/access03.c winsup/testsuite/winsup.api/ltp/access04.c winsup/testsuite/winsup.api/ltp/access05.c winsup/testsuite/winsup.api/ltp/alarm01.c winsup/testsuite/winsup.api/ltp/alarm02.c winsup/testsuite/winsup.api/ltp/alarm03.c winsup/testsuite/winsup.api/ltp/alarm07.c winsup/testsuite/winsup.api/ltp/asyncio02.c winsup/testsuite/winsup.api/ltp/chdir02.c winsup/testsuite/winsup.api/ltp/chdir04.c winsup/testsuite/winsup.api/ltp/chmod01.c winsup/testsuite/winsup.api/ltp/chmod02.c winsup/testsuite/winsup.api/ltp/chown01.c winsup/testsuite/winsup.api/ltp/close01.c winsup/testsuite/winsup.api/ltp/close02.c winsup/testsuite/winsup.api/ltp/close08.c winsup/testsuite/winsup.api/ltp/creat01.c winsup/testsuite/winsup.api/ltp/creat03.c winsup/testsuite/winsup.api/ltp/creat09.c winsup/testsuite/winsup.api/ltp/dup01.c winsup/testsuite/winsup.api/ltp/dup02.c winsup/testsuite/winsup.api/ltp/dup03.c winsup/testsuite/winsup.api/ltp/dup04.c winsup/testsuite/winsup.api/ltp/dup05.c winsup/testsuite/winsup.api/ltp/execl01.c winsup/testsuite/winsup.api/ltp/execle01.c winsup/testsuite/winsup.api/ltp/execlp01.c winsup/testsuite/winsup.api/ltp/execv01.c winsup/testsuite/winsup.api/ltp/execve01.c winsup/testsuite/winsup.api/ltp/execvp01.c winsup/testsuite/winsup.api/ltp/exit01.c winsup/testsuite/winsup.api/ltp/exit02.c winsup/testsuite/winsup.api/ltp/fchdir01.c winsup/testsuite/winsup.api/ltp/fchdir02.c winsup/testsuite/winsup.api/ltp/fchmod01.c winsup/testsuite/winsup.api/ltp/fchown01.c winsup/testsuite/winsup.api/ltp/fcntl02.c winsup/testsuite/winsup.api/ltp/fcntl03.c winsup/testsuite/winsup.api/ltp/fcntl04.c winsup/testsuite/winsup.api/ltp/fcntl05.c winsup/testsuite/winsup.api/ltp/fcntl07.c winsup/testsuite/winsup.api/ltp/fcntl07B.c winsup/testsuite/winsup.api/ltp/fcntl08.c winsup/testsuite/winsup.api/ltp/fcntl09.c winsup/testsuite/winsup.api/ltp/fcntl10.c winsup/testsuite/winsup.api/ltp/fork01.c winsup/testsuite/winsup.api/ltp/fork02.c winsup/testsuite/winsup.api/ltp/fork03.c winsup/testsuite/winsup.api/ltp/fork04.c winsup/testsuite/winsup.api/ltp/fork06.c winsup/testsuite/winsup.api/ltp/fork07.c winsup/testsuite/winsup.api/ltp/fork09.c winsup/testsuite/winsup.api/ltp/fork10.c winsup/testsuite/winsup.api/ltp/fork11.c winsup/testsuite/winsup.api/ltp/fpathconf01.c winsup/testsuite/winsup.api/ltp/fstat01.c winsup/testsuite/winsup.api/ltp/fstat02.c winsup/testsuite/winsup.api/ltp/fstat03.c winsup/testsuite/winsup.api/ltp/fstat04.c winsup/testsuite/winsup.api/ltp/fsync01.c winsup/testsuite/winsup.api/ltp/ftruncate01.c winsup/testsuite/winsup.api/ltp/ftruncate02.c winsup/testsuite/winsup.api/ltp/ftruncate03.c winsup/testsuite/winsup.api/ltp/getegid01.c winsup/testsuite/winsup.api/ltp/geteuid01.c winsup/testsuite/winsup.api/ltp/getgid01.c winsup/testsuite/winsup.api/ltp/getgid02.c winsup/testsuite/winsup.api/ltp/getgid03.c winsup/testsuite/winsup.api/ltp/getgroups01.c winsup/testsuite/winsup.api/ltp/getgroups02.c winsup/testsuite/winsup.api/ltp/gethostid01.c winsup/testsuite/winsup.api/ltp/gethostname01.c winsup/testsuite/winsup.api/ltp/getpgid01.c winsup/testsuite/winsup.api/ltp/getpgid02.c winsup/testsuite/winsup.api/ltp/getpgrp01.c winsup/testsuite/winsup.api/ltp/getpid01.c winsup/testsuite/winsup.api/ltp/getpid02.c winsup/testsuite/winsup.api/ltp/getppid01.c winsup/testsuite/winsup.api/ltp/getppid02.c winsup/testsuite/winsup.api/ltp/getuid01.c winsup/testsuite/winsup.api/ltp/getuid02.c winsup/testsuite/winsup.api/ltp/getuid03.c winsup/testsuite/winsup.api/ltp/kill01.c winsup/testsuite/winsup.api/ltp/kill02.c winsup/testsuite/winsup.api/ltp/kill03.c winsup/testsuite/winsup.api/ltp/kill04.c winsup/testsuite/winsup.api/ltp/kill09.c winsup/testsuite/winsup.api/ltp/link02.c winsup/testsuite/winsup.api/ltp/link03.c winsup/testsuite/winsup.api/ltp/link04.c winsup/testsuite/winsup.api/ltp/link05.c winsup/testsuite/winsup.api/ltp/lseek01.c winsup/testsuite/winsup.api/ltp/lseek02.c winsup/testsuite/winsup.api/ltp/lseek03.c winsup/testsuite/winsup.api/ltp/lseek04.c winsup/testsuite/winsup.api/ltp/lseek05.c winsup/testsuite/winsup.api/ltp/lseek06.c winsup/testsuite/winsup.api/ltp/lseek07.c winsup/testsuite/winsup.api/ltp/lseek08.c winsup/testsuite/winsup.api/ltp/lseek09.c winsup/testsuite/winsup.api/ltp/lseek10.c winsup/testsuite/winsup.api/ltp/lstat02.c winsup/testsuite/winsup.api/ltp/mkdir01.c winsup/testsuite/winsup.api/ltp/mkdir08.c winsup/testsuite/winsup.api/ltp/mknod01.c winsup/testsuite/winsup.api/ltp/mmap001.c winsup/testsuite/winsup.api/ltp/mmap02.c winsup/testsuite/winsup.api/ltp/mmap03.c winsup/testsuite/winsup.api/ltp/mmap04.c winsup/testsuite/winsup.api/ltp/mmap05.c winsup/testsuite/winsup.api/ltp/mmap06.c winsup/testsuite/winsup.api/ltp/mmap07.c winsup/testsuite/winsup.api/ltp/mmap08.c winsup/testsuite/winsup.api/ltp/munmap01.c winsup/testsuite/winsup.api/ltp/munmap02.c winsup/testsuite/winsup.api/ltp/nice05.c winsup/testsuite/winsup.api/ltp/open02.c winsup/testsuite/winsup.api/ltp/open03.c winsup/testsuite/winsup.api/ltp/pathconf01.c winsup/testsuite/winsup.api/ltp/pause01.c winsup/testsuite/winsup.api/ltp/pipe01.c winsup/testsuite/winsup.api/ltp/pipe08.c winsup/testsuite/winsup.api/ltp/pipe09.c winsup/testsuite/winsup.api/ltp/pipe10.c winsup/testsuite/winsup.api/ltp/pipe11.c winsup/testsuite/winsup.api/ltp/poll01.c winsup/testsuite/winsup.api/ltp/read01.c winsup/testsuite/winsup.api/ltp/read04.c winsup/testsuite/winsup.api/ltp/readdir01.c winsup/testsuite/winsup.api/ltp/readlink01.c winsup/testsuite/winsup.api/ltp/readlink02.c winsup/testsuite/winsup.api/ltp/readlink03.c winsup/testsuite/winsup.api/ltp/rename01.c winsup/testsuite/winsup.api/ltp/rename02.c winsup/testsuite/winsup.api/ltp/rename08.c winsup/testsuite/winsup.api/ltp/rename10.c winsup/testsuite/winsup.api/ltp/rmdir01.c winsup/testsuite/winsup.api/ltp/rmdir04.c winsup/testsuite/winsup.api/ltp/rmdir05.c winsup/testsuite/winsup.api/ltp/sbrk01.c winsup/testsuite/winsup.api/ltp/select01.c winsup/testsuite/winsup.api/ltp/select02.c winsup/testsuite/winsup.api/ltp/select03.c winsup/testsuite/winsup.api/ltp/setgid01.c winsup/testsuite/winsup.api/ltp/setgroups01.c winsup/testsuite/winsup.api/ltp/setpgid01.c winsup/testsuite/winsup.api/ltp/setregid01.c winsup/testsuite/winsup.api/ltp/setreuid01.c winsup/testsuite/winsup.api/ltp/setuid01.c winsup/testsuite/winsup.api/ltp/setuid02.c winsup/testsuite/winsup.api/ltp/signal03.c winsup/testsuite/winsup.api/ltp/stat01.c winsup/testsuite/winsup.api/ltp/stat02.c winsup/testsuite/winsup.api/ltp/stat03.c winsup/testsuite/winsup.api/ltp/stat05.c winsup/testsuite/winsup.api/ltp/stat06.c winsup/testsuite/winsup.api/ltp/symlink01.c winsup/testsuite/winsup.api/ltp/symlink02.c winsup/testsuite/winsup.api/ltp/symlink03.c winsup/testsuite/winsup.api/ltp/symlink04.c winsup/testsuite/winsup.api/ltp/symlink05.c winsup/testsuite/winsup.api/ltp/sync01.c winsup/testsuite/winsup.api/ltp/sync02.c winsup/testsuite/winsup.api/ltp/time01.c winsup/testsuite/winsup.api/ltp/time02.c winsup/testsuite/winsup.api/ltp/times01.c winsup/testsuite/winsup.api/ltp/times02.c winsup/testsuite/winsup.api/ltp/times03.c winsup/testsuite/winsup.api/ltp/truncate01.c winsup/testsuite/winsup.api/ltp/truncate02.c winsup/testsuite/winsup.api/ltp/ulimit01.c winsup/testsuite/winsup.api/ltp/umask01.c winsup/testsuite/winsup.api/ltp/umask02.c winsup/testsuite/winsup.api/ltp/umask03.c winsup/testsuite/winsup.api/ltp/uname01.c winsup/testsuite/winsup.api/ltp/unlink05.c winsup/testsuite/winsup.api/ltp/unlink06.c winsup/testsuite/winsup.api/ltp/unlink07.c winsup/testsuite/winsup.api/ltp/unlink08.c winsup/testsuite/winsup.api/ltp/vfork01.c winsup/testsuite/winsup.api/ltp/wait02.c winsup/testsuite/winsup.api/ltp/wait401.c winsup/testsuite/winsup.api/ltp/wait402.c winsup/testsuite/winsup.api/ltp/write01.c winsup/testsuite/winsup.api/ltp/write02.c winsup/testsuite/winsup.api/ltp/write03.c winsup/testsuite/winsup.api/mmaptest01.c winsup/testsuite/winsup.api/mmaptest02.c winsup/testsuite/winsup.api/mmaptest03.c winsup/testsuite/winsup.api/mmaptest04.c winsup/testsuite/winsup.api/nullgetcwd.c winsup/testsuite/winsup.api/pthread/cleanup2.c winsup/testsuite/winsup.api/pthread/cleanup3.c winsup/testsuite/winsup.api/pthread/condvar1.c winsup/testsuite/winsup.api/pthread/condvar2.c winsup/testsuite/winsup.api/pthread/condvar2_1.c winsup/testsuite/winsup.api/pthread/condvar3.c winsup/testsuite/winsup.api/pthread/condvar3_1.c winsup/testsuite/winsup.api/pthread/condvar3_2.c winsup/testsuite/winsup.api/pthread/condvar3_3.c winsup/testsuite/winsup.api/pthread/condvar4.c winsup/testsuite/winsup.api/pthread/condvar5.c winsup/testsuite/winsup.api/pthread/condvar6.c winsup/testsuite/winsup.api/pthread/condvar8.c winsup/testsuite/winsup.api/pthread/count1.c winsup/testsuite/winsup.api/pthread/create1.c winsup/testsuite/winsup.api/pthread/create2.c winsup/testsuite/winsup.api/pthread/equal1.c winsup/testsuite/winsup.api/pthread/exit1.c winsup/testsuite/winsup.api/pthread/exit2.c winsup/testsuite/winsup.api/pthread/exit3.c winsup/testsuite/winsup.api/pthread/inherit1.c winsup/testsuite/winsup.api/pthread/join0.c winsup/testsuite/winsup.api/pthread/join1.c winsup/testsuite/winsup.api/pthread/join2.c winsup/testsuite/winsup.api/pthread/mutex1.c winsup/testsuite/winsup.api/pthread/mutex1r.c winsup/testsuite/winsup.api/pthread/mutex2.c winsup/testsuite/winsup.api/pthread/mutex3.c winsup/testsuite/winsup.api/pthread/mutex6r.c winsup/testsuite/winsup.api/pthread/once1.c winsup/testsuite/winsup.api/pthread/priority1.c winsup/testsuite/winsup.api/pthread/priority2.c winsup/testsuite/winsup.api/pthread/self1.c winsup/testsuite/winsup.api/pthread/self2.c winsup/testsuite/winsup.api/pthread/test.h winsup/testsuite/winsup.api/pthread/tsd1.c winsup/testsuite/winsup.api/samples/sample-fail.c winsup/testsuite/winsup.api/samples/sample-miscompile.c winsup/testsuite/winsup.api/samples/sample-pass.c winsup/testsuite/winsup.api/sigchld.c winsup/testsuite/winsup.api/signal-into-win32-api.c winsup/testsuite/winsup.api/systemcall.c winsup/testsuite/winsup.api/waitpid.c winsup/testsuite/winsup.api/winsup.exp winsup/utils/ChangeLog winsup/utils/ChangeLog-2000 winsup/utils/Makefile.in winsup/utils/aclocal.m4 winsup/utils/configure winsup/utils/configure.in winsup/utils/cygcheck.cc winsup/utils/cygpath.cc winsup/utils/dump_setup.cc winsup/utils/dumper.cc winsup/utils/dumper.h winsup/utils/getfacl.c winsup/utils/kill.cc winsup/utils/mkgroup.c winsup/utils/mkpasswd.c winsup/utils/module_info.cc winsup/utils/mount.cc winsup/utils/parse_pe.cc winsup/utils/passwd.c winsup/utils/path.cc winsup/utils/path.h winsup/utils/ps.cc winsup/utils/regtool.cc winsup/utils/setfacl.c winsup/utils/ssp.c winsup/utils/ssp.txt winsup/utils/strace.cc winsup/utils/umount.cc winsup/utils/utils.sgml winsup/w32api/CONTRIBUTIONS winsup/w32api/ChangeLog winsup/w32api/Makefile.in winsup/w32api/README winsup/w32api/TODO winsup/w32api/config.guess winsup/w32api/config.sub winsup/w32api/configure winsup/w32api/configure.in winsup/w32api/include/accctrl.h winsup/w32api/include/aclapi.h winsup/w32api/include/basetsd.h winsup/w32api/include/basetyps.h winsup/w32api/include/cderr.h winsup/w32api/include/cguid.h winsup/w32api/include/commctrl.h winsup/w32api/include/commdlg.h winsup/w32api/include/cpl.h winsup/w32api/include/cplext.h winsup/w32api/include/custcntl.h winsup/w32api/include/dbt.h winsup/w32api/include/dde.h winsup/w32api/include/ddeml.h winsup/w32api/include/dlgs.h winsup/w32api/include/excpt.h winsup/w32api/include/httpext.h winsup/w32api/include/imagehlp.h winsup/w32api/include/imm.h winsup/w32api/include/initguid.h winsup/w32api/include/intshcut.h winsup/w32api/include/ipexport.h winsup/w32api/include/iphlpapi.h winsup/w32api/include/ipifcons.h winsup/w32api/include/iprtrmib.h winsup/w32api/include/iptypes.h winsup/w32api/include/isguids.h winsup/w32api/include/largeint.h winsup/w32api/include/lm.h winsup/w32api/include/lmaccess.h winsup/w32api/include/lmalert.h winsup/w32api/include/lmapibuf.h winsup/w32api/include/lmat.h winsup/w32api/include/lmaudit.h winsup/w32api/include/lmbrowsr.h winsup/w32api/include/lmchdev.h winsup/w32api/include/lmconfig.h winsup/w32api/include/lmcons.h winsup/w32api/include/lmerr.h winsup/w32api/include/lmerrlog.h winsup/w32api/include/lmmsg.h winsup/w32api/include/lmremutl.h winsup/w32api/include/lmrepl.h winsup/w32api/include/lmserver.h winsup/w32api/include/lmshare.h winsup/w32api/include/lmsname.h winsup/w32api/include/lmstats.h winsup/w32api/include/lmsvc.h winsup/w32api/include/lmuse.h winsup/w32api/include/lmuseflg.h winsup/w32api/include/lmwksta.h winsup/w32api/include/lzexpand.h winsup/w32api/include/mapi.h winsup/w32api/include/mciavi.h winsup/w32api/include/mcx.h winsup/w32api/include/mmsystem.h winsup/w32api/include/mswsock.h winsup/w32api/include/nb30.h winsup/w32api/include/nddeapi.h winsup/w32api/include/nspapi.h winsup/w32api/include/ntdef.h winsup/w32api/include/ntsecapi.h winsup/w32api/include/ntsecpkg.h winsup/w32api/include/oaidl.h winsup/w32api/include/objbase.h winsup/w32api/include/objfwd.h winsup/w32api/include/objidl.h winsup/w32api/include/ocidl.h winsup/w32api/include/odbcinst.h winsup/w32api/include/ole.h winsup/w32api/include/ole2.h winsup/w32api/include/ole2ver.h winsup/w32api/include/oleauto.h winsup/w32api/include/olectl.h winsup/w32api/include/olectlid.h winsup/w32api/include/oledlg.h winsup/w32api/include/oleidl.h winsup/w32api/include/pbt.h winsup/w32api/include/poppack.h winsup/w32api/include/prsht.h winsup/w32api/include/psapi.h winsup/w32api/include/pshpack1.h winsup/w32api/include/pshpack2.h winsup/w32api/include/pshpack4.h winsup/w32api/include/pshpack8.h winsup/w32api/include/rapi.h winsup/w32api/include/ras.h winsup/w32api/include/raserror.h winsup/w32api/include/rassapi.h winsup/w32api/include/regstr.h winsup/w32api/include/richedit.h winsup/w32api/include/richole.h winsup/w32api/include/rpc.h winsup/w32api/include/rpcdce.h winsup/w32api/include/rpcdce2.h winsup/w32api/include/rpcdcep.h winsup/w32api/include/rpcndr.h winsup/w32api/include/rpcnsi.h winsup/w32api/include/rpcnsip.h winsup/w32api/include/rpcnterr.h winsup/w32api/include/rpcproxy.h winsup/w32api/include/schannel.h winsup/w32api/include/schnlsp.h winsup/w32api/include/scrnsave.h winsup/w32api/include/security.h winsup/w32api/include/setupapi.h winsup/w32api/include/shellapi.h winsup/w32api/include/shlguid.h winsup/w32api/include/shlobj.h winsup/w32api/include/sql.h winsup/w32api/include/sqlext.h winsup/w32api/include/sqltypes.h winsup/w32api/include/sqlucode.h winsup/w32api/include/sspi.h winsup/w32api/include/subauth.h winsup/w32api/include/tlhelp32.h winsup/w32api/include/unknwn.h winsup/w32api/include/userenv.h winsup/w32api/include/w32api.h winsup/w32api/include/winbase.h winsup/w32api/include/wincon.h winsup/w32api/include/wincrypt.h winsup/w32api/include/windef.h winsup/w32api/include/windows.h winsup/w32api/include/windowsx.h winsup/w32api/include/winerror.h winsup/w32api/include/wingdi.h winsup/w32api/include/wininet.h winsup/w32api/include/winioctl.h winsup/w32api/include/winnetwk.h winsup/w32api/include/winnls.h winsup/w32api/include/winnt.h winsup/w32api/include/winperf.h winsup/w32api/include/winreg.h winsup/w32api/include/winresrc.h winsup/w32api/include/winsock.h winsup/w32api/include/winsock2.h winsup/w32api/include/winspool.h winsup/w32api/include/winsvc.h winsup/w32api/include/winuser.h winsup/w32api/include/winver.h winsup/w32api/include/ws2tcpip.h winsup/w32api/include/wsnetbs.h winsup/w32api/include/wtypes.h winsup/w32api/include/zmouse.h winsup/w32api/install-sh winsup/w32api/lib/Makefile.in winsup/w32api/lib/advapi32.def winsup/w32api/lib/cap.def winsup/w32api/lib/comctl32.def winsup/w32api/lib/comdlg32.def winsup/w32api/lib/crypt32.def winsup/w32api/lib/ctl3d32.def winsup/w32api/lib/d3dim.def winsup/w32api/lib/d3drm.def winsup/w32api/lib/d3dxof.def winsup/w32api/lib/ddraw.def winsup/w32api/lib/dinput.c winsup/w32api/lib/dinput.def winsup/w32api/lib/dlcapi.def winsup/w32api/lib/dplayx.def winsup/w32api/lib/dsetup.def winsup/w32api/lib/dsound.def winsup/w32api/lib/dxguid.c winsup/w32api/lib/gdi32.def winsup/w32api/lib/glaux.def winsup/w32api/lib/glu32.def winsup/w32api/lib/glut.def winsup/w32api/lib/glut32.def winsup/w32api/lib/imagehlp.def winsup/w32api/lib/imm32.def winsup/w32api/lib/iphlpapi.def winsup/w32api/lib/kernel32.c winsup/w32api/lib/kernel32.def winsup/w32api/lib/largeint.c winsup/w32api/lib/lz32.def winsup/w32api/lib/mapi32.def winsup/w32api/lib/mfcuia32.def winsup/w32api/lib/mgmtapi.def winsup/w32api/lib/mpr.def winsup/w32api/lib/msacm32.def winsup/w32api/lib/msvcp60.def winsup/w32api/lib/mswsock.def winsup/w32api/lib/nddeapi.def winsup/w32api/lib/netapi32.def winsup/w32api/lib/odbc32.def winsup/w32api/lib/odbccp32.def winsup/w32api/lib/ole32.def winsup/w32api/lib/oleaut32.def winsup/w32api/lib/olecli32.def winsup/w32api/lib/oledlg.def winsup/w32api/lib/olepro32.def winsup/w32api/lib/olesvr32.def winsup/w32api/lib/opengl32.def winsup/w32api/lib/penwin32.def winsup/w32api/lib/pkpd32.def winsup/w32api/lib/psapi.def winsup/w32api/lib/rapi.def winsup/w32api/lib/rasapi32.def winsup/w32api/lib/res.rc winsup/w32api/lib/rpcdce4.def winsup/w32api/lib/rpcns4.def winsup/w32api/lib/rpcrt4.def winsup/w32api/lib/scrnsave.c winsup/w32api/lib/secur32.def winsup/w32api/lib/setupapi.def winsup/w32api/lib/shell32.c winsup/w32api/lib/shell32.def winsup/w32api/lib/svrapi.def winsup/w32api/lib/tapi32.def winsup/w32api/lib/test.c winsup/w32api/lib/th32.def winsup/w32api/lib/thunk32.def winsup/w32api/lib/url.def winsup/w32api/lib/user32.def winsup/w32api/lib/userenv.def winsup/w32api/lib/uuid.c winsup/w32api/lib/vdmdbg.def winsup/w32api/lib/version.def winsup/w32api/lib/vfw32.def winsup/w32api/lib/win32spl.def winsup/w32api/lib/wininet.def winsup/w32api/lib/winmm.def winsup/w32api/lib/winspool.def winsup/w32api/lib/winstrm.def winsup/w32api/lib/wow32.def winsup/w32api/lib/ws2_32.def winsup/w32api/lib/wsock32.def winsup/w32api/lib/wst.def ylwrap --- winsup/CYGWIN_LICENSE | 38 - winsup/ChangeLog | 244 - winsup/MAINTAINERS | 7 - winsup/Makefile.common | 180 - winsup/Makefile.in | 119 - winsup/bz2lib/CHANGES | 167 - winsup/bz2lib/ChangeLog | 11 - winsup/bz2lib/LICENSE | 39 - winsup/bz2lib/Makefile | 141 - winsup/bz2lib/Makefile-libbz2_so | 43 - winsup/bz2lib/Makefile.in | 118 - winsup/bz2lib/README | 166 - winsup/bz2lib/README.COMPILATION.PROBLEMS | 130 - winsup/bz2lib/Y2K_INFO | 34 - winsup/bz2lib/aclocal.m4 | 137 - winsup/bz2lib/blocksort.c | 1134 - winsup/bz2lib/bzip2.1 | 439 - winsup/bz2lib/bzip2.1.preformatted | 462 - winsup/bz2lib/bzip2.c | 2044 -- winsup/bz2lib/bzip2.txt | 376 - winsup/bz2lib/bzip2recover.c | 435 - winsup/bz2lib/bzlib.c | 1564 - winsup/bz2lib/bzlib.h | 319 - winsup/bz2lib/bzlib_private.h | 530 - winsup/bz2lib/compress.c | 714 - winsup/bz2lib/configure | 1896 -- winsup/bz2lib/configure.in | 65 - winsup/bz2lib/crctable.c | 144 - winsup/bz2lib/decompress.c | 660 - winsup/bz2lib/dlltest.c | 176 - winsup/bz2lib/dlltest.dsp | 93 - winsup/bz2lib/huffman.c | 228 - winsup/bz2lib/libbz2.def | 27 - winsup/bz2lib/libbz2.dsp | 130 - winsup/bz2lib/makefile.msc | 63 - winsup/bz2lib/manual.ps | 3808 --- winsup/bz2lib/manual.texi | 2215 -- winsup/bz2lib/manual_1.html | 47 - winsup/bz2lib/manual_2.html | 484 - winsup/bz2lib/manual_3.html | 1773 -- winsup/bz2lib/manual_4.html | 528 - winsup/bz2lib/manual_toc.html | 173 - winsup/bz2lib/randtable.c | 124 - winsup/bz2lib/sample1.bz2 | Bin 32348 -> 0 bytes winsup/bz2lib/sample1.ref | Bin 98696 -> 0 bytes winsup/bz2lib/sample2.bz2 | Bin 73732 -> 0 bytes winsup/bz2lib/sample2.ref | Bin 212340 -> 0 bytes winsup/bz2lib/sample3.bz2 | Bin 235 -> 0 bytes winsup/bz2lib/sample3.ref | 30007 ------------------- winsup/bz2lib/spewG.c | 39 - winsup/bz2lib/unzcrash.c | 126 - winsup/bz2lib/words0 | 5 - winsup/bz2lib/words1 | 4 - winsup/bz2lib/words2 | 5 - winsup/bz2lib/words3 | 23 - winsup/configure | 1328 - winsup/configure.in | 88 - winsup/doc/ChangeLog | 115 - winsup/doc/Makefile.in | 121 - winsup/doc/calls.texinfo | 707 - winsup/doc/changes.texinfo | 202 - winsup/doc/configure | 1067 - winsup/doc/configure.in | 54 - winsup/doc/copy.texinfo | 382 - winsup/doc/cygwin-api.in.sgml | 67 - winsup/doc/cygwin-ug-net.in.sgml | 72 - winsup/doc/cygwin-ug.in.sgml | 71 - winsup/doc/cygwinenv.sgml | 130 - winsup/doc/dll.sgml | 120 - winsup/doc/doctool.c | 622 - winsup/doc/doctool.txt | 146 - winsup/doc/faq.texinfo | 18 - winsup/doc/fhandler-tut.txt | 83 - winsup/doc/filemodes.sgml | 34 - winsup/doc/gcc.sgml | 78 - winsup/doc/gdb.sgml | 88 - winsup/doc/history.texinfo | 5 - winsup/doc/how-api.texinfo | 293 - winsup/doc/how-programming.texinfo | 597 - winsup/doc/how-resources.texinfo | 123 - winsup/doc/how-using.texinfo | 688 - winsup/doc/how.texinfo | 6 - winsup/doc/install.texinfo | 271 - winsup/doc/legal.sgml | 30 - winsup/doc/ntsec.sgml | 663 - winsup/doc/overview.sgml | 88 - winsup/doc/overview2.sgml | 322 - winsup/doc/pathnames.sgml | 361 - winsup/doc/programming.sgml | 11 - winsup/doc/readme.texinfo | 17 - winsup/doc/relnotes.texinfo | 30 - winsup/doc/setup-net.sgml | 15 - winsup/doc/setup.sgml | 47 - winsup/doc/setup2.sgml | 133 - winsup/doc/textbinary.sgml | 181 - winsup/doc/using.sgml | 19 - winsup/doc/what.texinfo | 160 - winsup/doc/who.texinfo | 88 - winsup/doc/windres.sgml | 167 - winsup/mingw/CRT_noglob.c | 17 - winsup/mingw/CRTfmode.c | 20 - winsup/mingw/CRTglob.c | 18 - winsup/mingw/CRTinit.c | 32 - winsup/mingw/ChangeLog | 813 - winsup/mingw/Makefile.in | 390 - winsup/mingw/README | 10 - winsup/mingw/TODO | 1 - winsup/mingw/config.guess | 1342 - winsup/mingw/config.sub | 1332 - winsup/mingw/configure | 2166 -- winsup/mingw/configure.in | 140 - winsup/mingw/crt1.c | 234 - winsup/mingw/crtdll.def | 704 - winsup/mingw/crtmt.c | 14 - winsup/mingw/crtst.c | 12 - winsup/mingw/ctype_old.c | 52 - winsup/mingw/dirent.c | 316 - winsup/mingw/dllcrt1.c | 89 - winsup/mingw/dllmain.c | 33 - winsup/mingw/gccmain.c | 85 - winsup/mingw/include/_mingw.h | 68 - winsup/mingw/include/assert.h | 71 - winsup/mingw/include/conio.h | 74 - winsup/mingw/include/ctype.h | 232 - winsup/mingw/include/dir.h | 26 - winsup/mingw/include/direct.h | 95 - winsup/mingw/include/dirent.h | 96 - winsup/mingw/include/dos.h | 110 - winsup/mingw/include/errno.h | 117 - winsup/mingw/include/excpt.h | 123 - winsup/mingw/include/fcntl.h | 135 - winsup/mingw/include/float.h | 224 - winsup/mingw/include/io.h | 296 - winsup/mingw/include/limits.h | 115 - winsup/mingw/include/locale.h | 100 - winsup/mingw/include/malloc.h | 87 - winsup/mingw/include/math.h | 218 - winsup/mingw/include/mem.h | 8 - winsup/mingw/include/memory.h | 9 - winsup/mingw/include/process.h | 158 - winsup/mingw/include/setjmp.h | 72 - winsup/mingw/include/share.h | 44 - winsup/mingw/include/signal.h | 111 - winsup/mingw/include/stdarg.h | 112 - winsup/mingw/include/stddef.h | 373 - winsup/mingw/include/stdint.h | 184 - winsup/mingw/include/stdio.h | 394 - winsup/mingw/include/stdlib.h | 421 - winsup/mingw/include/string.h | 206 - winsup/mingw/include/strings.h | 12 - winsup/mingw/include/sys/fcntl.h | 8 - winsup/mingw/include/sys/file.h | 9 - winsup/mingw/include/sys/locking.h | 52 - winsup/mingw/include/sys/stat.h | 190 - winsup/mingw/include/sys/time.h | 3 - winsup/mingw/include/sys/timeb.h | 82 - winsup/mingw/include/sys/types.h | 118 - winsup/mingw/include/sys/unistd.h | 9 - winsup/mingw/include/sys/utime.h | 89 - winsup/mingw/include/tchar.h | 367 - winsup/mingw/include/time.h | 219 - winsup/mingw/include/unistd.h | 10 - winsup/mingw/include/values.h | 4 - winsup/mingw/include/varargs.h | 102 - winsup/mingw/include/wchar.h | 281 - winsup/mingw/include/wctype.h | 127 - winsup/mingw/init.c | 84 - winsup/mingw/install-sh | 253 - winsup/mingw/jamfile | 72 - winsup/mingw/main.c | 96 - winsup/mingw/mkinstalldirs | 36 - winsup/mingw/moldname-crtdll.def | 135 - winsup/mingw/moldname-msvcrt.def | 139 - winsup/mingw/moldname.def | 137 - winsup/mingw/moldname.def.in | 139 - winsup/mingw/msvcrt.def | 737 - winsup/mingw/msvcrt20.def | 719 - winsup/mingw/msvcrt40.def | 676 - winsup/mingw/mthr.c | 197 - winsup/mingw/mthr_init.c | 80 - winsup/mingw/mthr_stub.c | 45 - winsup/mingw/profile/Makefile.in | 127 - winsup/mingw/profile/configure | 1037 - winsup/mingw/profile/configure.in | 77 - winsup/mingw/profile/gcrt0.c | 52 - winsup/mingw/profile/gmon.c | 289 - winsup/mingw/profile/gmon.h | 181 - winsup/mingw/profile/mcount.c | 180 - winsup/mingw/profile/profil.c | 185 - winsup/mingw/profile/profil.h | 51 - winsup/mingw/profile/profile.h | 63 - winsup/mingw/readme.txt | 685 - winsup/mingw/samples/dirent/jamfile | 3 - winsup/mingw/samples/dirent/test.c | 91 - winsup/mingw/samples/dlltest/dll.c | 22 - winsup/mingw/samples/dlltest/dll.def | 3 - winsup/mingw/samples/dlltest/dll.h | 4 - winsup/mingw/samples/dlltest/exe.c | 23 - winsup/mingw/samples/dlltest/exe.exp | 8 - winsup/mingw/samples/dlltest/expexe.c | 17 - winsup/mingw/samples/dlltest/expexe.def | 2 - winsup/mingw/samples/dlltest/jamfile | 46 - winsup/mingw/samples/dlltest/loaddll.c | 40 - winsup/mingw/samples/dlltest/loadexe.c | 47 - winsup/mingw/samples/dlltest/readme.txt | 39 - winsup/mingw/samples/dlltest/silly.cpp | 55 - winsup/mingw/samples/dlltest/silly.def | 11 - winsup/mingw/samples/dlltest/silly.exp | 8 - winsup/mingw/samples/dlltest/silly.h | 27 - winsup/mingw/samples/dlltest/sillydll.cpp | 107 - winsup/mingw/samples/filehand/filehand.c | 57 - winsup/mingw/samples/filehand/jamfile | 3 - winsup/mingw/samples/filehand/junk.txt | 1 - winsup/mingw/samples/fixargv/fixargv.c | 290 - winsup/mingw/samples/fixargv/fixargv.h | 24 - winsup/mingw/samples/fixargv/readme.txt | 85 - winsup/mingw/samples/fmode/all.c | 46 - winsup/mingw/samples/fmode/jamfile | 5 - winsup/mingw/samples/fmode/readme.txt | 5 - winsup/mingw/samples/fmode/test.c | 31 - winsup/mingw/samples/globbing/glob.c | 20 - winsup/mingw/samples/globbing/jamfile | 11 - winsup/mingw/samples/globbing/noglob.c | 22 - winsup/mingw/samples/globbing/readme.txt | 14 - winsup/mingw/samples/print/jamfile | 9 - winsup/mingw/samples/print/prntest.c | 65 - winsup/mingw/samples/seh/eh3.c | 112 - winsup/mingw/samples/seh/exutil.c | 68 - winsup/mingw/samples/seh/exutil.def | 3 - winsup/mingw/samples/seh/exutil.h | 23 - winsup/mingw/samples/seh/jamfile | 13 - winsup/mingw/samples/seh/sehfix.c | 60 - winsup/mingw/samples/seh/sehsub.c | 43 - winsup/mingw/samples/seh/sehtest.c | 72 - winsup/mingw/samples/simpledll/dll.c | 33 - winsup/mingw/samples/simpledll/dll.cpp | 44 - winsup/mingw/samples/simpledll/dll.def | 2 - winsup/mingw/samples/simpledll/exe.c | 13 - winsup/mingw/samples/simpledll/jamfile | 14 - winsup/mingw/samples/simpledll/makedll.bat | 23 - winsup/mingw/samples/test/jamfile | 9 - winsup/mingw/samples/test/test.c | 20 - winsup/mingw/samples/wintest/jamfile | 8 - winsup/mingw/samples/wintest/test.c | 212 - winsup/mingw/string_old.c | 47 - winsup/subauth/ChangeLog | 21 - winsup/subauth/Makefile.in | 89 - winsup/subauth/configure | 1253 - winsup/subauth/configure.in | 91 - winsup/subauth/cygsuba.c | 141 - winsup/subauth/cygsuba.din | 5 - winsup/testsuite/ChangeLog | 308 - winsup/testsuite/Makefile.in | 189 - winsup/testsuite/README | 35 - winsup/testsuite/config/default.exp | 13 - winsup/testsuite/configure | 1193 - winsup/testsuite/configure.in | 19 - winsup/testsuite/libltp/include/dataascii.h | 65 - winsup/testsuite/libltp/include/databin.h | 44 - winsup/testsuite/libltp/include/file_lock.h | 40 - winsup/testsuite/libltp/include/forker.h | 63 - winsup/testsuite/libltp/include/open_flags.h | 73 - winsup/testsuite/libltp/include/pattern.h | 90 - winsup/testsuite/libltp/include/random_range.h | 45 - winsup/testsuite/libltp/include/rmobj.h | 12 - winsup/testsuite/libltp/include/search_path.h | 36 - winsup/testsuite/libltp/include/str_to_bytes.h | 39 - winsup/testsuite/libltp/include/string_to_tokens.h | 48 - winsup/testsuite/libltp/include/test.h | 216 - winsup/testsuite/libltp/include/tlibio.h | 148 - winsup/testsuite/libltp/include/usctest.h | 319 - winsup/testsuite/libltp/include/write_log.h | 169 - winsup/testsuite/libltp/lib/dataascii.c | 218 - winsup/testsuite/libltp/lib/databin.c | 298 - winsup/testsuite/libltp/lib/datapid.c | 374 - winsup/testsuite/libltp/lib/forker.c | 286 - winsup/testsuite/libltp/lib/get_high_address.c | 20 - winsup/testsuite/libltp/lib/libtestsuite.c | 74 - winsup/testsuite/libltp/lib/open_flags.c | 330 - winsup/testsuite/libltp/lib/parse_opts.c | 878 - winsup/testsuite/libltp/lib/pattern.c | 168 - winsup/testsuite/libltp/lib/rmobj.c | 211 - winsup/testsuite/libltp/lib/search_path.c | 249 - winsup/testsuite/libltp/lib/str_to_bytes.c | 211 - winsup/testsuite/libltp/lib/string_to_tokens.c | 109 - winsup/testsuite/libltp/lib/tst_res.c | 964 - winsup/testsuite/libltp/lib/tst_sig.c | 220 - winsup/testsuite/libltp/lib/tst_tmpdir.c | 351 - winsup/testsuite/libltp/lib/write_log.c | 468 - winsup/testsuite/winsup.api/checksignal.c | 79 - winsup/testsuite/winsup.api/crlf.c | 527 - winsup/testsuite/winsup.api/devzero.c | 113 - winsup/testsuite/winsup.api/iospeed.c | 115 - winsup/testsuite/winsup.api/known_bugs.tcl | 8 - winsup/testsuite/winsup.api/ltp/access01.c | 302 - winsup/testsuite/winsup.api/ltp/access03.c | 507 - winsup/testsuite/winsup.api/ltp/access04.c | 243 - winsup/testsuite/winsup.api/ltp/access05.c | 425 - winsup/testsuite/winsup.api/ltp/alarm01.c | 226 - winsup/testsuite/winsup.api/ltp/alarm02.c | 240 - winsup/testsuite/winsup.api/ltp/alarm03.c | 229 - winsup/testsuite/winsup.api/ltp/alarm07.c | 203 - winsup/testsuite/winsup.api/ltp/asyncio02.c | 365 - winsup/testsuite/winsup.api/ltp/chdir02.c | 220 - winsup/testsuite/winsup.api/ltp/chdir04.c | 189 - winsup/testsuite/winsup.api/ltp/chmod01.c | 231 - winsup/testsuite/winsup.api/ltp/chmod02.c | 260 - winsup/testsuite/winsup.api/ltp/chown01.c | 244 - winsup/testsuite/winsup.api/ltp/close01.c | 199 - winsup/testsuite/winsup.api/ltp/close02.c | 142 - winsup/testsuite/winsup.api/ltp/close08.c | 241 - winsup/testsuite/winsup.api/ltp/creat01.c | 206 - winsup/testsuite/winsup.api/ltp/creat03.c | 153 - winsup/testsuite/winsup.api/ltp/creat09.c | 246 - winsup/testsuite/winsup.api/ltp/dup01.c | 261 - winsup/testsuite/winsup.api/ltp/dup02.c | 246 - winsup/testsuite/winsup.api/ltp/dup03.c | 292 - winsup/testsuite/winsup.api/ltp/dup04.c | 297 - winsup/testsuite/winsup.api/ltp/dup05.c | 266 - winsup/testsuite/winsup.api/ltp/execl01.c | 258 - winsup/testsuite/winsup.api/ltp/execle01.c | 257 - winsup/testsuite/winsup.api/ltp/execlp01.c | 256 - winsup/testsuite/winsup.api/ltp/execv01.c | 257 - winsup/testsuite/winsup.api/ltp/execve01.c | 258 - winsup/testsuite/winsup.api/ltp/execvp01.c | 257 - winsup/testsuite/winsup.api/ltp/exit01.c | 163 - winsup/testsuite/winsup.api/ltp/exit02.c | 227 - winsup/testsuite/winsup.api/ltp/fchdir01.c | 248 - winsup/testsuite/winsup.api/ltp/fchdir02.c | 159 - winsup/testsuite/winsup.api/ltp/fchmod01.c | 241 - winsup/testsuite/winsup.api/ltp/fchown01.c | 234 - winsup/testsuite/winsup.api/ltp/fcntl02.c | 244 - winsup/testsuite/winsup.api/ltp/fcntl03.c | 240 - winsup/testsuite/winsup.api/ltp/fcntl04.c | 239 - winsup/testsuite/winsup.api/ltp/fcntl05.c | 249 - winsup/testsuite/winsup.api/ltp/fcntl07.c | 426 - winsup/testsuite/winsup.api/ltp/fcntl07B.c | 427 - winsup/testsuite/winsup.api/ltp/fcntl08.c | 250 - winsup/testsuite/winsup.api/ltp/fcntl09.c | 272 - winsup/testsuite/winsup.api/ltp/fcntl10.c | 278 - winsup/testsuite/winsup.api/ltp/fork01.c | 317 - winsup/testsuite/winsup.api/ltp/fork02.c | 142 - winsup/testsuite/winsup.api/ltp/fork03.c | 164 - winsup/testsuite/winsup.api/ltp/fork04.c | 405 - winsup/testsuite/winsup.api/ltp/fork06.c | 152 - winsup/testsuite/winsup.api/ltp/fork07.c | 198 - winsup/testsuite/winsup.api/ltp/fork09.c | 228 - winsup/testsuite/winsup.api/ltp/fork10.c | 215 - winsup/testsuite/winsup.api/ltp/fork11.c | 140 - winsup/testsuite/winsup.api/ltp/fpathconf01.c | 257 - winsup/testsuite/winsup.api/ltp/fstat01.c | 239 - winsup/testsuite/winsup.api/ltp/fstat02.c | 245 - winsup/testsuite/winsup.api/ltp/fstat03.c | 192 - winsup/testsuite/winsup.api/ltp/fstat04.c | 245 - winsup/testsuite/winsup.api/ltp/fsync01.c | 248 - winsup/testsuite/winsup.api/ltp/ftruncate01.c | 244 - winsup/testsuite/winsup.api/ltp/ftruncate02.c | 314 - winsup/testsuite/winsup.api/ltp/ftruncate03.c | 325 - winsup/testsuite/winsup.api/ltp/getegid01.c | 226 - winsup/testsuite/winsup.api/ltp/geteuid01.c | 226 - winsup/testsuite/winsup.api/ltp/getgid01.c | 219 - winsup/testsuite/winsup.api/ltp/getgid02.c | 158 - winsup/testsuite/winsup.api/ltp/getgid03.c | 157 - winsup/testsuite/winsup.api/ltp/getgroups01.c | 315 - winsup/testsuite/winsup.api/ltp/getgroups02.c | 226 - winsup/testsuite/winsup.api/ltp/gethostid01.c | 224 - winsup/testsuite/winsup.api/ltp/gethostname01.c | 226 - winsup/testsuite/winsup.api/ltp/getpgid01.c | 240 - winsup/testsuite/winsup.api/ltp/getpgid02.c | 172 - winsup/testsuite/winsup.api/ltp/getpgrp01.c | 219 - winsup/testsuite/winsup.api/ltp/getpid01.c | 217 - winsup/testsuite/winsup.api/ltp/getpid02.c | 188 - winsup/testsuite/winsup.api/ltp/getppid01.c | 219 - winsup/testsuite/winsup.api/ltp/getppid02.c | 146 - winsup/testsuite/winsup.api/ltp/getuid01.c | 219 - winsup/testsuite/winsup.api/ltp/getuid02.c | 136 - winsup/testsuite/winsup.api/ltp/getuid03.c | 137 - winsup/testsuite/winsup.api/ltp/kill01.c | 161 - winsup/testsuite/winsup.api/ltp/kill02.c | 858 - winsup/testsuite/winsup.api/ltp/kill03.c | 169 - winsup/testsuite/winsup.api/ltp/kill04.c | 180 - winsup/testsuite/winsup.api/ltp/kill09.c | 258 - winsup/testsuite/winsup.api/ltp/link02.c | 263 - winsup/testsuite/winsup.api/ltp/link03.c | 330 - winsup/testsuite/winsup.api/ltp/link04.c | 426 - winsup/testsuite/winsup.api/ltp/link05.c | 351 - winsup/testsuite/winsup.api/ltp/lseek01.c | 256 - winsup/testsuite/winsup.api/ltp/lseek02.c | 243 - winsup/testsuite/winsup.api/ltp/lseek03.c | 290 - winsup/testsuite/winsup.api/ltp/lseek04.c | 257 - winsup/testsuite/winsup.api/ltp/lseek05.c | 253 - winsup/testsuite/winsup.api/ltp/lseek06.c | 237 - winsup/testsuite/winsup.api/ltp/lseek07.c | 288 - winsup/testsuite/winsup.api/ltp/lseek08.c | 242 - winsup/testsuite/winsup.api/ltp/lseek09.c | 269 - winsup/testsuite/winsup.api/ltp/lseek10.c | 347 - winsup/testsuite/winsup.api/ltp/lstat02.c | 253 - winsup/testsuite/winsup.api/ltp/mkdir01.c | 271 - winsup/testsuite/winsup.api/ltp/mkdir08.c | 236 - winsup/testsuite/winsup.api/ltp/mknod01.c | 274 - winsup/testsuite/winsup.api/ltp/mmap001.c | 206 - winsup/testsuite/winsup.api/ltp/mmap02.c | 294 - winsup/testsuite/winsup.api/ltp/mmap03.c | 294 - winsup/testsuite/winsup.api/ltp/mmap04.c | 295 - winsup/testsuite/winsup.api/ltp/mmap05.c | 303 - winsup/testsuite/winsup.api/ltp/mmap06.c | 237 - winsup/testsuite/winsup.api/ltp/mmap07.c | 236 - winsup/testsuite/winsup.api/ltp/mmap08.c | 236 - winsup/testsuite/winsup.api/ltp/munmap01.c | 282 - winsup/testsuite/winsup.api/ltp/munmap02.c | 307 - winsup/testsuite/winsup.api/ltp/nice05.c | 220 - winsup/testsuite/winsup.api/ltp/open02.c | 150 - winsup/testsuite/winsup.api/ltp/open03.c | 243 - winsup/testsuite/winsup.api/ltp/pathconf01.c | 246 - winsup/testsuite/winsup.api/ltp/pause01.c | 229 - winsup/testsuite/winsup.api/ltp/pipe01.c | 157 - winsup/testsuite/winsup.api/ltp/pipe08.c | 159 - winsup/testsuite/winsup.api/ltp/pipe09.c | 232 - winsup/testsuite/winsup.api/ltp/pipe10.c | 168 - winsup/testsuite/winsup.api/ltp/pipe11.c | 227 - winsup/testsuite/winsup.api/ltp/poll01.c | 251 - winsup/testsuite/winsup.api/ltp/read01.c | 280 - winsup/testsuite/winsup.api/ltp/read04.c | 175 - winsup/testsuite/winsup.api/ltp/readdir01.c | 351 - winsup/testsuite/winsup.api/ltp/readlink01.c | 230 - winsup/testsuite/winsup.api/ltp/readlink02.c | 244 - winsup/testsuite/winsup.api/ltp/readlink03.c | 361 - winsup/testsuite/winsup.api/ltp/rename01.c | 264 - winsup/testsuite/winsup.api/ltp/rename02.c | 251 - winsup/testsuite/winsup.api/ltp/rename08.c | 206 - winsup/testsuite/winsup.api/ltp/rename10.c | 204 - winsup/testsuite/winsup.api/ltp/rmdir01.c | 190 - winsup/testsuite/winsup.api/ltp/rmdir04.c | 237 - winsup/testsuite/winsup.api/ltp/rmdir05.c | 448 - winsup/testsuite/winsup.api/ltp/sbrk01.c | 280 - winsup/testsuite/winsup.api/ltp/select01.c | 276 - winsup/testsuite/winsup.api/ltp/select02.c | 268 - winsup/testsuite/winsup.api/ltp/select03.c | 282 - winsup/testsuite/winsup.api/ltp/setgid01.c | 219 - winsup/testsuite/winsup.api/ltp/setgroups01.c | 229 - winsup/testsuite/winsup.api/ltp/setpgid01.c | 240 - winsup/testsuite/winsup.api/ltp/setregid01.c | 338 - winsup/testsuite/winsup.api/ltp/setreuid01.c | 338 - winsup/testsuite/winsup.api/ltp/setuid01.c | 225 - winsup/testsuite/winsup.api/ltp/setuid02.c | 240 - winsup/testsuite/winsup.api/ltp/signal03.c | 665 - winsup/testsuite/winsup.api/ltp/stat01.c | 268 - winsup/testsuite/winsup.api/ltp/stat02.c | 277 - winsup/testsuite/winsup.api/ltp/stat03.c | 393 - winsup/testsuite/winsup.api/ltp/stat05.c | 241 - winsup/testsuite/winsup.api/ltp/stat06.c | 378 - winsup/testsuite/winsup.api/ltp/symlink01.c | 2033 -- winsup/testsuite/winsup.api/ltp/symlink02.c | 245 - winsup/testsuite/winsup.api/ltp/symlink03.c | 404 - winsup/testsuite/winsup.api/ltp/symlink04.c | 239 - winsup/testsuite/winsup.api/ltp/symlink05.c | 223 - winsup/testsuite/winsup.api/ltp/sync01.c | 216 - winsup/testsuite/winsup.api/ltp/sync02.c | 240 - winsup/testsuite/winsup.api/ltp/time01.c | 218 - winsup/testsuite/winsup.api/ltp/time02.c | 183 - winsup/testsuite/winsup.api/ltp/times01.c | 222 - winsup/testsuite/winsup.api/ltp/times02.c | 135 - winsup/testsuite/winsup.api/ltp/times03.c | 246 - winsup/testsuite/winsup.api/ltp/truncate01.c | 262 - winsup/testsuite/winsup.api/ltp/truncate02.c | 335 - winsup/testsuite/winsup.api/ltp/ulimit01.c | 273 - winsup/testsuite/winsup.api/ltp/umask01.c | 220 - winsup/testsuite/winsup.api/ltp/umask02.c | 134 - winsup/testsuite/winsup.api/ltp/umask03.c | 169 - winsup/testsuite/winsup.api/ltp/uname01.c | 221 - winsup/testsuite/winsup.api/ltp/unlink05.c | 246 - winsup/testsuite/winsup.api/ltp/unlink06.c | 255 - winsup/testsuite/winsup.api/ltp/unlink07.c | 329 - winsup/testsuite/winsup.api/ltp/unlink08.c | 433 - winsup/testsuite/winsup.api/ltp/vfork01.c | 402 - winsup/testsuite/winsup.api/ltp/wait02.c | 230 - winsup/testsuite/winsup.api/ltp/wait401.c | 187 - winsup/testsuite/winsup.api/ltp/wait402.c | 202 - winsup/testsuite/winsup.api/ltp/write01.c | 250 - winsup/testsuite/winsup.api/ltp/write02.c | 165 - winsup/testsuite/winsup.api/ltp/write03.c | 193 - winsup/testsuite/winsup.api/mmaptest01.c | 176 - winsup/testsuite/winsup.api/mmaptest02.c | 189 - winsup/testsuite/winsup.api/mmaptest03.c | 127 - winsup/testsuite/winsup.api/mmaptest04.c | 100 - winsup/testsuite/winsup.api/nullgetcwd.c | 16 - winsup/testsuite/winsup.api/pthread/cleanup2.c | 157 - winsup/testsuite/winsup.api/pthread/cleanup3.c | 160 - winsup/testsuite/winsup.api/pthread/condvar1.c | 65 - winsup/testsuite/winsup.api/pthread/condvar2.c | 80 - winsup/testsuite/winsup.api/pthread/condvar2_1.c | 107 - winsup/testsuite/winsup.api/pthread/condvar3.c | 115 - winsup/testsuite/winsup.api/pthread/condvar3_1.c | 145 - winsup/testsuite/winsup.api/pthread/condvar3_2.c | 139 - winsup/testsuite/winsup.api/pthread/condvar3_3.c | 100 - winsup/testsuite/winsup.api/pthread/condvar4.c | 137 - winsup/testsuite/winsup.api/pthread/condvar5.c | 136 - winsup/testsuite/winsup.api/pthread/condvar6.c | 209 - winsup/testsuite/winsup.api/pthread/condvar8.c | 221 - winsup/testsuite/winsup.api/pthread/count1.c | 62 - winsup/testsuite/winsup.api/pthread/create1.c | 34 - winsup/testsuite/winsup.api/pthread/create2.c | 74 - winsup/testsuite/winsup.api/pthread/equal1.c | 34 - winsup/testsuite/winsup.api/pthread/exit1.c | 18 - winsup/testsuite/winsup.api/pthread/exit2.c | 30 - winsup/testsuite/winsup.api/pthread/exit3.c | 34 - winsup/testsuite/winsup.api/pthread/inherit1.c | 99 - winsup/testsuite/winsup.api/pthread/join0.c | 40 - winsup/testsuite/winsup.api/pthread/join1.c | 51 - winsup/testsuite/winsup.api/pthread/join2.c | 41 - winsup/testsuite/winsup.api/pthread/mutex1.c | 36 - winsup/testsuite/winsup.api/pthread/mutex1r.c | 42 - winsup/testsuite/winsup.api/pthread/mutex2.c | 34 - winsup/testsuite/winsup.api/pthread/mutex3.c | 43 - winsup/testsuite/winsup.api/pthread/mutex6r.c | 68 - winsup/testsuite/winsup.api/pthread/once1.c | 45 - winsup/testsuite/winsup.api/pthread/priority1.c | 78 - winsup/testsuite/winsup.api/pthread/priority2.c | 80 - winsup/testsuite/winsup.api/pthread/self1.c | 26 - winsup/testsuite/winsup.api/pthread/self2.c | 46 - winsup/testsuite/winsup.api/pthread/test.h | 99 - winsup/testsuite/winsup.api/pthread/tsd1.c | 170 - winsup/testsuite/winsup.api/samples/sample-fail.c | 4 - .../winsup.api/samples/sample-miscompile.c | 1 - winsup/testsuite/winsup.api/samples/sample-pass.c | 4 - winsup/testsuite/winsup.api/sigchld.c | 20 - .../testsuite/winsup.api/signal-into-win32-api.c | 57 - winsup/testsuite/winsup.api/systemcall.c | 65 - winsup/testsuite/winsup.api/waitpid.c | 22 - winsup/testsuite/winsup.api/winsup.exp | 81 - winsup/utils/ChangeLog | 480 - winsup/utils/ChangeLog-2000 | 347 - winsup/utils/Makefile.in | 211 - winsup/utils/aclocal.m4 | 78 - winsup/utils/configure | 1358 - winsup/utils/configure.in | 88 - winsup/utils/cygcheck.cc | 1367 - winsup/utils/cygpath.cc | 498 - winsup/utils/dump_setup.cc | 249 - winsup/utils/dumper.cc | 841 - winsup/utils/dumper.h | 132 - winsup/utils/getfacl.c | 221 - winsup/utils/kill.cc | 122 - winsup/utils/mkgroup.c | 573 - winsup/utils/mkpasswd.c | 595 - winsup/utils/module_info.cc | 114 - winsup/utils/mount.cc | 408 - winsup/utils/parse_pe.cc | 91 - winsup/utils/passwd.c | 355 - winsup/utils/path.cc | 350 - winsup/utils/path.h | 11 - winsup/utils/ps.cc | 325 - winsup/utils/regtool.cc | 573 - winsup/utils/setfacl.c | 495 - winsup/utils/ssp.c | 802 - winsup/utils/ssp.txt | 125 - winsup/utils/strace.cc | 947 - winsup/utils/umount.cc | 210 - winsup/utils/utils.sgml | 738 - winsup/w32api/CONTRIBUTIONS | 5 - winsup/w32api/ChangeLog | 3799 --- winsup/w32api/Makefile.in | 150 - winsup/w32api/README | 94 - winsup/w32api/TODO | 65 - winsup/w32api/config.guess | 1362 - winsup/w32api/config.sub | 1383 - winsup/w32api/configure | 1479 - winsup/w32api/configure.in | 49 - winsup/w32api/include/accctrl.h | 312 - winsup/w32api/include/aclapi.h | 101 - winsup/w32api/include/basetsd.h | 116 - winsup/w32api/include/basetyps.h | 141 - winsup/w32api/include/cderr.h | 40 - winsup/w32api/include/cguid.h | 78 - winsup/w32api/include/commctrl.h | 2542 -- winsup/w32api/include/commdlg.h | 569 - winsup/w32api/include/cpl.h | 54 - winsup/w32api/include/cplext.h | 6 - winsup/w32api/include/custcntl.h | 98 - winsup/w32api/include/dbt.h | 86 - winsup/w32api/include/dde.h | 60 - winsup/w32api/include/ddeml.h | 241 - winsup/w32api/include/dlgs.h | 182 - winsup/w32api/include/excpt.h | 17 - winsup/w32api/include/httpext.h | 87 - winsup/w32api/include/imagehlp.h | 326 - winsup/w32api/include/imm.h | 420 - winsup/w32api/include/initguid.h | 8 - winsup/w32api/include/intshcut.h | 78 - winsup/w32api/include/ipexport.h | 84 - winsup/w32api/include/iphlpapi.h | 56 - winsup/w32api/include/ipifcons.h | 19 - winsup/w32api/include/iprtrmib.h | 205 - winsup/w32api/include/iptypes.h | 74 - winsup/w32api/include/isguids.h | 11 - winsup/w32api/include/largeint.h | 109 - winsup/w32api/include/lm.h | 24 - winsup/w32api/include/lmaccess.h | 605 - winsup/w32api/include/lmalert.h | 56 - winsup/w32api/include/lmapibuf.h | 14 - winsup/w32api/include/lmat.h | 35 - winsup/w32api/include/lmaudit.h | 246 - winsup/w32api/include/lmbrowsr.h | 70 - winsup/w32api/include/lmchdev.h | 57 - winsup/w32api/include/lmconfig.h | 17 - winsup/w32api/include/lmcons.h | 71 - winsup/w32api/include/lmerr.h | 302 - winsup/w32api/include/lmerrlog.h | 207 - winsup/w32api/include/lmmsg.h | 23 - winsup/w32api/include/lmremutl.h | 41 - winsup/w32api/include/lmrepl.h | 90 - winsup/w32api/include/lmserver.h | 602 - winsup/w32api/include/lmshare.h | 143 - winsup/w32api/include/lmsname.h | 54 - winsup/w32api/include/lmstats.h | 110 - winsup/w32api/include/lmsvc.h | 130 - winsup/w32api/include/lmuse.h | 56 - winsup/w32api/include/lmuseflg.h | 6 - winsup/w32api/include/lmwksta.h | 229 - winsup/w32api/include/lzexpand.h | 36 - winsup/w32api/include/mapi.h | 160 - winsup/w32api/include/mciavi.h | 21 - winsup/w32api/include/mcx.h | 73 - winsup/w32api/include/mmsystem.h | 1933 -- winsup/w32api/include/mswsock.h | 59 - winsup/w32api/include/nb30.h | 182 - winsup/w32api/include/nddeapi.h | 129 - winsup/w32api/include/nspapi.h | 19 - winsup/w32api/include/ntdef.h | 51 - winsup/w32api/include/ntsecapi.h | 607 - winsup/w32api/include/ntsecpkg.h | 41 - winsup/w32api/include/oaidl.h | 605 - winsup/w32api/include/objbase.h | 174 - winsup/w32api/include/objfwd.h | 51 - winsup/w32api/include/objidl.h | 1694 -- winsup/w32api/include/ocidl.h | 7 - winsup/w32api/include/odbcinst.h | 145 - winsup/w32api/include/ole.h | 304 - winsup/w32api/include/ole2.h | 106 - winsup/w32api/include/ole2ver.h | 5 - winsup/w32api/include/oleauto.h | 256 - winsup/w32api/include/olectl.h | 721 - winsup/w32api/include/olectlid.h | 109 - winsup/w32api/include/oledlg.h | 931 - winsup/w32api/include/oleidl.h | 296 - winsup/w32api/include/pbt.h | 16 - winsup/w32api/include/poppack.h | 3 - winsup/w32api/include/prsht.h | 244 - winsup/w32api/include/psapi.h | 92 - winsup/w32api/include/pshpack1.h | 3 - winsup/w32api/include/pshpack2.h | 3 - winsup/w32api/include/pshpack4.h | 3 - winsup/w32api/include/pshpack8.h | 3 - winsup/w32api/include/rapi.h | 51 - winsup/w32api/include/ras.h | 949 - winsup/w32api/include/raserror.h | 206 - winsup/w32api/include/rassapi.h | 178 - winsup/w32api/include/regstr.h | 765 - winsup/w32api/include/richedit.h | 404 - winsup/w32api/include/richole.h | 103 - winsup/w32api/include/rpc.h | 54 - winsup/w32api/include/rpcdce.h | 384 - winsup/w32api/include/rpcdce2.h | 52 - winsup/w32api/include/rpcdcep.h | 124 - winsup/w32api/include/rpcndr.h | 469 - winsup/w32api/include/rpcnsi.h | 118 - winsup/w32api/include/rpcnsip.h | 21 - winsup/w32api/include/rpcnterr.h | 18 - winsup/w32api/include/rpcproxy.h | 196 - winsup/w32api/include/schannel.h | 87 - winsup/w32api/include/schnlsp.h | 10 - winsup/w32api/include/scrnsave.h | 78 - winsup/w32api/include/security.h | 37 - winsup/w32api/include/setupapi.h | 1550 - winsup/w32api/include/shellapi.h | 251 - winsup/w32api/include/shlguid.h | 73 - winsup/w32api/include/shlobj.h | 757 - winsup/w32api/include/sql.h | 404 - winsup/w32api/include/sqlext.h | 1214 - winsup/w32api/include/sqltypes.h | 156 - winsup/w32api/include/sqlucode.h | 138 - winsup/w32api/include/sspi.h | 332 - winsup/w32api/include/subauth.h | 205 - winsup/w32api/include/tlhelp32.h | 136 - winsup/w32api/include/unknwn.h | 67 - winsup/w32api/include/userenv.h | 53 - winsup/w32api/include/w32api.h | 8 - winsup/w32api/include/winbase.h | 1848 -- winsup/w32api/include/wincon.h | 203 - winsup/w32api/include/wincrypt.h | 549 - winsup/w32api/include/windef.h | 236 - winsup/w32api/include/windows.h | 172 - winsup/w32api/include/windowsx.h | 540 - winsup/w32api/include/winerror.h | 1050 - winsup/w32api/include/wingdi.h | 2839 -- winsup/w32api/include/wininet.h | 909 - winsup/w32api/include/winioctl.h | 291 - winsup/w32api/include/winnetwk.h | 342 - winsup/w32api/include/winnls.h | 647 - winsup/w32api/include/winnt.h | 2663 -- winsup/w32api/include/winperf.h | 135 - winsup/w32api/include/winreg.h | 155 - winsup/w32api/include/winresrc.h | 10 - winsup/w32api/include/winsock.h | 525 - winsup/w32api/include/winsock2.h | 1187 - winsup/w32api/include/winspool.h | 778 - winsup/w32api/include/winsvc.h | 305 - winsup/w32api/include/winuser.h | 3468 --- winsup/w32api/include/winver.h | 129 - winsup/w32api/include/ws2tcpip.h | 138 - winsup/w32api/include/wsnetbs.h | 32 - winsup/w32api/include/wtypes.h | 163 - winsup/w32api/include/zmouse.h | 24 - winsup/w32api/install-sh | 251 - winsup/w32api/lib/Makefile.in | 204 - winsup/w32api/lib/advapi32.def | 531 - winsup/w32api/lib/cap.def | 6 - winsup/w32api/lib/comctl32.def | 128 - winsup/w32api/lib/comdlg32.def | 27 - winsup/w32api/lib/crypt32.def | 15 - winsup/w32api/lib/ctl3d32.def | 27 - winsup/w32api/lib/d3dim.def | 8 - winsup/w32api/lib/d3drm.def | 24 - winsup/w32api/lib/d3dxof.def | 4 - winsup/w32api/lib/ddraw.def | 28 - winsup/w32api/lib/dinput.c | 2488 -- winsup/w32api/lib/dinput.def | 5 - winsup/w32api/lib/dlcapi.def | 5 - winsup/w32api/lib/dplayx.def | 10 - winsup/w32api/lib/dsetup.def | 18 - winsup/w32api/lib/dsound.def | 9 - winsup/w32api/lib/dxguid.c | 461 - winsup/w32api/lib/gdi32.def | 334 - winsup/w32api/lib/glaux.def | 173 - winsup/w32api/lib/glu32.def | 54 - winsup/w32api/lib/glut.def | 116 - winsup/w32api/lib/glut32.def | 116 - winsup/w32api/lib/imagehlp.def | 114 - winsup/w32api/lib/imm32.def | 77 - winsup/w32api/lib/iphlpapi.def | 45 - winsup/w32api/lib/kernel32.c | 51 - winsup/w32api/lib/kernel32.def | 767 - winsup/w32api/lib/largeint.c | 118 - winsup/w32api/lib/lz32.def | 14 - winsup/w32api/lib/mapi32.def | 164 - winsup/w32api/lib/mfcuia32.def | 12 - winsup/w32api/lib/mgmtapi.def | 12 - winsup/w32api/lib/mpr.def | 72 - winsup/w32api/lib/msacm32.def | 46 - winsup/w32api/lib/msvcp60.def | 71 - winsup/w32api/lib/mswsock.def | 28 - winsup/w32api/lib/nddeapi.def | 30 - winsup/w32api/lib/netapi32.def | 247 - winsup/w32api/lib/odbc32.def | 185 - winsup/w32api/lib/odbccp32.def | 54 - winsup/w32api/lib/ole32.def | 253 - winsup/w32api/lib/oleaut32.def | 355 - winsup/w32api/lib/olecli32.def | 57 - winsup/w32api/lib/oledlg.def | 25 - winsup/w32api/lib/olepro32.def | 9 - winsup/w32api/lib/olesvr32.def | 13 - winsup/w32api/lib/opengl32.def | 369 - winsup/w32api/lib/penwin32.def | 101 - winsup/w32api/lib/pkpd32.def | 36 - winsup/w32api/lib/psapi.def | 21 - winsup/w32api/lib/rapi.def | 84 - winsup/w32api/lib/rasapi32.def | 146 - winsup/w32api/lib/res.rc | 6 - winsup/w32api/lib/rpcdce4.def | 26 - winsup/w32api/lib/rpcns4.def | 60 - winsup/w32api/lib/rpcrt4.def | 372 - winsup/w32api/lib/scrnsave.c | 407 - winsup/w32api/lib/secur32.def | 33 - winsup/w32api/lib/setupapi.def | 375 - winsup/w32api/lib/shell32.c | 51 - winsup/w32api/lib/shell32.def | 123 - winsup/w32api/lib/svrapi.def | 22 - winsup/w32api/lib/tapi32.def | 116 - winsup/w32api/lib/test.c | 86 - winsup/w32api/lib/th32.def | 14 - winsup/w32api/lib/thunk32.def | 68 - winsup/w32api/lib/url.def | 9 - winsup/w32api/lib/user32.def | 581 - winsup/w32api/lib/userenv.def | 11 - winsup/w32api/lib/uuid.c | 331 - winsup/w32api/lib/vdmdbg.def | 18 - winsup/w32api/lib/version.def | 16 - winsup/w32api/lib/vfw32.def | 131 - winsup/w32api/lib/win32spl.def | 16 - winsup/w32api/lib/wininet.def | 159 - winsup/w32api/lib/winmm.def | 196 - winsup/w32api/lib/winspool.def | 131 - winsup/w32api/lib/winstrm.def | 9 - winsup/w32api/lib/wow32.def | 19 - winsup/w32api/lib/ws2_32.def | 108 - winsup/w32api/lib/wsock32.def | 75 - winsup/w32api/lib/wst.def | 3 - 797 files changed, 229668 deletions(-) delete mode 100644 winsup/CYGWIN_LICENSE delete mode 100644 winsup/ChangeLog delete mode 100644 winsup/MAINTAINERS delete mode 100644 winsup/Makefile.common delete mode 100644 winsup/Makefile.in delete mode 100644 winsup/bz2lib/CHANGES delete mode 100644 winsup/bz2lib/ChangeLog delete mode 100644 winsup/bz2lib/LICENSE delete mode 100644 winsup/bz2lib/Makefile delete mode 100644 winsup/bz2lib/Makefile-libbz2_so delete mode 100644 winsup/bz2lib/Makefile.in delete mode 100644 winsup/bz2lib/README delete mode 100644 winsup/bz2lib/README.COMPILATION.PROBLEMS delete mode 100644 winsup/bz2lib/Y2K_INFO delete mode 100644 winsup/bz2lib/aclocal.m4 delete mode 100644 winsup/bz2lib/blocksort.c delete mode 100644 winsup/bz2lib/bzip2.1 delete mode 100644 winsup/bz2lib/bzip2.1.preformatted delete mode 100644 winsup/bz2lib/bzip2.c delete mode 100644 winsup/bz2lib/bzip2.txt delete mode 100644 winsup/bz2lib/bzip2recover.c delete mode 100644 winsup/bz2lib/bzlib.c delete mode 100644 winsup/bz2lib/bzlib.h delete mode 100644 winsup/bz2lib/bzlib_private.h delete mode 100644 winsup/bz2lib/compress.c delete mode 100755 winsup/bz2lib/configure delete mode 100644 winsup/bz2lib/configure.in delete mode 100644 winsup/bz2lib/crctable.c delete mode 100644 winsup/bz2lib/decompress.c delete mode 100644 winsup/bz2lib/dlltest.c delete mode 100644 winsup/bz2lib/dlltest.dsp delete mode 100644 winsup/bz2lib/huffman.c delete mode 100644 winsup/bz2lib/libbz2.def delete mode 100644 winsup/bz2lib/libbz2.dsp delete mode 100644 winsup/bz2lib/makefile.msc delete mode 100644 winsup/bz2lib/manual.ps delete mode 100644 winsup/bz2lib/manual.texi delete mode 100644 winsup/bz2lib/manual_1.html delete mode 100644 winsup/bz2lib/manual_2.html delete mode 100644 winsup/bz2lib/manual_3.html delete mode 100644 winsup/bz2lib/manual_4.html delete mode 100644 winsup/bz2lib/manual_toc.html delete mode 100644 winsup/bz2lib/randtable.c delete mode 100644 winsup/bz2lib/sample1.bz2 delete mode 100644 winsup/bz2lib/sample1.ref delete mode 100644 winsup/bz2lib/sample2.bz2 delete mode 100644 winsup/bz2lib/sample2.ref delete mode 100644 winsup/bz2lib/sample3.bz2 delete mode 100644 winsup/bz2lib/sample3.ref delete mode 100644 winsup/bz2lib/spewG.c delete mode 100644 winsup/bz2lib/unzcrash.c delete mode 100644 winsup/bz2lib/words0 delete mode 100644 winsup/bz2lib/words1 delete mode 100644 winsup/bz2lib/words2 delete mode 100644 winsup/bz2lib/words3 delete mode 100755 winsup/configure delete mode 100755 winsup/configure.in delete mode 100644 winsup/doc/ChangeLog delete mode 100644 winsup/doc/Makefile.in delete mode 100644 winsup/doc/calls.texinfo delete mode 100644 winsup/doc/changes.texinfo delete mode 100755 winsup/doc/configure delete mode 100644 winsup/doc/configure.in delete mode 100644 winsup/doc/copy.texinfo delete mode 100644 winsup/doc/cygwin-api.in.sgml delete mode 100644 winsup/doc/cygwin-ug-net.in.sgml delete mode 100644 winsup/doc/cygwin-ug.in.sgml delete mode 100644 winsup/doc/cygwinenv.sgml delete mode 100644 winsup/doc/dll.sgml delete mode 100644 winsup/doc/doctool.c delete mode 100644 winsup/doc/doctool.txt delete mode 100644 winsup/doc/faq.texinfo delete mode 100644 winsup/doc/fhandler-tut.txt delete mode 100644 winsup/doc/filemodes.sgml delete mode 100644 winsup/doc/gcc.sgml delete mode 100644 winsup/doc/gdb.sgml delete mode 100644 winsup/doc/history.texinfo delete mode 100644 winsup/doc/how-api.texinfo delete mode 100644 winsup/doc/how-programming.texinfo delete mode 100644 winsup/doc/how-resources.texinfo delete mode 100644 winsup/doc/how-using.texinfo delete mode 100644 winsup/doc/how.texinfo delete mode 100644 winsup/doc/install.texinfo delete mode 100644 winsup/doc/legal.sgml delete mode 100644 winsup/doc/ntsec.sgml delete mode 100644 winsup/doc/overview.sgml delete mode 100644 winsup/doc/overview2.sgml delete mode 100644 winsup/doc/pathnames.sgml delete mode 100644 winsup/doc/programming.sgml delete mode 100644 winsup/doc/readme.texinfo delete mode 100644 winsup/doc/relnotes.texinfo delete mode 100644 winsup/doc/setup-net.sgml delete mode 100644 winsup/doc/setup.sgml delete mode 100644 winsup/doc/setup2.sgml delete mode 100644 winsup/doc/textbinary.sgml delete mode 100644 winsup/doc/using.sgml delete mode 100644 winsup/doc/what.texinfo delete mode 100644 winsup/doc/who.texinfo delete mode 100644 winsup/doc/windres.sgml delete mode 100644 winsup/mingw/CRT_noglob.c delete mode 100644 winsup/mingw/CRTfmode.c delete mode 100644 winsup/mingw/CRTglob.c delete mode 100644 winsup/mingw/CRTinit.c delete mode 100644 winsup/mingw/ChangeLog delete mode 100644 winsup/mingw/Makefile.in delete mode 100644 winsup/mingw/README delete mode 100644 winsup/mingw/TODO delete mode 100755 winsup/mingw/config.guess delete mode 100755 winsup/mingw/config.sub delete mode 100755 winsup/mingw/configure delete mode 100644 winsup/mingw/configure.in delete mode 100644 winsup/mingw/crt1.c delete mode 100644 winsup/mingw/crtdll.def delete mode 100644 winsup/mingw/crtmt.c delete mode 100644 winsup/mingw/crtst.c delete mode 100644 winsup/mingw/ctype_old.c delete mode 100644 winsup/mingw/dirent.c delete mode 100644 winsup/mingw/dllcrt1.c delete mode 100644 winsup/mingw/dllmain.c delete mode 100644 winsup/mingw/gccmain.c delete mode 100644 winsup/mingw/include/_mingw.h delete mode 100644 winsup/mingw/include/assert.h delete mode 100644 winsup/mingw/include/conio.h delete mode 100644 winsup/mingw/include/ctype.h delete mode 100644 winsup/mingw/include/dir.h delete mode 100644 winsup/mingw/include/direct.h delete mode 100644 winsup/mingw/include/dirent.h delete mode 100644 winsup/mingw/include/dos.h delete mode 100644 winsup/mingw/include/errno.h delete mode 100644 winsup/mingw/include/excpt.h delete mode 100644 winsup/mingw/include/fcntl.h delete mode 100644 winsup/mingw/include/float.h delete mode 100644 winsup/mingw/include/io.h delete mode 100644 winsup/mingw/include/limits.h delete mode 100644 winsup/mingw/include/locale.h delete mode 100644 winsup/mingw/include/malloc.h delete mode 100644 winsup/mingw/include/math.h delete mode 100644 winsup/mingw/include/mem.h delete mode 100644 winsup/mingw/include/memory.h delete mode 100644 winsup/mingw/include/process.h delete mode 100644 winsup/mingw/include/setjmp.h delete mode 100644 winsup/mingw/include/share.h delete mode 100644 winsup/mingw/include/signal.h delete mode 100644 winsup/mingw/include/stdarg.h delete mode 100644 winsup/mingw/include/stddef.h delete mode 100644 winsup/mingw/include/stdint.h delete mode 100644 winsup/mingw/include/stdio.h delete mode 100644 winsup/mingw/include/stdlib.h delete mode 100644 winsup/mingw/include/string.h delete mode 100644 winsup/mingw/include/strings.h delete mode 100644 winsup/mingw/include/sys/fcntl.h delete mode 100644 winsup/mingw/include/sys/file.h delete mode 100644 winsup/mingw/include/sys/locking.h delete mode 100644 winsup/mingw/include/sys/stat.h delete mode 100644 winsup/mingw/include/sys/time.h delete mode 100644 winsup/mingw/include/sys/timeb.h delete mode 100644 winsup/mingw/include/sys/types.h delete mode 100644 winsup/mingw/include/sys/unistd.h delete mode 100644 winsup/mingw/include/sys/utime.h delete mode 100644 winsup/mingw/include/tchar.h delete mode 100644 winsup/mingw/include/time.h delete mode 100644 winsup/mingw/include/unistd.h delete mode 100644 winsup/mingw/include/values.h delete mode 100644 winsup/mingw/include/varargs.h delete mode 100644 winsup/mingw/include/wchar.h delete mode 100644 winsup/mingw/include/wctype.h delete mode 100644 winsup/mingw/init.c delete mode 100755 winsup/mingw/install-sh delete mode 100644 winsup/mingw/jamfile delete mode 100644 winsup/mingw/main.c delete mode 100755 winsup/mingw/mkinstalldirs delete mode 100644 winsup/mingw/moldname-crtdll.def delete mode 100644 winsup/mingw/moldname-msvcrt.def delete mode 100644 winsup/mingw/moldname.def delete mode 100644 winsup/mingw/moldname.def.in delete mode 100644 winsup/mingw/msvcrt.def delete mode 100644 winsup/mingw/msvcrt20.def delete mode 100644 winsup/mingw/msvcrt40.def delete mode 100644 winsup/mingw/mthr.c delete mode 100644 winsup/mingw/mthr_init.c delete mode 100644 winsup/mingw/mthr_stub.c delete mode 100644 winsup/mingw/profile/Makefile.in delete mode 100755 winsup/mingw/profile/configure delete mode 100644 winsup/mingw/profile/configure.in delete mode 100644 winsup/mingw/profile/gcrt0.c delete mode 100644 winsup/mingw/profile/gmon.c delete mode 100644 winsup/mingw/profile/gmon.h delete mode 100644 winsup/mingw/profile/mcount.c delete mode 100644 winsup/mingw/profile/profil.c delete mode 100644 winsup/mingw/profile/profil.h delete mode 100644 winsup/mingw/profile/profile.h delete mode 100644 winsup/mingw/readme.txt delete mode 100644 winsup/mingw/samples/dirent/jamfile delete mode 100644 winsup/mingw/samples/dirent/test.c delete mode 100644 winsup/mingw/samples/dlltest/dll.c delete mode 100644 winsup/mingw/samples/dlltest/dll.def delete mode 100644 winsup/mingw/samples/dlltest/dll.h delete mode 100644 winsup/mingw/samples/dlltest/exe.c delete mode 100644 winsup/mingw/samples/dlltest/exe.exp delete mode 100644 winsup/mingw/samples/dlltest/expexe.c delete mode 100644 winsup/mingw/samples/dlltest/expexe.def delete mode 100644 winsup/mingw/samples/dlltest/jamfile delete mode 100644 winsup/mingw/samples/dlltest/loaddll.c delete mode 100644 winsup/mingw/samples/dlltest/loadexe.c delete mode 100644 winsup/mingw/samples/dlltest/readme.txt delete mode 100644 winsup/mingw/samples/dlltest/silly.cpp delete mode 100644 winsup/mingw/samples/dlltest/silly.def delete mode 100644 winsup/mingw/samples/dlltest/silly.exp delete mode 100644 winsup/mingw/samples/dlltest/silly.h delete mode 100644 winsup/mingw/samples/dlltest/sillydll.cpp delete mode 100644 winsup/mingw/samples/filehand/filehand.c delete mode 100644 winsup/mingw/samples/filehand/jamfile delete mode 100644 winsup/mingw/samples/filehand/junk.txt delete mode 100644 winsup/mingw/samples/fixargv/fixargv.c delete mode 100644 winsup/mingw/samples/fixargv/fixargv.h delete mode 100644 winsup/mingw/samples/fixargv/readme.txt delete mode 100644 winsup/mingw/samples/fmode/all.c delete mode 100644 winsup/mingw/samples/fmode/jamfile delete mode 100644 winsup/mingw/samples/fmode/readme.txt delete mode 100644 winsup/mingw/samples/fmode/test.c delete mode 100644 winsup/mingw/samples/globbing/glob.c delete mode 100644 winsup/mingw/samples/globbing/jamfile delete mode 100644 winsup/mingw/samples/globbing/noglob.c delete mode 100644 winsup/mingw/samples/globbing/readme.txt delete mode 100644 winsup/mingw/samples/print/jamfile delete mode 100644 winsup/mingw/samples/print/prntest.c delete mode 100644 winsup/mingw/samples/seh/eh3.c delete mode 100644 winsup/mingw/samples/seh/exutil.c delete mode 100644 winsup/mingw/samples/seh/exutil.def delete mode 100644 winsup/mingw/samples/seh/exutil.h delete mode 100644 winsup/mingw/samples/seh/jamfile delete mode 100644 winsup/mingw/samples/seh/sehfix.c delete mode 100644 winsup/mingw/samples/seh/sehsub.c delete mode 100644 winsup/mingw/samples/seh/sehtest.c delete mode 100644 winsup/mingw/samples/simpledll/dll.c delete mode 100644 winsup/mingw/samples/simpledll/dll.cpp delete mode 100644 winsup/mingw/samples/simpledll/dll.def delete mode 100644 winsup/mingw/samples/simpledll/exe.c delete mode 100644 winsup/mingw/samples/simpledll/jamfile delete mode 100644 winsup/mingw/samples/simpledll/makedll.bat delete mode 100644 winsup/mingw/samples/test/jamfile delete mode 100644 winsup/mingw/samples/test/test.c delete mode 100644 winsup/mingw/samples/wintest/jamfile delete mode 100644 winsup/mingw/samples/wintest/test.c delete mode 100644 winsup/mingw/string_old.c delete mode 100644 winsup/subauth/ChangeLog delete mode 100644 winsup/subauth/Makefile.in delete mode 100755 winsup/subauth/configure delete mode 100644 winsup/subauth/configure.in delete mode 100644 winsup/subauth/cygsuba.c delete mode 100644 winsup/subauth/cygsuba.din delete mode 100644 winsup/testsuite/ChangeLog delete mode 100644 winsup/testsuite/Makefile.in delete mode 100644 winsup/testsuite/README delete mode 100644 winsup/testsuite/config/default.exp delete mode 100644 winsup/testsuite/configure delete mode 100755 winsup/testsuite/configure.in delete mode 100644 winsup/testsuite/libltp/include/dataascii.h delete mode 100644 winsup/testsuite/libltp/include/databin.h delete mode 100644 winsup/testsuite/libltp/include/file_lock.h delete mode 100644 winsup/testsuite/libltp/include/forker.h delete mode 100644 winsup/testsuite/libltp/include/open_flags.h delete mode 100644 winsup/testsuite/libltp/include/pattern.h delete mode 100644 winsup/testsuite/libltp/include/random_range.h delete mode 100644 winsup/testsuite/libltp/include/rmobj.h delete mode 100644 winsup/testsuite/libltp/include/search_path.h delete mode 100644 winsup/testsuite/libltp/include/str_to_bytes.h delete mode 100644 winsup/testsuite/libltp/include/string_to_tokens.h delete mode 100644 winsup/testsuite/libltp/include/test.h delete mode 100644 winsup/testsuite/libltp/include/tlibio.h delete mode 100644 winsup/testsuite/libltp/include/usctest.h delete mode 100644 winsup/testsuite/libltp/include/write_log.h delete mode 100644 winsup/testsuite/libltp/lib/dataascii.c delete mode 100644 winsup/testsuite/libltp/lib/databin.c delete mode 100644 winsup/testsuite/libltp/lib/datapid.c delete mode 100644 winsup/testsuite/libltp/lib/forker.c delete mode 100644 winsup/testsuite/libltp/lib/get_high_address.c delete mode 100644 winsup/testsuite/libltp/lib/libtestsuite.c delete mode 100644 winsup/testsuite/libltp/lib/open_flags.c delete mode 100644 winsup/testsuite/libltp/lib/parse_opts.c delete mode 100644 winsup/testsuite/libltp/lib/pattern.c delete mode 100644 winsup/testsuite/libltp/lib/rmobj.c delete mode 100644 winsup/testsuite/libltp/lib/search_path.c delete mode 100644 winsup/testsuite/libltp/lib/str_to_bytes.c delete mode 100644 winsup/testsuite/libltp/lib/string_to_tokens.c delete mode 100644 winsup/testsuite/libltp/lib/tst_res.c delete mode 100644 winsup/testsuite/libltp/lib/tst_sig.c delete mode 100644 winsup/testsuite/libltp/lib/tst_tmpdir.c delete mode 100644 winsup/testsuite/libltp/lib/write_log.c delete mode 100644 winsup/testsuite/winsup.api/checksignal.c delete mode 100644 winsup/testsuite/winsup.api/crlf.c delete mode 100644 winsup/testsuite/winsup.api/devzero.c delete mode 100644 winsup/testsuite/winsup.api/iospeed.c delete mode 100644 winsup/testsuite/winsup.api/known_bugs.tcl delete mode 100644 winsup/testsuite/winsup.api/ltp/access01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/access03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/access04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/access05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/alarm01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/alarm02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/alarm03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/alarm07.c delete mode 100644 winsup/testsuite/winsup.api/ltp/asyncio02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/chdir02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/chdir04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/chmod01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/chmod02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/chown01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/close01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/close02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/close08.c delete mode 100644 winsup/testsuite/winsup.api/ltp/creat01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/creat03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/creat09.c delete mode 100644 winsup/testsuite/winsup.api/ltp/dup01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/dup02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/dup03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/dup04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/dup05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/execl01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/execle01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/execlp01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/execv01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/execve01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/execvp01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/exit01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/exit02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fchdir01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fchdir02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fchmod01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fchown01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fcntl02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fcntl03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fcntl04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fcntl05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fcntl07.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fcntl07B.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fcntl08.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fcntl09.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fcntl10.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fork01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fork02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fork03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fork04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fork06.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fork07.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fork09.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fork10.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fork11.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fpathconf01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fstat01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fstat02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fstat03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fstat04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/fsync01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/ftruncate01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/ftruncate02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/ftruncate03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getegid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/geteuid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getgid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getgid02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getgid03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getgroups01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getgroups02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/gethostid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/gethostname01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getpgid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getpgid02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getpgrp01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getpid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getpid02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getppid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getppid02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getuid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getuid02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/getuid03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/kill01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/kill02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/kill03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/kill04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/kill09.c delete mode 100644 winsup/testsuite/winsup.api/ltp/link02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/link03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/link04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/link05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lseek01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lseek02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lseek03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lseek04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lseek05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lseek06.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lseek07.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lseek08.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lseek09.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lseek10.c delete mode 100644 winsup/testsuite/winsup.api/ltp/lstat02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mkdir01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mkdir08.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mknod01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mmap001.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mmap02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mmap03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mmap04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mmap05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mmap06.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mmap07.c delete mode 100644 winsup/testsuite/winsup.api/ltp/mmap08.c delete mode 100644 winsup/testsuite/winsup.api/ltp/munmap01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/munmap02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/nice05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/open02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/open03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/pathconf01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/pause01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/pipe01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/pipe08.c delete mode 100644 winsup/testsuite/winsup.api/ltp/pipe09.c delete mode 100644 winsup/testsuite/winsup.api/ltp/pipe10.c delete mode 100644 winsup/testsuite/winsup.api/ltp/pipe11.c delete mode 100644 winsup/testsuite/winsup.api/ltp/poll01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/read01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/read04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/readdir01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/readlink01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/readlink02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/readlink03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/rename01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/rename02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/rename08.c delete mode 100644 winsup/testsuite/winsup.api/ltp/rename10.c delete mode 100644 winsup/testsuite/winsup.api/ltp/rmdir01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/rmdir04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/rmdir05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/sbrk01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/select01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/select02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/select03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/setgid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/setgroups01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/setpgid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/setregid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/setreuid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/setuid01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/setuid02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/signal03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/stat01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/stat02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/stat03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/stat05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/stat06.c delete mode 100644 winsup/testsuite/winsup.api/ltp/symlink01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/symlink02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/symlink03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/symlink04.c delete mode 100644 winsup/testsuite/winsup.api/ltp/symlink05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/sync01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/sync02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/time01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/time02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/times01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/times02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/times03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/truncate01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/truncate02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/ulimit01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/umask01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/umask02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/umask03.c delete mode 100644 winsup/testsuite/winsup.api/ltp/uname01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/unlink05.c delete mode 100644 winsup/testsuite/winsup.api/ltp/unlink06.c delete mode 100644 winsup/testsuite/winsup.api/ltp/unlink07.c delete mode 100644 winsup/testsuite/winsup.api/ltp/unlink08.c delete mode 100644 winsup/testsuite/winsup.api/ltp/vfork01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/wait02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/wait401.c delete mode 100644 winsup/testsuite/winsup.api/ltp/wait402.c delete mode 100644 winsup/testsuite/winsup.api/ltp/write01.c delete mode 100644 winsup/testsuite/winsup.api/ltp/write02.c delete mode 100644 winsup/testsuite/winsup.api/ltp/write03.c delete mode 100644 winsup/testsuite/winsup.api/mmaptest01.c delete mode 100644 winsup/testsuite/winsup.api/mmaptest02.c delete mode 100644 winsup/testsuite/winsup.api/mmaptest03.c delete mode 100644 winsup/testsuite/winsup.api/mmaptest04.c delete mode 100644 winsup/testsuite/winsup.api/nullgetcwd.c delete mode 100644 winsup/testsuite/winsup.api/pthread/cleanup2.c delete mode 100644 winsup/testsuite/winsup.api/pthread/cleanup3.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar2.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar2_1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar3.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar3_1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar3_2.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar3_3.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar4.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar5.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar6.c delete mode 100644 winsup/testsuite/winsup.api/pthread/condvar8.c delete mode 100644 winsup/testsuite/winsup.api/pthread/count1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/create1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/create2.c delete mode 100644 winsup/testsuite/winsup.api/pthread/equal1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/exit1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/exit2.c delete mode 100644 winsup/testsuite/winsup.api/pthread/exit3.c delete mode 100644 winsup/testsuite/winsup.api/pthread/inherit1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/join0.c delete mode 100644 winsup/testsuite/winsup.api/pthread/join1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/join2.c delete mode 100644 winsup/testsuite/winsup.api/pthread/mutex1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/mutex1r.c delete mode 100644 winsup/testsuite/winsup.api/pthread/mutex2.c delete mode 100644 winsup/testsuite/winsup.api/pthread/mutex3.c delete mode 100644 winsup/testsuite/winsup.api/pthread/mutex6r.c delete mode 100644 winsup/testsuite/winsup.api/pthread/once1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/priority1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/priority2.c delete mode 100644 winsup/testsuite/winsup.api/pthread/self1.c delete mode 100644 winsup/testsuite/winsup.api/pthread/self2.c delete mode 100644 winsup/testsuite/winsup.api/pthread/test.h delete mode 100644 winsup/testsuite/winsup.api/pthread/tsd1.c delete mode 100644 winsup/testsuite/winsup.api/samples/sample-fail.c delete mode 100644 winsup/testsuite/winsup.api/samples/sample-miscompile.c delete mode 100644 winsup/testsuite/winsup.api/samples/sample-pass.c delete mode 100644 winsup/testsuite/winsup.api/sigchld.c delete mode 100755 winsup/testsuite/winsup.api/signal-into-win32-api.c delete mode 100644 winsup/testsuite/winsup.api/systemcall.c delete mode 100644 winsup/testsuite/winsup.api/waitpid.c delete mode 100644 winsup/testsuite/winsup.api/winsup.exp delete mode 100644 winsup/utils/ChangeLog delete mode 100644 winsup/utils/ChangeLog-2000 delete mode 100644 winsup/utils/Makefile.in delete mode 100644 winsup/utils/aclocal.m4 delete mode 100755 winsup/utils/configure delete mode 100644 winsup/utils/configure.in delete mode 100644 winsup/utils/cygcheck.cc delete mode 100644 winsup/utils/cygpath.cc delete mode 100644 winsup/utils/dump_setup.cc delete mode 100644 winsup/utils/dumper.cc delete mode 100644 winsup/utils/dumper.h delete mode 100644 winsup/utils/getfacl.c delete mode 100644 winsup/utils/kill.cc delete mode 100644 winsup/utils/mkgroup.c delete mode 100644 winsup/utils/mkpasswd.c delete mode 100644 winsup/utils/module_info.cc delete mode 100644 winsup/utils/mount.cc delete mode 100644 winsup/utils/parse_pe.cc delete mode 100644 winsup/utils/passwd.c delete mode 100644 winsup/utils/path.cc delete mode 100644 winsup/utils/path.h delete mode 100644 winsup/utils/ps.cc delete mode 100644 winsup/utils/regtool.cc delete mode 100644 winsup/utils/setfacl.c delete mode 100644 winsup/utils/ssp.c delete mode 100644 winsup/utils/ssp.txt delete mode 100644 winsup/utils/strace.cc delete mode 100644 winsup/utils/umount.cc delete mode 100644 winsup/utils/utils.sgml delete mode 100644 winsup/w32api/CONTRIBUTIONS delete mode 100644 winsup/w32api/ChangeLog delete mode 100644 winsup/w32api/Makefile.in delete mode 100644 winsup/w32api/README delete mode 100644 winsup/w32api/TODO delete mode 100755 winsup/w32api/config.guess delete mode 100755 winsup/w32api/config.sub delete mode 100755 winsup/w32api/configure delete mode 100644 winsup/w32api/configure.in delete mode 100644 winsup/w32api/include/accctrl.h delete mode 100644 winsup/w32api/include/aclapi.h delete mode 100644 winsup/w32api/include/basetsd.h delete mode 100644 winsup/w32api/include/basetyps.h delete mode 100644 winsup/w32api/include/cderr.h delete mode 100644 winsup/w32api/include/cguid.h delete mode 100644 winsup/w32api/include/commctrl.h delete mode 100644 winsup/w32api/include/commdlg.h delete mode 100644 winsup/w32api/include/cpl.h delete mode 100644 winsup/w32api/include/cplext.h delete mode 100644 winsup/w32api/include/custcntl.h delete mode 100644 winsup/w32api/include/dbt.h delete mode 100644 winsup/w32api/include/dde.h delete mode 100644 winsup/w32api/include/ddeml.h delete mode 100644 winsup/w32api/include/dlgs.h delete mode 100644 winsup/w32api/include/excpt.h delete mode 100644 winsup/w32api/include/httpext.h delete mode 100644 winsup/w32api/include/imagehlp.h delete mode 100644 winsup/w32api/include/imm.h delete mode 100644 winsup/w32api/include/initguid.h delete mode 100644 winsup/w32api/include/intshcut.h delete mode 100644 winsup/w32api/include/ipexport.h delete mode 100644 winsup/w32api/include/iphlpapi.h delete mode 100644 winsup/w32api/include/ipifcons.h delete mode 100644 winsup/w32api/include/iprtrmib.h delete mode 100644 winsup/w32api/include/iptypes.h delete mode 100644 winsup/w32api/include/isguids.h delete mode 100644 winsup/w32api/include/largeint.h delete mode 100644 winsup/w32api/include/lm.h delete mode 100644 winsup/w32api/include/lmaccess.h delete mode 100644 winsup/w32api/include/lmalert.h delete mode 100644 winsup/w32api/include/lmapibuf.h delete mode 100644 winsup/w32api/include/lmat.h delete mode 100644 winsup/w32api/include/lmaudit.h delete mode 100644 winsup/w32api/include/lmbrowsr.h delete mode 100644 winsup/w32api/include/lmchdev.h delete mode 100644 winsup/w32api/include/lmconfig.h delete mode 100644 winsup/w32api/include/lmcons.h delete mode 100644 winsup/w32api/include/lmerr.h delete mode 100644 winsup/w32api/include/lmerrlog.h delete mode 100644 winsup/w32api/include/lmmsg.h delete mode 100644 winsup/w32api/include/lmremutl.h delete mode 100644 winsup/w32api/include/lmrepl.h delete mode 100644 winsup/w32api/include/lmserver.h delete mode 100644 winsup/w32api/include/lmshare.h delete mode 100644 winsup/w32api/include/lmsname.h delete mode 100644 winsup/w32api/include/lmstats.h delete mode 100644 winsup/w32api/include/lmsvc.h delete mode 100644 winsup/w32api/include/lmuse.h delete mode 100644 winsup/w32api/include/lmuseflg.h delete mode 100644 winsup/w32api/include/lmwksta.h delete mode 100644 winsup/w32api/include/lzexpand.h delete mode 100644 winsup/w32api/include/mapi.h delete mode 100644 winsup/w32api/include/mciavi.h delete mode 100644 winsup/w32api/include/mcx.h delete mode 100644 winsup/w32api/include/mmsystem.h delete mode 100644 winsup/w32api/include/mswsock.h delete mode 100644 winsup/w32api/include/nb30.h delete mode 100644 winsup/w32api/include/nddeapi.h delete mode 100644 winsup/w32api/include/nspapi.h delete mode 100644 winsup/w32api/include/ntdef.h delete mode 100644 winsup/w32api/include/ntsecapi.h delete mode 100644 winsup/w32api/include/ntsecpkg.h delete mode 100644 winsup/w32api/include/oaidl.h delete mode 100644 winsup/w32api/include/objbase.h delete mode 100644 winsup/w32api/include/objfwd.h delete mode 100644 winsup/w32api/include/objidl.h delete mode 100644 winsup/w32api/include/ocidl.h delete mode 100644 winsup/w32api/include/odbcinst.h delete mode 100644 winsup/w32api/include/ole.h delete mode 100644 winsup/w32api/include/ole2.h delete mode 100644 winsup/w32api/include/ole2ver.h delete mode 100644 winsup/w32api/include/oleauto.h delete mode 100644 winsup/w32api/include/olectl.h delete mode 100644 winsup/w32api/include/olectlid.h delete mode 100644 winsup/w32api/include/oledlg.h delete mode 100644 winsup/w32api/include/oleidl.h delete mode 100644 winsup/w32api/include/pbt.h delete mode 100644 winsup/w32api/include/poppack.h delete mode 100644 winsup/w32api/include/prsht.h delete mode 100644 winsup/w32api/include/psapi.h delete mode 100644 winsup/w32api/include/pshpack1.h delete mode 100644 winsup/w32api/include/pshpack2.h delete mode 100644 winsup/w32api/include/pshpack4.h delete mode 100644 winsup/w32api/include/pshpack8.h delete mode 100644 winsup/w32api/include/rapi.h delete mode 100644 winsup/w32api/include/ras.h delete mode 100644 winsup/w32api/include/raserror.h delete mode 100644 winsup/w32api/include/rassapi.h delete mode 100644 winsup/w32api/include/regstr.h delete mode 100644 winsup/w32api/include/richedit.h delete mode 100644 winsup/w32api/include/richole.h delete mode 100644 winsup/w32api/include/rpc.h delete mode 100644 winsup/w32api/include/rpcdce.h delete mode 100644 winsup/w32api/include/rpcdce2.h delete mode 100644 winsup/w32api/include/rpcdcep.h delete mode 100644 winsup/w32api/include/rpcndr.h delete mode 100644 winsup/w32api/include/rpcnsi.h delete mode 100644 winsup/w32api/include/rpcnsip.h delete mode 100644 winsup/w32api/include/rpcnterr.h delete mode 100644 winsup/w32api/include/rpcproxy.h delete mode 100644 winsup/w32api/include/schannel.h delete mode 100644 winsup/w32api/include/schnlsp.h delete mode 100644 winsup/w32api/include/scrnsave.h delete mode 100644 winsup/w32api/include/security.h delete mode 100644 winsup/w32api/include/setupapi.h delete mode 100644 winsup/w32api/include/shellapi.h delete mode 100644 winsup/w32api/include/shlguid.h delete mode 100644 winsup/w32api/include/shlobj.h delete mode 100644 winsup/w32api/include/sql.h delete mode 100644 winsup/w32api/include/sqlext.h delete mode 100644 winsup/w32api/include/sqltypes.h delete mode 100644 winsup/w32api/include/sqlucode.h delete mode 100644 winsup/w32api/include/sspi.h delete mode 100644 winsup/w32api/include/subauth.h delete mode 100644 winsup/w32api/include/tlhelp32.h delete mode 100644 winsup/w32api/include/unknwn.h delete mode 100644 winsup/w32api/include/userenv.h delete mode 100644 winsup/w32api/include/w32api.h delete mode 100644 winsup/w32api/include/winbase.h delete mode 100644 winsup/w32api/include/wincon.h delete mode 100644 winsup/w32api/include/wincrypt.h delete mode 100644 winsup/w32api/include/windef.h delete mode 100644 winsup/w32api/include/windows.h delete mode 100644 winsup/w32api/include/windowsx.h delete mode 100644 winsup/w32api/include/winerror.h delete mode 100644 winsup/w32api/include/wingdi.h delete mode 100644 winsup/w32api/include/wininet.h delete mode 100644 winsup/w32api/include/winioctl.h delete mode 100644 winsup/w32api/include/winnetwk.h delete mode 100644 winsup/w32api/include/winnls.h delete mode 100644 winsup/w32api/include/winnt.h delete mode 100644 winsup/w32api/include/winperf.h delete mode 100644 winsup/w32api/include/winreg.h delete mode 100644 winsup/w32api/include/winresrc.h delete mode 100644 winsup/w32api/include/winsock.h delete mode 100644 winsup/w32api/include/winsock2.h delete mode 100644 winsup/w32api/include/winspool.h delete mode 100644 winsup/w32api/include/winsvc.h delete mode 100644 winsup/w32api/include/winuser.h delete mode 100644 winsup/w32api/include/winver.h delete mode 100644 winsup/w32api/include/ws2tcpip.h delete mode 100644 winsup/w32api/include/wsnetbs.h delete mode 100644 winsup/w32api/include/wtypes.h delete mode 100644 winsup/w32api/include/zmouse.h delete mode 100755 winsup/w32api/install-sh delete mode 100644 winsup/w32api/lib/Makefile.in delete mode 100644 winsup/w32api/lib/advapi32.def delete mode 100644 winsup/w32api/lib/cap.def delete mode 100644 winsup/w32api/lib/comctl32.def delete mode 100644 winsup/w32api/lib/comdlg32.def delete mode 100644 winsup/w32api/lib/crypt32.def delete mode 100644 winsup/w32api/lib/ctl3d32.def delete mode 100644 winsup/w32api/lib/d3dim.def delete mode 100644 winsup/w32api/lib/d3drm.def delete mode 100644 winsup/w32api/lib/d3dxof.def delete mode 100644 winsup/w32api/lib/ddraw.def delete mode 100644 winsup/w32api/lib/dinput.c delete mode 100644 winsup/w32api/lib/dinput.def delete mode 100644 winsup/w32api/lib/dlcapi.def delete mode 100644 winsup/w32api/lib/dplayx.def delete mode 100644 winsup/w32api/lib/dsetup.def delete mode 100644 winsup/w32api/lib/dsound.def delete mode 100644 winsup/w32api/lib/dxguid.c delete mode 100644 winsup/w32api/lib/gdi32.def delete mode 100644 winsup/w32api/lib/glaux.def delete mode 100644 winsup/w32api/lib/glu32.def delete mode 100644 winsup/w32api/lib/glut.def delete mode 100644 winsup/w32api/lib/glut32.def delete mode 100644 winsup/w32api/lib/imagehlp.def delete mode 100644 winsup/w32api/lib/imm32.def delete mode 100644 winsup/w32api/lib/iphlpapi.def delete mode 100644 winsup/w32api/lib/kernel32.c delete mode 100644 winsup/w32api/lib/kernel32.def delete mode 100644 winsup/w32api/lib/largeint.c delete mode 100644 winsup/w32api/lib/lz32.def delete mode 100644 winsup/w32api/lib/mapi32.def delete mode 100644 winsup/w32api/lib/mfcuia32.def delete mode 100644 winsup/w32api/lib/mgmtapi.def delete mode 100644 winsup/w32api/lib/mpr.def delete mode 100644 winsup/w32api/lib/msacm32.def delete mode 100644 winsup/w32api/lib/msvcp60.def delete mode 100644 winsup/w32api/lib/mswsock.def delete mode 100644 winsup/w32api/lib/nddeapi.def delete mode 100644 winsup/w32api/lib/netapi32.def delete mode 100644 winsup/w32api/lib/odbc32.def delete mode 100644 winsup/w32api/lib/odbccp32.def delete mode 100644 winsup/w32api/lib/ole32.def delete mode 100644 winsup/w32api/lib/oleaut32.def delete mode 100644 winsup/w32api/lib/olecli32.def delete mode 100644 winsup/w32api/lib/oledlg.def delete mode 100644 winsup/w32api/lib/olepro32.def delete mode 100644 winsup/w32api/lib/olesvr32.def delete mode 100644 winsup/w32api/lib/opengl32.def delete mode 100644 winsup/w32api/lib/penwin32.def delete mode 100644 winsup/w32api/lib/pkpd32.def delete mode 100644 winsup/w32api/lib/psapi.def delete mode 100644 winsup/w32api/lib/rapi.def delete mode 100644 winsup/w32api/lib/rasapi32.def delete mode 100644 winsup/w32api/lib/res.rc delete mode 100644 winsup/w32api/lib/rpcdce4.def delete mode 100644 winsup/w32api/lib/rpcns4.def delete mode 100644 winsup/w32api/lib/rpcrt4.def delete mode 100644 winsup/w32api/lib/scrnsave.c delete mode 100644 winsup/w32api/lib/secur32.def delete mode 100644 winsup/w32api/lib/setupapi.def delete mode 100644 winsup/w32api/lib/shell32.c delete mode 100644 winsup/w32api/lib/shell32.def delete mode 100644 winsup/w32api/lib/svrapi.def delete mode 100644 winsup/w32api/lib/tapi32.def delete mode 100644 winsup/w32api/lib/test.c delete mode 100644 winsup/w32api/lib/th32.def delete mode 100644 winsup/w32api/lib/thunk32.def delete mode 100644 winsup/w32api/lib/url.def delete mode 100644 winsup/w32api/lib/user32.def delete mode 100644 winsup/w32api/lib/userenv.def delete mode 100644 winsup/w32api/lib/uuid.c delete mode 100644 winsup/w32api/lib/vdmdbg.def delete mode 100644 winsup/w32api/lib/version.def delete mode 100644 winsup/w32api/lib/vfw32.def delete mode 100644 winsup/w32api/lib/win32spl.def delete mode 100644 winsup/w32api/lib/wininet.def delete mode 100644 winsup/w32api/lib/winmm.def delete mode 100644 winsup/w32api/lib/winspool.def delete mode 100644 winsup/w32api/lib/winstrm.def delete mode 100644 winsup/w32api/lib/wow32.def delete mode 100644 winsup/w32api/lib/ws2_32.def delete mode 100644 winsup/w32api/lib/wsock32.def delete mode 100644 winsup/w32api/lib/wst.def (limited to 'winsup') diff --git a/winsup/CYGWIN_LICENSE b/winsup/CYGWIN_LICENSE deleted file mode 100644 index 53369a297..000000000 --- a/winsup/CYGWIN_LICENSE +++ /dev/null @@ -1,38 +0,0 @@ --------------------------------------------------------------------------- -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License (GPL) as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. --------------------------------------------------------------------------- - - *** NOTE *** - -In accordance with section 10 of the GPL, Red Hat permits programs whose -sources are distributed under a license that complies with the Open -Source definition to be linked with libcygwin.a without libcygwin.a -itself causing the resulting program to be covered by the GNU GPL. - -This means that you can port an Open Source(tm) application to cygwin, -and distribute that executable as if it didn't include a copy of -libcygwin.a linked into it. Note that this does not apply to the cygwin -DLL itself. If you distribute a (possibly modified) version of the DLL -you must adhere to the terms of the GPL, i.e., you must provide sources -for the cygwin DLL. - -See http://www.opensource.org/osd.html for the precise Open Source -Definition referenced above. - -Red Hat sells a special Cygwin License for customers who are unable to -provide their application in open source code form. For more -information, please see: http://www.redhat.com/software/tools/cygwin/, -or call 866-2REDHAT ext. 3007 - diff --git a/winsup/ChangeLog b/winsup/ChangeLog deleted file mode 100644 index d80f6f4c4..000000000 --- a/winsup/ChangeLog +++ /dev/null @@ -1,244 +0,0 @@ -2002-02-19 Christopher Faylor - - * configure.in: Avoid building w32api or mingw if they don't exist. - * configure: Regenerate. - -2001-12-18 Christopher Faylor - - * Makefile.in: Don't attempt to use zlib directory as a dependency if - it doesn't exist. - -2001-12-14 Christopher Faylor - - * configure.in: Detect zlib subdirectory. - * configure: Regenerate - * Makefile.in: Exit immediately if a sub-make fails. - * Makefile.common: Add automatic rules for bz2lib and zlib. - -2001-11-04 Christopher Faylor - - * Makefile.in: Force configure in testsuite directory if config.status - does not exist. - -2001-11-03 Christopher Faylor - - * configure.in: Disable subauth directory test. - * configure: Regenerate. - * Makefile.in: Use MAKE variable in directory builds. - -2001-11-03 Christopher Faylor - - * Makefile.in: Add directory dependencies to ensure ordering when using - 'make -jN'. - -2001-11-03 Christopher Faylor - - * Makefile.common: Remove preferred-stack-boundary setting since gcc - 2.95.3 doesn't work well with it. - -2001-11-01 Christopher Faylor - - * Makefile.common: Add some stuff to common CFLAGS. - -2001-10-29 Egor Duda - - * Makefile.in: Propagate 'clean' to subdirs properly. - -2001-10-26 Corinna Vinschen - - * configure: Regenerate, removing erroneous SUBDIRS substitution. - -2001-10-24 Christopher Faylor - - * Makefile.in: Only build testsuite directory on first 'make check'. - * configure.in: Remove testsuite from SUBDIRS. - * configure: Regenerate. - -2001-10-12 Christopher Faylor - - * Makefile.in: Add -nostdinc to CXXFLAGS. - -2001-10-12 Christopher Faylor - - * Makefile.common: Perform more include file testing trickery. - -Sun Oct 7 23:08:46 2001 Christopher Faylor - - * Makefile.common: Avoid adding -I options to compile if they already - exist in CC or C*FLAGS. This prevents warnings from newer versions of - gcc. - -Tue May 15 01:09:56 2001 Christopher Faylor - - * Makefile.common: Change method for finding current directory. - -Sat May 5 00:14:03 2001 Christopher Faylor - - * configure.in: Fix typo. - * configure: Regenerate. - -Fri May 4 11:24:53 2001 Christopher Faylor - - * configure.in: Make subauth configuration optional. - * configure: Regenerate. - -Fri May 4 15:06:00 Corinna Vinschen - - * subauth: New subdirectory. - * configure.in: Add subauth to the list of subdirectories. - * configure: Regenerated from configure.in. - -Wed Apr 18 18:45:07 2001 Christopher Faylor - - * configure.in: Add bz2lib. - -2001-03-19 DJ Delorie - - * configure: fix regeneration bug. - -Thu Feb 22 13:36:00 2000 Corinna Vinschen - - * Makefile.common: Revert previous change. - -Wed Feb 21 22:41:00 2000 Corinna Vinschen - - * Makefile.common: Add `-fvtable-thunks' to COMPILE_CXX. - -Sun Dec 3 00:21:31 2000 Christopher Faylor - - * Makefile.common: Eliminate checks for libgcc.a and libstdc++.a. Use - CXX for g++ compiles. - * configure.in: Find correct c++ compiler. - * configure: Regenerate. - -Mon Oct 23 00:50:02 2000 Christopher Faylor - - * Makefile.common (LIBGCC): Acommodate older gcc's that don't need - libstdc++.a. - -Sat Oct 21 18:01:22 2000 Christopher Faylor - - * Makefile.common (LIBGCC): Find libstdc++.a as well as libc.a since - builtin functions are in this library in newer gcc's. - -Sun Oct 1 22:02:38 2000 Christopher Faylor - - * Makefile.common: Extend VERBOSE default. - * Makefile.in: Don't clean the testsuite separately. It's already part - of CLEAN_SUBDIRS. - -2000-09-30 Christopher Faylor - - * Makefile.common: Default to VERBOSE when part of overall source - tree build. - -2000-09-02 Egor Duda - - * Makefile.in: Add new goal "check" - * configure.in: When doing native build do configure in - testsuite subdirectory - * configure: Regenerate. - -Fri Sep 1 10:15:37 2000 Christopher Faylor - - * Makefile.in: More normalization. - -Thu Aug 31 16:37:31 2000 Christopher Faylor - - * Makefile.in: Normalize 'pwd' based on location of winsup. - -Thu Aug 24 15:02:26 2000 Christopher Faylor - - * Makefile.common: Add bupdir2 to reference above the i686-pc-cygwin - directory. - -Thu Jun 22 18:28:06 2000 Christopher Faylor - - * Makefile.in: Add dummy info targets. - -Tue Jun 20 13:36:23 2000 Christopher Faylor - - * configure.in: Bow to necessity and build w32api before anything else. - * configure: Regenerate. - -Sat Jun 17 13:50:04 2000 Christopher Faylor - - * configure.in: Detect "cross-hosting" situation and add a subset of - directories to SUBDIRS. - * configure: Regenerate. - -Thu May 25 18:39:24 2000 Christopher Faylor - - * configure.in: Don't assume that cinstall directory exists. - * configure: Regenerate - -2000-05-24 DJ Delorie - - * Makefile.common (%.o): further simplify, add "..." to make it obvious - it's an abbreviated command line. - -Thu May 18 14:33:05 2000 Christopher Faylor - - * MAINTAINERS: Add Corinna to general list. - -2000-04-17 DJ Delorie - - * Makefile.common (srcdir): remove dependence on where pwd is - -Sun Apr 9 23:47:45 2000 Christopher Faylor - - * Makefile.common: Resolve srcdir to absolute path or it will confuse - usages when passed to submakes. Eliminate vestigal use of - MAKEOVERRIDES. - -Sun Apr 9 02:06:49 2000 Christopher Faylor - - * Makefile.in: Work around MAKEOVERRIDES problem with older versions - of make. - * Makefile.common: Ditto. - -Fri Apr 7 17:04:02 Ron Parker - - * configure.in: Added cinstall to the list of subdirs. - * configure: Regenerate. - -Thu Mar 30 23:45:00 2000 Christopher Faylor - - * MAINTAINERS: Add Ron Parker as maintainer of cinstall stuff. - -Sun Feb 6 18:15:44 2000 Christopher Faylor - - * configure.in: Do the standard CC/CFLAGS stuff for propagation to - sub-configures. - * configure: Regenerate. - -2000-01-26 DJ Delorie - - * doc/Makefile.in: fix doctool -d options - -Fri Jan 21 12:51:32 2000 Christopher Faylor - - * Makefile.common: No need to rerun Makefile if config.status changes. - That should happen automatically. - * Makefile.in: Ditto. - -Sat Jan 8 14:40:01 2000 Christopher Faylor - - * Makefile.common: Remove cygwin DLL specific stuff. Make Makefile - target PRECIOUS. - * Makefile.in: Make Makefile target PRECIOUS. - -Fri Jan 7 21:00:49 2000 Christopher Faylor - - * Makefile.common: Remove cygwin DLL specific stuff. Correctly deal - with updir stuff when building in the same directory as the source. - -Thu Jan 6 19:04:35 2000 Christopher Faylor - - Create new directory structure - * Makefile.in: New file. - * configure.in: New file. - * configure: New file. - * Makefile.common: New file. - * cygwin: New directory. - * w32api: New directory. diff --git a/winsup/MAINTAINERS b/winsup/MAINTAINERS deleted file mode 100644 index 873e96c70..000000000 --- a/winsup/MAINTAINERS +++ /dev/null @@ -1,7 +0,0 @@ -Please send email to the cygwin mailing list at cygwin@cygwin.com if you -have questions or comments about the code in this directory. - -All of the maintainers would prefer that you use the cygwin mailing list for -all communication. - -Thank you. diff --git a/winsup/Makefile.common b/winsup/Makefile.common deleted file mode 100644 index d80d9748f..000000000 --- a/winsup/Makefile.common +++ /dev/null @@ -1,180 +0,0 @@ -# Makefile.common - common definitions for the winsup directory -# -# Copyright 2000, 2001 Red Hat, Inc. -# -# This file is part of Cygwin. -# -# This software is a copyrighted work licensed under the terms of the -# Cygwin license. Please consult the file "CYGWIN_LICENSE" for -# details. - -# This makefile requires GNU make. - -CFLAGS_COMMON:=-Wall -Wwrite-strings -fno-common -pipe -Winline -fbuiltin# -finline-functions -MALLOC_DEBUG:=#-DMALLOC_DEBUG -I/cygnus/src/uberbaum/winsup/cygwin/dlmalloc -MALLOC_OBJ:=#/cygnus/src/uberbaum/winsup/cygwin/dlmalloc/malloc.o - -override srcdir:=${shell cd $(srcdir); pwd} -ifneq (,${filter-out /%,$(srcdir)}) - updir:=$(srcdir)/.. - updir1:=$(updir)/.. -else - updir:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(srcdir)):::}} -ifneq (,${findstring /,$(updir)}) - updir1:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(updir)):::}} -else - updir1:=$(updir)/.. -endif -endif - -pwd:=${shell pwd} -ifneq "${filter winsup%,${notdir $(pwd)}}" "" -a:=${shell ${filter winsup%,${notdir $(pwd)}} >/dev/tty} - here:=${pwd}/cygwin -else -a:=${shell ${filter winsup%,${notdir $(pwd)}} >/dev/tty} - here:=${dir $(pwd)}cygwin -endif -bupdir:=${shell cd $(here)/..; pwd} -ifneq (,${filter-out /%,$(bupdir)}) - bupdir1:=../.. - bupdir2:=../../.. -else -ifneq (,${findstring /,$(bupdir)}) - bupdir1:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(bupdir)):::}} -else - bupdir1:=$(bupdir)/.. -endif -ifneq (,${findstring /,$(bupdir1)}) - bupdir2:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(bupdir1)):::}} -else - bupdir2:=$(bupdir1)/.. -endif -endif - -zlib_source:=$(updir)/zlib -zlib_build:=$(bupdir)/zlib -bz2lib_source:=$(updir)/bz2lib -bz2lib_build:=$(bupdir)/bz2lib -w32api_source:=$(updir)/w32api -w32api_build:=$(bupdir)/w32api -ifeq (,${findstring $(w32api_source),$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)}) -w32api_include:=-I$(w32api_source)/include -endif -w32api_lib:=$(w32api_build)/lib -newlib_source:=$(updir1)/newlib -newlib_build:=$(bupdir1)/newlib -cygwin_build:=$(bupdir)/cygwin -cygwin_source:=$(updir)/cygwin -mingw_build:=$(bupdir)/mingw -mingw_source:=$(updir)/mingw -utils_build:=$(bupdir)/utils -utils_source:=$(updir)/utils -ifeq (,${findstring $(newlib_source)/libc/include,$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)}) -newlib_include:=-I$(newlib_source)/libc/include -endif -ifeq (,${findstring $(newlib_source)/libc/sys/cygwin,$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)}) -newlib_sys_include:=-I$(newlib_source)/libc/sys/cygwin -endif -ifeq (,${findstring $(newlib_source)/libc/sys/cygwin/include,$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)}) -newlib_sys_include_include:=-I$(newlib_source)/libc/sys/cygwin/include -endif -ifeq (,${findstring $(cygwin_source)/include,$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)}) -cygwin_include:=-I$(cygwin_source)/include -endif - -INCLUDES:=-I. $(cygwin_include) -I$(cygwin_source) $(newlib_sys_include) $(newlib_include) $(newlib_sys_include_include) $(w32api_include) -ifdef CONFIG_DIR -INCLUDES+=-I$(CONFIG_DIR) -endif - -MINGW_INCLUDES:=-I$(updir)/mingw/include $(INCLUDES) - -GCC_DEFAULT_OPTIONS:=$(CFLAGS_COMMON) $(CFLAGS_CONFIG) $(INCLUDES) - -# Link in libc and libm from newlib - -LIBC:=$(newlib_build)/libc/libc.a -LIBM:=$(newlib_build)/libm/libm.a -CRT0:=$(newlib_build)/libc/crt0.o - -ALL_CFLAGS:=$(DEFS) $(MALLOC_DEBUG) $(CFLAGS) $(GCC_DEFAULT_OPTIONS) -ALL_CXXFLAGS:=$(DEFS) $(MALLOC_DEBUG) $(CXXFLAGS) $(GCC_DEFAULT_OPTIONS) - -ifndef PREPROCESS -c=-c -o=.o -else -c=-E -o=.E -endif - -libgcc:=${subst \,/,${shell $(CC_FOR_TARGET) -print-libgcc-file-name}} -gcc_libdir:=${word 1,${dir $(libgcc)}} -ifeq (,${findstring $(gcc_libdir),$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)}) -GCC_INCLUDE:=-I$(gcc_libdir)/include -endif - -COMPILE_CXX:=$(CXX) $c -nostdinc++ -nostdinc $(ALL_CXXFLAGS) $(GCC_INCLUDE) \ - -fno-rtti -fno-exceptions -COMPILE_CC:=$(CC) $c -nostdinc $(ALL_CFLAGS) $(GCC_INCLUDE) - -vpath %.a $(cygwin_build):$(w32api_lib):$(newlib_build)/libc:$(newlib_build)/libm - -MAKEOVERRIDES_WORKAROUND=${wordlist 2,1,a b c} - -ifneq ($(MAKEOVERRIDES_WORKAROUND),) - override MAKE:=$(MAKE) $(MAKEOVERRIDES) - MAKEOVERRIDES:= - export MAKEOVERRIDES -endif - -ifdef RPATH_ENVVAR -VERBOSE=1 -endif - -ifneq "${findstring -B,$(COMPILE_CXX) $(COMPILE_CC)}" "" -VERBOSE=1 -endif - -.PRECIOUS: %.o - -%.o: %.cc -ifdef VERBOSE - $(COMPILE_CXX) -o $(@D)/$(*F)$o $< -else - @echo $(CXX) $c $(CXXFLAGS) ... $(*F).cc - @$(COMPILE_CXX) -o $(@D)/$(*F)$o $< -endif - -%.o: %.c -ifdef VERBOSE - $(COMPILE_CC) -o $(@D)/$(*F)$o $< -else - @echo $(CC) $c $(CFLAGS) ... $(*F).c - @$(COMPILE_CC) -o $(@D)/$(*F)$o $< -endif - -$(bupdir1)/libiberty/%.o: $(updir1)/libiberty/%.c - @$(MAKE) -C $(@D) $(@F) - -$(w32api_lib)/%.a: $(w32api_lib)/Makefile - @$(MAKE) --no-print-dir -C $(@D) $(@F) - -$(bz2lib)/%.a: $(bz2lib)/Makefile - @$(MAKE) --no-print-dir -C $(@D) $(@F) - -$(zlib)/%.a: $(zlib)/Makefile - @$(MAKE) --no-print-dir -C $(@D) $(@F) - -all: - -# For auto-rebuilding the Makefile - -.PRECIOUS: Makefile - -Makefile: Makefile.in $(srcdir)/configure.in config.status - $(SHELL) config.status - -config.status: configure - $(SHELL) config.status --recheck diff --git a/winsup/Makefile.in b/winsup/Makefile.in deleted file mode 100644 index 4a6d23e25..000000000 --- a/winsup/Makefile.in +++ /dev/null @@ -1,119 +0,0 @@ -# Makefile.in for windows stuff -# Copyright 1995, 1996, 1997, 1998, 1999, 2000 Red Hat, Inc. -# -# This file is part of Cygwin. -# -# This software is a copyrighted work licensed under the terms of the -# Cygwin license. Please consult the file "CYGWIN_LICENSE" for -# details. - -# This makefile requires GNU make. - -SHELL:=@SHELL@ -VPATH:=@srcdir@ -srcdir:=@srcdir@ -objdir:=. - -target_alias:=@target_alias@ -build_alias:=@build_alias@ -host_alias:=@host_alias@ -prefix:=@prefix@ - -program_transform_name:=@program_transform_name@ -exec_prefix:=@exec_prefix@ -bindir:=@bindir@ -libdir:=@libdir@ -ifeq ($(target_alias),$(host_alias)) -ifeq ($(build_alias),$(host_alias)) -tooldir:=$(exec_prefix) -else -tooldir:=$(exec_prefix)/$(target_alias) -endif -else -tooldir:=$(exec_prefix)/$(target_alias) -endif -datadir:=@datadir@ -infodir:=@infodir@ -includedir:=@includedir@ - -SUBDIRS=@SUBDIRS@ -INSTALL_SUBDIRS=${patsubst %,install_%,$(SUBDIRS)} -CLEAN_SUBDIRS=${patsubst %,clean_%,$(SUBDIRS)} -ZLIB=${findstring zlib,$(SUBDIRS)} - -.PHONY: all install clean all-info info install-info check \ - $(SUBDIRS) $(INSTALL_SUBDIRS) $(CLEAN_SUBDIRS) - -.SUFFIXES: - -MAKEOVERRIDES_WORKAROUND=${wordlist 2,1,a b c} - -ifneq ($(MAKEOVERRIDES_WORKAROUND),) - override MAKE:=$(MAKE) $(MAKEOVERRIDES) - MAKEOVERRIDES:= - export MAKEOVERRIDES -endif - -all: Makefile $(SUBDIRS) - -install: Makefile $(INSTALL_SUBDIRS) - -clean: $(CLEAN_SUBDIRS) - -all-info: - -install-info: - -info: - -$(SUBDIRS): - @if cd $@ 2>/dev/null; then \ - $(MAKE) all || exit 1; \ - fi || exit 0 - -$(INSTALL_SUBDIRS): - @if cd ${patsubst install_%,%,$@} 2>/dev/null; then \ - $(MAKE) install || exit 1; \ - fi || exit 0 - -$(CLEAN_SUBDIRS): - @if cd ${patsubst clean_%,%,$@} 2>/dev/null; then \ - $(MAKE) clean || exit 1; \ - fi || exit 0 - -.PRECIOUS: Makefile - -Makefile: Makefile.in $(srcdir)/configure.in config.status - $(SHELL) config.status - -config.status: configure - $(SHELL) config.status --recheck - -check: cygwin - @if [ -f testsuite/config.status ]; then \ - cd testsuite; \ - else \ - (mkdir testsuite 2>/dev/null || exit 0); \ - cd testsuite; \ - sed -n -e '1,/^done/{' -e 's%/cygwin%/testsuite%g; ' -e 'p; }' ../cygwin/config.status > config.status; \ - chmod a+x config.status; \ - sh ./config.status --recheck; \ - sh ./config.status; \ - fi; \ - $(MAKE) check - -utils: cygwin mingw - -mingw: w32api - -cygwin: w32api - -cinstall: mingw bz2lib $(ZLIB) - -install_utils: cygwin mingw - -install_mingw: w32api - -install_cygwin: w32api - -install_cinstall: mingw bz2lib $(ZLIB) diff --git a/winsup/bz2lib/CHANGES b/winsup/bz2lib/CHANGES deleted file mode 100644 index ecaf4170e..000000000 --- a/winsup/bz2lib/CHANGES +++ /dev/null @@ -1,167 +0,0 @@ - - -0.9.0 -~~~~~ -First version. - - -0.9.0a -~~~~~~ -Removed 'ranlib' from Makefile, since most modern Unix-es -don't need it, or even know about it. - - -0.9.0b -~~~~~~ -Fixed a problem with error reporting in bzip2.c. This does not effect -the library in any way. Problem is: versions 0.9.0 and 0.9.0a (of the -program proper) compress and decompress correctly, but give misleading -error messages (internal panics) when an I/O error occurs, instead of -reporting the problem correctly. This shouldn't give any data loss -(as far as I can see), but is confusing. - -Made the inline declarations disappear for non-GCC compilers. - - -0.9.0c -~~~~~~ -Fixed some problems in the library pertaining to some boundary cases. -This makes the library behave more correctly in those situations. The -fixes apply only to features (calls and parameters) not used by -bzip2.c, so the non-fixedness of them in previous versions has no -effect on reliability of bzip2.c. - -In bzlib.c: - * made zero-length BZ_FLUSH work correctly in bzCompress(). - * fixed bzWrite/bzRead to ignore zero-length requests. - * fixed bzread to correctly handle read requests after EOF. - * wrong parameter order in call to bzDecompressInit in - bzBuffToBuffDecompress. Fixed. - -In compress.c: - * changed setting of nGroups in sendMTFValues() so as to - do a bit better on small files. This _does_ effect - bzip2.c. - - -0.9.5a -~~~~~~ -Major change: add a fallback sorting algorithm (blocksort.c) -to give reasonable behaviour even for very repetitive inputs. -Nuked --repetitive-best and --repetitive-fast since they are -no longer useful. - -Minor changes: mostly a whole bunch of small changes/ -bugfixes in the driver (bzip2.c). Changes pertaining to the -user interface are: - - allow decompression of symlink'd files to stdout - decompress/test files even without .bz2 extension - give more accurate error messages for I/O errors - when compressing/decompressing to stdout, don't catch control-C - read flags from BZIP2 and BZIP environment variables - decline to break hard links to a file unless forced with -f - allow -c flag even with no filenames - preserve file ownerships as far as possible - make -s -1 give the expected block size (100k) - add a flag -q --quiet to suppress nonessential warnings - stop decoding flags after --, so files beginning in - can be handled - resolved inconsistent naming: bzcat or bz2cat ? - bzip2 --help now returns 0 - -Programming-level changes are: - - fixed syntax error in GET_LL4 for Borland C++ 5.02 - let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC} - fix overshoot of mode-string end in bzopen_or_bzdopen - wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... } - close file handles under all error conditions - added minor mods so it compiles with DJGPP out of the box - fixed Makefile so it doesn't give problems with BSD make - fix uninitialised memory reads in dlltest.c - -0.9.5b -~~~~~~ -Open stdin/stdout in binary mode for DJGPP. - -0.9.5c -~~~~~~ -Changed BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1. The + 1 -version could cause the sorted order to be wrong in some extremely -obscure cases. Also changed setting of quadrant in blocksort.c. - -0.9.5d -~~~~~~ -The only functional change is to make bzlibVersion() in the library -return the correct string. This has no effect whatsoever on the -functioning of the bzip2 program or library. Added a couple of casts -so the library compiles without warnings at level 3 in MS Visual -Studio 6.0. Included a Y2K statement in the file Y2K_INFO. All other -changes are minor documentation changes. - -1.0 -~~~ -Several minor bugfixes and enhancements: - -* Large file support. The library uses 64-bit counters to - count the volume of data passing through it. bzip2.c - is now compiled with -D_FILE_OFFSET_BITS=64 to get large - file support from the C library. -v correctly prints out - file sizes greater than 4 gigabytes. All these changes have - been made without assuming a 64-bit platform or a C compiler - which supports 64-bit ints, so, except for the C library - aspect, they are fully portable. - -* Decompression robustness. The library/program should be - robust to any corruption of compressed data, detecting and - handling _all_ corruption, instead of merely relying on - the CRCs. What this means is that the program should - never crash, given corrupted data, and the library should - always return BZ_DATA_ERROR. - -* Fixed an obscure race-condition bug only ever observed on - Solaris, in which, if you were very unlucky and issued - control-C at exactly the wrong time, both input and output - files would be deleted. - -* Don't run out of file handles on test/decompression when - large numbers of files have invalid magic numbers. - -* Avoid library namespace pollution. Prefix all exported - symbols with BZ2_. - -* Minor sorting enhancements from my DCC2000 paper. - -* Advance the version number to 1.0, so as to counteract the - (false-in-this-case) impression some people have that programs - with version numbers less than 1.0 are in someway, experimental, - pre-release versions. - -* Create an initial Makefile-libbz2_so to build a shared library. - Yes, I know I should really use libtool et al ... - -* Make the program exit with 2 instead of 0 when decompression - fails due to a bad magic number (ie, an invalid bzip2 header). - Also exit with 1 (as the manual claims :-) whenever a diagnostic - message would have been printed AND the corresponding operation - is aborted, for example - bzip2: Output file xx already exists. - When a diagnostic message is printed but the operation is not - aborted, for example - bzip2: Can't guess original name for wurble -- using wurble.out - then the exit value 0 is returned, unless some other problem is - also detected. - - I think it corresponds more closely to what the manual claims now. - - -1.0.1 -~~~~~ -* Modified dlltest.c so it uses the new BZ2_ naming scheme. -* Modified makefile-msc to fix minor build probs on Win2k. -* Updated README.COMPILATION.PROBLEMS. - -There are no functionality changes or bug fixes relative to version -1.0.0. This is just a documentation update + a fix for minor Win32 -build problems. For almost everyone, upgrading from 1.0.0 to 1.0.1 is -utterly pointless. Don't bother. diff --git a/winsup/bz2lib/ChangeLog b/winsup/bz2lib/ChangeLog deleted file mode 100644 index c703a6e76..000000000 --- a/winsup/bz2lib/ChangeLog +++ /dev/null @@ -1,11 +0,0 @@ -Wed Apr 18 23:54:53 2001 Christopher Faylor - - * Makefile.in: Add -U_WIN32 to CFLAGS compile line to avoid - inappropriate Windows-isms. - -Wed Apr 18 15:58:28 2001 Christopher Faylor - - Initial checkin from net sources. - Makefile.in: New file. - configure.in: New file. - configure: New file. diff --git a/winsup/bz2lib/LICENSE b/winsup/bz2lib/LICENSE deleted file mode 100644 index 88fa6d88a..000000000 --- a/winsup/bz2lib/LICENSE +++ /dev/null @@ -1,39 +0,0 @@ - -This program, "bzip2" and associated library "libbzip2", are -copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - -3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - -4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - -Julian Seward, Cambridge, UK. -jseward@acm.org -bzip2/libbzip2 version 1.0 of 21 March 2000 - diff --git a/winsup/bz2lib/Makefile b/winsup/bz2lib/Makefile deleted file mode 100644 index ab17f4979..000000000 --- a/winsup/bz2lib/Makefile +++ /dev/null @@ -1,141 +0,0 @@ - -SHELL=/bin/sh -CC=gcc -BIGFILES=-D_FILE_OFFSET_BITS=64 -CFLAGS=-Wall -Winline -O2 -fomit-frame-pointer -fno-strength-reduce $(BIGFILES) - -OBJS= blocksort.o \ - huffman.o \ - crctable.o \ - randtable.o \ - compress.o \ - decompress.o \ - bzlib.o - -all: libbz2.a bzip2 bzip2recover test - -bzip2: libbz2.a bzip2.o - $(CC) $(CFLAGS) -o bzip2 bzip2.o -L. -lbz2 - -bzip2recover: bzip2recover.o - $(CC) $(CFLAGS) -o bzip2recover bzip2recover.o - -libbz2.a: $(OBJS) - rm -f libbz2.a - ar cq libbz2.a $(OBJS) - @if ( test -f /usr/bin/ranlib -o -f /bin/ranlib -o \ - -f /usr/ccs/bin/ranlib ) ; then \ - echo ranlib libbz2.a ; \ - ranlib libbz2.a ; \ - fi - -test: bzip2 - @cat words1 - ./bzip2 -1 < sample1.ref > sample1.rb2 - ./bzip2 -2 < sample2.ref > sample2.rb2 - ./bzip2 -3 < sample3.ref > sample3.rb2 - ./bzip2 -d < sample1.bz2 > sample1.tst - ./bzip2 -d < sample2.bz2 > sample2.tst - ./bzip2 -ds < sample3.bz2 > sample3.tst - cmp sample1.bz2 sample1.rb2 - cmp sample2.bz2 sample2.rb2 - cmp sample3.bz2 sample3.rb2 - cmp sample1.tst sample1.ref - cmp sample2.tst sample2.ref - cmp sample3.tst sample3.ref - @cat words3 - -PREFIX=/usr - -install: bzip2 bzip2recover - if ( test ! -d $(PREFIX)/bin ) ; then mkdir $(PREFIX)/bin ; fi - if ( test ! -d $(PREFIX)/lib ) ; then mkdir $(PREFIX)/lib ; fi - if ( test ! -d $(PREFIX)/man ) ; then mkdir $(PREFIX)/man ; fi - if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir $(PREFIX)/man/man1 ; fi - if ( test ! -d $(PREFIX)/include ) ; then mkdir $(PREFIX)/include ; fi - cp -f bzip2 $(PREFIX)/bin/bzip2 - cp -f bzip2 $(PREFIX)/bin/bunzip2 - cp -f bzip2 $(PREFIX)/bin/bzcat - cp -f bzip2recover $(PREFIX)/bin/bzip2recover - chmod a+x $(PREFIX)/bin/bzip2 - chmod a+x $(PREFIX)/bin/bunzip2 - chmod a+x $(PREFIX)/bin/bzcat - chmod a+x $(PREFIX)/bin/bzip2recover - cp -f bzip2.1 $(PREFIX)/man/man1 - chmod a+r $(PREFIX)/man/man1/bzip2.1 - cp -f bzlib.h $(PREFIX)/include - chmod a+r $(PREFIX)/include/bzlib.h - cp -f libbz2.a $(PREFIX)/lib - chmod a+r $(PREFIX)/lib/libbz2.a - -clean: - rm -f *.o libbz2.a bzip2 bzip2recover \ - sample1.rb2 sample2.rb2 sample3.rb2 \ - sample1.tst sample2.tst sample3.tst - -blocksort.o: blocksort.c - @cat words0 - $(CC) $(CFLAGS) -c blocksort.c -huffman.o: huffman.c - $(CC) $(CFLAGS) -c huffman.c -crctable.o: crctable.c - $(CC) $(CFLAGS) -c crctable.c -randtable.o: randtable.c - $(CC) $(CFLAGS) -c randtable.c -compress.o: compress.c - $(CC) $(CFLAGS) -c compress.c -decompress.o: decompress.c - $(CC) $(CFLAGS) -c decompress.c -bzlib.o: bzlib.c - $(CC) $(CFLAGS) -c bzlib.c -bzip2.o: bzip2.c - $(CC) $(CFLAGS) -c bzip2.c -bzip2recover.o: bzip2recover.c - $(CC) $(CFLAGS) -c bzip2recover.c - -DISTNAME=bzip2-1.0.1 -tarfile: - rm -f $(DISTNAME) - ln -sf . $(DISTNAME) - tar cvf $(DISTNAME).tar \ - $(DISTNAME)/blocksort.c \ - $(DISTNAME)/huffman.c \ - $(DISTNAME)/crctable.c \ - $(DISTNAME)/randtable.c \ - $(DISTNAME)/compress.c \ - $(DISTNAME)/decompress.c \ - $(DISTNAME)/bzlib.c \ - $(DISTNAME)/bzip2.c \ - $(DISTNAME)/bzip2recover.c \ - $(DISTNAME)/bzlib.h \ - $(DISTNAME)/bzlib_private.h \ - $(DISTNAME)/Makefile \ - $(DISTNAME)/manual.texi \ - $(DISTNAME)/manual.ps \ - $(DISTNAME)/LICENSE \ - $(DISTNAME)/bzip2.1 \ - $(DISTNAME)/bzip2.1.preformatted \ - $(DISTNAME)/bzip2.txt \ - $(DISTNAME)/words0 \ - $(DISTNAME)/words1 \ - $(DISTNAME)/words2 \ - $(DISTNAME)/words3 \ - $(DISTNAME)/sample1.ref \ - $(DISTNAME)/sample2.ref \ - $(DISTNAME)/sample3.ref \ - $(DISTNAME)/sample1.bz2 \ - $(DISTNAME)/sample2.bz2 \ - $(DISTNAME)/sample3.bz2 \ - $(DISTNAME)/dlltest.c \ - $(DISTNAME)/*.html \ - $(DISTNAME)/README \ - $(DISTNAME)/README.COMPILATION.PROBLEMS \ - $(DISTNAME)/CHANGES \ - $(DISTNAME)/libbz2.def \ - $(DISTNAME)/libbz2.dsp \ - $(DISTNAME)/dlltest.dsp \ - $(DISTNAME)/makefile.msc \ - $(DISTNAME)/Y2K_INFO \ - $(DISTNAME)/unzcrash.c \ - $(DISTNAME)/spewG.c \ - $(DISTNAME)/Makefile-libbz2_so diff --git a/winsup/bz2lib/Makefile-libbz2_so b/winsup/bz2lib/Makefile-libbz2_so deleted file mode 100644 index a347c50e9..000000000 --- a/winsup/bz2lib/Makefile-libbz2_so +++ /dev/null @@ -1,43 +0,0 @@ - -# This Makefile builds a shared version of the library, -# libbz2.so.1.0.1, with soname libbz2.so.1.0, -# at least on x86-Linux (RedHat 5.2), -# with gcc-2.7.2.3. Please see the README file for some -# important info about building the library like this. - -SHELL=/bin/sh -CC=gcc -BIGFILES=-D_FILE_OFFSET_BITS=64 -CFLAGS=-fpic -fPIC -Wall -Winline -O2 -fomit-frame-pointer -fno-strength-reduce $(BIGFILES) - -OBJS= blocksort.o \ - huffman.o \ - crctable.o \ - randtable.o \ - compress.o \ - decompress.o \ - bzlib.o - -all: $(OBJS) - $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.1 $(OBJS) - $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.1 - rm -f libbz2.so.1.0 - ln -s libbz2.so.1.0.1 libbz2.so.1.0 - -clean: - rm -f $(OBJS) bzip2.o libbz2.so.1.0.1 libbz2.so.1.0 bzip2-shared - -blocksort.o: blocksort.c - $(CC) $(CFLAGS) -c blocksort.c -huffman.o: huffman.c - $(CC) $(CFLAGS) -c huffman.c -crctable.o: crctable.c - $(CC) $(CFLAGS) -c crctable.c -randtable.o: randtable.c - $(CC) $(CFLAGS) -c randtable.c -compress.o: compress.c - $(CC) $(CFLAGS) -c compress.c -decompress.o: decompress.c - $(CC) $(CFLAGS) -c decompress.c -bzlib.o: bzlib.c - $(CC) $(CFLAGS) -c bzlib.c diff --git a/winsup/bz2lib/Makefile.in b/winsup/bz2lib/Makefile.in deleted file mode 100644 index 622445d23..000000000 --- a/winsup/bz2lib/Makefile.in +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (c) 2000, Red Hat, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# A copy of the GNU General Public License can be found at -# http://www.gnu.org/ -# -# Written by Christopher Faylor -# -# Makefile for Cygwin installer - -SHELL :=@SHELL@ - -srcdir:=@srcdir@ -VPATH:=@srcdir@ -prefix:=@prefix@ -exec_prefix:=@exec_prefix@ - -bindir:=@bindir@ -etcdir:=$(exec_prefix)/etc - -program_transform_name :=@program_transform_name@ - -INSTALL:=@INSTALL@ -INSTALL_PROGRAM:=@INSTALL_PROGRAM@ -INSTALL_DATA:=@INSTALL_DATA@ - -EXEEXT:=@EXEEXT@ -EXEEXT_FOR_BUILD :=@EXEEXT_FOR_BUILD@ - -CC:=@CC@ -CC_FOR_TARGET:=$(CC) -CXX:=@CXX@ - -CFLAGS:=@CFLAGS@ -nostdinc -CXXFLAGS:=@CXXFLAGS@ -fno-exceptions -fno-rtti -CXX:=@CXX@ - -WINDRES:=@WINDRES@ -OBJCOPY:=@OBJCOPY@ -AR:=@AR@ -RANLIB:=@RANLIB@ - -include $(srcdir)/../Makefile.common - -MINGW_INCLUDES:=-I. -I$(srcdir) -I$(mingw_source)/include -I$(w32api_include) -I$(updir)/bz2lib - -MINGW_CXXFLAGS:=-MMD $(CXXFLAGS) -mno-cygwin $(MINGW_INCLUDES) -mwindows -U_WIN32 -MINGW_CFLAGS:=-MMD $(CFLAGS) -mno-cygwin $(MINGW_INCLUDES) -mwindows -U_WIN32 - -ZLIB:=zlib/libzcygw.a -BZ2LIB:=$(bupdir)/bz2lib/libbz2.a -libmingw32.a:=$(mingw_build)/libmingw32.a -libuser32:=$(w32api_lib)/libuser32.a -libkernel32:=$(w32api_lib)/libkernel32.a - -ALL_DEP_LDLIBS:=$(ZLIB) $(BZ2LIB) $(w32api_lib)/libole32.a $(w32api_lib)/libwsock32.a \ - $(w32api_lib)/libnetapi32.a $(w32api_lib)/libadvapi32.a \ - $(w32api_lib)/libuuid.a $(libkernel32) $(w32api_lib)/libuser32.a \ - $(libmingw32) - -ALL_LDLIBS:=${patsubst $(mingw_build)/lib%.a,-l%,\ - ${patsubst $(w32api_lib)/lib%.a,-l%,\ - ${filter-out $(libmingw32),\ - ${filter-out $(libuser32),\ - ${filter-out $(libkernel32), $(ALL_DEP_LDLIBS)}}}}} - -ALL_LDFLAGS:=${filter-out -I%, \ - ${filter-out -W%, \ - -B$(w32api_lib)/ -B${mingw_build}/ $(MINGW_CFLAGS) $(LDFLAGS)}} - -LIBS:=libbz2.a - -OBJS:=blocksort.o bzlib.o compress.o decompress.o huffman.o crctable.o randtable.o - -.SUFFIXES: -.NOEXPORT: - -.PHONY: all install clean realclean - -all: Makefile $(LIBS) - -$(LIBS): $(OBJS) - $(AR) cru $@ $? - $(RANLIB) $@ - -clean: - rm -f *.o *.rc *.a - -realclean: clean - rm -f Makefile config.cache - -install: all -: Nothing to install - -%.o: %.c -ifdef VERBOSE - $(CC) $(MINGW_CFLAGS) -c -o $@ $< -else - @echo $(CC) -c $(CFLAGS) ... $(= sys_nerr) - return "Unknown error"; - else - return sys_errlist[errnum]; - } - - Or you could comment out the relevant calls to strerror; they're - not mission-critical. Or you could upgrade to Solaris. Ha ha ha! - (what?? you think I've got Bad Attitude?) - - -* Making a shared library on Solaris. (Not really a compilation - problem, but many people ask ...) - - Firstly, if you have Solaris 8, either you have libbz2.so already - on your system, or you can install it from the Solaris CD. - - Secondly, be aware that there are potential naming conflicts - between the .so file supplied with Solaris 8, and the .so file - which Makefile-libbz2_so will make. Makefile-libbz2_so creates - a .so which has the names which I intend to be "official" as - of version 1.0.0 and onwards. Unfortunately, the .so in - Solaris 8 appeared before I decided on the final names, so - the two libraries are incompatible. We have since communicated - and I hope that the problems will have been solved in the next - version of Solaris, whenever that might appear. - - All that said: you might be able to get somewhere - by finding the line in Makefile-libbz2_so which says - - $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.1 $(OBJS) - - and replacing with - - ($CC) -G -shared -o libbz2.so.1.0.1 -h libbz2.so.1.0 $(OBJS) - - If gcc objects to the combination -fpic -fPIC, get rid of - the second one, leaving just "-fpic". - - -That's the end of the currently known compilation problems. diff --git a/winsup/bz2lib/Y2K_INFO b/winsup/bz2lib/Y2K_INFO deleted file mode 100644 index 55fd56a2e..000000000 --- a/winsup/bz2lib/Y2K_INFO +++ /dev/null @@ -1,34 +0,0 @@ - -Y2K status of bzip2 and libbzip2, versions 0.1, 0.9.0 and 0.9.5 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Informally speaking: - bzip2 is a compression program built on top of libbzip2, - a library which does the real work of compression and - decompression. As far as I am aware, libbzip2 does not have - any date-related code at all. - - bzip2 itself copies dates from source to destination files - when compressing or decompressing, using the 'stat' and 'utime' - UNIX system calls. It doesn't examine, manipulate or store the - dates in any way. So as far as I can see, there shouldn't be any - problem with bzip2 providing 'stat' and 'utime' work correctly - on your system. - - On non-unix platforms (those for which BZ_UNIX in bzip2.c is - not set to 1), bzip2 doesn't even do the date copying. - - Overall, informally speaking, I don't think bzip2 or libbzip2 - have a Y2K problem. - -Formally speaking: - I am not prepared to offer you any assurance whatsoever - regarding Y2K issues in my software. You alone assume the - entire risk of using the software. The disclaimer of liability - in the LICENSE file in the bzip2 source distribution continues - to apply on this issue as with every other issue pertaining - to the software. - -Julian Seward -Cambridge, UK -25 August 1999 diff --git a/winsup/bz2lib/aclocal.m4 b/winsup/bz2lib/aclocal.m4 deleted file mode 100644 index f5379a5be..000000000 --- a/winsup/bz2lib/aclocal.m4 +++ /dev/null @@ -1,137 +0,0 @@ -dnl aclocal.m4 generated automatically by aclocal 1.4 - -dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without -dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. - -# Do all the work for Automake. This macro actually does too much -- -# some checks are only needed if your package does certain things. -# But this isn't really a big deal. - -# serial 1 - -dnl Usage: -dnl AM_INIT_AUTOMAKE(package,version, [no-define]) - -AC_DEFUN(AM_INIT_AUTOMAKE, -[AC_REQUIRE([AC_PROG_INSTALL]) -PACKAGE=[$1] -AC_SUBST(PACKAGE) -VERSION=[$2] -AC_SUBST(VERSION) -dnl test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi -ifelse([$3],, -AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) -AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) -AC_REQUIRE([AM_SANITY_CHECK]) -AC_REQUIRE([AC_ARG_PROGRAM]) -dnl FIXME This is truly gross. -missing_dir=`cd $ac_aux_dir && pwd` -AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) -AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) -AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) -AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) -AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) -AC_REQUIRE([AC_PROG_MAKE_SET])]) - -# -# Check to make sure that the build environment is sane. -# - -AC_DEFUN(AM_SANITY_CHECK, -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "[$]*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "[$]*" != "X $srcdir/configure conftestfile" \ - && test "[$]*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "[$]2" = conftestfile - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -rm -f conftest* -AC_MSG_RESULT(yes)]) - -dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) -dnl The program must properly implement --version. -AC_DEFUN(AM_MISSING_PROG, -[AC_MSG_CHECKING(for working $2) -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if ($2 --version) < /dev/null > /dev/null 2>&1; then - $1=$2 - AC_MSG_RESULT(found) -else - $1="$3/missing $2" - AC_MSG_RESULT(missing) -fi -AC_SUBST($1)]) - -# Add --enable-maintainer-mode option to configure. -# From Jim Meyering - -# serial 1 - -AC_DEFUN(AM_MAINTAINER_MODE, -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) - AC_MSG_RESULT($USE_MAINTAINER_MODE) - AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - -# Define a conditional. - -AC_DEFUN(AM_CONDITIONAL, -[AC_SUBST($1_TRUE) -AC_SUBST($1_FALSE) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi]) - diff --git a/winsup/bz2lib/blocksort.c b/winsup/bz2lib/blocksort.c deleted file mode 100644 index ec426725b..000000000 --- a/winsup/bz2lib/blocksort.c +++ /dev/null @@ -1,1134 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Block sorting machinery ---*/ -/*--- blocksort.c ---*/ -/*-------------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. - - To get some idea how the block sorting algorithms in this file - work, read my paper - On the Performance of BWT Sorting Algorithms - in Proceedings of the IEEE Data Compression Conference 2000, - Snowbird, Utah, USA, 27-30 March 2000. The main sort in this - file implements the algorithm called cache in the paper. ---*/ - - -#include "bzlib_private.h" - -/*---------------------------------------------*/ -/*--- Fallback O(N log(N)^2) sorting ---*/ -/*--- algorithm, for repetitive blocks ---*/ -/*---------------------------------------------*/ - -/*---------------------------------------------*/ -static -__inline__ -void fallbackSimpleSort ( UInt32* fmap, - UInt32* eclass, - Int32 lo, - Int32 hi ) -{ - Int32 i, j, tmp; - UInt32 ec_tmp; - - if (lo == hi) return; - - if (hi - lo > 3) { - for ( i = hi-4; i >= lo; i-- ) { - tmp = fmap[i]; - ec_tmp = eclass[tmp]; - for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 ) - fmap[j-4] = fmap[j]; - fmap[j-4] = tmp; - } - } - - for ( i = hi-1; i >= lo; i-- ) { - tmp = fmap[i]; - ec_tmp = eclass[tmp]; - for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ ) - fmap[j-1] = fmap[j]; - fmap[j-1] = tmp; - } -} - - -/*---------------------------------------------*/ -#define fswap(zz1, zz2) \ - { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; } - -#define fvswap(zzp1, zzp2, zzn) \ -{ \ - Int32 yyp1 = (zzp1); \ - Int32 yyp2 = (zzp2); \ - Int32 yyn = (zzn); \ - while (yyn > 0) { \ - fswap(fmap[yyp1], fmap[yyp2]); \ - yyp1++; yyp2++; yyn--; \ - } \ -} - - -#define fmin(a,b) ((a) < (b)) ? (a) : (b) - -#define fpush(lz,hz) { stackLo[sp] = lz; \ - stackHi[sp] = hz; \ - sp++; } - -#define fpop(lz,hz) { sp--; \ - lz = stackLo[sp]; \ - hz = stackHi[sp]; } - -#define FALLBACK_QSORT_SMALL_THRESH 10 -#define FALLBACK_QSORT_STACK_SIZE 100 - - -static -void fallbackQSort3 ( UInt32* fmap, - UInt32* eclass, - Int32 loSt, - Int32 hiSt ) -{ - Int32 unLo, unHi, ltLo, gtHi, n, m; - Int32 sp, lo, hi; - UInt32 med, r, r3; - Int32 stackLo[FALLBACK_QSORT_STACK_SIZE]; - Int32 stackHi[FALLBACK_QSORT_STACK_SIZE]; - - r = 0; - - sp = 0; - fpush ( loSt, hiSt ); - - while (sp > 0) { - - AssertH ( sp < FALLBACK_QSORT_STACK_SIZE, 1004 ); - - fpop ( lo, hi ); - if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) { - fallbackSimpleSort ( fmap, eclass, lo, hi ); - continue; - } - - /* Random partitioning. Median of 3 sometimes fails to - avoid bad cases. Median of 9 seems to help but - looks rather expensive. This too seems to work but - is cheaper. Guidance for the magic constants - 7621 and 32768 is taken from Sedgewick's algorithms - book, chapter 35. - */ - r = ((r * 7621) + 1) % 32768; - r3 = r % 3; - if (r3 == 0) med = eclass[fmap[lo]]; else - if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else - med = eclass[fmap[hi]]; - - unLo = ltLo = lo; - unHi = gtHi = hi; - - while (1) { - while (1) { - if (unLo > unHi) break; - n = (Int32)eclass[fmap[unLo]] - (Int32)med; - if (n == 0) { - fswap(fmap[unLo], fmap[ltLo]); - ltLo++; unLo++; - continue; - }; - if (n > 0) break; - unLo++; - } - while (1) { - if (unLo > unHi) break; - n = (Int32)eclass[fmap[unHi]] - (Int32)med; - if (n == 0) { - fswap(fmap[unHi], fmap[gtHi]); - gtHi--; unHi--; - continue; - }; - if (n < 0) break; - unHi--; - } - if (unLo > unHi) break; - fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--; - } - - AssertD ( unHi == unLo-1, "fallbackQSort3(2)" ); - - if (gtHi < ltLo) continue; - - n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n); - m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m); - - n = lo + unLo - ltLo - 1; - m = hi - (gtHi - unHi) + 1; - - if (n - lo > hi - m) { - fpush ( lo, n ); - fpush ( m, hi ); - } else { - fpush ( m, hi ); - fpush ( lo, n ); - } - } -} - -#undef fmin -#undef fpush -#undef fpop -#undef fswap -#undef fvswap -#undef FALLBACK_QSORT_SMALL_THRESH -#undef FALLBACK_QSORT_STACK_SIZE - - -/*---------------------------------------------*/ -/* Pre: - nblock > 0 - eclass exists for [0 .. nblock-1] - ((UChar*)eclass) [0 .. nblock-1] holds block - ptr exists for [0 .. nblock-1] - - Post: - ((UChar*)eclass) [0 .. nblock-1] holds block - All other areas of eclass destroyed - fmap [0 .. nblock-1] holds sorted order - bhtab [ 0 .. 2+(nblock/32) ] destroyed -*/ - -#define SET_BH(zz) bhtab[(zz) >> 5] |= (1 << ((zz) & 31)) -#define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31)) -#define ISSET_BH(zz) (bhtab[(zz) >> 5] & (1 << ((zz) & 31))) -#define WORD_BH(zz) bhtab[(zz) >> 5] -#define UNALIGNED_BH(zz) ((zz) & 0x01f) - -static -void fallbackSort ( UInt32* fmap, - UInt32* eclass, - UInt32* bhtab, - Int32 nblock, - Int32 verb ) -{ - Int32 ftab[257]; - Int32 ftabCopy[256]; - Int32 H, i, j, k, l, r, cc, cc1; - Int32 nNotDone; - Int32 nBhtab; - UChar* eclass8 = (UChar*)eclass; - - /*-- - Initial 1-char radix sort to generate - initial fmap and initial BH bits. - --*/ - if (verb >= 4) - VPrintf0 ( " bucket sorting ...\n" ); - for (i = 0; i < 257; i++) ftab[i] = 0; - for (i = 0; i < nblock; i++) ftab[eclass8[i]]++; - for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i]; - for (i = 1; i < 257; i++) ftab[i] += ftab[i-1]; - - for (i = 0; i < nblock; i++) { - j = eclass8[i]; - k = ftab[j] - 1; - ftab[j] = k; - fmap[k] = i; - } - - nBhtab = 2 + (nblock / 32); - for (i = 0; i < nBhtab; i++) bhtab[i] = 0; - for (i = 0; i < 256; i++) SET_BH(ftab[i]); - - /*-- - Inductively refine the buckets. Kind-of an - "exponential radix sort" (!), inspired by the - Manber-Myers suffix array construction algorithm. - --*/ - - /*-- set sentinel bits for block-end detection --*/ - for (i = 0; i < 32; i++) { - SET_BH(nblock + 2*i); - CLEAR_BH(nblock + 2*i + 1); - } - - /*-- the log(N) loop --*/ - H = 1; - while (1) { - - if (verb >= 4) - VPrintf1 ( " depth %6d has ", H ); - - j = 0; - for (i = 0; i < nblock; i++) { - if (ISSET_BH(i)) j = i; - k = fmap[i] - H; if (k < 0) k += nblock; - eclass[k] = j; - } - - nNotDone = 0; - r = -1; - while (1) { - - /*-- find the next non-singleton bucket --*/ - k = r + 1; - while (ISSET_BH(k) && UNALIGNED_BH(k)) k++; - if (ISSET_BH(k)) { - while (WORD_BH(k) == 0xffffffff) k += 32; - while (ISSET_BH(k)) k++; - } - l = k - 1; - if (l >= nblock) break; - while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++; - if (!ISSET_BH(k)) { - while (WORD_BH(k) == 0x00000000) k += 32; - while (!ISSET_BH(k)) k++; - } - r = k - 1; - if (r >= nblock) break; - - /*-- now [l, r] bracket current bucket --*/ - if (r > l) { - nNotDone += (r - l + 1); - fallbackQSort3 ( fmap, eclass, l, r ); - - /*-- scan bucket and generate header bits-- */ - cc = -1; - for (i = l; i <= r; i++) { - cc1 = eclass[fmap[i]]; - if (cc != cc1) { SET_BH(i); cc = cc1; }; - } - } - } - - if (verb >= 4) - VPrintf1 ( "%6d unresolved strings\n", nNotDone ); - - H *= 2; - if (H > nblock || nNotDone == 0) break; - } - - /*-- - Reconstruct the original block in - eclass8 [0 .. nblock-1], since the - previous phase destroyed it. - --*/ - if (verb >= 4) - VPrintf0 ( " reconstructing block ...\n" ); - j = 0; - for (i = 0; i < nblock; i++) { - while (ftabCopy[j] == 0) j++; - ftabCopy[j]--; - eclass8[fmap[i]] = (UChar)j; - } - AssertH ( j < 256, 1005 ); -} - -#undef SET_BH -#undef CLEAR_BH -#undef ISSET_BH -#undef WORD_BH -#undef UNALIGNED_BH - - -/*---------------------------------------------*/ -/*--- The main, O(N^2 log(N)) sorting ---*/ -/*--- algorithm. Faster for "normal" ---*/ -/*--- non-repetitive blocks. ---*/ -/*---------------------------------------------*/ - -/*---------------------------------------------*/ -static -__inline__ -Bool mainGtU ( UInt32 i1, - UInt32 i2, - UChar* block, - UInt16* quadrant, - UInt32 nblock, - Int32* budget ) -{ - Int32 k; - UChar c1, c2; - UInt16 s1, s2; - - AssertD ( i1 != i2, "mainGtU" ); - /* 1 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 2 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 3 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 4 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 5 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 6 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 7 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 8 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 9 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 10 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 11 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 12 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - - k = nblock + 8; - - do { - /* 1 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 2 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 3 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 4 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 5 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 6 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 7 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 8 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - - if (i1 >= nblock) i1 -= nblock; - if (i2 >= nblock) i2 -= nblock; - - k -= 8; - (*budget)--; - } - while (k >= 0); - - return False; -} - - -/*---------------------------------------------*/ -/*-- - Knuth's increments seem to work better - than Incerpi-Sedgewick here. Possibly - because the number of elems to sort is - usually small, typically <= 20. ---*/ -static -Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280, - 9841, 29524, 88573, 265720, - 797161, 2391484 }; - -static -void mainSimpleSort ( UInt32* ptr, - UChar* block, - UInt16* quadrant, - Int32 nblock, - Int32 lo, - Int32 hi, - Int32 d, - Int32* budget ) -{ - Int32 i, j, h, bigN, hp; - UInt32 v; - - bigN = hi - lo + 1; - if (bigN < 2) return; - - hp = 0; - while (incs[hp] < bigN) hp++; - hp--; - - for (; hp >= 0; hp--) { - h = incs[hp]; - - i = lo + h; - while (True) { - - /*-- copy 1 --*/ - if (i > hi) break; - v = ptr[i]; - j = i; - while ( mainGtU ( - ptr[j-h]+d, v+d, block, quadrant, nblock, budget - ) ) { - ptr[j] = ptr[j-h]; - j = j - h; - if (j <= (lo + h - 1)) break; - } - ptr[j] = v; - i++; - - /*-- copy 2 --*/ - if (i > hi) break; - v = ptr[i]; - j = i; - while ( mainGtU ( - ptr[j-h]+d, v+d, block, quadrant, nblock, budget - ) ) { - ptr[j] = ptr[j-h]; - j = j - h; - if (j <= (lo + h - 1)) break; - } - ptr[j] = v; - i++; - - /*-- copy 3 --*/ - if (i > hi) break; - v = ptr[i]; - j = i; - while ( mainGtU ( - ptr[j-h]+d, v+d, block, quadrant, nblock, budget - ) ) { - ptr[j] = ptr[j-h]; - j = j - h; - if (j <= (lo + h - 1)) break; - } - ptr[j] = v; - i++; - - if (*budget < 0) return; - } - } -} - - -/*---------------------------------------------*/ -/*-- - The following is an implementation of - an elegant 3-way quicksort for strings, - described in a paper "Fast Algorithms for - Sorting and Searching Strings", by Robert - Sedgewick and Jon L. Bentley. ---*/ - -#define mswap(zz1, zz2) \ - { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; } - -#define mvswap(zzp1, zzp2, zzn) \ -{ \ - Int32 yyp1 = (zzp1); \ - Int32 yyp2 = (zzp2); \ - Int32 yyn = (zzn); \ - while (yyn > 0) { \ - mswap(ptr[yyp1], ptr[yyp2]); \ - yyp1++; yyp2++; yyn--; \ - } \ -} - -static -__inline__ -UChar mmed3 ( UChar a, UChar b, UChar c ) -{ - UChar t; - if (a > b) { t = a; a = b; b = t; }; - if (b > c) { - b = c; - if (a > b) b = a; - } - return b; -} - -#define mmin(a,b) ((a) < (b)) ? (a) : (b) - -#define mpush(lz,hz,dz) { stackLo[sp] = lz; \ - stackHi[sp] = hz; \ - stackD [sp] = dz; \ - sp++; } - -#define mpop(lz,hz,dz) { sp--; \ - lz = stackLo[sp]; \ - hz = stackHi[sp]; \ - dz = stackD [sp]; } - - -#define mnextsize(az) (nextHi[az]-nextLo[az]) - -#define mnextswap(az,bz) \ - { Int32 tz; \ - tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \ - tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \ - tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; } - - -#define MAIN_QSORT_SMALL_THRESH 20 -#define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT) -#define MAIN_QSORT_STACK_SIZE 100 - -static -void mainQSort3 ( UInt32* ptr, - UChar* block, - UInt16* quadrant, - Int32 nblock, - Int32 loSt, - Int32 hiSt, - Int32 dSt, - Int32* budget ) -{ - Int32 unLo, unHi, ltLo, gtHi, n, m, med; - Int32 sp, lo, hi, d; - - Int32 stackLo[MAIN_QSORT_STACK_SIZE]; - Int32 stackHi[MAIN_QSORT_STACK_SIZE]; - Int32 stackD [MAIN_QSORT_STACK_SIZE]; - - Int32 nextLo[3]; - Int32 nextHi[3]; - Int32 nextD [3]; - - sp = 0; - mpush ( loSt, hiSt, dSt ); - - while (sp > 0) { - - AssertH ( sp < MAIN_QSORT_STACK_SIZE, 1001 ); - - mpop ( lo, hi, d ); - if (hi - lo < MAIN_QSORT_SMALL_THRESH || - d > MAIN_QSORT_DEPTH_THRESH) { - mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget ); - if (*budget < 0) return; - continue; - } - - med = (Int32) - mmed3 ( block[ptr[ lo ]+d], - block[ptr[ hi ]+d], - block[ptr[ (lo+hi)>>1 ]+d] ); - - unLo = ltLo = lo; - unHi = gtHi = hi; - - while (True) { - while (True) { - if (unLo > unHi) break; - n = ((Int32)block[ptr[unLo]+d]) - med; - if (n == 0) { - mswap(ptr[unLo], ptr[ltLo]); - ltLo++; unLo++; continue; - }; - if (n > 0) break; - unLo++; - } - while (True) { - if (unLo > unHi) break; - n = ((Int32)block[ptr[unHi]+d]) - med; - if (n == 0) { - mswap(ptr[unHi], ptr[gtHi]); - gtHi--; unHi--; continue; - }; - if (n < 0) break; - unHi--; - } - if (unLo > unHi) break; - mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--; - } - - AssertD ( unHi == unLo-1, "mainQSort3(2)" ); - - if (gtHi < ltLo) { - mpush(lo, hi, d+1 ); - continue; - } - - n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n); - m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m); - - n = lo + unLo - ltLo - 1; - m = hi - (gtHi - unHi) + 1; - - nextLo[0] = lo; nextHi[0] = n; nextD[0] = d; - nextLo[1] = m; nextHi[1] = hi; nextD[1] = d; - nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1; - - if (mnextsize(0) < mnextsize(1)) mnextswap(0,1); - if (mnextsize(1) < mnextsize(2)) mnextswap(1,2); - if (mnextsize(0) < mnextsize(1)) mnextswap(0,1); - - AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" ); - AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" ); - - mpush (nextLo[0], nextHi[0], nextD[0]); - mpush (nextLo[1], nextHi[1], nextD[1]); - mpush (nextLo[2], nextHi[2], nextD[2]); - } -} - -#undef mswap -#undef mvswap -#undef mpush -#undef mpop -#undef mmin -#undef mnextsize -#undef mnextswap -#undef MAIN_QSORT_SMALL_THRESH -#undef MAIN_QSORT_DEPTH_THRESH -#undef MAIN_QSORT_STACK_SIZE - - -/*---------------------------------------------*/ -/* Pre: - nblock > N_OVERSHOOT - block32 exists for [0 .. nblock-1 +N_OVERSHOOT] - ((UChar*)block32) [0 .. nblock-1] holds block - ptr exists for [0 .. nblock-1] - - Post: - ((UChar*)block32) [0 .. nblock-1] holds block - All other areas of block32 destroyed - ftab [0 .. 65536 ] destroyed - ptr [0 .. nblock-1] holds sorted order - if (*budget < 0), sorting was abandoned -*/ - -#define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8]) -#define SETMASK (1 << 21) -#define CLEARMASK (~(SETMASK)) - -static -void mainSort ( UInt32* ptr, - UChar* block, - UInt16* quadrant, - UInt32* ftab, - Int32 nblock, - Int32 verb, - Int32* budget ) -{ - Int32 i, j, k, ss, sb; - Int32 runningOrder[256]; - Bool bigDone[256]; - Int32 copyStart[256]; - Int32 copyEnd [256]; - UChar c1; - Int32 numQSorted; - UInt16 s; - if (verb >= 4) VPrintf0 ( " main sort initialise ...\n" ); - - /*-- set up the 2-byte frequency table --*/ - for (i = 65536; i >= 0; i--) ftab[i] = 0; - - j = block[0] << 8; - i = nblock-1; - for (; i >= 3; i -= 4) { - quadrant[i] = 0; - j = (j >> 8) | ( ((UInt16)block[i]) << 8); - ftab[j]++; - quadrant[i-1] = 0; - j = (j >> 8) | ( ((UInt16)block[i-1]) << 8); - ftab[j]++; - quadrant[i-2] = 0; - j = (j >> 8) | ( ((UInt16)block[i-2]) << 8); - ftab[j]++; - quadrant[i-3] = 0; - j = (j >> 8) | ( ((UInt16)block[i-3]) << 8); - ftab[j]++; - } - for (; i >= 0; i--) { - quadrant[i] = 0; - j = (j >> 8) | ( ((UInt16)block[i]) << 8); - ftab[j]++; - } - - /*-- (emphasises close relationship of block & quadrant) --*/ - for (i = 0; i < BZ_N_OVERSHOOT; i++) { - block [nblock+i] = block[i]; - quadrant[nblock+i] = 0; - } - - if (verb >= 4) VPrintf0 ( " bucket sorting ...\n" ); - - /*-- Complete the initial radix sort --*/ - for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1]; - - s = block[0] << 8; - i = nblock-1; - for (; i >= 3; i -= 4) { - s = (s >> 8) | (block[i] << 8); - j = ftab[s] -1; - ftab[s] = j; - ptr[j] = i; - s = (s >> 8) | (block[i-1] << 8); - j = ftab[s] -1; - ftab[s] = j; - ptr[j] = i-1; - s = (s >> 8) | (block[i-2] << 8); - j = ftab[s] -1; - ftab[s] = j; - ptr[j] = i-2; - s = (s >> 8) | (block[i-3] << 8); - j = ftab[s] -1; - ftab[s] = j; - ptr[j] = i-3; - } - for (; i >= 0; i--) { - s = (s >> 8) | (block[i] << 8); - j = ftab[s] -1; - ftab[s] = j; - ptr[j] = i; - } - - /*-- - Now ftab contains the first loc of every small bucket. - Calculate the running order, from smallest to largest - big bucket. - --*/ - for (i = 0; i <= 255; i++) { - bigDone [i] = False; - runningOrder[i] = i; - } - - { - Int32 vv; - Int32 h = 1; - do h = 3 * h + 1; while (h <= 256); - do { - h = h / 3; - for (i = h; i <= 255; i++) { - vv = runningOrder[i]; - j = i; - while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) { - runningOrder[j] = runningOrder[j-h]; - j = j - h; - if (j <= (h - 1)) goto zero; - } - zero: - runningOrder[j] = vv; - } - } while (h != 1); - } - - /*-- - The main sorting loop. - --*/ - - numQSorted = 0; - - for (i = 0; i <= 255; i++) { - - /*-- - Process big buckets, starting with the least full. - Basically this is a 3-step process in which we call - mainQSort3 to sort the small buckets [ss, j], but - also make a big effort to avoid the calls if we can. - --*/ - ss = runningOrder[i]; - - /*-- - Step 1: - Complete the big bucket [ss] by quicksorting - any unsorted small buckets [ss, j], for j != ss. - Hopefully previous pointer-scanning phases have already - completed many of the small buckets [ss, j], so - we don't have to sort them at all. - --*/ - for (j = 0; j <= 255; j++) { - if (j != ss) { - sb = (ss << 8) + j; - if ( ! (ftab[sb] & SETMASK) ) { - Int32 lo = ftab[sb] & CLEARMASK; - Int32 hi = (ftab[sb+1] & CLEARMASK) - 1; - if (hi > lo) { - if (verb >= 4) - VPrintf4 ( " qsort [0x%x, 0x%x] " - "done %d this %d\n", - ss, j, numQSorted, hi - lo + 1 ); - mainQSort3 ( - ptr, block, quadrant, nblock, - lo, hi, BZ_N_RADIX, budget - ); - numQSorted += (hi - lo + 1); - if (*budget < 0) return; - } - } - ftab[sb] |= SETMASK; - } - } - - AssertH ( !bigDone[ss], 1006 ); - - /*-- - Step 2: - Now scan this big bucket [ss] so as to synthesise the - sorted order for small buckets [t, ss] for all t, - including, magically, the bucket [ss,ss] too. - This will avoid doing Real Work in subsequent Step 1's. - --*/ - { - for (j = 0; j <= 255; j++) { - copyStart[j] = ftab[(j << 8) + ss] & CLEARMASK; - copyEnd [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1; - } - for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) { - k = ptr[j]-1; if (k < 0) k += nblock; - c1 = block[k]; - if (!bigDone[c1]) - ptr[ copyStart[c1]++ ] = k; - } - for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) { - k = ptr[j]-1; if (k < 0) k += nblock; - c1 = block[k]; - if (!bigDone[c1]) - ptr[ copyEnd[c1]-- ] = k; - } - } - - AssertH ( copyStart[ss]-1 == copyEnd[ss], 1007 ); - - for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK; - - /*-- - Step 3: - The [ss] big bucket is now done. Record this fact, - and update the quadrant descriptors. Remember to - update quadrants in the overshoot area too, if - necessary. The "if (i < 255)" test merely skips - this updating for the last bucket processed, since - updating for the last bucket is pointless. - - The quadrant array provides a way to incrementally - cache sort orderings, as they appear, so as to - make subsequent comparisons in fullGtU() complete - faster. For repetitive blocks this makes a big - difference (but not big enough to be able to avoid - the fallback sorting mechanism, exponential radix sort). - - The precise meaning is: at all times: - - for 0 <= i < nblock and 0 <= j <= nblock - - if block[i] != block[j], - - then the relative values of quadrant[i] and - quadrant[j] are meaningless. - - else { - if quadrant[i] < quadrant[j] - then the string starting at i lexicographically - precedes the string starting at j - - else if quadrant[i] > quadrant[j] - then the string starting at j lexicographically - precedes the string starting at i - - else - the relative ordering of the strings starting - at i and j has not yet been determined. - } - --*/ - bigDone[ss] = True; - - if (i < 255) { - Int32 bbStart = ftab[ss << 8] & CLEARMASK; - Int32 bbSize = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart; - Int32 shifts = 0; - - while ((bbSize >> shifts) > 65534) shifts++; - - for (j = bbSize-1; j >= 0; j--) { - Int32 a2update = ptr[bbStart + j]; - UInt16 qVal = (UInt16)(j >> shifts); - quadrant[a2update] = qVal; - if (a2update < BZ_N_OVERSHOOT) - quadrant[a2update + nblock] = qVal; - } - AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 ); - } - - } - - if (verb >= 4) - VPrintf3 ( " %d pointers, %d sorted, %d scanned\n", - nblock, numQSorted, nblock - numQSorted ); -} - -#undef BIGFREQ -#undef SETMASK -#undef CLEARMASK - - -/*---------------------------------------------*/ -/* Pre: - nblock > 0 - arr2 exists for [0 .. nblock-1 +N_OVERSHOOT] - ((UChar*)arr2) [0 .. nblock-1] holds block - arr1 exists for [0 .. nblock-1] - - Post: - ((UChar*)arr2) [0 .. nblock-1] holds block - All other areas of block destroyed - ftab [ 0 .. 65536 ] destroyed - arr1 [0 .. nblock-1] holds sorted order -*/ -void BZ2_blockSort ( EState* s ) -{ - UInt32* ptr = s->ptr; - UChar* block = s->block; - UInt32* ftab = s->ftab; - Int32 nblock = s->nblock; - Int32 verb = s->verbosity; - Int32 wfact = s->workFactor; - UInt16* quadrant; - Int32 budget; - Int32 budgetInit; - Int32 i; - - if (nblock < 10000) { - fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb ); - } else { - /* Calculate the location for quadrant, remembering to get - the alignment right. Assumes that &(block[0]) is at least - 2-byte aligned -- this should be ok since block is really - the first section of arr2. - */ - i = nblock+BZ_N_OVERSHOOT; - if (i & 1) i++; - quadrant = (UInt16*)(&(block[i])); - - /* (wfact-1) / 3 puts the default-factor-30 - transition point at very roughly the same place as - with v0.1 and v0.9.0. - Not that it particularly matters any more, since the - resulting compressed stream is now the same regardless - of whether or not we use the main sort or fallback sort. - */ - if (wfact < 1 ) wfact = 1; - if (wfact > 100) wfact = 100; - budgetInit = nblock * ((wfact-1) / 3); - budget = budgetInit; - - mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget ); - if (verb >= 3) - VPrintf3 ( " %d work, %d block, ratio %5.2f\n", - budgetInit - budget, - nblock, - (float)(budgetInit - budget) / - (float)(nblock==0 ? 1 : nblock) ); - if (budget < 0) { - if (verb >= 2) - VPrintf0 ( " too repetitive; using fallback" - " sorting algorithm\n" ); - fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb ); - } - } - - s->origPtr = -1; - for (i = 0; i < s->nblock; i++) - if (ptr[i] == 0) - { s->origPtr = i; break; }; - - AssertH( s->origPtr != -1, 1003 ); -} - - -/*-------------------------------------------------------------*/ -/*--- end blocksort.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/winsup/bz2lib/bzip2.1 b/winsup/bz2lib/bzip2.1 deleted file mode 100644 index 7de54a011..000000000 --- a/winsup/bz2lib/bzip2.1 +++ /dev/null @@ -1,439 +0,0 @@ -.PU -.TH bzip2 1 -.SH NAME -bzip2, bunzip2 \- a block-sorting file compressor, v1.0 -.br -bzcat \- decompresses files to stdout -.br -bzip2recover \- recovers data from damaged bzip2 files - -.SH SYNOPSIS -.ll +8 -.B bzip2 -.RB [ " \-cdfkqstvzVL123456789 " ] -[ -.I "filenames \&..." -] -.ll -8 -.br -.B bunzip2 -.RB [ " \-fkvsVL " ] -[ -.I "filenames \&..." -] -.br -.B bzcat -.RB [ " \-s " ] -[ -.I "filenames \&..." -] -.br -.B bzip2recover -.I "filename" - -.SH DESCRIPTION -.I bzip2 -compresses files using the Burrows-Wheeler block sorting -text compression algorithm, and Huffman coding. Compression is -generally considerably better than that achieved by more conventional -LZ77/LZ78-based compressors, and approaches the performance of the PPM -family of statistical compressors. - -The command-line options are deliberately very similar to -those of -.I GNU gzip, -but they are not identical. - -.I bzip2 -expects a list of file names to accompany the -command-line flags. Each file is replaced by a compressed version of -itself, with the name "original_name.bz2". -Each compressed file -has the same modification date, permissions, and, when possible, -ownership as the corresponding original, so that these properties can -be correctly restored at decompression time. File name handling is -naive in the sense that there is no mechanism for preserving original -file names, permissions, ownerships or dates in filesystems which lack -these concepts, or have serious file name length restrictions, such as -MS-DOS. - -.I bzip2 -and -.I bunzip2 -will by default not overwrite existing -files. If you want this to happen, specify the \-f flag. - -If no file names are specified, -.I bzip2 -compresses from standard -input to standard output. In this case, -.I bzip2 -will decline to -write compressed output to a terminal, as this would be entirely -incomprehensible and therefore pointless. - -.I bunzip2 -(or -.I bzip2 \-d) -decompresses all -specified files. Files which were not created by -.I bzip2 -will be detected and ignored, and a warning issued. -.I bzip2 -attempts to guess the filename for the decompressed file -from that of the compressed file as follows: - - filename.bz2 becomes filename - filename.bz becomes filename - filename.tbz2 becomes filename.tar - filename.tbz becomes filename.tar - anyothername becomes anyothername.out - -If the file does not end in one of the recognised endings, -.I .bz2, -.I .bz, -.I .tbz2 -or -.I .tbz, -.I bzip2 -complains that it cannot -guess the name of the original file, and uses the original name -with -.I .out -appended. - -As with compression, supplying no -filenames causes decompression from -standard input to standard output. - -.I bunzip2 -will correctly decompress a file which is the -concatenation of two or more compressed files. The result is the -concatenation of the corresponding uncompressed files. Integrity -testing (\-t) -of concatenated -compressed files is also supported. - -You can also compress or decompress files to the standard output by -giving the \-c flag. Multiple files may be compressed and -decompressed like this. The resulting outputs are fed sequentially to -stdout. Compression of multiple files -in this manner generates a stream -containing multiple compressed file representations. Such a stream -can be decompressed correctly only by -.I bzip2 -version 0.9.0 or -later. Earlier versions of -.I bzip2 -will stop after decompressing -the first file in the stream. - -.I bzcat -(or -.I bzip2 -dc) -decompresses all specified files to -the standard output. - -.I bzip2 -will read arguments from the environment variables -.I BZIP2 -and -.I BZIP, -in that order, and will process them -before any arguments read from the command line. This gives a -convenient way to supply default arguments. - -Compression is always performed, even if the compressed -file is slightly -larger than the original. Files of less than about one hundred bytes -tend to get larger, since the compression mechanism has a constant -overhead in the region of 50 bytes. Random data (including the output -of most file compressors) is coded at about 8.05 bits per byte, giving -an expansion of around 0.5%. - -As a self-check for your protection, -.I -bzip2 -uses 32-bit CRCs to -make sure that the decompressed version of a file is identical to the -original. This guards against corruption of the compressed data, and -against undetected bugs in -.I bzip2 -(hopefully very unlikely). The -chances of data corruption going undetected is microscopic, about one -chance in four billion for each file processed. Be aware, though, that -the check occurs upon decompression, so it can only tell you that -something is wrong. It can't help you -recover the original uncompressed -data. You can use -.I bzip2recover -to try to recover data from -damaged files. - -Return values: 0 for a normal exit, 1 for environmental problems (file -not found, invalid flags, I/O errors, &c), 2 to indicate a corrupt -compressed file, 3 for an internal consistency error (eg, bug) which -caused -.I bzip2 -to panic. - -.SH OPTIONS -.TP -.B \-c --stdout -Compress or decompress to standard output. -.TP -.B \-d --decompress -Force decompression. -.I bzip2, -.I bunzip2 -and -.I bzcat -are -really the same program, and the decision about what actions to take is -done on the basis of which name is used. This flag overrides that -mechanism, and forces -.I bzip2 -to decompress. -.TP -.B \-z --compress -The complement to \-d: forces compression, regardless of the -invokation name. -.TP -.B \-t --test -Check integrity of the specified file(s), but don't decompress them. -This really performs a trial decompression and throws away the result. -.TP -.B \-f --force -Force overwrite of output files. Normally, -.I bzip2 -will not overwrite -existing output files. Also forces -.I bzip2 -to break hard links -to files, which it otherwise wouldn't do. -.TP -.B \-k --keep -Keep (don't delete) input files during compression -or decompression. -.TP -.B \-s --small -Reduce memory usage, for compression, decompression and testing. Files -are decompressed and tested using a modified algorithm which only -requires 2.5 bytes per block byte. This means any file can be -decompressed in 2300k of memory, albeit at about half the normal speed. - -During compression, \-s selects a block size of 200k, which limits -memory use to around the same figure, at the expense of your compression -ratio. In short, if your machine is low on memory (8 megabytes or -less), use \-s for everything. See MEMORY MANAGEMENT below. -.TP -.B \-q --quiet -Suppress non-essential warning messages. Messages pertaining to -I/O errors and other critical events will not be suppressed. -.TP -.B \-v --verbose -Verbose mode -- show the compression ratio for each file processed. -Further \-v's increase the verbosity level, spewing out lots of -information which is primarily of interest for diagnostic purposes. -.TP -.B \-L --license -V --version -Display the software version, license terms and conditions. -.TP -.B \-1 to \-9 -Set the block size to 100 k, 200 k .. 900 k when compressing. Has no -effect when decompressing. See MEMORY MANAGEMENT below. -.TP -.B \-- -Treats all subsequent arguments as file names, even if they start -with a dash. This is so you can handle files with names beginning -with a dash, for example: bzip2 \-- \-myfilename. -.TP -.B \--repetitive-fast --repetitive-best -These flags are redundant in versions 0.9.5 and above. They provided -some coarse control over the behaviour of the sorting algorithm in -earlier versions, which was sometimes useful. 0.9.5 and above have an -improved algorithm which renders these flags irrelevant. - -.SH MEMORY MANAGEMENT -.I bzip2 -compresses large files in blocks. The block size affects -both the compression ratio achieved, and the amount of memory needed for -compression and decompression. The flags \-1 through \-9 -specify the block size to be 100,000 bytes through 900,000 bytes (the -default) respectively. At decompression time, the block size used for -compression is read from the header of the compressed file, and -.I bunzip2 -then allocates itself just enough memory to decompress -the file. Since block sizes are stored in compressed files, it follows -that the flags \-1 to \-9 are irrelevant to and so ignored -during decompression. - -Compression and decompression requirements, -in bytes, can be estimated as: - - Compression: 400k + ( 8 x block size ) - - Decompression: 100k + ( 4 x block size ), or - 100k + ( 2.5 x block size ) - -Larger block sizes give rapidly diminishing marginal returns. Most of -the compression comes from the first two or three hundred k of block -size, a fact worth bearing in mind when using -.I bzip2 -on small machines. -It is also important to appreciate that the decompression memory -requirement is set at compression time by the choice of block size. - -For files compressed with the default 900k block size, -.I bunzip2 -will require about 3700 kbytes to decompress. To support decompression -of any file on a 4 megabyte machine, -.I bunzip2 -has an option to -decompress using approximately half this amount of memory, about 2300 -kbytes. Decompression speed is also halved, so you should use this -option only where necessary. The relevant flag is -s. - -In general, try and use the largest block size memory constraints allow, -since that maximises the compression achieved. Compression and -decompression speed are virtually unaffected by block size. - -Another significant point applies to files which fit in a single block --- that means most files you'd encounter using a large block size. The -amount of real memory touched is proportional to the size of the file, -since the file is smaller than a block. For example, compressing a file -20,000 bytes long with the flag -9 will cause the compressor to -allocate around 7600k of memory, but only touch 400k + 20000 * 8 = 560 -kbytes of it. Similarly, the decompressor will allocate 3700k but only -touch 100k + 20000 * 4 = 180 kbytes. - -Here is a table which summarises the maximum memory usage for different -block sizes. Also recorded is the total compressed size for 14 files of -the Calgary Text Compression Corpus totalling 3,141,622 bytes. This -column gives some feel for how compression varies with block size. -These figures tend to understate the advantage of larger block sizes for -larger files, since the Corpus is dominated by smaller files. - - Compress Decompress Decompress Corpus - Flag usage usage -s usage Size - - -1 1200k 500k 350k 914704 - -2 2000k 900k 600k 877703 - -3 2800k 1300k 850k 860338 - -4 3600k 1700k 1100k 846899 - -5 4400k 2100k 1350k 845160 - -6 5200k 2500k 1600k 838626 - -7 6100k 2900k 1850k 834096 - -8 6800k 3300k 2100k 828642 - -9 7600k 3700k 2350k 828642 - -.SH RECOVERING DATA FROM DAMAGED FILES -.I bzip2 -compresses files in blocks, usually 900kbytes long. Each -block is handled independently. If a media or transmission error causes -a multi-block .bz2 -file to become damaged, it may be possible to -recover data from the undamaged blocks in the file. - -The compressed representation of each block is delimited by a 48-bit -pattern, which makes it possible to find the block boundaries with -reasonable certainty. Each block also carries its own 32-bit CRC, so -damaged blocks can be distinguished from undamaged ones. - -.I bzip2recover -is a simple program whose purpose is to search for -blocks in .bz2 files, and write each block out into its own .bz2 -file. You can then use -.I bzip2 -\-t -to test the -integrity of the resulting files, and decompress those which are -undamaged. - -.I bzip2recover -takes a single argument, the name of the damaged file, -and writes a number of files "rec0001file.bz2", -"rec0002file.bz2", etc, containing the extracted blocks. -The output filenames are designed so that the use of -wildcards in subsequent processing -- for example, -"bzip2 -dc rec*file.bz2 > recovered_data" -- lists the files in -the correct order. - -.I bzip2recover -should be of most use dealing with large .bz2 -files, as these will contain many blocks. It is clearly -futile to use it on damaged single-block files, since a -damaged block cannot be recovered. If you wish to minimise -any potential data loss through media or transmission errors, -you might consider compressing with a smaller -block size. - -.SH PERFORMANCE NOTES -The sorting phase of compression gathers together similar strings in the -file. Because of this, files containing very long runs of repeated -symbols, like "aabaabaabaab ..." (repeated several hundred times) may -compress more slowly than normal. Versions 0.9.5 and above fare much -better than previous versions in this respect. The ratio between -worst-case and average-case compression time is in the region of 10:1. -For previous versions, this figure was more like 100:1. You can use the -\-vvvv option to monitor progress in great detail, if you want. - -Decompression speed is unaffected by these phenomena. - -.I bzip2 -usually allocates several megabytes of memory to operate -in, and then charges all over it in a fairly random fashion. This means -that performance, both for compressing and decompressing, is largely -determined by the speed at which your machine can service cache misses. -Because of this, small changes to the code to reduce the miss rate have -been observed to give disproportionately large performance improvements. -I imagine -.I bzip2 -will perform best on machines with very large caches. - -.SH CAVEATS -I/O error messages are not as helpful as they could be. -.I bzip2 -tries hard to detect I/O errors and exit cleanly, but the details of -what the problem is sometimes seem rather misleading. - -This manual page pertains to version 1.0 of -.I bzip2. -Compressed -data created by this version is entirely forwards and backwards -compatible with the previous public releases, versions 0.1pl2, 0.9.0 -and 0.9.5, -but with the following exception: 0.9.0 and above can correctly -decompress multiple concatenated compressed files. 0.1pl2 cannot do -this; it will stop after decompressing just the first file in the -stream. - -.I bzip2recover -uses 32-bit integers to represent bit positions in -compressed files, so it cannot handle compressed files more than 512 -megabytes long. This could easily be fixed. - -.SH AUTHOR -Julian Seward, jseward@acm.org. - -http://sourceware.cygnus.com/bzip2 -http://www.muraroa.demon.co.uk - -The ideas embodied in -.I bzip2 -are due to (at least) the following -people: Michael Burrows and David Wheeler (for the block sorting -transformation), David Wheeler (again, for the Huffman coder), Peter -Fenwick (for the structured coding model in the original -.I bzip, -and many refinements), and Alistair Moffat, Radford Neal and Ian Witten -(for the arithmetic coder in the original -.I bzip). -I am much -indebted for their help, support and advice. See the manual in the -source distribution for pointers to sources of documentation. Christian -von Roques encouraged me to look for faster sorting algorithms, so as to -speed up compression. Bela Lubkin encouraged me to improve the -worst-case compression performance. Many people sent patches, helped -with portability problems, lent machines, gave advice and were generally -helpful. diff --git a/winsup/bz2lib/bzip2.1.preformatted b/winsup/bz2lib/bzip2.1.preformatted deleted file mode 100644 index 9f18339e9..000000000 --- a/winsup/bz2lib/bzip2.1.preformatted +++ /dev/null @@ -1,462 +0,0 @@ - - - -bzip2(1) bzip2(1) - - -NNAAMMEE - bzip2, bunzip2 - a block-sorting file compressor, v1.0 - bzcat - decompresses files to stdout - bzip2recover - recovers data from damaged bzip2 files - - -SSYYNNOOPPSSIISS - bbzziipp22 [ --ccddffkkqqssttvvzzVVLL112233445566778899 ] [ _f_i_l_e_n_a_m_e_s _._._. ] - bbuunnzziipp22 [ --ffkkvvssVVLL ] [ _f_i_l_e_n_a_m_e_s _._._. ] - bbzzccaatt [ --ss ] [ _f_i_l_e_n_a_m_e_s _._._. ] - bbzziipp22rreeccoovveerr _f_i_l_e_n_a_m_e - - -DDEESSCCRRIIPPTTIIOONN - _b_z_i_p_2 compresses files using the Burrows-Wheeler block - sorting text compression algorithm, and Huffman coding. - Compression is generally considerably better than that - achieved by more conventional LZ77/LZ78-based compressors, - and approaches the performance of the PPM family of sta- - tistical compressors. - - The command-line options are deliberately very similar to - those of _G_N_U _g_z_i_p_, but they are not identical. - - _b_z_i_p_2 expects a list of file names to accompany the com- - mand-line flags. Each file is replaced by a compressed - version of itself, with the name "original_name.bz2". - Each compressed file has the same modification date, per- - missions, and, when possible, ownership as the correspond- - ing original, so that these properties can be correctly - restored at decompression time. File name handling is - naive in the sense that there is no mechanism for preserv- - ing original file names, permissions, ownerships or dates - in filesystems which lack these concepts, or have serious - file name length restrictions, such as MS-DOS. - - _b_z_i_p_2 and _b_u_n_z_i_p_2 will by default not overwrite existing - files. If you want this to happen, specify the -f flag. - - If no file names are specified, _b_z_i_p_2 compresses from - standard input to standard output. In this case, _b_z_i_p_2 - will decline to write compressed output to a terminal, as - this would be entirely incomprehensible and therefore - pointless. - - _b_u_n_z_i_p_2 (or _b_z_i_p_2 _-_d_) decompresses all specified files. - Files which were not created by _b_z_i_p_2 will be detected and - ignored, and a warning issued. _b_z_i_p_2 attempts to guess - the filename for the decompressed file from that of the - compressed file as follows: - - filename.bz2 becomes filename - filename.bz becomes filename - filename.tbz2 becomes filename.tar - - - - 1 - - - - - -bzip2(1) bzip2(1) - - - filename.tbz becomes filename.tar - anyothername becomes anyothername.out - - If the file does not end in one of the recognised endings, - _._b_z_2_, _._b_z_, _._t_b_z_2 or _._t_b_z_, _b_z_i_p_2 complains that it cannot - guess the name of the original file, and uses the original - name with _._o_u_t appended. - - As with compression, supplying no filenames causes decom- - pression from standard input to standard output. - - _b_u_n_z_i_p_2 will correctly decompress a file which is the con- - catenation of two or more compressed files. The result is - the concatenation of the corresponding uncompressed files. - Integrity testing (-t) of concatenated compressed files is - also supported. - - You can also compress or decompress files to the standard - output by giving the -c flag. Multiple files may be com- - pressed and decompressed like this. The resulting outputs - are fed sequentially to stdout. Compression of multiple - files in this manner generates a stream containing multi- - ple compressed file representations. Such a stream can be - decompressed correctly only by _b_z_i_p_2 version 0.9.0 or - later. Earlier versions of _b_z_i_p_2 will stop after decom- - pressing the first file in the stream. - - _b_z_c_a_t (or _b_z_i_p_2 _-_d_c_) decompresses all specified files to - the standard output. - - _b_z_i_p_2 will read arguments from the environment variables - _B_Z_I_P_2 and _B_Z_I_P_, in that order, and will process them - before any arguments read from the command line. This - gives a convenient way to supply default arguments. - - Compression is always performed, even if the compressed - file is slightly larger than the original. Files of less - than about one hundred bytes tend to get larger, since the - compression mechanism has a constant overhead in the - region of 50 bytes. Random data (including the output of - most file compressors) is coded at about 8.05 bits per - byte, giving an expansion of around 0.5%. - - As a self-check for your protection, _b_z_i_p_2 uses 32-bit - CRCs to make sure that the decompressed version of a file - is identical to the original. This guards against corrup- - tion of the compressed data, and against undetected bugs - in _b_z_i_p_2 (hopefully very unlikely). The chances of data - corruption going undetected is microscopic, about one - chance in four billion for each file processed. Be aware, - though, that the check occurs upon decompression, so it - can only tell you that something is wrong. It can't help - you recover the original uncompressed data. You can use - _b_z_i_p_2_r_e_c_o_v_e_r to try to recover data from damaged files. - - - - 2 - - - - - -bzip2(1) bzip2(1) - - - Return values: 0 for a normal exit, 1 for environmental - problems (file not found, invalid flags, I/O errors, &c), - 2 to indicate a corrupt compressed file, 3 for an internal - consistency error (eg, bug) which caused _b_z_i_p_2 to panic. - - -OOPPTTIIOONNSS - --cc ----ssttddoouutt - Compress or decompress to standard output. - - --dd ----ddeeccoommpprreessss - Force decompression. _b_z_i_p_2_, _b_u_n_z_i_p_2 and _b_z_c_a_t are - really the same program, and the decision about - what actions to take is done on the basis of which - name is used. This flag overrides that mechanism, - and forces _b_z_i_p_2 to decompress. - - --zz ----ccoommpprreessss - The complement to -d: forces compression, regard- - less of the invokation name. - - --tt ----tteesstt - Check integrity of the specified file(s), but don't - decompress them. This really performs a trial - decompression and throws away the result. - - --ff ----ffoorrccee - Force overwrite of output files. Normally, _b_z_i_p_2 - will not overwrite existing output files. Also - forces _b_z_i_p_2 to break hard links to files, which it - otherwise wouldn't do. - - --kk ----kkeeeepp - Keep (don't delete) input files during compression - or decompression. - - --ss ----ssmmaallll - Reduce memory usage, for compression, decompression - and testing. Files are decompressed and tested - using a modified algorithm which only requires 2.5 - bytes per block byte. This means any file can be - decompressed in 2300k of memory, albeit at about - half the normal speed. - - During compression, -s selects a block size of - 200k, which limits memory use to around the same - figure, at the expense of your compression ratio. - In short, if your machine is low on memory (8 - megabytes or less), use -s for everything. See - MEMORY MANAGEMENT below. - - --qq ----qquuiieett - Suppress non-essential warning messages. Messages - pertaining to I/O errors and other critical events - - - - 3 - - - - - -bzip2(1) bzip2(1) - - - will not be suppressed. - - --vv ----vveerrbboossee - Verbose mode -- show the compression ratio for each - file processed. Further -v's increase the ver- - bosity level, spewing out lots of information which - is primarily of interest for diagnostic purposes. - - --LL ----lliicceennssee --VV ----vveerrssiioonn - Display the software version, license terms and - conditions. - - --11 ttoo --99 - Set the block size to 100 k, 200 k .. 900 k when - compressing. Has no effect when decompressing. - See MEMORY MANAGEMENT below. - - ---- Treats all subsequent arguments as file names, even - if they start with a dash. This is so you can han- - dle files with names beginning with a dash, for - example: bzip2 -- -myfilename. - - ----rreeppeettiittiivvee--ffaasstt ----rreeppeettiittiivvee--bbeesstt - These flags are redundant in versions 0.9.5 and - above. They provided some coarse control over the - behaviour of the sorting algorithm in earlier ver- - sions, which was sometimes useful. 0.9.5 and above - have an improved algorithm which renders these - flags irrelevant. - - -MMEEMMOORRYY MMAANNAAGGEEMMEENNTT - _b_z_i_p_2 compresses large files in blocks. The block size - affects both the compression ratio achieved, and the - amount of memory needed for compression and decompression. - The flags -1 through -9 specify the block size to be - 100,000 bytes through 900,000 bytes (the default) respec- - tively. At decompression time, the block size used for - compression is read from the header of the compressed - file, and _b_u_n_z_i_p_2 then allocates itself just enough memory - to decompress the file. Since block sizes are stored in - compressed files, it follows that the flags -1 to -9 are - irrelevant to and so ignored during decompression. - - Compression and decompression requirements, in bytes, can - be estimated as: - - Compression: 400k + ( 8 x block size ) - - Decompression: 100k + ( 4 x block size ), or - 100k + ( 2.5 x block size ) - - Larger block sizes give rapidly diminishing marginal - returns. Most of the compression comes from the first two - - - - 4 - - - - - -bzip2(1) bzip2(1) - - - or three hundred k of block size, a fact worth bearing in - mind when using _b_z_i_p_2 on small machines. It is also - important to appreciate that the decompression memory - requirement is set at compression time by the choice of - block size. - - For files compressed with the default 900k block size, - _b_u_n_z_i_p_2 will require about 3700 kbytes to decompress. To - support decompression of any file on a 4 megabyte machine, - _b_u_n_z_i_p_2 has an option to decompress using approximately - half this amount of memory, about 2300 kbytes. Decompres- - sion speed is also halved, so you should use this option - only where necessary. The relevant flag is -s. - - In general, try and use the largest block size memory con- - straints allow, since that maximises the compression - achieved. Compression and decompression speed are virtu- - ally unaffected by block size. - - Another significant point applies to files which fit in a - single block -- that means most files you'd encounter - using a large block size. The amount of real memory - touched is proportional to the size of the file, since the - file is smaller than a block. For example, compressing a - file 20,000 bytes long with the flag -9 will cause the - compressor to allocate around 7600k of memory, but only - touch 400k + 20000 * 8 = 560 kbytes of it. Similarly, the - decompressor will allocate 3700k but only touch 100k + - 20000 * 4 = 180 kbytes. - - Here is a table which summarises the maximum memory usage - for different block sizes. Also recorded is the total - compressed size for 14 files of the Calgary Text Compres- - sion Corpus totalling 3,141,622 bytes. This column gives - some feel for how compression varies with block size. - These figures tend to understate the advantage of larger - block sizes for larger files, since the Corpus is domi- - nated by smaller files. - - Compress Decompress Decompress Corpus - Flag usage usage -s usage Size - - -1 1200k 500k 350k 914704 - -2 2000k 900k 600k 877703 - -3 2800k 1300k 850k 860338 - -4 3600k 1700k 1100k 846899 - -5 4400k 2100k 1350k 845160 - -6 5200k 2500k 1600k 838626 - -7 6100k 2900k 1850k 834096 - -8 6800k 3300k 2100k 828642 - -9 7600k 3700k 2350k 828642 - - - - - - - 5 - - - - - -bzip2(1) bzip2(1) - - -RREECCOOVVEERRIINNGG DDAATTAA FFRROOMM DDAAMMAAGGEEDD FFIILLEESS - _b_z_i_p_2 compresses files in blocks, usually 900kbytes long. - Each block is handled independently. If a media or trans- - mission error causes a multi-block .bz2 file to become - damaged, it may be possible to recover data from the - undamaged blocks in the file. - - The compressed representation of each block is delimited - by a 48-bit pattern, which makes it possible to find the - block boundaries with reasonable certainty. Each block - also carries its own 32-bit CRC, so damaged blocks can be - distinguished from undamaged ones. - - _b_z_i_p_2_r_e_c_o_v_e_r is a simple program whose purpose is to - search for blocks in .bz2 files, and write each block out - into its own .bz2 file. You can then use _b_z_i_p_2 -t to test - the integrity of the resulting files, and decompress those - which are undamaged. - - _b_z_i_p_2_r_e_c_o_v_e_r takes a single argument, the name of the dam- - aged file, and writes a number of files "rec0001file.bz2", - "rec0002file.bz2", etc, containing the extracted blocks. - The output filenames are designed so that the use of - wildcards in subsequent processing -- for example, "bzip2 - -dc rec*file.bz2 > recovered_data" -- lists the files in - the correct order. - - _b_z_i_p_2_r_e_c_o_v_e_r should be of most use dealing with large .bz2 - files, as these will contain many blocks. It is clearly - futile to use it on damaged single-block files, since a - damaged block cannot be recovered. If you wish to min- - imise any potential data loss through media or transmis- - sion errors, you might consider compressing with a smaller - block size. - - -PPEERRFFOORRMMAANNCCEE NNOOTTEESS - The sorting phase of compression gathers together similar - strings in the file. Because of this, files containing - very long runs of repeated symbols, like "aabaabaabaab - ..." (repeated several hundred times) may compress more - slowly than normal. Versions 0.9.5 and above fare much - better than previous versions in this respect. The ratio - between worst-case and average-case compression time is in - the region of 10:1. For previous versions, this figure - was more like 100:1. You can use the -vvvv option to mon- - itor progress in great detail, if you want. - - Decompression speed is unaffected by these phenomena. - - _b_z_i_p_2 usually allocates several megabytes of memory to - operate in, and then charges all over it in a fairly ran- - dom fashion. This means that performance, both for com- - pressing and decompressing, is largely determined by the - - - - 6 - - - - - -bzip2(1) bzip2(1) - - - speed at which your machine can service cache misses. - Because of this, small changes to the code to reduce the - miss rate have been observed to give disproportionately - large performance improvements. I imagine _b_z_i_p_2 will per- - form best on machines with very large caches. - - -CCAAVVEEAATTSS - I/O error messages are not as helpful as they could be. - _b_z_i_p_2 tries hard to detect I/O errors and exit cleanly, - but the details of what the problem is sometimes seem - rather misleading. - - This manual page pertains to version 1.0 of _b_z_i_p_2_. Com- - pressed data created by this version is entirely forwards - and backwards compatible with the previous public - releases, versions 0.1pl2, 0.9.0 and 0.9.5, but with the - following exception: 0.9.0 and above can correctly decom- - press multiple concatenated compressed files. 0.1pl2 can- - not do this; it will stop after decompressing just the - first file in the stream. - - _b_z_i_p_2_r_e_c_o_v_e_r uses 32-bit integers to represent bit posi- - tions in compressed files, so it cannot handle compressed - files more than 512 megabytes long. This could easily be - fixed. - - -AAUUTTHHOORR - Julian Seward, jseward@acm.org. - - http://sourceware.cygnus.com/bzip2 - http://www.muraroa.demon.co.uk - - The ideas embodied in _b_z_i_p_2 are due to (at least) the fol- - lowing people: Michael Burrows and David Wheeler (for the - block sorting transformation), David Wheeler (again, for - the Huffman coder), Peter Fenwick (for the structured cod- - ing model in the original _b_z_i_p_, and many refinements), and - Alistair Moffat, Radford Neal and Ian Witten (for the - arithmetic coder in the original _b_z_i_p_)_. I am much - indebted for their help, support and advice. See the man- - ual in the source distribution for pointers to sources of - documentation. Christian von Roques encouraged me to look - for faster sorting algorithms, so as to speed up compres- - sion. Bela Lubkin encouraged me to improve the worst-case - compression performance. Many people sent patches, helped - with portability problems, lent machines, gave advice and - were generally helpful. - - - - - - - - - 7 - - diff --git a/winsup/bz2lib/bzip2.c b/winsup/bz2lib/bzip2.c deleted file mode 100644 index 56adfdcbc..000000000 --- a/winsup/bz2lib/bzip2.c +++ /dev/null @@ -1,2044 +0,0 @@ - -/*-----------------------------------------------------------*/ -/*--- A block-sorting, lossless compressor bzip2.c ---*/ -/*-----------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - -/*----------------------------------------------------*/ -/*--- IMPORTANT ---*/ -/*----------------------------------------------------*/ - -/*-- - WARNING: - This program and library (attempts to) compress data by - performing several non-trivial transformations on it. - Unless you are 100% familiar with *all* the algorithms - contained herein, and with the consequences of modifying them, - you should NOT meddle with the compression or decompression - machinery. Incorrect changes can and very likely *will* - lead to disasterous loss of data. - - DISCLAIMER: - I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE - USE OF THIS PROGRAM, HOWSOEVER CAUSED. - - Every compression of a file implies an assumption that the - compressed file can be decompressed to reproduce the original. - Great efforts in design, coding and testing have been made to - ensure that this program works correctly. However, the - complexity of the algorithms, and, in particular, the presence - of various special cases in the code which occur with very low - but non-zero probability make it impossible to rule out the - possibility of bugs remaining in the program. DO NOT COMPRESS - ANY DATA WITH THIS PROGRAM AND/OR LIBRARY UNLESS YOU ARE PREPARED - TO ACCEPT THE POSSIBILITY, HOWEVER SMALL, THAT THE DATA WILL - NOT BE RECOVERABLE. - - That is not to say this program is inherently unreliable. - Indeed, I very much hope the opposite is true. bzip2/libbzip2 - has been carefully constructed and extensively tested. - - PATENTS: - To the best of my knowledge, bzip2/libbzip2 does not use any - patented algorithms. However, I do not have the resources - available to carry out a full patent search. Therefore I cannot - give any guarantee of the above statement. ---*/ - - - -/*----------------------------------------------------*/ -/*--- and now for something much more pleasant :-) ---*/ -/*----------------------------------------------------*/ - -/*---------------------------------------------*/ -/*-- - Place a 1 beside your platform, and 0 elsewhere. ---*/ - -/*-- - Generic 32-bit Unix. - Also works on 64-bit Unix boxes. ---*/ -#define BZ_UNIX 1 - -/*-- - Win32, as seen by Jacob Navia's excellent - port of (Chris Fraser & David Hanson)'s excellent - lcc compiler. ---*/ -#define BZ_LCCWIN32 0 - -#if defined(_WIN32) && !defined(__CYGWIN__) -#undef BZ_LCCWIN32 -#define BZ_LCCWIN32 1 -#undef BZ_UNIX -#define BZ_UNIX 0 -#endif - - -/*---------------------------------------------*/ -/*-- - Some stuff for all platforms. ---*/ - -#include -#include -#include -#include -#include -#include -#include -#include "bzlib.h" - -#define ERROR_IF_EOF(i) { if ((i) == EOF) ioError(); } -#define ERROR_IF_NOT_ZERO(i) { if ((i) != 0) ioError(); } -#define ERROR_IF_MINUS_ONE(i) { if ((i) == (-1)) ioError(); } - - -/*---------------------------------------------*/ -/*-- - Platform-specific stuff. ---*/ - -#if BZ_UNIX -# include -# include -# include -# include -# include - -# define PATH_SEP '/' -# define MY_LSTAT lstat -# define MY_S_IFREG S_ISREG -# define MY_STAT stat - -# define APPEND_FILESPEC(root, name) \ - root=snocString((root), (name)) - -# define APPEND_FLAG(root, name) \ - root=snocString((root), (name)) - -# define SET_BINARY_MODE(fd) /**/ - -# ifdef __GNUC__ -# define NORETURN __attribute__ ((noreturn)) -# else -# define NORETURN /**/ -# endif -# ifdef __DJGPP__ -# include -# include -# undef MY_LSTAT -# define MY_LSTAT stat -# undef SET_BINARY_MODE -# define SET_BINARY_MODE(fd) \ - do { \ - int retVal = setmode ( fileno ( fd ), \ - O_BINARY ); \ - ERROR_IF_MINUS_ONE ( retVal ); \ - } while ( 0 ) -# endif -# ifdef __CYGWIN__ -# include -# include -# undef SET_BINARY_MODE -# define SET_BINARY_MODE(fd) \ - do { \ - int retVal = setmode ( fileno ( fd ), \ - O_BINARY ); \ - ERROR_IF_MINUS_ONE ( retVal ); \ - } while ( 0 ) -# endif -#endif - - - -#if BZ_LCCWIN32 -# include -# include -# include - -# define NORETURN /**/ -# define PATH_SEP '\\' -# define MY_LSTAT _stat -# define MY_STAT _stat -# define MY_S_IFREG(x) ((x) & _S_IFREG) - -# define APPEND_FLAG(root, name) \ - root=snocString((root), (name)) - -# if 0 - /*-- lcc-win32 seems to expand wildcards itself --*/ -# define APPEND_FILESPEC(root, spec) \ - do { \ - if ((spec)[0] == '-') { \ - root = snocString((root), (spec)); \ - } else { \ - struct _finddata_t c_file; \ - long hFile; \ - hFile = _findfirst((spec), &c_file); \ - if ( hFile == -1L ) { \ - root = snocString ((root), (spec)); \ - } else { \ - int anInt = 0; \ - while ( anInt == 0 ) { \ - root = snocString((root), \ - &c_file.name[0]); \ - anInt = _findnext(hFile, &c_file); \ - } \ - } \ - } \ - } while ( 0 ) -# else -# define APPEND_FILESPEC(root, name) \ - root = snocString ((root), (name)) -# endif - -# define SET_BINARY_MODE(fd) \ - do { \ - int retVal = setmode ( fileno ( fd ), \ - O_BINARY ); \ - ERROR_IF_MINUS_ONE ( retVal ); \ - } while ( 0 ) - -#endif - - -/*---------------------------------------------*/ -/*-- - Some more stuff for all platforms :-) ---*/ - -typedef char Char; -typedef unsigned char Bool; -typedef unsigned char UChar; -typedef int Int32; -typedef unsigned int UInt32; -typedef short Int16; -typedef unsigned short UInt16; - -#define True ((Bool)1) -#define False ((Bool)0) - -/*-- - IntNative is your platform's `native' int size. - Only here to avoid probs with 64-bit platforms. ---*/ -typedef int IntNative; - - -/*---------------------------------------------------*/ -/*--- Misc (file handling) data decls ---*/ -/*---------------------------------------------------*/ - -Int32 verbosity; -Bool keepInputFiles, smallMode, deleteOutputOnInterrupt; -Bool forceOverwrite, testFailsExist, unzFailsExist, noisy; -Int32 numFileNames, numFilesProcessed, blockSize100k; -Int32 exitValue; - -/*-- source modes; F==file, I==stdin, O==stdout --*/ -#define SM_I2O 1 -#define SM_F2O 2 -#define SM_F2F 3 - -/*-- operation modes --*/ -#define OM_Z 1 -#define OM_UNZ 2 -#define OM_TEST 3 - -Int32 opMode; -Int32 srcMode; - -#define FILE_NAME_LEN 1034 - -Int32 longestFileName; -Char inName [FILE_NAME_LEN]; -Char outName[FILE_NAME_LEN]; -Char tmpName[FILE_NAME_LEN]; -Char *progName; -Char progNameReally[FILE_NAME_LEN]; -FILE *outputHandleJustInCase; -Int32 workFactor; - -static void panic ( Char* ) NORETURN; -static void ioError ( void ) NORETURN; -static void outOfMemory ( void ) NORETURN; -static void configError ( void ) NORETURN; -static void crcError ( void ) NORETURN; -static void cleanUpAndFail ( Int32 ) NORETURN; -static void compressedStreamEOF ( void ) NORETURN; - -static void copyFileName ( Char*, Char* ); -static void* myMalloc ( Int32 ); - - - -/*---------------------------------------------------*/ -/*--- An implementation of 64-bit ints. Sigh. ---*/ -/*--- Roll on widespread deployment of ANSI C9X ! ---*/ -/*---------------------------------------------------*/ - -typedef - struct { UChar b[8]; } - UInt64; - -static -void uInt64_from_UInt32s ( UInt64* n, UInt32 lo32, UInt32 hi32 ) -{ - n->b[7] = (UChar)((hi32 >> 24) & 0xFF); - n->b[6] = (UChar)((hi32 >> 16) & 0xFF); - n->b[5] = (UChar)((hi32 >> 8) & 0xFF); - n->b[4] = (UChar) (hi32 & 0xFF); - n->b[3] = (UChar)((lo32 >> 24) & 0xFF); - n->b[2] = (UChar)((lo32 >> 16) & 0xFF); - n->b[1] = (UChar)((lo32 >> 8) & 0xFF); - n->b[0] = (UChar) (lo32 & 0xFF); -} - -static -double uInt64_to_double ( UInt64* n ) -{ - Int32 i; - double base = 1.0; - double sum = 0.0; - for (i = 0; i < 8; i++) { - sum += base * (double)(n->b[i]); - base *= 256.0; - } - return sum; -} - -static -void uInt64_add ( UInt64* src, UInt64* dst ) -{ - Int32 i; - Int32 carry = 0; - for (i = 0; i < 8; i++) { - carry += ( ((Int32)src->b[i]) + ((Int32)dst->b[i]) ); - dst->b[i] = (UChar)(carry & 0xFF); - carry >>= 8; - } -} - -static -void uInt64_sub ( UInt64* src, UInt64* dst ) -{ - Int32 t, i; - Int32 borrow = 0; - for (i = 0; i < 8; i++) { - t = ((Int32)dst->b[i]) - ((Int32)src->b[i]) - borrow; - if (t < 0) { - dst->b[i] = (UChar)(t + 256); - borrow = 1; - } else { - dst->b[i] = (UChar)t; - borrow = 0; - } - } -} - -static -void uInt64_mul ( UInt64* a, UInt64* b, UInt64* r_hi, UInt64* r_lo ) -{ - UChar sum[16]; - Int32 ia, ib, carry; - for (ia = 0; ia < 16; ia++) sum[ia] = 0; - for (ia = 0; ia < 8; ia++) { - carry = 0; - for (ib = 0; ib < 8; ib++) { - carry += ( ((Int32)sum[ia+ib]) - + ((Int32)a->b[ia]) * ((Int32)b->b[ib]) ); - sum[ia+ib] = (UChar)(carry & 0xFF); - carry >>= 8; - } - sum[ia+8] = (UChar)(carry & 0xFF); - if ((carry >>= 8) != 0) panic ( "uInt64_mul" ); - } - - for (ia = 0; ia < 8; ia++) r_hi->b[ia] = sum[ia+8]; - for (ia = 0; ia < 8; ia++) r_lo->b[ia] = sum[ia]; -} - - -static -void uInt64_shr1 ( UInt64* n ) -{ - Int32 i; - for (i = 0; i < 8; i++) { - n->b[i] >>= 1; - if (i < 7 && (n->b[i+1] & 1)) n->b[i] |= 0x80; - } -} - -static -void uInt64_shl1 ( UInt64* n ) -{ - Int32 i; - for (i = 7; i >= 0; i--) { - n->b[i] <<= 1; - if (i > 0 && (n->b[i-1] & 0x80)) n->b[i]++; - } -} - -static -Bool uInt64_isZero ( UInt64* n ) -{ - Int32 i; - for (i = 0; i < 8; i++) - if (n->b[i] != 0) return 0; - return 1; -} - -static -Int32 uInt64_qrm10 ( UInt64* n ) -{ - /* Divide *n by 10, and return the remainder. Long division - is difficult, so we cheat and instead multiply by - 0xCCCC CCCC CCCC CCCD, which is 0.8 (viz, 0.1 << 3). - */ - Int32 i; - UInt64 tmp1, tmp2, n_orig, zero_point_eight; - - zero_point_eight.b[1] = zero_point_eight.b[2] = - zero_point_eight.b[3] = zero_point_eight.b[4] = - zero_point_eight.b[5] = zero_point_eight.b[6] = - zero_point_eight.b[7] = 0xCC; - zero_point_eight.b[0] = 0xCD; - - n_orig = *n; - - /* divide n by 10, - by multiplying by 0.8 and then shifting right 3 times */ - uInt64_mul ( n, &zero_point_eight, &tmp1, &tmp2 ); - uInt64_shr1(&tmp1); uInt64_shr1(&tmp1); uInt64_shr1(&tmp1); - *n = tmp1; - - /* tmp1 = 8*n, tmp2 = 2*n */ - uInt64_shl1(&tmp1); uInt64_shl1(&tmp1); uInt64_shl1(&tmp1); - tmp2 = *n; uInt64_shl1(&tmp2); - - /* tmp1 = 10*n */ - uInt64_add ( &tmp2, &tmp1 ); - - /* n_orig = n_orig - 10*n */ - uInt64_sub ( &tmp1, &n_orig ); - - /* n_orig should now hold quotient, in range 0 .. 9 */ - for (i = 7; i >= 1; i--) - if (n_orig.b[i] != 0) panic ( "uInt64_qrm10(1)" ); - if (n_orig.b[0] > 9) - panic ( "uInt64_qrm10(2)" ); - - return (int)n_orig.b[0]; -} - -/* ... and the Whole Entire Point of all this UInt64 stuff is - so that we can supply the following function. -*/ -static -void uInt64_toAscii ( char* outbuf, UInt64* n ) -{ - Int32 i, q; - UChar buf[32]; - Int32 nBuf = 0; - UInt64 n_copy = *n; - do { - q = uInt64_qrm10 ( &n_copy ); - buf[nBuf] = q + '0'; - nBuf++; - } while (!uInt64_isZero(&n_copy)); - outbuf[nBuf] = 0; - for (i = 0; i < nBuf; i++) outbuf[i] = buf[nBuf-i-1]; -} - - -/*---------------------------------------------------*/ -/*--- Processing of complete files and streams ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------*/ -static -Bool myfeof ( FILE* f ) -{ - Int32 c = fgetc ( f ); - if (c == EOF) return True; - ungetc ( c, f ); - return False; -} - - -/*---------------------------------------------*/ -static -void compressStream ( FILE *stream, FILE *zStream ) -{ - BZFILE* bzf = NULL; - UChar ibuf[5000]; - Int32 nIbuf; - UInt32 nbytes_in_lo32, nbytes_in_hi32; - UInt32 nbytes_out_lo32, nbytes_out_hi32; - Int32 bzerr, bzerr_dummy, ret; - - SET_BINARY_MODE(stream); - SET_BINARY_MODE(zStream); - - if (ferror(stream)) goto errhandler_io; - if (ferror(zStream)) goto errhandler_io; - - bzf = BZ2_bzWriteOpen ( &bzerr, zStream, - blockSize100k, verbosity, workFactor ); - if (bzerr != BZ_OK) goto errhandler; - - if (verbosity >= 2) fprintf ( stderr, "\n" ); - - while (True) { - - if (myfeof(stream)) break; - nIbuf = fread ( ibuf, sizeof(UChar), 5000, stream ); - if (ferror(stream)) goto errhandler_io; - if (nIbuf > 0) BZ2_bzWrite ( &bzerr, bzf, (void*)ibuf, nIbuf ); - if (bzerr != BZ_OK) goto errhandler; - - } - - BZ2_bzWriteClose64 ( &bzerr, bzf, 0, - &nbytes_in_lo32, &nbytes_in_hi32, - &nbytes_out_lo32, &nbytes_out_hi32 ); - if (bzerr != BZ_OK) goto errhandler; - - if (ferror(zStream)) goto errhandler_io; - ret = fflush ( zStream ); - if (ret == EOF) goto errhandler_io; - if (zStream != stdout) { - ret = fclose ( zStream ); - if (ret == EOF) goto errhandler_io; - } - if (ferror(stream)) goto errhandler_io; - ret = fclose ( stream ); - if (ret == EOF) goto errhandler_io; - - if (nbytes_in_lo32 == 0 && nbytes_in_hi32 == 0) - nbytes_in_lo32 = 1; - - if (verbosity >= 1) { - Char buf_nin[32], buf_nout[32]; - UInt64 nbytes_in, nbytes_out; - double nbytes_in_d, nbytes_out_d; - uInt64_from_UInt32s ( &nbytes_in, - nbytes_in_lo32, nbytes_in_hi32 ); - uInt64_from_UInt32s ( &nbytes_out, - nbytes_out_lo32, nbytes_out_hi32 ); - nbytes_in_d = uInt64_to_double ( &nbytes_in ); - nbytes_out_d = uInt64_to_double ( &nbytes_out ); - uInt64_toAscii ( buf_nin, &nbytes_in ); - uInt64_toAscii ( buf_nout, &nbytes_out ); - fprintf ( stderr, "%6.3f:1, %6.3f bits/byte, " - "%5.2f%% saved, %s in, %s out.\n", - nbytes_in_d / nbytes_out_d, - (8.0 * nbytes_out_d) / nbytes_in_d, - 100.0 * (1.0 - nbytes_out_d / nbytes_in_d), - buf_nin, - buf_nout - ); - } - - return; - - errhandler: - BZ2_bzWriteClose64 ( &bzerr_dummy, bzf, 1, - &nbytes_in_lo32, &nbytes_in_hi32, - &nbytes_out_lo32, &nbytes_out_hi32 ); - switch (bzerr) { - case BZ_CONFIG_ERROR: - configError(); break; - case BZ_MEM_ERROR: - outOfMemory (); break; - case BZ_IO_ERROR: - errhandler_io: - ioError(); break; - default: - panic ( "compress:unexpected error" ); - } - - panic ( "compress:end" ); - /*notreached*/ -} - - - -/*---------------------------------------------*/ -static -Bool uncompressStream ( FILE *zStream, FILE *stream ) -{ - BZFILE* bzf = NULL; - Int32 bzerr, bzerr_dummy, ret, nread, streamNo, i; - UChar obuf[5000]; - UChar unused[BZ_MAX_UNUSED]; - Int32 nUnused; - UChar* unusedTmp; - - nUnused = 0; - streamNo = 0; - - SET_BINARY_MODE(stream); - SET_BINARY_MODE(zStream); - - if (ferror(stream)) goto errhandler_io; - if (ferror(zStream)) goto errhandler_io; - - while (True) { - - bzf = BZ2_bzReadOpen ( - &bzerr, zStream, verbosity, - (int)smallMode, unused, nUnused - ); - if (bzf == NULL || bzerr != BZ_OK) goto errhandler; - streamNo++; - - while (bzerr == BZ_OK) { - nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 ); - if (bzerr == BZ_DATA_ERROR_MAGIC) goto errhandler; - if ((bzerr == BZ_OK || bzerr == BZ_STREAM_END) && nread > 0) - fwrite ( obuf, sizeof(UChar), nread, stream ); - if (ferror(stream)) goto errhandler_io; - } - if (bzerr != BZ_STREAM_END) goto errhandler; - - BZ2_bzReadGetUnused ( &bzerr, bzf, (void**)(&unusedTmp), &nUnused ); - if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" ); - - for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i]; - - BZ2_bzReadClose ( &bzerr, bzf ); - if (bzerr != BZ_OK) panic ( "decompress:bzReadGetUnused" ); - - if (nUnused == 0 && myfeof(zStream)) break; - - } - - if (ferror(zStream)) goto errhandler_io; - ret = fclose ( zStream ); - if (ret == EOF) goto errhandler_io; - - if (ferror(stream)) goto errhandler_io; - ret = fflush ( stream ); - if (ret != 0) goto errhandler_io; - if (stream != stdout) { - ret = fclose ( stream ); - if (ret == EOF) goto errhandler_io; - } - if (verbosity >= 2) fprintf ( stderr, "\n " ); - return True; - - errhandler: - BZ2_bzReadClose ( &bzerr_dummy, bzf ); - switch (bzerr) { - case BZ_CONFIG_ERROR: - configError(); break; - case BZ_IO_ERROR: - errhandler_io: - ioError(); break; - case BZ_DATA_ERROR: - crcError(); - case BZ_MEM_ERROR: - outOfMemory(); - case BZ_UNEXPECTED_EOF: - compressedStreamEOF(); - case BZ_DATA_ERROR_MAGIC: - if (zStream != stdin) fclose(zStream); - if (stream != stdout) fclose(stream); - if (streamNo == 1) { - return False; - } else { - if (noisy) - fprintf ( stderr, - "\n%s: %s: trailing garbage after EOF ignored\n", - progName, inName ); - return True; - } - default: - panic ( "decompress:unexpected error" ); - } - - panic ( "decompress:end" ); - return True; /*notreached*/ -} - - -/*---------------------------------------------*/ -static -Bool testStream ( FILE *zStream ) -{ - BZFILE* bzf = NULL; - Int32 bzerr, bzerr_dummy, ret, nread, streamNo, i; - UChar obuf[5000]; - UChar unused[BZ_MAX_UNUSED]; - Int32 nUnused; - UChar* unusedTmp; - - nUnused = 0; - streamNo = 0; - - SET_BINARY_MODE(zStream); - if (ferror(zStream)) goto errhandler_io; - - while (True) { - - bzf = BZ2_bzReadOpen ( - &bzerr, zStream, verbosity, - (int)smallMode, unused, nUnused - ); - if (bzf == NULL || bzerr != BZ_OK) goto errhandler; - streamNo++; - - while (bzerr == BZ_OK) { - nread = BZ2_bzRead ( &bzerr, bzf, obuf, 5000 ); - if (bzerr == BZ_DATA_ERROR_MAGIC) goto errhandler; - } - if (bzerr != BZ_STREAM_END) goto errhandler; - - BZ2_bzReadGetUnused ( &bzerr, bzf, (void**)(&unusedTmp), &nUnused ); - if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" ); - - for (i = 0; i < nUnused; i++) unused[i] = unusedTmp[i]; - - BZ2_bzReadClose ( &bzerr, bzf ); - if (bzerr != BZ_OK) panic ( "test:bzReadGetUnused" ); - if (nUnused == 0 && myfeof(zStream)) break; - - } - - if (ferror(zStream)) goto errhandler_io; - ret = fclose ( zStream ); - if (ret == EOF) goto errhandler_io; - - if (verbosity >= 2) fprintf ( stderr, "\n " ); - return True; - - errhandler: - BZ2_bzReadClose ( &bzerr_dummy, bzf ); - if (verbosity == 0) - fprintf ( stderr, "%s: %s: ", progName, inName ); - switch (bzerr) { - case BZ_CONFIG_ERROR: - configError(); break; - case BZ_IO_ERROR: - errhandler_io: - ioError(); break; - case BZ_DATA_ERROR: - fprintf ( stderr, - "data integrity (CRC) error in data\n" ); - return False; - case BZ_MEM_ERROR: - outOfMemory(); - case BZ_UNEXPECTED_EOF: - fprintf ( stderr, - "file ends unexpectedly\n" ); - return False; - case BZ_DATA_ERROR_MAGIC: - if (zStream != stdin) fclose(zStream); - if (streamNo == 1) { - fprintf ( stderr, - "bad magic number (file not created by bzip2)\n" ); - return False; - } else { - if (noisy) - fprintf ( stderr, - "trailing garbage after EOF ignored\n" ); - return True; - } - default: - panic ( "test:unexpected error" ); - } - - panic ( "test:end" ); - return True; /*notreached*/ -} - - -/*---------------------------------------------------*/ -/*--- Error [non-] handling grunge ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------*/ -static -void setExit ( Int32 v ) -{ - if (v > exitValue) exitValue = v; -} - - -/*---------------------------------------------*/ -static -void cadvise ( void ) -{ - if (noisy) - fprintf ( - stderr, - "\nIt is possible that the compressed file(s) have become corrupted.\n" - "You can use the -tvv option to test integrity of such files.\n\n" - "You can use the `bzip2recover' program to *attempt* to recover\n" - "data from undamaged sections of corrupted files.\n\n" - ); -} - - -/*---------------------------------------------*/ -static -void showFileNames ( void ) -{ - if (noisy) - fprintf ( - stderr, - "\tInput file = %s, output file = %s\n", - inName, outName - ); -} - - -/*---------------------------------------------*/ -static -void cleanUpAndFail ( Int32 ec ) -{ - IntNative retVal; - - if ( srcMode == SM_F2F - && opMode != OM_TEST - && deleteOutputOnInterrupt ) { - if (noisy) - fprintf ( stderr, "%s: Deleting output file %s, if it exists.\n", - progName, outName ); - if (outputHandleJustInCase != NULL) - fclose ( outputHandleJustInCase ); - retVal = remove ( outName ); - if (retVal != 0) - fprintf ( stderr, - "%s: WARNING: deletion of output file (apparently) failed.\n", - progName ); - } - if (noisy && numFileNames > 0 && numFilesProcessed < numFileNames) { - fprintf ( stderr, - "%s: WARNING: some files have not been processed:\n" - "\t%d specified on command line, %d not processed yet.\n\n", - progName, numFileNames, - numFileNames - numFilesProcessed ); - } - setExit(ec); - exit(exitValue); -} - - -/*---------------------------------------------*/ -static -void panic ( Char* s ) -{ - fprintf ( stderr, - "\n%s: PANIC -- internal consistency error:\n" - "\t%s\n" - "\tThis is a BUG. Please report it to me at:\n" - "\tjseward@acm.org\n", - progName, s ); - showFileNames(); - cleanUpAndFail( 3 ); -} - - -/*---------------------------------------------*/ -static -void crcError ( void ) -{ - fprintf ( stderr, - "\n%s: Data integrity error when decompressing.\n", - progName ); - showFileNames(); - cadvise(); - cleanUpAndFail( 2 ); -} - - -/*---------------------------------------------*/ -static -void compressedStreamEOF ( void ) -{ - fprintf ( stderr, - "\n%s: Compressed file ends unexpectedly;\n\t" - "perhaps it is corrupted? *Possible* reason follows.\n", - progName ); - perror ( progName ); - showFileNames(); - cadvise(); - cleanUpAndFail( 2 ); -} - - -/*---------------------------------------------*/ -static -void ioError ( void ) -{ - fprintf ( stderr, - "\n%s: I/O or other error, bailing out. " - "Possible reason follows.\n", - progName ); - perror ( progName ); - showFileNames(); - cleanUpAndFail( 1 ); -} - - -/*---------------------------------------------*/ -static -void mySignalCatcher ( IntNative n ) -{ - fprintf ( stderr, - "\n%s: Control-C or similar caught, quitting.\n", - progName ); - cleanUpAndFail(1); -} - - -/*---------------------------------------------*/ -static -void mySIGSEGVorSIGBUScatcher ( IntNative n ) -{ - if (opMode == OM_Z) - fprintf ( - stderr, - "\n%s: Caught a SIGSEGV or SIGBUS whilst compressing.\n" - "\n" - " Possible causes are (most likely first):\n" - " (1) This computer has unreliable memory or cache hardware\n" - " (a surprisingly common problem; try a different machine.)\n" - " (2) A bug in the compiler used to create this executable\n" - " (unlikely, if you didn't compile bzip2 yourself.)\n" - " (3) A real bug in bzip2 -- I hope this should never be the case.\n" - " The user's manual, Section 4.3, has more info on (1) and (2).\n" - " \n" - " If you suspect this is a bug in bzip2, or are unsure about (1)\n" - " or (2), feel free to report it to me at: jseward@acm.org.\n" - " Section 4.3 of the user's manual describes the info a useful\n" - " bug report should have. If the manual is available on your\n" - " system, please try and read it before mailing me. If you don't\n" - " have the manual or can't be bothered to read it, mail me anyway.\n" - "\n", - progName ); - else - fprintf ( - stderr, - "\n%s: Caught a SIGSEGV or SIGBUS whilst decompressing.\n" - "\n" - " Possible causes are (most likely first):\n" - " (1) The compressed data is corrupted, and bzip2's usual checks\n" - " failed to detect this. Try bzip2 -tvv my_file.bz2.\n" - " (2) This computer has unreliable memory or cache hardware\n" - " (a surprisingly common problem; try a different machine.)\n" - " (3) A bug in the compiler used to create this executable\n" - " (unlikely, if you didn't compile bzip2 yourself.)\n" - " (4) A real bug in bzip2 -- I hope this should never be the case.\n" - " The user's manual, Section 4.3, has more info on (2) and (3).\n" - " \n" - " If you suspect this is a bug in bzip2, or are unsure about (2)\n" - " or (3), feel free to report it to me at: jseward@acm.org.\n" - " Section 4.3 of the user's manual describes the info a useful\n" - " bug report should have. If the manual is available on your\n" - " system, please try and read it before mailing me. If you don't\n" - " have the manual or can't be bothered to read it, mail me anyway.\n" - "\n", - progName ); - - showFileNames(); - if (opMode == OM_Z) - cleanUpAndFail( 3 ); else - { cadvise(); cleanUpAndFail( 2 ); } -} - - -/*---------------------------------------------*/ -static -void outOfMemory ( void ) -{ - fprintf ( stderr, - "\n%s: couldn't allocate enough memory\n", - progName ); - showFileNames(); - cleanUpAndFail(1); -} - - -/*---------------------------------------------*/ -static -void configError ( void ) -{ - fprintf ( stderr, - "bzip2: I'm not configured correctly for this platform!\n" - "\tI require Int32, Int16 and Char to have sizes\n" - "\tof 4, 2 and 1 bytes to run properly, and they don't.\n" - "\tProbably you can fix this by defining them correctly,\n" - "\tand recompiling. Bye!\n" ); - setExit(3); - exit(exitValue); -} - - -/*---------------------------------------------------*/ -/*--- The main driver machinery ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------*/ -static -void pad ( Char *s ) -{ - Int32 i; - if ( (Int32)strlen(s) >= longestFileName ) return; - for (i = 1; i <= longestFileName - (Int32)strlen(s); i++) - fprintf ( stderr, " " ); -} - - -/*---------------------------------------------*/ -static -void copyFileName ( Char* to, Char* from ) -{ - if ( strlen(from) > FILE_NAME_LEN-10 ) { - fprintf ( - stderr, - "bzip2: file name\n`%s'\n" - "is suspiciously (more than %d chars) long.\n" - "Try using a reasonable file name instead. Sorry! :-)\n", - from, FILE_NAME_LEN-10 - ); - setExit(1); - exit(exitValue); - } - - strncpy(to,from,FILE_NAME_LEN-10); - to[FILE_NAME_LEN-10]='\0'; -} - - -/*---------------------------------------------*/ -static -Bool fileExists ( Char* name ) -{ - FILE *tmp = fopen ( name, "rb" ); - Bool exists = (tmp != NULL); - if (tmp != NULL) fclose ( tmp ); - return exists; -} - - -/*---------------------------------------------*/ -/*-- - if in doubt, return True ---*/ -static -Bool notAStandardFile ( Char* name ) -{ - IntNative i; - struct MY_STAT statBuf; - - i = MY_LSTAT ( name, &statBuf ); - if (i != 0) return True; - if (MY_S_IFREG(statBuf.st_mode)) return False; - return True; -} - - -/*---------------------------------------------*/ -/*-- - rac 11/21/98 see if file has hard links to it ---*/ -static -Int32 countHardLinks ( Char* name ) -{ - IntNative i; - struct MY_STAT statBuf; - - i = MY_LSTAT ( name, &statBuf ); - if (i != 0) return 0; - return (statBuf.st_nlink - 1); -} - - -/*---------------------------------------------*/ -static -void copyDatePermissionsAndOwner ( Char *srcName, Char *dstName ) -{ -#if BZ_UNIX - IntNative retVal; - struct MY_STAT statBuf; - struct utimbuf uTimBuf; - - retVal = MY_LSTAT ( srcName, &statBuf ); - ERROR_IF_NOT_ZERO ( retVal ); - uTimBuf.actime = statBuf.st_atime; - uTimBuf.modtime = statBuf.st_mtime; - - retVal = chmod ( dstName, statBuf.st_mode ); - ERROR_IF_NOT_ZERO ( retVal ); - - retVal = utime ( dstName, &uTimBuf ); - ERROR_IF_NOT_ZERO ( retVal ); - - retVal = chown ( dstName, statBuf.st_uid, statBuf.st_gid ); - /* chown() will in many cases return with EPERM, which can - be safely ignored. - */ -#endif -} - - -/*---------------------------------------------*/ -static -void setInterimPermissions ( Char *dstName ) -{ -#if BZ_UNIX - IntNative retVal; - retVal = chmod ( dstName, S_IRUSR | S_IWUSR ); - ERROR_IF_NOT_ZERO ( retVal ); -#endif -} - - -/*---------------------------------------------*/ -static -Bool containsDubiousChars ( Char* name ) -{ - Bool cdc = False; - for (; *name != '\0'; name++) - if (*name == '?' || *name == '*') cdc = True; - return cdc; -} - - -/*---------------------------------------------*/ -#define BZ_N_SUFFIX_PAIRS 4 - -Char* zSuffix[BZ_N_SUFFIX_PAIRS] - = { ".bz2", ".bz", ".tbz2", ".tbz" }; -Char* unzSuffix[BZ_N_SUFFIX_PAIRS] - = { "", "", ".tar", ".tar" }; - -static -Bool hasSuffix ( Char* s, Char* suffix ) -{ - Int32 ns = strlen(s); - Int32 nx = strlen(suffix); - if (ns < nx) return False; - if (strcmp(s + ns - nx, suffix) == 0) return True; - return False; -} - -static -Bool mapSuffix ( Char* name, - Char* oldSuffix, Char* newSuffix ) -{ - if (!hasSuffix(name,oldSuffix)) return False; - name[strlen(name)-strlen(oldSuffix)] = 0; - strcat ( name, newSuffix ); - return True; -} - - -/*---------------------------------------------*/ -static -void compress ( Char *name ) -{ - FILE *inStr; - FILE *outStr; - Int32 n, i; - - deleteOutputOnInterrupt = False; - - if (name == NULL && srcMode != SM_I2O) - panic ( "compress: bad modes\n" ); - - switch (srcMode) { - case SM_I2O: - copyFileName ( inName, "(stdin)" ); - copyFileName ( outName, "(stdout)" ); - break; - case SM_F2F: - copyFileName ( inName, name ); - copyFileName ( outName, name ); - strcat ( outName, ".bz2" ); - break; - case SM_F2O: - copyFileName ( inName, name ); - copyFileName ( outName, "(stdout)" ); - break; - } - - if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) { - if (noisy) - fprintf ( stderr, "%s: There are no files matching `%s'.\n", - progName, inName ); - setExit(1); - return; - } - if ( srcMode != SM_I2O && !fileExists ( inName ) ) { - fprintf ( stderr, "%s: Can't open input file %s: %s.\n", - progName, inName, strerror(errno) ); - setExit(1); - return; - } - for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++) { - if (hasSuffix(inName, zSuffix[i])) { - if (noisy) - fprintf ( stderr, - "%s: Input file %s already has %s suffix.\n", - progName, inName, zSuffix[i] ); - setExit(1); - return; - } - } - if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) { - if (noisy) - fprintf ( stderr, "%s: Input file %s is not a normal file.\n", - progName, inName ); - setExit(1); - return; - } - if ( srcMode == SM_F2F && !forceOverwrite && fileExists ( outName ) ) { - fprintf ( stderr, "%s: Output file %s already exists.\n", - progName, outName ); - setExit(1); - return; - } - if ( srcMode == SM_F2F && !forceOverwrite && - (n=countHardLinks ( inName )) > 0) { - fprintf ( stderr, "%s: Input file %s has %d other link%s.\n", - progName, inName, n, n > 1 ? "s" : "" ); - setExit(1); - return; - } - - switch ( srcMode ) { - - case SM_I2O: - inStr = stdin; - outStr = stdout; - if ( isatty ( fileno ( stdout ) ) ) { - fprintf ( stderr, - "%s: I won't write compressed data to a terminal.\n", - progName ); - fprintf ( stderr, "%s: For help, type: `%s --help'.\n", - progName, progName ); - setExit(1); - return; - }; - break; - - case SM_F2O: - inStr = fopen ( inName, "rb" ); - outStr = stdout; - if ( isatty ( fileno ( stdout ) ) ) { - fprintf ( stderr, - "%s: I won't write compressed data to a terminal.\n", - progName ); - fprintf ( stderr, "%s: For help, type: `%s --help'.\n", - progName, progName ); - if ( inStr != NULL ) fclose ( inStr ); - setExit(1); - return; - }; - if ( inStr == NULL ) { - fprintf ( stderr, "%s: Can't open input file %s: %s.\n", - progName, inName, strerror(errno) ); - setExit(1); - return; - }; - break; - - case SM_F2F: - inStr = fopen ( inName, "rb" ); - outStr = fopen ( outName, "wb" ); - if ( outStr == NULL) { - fprintf ( stderr, "%s: Can't create output file %s: %s.\n", - progName, outName, strerror(errno) ); - if ( inStr != NULL ) fclose ( inStr ); - setExit(1); - return; - } - if ( inStr == NULL ) { - fprintf ( stderr, "%s: Can't open input file %s: %s.\n", - progName, inName, strerror(errno) ); - if ( outStr != NULL ) fclose ( outStr ); - setExit(1); - return; - }; - setInterimPermissions ( outName ); - break; - - default: - panic ( "compress: bad srcMode" ); - break; - } - - if (verbosity >= 1) { - fprintf ( stderr, " %s: ", inName ); - pad ( inName ); - fflush ( stderr ); - } - - /*--- Now the input and output handles are sane. Do the Biz. ---*/ - outputHandleJustInCase = outStr; - deleteOutputOnInterrupt = True; - compressStream ( inStr, outStr ); - outputHandleJustInCase = NULL; - - /*--- If there was an I/O error, we won't get here. ---*/ - if ( srcMode == SM_F2F ) { - copyDatePermissionsAndOwner ( inName, outName ); - deleteOutputOnInterrupt = False; - if ( !keepInputFiles ) { - IntNative retVal = remove ( inName ); - ERROR_IF_NOT_ZERO ( retVal ); - } - } - - deleteOutputOnInterrupt = False; -} - - -/*---------------------------------------------*/ -static -void uncompress ( Char *name ) -{ - FILE *inStr; - FILE *outStr; - Int32 n, i; - Bool magicNumberOK; - Bool cantGuess; - - deleteOutputOnInterrupt = False; - - if (name == NULL && srcMode != SM_I2O) - panic ( "uncompress: bad modes\n" ); - - cantGuess = False; - switch (srcMode) { - case SM_I2O: - copyFileName ( inName, "(stdin)" ); - copyFileName ( outName, "(stdout)" ); - break; - case SM_F2F: - copyFileName ( inName, name ); - copyFileName ( outName, name ); - for (i = 0; i < BZ_N_SUFFIX_PAIRS; i++) - if (mapSuffix(outName,zSuffix[i],unzSuffix[i])) - goto zzz; - cantGuess = True; - strcat ( outName, ".out" ); - break; - case SM_F2O: - copyFileName ( inName, name ); - copyFileName ( outName, "(stdout)" ); - break; - } - - zzz: - if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) { - if (noisy) - fprintf ( stderr, "%s: There are no files matching `%s'.\n", - progName, inName ); - setExit(1); - return; - } - if ( srcMode != SM_I2O && !fileExists ( inName ) ) { - fprintf ( stderr, "%s: Can't open input file %s: %s.\n", - progName, inName, strerror(errno) ); - setExit(1); - return; - } - if ( srcMode == SM_F2F && !forceOverwrite && notAStandardFile ( inName )) { - if (noisy) - fprintf ( stderr, "%s: Input file %s is not a normal file.\n", - progName, inName ); - setExit(1); - return; - } - if ( /* srcMode == SM_F2F implied && */ cantGuess ) { - if (noisy) - fprintf ( stderr, - "%s: Can't guess original name for %s -- using %s\n", - progName, inName, outName ); - /* just a warning, no return */ - } - if ( srcMode == SM_F2F && !forceOverwrite && fileExists ( outName ) ) { - fprintf ( stderr, "%s: Output file %s already exists.\n", - progName, outName ); - setExit(1); - return; - } - if ( srcMode == SM_F2F && !forceOverwrite && - (n=countHardLinks ( inName ) ) > 0) { - fprintf ( stderr, "%s: Input file %s has %d other link%s.\n", - progName, inName, n, n > 1 ? "s" : "" ); - setExit(1); - return; - } - - switch ( srcMode ) { - - case SM_I2O: - inStr = stdin; - outStr = stdout; - if ( isatty ( fileno ( stdin ) ) ) { - fprintf ( stderr, - "%s: I won't read compressed data from a terminal.\n", - progName ); - fprintf ( stderr, "%s: For help, type: `%s --help'.\n", - progName, progName ); - setExit(1); - return; - }; - break; - - case SM_F2O: - inStr = fopen ( inName, "rb" ); - outStr = stdout; - if ( inStr == NULL ) { - fprintf ( stderr, "%s: Can't open input file %s:%s.\n", - progName, inName, strerror(errno) ); - if ( inStr != NULL ) fclose ( inStr ); - setExit(1); - return; - }; - break; - - case SM_F2F: - inStr = fopen ( inName, "rb" ); - outStr = fopen ( outName, "wb" ); - if ( outStr == NULL) { - fprintf ( stderr, "%s: Can't create output file %s: %s.\n", - progName, outName, strerror(errno) ); - if ( inStr != NULL ) fclose ( inStr ); - setExit(1); - return; - } - if ( inStr == NULL ) { - fprintf ( stderr, "%s: Can't open input file %s: %s.\n", - progName, inName, strerror(errno) ); - if ( outStr != NULL ) fclose ( outStr ); - setExit(1); - return; - }; - setInterimPermissions ( outName ); - break; - - default: - panic ( "uncompress: bad srcMode" ); - break; - } - - if (verbosity >= 1) { - fprintf ( stderr, " %s: ", inName ); - pad ( inName ); - fflush ( stderr ); - } - - /*--- Now the input and output handles are sane. Do the Biz. ---*/ - outputHandleJustInCase = outStr; - deleteOutputOnInterrupt = True; - magicNumberOK = uncompressStream ( inStr, outStr ); - outputHandleJustInCase = NULL; - - /*--- If there was an I/O error, we won't get here. ---*/ - if ( magicNumberOK ) { - if ( srcMode == SM_F2F ) { - copyDatePermissionsAndOwner ( inName, outName ); - deleteOutputOnInterrupt = False; - if ( !keepInputFiles ) { - IntNative retVal = remove ( inName ); - ERROR_IF_NOT_ZERO ( retVal ); - } - } - } else { - unzFailsExist = True; - deleteOutputOnInterrupt = False; - if ( srcMode == SM_F2F ) { - IntNative retVal = remove ( outName ); - ERROR_IF_NOT_ZERO ( retVal ); - } - } - deleteOutputOnInterrupt = False; - - if ( magicNumberOK ) { - if (verbosity >= 1) - fprintf ( stderr, "done\n" ); - } else { - setExit(2); - if (verbosity >= 1) - fprintf ( stderr, "not a bzip2 file.\n" ); else - fprintf ( stderr, - "%s: %s is not a bzip2 file.\n", - progName, inName ); - } - -} - - -/*---------------------------------------------*/ -static -void testf ( Char *name ) -{ - FILE *inStr; - Bool allOK; - - deleteOutputOnInterrupt = False; - - if (name == NULL && srcMode != SM_I2O) - panic ( "testf: bad modes\n" ); - - copyFileName ( outName, "(none)" ); - switch (srcMode) { - case SM_I2O: copyFileName ( inName, "(stdin)" ); break; - case SM_F2F: copyFileName ( inName, name ); break; - case SM_F2O: copyFileName ( inName, name ); break; - } - - if ( srcMode != SM_I2O && containsDubiousChars ( inName ) ) { - if (noisy) - fprintf ( stderr, "%s: There are no files matching `%s'.\n", - progName, inName ); - setExit(1); - return; - } - if ( srcMode != SM_I2O && !fileExists ( inName ) ) { - fprintf ( stderr, "%s: Can't open input %s: %s.\n", - progName, inName, strerror(errno) ); - setExit(1); - return; - } - - switch ( srcMode ) { - - case SM_I2O: - if ( isatty ( fileno ( stdin ) ) ) { - fprintf ( stderr, - "%s: I won't read compressed data from a terminal.\n", - progName ); - fprintf ( stderr, "%s: For help, type: `%s --help'.\n", - progName, progName ); - setExit(1); - return; - }; - inStr = stdin; - break; - - case SM_F2O: case SM_F2F: - inStr = fopen ( inName, "rb" ); - if ( inStr == NULL ) { - fprintf ( stderr, "%s: Can't open input file %s:%s.\n", - progName, inName, strerror(errno) ); - setExit(1); - return; - }; - break; - - default: - panic ( "testf: bad srcMode" ); - break; - } - - if (verbosity >= 1) { - fprintf ( stderr, " %s: ", inName ); - pad ( inName ); - fflush ( stderr ); - } - - /*--- Now the input handle is sane. Do the Biz. ---*/ - allOK = testStream ( inStr ); - - if (allOK && verbosity >= 1) fprintf ( stderr, "ok\n" ); - if (!allOK) testFailsExist = True; -} - - -/*---------------------------------------------*/ -static -void license ( void ) -{ - fprintf ( stderr, - - "bzip2, a block-sorting file compressor. " - "Version %s.\n" - " \n" - " Copyright (C) 1996-2000 by Julian Seward.\n" - " \n" - " This program is free software; you can redistribute it and/or modify\n" - " it under the terms set out in the LICENSE file, which is included\n" - " in the bzip2-1.0 source distribution.\n" - " \n" - " This program is distributed in the hope that it will be useful,\n" - " but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - " LICENSE file for more details.\n" - " \n", - BZ2_bzlibVersion() - ); -} - - -/*---------------------------------------------*/ -static -void usage ( Char *fullProgName ) -{ - fprintf ( - stderr, - "bzip2, a block-sorting file compressor. " - "Version %s.\n" - "\n usage: %s [flags and input files in any order]\n" - "\n" - " -h --help print this message\n" - " -d --decompress force decompression\n" - " -z --compress force compression\n" - " -k --keep keep (don't delete) input files\n" - " -f --force overwrite existing output files\n" - " -t --test test compressed file integrity\n" - " -c --stdout output to standard out\n" - " -q --quiet suppress noncritical error messages\n" - " -v --verbose be verbose (a 2nd -v gives more)\n" - " -L --license display software version & license\n" - " -V --version display software version & license\n" - " -s --small use less memory (at most 2500k)\n" - " -1 .. -9 set block size to 100k .. 900k\n" - "\n" - " If invoked as `bzip2', default action is to compress.\n" - " as `bunzip2', default action is to decompress.\n" - " as `bzcat', default action is to decompress to stdout.\n" - "\n" - " If no file names are given, bzip2 compresses or decompresses\n" - " from standard input to standard output. You can combine\n" - " short flags, so `-v -4' means the same as -v4 or -4v, &c.\n" -#if BZ_UNIX - "\n" -#endif - , - - BZ2_bzlibVersion(), - fullProgName - ); -} - - -/*---------------------------------------------*/ -static -void redundant ( Char* flag ) -{ - fprintf ( - stderr, - "%s: %s is redundant in versions 0.9.5 and above\n", - progName, flag ); -} - - -/*---------------------------------------------*/ -/*-- - All the garbage from here to main() is purely to - implement a linked list of command-line arguments, - into which main() copies argv[1 .. argc-1]. - - The purpose of this exercise is to facilitate - the expansion of wildcard characters * and ? in - filenames for OSs which don't know how to do it - themselves, like MSDOS, Windows 95 and NT. - - The actual Dirty Work is done by the platform- - specific macro APPEND_FILESPEC. ---*/ - -typedef - struct zzzz { - Char *name; - struct zzzz *link; - } - Cell; - - -/*---------------------------------------------*/ -static -void *myMalloc ( Int32 n ) -{ - void* p; - - p = malloc ( (size_t)n ); - if (p == NULL) outOfMemory (); - return p; -} - - -/*---------------------------------------------*/ -static -Cell *mkCell ( void ) -{ - Cell *c; - - c = (Cell*) myMalloc ( sizeof ( Cell ) ); - c->name = NULL; - c->link = NULL; - return c; -} - - -/*---------------------------------------------*/ -static -Cell *snocString ( Cell *root, Char *name ) -{ - if (root == NULL) { - Cell *tmp = mkCell(); - tmp->name = (Char*) myMalloc ( 5 + strlen(name) ); - strcpy ( tmp->name, name ); - return tmp; - } else { - Cell *tmp = root; - while (tmp->link != NULL) tmp = tmp->link; - tmp->link = snocString ( tmp->link, name ); - return root; - } -} - - -/*---------------------------------------------*/ -static -void addFlagsFromEnvVar ( Cell** argList, Char* varName ) -{ - Int32 i, j, k; - Char *envbase, *p; - - envbase = getenv(varName); - if (envbase != NULL) { - p = envbase; - i = 0; - while (True) { - if (p[i] == 0) break; - p += i; - i = 0; - while (isspace((Int32)(p[0]))) p++; - while (p[i] != 0 && !isspace((Int32)(p[i]))) i++; - if (i > 0) { - k = i; if (k > FILE_NAME_LEN-10) k = FILE_NAME_LEN-10; - for (j = 0; j < k; j++) tmpName[j] = p[j]; - tmpName[k] = 0; - APPEND_FLAG(*argList, tmpName); - } - } - } -} - - -/*---------------------------------------------*/ -#define ISFLAG(s) (strcmp(aa->name, (s))==0) - -IntNative main ( IntNative argc, Char *argv[] ) -{ - Int32 i, j; - Char *tmp; - Cell *argList; - Cell *aa; - Bool decode; - - /*-- Be really really really paranoid :-) --*/ - if (sizeof(Int32) != 4 || sizeof(UInt32) != 4 || - sizeof(Int16) != 2 || sizeof(UInt16) != 2 || - sizeof(Char) != 1 || sizeof(UChar) != 1) - configError(); - - /*-- Initialise --*/ - outputHandleJustInCase = NULL; - smallMode = False; - keepInputFiles = False; - forceOverwrite = False; - noisy = True; - verbosity = 0; - blockSize100k = 9; - testFailsExist = False; - unzFailsExist = False; - numFileNames = 0; - numFilesProcessed = 0; - workFactor = 30; - deleteOutputOnInterrupt = False; - exitValue = 0; - i = j = 0; /* avoid bogus warning from egcs-1.1.X */ - - /*-- Set up signal handlers for mem access errors --*/ - signal (SIGSEGV, mySIGSEGVorSIGBUScatcher); -#if BZ_UNIX -#ifndef __DJGPP__ - signal (SIGBUS, mySIGSEGVorSIGBUScatcher); -#endif -#endif - - copyFileName ( inName, "(none)" ); - copyFileName ( outName, "(none)" ); - - copyFileName ( progNameReally, argv[0] ); - progName = &progNameReally[0]; - for (tmp = &progNameReally[0]; *tmp != '\0'; tmp++) - if (*tmp == PATH_SEP) progName = tmp + 1; - - - /*-- Copy flags from env var BZIP2, and - expand filename wildcards in arg list. - --*/ - argList = NULL; - addFlagsFromEnvVar ( &argList, "BZIP2" ); - addFlagsFromEnvVar ( &argList, "BZIP" ); - for (i = 1; i <= argc-1; i++) - APPEND_FILESPEC(argList, argv[i]); - - - /*-- Find the length of the longest filename --*/ - longestFileName = 7; - numFileNames = 0; - decode = True; - for (aa = argList; aa != NULL; aa = aa->link) { - if (ISFLAG("--")) { decode = False; continue; } - if (aa->name[0] == '-' && decode) continue; - numFileNames++; - if (longestFileName < (Int32)strlen(aa->name) ) - longestFileName = (Int32)strlen(aa->name); - } - - - /*-- Determine source modes; flag handling may change this too. --*/ - if (numFileNames == 0) - srcMode = SM_I2O; else srcMode = SM_F2F; - - - /*-- Determine what to do (compress/uncompress/test/cat). --*/ - /*-- Note that subsequent flag handling may change this. --*/ - opMode = OM_Z; - - if ( (strstr ( progName, "unzip" ) != 0) || - (strstr ( progName, "UNZIP" ) != 0) ) - opMode = OM_UNZ; - - if ( (strstr ( progName, "z2cat" ) != 0) || - (strstr ( progName, "Z2CAT" ) != 0) || - (strstr ( progName, "zcat" ) != 0) || - (strstr ( progName, "ZCAT" ) != 0) ) { - opMode = OM_UNZ; - srcMode = (numFileNames == 0) ? SM_I2O : SM_F2O; - } - - - /*-- Look at the flags. --*/ - for (aa = argList; aa != NULL; aa = aa->link) { - if (ISFLAG("--")) break; - if (aa->name[0] == '-' && aa->name[1] != '-') { - for (j = 1; aa->name[j] != '\0'; j++) { - switch (aa->name[j]) { - case 'c': srcMode = SM_F2O; break; - case 'd': opMode = OM_UNZ; break; - case 'z': opMode = OM_Z; break; - case 'f': forceOverwrite = True; break; - case 't': opMode = OM_TEST; break; - case 'k': keepInputFiles = True; break; - case 's': smallMode = True; break; - case 'q': noisy = False; break; - case '1': blockSize100k = 1; break; - case '2': blockSize100k = 2; break; - case '3': blockSize100k = 3; break; - case '4': blockSize100k = 4; break; - case '5': blockSize100k = 5; break; - case '6': blockSize100k = 6; break; - case '7': blockSize100k = 7; break; - case '8': blockSize100k = 8; break; - case '9': blockSize100k = 9; break; - case 'V': - case 'L': license(); break; - case 'v': verbosity++; break; - case 'h': usage ( progName ); - exit ( 0 ); - break; - default: fprintf ( stderr, "%s: Bad flag `%s'\n", - progName, aa->name ); - usage ( progName ); - exit ( 1 ); - break; - } - } - } - } - - /*-- And again ... --*/ - for (aa = argList; aa != NULL; aa = aa->link) { - if (ISFLAG("--")) break; - if (ISFLAG("--stdout")) srcMode = SM_F2O; else - if (ISFLAG("--decompress")) opMode = OM_UNZ; else - if (ISFLAG("--compress")) opMode = OM_Z; else - if (ISFLAG("--force")) forceOverwrite = True; else - if (ISFLAG("--test")) opMode = OM_TEST; else - if (ISFLAG("--keep")) keepInputFiles = True; else - if (ISFLAG("--small")) smallMode = True; else - if (ISFLAG("--quiet")) noisy = False; else - if (ISFLAG("--version")) license(); else - if (ISFLAG("--license")) license(); else - if (ISFLAG("--exponential")) workFactor = 1; else - if (ISFLAG("--repetitive-best")) redundant(aa->name); else - if (ISFLAG("--repetitive-fast")) redundant(aa->name); else - if (ISFLAG("--verbose")) verbosity++; else - if (ISFLAG("--help")) { usage ( progName ); exit ( 0 ); } - else - if (strncmp ( aa->name, "--", 2) == 0) { - fprintf ( stderr, "%s: Bad flag `%s'\n", progName, aa->name ); - usage ( progName ); - exit ( 1 ); - } - } - - if (verbosity > 4) verbosity = 4; - if (opMode == OM_Z && smallMode && blockSize100k > 2) - blockSize100k = 2; - - if (opMode == OM_TEST && srcMode == SM_F2O) { - fprintf ( stderr, "%s: -c and -t cannot be used together.\n", - progName ); - exit ( 1 ); - } - - if (srcMode == SM_F2O && numFileNames == 0) - srcMode = SM_I2O; - - if (opMode != OM_Z) blockSize100k = 0; - - if (srcMode == SM_F2F) { - signal (SIGINT, mySignalCatcher); - signal (SIGTERM, mySignalCatcher); -# if BZ_UNIX - signal (SIGHUP, mySignalCatcher); -# endif - } - - if (opMode == OM_Z) { - if (srcMode == SM_I2O) { - compress ( NULL ); - } else { - decode = True; - for (aa = argList; aa != NULL; aa = aa->link) { - if (ISFLAG("--")) { decode = False; continue; } - if (aa->name[0] == '-' && decode) continue; - numFilesProcessed++; - compress ( aa->name ); - } - } - } - else - - if (opMode == OM_UNZ) { - unzFailsExist = False; - if (srcMode == SM_I2O) { - uncompress ( NULL ); - } else { - decode = True; - for (aa = argList; aa != NULL; aa = aa->link) { - if (ISFLAG("--")) { decode = False; continue; } - if (aa->name[0] == '-' && decode) continue; - numFilesProcessed++; - uncompress ( aa->name ); - } - } - if (unzFailsExist) { - setExit(2); - exit(exitValue); - } - } - - else { - testFailsExist = False; - if (srcMode == SM_I2O) { - testf ( NULL ); - } else { - decode = True; - for (aa = argList; aa != NULL; aa = aa->link) { - if (ISFLAG("--")) { decode = False; continue; } - if (aa->name[0] == '-' && decode) continue; - numFilesProcessed++; - testf ( aa->name ); - } - } - if (testFailsExist && noisy) { - fprintf ( stderr, - "\n" - "You can use the `bzip2recover' program to attempt to recover\n" - "data from undamaged sections of corrupted files.\n\n" - ); - setExit(2); - exit(exitValue); - } - } - - /* Free the argument list memory to mollify leak detectors - (eg) Purify, Checker. Serves no other useful purpose. - */ - aa = argList; - while (aa != NULL) { - Cell* aa2 = aa->link; - if (aa->name != NULL) free(aa->name); - free(aa); - aa = aa2; - } - - return exitValue; -} - - -/*-----------------------------------------------------------*/ -/*--- end bzip2.c ---*/ -/*-----------------------------------------------------------*/ diff --git a/winsup/bz2lib/bzip2.txt b/winsup/bz2lib/bzip2.txt deleted file mode 100644 index 4f1ae8620..000000000 --- a/winsup/bz2lib/bzip2.txt +++ /dev/null @@ -1,376 +0,0 @@ - - -NAME - bzip2, bunzip2 - a block-sorting file compressor, v1.0 - bzcat - decompresses files to stdout - bzip2recover - recovers data from damaged bzip2 files - - -SYNOPSIS - bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ... ] - bunzip2 [ -fkvsVL ] [ filenames ... ] - bzcat [ -s ] [ filenames ... ] - bzip2recover filename - - -DESCRIPTION - bzip2 compresses files using the Burrows-Wheeler block - sorting text compression algorithm, and Huffman coding. - Compression is generally considerably better than that - achieved by more conventional LZ77/LZ78-based compressors, - and approaches the performance of the PPM family of sta- - tistical compressors. - - The command-line options are deliberately very similar to - those of GNU gzip, but they are not identical. - - bzip2 expects a list of file names to accompany the com- - mand-line flags. Each file is replaced by a compressed - version of itself, with the name "original_name.bz2". - Each compressed file has the same modification date, per- - missions, and, when possible, ownership as the correspond- - ing original, so that these properties can be correctly - restored at decompression time. File name handling is - naive in the sense that there is no mechanism for preserv- - ing original file names, permissions, ownerships or dates - in filesystems which lack these concepts, or have serious - file name length restrictions, such as MS-DOS. - - bzip2 and bunzip2 will by default not overwrite existing - files. If you want this to happen, specify the -f flag. - - If no file names are specified, bzip2 compresses from - standard input to standard output. In this case, bzip2 - will decline to write compressed output to a terminal, as - this would be entirely incomprehensible and therefore - pointless. - - bunzip2 (or bzip2 -d) decompresses all specified files. - Files which were not created by bzip2 will be detected and - ignored, and a warning issued. bzip2 attempts to guess - the filename for the decompressed file from that of the - compressed file as follows: - - filename.bz2 becomes filename - filename.bz becomes filename - filename.tbz2 becomes filename.tar - filename.tbz becomes filename.tar - anyothername becomes anyothername.out - - If the file does not end in one of the recognised endings, - .bz2, .bz, .tbz2 or .tbz, bzip2 complains that it cannot - guess the name of the original file, and uses the original - name with .out appended. - - As with compression, supplying no filenames causes decom- - pression from standard input to standard output. - - bunzip2 will correctly decompress a file which is the con- - catenation of two or more compressed files. The result is - the concatenation of the corresponding uncompressed files. - Integrity testing (-t) of concatenated compressed files is - also supported. - - You can also compress or decompress files to the standard - output by giving the -c flag. Multiple files may be com- - pressed and decompressed like this. The resulting outputs - are fed sequentially to stdout. Compression of multiple - files in this manner generates a stream containing multi- - ple compressed file representations. Such a stream can be - decompressed correctly only by bzip2 version 0.9.0 or - later. Earlier versions of bzip2 will stop after decom- - pressing the first file in the stream. - - bzcat (or bzip2 -dc) decompresses all specified files to - the standard output. - - bzip2 will read arguments from the environment variables - BZIP2 and BZIP, in that order, and will process them - before any arguments read from the command line. This - gives a convenient way to supply default arguments. - - Compression is always performed, even if the compressed - file is slightly larger than the original. Files of less - than about one hundred bytes tend to get larger, since the - compression mechanism has a constant overhead in the - region of 50 bytes. Random data (including the output of - most file compressors) is coded at about 8.05 bits per - byte, giving an expansion of around 0.5%. - - As a self-check for your protection, bzip2 uses 32-bit - CRCs to make sure that the decompressed version of a file - is identical to the original. This guards against corrup- - tion of the compressed data, and against undetected bugs - in bzip2 (hopefully very unlikely). The chances of data - corruption going undetected is microscopic, about one - chance in four billion for each file processed. Be aware, - though, that the check occurs upon decompression, so it - can only tell you that something is wrong. It can't help - you recover the original uncompressed data. You can use - bzip2recover to try to recover data from damaged files. - - Return values: 0 for a normal exit, 1 for environmental - problems (file not found, invalid flags, I/O errors, &c), - 2 to indicate a corrupt compressed file, 3 for an internal - consistency error (eg, bug) which caused bzip2 to panic. - - -OPTIONS - -c --stdout - Compress or decompress to standard output. - - -d --decompress - Force decompression. bzip2, bunzip2 and bzcat are - really the same program, and the decision about - what actions to take is done on the basis of which - name is used. This flag overrides that mechanism, - and forces bzip2 to decompress. - - -z --compress - The complement to -d: forces compression, regard- - less of the invokation name. - - -t --test - Check integrity of the specified file(s), but don't - decompress them. This really performs a trial - decompression and throws away the result. - - -f --force - Force overwrite of output files. Normally, bzip2 - will not overwrite existing output files. Also - forces bzip2 to break hard links to files, which it - otherwise wouldn't do. - - -k --keep - Keep (don't delete) input files during compression - or decompression. - - -s --small - Reduce memory usage, for compression, decompression - and testing. Files are decompressed and tested - using a modified algorithm which only requires 2.5 - bytes per block byte. This means any file can be - decompressed in 2300k of memory, albeit at about - half the normal speed. - - During compression, -s selects a block size of - 200k, which limits memory use to around the same - figure, at the expense of your compression ratio. - In short, if your machine is low on memory (8 - megabytes or less), use -s for everything. See - MEMORY MANAGEMENT below. - - -q --quiet - Suppress non-essential warning messages. Messages - pertaining to I/O errors and other critical events - will not be suppressed. - - -v --verbose - Verbose mode -- show the compression ratio for each - file processed. Further -v's increase the ver- - bosity level, spewing out lots of information which - is primarily of interest for diagnostic purposes. - - -L --license -V --version - Display the software version, license terms and - conditions. - - -1 to -9 - Set the block size to 100 k, 200 k .. 900 k when - compressing. Has no effect when decompressing. - See MEMORY MANAGEMENT below. - - -- Treats all subsequent arguments as file names, even - if they start with a dash. This is so you can han- - dle files with names beginning with a dash, for - example: bzip2 -- -myfilename. - - --repetitive-fast --repetitive-best - These flags are redundant in versions 0.9.5 and - above. They provided some coarse control over the - behaviour of the sorting algorithm in earlier ver- - sions, which was sometimes useful. 0.9.5 and above - have an improved algorithm which renders these - flags irrelevant. - - -MEMORY MANAGEMENT - bzip2 compresses large files in blocks. The block size - affects both the compression ratio achieved, and the - amount of memory needed for compression and decompression. - The flags -1 through -9 specify the block size to be - 100,000 bytes through 900,000 bytes (the default) respec- - tively. At decompression time, the block size used for - compression is read from the header of the compressed - file, and bunzip2 then allocates itself just enough memory - to decompress the file. Since block sizes are stored in - compressed files, it follows that the flags -1 to -9 are - irrelevant to and so ignored during decompression. - - Compression and decompression requirements, in bytes, can - be estimated as: - - Compression: 400k + ( 8 x block size ) - - Decompression: 100k + ( 4 x block size ), or - 100k + ( 2.5 x block size ) - - Larger block sizes give rapidly diminishing marginal - returns. Most of the compression comes from the first two - or three hundred k of block size, a fact worth bearing in - mind when using bzip2 on small machines. It is also - important to appreciate that the decompression memory - requirement is set at compression time by the choice of - block size. - - For files compressed with the default 900k block size, - bunzip2 will require about 3700 kbytes to decompress. To - support decompression of any file on a 4 megabyte machine, - bunzip2 has an option to decompress using approximately - half this amount of memory, about 2300 kbytes. Decompres- - sion speed is also halved, so you should use this option - only where necessary. The relevant flag is -s. - - In general, try and use the largest block size memory con- - straints allow, since that maximises the compression - achieved. Compression and decompression speed are virtu- - ally unaffected by block size. - - Another significant point applies to files which fit in a - single block -- that means most files you'd encounter - using a large block size. The amount of real memory - touched is proportional to the size of the file, since the - file is smaller than a block. For example, compressing a - file 20,000 bytes long with the flag -9 will cause the - compressor to allocate around 7600k of memory, but only - touch 400k + 20000 * 8 = 560 kbytes of it. Similarly, the - decompressor will allocate 3700k but only touch 100k + - 20000 * 4 = 180 kbytes. - - Here is a table which summarises the maximum memory usage - for different block sizes. Also recorded is the total - compressed size for 14 files of the Calgary Text Compres- - sion Corpus totalling 3,141,622 bytes. This column gives - some feel for how compression varies with block size. - These figures tend to understate the advantage of larger - block sizes for larger files, since the Corpus is domi- - nated by smaller files. - - Compress Decompress Decompress Corpus - Flag usage usage -s usage Size - - -1 1200k 500k 350k 914704 - -2 2000k 900k 600k 877703 - -3 2800k 1300k 850k 860338 - -4 3600k 1700k 1100k 846899 - -5 4400k 2100k 1350k 845160 - -6 5200k 2500k 1600k 838626 - -7 6100k 2900k 1850k 834096 - -8 6800k 3300k 2100k 828642 - -9 7600k 3700k 2350k 828642 - - -RECOVERING DATA FROM DAMAGED FILES - bzip2 compresses files in blocks, usually 900kbytes long. - Each block is handled independently. If a media or trans- - mission error causes a multi-block .bz2 file to become - damaged, it may be possible to recover data from the - undamaged blocks in the file. - - The compressed representation of each block is delimited - by a 48-bit pattern, which makes it possible to find the - block boundaries with reasonable certainty. Each block - also carries its own 32-bit CRC, so damaged blocks can be - distinguished from undamaged ones. - - bzip2recover is a simple program whose purpose is to - search for blocks in .bz2 files, and write each block out - into its own .bz2 file. You can then use bzip2 -t to test - the integrity of the resulting files, and decompress those - which are undamaged. - - bzip2recover takes a single argument, the name of the dam- - aged file, and writes a number of files "rec0001file.bz2", - "rec0002file.bz2", etc, containing the extracted blocks. - The output filenames are designed so that the use of - wildcards in subsequent processing -- for example, "bzip2 - -dc rec*file.bz2 > recovered_data" -- lists the files in - the correct order. - - bzip2recover should be of most use dealing with large .bz2 - files, as these will contain many blocks. It is clearly - futile to use it on damaged single-block files, since a - damaged block cannot be recovered. If you wish to min- - imise any potential data loss through media or transmis- - sion errors, you might consider compressing with a smaller - block size. - - -PERFORMANCE NOTES - The sorting phase of compression gathers together similar - strings in the file. Because of this, files containing - very long runs of repeated symbols, like "aabaabaabaab - ..." (repeated several hundred times) may compress more - slowly than normal. Versions 0.9.5 and above fare much - better than previous versions in this respect. The ratio - between worst-case and average-case compression time is in - the region of 10:1. For previous versions, this figure - was more like 100:1. You can use the -vvvv option to mon- - itor progress in great detail, if you want. - - Decompression speed is unaffected by these phenomena. - - bzip2 usually allocates several megabytes of memory to - operate in, and then charges all over it in a fairly ran- - dom fashion. This means that performance, both for com- - pressing and decompressing, is largely determined by the - speed at which your machine can service cache misses. - Because of this, small changes to the code to reduce the - miss rate have been observed to give disproportionately - large performance improvements. I imagine bzip2 will per- - form best on machines with very large caches. - - -CAVEATS - I/O error messages are not as helpful as they could be. - bzip2 tries hard to detect I/O errors and exit cleanly, - but the details of what the problem is sometimes seem - rather misleading. - - This manual page pertains to version 1.0 of bzip2. Com- - pressed data created by this version is entirely forwards - and backwards compatible with the previous public - releases, versions 0.1pl2, 0.9.0 and 0.9.5, but with the - following exception: 0.9.0 and above can correctly decom- - press multiple concatenated compressed files. 0.1pl2 can- - not do this; it will stop after decompressing just the - first file in the stream. - - bzip2recover uses 32-bit integers to represent bit posi- - tions in compressed files, so it cannot handle compressed - files more than 512 megabytes long. This could easily be - fixed. - - -AUTHOR - Julian Seward, jseward@acm.org. - - http://sourceware.cygnus.com/bzip2 - http://www.muraroa.demon.co.uk - - The ideas embodied in bzip2 are due to (at least) the fol- - lowing people: Michael Burrows and David Wheeler (for the - block sorting transformation), David Wheeler (again, for - the Huffman coder), Peter Fenwick (for the structured cod- - ing model in the original bzip, and many refinements), and - Alistair Moffat, Radford Neal and Ian Witten (for the - arithmetic coder in the original bzip). I am much - indebted for their help, support and advice. See the man- - ual in the source distribution for pointers to sources of - documentation. Christian von Roques encouraged me to look - for faster sorting algorithms, so as to speed up compres- - sion. Bela Lubkin encouraged me to improve the worst-case - compression performance. Many people sent patches, helped - with portability problems, lent machines, gave advice and - were generally helpful. - diff --git a/winsup/bz2lib/bzip2recover.c b/winsup/bz2lib/bzip2recover.c deleted file mode 100644 index ba3d17563..000000000 --- a/winsup/bz2lib/bzip2recover.c +++ /dev/null @@ -1,435 +0,0 @@ - -/*-----------------------------------------------------------*/ -/*--- Block recoverer program for bzip2 ---*/ -/*--- bzip2recover.c ---*/ -/*-----------------------------------------------------------*/ - -/*-- - This program is bzip2recover, a program to attempt data - salvage from damaged files created by the accompanying - bzip2-1.0 program. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 ---*/ - -/*-- - This program is a complete hack and should be rewritten - properly. It isn't very complicated. ---*/ - -#include -#include -#include -#include - -typedef unsigned int UInt32; -typedef int Int32; -typedef unsigned char UChar; -typedef char Char; -typedef unsigned char Bool; -#define True ((Bool)1) -#define False ((Bool)0) - - -Char inFileName[2000]; -Char outFileName[2000]; -Char progName[2000]; - -UInt32 bytesOut = 0; -UInt32 bytesIn = 0; - - -/*---------------------------------------------------*/ -/*--- I/O errors ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------*/ -void readError ( void ) -{ - fprintf ( stderr, - "%s: I/O error reading `%s', possible reason follows.\n", - progName, inFileName ); - perror ( progName ); - fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n", - progName ); - exit ( 1 ); -} - - -/*---------------------------------------------*/ -void writeError ( void ) -{ - fprintf ( stderr, - "%s: I/O error reading `%s', possible reason follows.\n", - progName, inFileName ); - perror ( progName ); - fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n", - progName ); - exit ( 1 ); -} - - -/*---------------------------------------------*/ -void mallocFail ( Int32 n ) -{ - fprintf ( stderr, - "%s: malloc failed on request for %d bytes.\n", - progName, n ); - fprintf ( stderr, "%s: warning: output file(s) may be incomplete.\n", - progName ); - exit ( 1 ); -} - - -/*---------------------------------------------------*/ -/*--- Bit stream I/O ---*/ -/*---------------------------------------------------*/ - -typedef - struct { - FILE* handle; - Int32 buffer; - Int32 buffLive; - Char mode; - } - BitStream; - - -/*---------------------------------------------*/ -BitStream* bsOpenReadStream ( FILE* stream ) -{ - BitStream *bs = malloc ( sizeof(BitStream) ); - if (bs == NULL) mallocFail ( sizeof(BitStream) ); - bs->handle = stream; - bs->buffer = 0; - bs->buffLive = 0; - bs->mode = 'r'; - return bs; -} - - -/*---------------------------------------------*/ -BitStream* bsOpenWriteStream ( FILE* stream ) -{ - BitStream *bs = malloc ( sizeof(BitStream) ); - if (bs == NULL) mallocFail ( sizeof(BitStream) ); - bs->handle = stream; - bs->buffer = 0; - bs->buffLive = 0; - bs->mode = 'w'; - return bs; -} - - -/*---------------------------------------------*/ -void bsPutBit ( BitStream* bs, Int32 bit ) -{ - if (bs->buffLive == 8) { - Int32 retVal = putc ( (UChar) bs->buffer, bs->handle ); - if (retVal == EOF) writeError(); - bytesOut++; - bs->buffLive = 1; - bs->buffer = bit & 0x1; - } else { - bs->buffer = ( (bs->buffer << 1) | (bit & 0x1) ); - bs->buffLive++; - }; -} - - -/*---------------------------------------------*/ -/*-- - Returns 0 or 1, or 2 to indicate EOF. ---*/ -Int32 bsGetBit ( BitStream* bs ) -{ - if (bs->buffLive > 0) { - bs->buffLive --; - return ( ((bs->buffer) >> (bs->buffLive)) & 0x1 ); - } else { - Int32 retVal = getc ( bs->handle ); - if ( retVal == EOF ) { - if (errno != 0) readError(); - return 2; - } - bs->buffLive = 7; - bs->buffer = retVal; - return ( ((bs->buffer) >> 7) & 0x1 ); - } -} - - -/*---------------------------------------------*/ -void bsClose ( BitStream* bs ) -{ - Int32 retVal; - - if ( bs->mode == 'w' ) { - while ( bs->buffLive < 8 ) { - bs->buffLive++; - bs->buffer <<= 1; - }; - retVal = putc ( (UChar) (bs->buffer), bs->handle ); - if (retVal == EOF) writeError(); - bytesOut++; - retVal = fflush ( bs->handle ); - if (retVal == EOF) writeError(); - } - retVal = fclose ( bs->handle ); - if (retVal == EOF) { - if (bs->mode == 'w') writeError(); else readError(); - } - free ( bs ); -} - - -/*---------------------------------------------*/ -void bsPutUChar ( BitStream* bs, UChar c ) -{ - Int32 i; - for (i = 7; i >= 0; i--) - bsPutBit ( bs, (((UInt32) c) >> i) & 0x1 ); -} - - -/*---------------------------------------------*/ -void bsPutUInt32 ( BitStream* bs, UInt32 c ) -{ - Int32 i; - - for (i = 31; i >= 0; i--) - bsPutBit ( bs, (c >> i) & 0x1 ); -} - - -/*---------------------------------------------*/ -Bool endsInBz2 ( Char* name ) -{ - Int32 n = strlen ( name ); - if (n <= 4) return False; - return - (name[n-4] == '.' && - name[n-3] == 'b' && - name[n-2] == 'z' && - name[n-1] == '2'); -} - - -/*---------------------------------------------------*/ -/*--- ---*/ -/*---------------------------------------------------*/ - -#define BLOCK_HEADER_HI 0x00003141UL -#define BLOCK_HEADER_LO 0x59265359UL - -#define BLOCK_ENDMARK_HI 0x00001772UL -#define BLOCK_ENDMARK_LO 0x45385090UL - - -UInt32 bStart[20000]; -UInt32 bEnd[20000]; -UInt32 rbStart[20000]; -UInt32 rbEnd[20000]; - -Int32 main ( Int32 argc, Char** argv ) -{ - FILE* inFile; - FILE* outFile; - BitStream* bsIn, *bsWr; - Int32 currBlock, b, wrBlock; - UInt32 bitsRead; - Int32 rbCtr; - - - UInt32 buffHi, buffLo, blockCRC; - Char* p; - - strcpy ( progName, argv[0] ); - inFileName[0] = outFileName[0] = 0; - - fprintf ( stderr, "bzip2recover 1.0: extracts blocks from damaged .bz2 files.\n" ); - - if (argc != 2) { - fprintf ( stderr, "%s: usage is `%s damaged_file_name'.\n", - progName, progName ); - exit(1); - } - - strcpy ( inFileName, argv[1] ); - - inFile = fopen ( inFileName, "rb" ); - if (inFile == NULL) { - fprintf ( stderr, "%s: can't read `%s'\n", progName, inFileName ); - exit(1); - } - - bsIn = bsOpenReadStream ( inFile ); - fprintf ( stderr, "%s: searching for block boundaries ...\n", progName ); - - bitsRead = 0; - buffHi = buffLo = 0; - currBlock = 0; - bStart[currBlock] = 0; - - rbCtr = 0; - - while (True) { - b = bsGetBit ( bsIn ); - bitsRead++; - if (b == 2) { - if (bitsRead >= bStart[currBlock] && - (bitsRead - bStart[currBlock]) >= 40) { - bEnd[currBlock] = bitsRead-1; - if (currBlock > 0) - fprintf ( stderr, " block %d runs from %d to %d (incomplete)\n", - currBlock, bStart[currBlock], bEnd[currBlock] ); - } else - currBlock--; - break; - } - buffHi = (buffHi << 1) | (buffLo >> 31); - buffLo = (buffLo << 1) | (b & 1); - if ( ( (buffHi & 0x0000ffff) == BLOCK_HEADER_HI - && buffLo == BLOCK_HEADER_LO) - || - ( (buffHi & 0x0000ffff) == BLOCK_ENDMARK_HI - && buffLo == BLOCK_ENDMARK_LO) - ) { - if (bitsRead > 49) - bEnd[currBlock] = bitsRead-49; else - bEnd[currBlock] = 0; - if (currBlock > 0 && - (bEnd[currBlock] - bStart[currBlock]) >= 130) { - fprintf ( stderr, " block %d runs from %d to %d\n", - rbCtr+1, bStart[currBlock], bEnd[currBlock] ); - rbStart[rbCtr] = bStart[currBlock]; - rbEnd[rbCtr] = bEnd[currBlock]; - rbCtr++; - } - currBlock++; - - bStart[currBlock] = bitsRead; - } - } - - bsClose ( bsIn ); - - /*-- identified blocks run from 1 to rbCtr inclusive. --*/ - - if (rbCtr < 1) { - fprintf ( stderr, - "%s: sorry, I couldn't find any block boundaries.\n", - progName ); - exit(1); - }; - - fprintf ( stderr, "%s: splitting into blocks\n", progName ); - - inFile = fopen ( inFileName, "rb" ); - if (inFile == NULL) { - fprintf ( stderr, "%s: can't open `%s'\n", progName, inFileName ); - exit(1); - } - bsIn = bsOpenReadStream ( inFile ); - - /*-- placate gcc's dataflow analyser --*/ - blockCRC = 0; bsWr = 0; - - bitsRead = 0; - outFile = NULL; - wrBlock = 0; - while (True) { - b = bsGetBit(bsIn); - if (b == 2) break; - buffHi = (buffHi << 1) | (buffLo >> 31); - buffLo = (buffLo << 1) | (b & 1); - if (bitsRead == 47+rbStart[wrBlock]) - blockCRC = (buffHi << 16) | (buffLo >> 16); - - if (outFile != NULL && bitsRead >= rbStart[wrBlock] - && bitsRead <= rbEnd[wrBlock]) { - bsPutBit ( bsWr, b ); - } - - bitsRead++; - - if (bitsRead == rbEnd[wrBlock]+1) { - if (outFile != NULL) { - bsPutUChar ( bsWr, 0x17 ); bsPutUChar ( bsWr, 0x72 ); - bsPutUChar ( bsWr, 0x45 ); bsPutUChar ( bsWr, 0x38 ); - bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 ); - bsPutUInt32 ( bsWr, blockCRC ); - bsClose ( bsWr ); - } - if (wrBlock >= rbCtr) break; - wrBlock++; - } else - if (bitsRead == rbStart[wrBlock]) { - outFileName[0] = 0; - sprintf ( outFileName, "rec%4d", wrBlock+1 ); - for (p = outFileName; *p != 0; p++) if (*p == ' ') *p = '0'; - strcat ( outFileName, inFileName ); - if ( !endsInBz2(outFileName)) strcat ( outFileName, ".bz2" ); - - fprintf ( stderr, " writing block %d to `%s' ...\n", - wrBlock+1, outFileName ); - - outFile = fopen ( outFileName, "wb" ); - if (outFile == NULL) { - fprintf ( stderr, "%s: can't write `%s'\n", - progName, outFileName ); - exit(1); - } - bsWr = bsOpenWriteStream ( outFile ); - bsPutUChar ( bsWr, 'B' ); bsPutUChar ( bsWr, 'Z' ); - bsPutUChar ( bsWr, 'h' ); bsPutUChar ( bsWr, '9' ); - bsPutUChar ( bsWr, 0x31 ); bsPutUChar ( bsWr, 0x41 ); - bsPutUChar ( bsWr, 0x59 ); bsPutUChar ( bsWr, 0x26 ); - bsPutUChar ( bsWr, 0x53 ); bsPutUChar ( bsWr, 0x59 ); - } - } - - fprintf ( stderr, "%s: finished\n", progName ); - return 0; -} - - - -/*-----------------------------------------------------------*/ -/*--- end bzip2recover.c ---*/ -/*-----------------------------------------------------------*/ diff --git a/winsup/bz2lib/bzlib.c b/winsup/bz2lib/bzlib.c deleted file mode 100644 index 4a06d9f14..000000000 --- a/winsup/bz2lib/bzlib.c +++ /dev/null @@ -1,1564 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Library top-level functions. ---*/ -/*--- bzlib.c ---*/ -/*-------------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - -/*-- - CHANGES - ~~~~~~~ - 0.9.0 -- original version. - - 0.9.0a/b -- no changes in this file. - - 0.9.0c - * made zero-length BZ_FLUSH work correctly in bzCompress(). - * fixed bzWrite/bzRead to ignore zero-length requests. - * fixed bzread to correctly handle read requests after EOF. - * wrong parameter order in call to bzDecompressInit in - bzBuffToBuffDecompress. Fixed. ---*/ - -#include "bzlib_private.h" - - -/*---------------------------------------------------*/ -/*--- Compression stuff ---*/ -/*---------------------------------------------------*/ - - -/*---------------------------------------------------*/ -#ifndef BZ_NO_STDIO -void BZ2_bz__AssertH__fail ( int errcode ) -{ - fprintf(stderr, - "\n\nbzip2/libbzip2: internal error number %d.\n" - "This is a bug in bzip2/libbzip2, %s.\n" - "Please report it to me at: jseward@acm.org. If this happened\n" - "when you were using some program which uses libbzip2 as a\n" - "component, you should also report this bug to the author(s)\n" - "of that program. Please make an effort to report this bug;\n" - "timely and accurate bug reports eventually lead to higher\n" - "quality software. Thanks. Julian Seward, 21 March 2000.\n\n", - errcode, - BZ2_bzlibVersion() - ); - exit(3); -} -#endif - - -/*---------------------------------------------------*/ -static -int bz_config_ok ( void ) -{ - if (sizeof(int) != 4) return 0; - if (sizeof(short) != 2) return 0; - if (sizeof(char) != 1) return 0; - return 1; -} - - -/*---------------------------------------------------*/ -static -void* default_bzalloc ( void* opaque, Int32 items, Int32 size ) -{ - void* v = malloc ( items * size ); - return v; -} - -static -void default_bzfree ( void* opaque, void* addr ) -{ - if (addr != NULL) free ( addr ); -} - - -/*---------------------------------------------------*/ -static -void prepare_new_block ( EState* s ) -{ - Int32 i; - s->nblock = 0; - s->numZ = 0; - s->state_out_pos = 0; - BZ_INITIALISE_CRC ( s->blockCRC ); - for (i = 0; i < 256; i++) s->inUse[i] = False; - s->blockNo++; -} - - -/*---------------------------------------------------*/ -static -void init_RL ( EState* s ) -{ - s->state_in_ch = 256; - s->state_in_len = 0; -} - - -static -Bool isempty_RL ( EState* s ) -{ - if (s->state_in_ch < 256 && s->state_in_len > 0) - return False; else - return True; -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzCompressInit) - ( bz_stream* strm, - int blockSize100k, - int verbosity, - int workFactor ) -{ - Int32 n; - EState* s; - - if (!bz_config_ok()) return BZ_CONFIG_ERROR; - - if (strm == NULL || - blockSize100k < 1 || blockSize100k > 9 || - workFactor < 0 || workFactor > 250) - return BZ_PARAM_ERROR; - - if (workFactor == 0) workFactor = 30; - if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc; - if (strm->bzfree == NULL) strm->bzfree = default_bzfree; - - s = BZALLOC( sizeof(EState) ); - if (s == NULL) return BZ_MEM_ERROR; - s->strm = strm; - - s->arr1 = NULL; - s->arr2 = NULL; - s->ftab = NULL; - - n = 100000 * blockSize100k; - s->arr1 = BZALLOC( n * sizeof(UInt32) ); - s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) ); - s->ftab = BZALLOC( 65537 * sizeof(UInt32) ); - - if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) { - if (s->arr1 != NULL) BZFREE(s->arr1); - if (s->arr2 != NULL) BZFREE(s->arr2); - if (s->ftab != NULL) BZFREE(s->ftab); - if (s != NULL) BZFREE(s); - return BZ_MEM_ERROR; - } - - s->blockNo = 0; - s->state = BZ_S_INPUT; - s->mode = BZ_M_RUNNING; - s->combinedCRC = 0; - s->blockSize100k = blockSize100k; - s->nblockMAX = 100000 * blockSize100k - 19; - s->verbosity = verbosity; - s->workFactor = workFactor; - - s->block = (UChar*)s->arr2; - s->mtfv = (UInt16*)s->arr1; - s->zbits = NULL; - s->ptr = (UInt32*)s->arr1; - - strm->state = s; - strm->total_in_lo32 = 0; - strm->total_in_hi32 = 0; - strm->total_out_lo32 = 0; - strm->total_out_hi32 = 0; - init_RL ( s ); - prepare_new_block ( s ); - return BZ_OK; -} - - -/*---------------------------------------------------*/ -static -void add_pair_to_block ( EState* s ) -{ - Int32 i; - UChar ch = (UChar)(s->state_in_ch); - for (i = 0; i < s->state_in_len; i++) { - BZ_UPDATE_CRC( s->blockCRC, ch ); - } - s->inUse[s->state_in_ch] = True; - switch (s->state_in_len) { - case 1: - s->block[s->nblock] = (UChar)ch; s->nblock++; - break; - case 2: - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - break; - case 3: - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - break; - default: - s->inUse[s->state_in_len-4] = True; - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = ((UChar)(s->state_in_len-4)); - s->nblock++; - break; - } -} - - -/*---------------------------------------------------*/ -static -void flush_RL ( EState* s ) -{ - if (s->state_in_ch < 256) add_pair_to_block ( s ); - init_RL ( s ); -} - - -/*---------------------------------------------------*/ -#define ADD_CHAR_TO_BLOCK(zs,zchh0) \ -{ \ - UInt32 zchh = (UInt32)(zchh0); \ - /*-- fast track the common case --*/ \ - if (zchh != zs->state_in_ch && \ - zs->state_in_len == 1) { \ - UChar ch = (UChar)(zs->state_in_ch); \ - BZ_UPDATE_CRC( zs->blockCRC, ch ); \ - zs->inUse[zs->state_in_ch] = True; \ - zs->block[zs->nblock] = (UChar)ch; \ - zs->nblock++; \ - zs->state_in_ch = zchh; \ - } \ - else \ - /*-- general, uncommon cases --*/ \ - if (zchh != zs->state_in_ch || \ - zs->state_in_len == 255) { \ - if (zs->state_in_ch < 256) \ - add_pair_to_block ( zs ); \ - zs->state_in_ch = zchh; \ - zs->state_in_len = 1; \ - } else { \ - zs->state_in_len++; \ - } \ -} - - -/*---------------------------------------------------*/ -static -Bool copy_input_until_stop ( EState* s ) -{ - Bool progress_in = False; - - if (s->mode == BZ_M_RUNNING) { - - /*-- fast track the common case --*/ - while (True) { - /*-- block full? --*/ - if (s->nblock >= s->nblockMAX) break; - /*-- no input? --*/ - if (s->strm->avail_in == 0) break; - progress_in = True; - ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); - s->strm->next_in++; - s->strm->avail_in--; - s->strm->total_in_lo32++; - if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++; - } - - } else { - - /*-- general, uncommon case --*/ - while (True) { - /*-- block full? --*/ - if (s->nblock >= s->nblockMAX) break; - /*-- no input? --*/ - if (s->strm->avail_in == 0) break; - /*-- flush/finish end? --*/ - if (s->avail_in_expect == 0) break; - progress_in = True; - ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); - s->strm->next_in++; - s->strm->avail_in--; - s->strm->total_in_lo32++; - if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++; - s->avail_in_expect--; - } - } - return progress_in; -} - - -/*---------------------------------------------------*/ -static -Bool copy_output_until_stop ( EState* s ) -{ - Bool progress_out = False; - - while (True) { - - /*-- no output space? --*/ - if (s->strm->avail_out == 0) break; - - /*-- block done? --*/ - if (s->state_out_pos >= s->numZ) break; - - progress_out = True; - *(s->strm->next_out) = s->zbits[s->state_out_pos]; - s->state_out_pos++; - s->strm->avail_out--; - s->strm->next_out++; - s->strm->total_out_lo32++; - if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } - - return progress_out; -} - - -/*---------------------------------------------------*/ -static -Bool handle_compress ( bz_stream* strm ) -{ - Bool progress_in = False; - Bool progress_out = False; - EState* s = strm->state; - - while (True) { - - if (s->state == BZ_S_OUTPUT) { - progress_out |= copy_output_until_stop ( s ); - if (s->state_out_pos < s->numZ) break; - if (s->mode == BZ_M_FINISHING && - s->avail_in_expect == 0 && - isempty_RL(s)) break; - prepare_new_block ( s ); - s->state = BZ_S_INPUT; - if (s->mode == BZ_M_FLUSHING && - s->avail_in_expect == 0 && - isempty_RL(s)) break; - } - - if (s->state == BZ_S_INPUT) { - progress_in |= copy_input_until_stop ( s ); - if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) { - flush_RL ( s ); - BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) ); - s->state = BZ_S_OUTPUT; - } - else - if (s->nblock >= s->nblockMAX) { - BZ2_compressBlock ( s, False ); - s->state = BZ_S_OUTPUT; - } - else - if (s->strm->avail_in == 0) { - break; - } - } - - } - - return progress_in || progress_out; -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action ) -{ - Bool progress; - EState* s; - if (strm == NULL) return BZ_PARAM_ERROR; - s = strm->state; - if (s == NULL) return BZ_PARAM_ERROR; - if (s->strm != strm) return BZ_PARAM_ERROR; - - preswitch: - switch (s->mode) { - - case BZ_M_IDLE: - return BZ_SEQUENCE_ERROR; - - case BZ_M_RUNNING: - if (action == BZ_RUN) { - progress = handle_compress ( strm ); - return progress ? BZ_RUN_OK : BZ_PARAM_ERROR; - } - else - if (action == BZ_FLUSH) { - s->avail_in_expect = strm->avail_in; - s->mode = BZ_M_FLUSHING; - goto preswitch; - } - else - if (action == BZ_FINISH) { - s->avail_in_expect = strm->avail_in; - s->mode = BZ_M_FINISHING; - goto preswitch; - } - else - return BZ_PARAM_ERROR; - - case BZ_M_FLUSHING: - if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR; - if (s->avail_in_expect != s->strm->avail_in) - return BZ_SEQUENCE_ERROR; - progress = handle_compress ( strm ); - if (s->avail_in_expect > 0 || !isempty_RL(s) || - s->state_out_pos < s->numZ) return BZ_FLUSH_OK; - s->mode = BZ_M_RUNNING; - return BZ_RUN_OK; - - case BZ_M_FINISHING: - if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR; - if (s->avail_in_expect != s->strm->avail_in) - return BZ_SEQUENCE_ERROR; - progress = handle_compress ( strm ); - if (!progress) return BZ_SEQUENCE_ERROR; - if (s->avail_in_expect > 0 || !isempty_RL(s) || - s->state_out_pos < s->numZ) return BZ_FINISH_OK; - s->mode = BZ_M_IDLE; - return BZ_STREAM_END; - } - return BZ_OK; /*--not reached--*/ -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzCompressEnd) ( bz_stream *strm ) -{ - EState* s; - if (strm == NULL) return BZ_PARAM_ERROR; - s = strm->state; - if (s == NULL) return BZ_PARAM_ERROR; - if (s->strm != strm) return BZ_PARAM_ERROR; - - if (s->arr1 != NULL) BZFREE(s->arr1); - if (s->arr2 != NULL) BZFREE(s->arr2); - if (s->ftab != NULL) BZFREE(s->ftab); - BZFREE(strm->state); - - strm->state = NULL; - - return BZ_OK; -} - - -/*---------------------------------------------------*/ -/*--- Decompression stuff ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzDecompressInit) - ( bz_stream* strm, - int verbosity, - int small ) -{ - DState* s; - - if (!bz_config_ok()) return BZ_CONFIG_ERROR; - - if (strm == NULL) return BZ_PARAM_ERROR; - if (small != 0 && small != 1) return BZ_PARAM_ERROR; - if (verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR; - - if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc; - if (strm->bzfree == NULL) strm->bzfree = default_bzfree; - - s = BZALLOC( sizeof(DState) ); - if (s == NULL) return BZ_MEM_ERROR; - s->strm = strm; - strm->state = s; - s->state = BZ_X_MAGIC_1; - s->bsLive = 0; - s->bsBuff = 0; - s->calculatedCombinedCRC = 0; - strm->total_in_lo32 = 0; - strm->total_in_hi32 = 0; - strm->total_out_lo32 = 0; - strm->total_out_hi32 = 0; - s->smallDecompress = (Bool)small; - s->ll4 = NULL; - s->ll16 = NULL; - s->tt = NULL; - s->currBlockNo = 0; - s->verbosity = verbosity; - - return BZ_OK; -} - - -/*---------------------------------------------------*/ -static -void unRLE_obuf_to_output_FAST ( DState* s ) -{ - UChar k1; - - if (s->blockRandomised) { - - while (True) { - /* try to finish existing run */ - while (True) { - if (s->strm->avail_out == 0) return; - if (s->state_out_len == 0) break; - *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; - BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); - s->state_out_len--; - s->strm->next_out++; - s->strm->avail_out--; - s->strm->total_out_lo32++; - if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } - - /* can a new run be started? */ - if (s->nblock_used == s->save_nblock+1) return; - - - s->state_out_len = 1; - s->state_out_ch = s->k0; - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 2; - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 3; - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - s->state_out_len = ((Int32)k1) + 4; - BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK; - s->k0 ^= BZ_RAND_MASK; s->nblock_used++; - } - - } else { - - /* restore */ - UInt32 c_calculatedBlockCRC = s->calculatedBlockCRC; - UChar c_state_out_ch = s->state_out_ch; - Int32 c_state_out_len = s->state_out_len; - Int32 c_nblock_used = s->nblock_used; - Int32 c_k0 = s->k0; - UInt32* c_tt = s->tt; - UInt32 c_tPos = s->tPos; - char* cs_next_out = s->strm->next_out; - unsigned int cs_avail_out = s->strm->avail_out; - /* end restore */ - - UInt32 avail_out_INIT = cs_avail_out; - Int32 s_save_nblockPP = s->save_nblock+1; - unsigned int total_out_lo32_old; - - while (True) { - - /* try to finish existing run */ - if (c_state_out_len > 0) { - while (True) { - if (cs_avail_out == 0) goto return_notr; - if (c_state_out_len == 1) break; - *( (UChar*)(cs_next_out) ) = c_state_out_ch; - BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch ); - c_state_out_len--; - cs_next_out++; - cs_avail_out--; - } - s_state_out_len_eq_one: - { - if (cs_avail_out == 0) { - c_state_out_len = 1; goto return_notr; - }; - *( (UChar*)(cs_next_out) ) = c_state_out_ch; - BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch ); - cs_next_out++; - cs_avail_out--; - } - } - /* can a new run be started? */ - if (c_nblock_used == s_save_nblockPP) { - c_state_out_len = 0; goto return_notr; - }; - c_state_out_ch = c_k0; - BZ_GET_FAST_C(k1); c_nblock_used++; - if (k1 != c_k0) { - c_k0 = k1; goto s_state_out_len_eq_one; - }; - if (c_nblock_used == s_save_nblockPP) - goto s_state_out_len_eq_one; - - c_state_out_len = 2; - BZ_GET_FAST_C(k1); c_nblock_used++; - if (c_nblock_used == s_save_nblockPP) continue; - if (k1 != c_k0) { c_k0 = k1; continue; }; - - c_state_out_len = 3; - BZ_GET_FAST_C(k1); c_nblock_used++; - if (c_nblock_used == s_save_nblockPP) continue; - if (k1 != c_k0) { c_k0 = k1; continue; }; - - BZ_GET_FAST_C(k1); c_nblock_used++; - c_state_out_len = ((Int32)k1) + 4; - BZ_GET_FAST_C(c_k0); c_nblock_used++; - } - - return_notr: - total_out_lo32_old = s->strm->total_out_lo32; - s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out); - if (s->strm->total_out_lo32 < total_out_lo32_old) - s->strm->total_out_hi32++; - - /* save */ - s->calculatedBlockCRC = c_calculatedBlockCRC; - s->state_out_ch = c_state_out_ch; - s->state_out_len = c_state_out_len; - s->nblock_used = c_nblock_used; - s->k0 = c_k0; - s->tt = c_tt; - s->tPos = c_tPos; - s->strm->next_out = cs_next_out; - s->strm->avail_out = cs_avail_out; - /* end save */ - } -} - - - -/*---------------------------------------------------*/ -__inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab ) -{ - Int32 nb, na, mid; - nb = 0; - na = 256; - do { - mid = (nb + na) >> 1; - if (indx >= cftab[mid]) nb = mid; else na = mid; - } - while (na - nb != 1); - return nb; -} - - -/*---------------------------------------------------*/ -static -void unRLE_obuf_to_output_SMALL ( DState* s ) -{ - UChar k1; - - if (s->blockRandomised) { - - while (True) { - /* try to finish existing run */ - while (True) { - if (s->strm->avail_out == 0) return; - if (s->state_out_len == 0) break; - *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; - BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); - s->state_out_len--; - s->strm->next_out++; - s->strm->avail_out--; - s->strm->total_out_lo32++; - if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } - - /* can a new run be started? */ - if (s->nblock_used == s->save_nblock+1) return; - - - s->state_out_len = 1; - s->state_out_ch = s->k0; - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 2; - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 3; - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - s->state_out_len = ((Int32)k1) + 4; - BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK; - s->k0 ^= BZ_RAND_MASK; s->nblock_used++; - } - - } else { - - while (True) { - /* try to finish existing run */ - while (True) { - if (s->strm->avail_out == 0) return; - if (s->state_out_len == 0) break; - *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; - BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); - s->state_out_len--; - s->strm->next_out++; - s->strm->avail_out--; - s->strm->total_out_lo32++; - if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } - - /* can a new run be started? */ - if (s->nblock_used == s->save_nblock+1) return; - - s->state_out_len = 1; - s->state_out_ch = s->k0; - BZ_GET_SMALL(k1); s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 2; - BZ_GET_SMALL(k1); s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 3; - BZ_GET_SMALL(k1); s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - BZ_GET_SMALL(k1); s->nblock_used++; - s->state_out_len = ((Int32)k1) + 4; - BZ_GET_SMALL(s->k0); s->nblock_used++; - } - - } -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzDecompress) ( bz_stream *strm ) -{ - DState* s; - if (strm == NULL) return BZ_PARAM_ERROR; - s = strm->state; - if (s == NULL) return BZ_PARAM_ERROR; - if (s->strm != strm) return BZ_PARAM_ERROR; - - while (True) { - if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR; - if (s->state == BZ_X_OUTPUT) { - if (s->smallDecompress) - unRLE_obuf_to_output_SMALL ( s ); else - unRLE_obuf_to_output_FAST ( s ); - if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) { - BZ_FINALISE_CRC ( s->calculatedBlockCRC ); - if (s->verbosity >= 3) - VPrintf2 ( " {0x%x, 0x%x}", s->storedBlockCRC, - s->calculatedBlockCRC ); - if (s->verbosity >= 2) VPrintf0 ( "]" ); - if (s->calculatedBlockCRC != s->storedBlockCRC) - return BZ_DATA_ERROR; - s->calculatedCombinedCRC - = (s->calculatedCombinedCRC << 1) | - (s->calculatedCombinedCRC >> 31); - s->calculatedCombinedCRC ^= s->calculatedBlockCRC; - s->state = BZ_X_BLKHDR_1; - } else { - return BZ_OK; - } - } - if (s->state >= BZ_X_MAGIC_1) { - Int32 r = BZ2_decompress ( s ); - if (r == BZ_STREAM_END) { - if (s->verbosity >= 3) - VPrintf2 ( "\n combined CRCs: stored = 0x%x, computed = 0x%x", - s->storedCombinedCRC, s->calculatedCombinedCRC ); - if (s->calculatedCombinedCRC != s->storedCombinedCRC) - return BZ_DATA_ERROR; - return r; - } - if (s->state != BZ_X_OUTPUT) return r; - } - } - - AssertH ( 0, 6001 ); - - return 0; /*NOTREACHED*/ -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzDecompressEnd) ( bz_stream *strm ) -{ - DState* s; - if (strm == NULL) return BZ_PARAM_ERROR; - s = strm->state; - if (s == NULL) return BZ_PARAM_ERROR; - if (s->strm != strm) return BZ_PARAM_ERROR; - - if (s->tt != NULL) BZFREE(s->tt); - if (s->ll16 != NULL) BZFREE(s->ll16); - if (s->ll4 != NULL) BZFREE(s->ll4); - - BZFREE(strm->state); - strm->state = NULL; - - return BZ_OK; -} - - -#ifndef BZ_NO_STDIO -/*---------------------------------------------------*/ -/*--- File I/O stuff ---*/ -/*---------------------------------------------------*/ - -#define BZ_SETERR(eee) \ -{ \ - if (bzerror != NULL) *bzerror = eee; \ - if (bzf != NULL) bzf->lastErr = eee; \ -} - -typedef - struct { - FILE* handle; - Char buf[BZ_MAX_UNUSED]; - Int32 bufN; - Bool writing; - bz_stream strm; - Int32 lastErr; - Bool initialisedOk; - } - bzFile; - - -/*---------------------------------------------*/ -static Bool myfeof ( FILE* f ) -{ - Int32 c = fgetc ( f ); - if (c == EOF) return True; - ungetc ( c, f ); - return False; -} - - -/*---------------------------------------------------*/ -BZFILE* BZ_API(BZ2_bzWriteOpen) - ( int* bzerror, - FILE* f, - int blockSize100k, - int verbosity, - int workFactor ) -{ - Int32 ret; - bzFile* bzf = NULL; - - BZ_SETERR(BZ_OK); - - if (f == NULL || - (blockSize100k < 1 || blockSize100k > 9) || - (workFactor < 0 || workFactor > 250) || - (verbosity < 0 || verbosity > 4)) - { BZ_SETERR(BZ_PARAM_ERROR); return NULL; }; - - if (ferror(f)) - { BZ_SETERR(BZ_IO_ERROR); return NULL; }; - - bzf = malloc ( sizeof(bzFile) ); - if (bzf == NULL) - { BZ_SETERR(BZ_MEM_ERROR); return NULL; }; - - BZ_SETERR(BZ_OK); - bzf->initialisedOk = False; - bzf->bufN = 0; - bzf->handle = f; - bzf->writing = True; - bzf->strm.bzalloc = NULL; - bzf->strm.bzfree = NULL; - bzf->strm.opaque = NULL; - - if (workFactor == 0) workFactor = 30; - ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k, - verbosity, workFactor ); - if (ret != BZ_OK) - { BZ_SETERR(ret); free(bzf); return NULL; }; - - bzf->strm.avail_in = 0; - bzf->initialisedOk = True; - return bzf; -} - - - -/*---------------------------------------------------*/ -void BZ_API(BZ2_bzWrite) - ( int* bzerror, - BZFILE* b, - void* buf, - int len ) -{ - Int32 n, n2, ret; - bzFile* bzf = (bzFile*)b; - - BZ_SETERR(BZ_OK); - if (bzf == NULL || buf == NULL || len < 0) - { BZ_SETERR(BZ_PARAM_ERROR); return; }; - if (!(bzf->writing)) - { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; - if (ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return; }; - - if (len == 0) - { BZ_SETERR(BZ_OK); return; }; - - bzf->strm.avail_in = len; - bzf->strm.next_in = buf; - - while (True) { - bzf->strm.avail_out = BZ_MAX_UNUSED; - bzf->strm.next_out = bzf->buf; - ret = BZ2_bzCompress ( &(bzf->strm), BZ_RUN ); - if (ret != BZ_RUN_OK) - { BZ_SETERR(ret); return; }; - - if (bzf->strm.avail_out < BZ_MAX_UNUSED) { - n = BZ_MAX_UNUSED - bzf->strm.avail_out; - n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), - n, bzf->handle ); - if (n != n2 || ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return; }; - } - - if (bzf->strm.avail_in == 0) - { BZ_SETERR(BZ_OK); return; }; - } -} - - -/*---------------------------------------------------*/ -void BZ_API(BZ2_bzWriteClose) - ( int* bzerror, - BZFILE* b, - int abandon, - unsigned int* nbytes_in, - unsigned int* nbytes_out ) -{ - BZ2_bzWriteClose64 ( bzerror, b, abandon, - nbytes_in, NULL, nbytes_out, NULL ); -} - - -void BZ_API(BZ2_bzWriteClose64) - ( int* bzerror, - BZFILE* b, - int abandon, - unsigned int* nbytes_in_lo32, - unsigned int* nbytes_in_hi32, - unsigned int* nbytes_out_lo32, - unsigned int* nbytes_out_hi32 ) -{ - Int32 n, n2, ret; - bzFile* bzf = (bzFile*)b; - - if (bzf == NULL) - { BZ_SETERR(BZ_OK); return; }; - if (!(bzf->writing)) - { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; - if (ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return; }; - - if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = 0; - if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = 0; - if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = 0; - if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = 0; - - if ((!abandon) && bzf->lastErr == BZ_OK) { - while (True) { - bzf->strm.avail_out = BZ_MAX_UNUSED; - bzf->strm.next_out = bzf->buf; - ret = BZ2_bzCompress ( &(bzf->strm), BZ_FINISH ); - if (ret != BZ_FINISH_OK && ret != BZ_STREAM_END) - { BZ_SETERR(ret); return; }; - - if (bzf->strm.avail_out < BZ_MAX_UNUSED) { - n = BZ_MAX_UNUSED - bzf->strm.avail_out; - n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), - n, bzf->handle ); - if (n != n2 || ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return; }; - } - - if (ret == BZ_STREAM_END) break; - } - } - - if ( !abandon && !ferror ( bzf->handle ) ) { - fflush ( bzf->handle ); - if (ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return; }; - } - - if (nbytes_in_lo32 != NULL) - *nbytes_in_lo32 = bzf->strm.total_in_lo32; - if (nbytes_in_hi32 != NULL) - *nbytes_in_hi32 = bzf->strm.total_in_hi32; - if (nbytes_out_lo32 != NULL) - *nbytes_out_lo32 = bzf->strm.total_out_lo32; - if (nbytes_out_hi32 != NULL) - *nbytes_out_hi32 = bzf->strm.total_out_hi32; - - BZ_SETERR(BZ_OK); - BZ2_bzCompressEnd ( &(bzf->strm) ); - free ( bzf ); -} - - -/*---------------------------------------------------*/ -BZFILE* BZ_API(BZ2_bzReadOpen) - ( int* bzerror, - FILE* f, - int verbosity, - int small, - void* unused, - int nUnused ) -{ - bzFile* bzf = NULL; - int ret; - - BZ_SETERR(BZ_OK); - - if (f == NULL || - (small != 0 && small != 1) || - (verbosity < 0 || verbosity > 4) || - (unused == NULL && nUnused != 0) || - (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED))) - { BZ_SETERR(BZ_PARAM_ERROR); return NULL; }; - - if (ferror(f)) - { BZ_SETERR(BZ_IO_ERROR); return NULL; }; - - bzf = malloc ( sizeof(bzFile) ); - if (bzf == NULL) - { BZ_SETERR(BZ_MEM_ERROR); return NULL; }; - - BZ_SETERR(BZ_OK); - - bzf->initialisedOk = False; - bzf->handle = f; - bzf->bufN = 0; - bzf->writing = False; - bzf->strm.bzalloc = NULL; - bzf->strm.bzfree = NULL; - bzf->strm.opaque = NULL; - - while (nUnused > 0) { - bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++; - unused = ((void*)( 1 + ((UChar*)(unused)) )); - nUnused--; - } - - ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small ); - if (ret != BZ_OK) - { BZ_SETERR(ret); free(bzf); return NULL; }; - - bzf->strm.avail_in = bzf->bufN; - bzf->strm.next_in = bzf->buf; - - bzf->initialisedOk = True; - return bzf; -} - - -/*---------------------------------------------------*/ -void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b ) -{ - bzFile* bzf = (bzFile*)b; - - BZ_SETERR(BZ_OK); - if (bzf == NULL) - { BZ_SETERR(BZ_OK); return; }; - - if (bzf->writing) - { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; - - if (bzf->initialisedOk) - (void)BZ2_bzDecompressEnd ( &(bzf->strm) ); - free ( bzf ); -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzRead) - ( int* bzerror, - BZFILE* b, - void* buf, - int len ) -{ - Int32 n, ret; - bzFile* bzf = (bzFile*)b; - - BZ_SETERR(BZ_OK); - - if (bzf == NULL || buf == NULL || len < 0) - { BZ_SETERR(BZ_PARAM_ERROR); return 0; }; - - if (bzf->writing) - { BZ_SETERR(BZ_SEQUENCE_ERROR); return 0; }; - - if (len == 0) - { BZ_SETERR(BZ_OK); return 0; }; - - bzf->strm.avail_out = len; - bzf->strm.next_out = buf; - - while (True) { - - if (ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return 0; }; - - if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) { - n = fread ( bzf->buf, sizeof(UChar), - BZ_MAX_UNUSED, bzf->handle ); - if (ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return 0; }; - bzf->bufN = n; - bzf->strm.avail_in = bzf->bufN; - bzf->strm.next_in = bzf->buf; - } - - ret = BZ2_bzDecompress ( &(bzf->strm) ); - - if (ret != BZ_OK && ret != BZ_STREAM_END) - { BZ_SETERR(ret); return 0; }; - - if (ret == BZ_OK && myfeof(bzf->handle) && - bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0) - { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; }; - - if (ret == BZ_STREAM_END) - { BZ_SETERR(BZ_STREAM_END); - return len - bzf->strm.avail_out; }; - if (bzf->strm.avail_out == 0) - { BZ_SETERR(BZ_OK); return len; }; - - } - - return 0; /*not reached*/ -} - - -/*---------------------------------------------------*/ -void BZ_API(BZ2_bzReadGetUnused) - ( int* bzerror, - BZFILE* b, - void** unused, - int* nUnused ) -{ - bzFile* bzf = (bzFile*)b; - if (bzf == NULL) - { BZ_SETERR(BZ_PARAM_ERROR); return; }; - if (bzf->lastErr != BZ_STREAM_END) - { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; - if (unused == NULL || nUnused == NULL) - { BZ_SETERR(BZ_PARAM_ERROR); return; }; - - BZ_SETERR(BZ_OK); - *nUnused = bzf->strm.avail_in; - *unused = bzf->strm.next_in; -} -#endif - - -/*---------------------------------------------------*/ -/*--- Misc convenience stuff ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzBuffToBuffCompress) - ( char* dest, - unsigned int* destLen, - char* source, - unsigned int sourceLen, - int blockSize100k, - int verbosity, - int workFactor ) -{ - bz_stream strm; - int ret; - - if (dest == NULL || destLen == NULL || - source == NULL || - blockSize100k < 1 || blockSize100k > 9 || - verbosity < 0 || verbosity > 4 || - workFactor < 0 || workFactor > 250) - return BZ_PARAM_ERROR; - - if (workFactor == 0) workFactor = 30; - strm.bzalloc = NULL; - strm.bzfree = NULL; - strm.opaque = NULL; - ret = BZ2_bzCompressInit ( &strm, blockSize100k, - verbosity, workFactor ); - if (ret != BZ_OK) return ret; - - strm.next_in = source; - strm.next_out = dest; - strm.avail_in = sourceLen; - strm.avail_out = *destLen; - - ret = BZ2_bzCompress ( &strm, BZ_FINISH ); - if (ret == BZ_FINISH_OK) goto output_overflow; - if (ret != BZ_STREAM_END) goto errhandler; - - /* normal termination */ - *destLen -= strm.avail_out; - BZ2_bzCompressEnd ( &strm ); - return BZ_OK; - - output_overflow: - BZ2_bzCompressEnd ( &strm ); - return BZ_OUTBUFF_FULL; - - errhandler: - BZ2_bzCompressEnd ( &strm ); - return ret; -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzBuffToBuffDecompress) - ( char* dest, - unsigned int* destLen, - char* source, - unsigned int sourceLen, - int small, - int verbosity ) -{ - bz_stream strm; - int ret; - - if (dest == NULL || destLen == NULL || - source == NULL || - (small != 0 && small != 1) || - verbosity < 0 || verbosity > 4) - return BZ_PARAM_ERROR; - - strm.bzalloc = NULL; - strm.bzfree = NULL; - strm.opaque = NULL; - ret = BZ2_bzDecompressInit ( &strm, verbosity, small ); - if (ret != BZ_OK) return ret; - - strm.next_in = source; - strm.next_out = dest; - strm.avail_in = sourceLen; - strm.avail_out = *destLen; - - ret = BZ2_bzDecompress ( &strm ); - if (ret == BZ_OK) goto output_overflow_or_eof; - if (ret != BZ_STREAM_END) goto errhandler; - - /* normal termination */ - *destLen -= strm.avail_out; - BZ2_bzDecompressEnd ( &strm ); - return BZ_OK; - - output_overflow_or_eof: - if (strm.avail_out > 0) { - BZ2_bzDecompressEnd ( &strm ); - return BZ_UNEXPECTED_EOF; - } else { - BZ2_bzDecompressEnd ( &strm ); - return BZ_OUTBUFF_FULL; - }; - - errhandler: - BZ2_bzDecompressEnd ( &strm ); - return ret; -} - - -/*---------------------------------------------------*/ -/*-- - Code contributed by Yoshioka Tsuneo - (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.jp), - to support better zlib compatibility. - This code is not _officially_ part of libbzip2 (yet); - I haven't tested it, documented it, or considered the - threading-safeness of it. - If this code breaks, please contact both Yoshioka and me. ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------------*/ -/*-- - return version like "0.9.0c". ---*/ -const char * BZ_API(BZ2_bzlibVersion)(void) -{ - return BZ_VERSION; -} - - -#ifndef BZ_NO_STDIO -/*---------------------------------------------------*/ - -#if defined(_WIN32) || defined(OS2) || defined(MSDOS) -# include -# include -# define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY) -#else -# define SET_BINARY_MODE(file) -#endif -static -BZFILE * bzopen_or_bzdopen - ( const char *path, /* no use when bzdopen */ - int fd, /* no use when bzdopen */ - const char *mode, - int open_mode) /* bzopen: 0, bzdopen:1 */ -{ - int bzerr; - char unused[BZ_MAX_UNUSED]; - int blockSize100k = 9; - int writing = 0; - char mode2[10] = ""; - FILE *fp = NULL; - BZFILE *bzfp = NULL; - int verbosity = 0; - int workFactor = 30; - int smallMode = 0; - int nUnused = 0; - - if (mode == NULL) return NULL; - while (*mode) { - switch (*mode) { - case 'r': - writing = 0; break; - case 'w': - writing = 1; break; - case 's': - smallMode = 1; break; - default: - if (isdigit((int)(*mode))) { - blockSize100k = *mode-'0'; - } - } - mode++; - } - strcat(mode2, writing ? "w" : "r" ); - strcat(mode2,"b"); /* binary mode */ - - if (open_mode==0) { - if (path==NULL || strcmp(path,"")==0) { - fp = (writing ? stdout : stdin); - SET_BINARY_MODE(fp); - } else { - fp = fopen(path,mode2); - } - } else { -#ifdef BZ_STRICT_ANSI - fp = NULL; -#else - fp = fdopen(fd,mode2); -#endif - } - if (fp == NULL) return NULL; - - if (writing) { - /* Guard against total chaos and anarchy -- JRS */ - if (blockSize100k < 1) blockSize100k = 1; - if (blockSize100k > 9) blockSize100k = 9; - bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k, - verbosity,workFactor); - } else { - bzfp = BZ2_bzReadOpen(&bzerr,fp,verbosity,smallMode, - unused,nUnused); - } - if (bzfp == NULL) { - if (fp != stdin && fp != stdout) fclose(fp); - return NULL; - } - return bzfp; -} - - -/*---------------------------------------------------*/ -/*-- - open file for read or write. - ex) bzopen("file","w9") - case path="" or NULL => use stdin or stdout. ---*/ -BZFILE * BZ_API(BZ2_bzopen) - ( const char *path, - const char *mode ) -{ - return bzopen_or_bzdopen(path,-1,mode,/*bzopen*/0); -} - - -/*---------------------------------------------------*/ -BZFILE * BZ_API(BZ2_bzdopen) - ( int fd, - const char *mode ) -{ - return bzopen_or_bzdopen(NULL,fd,mode,/*bzdopen*/1); -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzread) (BZFILE* b, void* buf, int len ) -{ - int bzerr, nread; - if (((bzFile*)b)->lastErr == BZ_STREAM_END) return 0; - nread = BZ2_bzRead(&bzerr,b,buf,len); - if (bzerr == BZ_OK || bzerr == BZ_STREAM_END) { - return nread; - } else { - return -1; - } -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzwrite) (BZFILE* b, void* buf, int len ) -{ - int bzerr; - - BZ2_bzWrite(&bzerr,b,buf,len); - if(bzerr == BZ_OK){ - return len; - }else{ - return -1; - } -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzflush) (BZFILE *b) -{ - /* do nothing now... */ - return 0; -} - - -/*---------------------------------------------------*/ -void BZ_API(BZ2_bzclose) (BZFILE* b) -{ - int bzerr; - FILE *fp = ((bzFile *)b)->handle; - - if (b==NULL) {return;} - if(((bzFile*)b)->writing){ - BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL); - if(bzerr != BZ_OK){ - BZ2_bzWriteClose(NULL,b,1,NULL,NULL); - } - }else{ - BZ2_bzReadClose(&bzerr,b); - } - if(fp!=stdin && fp!=stdout){ - fclose(fp); - } -} - - -/*---------------------------------------------------*/ -/*-- - return last error code ---*/ -static char *bzerrorstrings[] = { - "OK" - ,"SEQUENCE_ERROR" - ,"PARAM_ERROR" - ,"MEM_ERROR" - ,"DATA_ERROR" - ,"DATA_ERROR_MAGIC" - ,"IO_ERROR" - ,"UNEXPECTED_EOF" - ,"OUTBUFF_FULL" - ,"CONFIG_ERROR" - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ -}; - - -const char * BZ_API(BZ2_bzerror) (BZFILE *b, int *errnum) -{ - int err = ((bzFile *)b)->lastErr; - - if(err>0) err = 0; - *errnum = err; - return bzerrorstrings[err*-1]; -} -#endif - - -/*-------------------------------------------------------------*/ -/*--- end bzlib.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/winsup/bz2lib/bzlib.h b/winsup/bz2lib/bzlib.h deleted file mode 100644 index c9447a295..000000000 --- a/winsup/bz2lib/bzlib.h +++ /dev/null @@ -1,319 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Public header file for the library. ---*/ -/*--- bzlib.h ---*/ -/*-------------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - -#ifndef _BZLIB_H -#define _BZLIB_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define BZ_RUN 0 -#define BZ_FLUSH 1 -#define BZ_FINISH 2 - -#define BZ_OK 0 -#define BZ_RUN_OK 1 -#define BZ_FLUSH_OK 2 -#define BZ_FINISH_OK 3 -#define BZ_STREAM_END 4 -#define BZ_SEQUENCE_ERROR (-1) -#define BZ_PARAM_ERROR (-2) -#define BZ_MEM_ERROR (-3) -#define BZ_DATA_ERROR (-4) -#define BZ_DATA_ERROR_MAGIC (-5) -#define BZ_IO_ERROR (-6) -#define BZ_UNEXPECTED_EOF (-7) -#define BZ_OUTBUFF_FULL (-8) -#define BZ_CONFIG_ERROR (-9) - -typedef - struct { - char *next_in; - unsigned int avail_in; - unsigned int total_in_lo32; - unsigned int total_in_hi32; - - char *next_out; - unsigned int avail_out; - unsigned int total_out_lo32; - unsigned int total_out_hi32; - - void *state; - - void *(*bzalloc)(void *,int,int); - void (*bzfree)(void *,void *); - void *opaque; - } - bz_stream; - - -#ifndef BZ_IMPORT -#define BZ_EXPORT -#endif - -#ifdef _WIN32 -# include -# include -# ifdef small - /* windows.h define small to char */ -# undef small -# endif -# ifdef BZ_EXPORT -# define BZ_API(func) WINAPI func -# define BZ_EXTERN extern -# else - /* import windows dll dynamically */ -# define BZ_API(func) (WINAPI * func) -# define BZ_EXTERN -# endif -#else -# define BZ_API(func) func -# define BZ_EXTERN extern -#endif - - -/*-- Core (low-level) library functions --*/ - -BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( - bz_stream* strm, - int blockSize100k, - int verbosity, - int workFactor - ); - -BZ_EXTERN int BZ_API(BZ2_bzCompress) ( - bz_stream* strm, - int action - ); - -BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( - bz_stream* strm - ); - -BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( - bz_stream *strm, - int verbosity, - int small - ); - -BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( - bz_stream* strm - ); - -BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( - bz_stream *strm - ); - - - -/*-- High(er) level library functions --*/ - -#ifndef BZ_NO_STDIO -#define BZ_MAX_UNUSED 5000 - -typedef void BZFILE; - -BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( - int* bzerror, - FILE* f, - int verbosity, - int small, - void* unused, - int nUnused - ); - -BZ_EXTERN void BZ_API(BZ2_bzReadClose) ( - int* bzerror, - BZFILE* b - ); - -BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( - int* bzerror, - BZFILE* b, - void** unused, - int* nUnused - ); - -BZ_EXTERN int BZ_API(BZ2_bzRead) ( - int* bzerror, - BZFILE* b, - void* buf, - int len - ); - -BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( - int* bzerror, - FILE* f, - int blockSize100k, - int verbosity, - int workFactor - ); - -BZ_EXTERN void BZ_API(BZ2_bzWrite) ( - int* bzerror, - BZFILE* b, - void* buf, - int len - ); - -BZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( - int* bzerror, - BZFILE* b, - int abandon, - unsigned int* nbytes_in, - unsigned int* nbytes_out - ); - -BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( - int* bzerror, - BZFILE* b, - int abandon, - unsigned int* nbytes_in_lo32, - unsigned int* nbytes_in_hi32, - unsigned int* nbytes_out_lo32, - unsigned int* nbytes_out_hi32 - ); -#endif - - -/*-- Utility functions --*/ - -BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( - char* dest, - unsigned int* destLen, - char* source, - unsigned int sourceLen, - int blockSize100k, - int verbosity, - int workFactor - ); - -BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( - char* dest, - unsigned int* destLen, - char* source, - unsigned int sourceLen, - int small, - int verbosity - ); - - -/*-- - Code contributed by Yoshioka Tsuneo - (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.jp), - to support better zlib compatibility. - This code is not _officially_ part of libbzip2 (yet); - I haven't tested it, documented it, or considered the - threading-safeness of it. - If this code breaks, please contact both Yoshioka and me. ---*/ - -BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) ( - void - ); - -#ifndef BZ_NO_STDIO -BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) ( - const char *path, - const char *mode - ); - -BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) ( - int fd, - const char *mode - ); - -BZ_EXTERN int BZ_API(BZ2_bzread) ( - BZFILE* b, - void* buf, - int len - ); - -BZ_EXTERN int BZ_API(BZ2_bzwrite) ( - BZFILE* b, - void* buf, - int len - ); - -BZ_EXTERN int BZ_API(BZ2_bzflush) ( - BZFILE* b - ); - -BZ_EXTERN void BZ_API(BZ2_bzclose) ( - BZFILE* b - ); - -BZ_EXTERN const char * BZ_API(BZ2_bzerror) ( - BZFILE *b, - int *errnum - ); -#endif - -#ifdef __cplusplus -} -#endif - -#endif - -/*-------------------------------------------------------------*/ -/*--- end bzlib.h ---*/ -/*-------------------------------------------------------------*/ diff --git a/winsup/bz2lib/bzlib_private.h b/winsup/bz2lib/bzlib_private.h deleted file mode 100644 index fb51c7a1d..000000000 --- a/winsup/bz2lib/bzlib_private.h +++ /dev/null @@ -1,530 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Private header file for the library. ---*/ -/*--- bzlib_private.h ---*/ -/*-------------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - -#ifndef _BZLIB_PRIVATE_H -#define _BZLIB_PRIVATE_H - -#include - -#ifndef BZ_NO_STDIO -#include -#include -#include -#endif - -#include "bzlib.h" - - - -/*-- General stuff. --*/ - -#define BZ_VERSION "1.0.1, 23-June-2000" - -typedef char Char; -typedef unsigned char Bool; -typedef unsigned char UChar; -typedef int Int32; -typedef unsigned int UInt32; -typedef short Int16; -typedef unsigned short UInt16; - -#define True ((Bool)1) -#define False ((Bool)0) - -#ifndef __GNUC__ -#define __inline__ /* */ -#endif - -#ifndef BZ_NO_STDIO -extern void BZ2_bz__AssertH__fail ( int errcode ); -#define AssertH(cond,errcode) \ - { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); } -#if BZ_DEBUG -#define AssertD(cond,msg) \ - { if (!(cond)) { \ - fprintf ( stderr, \ - "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\ - exit(1); \ - }} -#else -#define AssertD(cond,msg) /* */ -#endif -#define VPrintf0(zf) \ - fprintf(stderr,zf) -#define VPrintf1(zf,za1) \ - fprintf(stderr,zf,za1) -#define VPrintf2(zf,za1,za2) \ - fprintf(stderr,zf,za1,za2) -#define VPrintf3(zf,za1,za2,za3) \ - fprintf(stderr,zf,za1,za2,za3) -#define VPrintf4(zf,za1,za2,za3,za4) \ - fprintf(stderr,zf,za1,za2,za3,za4) -#define VPrintf5(zf,za1,za2,za3,za4,za5) \ - fprintf(stderr,zf,za1,za2,za3,za4,za5) -#else -extern void bz_internal_error ( int errcode ); -#define AssertH(cond,errcode) \ - { if (!(cond)) bz_internal_error ( errcode ); } -#define AssertD(cond,msg) /* */ -#define VPrintf0(zf) /* */ -#define VPrintf1(zf,za1) /* */ -#define VPrintf2(zf,za1,za2) /* */ -#define VPrintf3(zf,za1,za2,za3) /* */ -#define VPrintf4(zf,za1,za2,za3,za4) /* */ -#define VPrintf5(zf,za1,za2,za3,za4,za5) /* */ -#endif - - -#define BZALLOC(nnn) (strm->bzalloc)(strm->opaque,(nnn),1) -#define BZFREE(ppp) (strm->bzfree)(strm->opaque,(ppp)) - - -/*-- Constants for the back end. --*/ - -#define BZ_MAX_ALPHA_SIZE 258 -#define BZ_MAX_CODE_LEN 23 - -#define BZ_RUNA 0 -#define BZ_RUNB 1 - -#define BZ_N_GROUPS 6 -#define BZ_G_SIZE 50 -#define BZ_N_ITERS 4 - -#define BZ_MAX_SELECTORS (2 + (900000 / BZ_G_SIZE)) - - - -/*-- Stuff for randomising repetitive blocks. --*/ - -extern Int32 BZ2_rNums[512]; - -#define BZ_RAND_DECLS \ - Int32 rNToGo; \ - Int32 rTPos \ - -#define BZ_RAND_INIT_MASK \ - s->rNToGo = 0; \ - s->rTPos = 0 \ - -#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0) - -#define BZ_RAND_UPD_MASK \ - if (s->rNToGo == 0) { \ - s->rNToGo = BZ2_rNums[s->rTPos]; \ - s->rTPos++; \ - if (s->rTPos == 512) s->rTPos = 0; \ - } \ - s->rNToGo--; - - - -/*-- Stuff for doing CRCs. --*/ - -extern UInt32 BZ2_crc32Table[256]; - -#define BZ_INITIALISE_CRC(crcVar) \ -{ \ - crcVar = 0xffffffffL; \ -} - -#define BZ_FINALISE_CRC(crcVar) \ -{ \ - crcVar = ~(crcVar); \ -} - -#define BZ_UPDATE_CRC(crcVar,cha) \ -{ \ - crcVar = (crcVar << 8) ^ \ - BZ2_crc32Table[(crcVar >> 24) ^ \ - ((UChar)cha)]; \ -} - - - -/*-- States and modes for compression. --*/ - -#define BZ_M_IDLE 1 -#define BZ_M_RUNNING 2 -#define BZ_M_FLUSHING 3 -#define BZ_M_FINISHING 4 - -#define BZ_S_OUTPUT 1 -#define BZ_S_INPUT 2 - -#define BZ_N_RADIX 2 -#define BZ_N_QSORT 12 -#define BZ_N_SHELL 18 -#define BZ_N_OVERSHOOT (BZ_N_RADIX + BZ_N_QSORT + BZ_N_SHELL + 2) - - - - -/*-- Structure holding all the compression-side stuff. --*/ - -typedef - struct { - /* pointer back to the struct bz_stream */ - bz_stream* strm; - - /* mode this stream is in, and whether inputting */ - /* or outputting data */ - Int32 mode; - Int32 state; - - /* remembers avail_in when flush/finish requested */ - UInt32 avail_in_expect; - - /* for doing the block sorting */ - UInt32* arr1; - UInt32* arr2; - UInt32* ftab; - Int32 origPtr; - - /* aliases for arr1 and arr2 */ - UInt32* ptr; - UChar* block; - UInt16* mtfv; - UChar* zbits; - - /* for deciding when to use the fallback sorting algorithm */ - Int32 workFactor; - - /* run-length-encoding of the input */ - UInt32 state_in_ch; - Int32 state_in_len; - BZ_RAND_DECLS; - - /* input and output limits and current posns */ - Int32 nblock; - Int32 nblockMAX; - Int32 numZ; - Int32 state_out_pos; - - /* map of bytes used in block */ - Int32 nInUse; - Bool inUse[256]; - UChar unseqToSeq[256]; - - /* the buffer for bit stream creation */ - UInt32 bsBuff; - Int32 bsLive; - - /* block and combined CRCs */ - UInt32 blockCRC; - UInt32 combinedCRC; - - /* misc administratium */ - Int32 verbosity; - Int32 blockNo; - Int32 blockSize100k; - - /* stuff for coding the MTF values */ - Int32 nMTF; - Int32 mtfFreq [BZ_MAX_ALPHA_SIZE]; - UChar selector [BZ_MAX_SELECTORS]; - UChar selectorMtf[BZ_MAX_SELECTORS]; - - UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 code [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 rfreq [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - /* second dimension: only 3 needed; 4 makes index calculations faster */ - UInt32 len_pack[BZ_MAX_ALPHA_SIZE][4]; - - } - EState; - - - -/*-- externs for compression. --*/ - -extern void -BZ2_blockSort ( EState* ); - -extern void -BZ2_compressBlock ( EState*, Bool ); - -extern void -BZ2_bsInitWrite ( EState* ); - -extern void -BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 ); - -extern void -BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 ); - - - -/*-- states for decompression. --*/ - -#define BZ_X_IDLE 1 -#define BZ_X_OUTPUT 2 - -#define BZ_X_MAGIC_1 10 -#define BZ_X_MAGIC_2 11 -#define BZ_X_MAGIC_3 12 -#define BZ_X_MAGIC_4 13 -#define BZ_X_BLKHDR_1 14 -#define BZ_X_BLKHDR_2 15 -#define BZ_X_BLKHDR_3 16 -#define BZ_X_BLKHDR_4 17 -#define BZ_X_BLKHDR_5 18 -#define BZ_X_BLKHDR_6 19 -#define BZ_X_BCRC_1 20 -#define BZ_X_BCRC_2 21 -#define BZ_X_BCRC_3 22 -#define BZ_X_BCRC_4 23 -#define BZ_X_RANDBIT 24 -#define BZ_X_ORIGPTR_1 25 -#define BZ_X_ORIGPTR_2 26 -#define BZ_X_ORIGPTR_3 27 -#define BZ_X_MAPPING_1 28 -#define BZ_X_MAPPING_2 29 -#define BZ_X_SELECTOR_1 30 -#define BZ_X_SELECTOR_2 31 -#define BZ_X_SELECTOR_3 32 -#define BZ_X_CODING_1 33 -#define BZ_X_CODING_2 34 -#define BZ_X_CODING_3 35 -#define BZ_X_MTF_1 36 -#define BZ_X_MTF_2 37 -#define BZ_X_MTF_3 38 -#define BZ_X_MTF_4 39 -#define BZ_X_MTF_5 40 -#define BZ_X_MTF_6 41 -#define BZ_X_ENDHDR_2 42 -#define BZ_X_ENDHDR_3 43 -#define BZ_X_ENDHDR_4 44 -#define BZ_X_ENDHDR_5 45 -#define BZ_X_ENDHDR_6 46 -#define BZ_X_CCRC_1 47 -#define BZ_X_CCRC_2 48 -#define BZ_X_CCRC_3 49 -#define BZ_X_CCRC_4 50 - - - -/*-- Constants for the fast MTF decoder. --*/ - -#define MTFA_SIZE 4096 -#define MTFL_SIZE 16 - - - -/*-- Structure holding all the decompression-side stuff. --*/ - -typedef - struct { - /* pointer back to the struct bz_stream */ - bz_stream* strm; - - /* state indicator for this stream */ - Int32 state; - - /* for doing the final run-length decoding */ - UChar state_out_ch; - Int32 state_out_len; - Bool blockRandomised; - BZ_RAND_DECLS; - - /* the buffer for bit stream reading */ - UInt32 bsBuff; - Int32 bsLive; - - /* misc administratium */ - Int32 blockSize100k; - Bool smallDecompress; - Int32 currBlockNo; - Int32 verbosity; - - /* for undoing the Burrows-Wheeler transform */ - Int32 origPtr; - UInt32 tPos; - Int32 k0; - Int32 unzftab[256]; - Int32 nblock_used; - Int32 cftab[257]; - Int32 cftabCopy[257]; - - /* for undoing the Burrows-Wheeler transform (FAST) */ - UInt32 *tt; - - /* for undoing the Burrows-Wheeler transform (SMALL) */ - UInt16 *ll16; - UChar *ll4; - - /* stored and calculated CRCs */ - UInt32 storedBlockCRC; - UInt32 storedCombinedCRC; - UInt32 calculatedBlockCRC; - UInt32 calculatedCombinedCRC; - - /* map of bytes used in block */ - Int32 nInUse; - Bool inUse[256]; - Bool inUse16[16]; - UChar seqToUnseq[256]; - - /* for decoding the MTF values */ - UChar mtfa [MTFA_SIZE]; - Int32 mtfbase[256 / MTFL_SIZE]; - UChar selector [BZ_MAX_SELECTORS]; - UChar selectorMtf[BZ_MAX_SELECTORS]; - UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - - Int32 limit [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 base [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 perm [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 minLens[BZ_N_GROUPS]; - - /* save area for scalars in the main decompress code */ - Int32 save_i; - Int32 save_j; - Int32 save_t; - Int32 save_alphaSize; - Int32 save_nGroups; - Int32 save_nSelectors; - Int32 save_EOB; - Int32 save_groupNo; - Int32 save_groupPos; - Int32 save_nextSym; - Int32 save_nblockMAX; - Int32 save_nblock; - Int32 save_es; - Int32 save_N; - Int32 save_curr; - Int32 save_zt; - Int32 save_zn; - Int32 save_zvec; - Int32 save_zj; - Int32 save_gSel; - Int32 save_gMinlen; - Int32* save_gLimit; - Int32* save_gBase; - Int32* save_gPerm; - - } - DState; - - - -/*-- Macros for decompression. --*/ - -#define BZ_GET_FAST(cccc) \ - s->tPos = s->tt[s->tPos]; \ - cccc = (UChar)(s->tPos & 0xff); \ - s->tPos >>= 8; - -#define BZ_GET_FAST_C(cccc) \ - c_tPos = c_tt[c_tPos]; \ - cccc = (UChar)(c_tPos & 0xff); \ - c_tPos >>= 8; - -#define SET_LL4(i,n) \ - { if (((i) & 0x1) == 0) \ - s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0xf0) | (n); else \ - s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0x0f) | ((n) << 4); \ - } - -#define GET_LL4(i) \ - ((((UInt32)(s->ll4[(i) >> 1])) >> (((i) << 2) & 0x4)) & 0xF) - -#define SET_LL(i,n) \ - { s->ll16[i] = (UInt16)(n & 0x0000ffff); \ - SET_LL4(i, n >> 16); \ - } - -#define GET_LL(i) \ - (((UInt32)s->ll16[i]) | (GET_LL4(i) << 16)) - -#define BZ_GET_SMALL(cccc) \ - cccc = BZ2_indexIntoF ( s->tPos, s->cftab ); \ - s->tPos = GET_LL(s->tPos); - - -/*-- externs for decompression. --*/ - -extern Int32 -BZ2_indexIntoF ( Int32, Int32* ); - -extern Int32 -BZ2_decompress ( DState* ); - -extern void -BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*, - Int32, Int32, Int32 ); - - -#endif - - -/*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/ - -#ifdef BZ_NO_STDIO -#ifndef NULL -#define NULL 0 -#endif -#endif - - -/*-------------------------------------------------------------*/ -/*--- end bzlib_private.h ---*/ -/*-------------------------------------------------------------*/ diff --git a/winsup/bz2lib/compress.c b/winsup/bz2lib/compress.c deleted file mode 100644 index cc5e31d6f..000000000 --- a/winsup/bz2lib/compress.c +++ /dev/null @@ -1,714 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Compression machinery (not incl block sorting) ---*/ -/*--- compress.c ---*/ -/*-------------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - -/*-- - CHANGES - ~~~~~~~ - 0.9.0 -- original version. - - 0.9.0a/b -- no changes in this file. - - 0.9.0c - * changed setting of nGroups in sendMTFValues() so as to - do a bit better on small files ---*/ - -#include "bzlib_private.h" - - -/*---------------------------------------------------*/ -/*--- Bit stream I/O ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------------*/ -void BZ2_bsInitWrite ( EState* s ) -{ - s->bsLive = 0; - s->bsBuff = 0; -} - - -/*---------------------------------------------------*/ -static -void bsFinishWrite ( EState* s ) -{ - while (s->bsLive > 0) { - s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24); - s->numZ++; - s->bsBuff <<= 8; - s->bsLive -= 8; - } -} - - -/*---------------------------------------------------*/ -#define bsNEEDW(nz) \ -{ \ - while (s->bsLive >= 8) { \ - s->zbits[s->numZ] \ - = (UChar)(s->bsBuff >> 24); \ - s->numZ++; \ - s->bsBuff <<= 8; \ - s->bsLive -= 8; \ - } \ -} - - -/*---------------------------------------------------*/ -static -__inline__ -void bsW ( EState* s, Int32 n, UInt32 v ) -{ - bsNEEDW ( n ); - s->bsBuff |= (v << (32 - s->bsLive - n)); - s->bsLive += n; -} - - -/*---------------------------------------------------*/ -static -void bsPutUInt32 ( EState* s, UInt32 u ) -{ - bsW ( s, 8, (u >> 24) & 0xffL ); - bsW ( s, 8, (u >> 16) & 0xffL ); - bsW ( s, 8, (u >> 8) & 0xffL ); - bsW ( s, 8, u & 0xffL ); -} - - -/*---------------------------------------------------*/ -static -void bsPutUChar ( EState* s, UChar c ) -{ - bsW( s, 8, (UInt32)c ); -} - - -/*---------------------------------------------------*/ -/*--- The back end proper ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------------*/ -static -void makeMaps_e ( EState* s ) -{ - Int32 i; - s->nInUse = 0; - for (i = 0; i < 256; i++) - if (s->inUse[i]) { - s->unseqToSeq[i] = s->nInUse; - s->nInUse++; - } -} - - -/*---------------------------------------------------*/ -static -void generateMTFValues ( EState* s ) -{ - UChar yy[256]; - Int32 i, j; - Int32 zPend; - Int32 wr; - Int32 EOB; - - /* - After sorting (eg, here), - s->arr1 [ 0 .. s->nblock-1 ] holds sorted order, - and - ((UChar*)s->arr2) [ 0 .. s->nblock-1 ] - holds the original block data. - - The first thing to do is generate the MTF values, - and put them in - ((UInt16*)s->arr1) [ 0 .. s->nblock-1 ]. - Because there are strictly fewer or equal MTF values - than block values, ptr values in this area are overwritten - with MTF values only when they are no longer needed. - - The final compressed bitstream is generated into the - area starting at - (UChar*) (&((UChar*)s->arr2)[s->nblock]) - - These storage aliases are set up in bzCompressInit(), - except for the last one, which is arranged in - compressBlock(). - */ - UInt32* ptr = s->ptr; - UChar* block = s->block; - UInt16* mtfv = s->mtfv; - - makeMaps_e ( s ); - EOB = s->nInUse+1; - - for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0; - - wr = 0; - zPend = 0; - for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i; - - for (i = 0; i < s->nblock; i++) { - UChar ll_i; - AssertD ( wr <= i, "generateMTFValues(1)" ); - j = ptr[i]-1; if (j < 0) j += s->nblock; - ll_i = s->unseqToSeq[block[j]]; - AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" ); - - if (yy[0] == ll_i) { - zPend++; - } else { - - if (zPend > 0) { - zPend--; - while (True) { - if (zPend & 1) { - mtfv[wr] = BZ_RUNB; wr++; - s->mtfFreq[BZ_RUNB]++; - } else { - mtfv[wr] = BZ_RUNA; wr++; - s->mtfFreq[BZ_RUNA]++; - } - if (zPend < 2) break; - zPend = (zPend - 2) / 2; - }; - zPend = 0; - } - { - register UChar rtmp; - register UChar* ryy_j; - register UChar rll_i; - rtmp = yy[1]; - yy[1] = yy[0]; - ryy_j = &(yy[1]); - rll_i = ll_i; - while ( rll_i != rtmp ) { - register UChar rtmp2; - ryy_j++; - rtmp2 = rtmp; - rtmp = *ryy_j; - *ryy_j = rtmp2; - }; - yy[0] = rtmp; - j = ryy_j - &(yy[0]); - mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++; - } - - } - } - - if (zPend > 0) { - zPend--; - while (True) { - if (zPend & 1) { - mtfv[wr] = BZ_RUNB; wr++; - s->mtfFreq[BZ_RUNB]++; - } else { - mtfv[wr] = BZ_RUNA; wr++; - s->mtfFreq[BZ_RUNA]++; - } - if (zPend < 2) break; - zPend = (zPend - 2) / 2; - }; - zPend = 0; - } - - mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++; - - s->nMTF = wr; -} - - -/*---------------------------------------------------*/ -#define BZ_LESSER_ICOST 0 -#define BZ_GREATER_ICOST 15 - -static -void sendMTFValues ( EState* s ) -{ - Int32 v, t, i, j, gs, ge, totc, bt, bc, iter; - Int32 nSelectors, alphaSize, minLen, maxLen, selCtr; - Int32 nGroups, nBytes; - - /*-- - UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - is a global since the decoder also needs it. - - Int32 code[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 rfreq[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - are also globals only used in this proc. - Made global to keep stack frame size small. - --*/ - - - UInt16 cost[BZ_N_GROUPS]; - Int32 fave[BZ_N_GROUPS]; - - UInt16* mtfv = s->mtfv; - - if (s->verbosity >= 3) - VPrintf3( " %d in block, %d after MTF & 1-2 coding, " - "%d+2 syms in use\n", - s->nblock, s->nMTF, s->nInUse ); - - alphaSize = s->nInUse+2; - for (t = 0; t < BZ_N_GROUPS; t++) - for (v = 0; v < alphaSize; v++) - s->len[t][v] = BZ_GREATER_ICOST; - - /*--- Decide how many coding tables to use ---*/ - AssertH ( s->nMTF > 0, 3001 ); - if (s->nMTF < 200) nGroups = 2; else - if (s->nMTF < 600) nGroups = 3; else - if (s->nMTF < 1200) nGroups = 4; else - if (s->nMTF < 2400) nGroups = 5; else - nGroups = 6; - - /*--- Generate an initial set of coding tables ---*/ - { - Int32 nPart, remF, tFreq, aFreq; - - nPart = nGroups; - remF = s->nMTF; - gs = 0; - while (nPart > 0) { - tFreq = remF / nPart; - ge = gs-1; - aFreq = 0; - while (aFreq < tFreq && ge < alphaSize-1) { - ge++; - aFreq += s->mtfFreq[ge]; - } - - if (ge > gs - && nPart != nGroups && nPart != 1 - && ((nGroups-nPart) % 2 == 1)) { - aFreq -= s->mtfFreq[ge]; - ge--; - } - - if (s->verbosity >= 3) - VPrintf5( " initial group %d, [%d .. %d], " - "has %d syms (%4.1f%%)\n", - nPart, gs, ge, aFreq, - (100.0 * (float)aFreq) / (float)(s->nMTF) ); - - for (v = 0; v < alphaSize; v++) - if (v >= gs && v <= ge) - s->len[nPart-1][v] = BZ_LESSER_ICOST; else - s->len[nPart-1][v] = BZ_GREATER_ICOST; - - nPart--; - gs = ge+1; - remF -= aFreq; - } - } - - /*--- - Iterate up to BZ_N_ITERS times to improve the tables. - ---*/ - for (iter = 0; iter < BZ_N_ITERS; iter++) { - - for (t = 0; t < nGroups; t++) fave[t] = 0; - - for (t = 0; t < nGroups; t++) - for (v = 0; v < alphaSize; v++) - s->rfreq[t][v] = 0; - - /*--- - Set up an auxiliary length table which is used to fast-track - the common case (nGroups == 6). - ---*/ - if (nGroups == 6) { - for (v = 0; v < alphaSize; v++) { - s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v]; - s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v]; - s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v]; - } - } - - nSelectors = 0; - totc = 0; - gs = 0; - while (True) { - - /*--- Set group start & end marks. --*/ - if (gs >= s->nMTF) break; - ge = gs + BZ_G_SIZE - 1; - if (ge >= s->nMTF) ge = s->nMTF-1; - - /*-- - Calculate the cost of this group as coded - by each of the coding tables. - --*/ - for (t = 0; t < nGroups; t++) cost[t] = 0; - - if (nGroups == 6 && 50 == ge-gs+1) { - /*--- fast track the common case ---*/ - register UInt32 cost01, cost23, cost45; - register UInt16 icv; - cost01 = cost23 = cost45 = 0; - -# define BZ_ITER(nn) \ - icv = mtfv[gs+(nn)]; \ - cost01 += s->len_pack[icv][0]; \ - cost23 += s->len_pack[icv][1]; \ - cost45 += s->len_pack[icv][2]; \ - - BZ_ITER(0); BZ_ITER(1); BZ_ITER(2); BZ_ITER(3); BZ_ITER(4); - BZ_ITER(5); BZ_ITER(6); BZ_ITER(7); BZ_ITER(8); BZ_ITER(9); - BZ_ITER(10); BZ_ITER(11); BZ_ITER(12); BZ_ITER(13); BZ_ITER(14); - BZ_ITER(15); BZ_ITER(16); BZ_ITER(17); BZ_ITER(18); BZ_ITER(19); - BZ_ITER(20); BZ_ITER(21); BZ_ITER(22); BZ_ITER(23); BZ_ITER(24); - BZ_ITER(25); BZ_ITER(26); BZ_ITER(27); BZ_ITER(28); BZ_ITER(29); - BZ_ITER(30); BZ_ITER(31); BZ_ITER(32); BZ_ITER(33); BZ_ITER(34); - BZ_ITER(35); BZ_ITER(36); BZ_ITER(37); BZ_ITER(38); BZ_ITER(39); - BZ_ITER(40); BZ_ITER(41); BZ_ITER(42); BZ_ITER(43); BZ_ITER(44); - BZ_ITER(45); BZ_ITER(46); BZ_ITER(47); BZ_ITER(48); BZ_ITER(49); - -# undef BZ_ITER - - cost[0] = cost01 & 0xffff; cost[1] = cost01 >> 16; - cost[2] = cost23 & 0xffff; cost[3] = cost23 >> 16; - cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16; - - } else { - /*--- slow version which correctly handles all situations ---*/ - for (i = gs; i <= ge; i++) { - UInt16 icv = mtfv[i]; - for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv]; - } - } - - /*-- - Find the coding table which is best for this group, - and record its identity in the selector table. - --*/ - bc = 999999999; bt = -1; - for (t = 0; t < nGroups; t++) - if (cost[t] < bc) { bc = cost[t]; bt = t; }; - totc += bc; - fave[bt]++; - s->selector[nSelectors] = bt; - nSelectors++; - - /*-- - Increment the symbol frequencies for the selected table. - --*/ - if (nGroups == 6 && 50 == ge-gs+1) { - /*--- fast track the common case ---*/ - -# define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++ - - BZ_ITUR(0); BZ_ITUR(1); BZ_ITUR(2); BZ_ITUR(3); BZ_ITUR(4); - BZ_ITUR(5); BZ_ITUR(6); BZ_ITUR(7); BZ_ITUR(8); BZ_ITUR(9); - BZ_ITUR(10); BZ_ITUR(11); BZ_ITUR(12); BZ_ITUR(13); BZ_ITUR(14); - BZ_ITUR(15); BZ_ITUR(16); BZ_ITUR(17); BZ_ITUR(18); BZ_ITUR(19); - BZ_ITUR(20); BZ_ITUR(21); BZ_ITUR(22); BZ_ITUR(23); BZ_ITUR(24); - BZ_ITUR(25); BZ_ITUR(26); BZ_ITUR(27); BZ_ITUR(28); BZ_ITUR(29); - BZ_ITUR(30); BZ_ITUR(31); BZ_ITUR(32); BZ_ITUR(33); BZ_ITUR(34); - BZ_ITUR(35); BZ_ITUR(36); BZ_ITUR(37); BZ_ITUR(38); BZ_ITUR(39); - BZ_ITUR(40); BZ_ITUR(41); BZ_ITUR(42); BZ_ITUR(43); BZ_ITUR(44); - BZ_ITUR(45); BZ_ITUR(46); BZ_ITUR(47); BZ_ITUR(48); BZ_ITUR(49); - -# undef BZ_ITUR - - } else { - /*--- slow version which correctly handles all situations ---*/ - for (i = gs; i <= ge; i++) - s->rfreq[bt][ mtfv[i] ]++; - } - - gs = ge+1; - } - if (s->verbosity >= 3) { - VPrintf2 ( " pass %d: size is %d, grp uses are ", - iter+1, totc/8 ); - for (t = 0; t < nGroups; t++) - VPrintf1 ( "%d ", fave[t] ); - VPrintf0 ( "\n" ); - } - - /*-- - Recompute the tables based on the accumulated frequencies. - --*/ - for (t = 0; t < nGroups; t++) - BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]), - alphaSize, 20 ); - } - - - AssertH( nGroups < 8, 3002 ); - AssertH( nSelectors < 32768 && - nSelectors <= (2 + (900000 / BZ_G_SIZE)), - 3003 ); - - - /*--- Compute MTF values for the selectors. ---*/ - { - UChar pos[BZ_N_GROUPS], ll_i, tmp2, tmp; - for (i = 0; i < nGroups; i++) pos[i] = i; - for (i = 0; i < nSelectors; i++) { - ll_i = s->selector[i]; - j = 0; - tmp = pos[j]; - while ( ll_i != tmp ) { - j++; - tmp2 = tmp; - tmp = pos[j]; - pos[j] = tmp2; - }; - pos[0] = tmp; - s->selectorMtf[i] = j; - } - }; - - /*--- Assign actual codes for the tables. --*/ - for (t = 0; t < nGroups; t++) { - minLen = 32; - maxLen = 0; - for (i = 0; i < alphaSize; i++) { - if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; - if (s->len[t][i] < minLen) minLen = s->len[t][i]; - } - AssertH ( !(maxLen > 20), 3004 ); - AssertH ( !(minLen < 1), 3005 ); - BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]), - minLen, maxLen, alphaSize ); - } - - /*--- Transmit the mapping table. ---*/ - { - Bool inUse16[16]; - for (i = 0; i < 16; i++) { - inUse16[i] = False; - for (j = 0; j < 16; j++) - if (s->inUse[i * 16 + j]) inUse16[i] = True; - } - - nBytes = s->numZ; - for (i = 0; i < 16; i++) - if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0); - - for (i = 0; i < 16; i++) - if (inUse16[i]) - for (j = 0; j < 16; j++) { - if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0); - } - - if (s->verbosity >= 3) - VPrintf1( " bytes: mapping %d, ", s->numZ-nBytes ); - } - - /*--- Now the selectors. ---*/ - nBytes = s->numZ; - bsW ( s, 3, nGroups ); - bsW ( s, 15, nSelectors ); - for (i = 0; i < nSelectors; i++) { - for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1); - bsW(s,1,0); - } - if (s->verbosity >= 3) - VPrintf1( "selectors %d, ", s->numZ-nBytes ); - - /*--- Now the coding tables. ---*/ - nBytes = s->numZ; - - for (t = 0; t < nGroups; t++) { - Int32 curr = s->len[t][0]; - bsW ( s, 5, curr ); - for (i = 0; i < alphaSize; i++) { - while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ }; - while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ }; - bsW ( s, 1, 0 ); - } - } - - if (s->verbosity >= 3) - VPrintf1 ( "code lengths %d, ", s->numZ-nBytes ); - - /*--- And finally, the block data proper ---*/ - nBytes = s->numZ; - selCtr = 0; - gs = 0; - while (True) { - if (gs >= s->nMTF) break; - ge = gs + BZ_G_SIZE - 1; - if (ge >= s->nMTF) ge = s->nMTF-1; - AssertH ( s->selector[selCtr] < nGroups, 3006 ); - - if (nGroups == 6 && 50 == ge-gs+1) { - /*--- fast track the common case ---*/ - UInt16 mtfv_i; - UChar* s_len_sel_selCtr - = &(s->len[s->selector[selCtr]][0]); - Int32* s_code_sel_selCtr - = &(s->code[s->selector[selCtr]][0]); - -# define BZ_ITAH(nn) \ - mtfv_i = mtfv[gs+(nn)]; \ - bsW ( s, \ - s_len_sel_selCtr[mtfv_i], \ - s_code_sel_selCtr[mtfv_i] ) - - BZ_ITAH(0); BZ_ITAH(1); BZ_ITAH(2); BZ_ITAH(3); BZ_ITAH(4); - BZ_ITAH(5); BZ_ITAH(6); BZ_ITAH(7); BZ_ITAH(8); BZ_ITAH(9); - BZ_ITAH(10); BZ_ITAH(11); BZ_ITAH(12); BZ_ITAH(13); BZ_ITAH(14); - BZ_ITAH(15); BZ_ITAH(16); BZ_ITAH(17); BZ_ITAH(18); BZ_ITAH(19); - BZ_ITAH(20); BZ_ITAH(21); BZ_ITAH(22); BZ_ITAH(23); BZ_ITAH(24); - BZ_ITAH(25); BZ_ITAH(26); BZ_ITAH(27); BZ_ITAH(28); BZ_ITAH(29); - BZ_ITAH(30); BZ_ITAH(31); BZ_ITAH(32); BZ_ITAH(33); BZ_ITAH(34); - BZ_ITAH(35); BZ_ITAH(36); BZ_ITAH(37); BZ_ITAH(38); BZ_ITAH(39); - BZ_ITAH(40); BZ_ITAH(41); BZ_ITAH(42); BZ_ITAH(43); BZ_ITAH(44); - BZ_ITAH(45); BZ_ITAH(46); BZ_ITAH(47); BZ_ITAH(48); BZ_ITAH(49); - -# undef BZ_ITAH - - } else { - /*--- slow version which correctly handles all situations ---*/ - for (i = gs; i <= ge; i++) { - bsW ( s, - s->len [s->selector[selCtr]] [mtfv[i]], - s->code [s->selector[selCtr]] [mtfv[i]] ); - } - } - - - gs = ge+1; - selCtr++; - } - AssertH( selCtr == nSelectors, 3007 ); - - if (s->verbosity >= 3) - VPrintf1( "codes %d\n", s->numZ-nBytes ); -} - - -/*---------------------------------------------------*/ -void BZ2_compressBlock ( EState* s, Bool is_last_block ) -{ - if (s->nblock > 0) { - - BZ_FINALISE_CRC ( s->blockCRC ); - s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31); - s->combinedCRC ^= s->blockCRC; - if (s->blockNo > 1) s->numZ = 0; - - if (s->verbosity >= 2) - VPrintf4( " block %d: crc = 0x%8x, " - "combined CRC = 0x%8x, size = %d\n", - s->blockNo, s->blockCRC, s->combinedCRC, s->nblock ); - - BZ2_blockSort ( s ); - } - - s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]); - - /*-- If this is the first block, create the stream header. --*/ - if (s->blockNo == 1) { - BZ2_bsInitWrite ( s ); - bsPutUChar ( s, 'B' ); - bsPutUChar ( s, 'Z' ); - bsPutUChar ( s, 'h' ); - bsPutUChar ( s, (UChar)('0' + s->blockSize100k) ); - } - - if (s->nblock > 0) { - - bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 ); - bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 ); - bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 ); - - /*-- Now the block's CRC, so it is in a known place. --*/ - bsPutUInt32 ( s, s->blockCRC ); - - /*-- - Now a single bit indicating (non-)randomisation. - As of version 0.9.5, we use a better sorting algorithm - which makes randomisation unnecessary. So always set - the randomised bit to 'no'. Of course, the decoder - still needs to be able to handle randomised blocks - so as to maintain backwards compatibility with - older versions of bzip2. - --*/ - bsW(s,1,0); - - bsW ( s, 24, s->origPtr ); - generateMTFValues ( s ); - sendMTFValues ( s ); - } - - - /*-- If this is the last block, add the stream trailer. --*/ - if (is_last_block) { - - bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 ); - bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 ); - bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 ); - bsPutUInt32 ( s, s->combinedCRC ); - if (s->verbosity >= 2) - VPrintf1( " final combined CRC = 0x%x\n ", s->combinedCRC ); - bsFinishWrite ( s ); - } -} - - -/*-------------------------------------------------------------*/ -/*--- end compress.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/winsup/bz2lib/configure b/winsup/bz2lib/configure deleted file mode 100755 index c45c7001c..000000000 --- a/winsup/bz2lib/configure +++ /dev/null @@ -1,1896 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: -ac_help="$ac_help - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer" - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=bzlib.h - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - -ac_aux_dir= -for ac_dir in `cd $srcdir/../..;pwd` $srcdir/`cd $srcdir/../..;pwd`; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in `cd $srcdir/../..;pwd` $srcdir/`cd $srcdir/../..;pwd`" 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:559: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:612: checking whether build environment is sane" >&5 -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "$*" != "X $srcdir/configure conftestfile" \ - && test "$*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { echo "configure: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" 1>&2; exit 1; } - fi - - test "$2" = conftestfile - ) -then - # Ok. - : -else - { echo "configure: error: newly created file is older than distributed files! -Check your system clock" 1>&2; exit 1; } -fi -rm -f conftest* -echo "$ac_t""yes" 1>&6 -if test "$program_transform_name" = s,x,x,; then - program_transform_name= -else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed -s,\\,\\\\,g; s,\$,$$,g -EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed -fi -test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},; $program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" - -# sed with no file args requires a program. -test "$program_transform_name" = "" && program_transform_name="s,x,x," - -echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:669: checking whether ${MAKE-make} sets \${MAKE}" >&5 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftestmake <<\EOF -all: - @echo 'ac_maketemp="${MAKE}"' -EOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftestmake -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$ac_t""yes" 1>&6 - SET_MAKE= -else - echo "$ac_t""no" 1>&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - - -PACKAGE=libbz2 - -VERSION=0.0 - -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } -fi -cat >> confdefs.h <> confdefs.h <&6 -echo "configure:715: checking for working aclocal" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (aclocal --version) < /dev/null > /dev/null 2>&1; then - ACLOCAL=aclocal - echo "$ac_t""found" 1>&6 -else - ACLOCAL="$missing_dir/missing aclocal" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:728: checking for working autoconf" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (autoconf --version) < /dev/null > /dev/null 2>&1; then - AUTOCONF=autoconf - echo "$ac_t""found" 1>&6 -else - AUTOCONF="$missing_dir/missing autoconf" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:741: checking for working automake" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (automake --version) < /dev/null > /dev/null 2>&1; then - AUTOMAKE=automake - echo "$ac_t""found" 1>&6 -else - AUTOMAKE="$missing_dir/missing automake" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:754: checking for working autoheader" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (autoheader --version) < /dev/null > /dev/null 2>&1; then - AUTOHEADER=autoheader - echo "$ac_t""found" 1>&6 -else - AUTOHEADER="$missing_dir/missing autoheader" - echo "$ac_t""missing" 1>&6 -fi - -echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:767: checking for working makeinfo" >&5 -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if (makeinfo --version) < /dev/null > /dev/null 2>&1; then - MAKEINFO=makeinfo - echo "$ac_t""found" 1>&6 -else - MAKEINFO="$missing_dir/missing makeinfo" - echo "$ac_t""missing" 1>&6 -fi - - -echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:781: checking whether to enable maintainer-specific portions of Makefiles" >&5 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 - - -if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - MAINT=$MAINTAINER_MODE_TRUE - - - -# FIXME: We temporarily define our own version of AC_PROG_CC. This is -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -# are probably using a cross compiler, which will not be able to fully -# link an executable. This should really be fixed in autoconf -# itself. - - - -CPPFLAGS=-U_WIN32 - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:820: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:841: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -if test $host != $build; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:867: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -AR="$ac_cv_prog_AR" -if test -n "$AR"; then - echo "$ac_t""$AR" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_AR"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:899: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AR="ar" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" -fi -fi -AR="$ac_cv_prog_AR" -if test -n "$AR"; then - echo "$ac_t""$AR" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - AR="ar" -fi -fi - -# Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args. -set dummy ${ac_tool_prefix}nm; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:934: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$NM"; then - ac_cv_prog_NM="$NM" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_NM="${ac_tool_prefix}nm" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -NM="$ac_cv_prog_NM" -if test -n "$NM"; then - echo "$ac_t""$NM" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_NM"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "nm", so it can be a program name with args. -set dummy nm; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:966: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$NM"; then - ac_cv_prog_NM="$NM" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_NM="nm" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_NM" && ac_cv_prog_NM="nm" -fi -fi -NM="$ac_cv_prog_NM" -if test -n "$NM"; then - echo "$ac_t""$NM" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - NM="nm" -fi -fi - -# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1001: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_RANLIB"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1033: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB="ranlib" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - RANLIB="ranlib" -fi -fi - -# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1068: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_CC"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1100: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="gcc" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - CC="gcc" -fi -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1136: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1185: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1209: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-gstabs+ -O2" - else - CFLAGS="-O2" - fi - if test "$ac_test_CXXFLAGS" != set; then - CXXFLAGS='$(CFLAGS)' - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1251: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1304: checking how to run the C preprocessor" >&5 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then -if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - # This must be in double quotes, not single quotes, because CPP may get - # substituted into the Makefile and "${CC-cc}" will confuse make. - CPP="${CC-cc} -E" - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1325: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -E -traditional-cpp" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1342: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -nologo -E" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1359: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP=/lib/cpp -fi -rm -f conftest* -fi -rm -f conftest* -fi -rm -f conftest* - ac_cv_prog_CPP="$CPP" -fi - CPP="$ac_cv_prog_CPP" -else - ac_cv_prog_CPP="$CPP" -fi -echo "$ac_t""$CPP" 1>&6 - -echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1384: checking for ANSI C header files" >&5 -if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -#include -#include -#include -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - ac_cv_header_stdc=yes -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -cat > conftest.$ac_ext < -EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -if test "$cross_compiling" = yes; then - : -else - cat > conftest.$ac_ext < -#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int main () { int i; for (i = 0; i < 256; i++) -if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); -exit (0); } - -EOF -if { (eval echo configure:1464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null -then - : -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - ac_cv_header_stdc=no -fi -rm -fr conftest* -fi - -fi -fi - -echo "$ac_t""$ac_cv_header_stdc" 1>&6 -if test $ac_cv_header_stdc = yes; then - cat >> confdefs.h <<\EOF -#define STDC_HEADERS 1 -EOF - -fi - -echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:1488: checking for Cygwin environment" >&5 -if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_cygwin=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_cygwin=no -fi -rm -f conftest* -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_cygwin" 1>&6 -CYGWIN= -test "$ac_cv_cygwin" = yes && CYGWIN=yes -echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:1521: checking for mingw32 environment" >&5 -if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - ac_cv_mingw32=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_mingw32=no -fi -rm -f conftest* -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_mingw32" 1>&6 -MINGW32= -test "$ac_cv_mingw32" = yes && MINGW32=yes - - -echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1552: checking for executable suffix" >&5 -if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$CYGWIN" = yes || test "$MINGW32" = yes; then - ac_cv_exeext=.exe -else - rm -f conftest* - echo 'int main () { return 0; }' > conftest.$ac_ext - ac_cv_exeext= - if { (eval echo configure:1562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then - for file in conftest.*; do - case $file in - *.c | *.o | *.obj) ;; - *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; - esac - done - else - { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } - fi - rm -f conftest* - test x"${ac_cv_exeext}" = x && ac_cv_exeext=no -fi -fi - -EXEEXT="" -test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} -echo "$ac_t""${ac_cv_exeext}" 1>&6 -ac_exeext=$EXEEXT - -echo $ac_n "checking for object suffix""... $ac_c" 1>&6 -echo "configure:1583: checking for object suffix" >&5 -if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - rm -f conftest* -echo 'int i = 1;' > conftest.$ac_ext -if { (eval echo configure:1589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - for ac_file in conftest.*; do - case $ac_file in - *.c) ;; - *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;; - esac - done -else - { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; } -fi -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_objext" 1>&6 -OBJEXT=$ac_cv_objext -ac_objext=$ac_cv_objext - - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@PACKAGE@%$PACKAGE%g -s%@VERSION@%$VERSION%g -s%@ACLOCAL@%$ACLOCAL%g -s%@AUTOCONF@%$AUTOCONF%g -s%@AUTOMAKE@%$AUTOMAKE%g -s%@AUTOHEADER@%$AUTOHEADER%g -s%@MAKEINFO@%$MAKEINFO%g -s%@SET_MAKE@%$SET_MAKE%g -s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g -s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g -s%@MAINT@%$MAINT%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@AR@%$AR%g -s%@NM@%$NM%g -s%@RANLIB@%$RANLIB%g -s%@CC@%$CC%g -s%@CPP@%$CPP%g -s%@EXEEXT@%$EXEEXT%g -s%@OBJEXT@%$OBJEXT%g -s%@installdata@%$installdata%g -s%@uninstalldata@%$uninstalldata%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/winsup/bz2lib/configure.in b/winsup/bz2lib/configure.in deleted file mode 100644 index e65d0e2b6..000000000 --- a/winsup/bz2lib/configure.in +++ /dev/null @@ -1,65 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.13) - -AC_INIT(bzlib.h) -AC_CONFIG_AUX_DIR(`cd $srcdir/../..;pwd`) -AM_INIT_AUTOMAKE(libbz2, 0.0) -AM_MAINTAINER_MODE - -# FIXME: We temporarily define our own version of AC_PROG_CC. This is -# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -# are probably using a cross compiler, which will not be able to fully -# link an executable. This should really be fixed in autoconf -# itself. - -AC_DEFUN(LIB_AC_PROG_CC, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_TOOL(CC, gcc, gcc) -if test -z "$CC"; then - AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -AC_PROG_CC_GNU - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -dnl Check whether -g works, even if CFLAGS is set, in case the package -dnl plays around with CFLAGS (such as to build both debugging and -dnl normal versions of a library), tasteless as that idea is. - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - AC_PROG_CC_G - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-gstabs+ -O2" - else - CFLAGS="-O2" - fi - if test "$ac_test_CXXFLAGS" != set; then - CXXFLAGS='$(CFLAGS)' - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi -]) - -CPPFLAGS=-U_WIN32 -AC_CANONICAL_HOST -AC_CHECK_TOOL(AR, ar, ar) -AC_CHECK_TOOL(NM, nm, nm) -AC_CHECK_TOOL(RANLIB, ranlib, ranlib) -LIB_AC_PROG_CC -AC_PROG_INSTALL -AC_STDC_HEADERS -AC_EXEEXT -AC_OBJEXT - -AC_SUBST(installdata)dnl -AC_SUBST(uninstalldata)dnl - -AC_OUTPUT([Makefile]) diff --git a/winsup/bz2lib/crctable.c b/winsup/bz2lib/crctable.c deleted file mode 100644 index 61c040c4f..000000000 --- a/winsup/bz2lib/crctable.c +++ /dev/null @@ -1,144 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Table for doing CRCs ---*/ -/*--- crctable.c ---*/ -/*-------------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - -#include "bzlib_private.h" - -/*-- - I think this is an implementation of the AUTODIN-II, - Ethernet & FDDI 32-bit CRC standard. Vaguely derived - from code by Rob Warnock, in Section 51 of the - comp.compression FAQ. ---*/ - -UInt32 BZ2_crc32Table[256] = { - - /*-- Ugly, innit? --*/ - - 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L, - 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L, - 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L, - 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL, - 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L, - 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L, - 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L, - 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL, - 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L, - 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L, - 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L, - 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL, - 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L, - 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L, - 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L, - 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL, - 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL, - 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L, - 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L, - 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL, - 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL, - 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L, - 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L, - 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL, - 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL, - 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L, - 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L, - 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL, - 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL, - 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L, - 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L, - 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL, - 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L, - 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL, - 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL, - 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L, - 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L, - 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL, - 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL, - 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L, - 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L, - 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL, - 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL, - 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L, - 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L, - 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL, - 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL, - 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L, - 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L, - 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL, - 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L, - 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L, - 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L, - 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL, - 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L, - 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L, - 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L, - 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL, - 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L, - 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L, - 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L, - 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL, - 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L, - 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L -}; - - -/*-------------------------------------------------------------*/ -/*--- end crctable.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/winsup/bz2lib/decompress.c b/winsup/bz2lib/decompress.c deleted file mode 100644 index cdced1889..000000000 --- a/winsup/bz2lib/decompress.c +++ /dev/null @@ -1,660 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Decompression machinery ---*/ -/*--- decompress.c ---*/ -/*-------------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - -#include "bzlib_private.h" - - -/*---------------------------------------------------*/ -static -void makeMaps_d ( DState* s ) -{ - Int32 i; - s->nInUse = 0; - for (i = 0; i < 256; i++) - if (s->inUse[i]) { - s->seqToUnseq[s->nInUse] = i; - s->nInUse++; - } -} - - -/*---------------------------------------------------*/ -#define RETURN(rrr) \ - { retVal = rrr; goto save_state_and_return; }; - -#define GET_BITS(lll,vvv,nnn) \ - case lll: s->state = lll; \ - while (True) { \ - if (s->bsLive >= nnn) { \ - UInt32 v; \ - v = (s->bsBuff >> \ - (s->bsLive-nnn)) & ((1 << nnn)-1); \ - s->bsLive -= nnn; \ - vvv = v; \ - break; \ - } \ - if (s->strm->avail_in == 0) RETURN(BZ_OK); \ - s->bsBuff \ - = (s->bsBuff << 8) | \ - ((UInt32) \ - (*((UChar*)(s->strm->next_in)))); \ - s->bsLive += 8; \ - s->strm->next_in++; \ - s->strm->avail_in--; \ - s->strm->total_in_lo32++; \ - if (s->strm->total_in_lo32 == 0) \ - s->strm->total_in_hi32++; \ - } - -#define GET_UCHAR(lll,uuu) \ - GET_BITS(lll,uuu,8) - -#define GET_BIT(lll,uuu) \ - GET_BITS(lll,uuu,1) - -/*---------------------------------------------------*/ -#define GET_MTF_VAL(label1,label2,lval) \ -{ \ - if (groupPos == 0) { \ - groupNo++; \ - if (groupNo >= nSelectors) \ - RETURN(BZ_DATA_ERROR); \ - groupPos = BZ_G_SIZE; \ - gSel = s->selector[groupNo]; \ - gMinlen = s->minLens[gSel]; \ - gLimit = &(s->limit[gSel][0]); \ - gPerm = &(s->perm[gSel][0]); \ - gBase = &(s->base[gSel][0]); \ - } \ - groupPos--; \ - zn = gMinlen; \ - GET_BITS(label1, zvec, zn); \ - while (1) { \ - if (zn > 20 /* the longest code */) \ - RETURN(BZ_DATA_ERROR); \ - if (zvec <= gLimit[zn]) break; \ - zn++; \ - GET_BIT(label2, zj); \ - zvec = (zvec << 1) | zj; \ - }; \ - if (zvec - gBase[zn] < 0 \ - || zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE) \ - RETURN(BZ_DATA_ERROR); \ - lval = gPerm[zvec - gBase[zn]]; \ -} - - -/*---------------------------------------------------*/ -Int32 BZ2_decompress ( DState* s ) -{ - UChar uc; - Int32 retVal; - Int32 minLen, maxLen; - bz_stream* strm = s->strm; - - /* stuff that needs to be saved/restored */ - Int32 i; - Int32 j; - Int32 t; - Int32 alphaSize; - Int32 nGroups; - Int32 nSelectors; - Int32 EOB; - Int32 groupNo; - Int32 groupPos; - Int32 nextSym; - Int32 nblockMAX; - Int32 nblock; - Int32 es; - Int32 N; - Int32 curr; - Int32 zt; - Int32 zn; - Int32 zvec; - Int32 zj; - Int32 gSel; - Int32 gMinlen; - Int32* gLimit; - Int32* gBase; - Int32* gPerm; - - if (s->state == BZ_X_MAGIC_1) { - /*initialise the save area*/ - s->save_i = 0; - s->save_j = 0; - s->save_t = 0; - s->save_alphaSize = 0; - s->save_nGroups = 0; - s->save_nSelectors = 0; - s->save_EOB = 0; - s->save_groupNo = 0; - s->save_groupPos = 0; - s->save_nextSym = 0; - s->save_nblockMAX = 0; - s->save_nblock = 0; - s->save_es = 0; - s->save_N = 0; - s->save_curr = 0; - s->save_zt = 0; - s->save_zn = 0; - s->save_zvec = 0; - s->save_zj = 0; - s->save_gSel = 0; - s->save_gMinlen = 0; - s->save_gLimit = NULL; - s->save_gBase = NULL; - s->save_gPerm = NULL; - } - - /*restore from the save area*/ - i = s->save_i; - j = s->save_j; - t = s->save_t; - alphaSize = s->save_alphaSize; - nGroups = s->save_nGroups; - nSelectors = s->save_nSelectors; - EOB = s->save_EOB; - groupNo = s->save_groupNo; - groupPos = s->save_groupPos; - nextSym = s->save_nextSym; - nblockMAX = s->save_nblockMAX; - nblock = s->save_nblock; - es = s->save_es; - N = s->save_N; - curr = s->save_curr; - zt = s->save_zt; - zn = s->save_zn; - zvec = s->save_zvec; - zj = s->save_zj; - gSel = s->save_gSel; - gMinlen = s->save_gMinlen; - gLimit = s->save_gLimit; - gBase = s->save_gBase; - gPerm = s->save_gPerm; - - retVal = BZ_OK; - - switch (s->state) { - - GET_UCHAR(BZ_X_MAGIC_1, uc); - if (uc != 'B') RETURN(BZ_DATA_ERROR_MAGIC); - - GET_UCHAR(BZ_X_MAGIC_2, uc); - if (uc != 'Z') RETURN(BZ_DATA_ERROR_MAGIC); - - GET_UCHAR(BZ_X_MAGIC_3, uc) - if (uc != 'h') RETURN(BZ_DATA_ERROR_MAGIC); - - GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8) - if (s->blockSize100k < '1' || - s->blockSize100k > '9') RETURN(BZ_DATA_ERROR_MAGIC); - s->blockSize100k -= '0'; - - if (s->smallDecompress) { - s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) ); - s->ll4 = BZALLOC( - ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) - ); - if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR); - } else { - s->tt = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) ); - if (s->tt == NULL) RETURN(BZ_MEM_ERROR); - } - - GET_UCHAR(BZ_X_BLKHDR_1, uc); - - if (uc == 0x17) goto endhdr_2; - if (uc != 0x31) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_BLKHDR_2, uc); - if (uc != 0x41) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_BLKHDR_3, uc); - if (uc != 0x59) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_BLKHDR_4, uc); - if (uc != 0x26) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_BLKHDR_5, uc); - if (uc != 0x53) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_BLKHDR_6, uc); - if (uc != 0x59) RETURN(BZ_DATA_ERROR); - - s->currBlockNo++; - if (s->verbosity >= 2) - VPrintf1 ( "\n [%d: huff+mtf ", s->currBlockNo ); - - s->storedBlockCRC = 0; - GET_UCHAR(BZ_X_BCRC_1, uc); - s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_BCRC_2, uc); - s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_BCRC_3, uc); - s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_BCRC_4, uc); - s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); - - GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1); - - s->origPtr = 0; - GET_UCHAR(BZ_X_ORIGPTR_1, uc); - s->origPtr = (s->origPtr << 8) | ((Int32)uc); - GET_UCHAR(BZ_X_ORIGPTR_2, uc); - s->origPtr = (s->origPtr << 8) | ((Int32)uc); - GET_UCHAR(BZ_X_ORIGPTR_3, uc); - s->origPtr = (s->origPtr << 8) | ((Int32)uc); - - if (s->origPtr < 0) - RETURN(BZ_DATA_ERROR); - if (s->origPtr > 10 + 100000*s->blockSize100k) - RETURN(BZ_DATA_ERROR); - - /*--- Receive the mapping table ---*/ - for (i = 0; i < 16; i++) { - GET_BIT(BZ_X_MAPPING_1, uc); - if (uc == 1) - s->inUse16[i] = True; else - s->inUse16[i] = False; - } - - for (i = 0; i < 256; i++) s->inUse[i] = False; - - for (i = 0; i < 16; i++) - if (s->inUse16[i]) - for (j = 0; j < 16; j++) { - GET_BIT(BZ_X_MAPPING_2, uc); - if (uc == 1) s->inUse[i * 16 + j] = True; - } - makeMaps_d ( s ); - if (s->nInUse == 0) RETURN(BZ_DATA_ERROR); - alphaSize = s->nInUse+2; - - /*--- Now the selectors ---*/ - GET_BITS(BZ_X_SELECTOR_1, nGroups, 3); - if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR); - GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15); - if (nSelectors < 1) RETURN(BZ_DATA_ERROR); - for (i = 0; i < nSelectors; i++) { - j = 0; - while (True) { - GET_BIT(BZ_X_SELECTOR_3, uc); - if (uc == 0) break; - j++; - if (j >= nGroups) RETURN(BZ_DATA_ERROR); - } - s->selectorMtf[i] = j; - } - - /*--- Undo the MTF values for the selectors. ---*/ - { - UChar pos[BZ_N_GROUPS], tmp, v; - for (v = 0; v < nGroups; v++) pos[v] = v; - - for (i = 0; i < nSelectors; i++) { - v = s->selectorMtf[i]; - tmp = pos[v]; - while (v > 0) { pos[v] = pos[v-1]; v--; } - pos[0] = tmp; - s->selector[i] = tmp; - } - } - - /*--- Now the coding tables ---*/ - for (t = 0; t < nGroups; t++) { - GET_BITS(BZ_X_CODING_1, curr, 5); - for (i = 0; i < alphaSize; i++) { - while (True) { - if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR); - GET_BIT(BZ_X_CODING_2, uc); - if (uc == 0) break; - GET_BIT(BZ_X_CODING_3, uc); - if (uc == 0) curr++; else curr--; - } - s->len[t][i] = curr; - } - } - - /*--- Create the Huffman decoding tables ---*/ - for (t = 0; t < nGroups; t++) { - minLen = 32; - maxLen = 0; - for (i = 0; i < alphaSize; i++) { - if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; - if (s->len[t][i] < minLen) minLen = s->len[t][i]; - } - BZ2_hbCreateDecodeTables ( - &(s->limit[t][0]), - &(s->base[t][0]), - &(s->perm[t][0]), - &(s->len[t][0]), - minLen, maxLen, alphaSize - ); - s->minLens[t] = minLen; - } - - /*--- Now the MTF values ---*/ - - EOB = s->nInUse+1; - nblockMAX = 100000 * s->blockSize100k; - groupNo = -1; - groupPos = 0; - - for (i = 0; i <= 255; i++) s->unzftab[i] = 0; - - /*-- MTF init --*/ - { - Int32 ii, jj, kk; - kk = MTFA_SIZE-1; - for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) { - for (jj = MTFL_SIZE-1; jj >= 0; jj--) { - s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj); - kk--; - } - s->mtfbase[ii] = kk + 1; - } - } - /*-- end MTF init --*/ - - nblock = 0; - GET_MTF_VAL(BZ_X_MTF_1, BZ_X_MTF_2, nextSym); - - while (True) { - - if (nextSym == EOB) break; - - if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) { - - es = -1; - N = 1; - do { - if (nextSym == BZ_RUNA) es = es + (0+1) * N; else - if (nextSym == BZ_RUNB) es = es + (1+1) * N; - N = N * 2; - GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym); - } - while (nextSym == BZ_RUNA || nextSym == BZ_RUNB); - - es++; - uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ]; - s->unzftab[uc] += es; - - if (s->smallDecompress) - while (es > 0) { - if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); - s->ll16[nblock] = (UInt16)uc; - nblock++; - es--; - } - else - while (es > 0) { - if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); - s->tt[nblock] = (UInt32)uc; - nblock++; - es--; - }; - - continue; - - } else { - - if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); - - /*-- uc = MTF ( nextSym-1 ) --*/ - { - Int32 ii, jj, kk, pp, lno, off; - UInt32 nn; - nn = (UInt32)(nextSym - 1); - - if (nn < MTFL_SIZE) { - /* avoid general-case expense */ - pp = s->mtfbase[0]; - uc = s->mtfa[pp+nn]; - while (nn > 3) { - Int32 z = pp+nn; - s->mtfa[(z) ] = s->mtfa[(z)-1]; - s->mtfa[(z)-1] = s->mtfa[(z)-2]; - s->mtfa[(z)-2] = s->mtfa[(z)-3]; - s->mtfa[(z)-3] = s->mtfa[(z)-4]; - nn -= 4; - } - while (nn > 0) { - s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--; - }; - s->mtfa[pp] = uc; - } else { - /* general case */ - lno = nn / MTFL_SIZE; - off = nn % MTFL_SIZE; - pp = s->mtfbase[lno] + off; - uc = s->mtfa[pp]; - while (pp > s->mtfbase[lno]) { - s->mtfa[pp] = s->mtfa[pp-1]; pp--; - }; - s->mtfbase[lno]++; - while (lno > 0) { - s->mtfbase[lno]--; - s->mtfa[s->mtfbase[lno]] - = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1]; - lno--; - } - s->mtfbase[0]--; - s->mtfa[s->mtfbase[0]] = uc; - if (s->mtfbase[0] == 0) { - kk = MTFA_SIZE-1; - for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) { - for (jj = MTFL_SIZE-1; jj >= 0; jj--) { - s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj]; - kk--; - } - s->mtfbase[ii] = kk + 1; - } - } - } - } - /*-- end uc = MTF ( nextSym-1 ) --*/ - - s->unzftab[s->seqToUnseq[uc]]++; - if (s->smallDecompress) - s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else - s->tt[nblock] = (UInt32)(s->seqToUnseq[uc]); - nblock++; - - GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym); - continue; - } - } - - /* Now we know what nblock is, we can do a better sanity - check on s->origPtr. - */ - if (s->origPtr < 0 || s->origPtr >= nblock) - RETURN(BZ_DATA_ERROR); - - s->state_out_len = 0; - s->state_out_ch = 0; - BZ_INITIALISE_CRC ( s->calculatedBlockCRC ); - s->state = BZ_X_OUTPUT; - if (s->verbosity >= 2) VPrintf0 ( "rt+rld" ); - - /*-- Set up cftab to facilitate generation of T^(-1) --*/ - s->cftab[0] = 0; - for (i = 1; i <= 256; i++) s->cftab[i] = s->unzftab[i-1]; - for (i = 1; i <= 256; i++) s->cftab[i] += s->cftab[i-1]; - - if (s->smallDecompress) { - - /*-- Make a copy of cftab, used in generation of T --*/ - for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i]; - - /*-- compute the T vector --*/ - for (i = 0; i < nblock; i++) { - uc = (UChar)(s->ll16[i]); - SET_LL(i, s->cftabCopy[uc]); - s->cftabCopy[uc]++; - } - - /*-- Compute T^(-1) by pointer reversal on T --*/ - i = s->origPtr; - j = GET_LL(i); - do { - Int32 tmp = GET_LL(j); - SET_LL(j, i); - i = j; - j = tmp; - } - while (i != s->origPtr); - - s->tPos = s->origPtr; - s->nblock_used = 0; - if (s->blockRandomised) { - BZ_RAND_INIT_MASK; - BZ_GET_SMALL(s->k0); s->nblock_used++; - BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; - } else { - BZ_GET_SMALL(s->k0); s->nblock_used++; - } - - } else { - - /*-- compute the T^(-1) vector --*/ - for (i = 0; i < nblock; i++) { - uc = (UChar)(s->tt[i] & 0xff); - s->tt[s->cftab[uc]] |= (i << 8); - s->cftab[uc]++; - } - - s->tPos = s->tt[s->origPtr] >> 8; - s->nblock_used = 0; - if (s->blockRandomised) { - BZ_RAND_INIT_MASK; - BZ_GET_FAST(s->k0); s->nblock_used++; - BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; - } else { - BZ_GET_FAST(s->k0); s->nblock_used++; - } - - } - - RETURN(BZ_OK); - - - - endhdr_2: - - GET_UCHAR(BZ_X_ENDHDR_2, uc); - if (uc != 0x72) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_ENDHDR_3, uc); - if (uc != 0x45) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_ENDHDR_4, uc); - if (uc != 0x38) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_ENDHDR_5, uc); - if (uc != 0x50) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_ENDHDR_6, uc); - if (uc != 0x90) RETURN(BZ_DATA_ERROR); - - s->storedCombinedCRC = 0; - GET_UCHAR(BZ_X_CCRC_1, uc); - s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_CCRC_2, uc); - s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_CCRC_3, uc); - s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_CCRC_4, uc); - s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); - - s->state = BZ_X_IDLE; - RETURN(BZ_STREAM_END); - - default: AssertH ( False, 4001 ); - } - - AssertH ( False, 4002 ); - - save_state_and_return: - - s->save_i = i; - s->save_j = j; - s->save_t = t; - s->save_alphaSize = alphaSize; - s->save_nGroups = nGroups; - s->save_nSelectors = nSelectors; - s->save_EOB = EOB; - s->save_groupNo = groupNo; - s->save_groupPos = groupPos; - s->save_nextSym = nextSym; - s->save_nblockMAX = nblockMAX; - s->save_nblock = nblock; - s->save_es = es; - s->save_N = N; - s->save_curr = curr; - s->save_zt = zt; - s->save_zn = zn; - s->save_zvec = zvec; - s->save_zj = zj; - s->save_gSel = gSel; - s->save_gMinlen = gMinlen; - s->save_gLimit = gLimit; - s->save_gBase = gBase; - s->save_gPerm = gPerm; - - return retVal; -} - - -/*-------------------------------------------------------------*/ -/*--- end decompress.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/winsup/bz2lib/dlltest.c b/winsup/bz2lib/dlltest.c deleted file mode 100644 index f79279cef..000000000 --- a/winsup/bz2lib/dlltest.c +++ /dev/null @@ -1,176 +0,0 @@ -/* - minibz2 - libbz2.dll test program. - by Yoshioka Tsuneo(QWF00133@nifty.ne.jp/tsuneo-y@is.aist-nara.ac.jp) - This file is Public Domain. - welcome any email to me. - - usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename] -*/ - -#define BZ_IMPORT -#include -#include -#include "bzlib.h" -#ifdef _WIN32 -#include -#endif - - -#ifdef _WIN32 - -#define BZ2_LIBNAME "libbz2-1.0.0.DLL" - -#include -static int BZ2DLLLoaded = 0; -static HINSTANCE BZ2DLLhLib; -int BZ2DLLLoadLibrary(void) -{ - HINSTANCE hLib; - - if(BZ2DLLLoaded==1){return 0;} - hLib=LoadLibrary(BZ2_LIBNAME); - if(hLib == NULL){ - fprintf(stderr,"Can't load %s\n",BZ2_LIBNAME); - return -1; - } - BZ2_bzlibVersion=GetProcAddress(hLib,"BZ2_bzlibVersion"); - BZ2_bzopen=GetProcAddress(hLib,"BZ2_bzopen"); - BZ2_bzdopen=GetProcAddress(hLib,"BZ2_bzdopen"); - BZ2_bzread=GetProcAddress(hLib,"BZ2_bzread"); - BZ2_bzwrite=GetProcAddress(hLib,"BZ2_bzwrite"); - BZ2_bzflush=GetProcAddress(hLib,"BZ2_bzflush"); - BZ2_bzclose=GetProcAddress(hLib,"BZ2_bzclose"); - BZ2_bzerror=GetProcAddress(hLib,"BZ2_bzerror"); - - if (!BZ2_bzlibVersion || !BZ2_bzopen || !BZ2_bzdopen - || !BZ2_bzread || !BZ2_bzwrite || !BZ2_bzflush - || !BZ2_bzclose || !BZ2_bzerror) { - fprintf(stderr,"GetProcAddress failed.\n"); - return -1; - } - BZ2DLLLoaded=1; - BZ2DLLhLib=hLib; - return 0; - -} -int BZ2DLLFreeLibrary(void) -{ - if(BZ2DLLLoaded==0){return 0;} - FreeLibrary(BZ2DLLhLib); - BZ2DLLLoaded=0; -} -#endif /* WIN32 */ - -void usage(void) -{ - puts("usage: minibz2 [-d] [-{1,2,..9}] [[srcfilename] destfilename]"); -} - -int main(int argc,char *argv[]) -{ - int decompress = 0; - int level = 9; - char *fn_r = NULL; - char *fn_w = NULL; - -#ifdef _WIN32 - if(BZ2DLLLoadLibrary()<0){ - fprintf(stderr,"Loading of %s failed. Giving up.\n", BZ2_LIBNAME); - exit(1); - } - printf("Loading of %s succeeded. Library version is %s.\n", - BZ2_LIBNAME, BZ2_bzlibVersion() ); -#endif - while(++argv,--argc){ - if(**argv =='-' || **argv=='/'){ - char *p; - - for(p=*argv+1;*p;p++){ - if(*p=='d'){ - decompress = 1; - }else if('1'<=*p && *p<='9'){ - level = *p - '0'; - }else{ - usage(); - exit(1); - } - } - }else{ - break; - } - } - if(argc>=1){ - fn_r = *argv; - argc--;argv++; - }else{ - fn_r = NULL; - } - if(argc>=1){ - fn_w = *argv; - argc--;argv++; - }else{ - fn_w = NULL; - } - { - int len; - char buff[0x1000]; - char mode[10]; - - if(decompress){ - BZFILE *BZ2fp_r = NULL; - FILE *fp_w = NULL; - - if(fn_w){ - if((fp_w = fopen(fn_w,"wb"))==NULL){ - printf("can't open [%s]\n",fn_w); - perror("reason:"); - exit(1); - } - }else{ - fp_w = stdout; - } - if((BZ2fp_r == NULL && (BZ2fp_r = BZ2_bzdopen(fileno(stdin),"rb"))==NULL) - || (BZ2fp_r != NULL && (BZ2fp_r = BZ2_bzopen(fn_r,"rb"))==NULL)){ - printf("can't bz2openstream\n"); - exit(1); - } - while((len=BZ2_bzread(BZ2fp_r,buff,0x1000))>0){ - fwrite(buff,1,len,fp_w); - } - BZ2_bzclose(BZ2fp_r); - if(fp_w != stdout) fclose(fp_w); - }else{ - BZFILE *BZ2fp_w = NULL; - FILE *fp_r = NULL; - - if(fn_r){ - if((fp_r = fopen(fn_r,"rb"))==NULL){ - printf("can't open [%s]\n",fn_r); - perror("reason:"); - exit(1); - } - }else{ - fp_r = stdin; - } - mode[0]='w'; - mode[1] = '0' + level; - mode[2] = '\0'; - - if((fn_w == NULL && (BZ2fp_w = BZ2_bzdopen(fileno(stdout),mode))==NULL) - || (fn_w !=NULL && (BZ2fp_w = BZ2_bzopen(fn_w,mode))==NULL)){ - printf("can't bz2openstream\n"); - exit(1); - } - while((len=fread(buff,1,0x1000,fp_r))>0){ - BZ2_bzwrite(BZ2fp_w,buff,len); - } - BZ2_bzclose(BZ2fp_w); - if(fp_r!=stdin)fclose(fp_r); - } - } -#ifdef _WIN32 - BZ2DLLFreeLibrary(); -#endif - return 0; -} diff --git a/winsup/bz2lib/dlltest.dsp b/winsup/bz2lib/dlltest.dsp deleted file mode 100644 index 4b1615edc..000000000 --- a/winsup/bz2lib/dlltest.dsp +++ /dev/null @@ -1,93 +0,0 @@ -# Microsoft Developer Studio Project File - Name="dlltest" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** •ÒW‚µ‚È‚¢‚Å‚­‚¾‚³‚¢ ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=dlltest - Win32 Debug -!MESSAGE ‚±‚ê‚Í—LŒø‚ÈÒ²¸Ì§²Ù‚Å‚Í‚ ‚è‚Ü‚¹‚ñB ‚±‚ÌÌßÛ¼Þª¸Ä‚ðËÞÙÄÞ‚·‚邽‚ß‚É‚Í NMAKE ‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B -!MESSAGE [Ò²¸Ì§²Ù‚Ì´¸½Îß°Ä] ºÏÝÄÞ‚ðŽg—p‚µ‚ÄŽÀs‚µ‚Ä‚­‚¾‚³‚¢ -!MESSAGE -!MESSAGE NMAKE /f "dlltest.mak". -!MESSAGE -!MESSAGE NMAKE ‚ÌŽÀsŽž‚É\¬‚ðŽw’è‚Å‚«‚Ü‚· -!MESSAGE ºÏÝÄÞ ×²Ýã‚ÅϸۂÌÝ’è‚ð’è‹`‚µ‚Ü‚·B—á: -!MESSAGE -!MESSAGE NMAKE /f "dlltest.mak" CFG="dlltest - Win32 Debug" -!MESSAGE -!MESSAGE ‘I‘ð‰Â”\‚ÈËÞÙÄÞ Ó°ÄÞ: -!MESSAGE -!MESSAGE "dlltest - Win32 Release" ("Win32 (x86) Console Application" —p) -!MESSAGE "dlltest - Win32 Debug" ("Win32 (x86) Console Application" —p) -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "dlltest - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x411 /d "NDEBUG" -# ADD RSC /l 0x411 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"minibz2.exe" - -!ELSEIF "$(CFG)" == "dlltest - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "dlltest_" -# PROP BASE Intermediate_Dir "dlltest_" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "dlltest_" -# PROP Intermediate_Dir "dlltest_" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x411 /d "_DEBUG" -# ADD RSC /l 0x411 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /out:"minibz2.exe" /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "dlltest - Win32 Release" -# Name "dlltest - Win32 Debug" -# Begin Source File - -SOURCE=.\bzlib.h -# End Source File -# Begin Source File - -SOURCE=.\dlltest.c -# End Source File -# End Target -# End Project diff --git a/winsup/bz2lib/huffman.c b/winsup/bz2lib/huffman.c deleted file mode 100644 index 9b446c4b3..000000000 --- a/winsup/bz2lib/huffman.c +++ /dev/null @@ -1,228 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Huffman coding low-level stuff ---*/ -/*--- huffman.c ---*/ -/*-------------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - -#include "bzlib_private.h" - -/*---------------------------------------------------*/ -#define WEIGHTOF(zz0) ((zz0) & 0xffffff00) -#define DEPTHOF(zz1) ((zz1) & 0x000000ff) -#define MYMAX(zz2,zz3) ((zz2) > (zz3) ? (zz2) : (zz3)) - -#define ADDWEIGHTS(zw1,zw2) \ - (WEIGHTOF(zw1)+WEIGHTOF(zw2)) | \ - (1 + MYMAX(DEPTHOF(zw1),DEPTHOF(zw2))) - -#define UPHEAP(z) \ -{ \ - Int32 zz, tmp; \ - zz = z; tmp = heap[zz]; \ - while (weight[tmp] < weight[heap[zz >> 1]]) { \ - heap[zz] = heap[zz >> 1]; \ - zz >>= 1; \ - } \ - heap[zz] = tmp; \ -} - -#define DOWNHEAP(z) \ -{ \ - Int32 zz, yy, tmp; \ - zz = z; tmp = heap[zz]; \ - while (True) { \ - yy = zz << 1; \ - if (yy > nHeap) break; \ - if (yy < nHeap && \ - weight[heap[yy+1]] < weight[heap[yy]]) \ - yy++; \ - if (weight[tmp] < weight[heap[yy]]) break; \ - heap[zz] = heap[yy]; \ - zz = yy; \ - } \ - heap[zz] = tmp; \ -} - - -/*---------------------------------------------------*/ -void BZ2_hbMakeCodeLengths ( UChar *len, - Int32 *freq, - Int32 alphaSize, - Int32 maxLen ) -{ - /*-- - Nodes and heap entries run from 1. Entry 0 - for both the heap and nodes is a sentinel. - --*/ - Int32 nNodes, nHeap, n1, n2, i, j, k; - Bool tooLong; - - Int32 heap [ BZ_MAX_ALPHA_SIZE + 2 ]; - Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ]; - Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ]; - - for (i = 0; i < alphaSize; i++) - weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8; - - while (True) { - - nNodes = alphaSize; - nHeap = 0; - - heap[0] = 0; - weight[0] = 0; - parent[0] = -2; - - for (i = 1; i <= alphaSize; i++) { - parent[i] = -1; - nHeap++; - heap[nHeap] = i; - UPHEAP(nHeap); - } - - AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 ); - - while (nHeap > 1) { - n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1); - n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1); - nNodes++; - parent[n1] = parent[n2] = nNodes; - weight[nNodes] = ADDWEIGHTS(weight[n1], weight[n2]); - parent[nNodes] = -1; - nHeap++; - heap[nHeap] = nNodes; - UPHEAP(nHeap); - } - - AssertH( nNodes < (BZ_MAX_ALPHA_SIZE * 2), 2002 ); - - tooLong = False; - for (i = 1; i <= alphaSize; i++) { - j = 0; - k = i; - while (parent[k] >= 0) { k = parent[k]; j++; } - len[i-1] = j; - if (j > maxLen) tooLong = True; - } - - if (! tooLong) break; - - for (i = 1; i < alphaSize; i++) { - j = weight[i] >> 8; - j = 1 + (j / 2); - weight[i] = j << 8; - } - } -} - - -/*---------------------------------------------------*/ -void BZ2_hbAssignCodes ( Int32 *code, - UChar *length, - Int32 minLen, - Int32 maxLen, - Int32 alphaSize ) -{ - Int32 n, vec, i; - - vec = 0; - for (n = minLen; n <= maxLen; n++) { - for (i = 0; i < alphaSize; i++) - if (length[i] == n) { code[i] = vec; vec++; }; - vec <<= 1; - } -} - - -/*---------------------------------------------------*/ -void BZ2_hbCreateDecodeTables ( Int32 *limit, - Int32 *base, - Int32 *perm, - UChar *length, - Int32 minLen, - Int32 maxLen, - Int32 alphaSize ) -{ - Int32 pp, i, j, vec; - - pp = 0; - for (i = minLen; i <= maxLen; i++) - for (j = 0; j < alphaSize; j++) - if (length[j] == i) { perm[pp] = j; pp++; }; - - for (i = 0; i < BZ_MAX_CODE_LEN; i++) base[i] = 0; - for (i = 0; i < alphaSize; i++) base[length[i]+1]++; - - for (i = 1; i < BZ_MAX_CODE_LEN; i++) base[i] += base[i-1]; - - for (i = 0; i < BZ_MAX_CODE_LEN; i++) limit[i] = 0; - vec = 0; - - for (i = minLen; i <= maxLen; i++) { - vec += (base[i+1] - base[i]); - limit[i] = vec-1; - vec <<= 1; - } - for (i = minLen + 1; i <= maxLen; i++) - base[i] = ((limit[i-1] + 1) << 1) - base[i]; -} - - -/*-------------------------------------------------------------*/ -/*--- end huffman.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/winsup/bz2lib/libbz2.def b/winsup/bz2lib/libbz2.def deleted file mode 100644 index 2dc0dd891..000000000 --- a/winsup/bz2lib/libbz2.def +++ /dev/null @@ -1,27 +0,0 @@ -LIBRARY LIBBZ2 -DESCRIPTION "libbzip2: library for data compression" -EXPORTS - BZ2_bzCompressInit - BZ2_bzCompress - BZ2_bzCompressEnd - BZ2_bzDecompressInit - BZ2_bzDecompress - BZ2_bzDecompressEnd - BZ2_bzReadOpen - BZ2_bzReadClose - BZ2_bzReadGetUnused - BZ2_bzRead - BZ2_bzWriteOpen - BZ2_bzWrite - BZ2_bzWriteClose - BZ2_bzWriteClose64 - BZ2_bzBuffToBuffCompress - BZ2_bzBuffToBuffDecompress - BZ2_bzlibVersion - BZ2_bzopen - BZ2_bzdopen - BZ2_bzread - BZ2_bzwrite - BZ2_bzflush - BZ2_bzclose - BZ2_bzerror diff --git a/winsup/bz2lib/libbz2.dsp b/winsup/bz2lib/libbz2.dsp deleted file mode 100644 index a21a20f75..000000000 --- a/winsup/bz2lib/libbz2.dsp +++ /dev/null @@ -1,130 +0,0 @@ -# Microsoft Developer Studio Project File - Name="libbz2" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** •ÒW‚µ‚È‚¢‚Å‚­‚¾‚³‚¢ ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=libbz2 - Win32 Debug -!MESSAGE ‚±‚ê‚Í—LŒø‚ÈÒ²¸Ì§²Ù‚Å‚Í‚ ‚è‚Ü‚¹‚ñB ‚±‚ÌÌßÛ¼Þª¸Ä‚ðËÞÙÄÞ‚·‚邽‚ß‚É‚Í NMAKE ‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B -!MESSAGE [Ò²¸Ì§²Ù‚Ì´¸½Îß°Ä] ºÏÝÄÞ‚ðŽg—p‚µ‚ÄŽÀs‚µ‚Ä‚­‚¾‚³‚¢ -!MESSAGE -!MESSAGE NMAKE /f "libbz2.mak". -!MESSAGE -!MESSAGE NMAKE ‚ÌŽÀsŽž‚É\¬‚ðŽw’è‚Å‚«‚Ü‚· -!MESSAGE ºÏÝÄÞ ×²Ýã‚ÅϸۂÌÝ’è‚ð’è‹`‚µ‚Ü‚·B—á: -!MESSAGE -!MESSAGE NMAKE /f "libbz2.mak" CFG="libbz2 - Win32 Debug" -!MESSAGE -!MESSAGE ‘I‘ð‰Â”\‚ÈËÞÙÄÞ Ó°ÄÞ: -!MESSAGE -!MESSAGE "libbz2 - Win32 Release" ("Win32 (x86) Dynamic-Link Library" —p) -!MESSAGE "libbz2 - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" —p) -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "libbz2 - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD BASE RSC /l 0x411 /d "NDEBUG" -# ADD RSC /l 0x411 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"libbz2.dll" - -!ELSEIF "$(CFG)" == "libbz2 - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD BASE RSC /l 0x411 /d "_DEBUG" -# ADD RSC /l 0x411 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"libbz2.dll" /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "libbz2 - Win32 Release" -# Name "libbz2 - Win32 Debug" -# Begin Source File - -SOURCE=.\blocksort.c -# End Source File -# Begin Source File - -SOURCE=.\bzlib.c -# End Source File -# Begin Source File - -SOURCE=.\bzlib.h -# End Source File -# Begin Source File - -SOURCE=.\bzlib_private.h -# End Source File -# Begin Source File - -SOURCE=.\compress.c -# End Source File -# Begin Source File - -SOURCE=.\crctable.c -# End Source File -# Begin Source File - -SOURCE=.\decompress.c -# End Source File -# Begin Source File - -SOURCE=.\huffman.c -# End Source File -# Begin Source File - -SOURCE=.\libbz2.def -# End Source File -# Begin Source File - -SOURCE=.\randtable.c -# End Source File -# End Target -# End Project diff --git a/winsup/bz2lib/makefile.msc b/winsup/bz2lib/makefile.msc deleted file mode 100644 index 3fe42324a..000000000 --- a/winsup/bz2lib/makefile.msc +++ /dev/null @@ -1,63 +0,0 @@ -# Makefile for Microsoft Visual C++ 6.0 -# usage: nmake -f makefile.msc -# K.M. Syring (syring@gsf.de) -# Fixed up by JRS for bzip2-0.9.5d release. - -CC=cl -CFLAGS= -DWIN32 -MD -Ox -D_FILE_OFFSET_BITS=64 - -OBJS= blocksort.obj \ - huffman.obj \ - crctable.obj \ - randtable.obj \ - compress.obj \ - decompress.obj \ - bzlib.obj - -all: lib bzip2 test - -bzip2: lib - $(CC) $(CFLAGS) -o bzip2 bzip2.c libbz2.lib setargv.obj - $(CC) $(CFLAGS) -o bzip2recover bzip2recover.c - -lib: $(OBJS) - lib /out:libbz2.lib $(OBJS) - -test: bzip2 - type words1 - .\\bzip2 -1 < sample1.ref > sample1.rb2 - .\\bzip2 -2 < sample2.ref > sample2.rb2 - .\\bzip2 -3 < sample3.ref > sample3.rb2 - .\\bzip2 -d < sample1.bz2 > sample1.tst - .\\bzip2 -d < sample2.bz2 > sample2.tst - .\\bzip2 -ds < sample3.bz2 > sample3.tst - @echo All six of the fc's should find no differences. - @echo If fc finds an error on sample3.bz2, this could be - @echo because WinZip's 'TAR file smart CR/LF conversion' - @echo is too clever for its own good. Disable this option. - @echo The correct size for sample3.ref is 120,244. If it - @echo is 150,251, WinZip has messed it up. - fc sample1.bz2 sample1.rb2 - fc sample2.bz2 sample2.rb2 - fc sample3.bz2 sample3.rb2 - fc sample1.tst sample1.ref - fc sample2.tst sample2.ref - fc sample3.tst sample3.ref - - - -clean: - del *.obj - del libbz2.lib - del bzip2.exe - del bzip2recover.exe - del sample1.rb2 - del sample2.rb2 - del sample3.rb2 - del sample1.tst - del sample2.tst - del sample3.tst - -.c.obj: - $(CC) $(CFLAGS) -c $*.c -o $*.obj - diff --git a/winsup/bz2lib/manual.ps b/winsup/bz2lib/manual.ps deleted file mode 100644 index 1a7dbac85..000000000 --- a/winsup/bz2lib/manual.ps +++ /dev/null @@ -1,3808 +0,0 @@ -%!PS-Adobe-2.0 -%%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com) -%%Title: manual.dvi -%%Pages: 39 -%%PageOrder: Ascend -%%BoundingBox: 0 0 596 842 -%%EndComments -%DVIPSCommandLine: dvips -o manual.ps manual.dvi -%DVIPSParameters: dpi=600, compressed -%DVIPSSource: TeX output 2000.03.23:2343 -%%BeginProcSet: texc.pro -%! -/TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N -/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 -mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} -ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale -isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div -hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul -TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} -forall round exch round exch]setmatrix}N /@landscape{/isls true N}B -/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B -/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ -/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N -string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N -end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ -/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] -N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup -length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ -128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub -get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data -dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N -/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup -/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx -0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff -setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff -.1 sub]/id ch-image N /rw ch-width 7 add 8 idiv string N /rc 0 N /gp 0 N -/cp 0 N{rc 0 ne{rc 1 sub /rc X rw}{G}ifelse}imagemask restore}B /G{{id -gp get /gp gp 1 add N dup 18 mod S 18 idiv pl S get exec}loop}B /adv{cp -add /cp X}B /chg{rw cp id gp 4 index getinterval putinterval dup gp add -/gp X adv}B /nd{/cp 0 N rw exit}B /lsh{rw cp 2 copy get dup 0 eq{pop 1}{ -dup 255 eq{pop 254}{dup dup add 255 and S 1 and or}ifelse}ifelse put 1 -adv}B /rsh{rw cp 2 copy get dup 0 eq{pop 128}{dup 255 eq{pop 127}{dup 2 -idiv S 128 and or}ifelse}ifelse put 1 adv}B /clr{rw cp 2 index string -putinterval adv}B /set{rw cp fillstr 0 4 index getinterval putinterval -adv}B /fillstr 18 string 0 1 17{2 copy 255 put pop}for N /pl[{adv 1 chg} -{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{ -adv rsh nd}{1 add adv}{/rc X nd}{1 add set}{1 add clr}{adv 2 chg}{adv 2 -chg nd}{pop nd}]dup{bind pop}forall N /D{/cc X dup type /stringtype ne{] -}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup -length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ -cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin -0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul -add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict -/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook -known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X -/IE 256 array N 2 string 0 1 255{IE S dup 360 add 36 4 index cvrs cvn -put}for pop 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N -/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley -X /rulex X V}B /V{}B /RV statusdict begin /product where{pop false[ -(Display)(NeXT)(LaserWriter 16/600)]{dup length product length le{dup -length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse} -forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false -RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 -false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform -round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg -rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail -{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} -B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ -4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ -p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p -a}B /bos{/SS save N}B /eos{SS restore}B end - -%%EndProcSet -TeXDict begin 39158280 55380996 1000 600 600 (manual.dvi) -@start -%DVIPSBitmapFont: Fa cmti10 10.95 1 -/Fa 1 47 df<120FEA3FC0127FA212FFA31380EA7F00123C0A0A77891C>46 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fb cmbxti10 14.4 1 -/Fb 1 47 df<13FCEA03FF000F13804813C05AA25AA2B5FCA31480A214006C5A6C5A6C5A -EA0FE0121271912B>46 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fc cmsl10 10.95 25 -/Fc 25 122 df37 D44 D48 D<157015F014011407143F903803FFE0137FEBFFCFEBF80F1300 -141F15C0A5143F1580A5147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F -497EB612F8A31D3D78BC2D>I<133C137F5B481380A31400A26C5A137890C7FCB3EA0780 -EA0FE0121F123FA5121FEA0F601200A213E05BA212015B120390C7FC5A1206120E5A5A12 -3012705A5A11397AA619>59 D97 DIIIII<147FEB3FFFA313017FA25CA513015CA51303 -5CA4ED07F80107EB1FFF9139F0781FC09138F1E00F9139F38007E0ECF70002FE14F0495A -5CA25CA24A130F131F4A14E0A4161F133F4A14C0A4163F137F91C71380A4167F5B491500 -A300015D486C491380B5D8F87F13FCA32E3F7DBE33>104 D<1478EB01FE130314FFA25B -14FE130314FCEB00F01400ACEB03F8EA01FF14F0A2EA001F130FA314E0A5131F14C0A513 -3F1480A5137F1400A55B5BA4EA03FF007F13F0A2B5FC183E7DBD1A>I<143FEB1FFF5BA2 -13017FA214FEA5130114FCA5130314F8A5130714F0A5130F14E0A5131F14C0A5133F1480 -A5137F1400A55B5BA4EA03FF007F13F8A2B5FC183F7DBE1A>108 -D<902707F007F8EB03FCD803FFD91FFF90380FFF80913CE0781FC03C0FE09126E1E00FEB -F0073E001FE38007E1C003F090260FE700EBE38002EEDAF70013F802FC14FE02D85C14F8 -4A5CA24A5C011F020F14074A4A14F0A5013F021F140F4A4A14E0A5017F023F141F91C749 -14C0A549027F143F4992C71380A300014B147F486C496DEBFFC0B5D8F87FD9FC3F13FEA3 -47287DA74C>I<903907F007F8D803FFEB1FFF9139E0781FC09138E1E00F3B001FE38007 -E090380FE70002EE14F014FC14D814F85CA24A130F131F4A14E0A4161F133F4A14C0A416 -3F137F91C71380A4167F5B491500A300015D486C491380B5D8F87F13FCA32E287DA733> -II<91387F01FE903A7FFF0FFFC09139FE3E03F09238F801F890 -3A01FFE000FE4B137F6D497F4990C713804A15C04A141FA218E0A20103150F5C18F0A317 -1F010716E05CA3173F18C0130F4A147F1880A2EFFF004C5A011F5D16034C5A6E495AEE1F -C06E495AD93FDC017EC7FC91388F01F8913883FFE0028090C8FC92C9FC137FA291CAFCA4 -5BA25BA31201487EB512F8A3343A81A733>I<903907F01F80D803FFEB7FE09138E1E1F0 -9138E387F839001FE707EB0FE614EE02FC13F002D813E09138F801804AC7FCA25C131FA2 -5CA4133F5CA5137F91C8FCA55B5BA31201487EB512FEA325287EA724>114 -D<9138FF81C0010713E390381F807F90397C003F8049131F4848130F5B00031407A24848 -1400A27FA27F6D90C7FCEBFF8014FC6C13FF6C14C015F06C6C7F011F7F13079038007FFE -1403140100381300157EA2123C153E157E007C147CA2007E147815F8007F495A4A5A486C -485A26F9E01FC7FC38E0FFFC38C01FE0222A7DA824>II<01FE147F00FFEC7FFF4914FEA20007140300031401A34914FCA4 -150312074914F8A41507120F4914F0A4150F121F4914E0A2151FA3153F4914C0157F15FF -EC01DF3A0FC003BFE09138073FFF3803F01E3801FFF826003FE01380282977A733>III<90B539E007FFF05E18E0902707FE000313006D48EB01FC -705A5F01014A5A5F16036E5C0100140794C7FC160E805E805E1678ED8070023F13F05EED -81C015C191381FC38015C793C8FC15EF15EEEC0FFCA25DA26E5AA25DA26E5A5DA24AC9FC -5C140E141E141C5C121C003F5B5A485B495A130300FE5B4848CAFCEA701EEA783CEA3FF0 -EA0FC0343A80A630>121 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fd cmtt12 14.4 10 -/Fd 10 123 df50 D<383FFF805AB57EA37E7EEA003FAEED07FC92383FFF -8092B512E002C314F802CF8002DF8091B7FCDBF80F1380DBC00113C092C713E04A143F4A -EC1FF04A15F84A140F4AEC07FCA217034A15FE1701A318FF83A95F18FEA280170318FC6E -140718F86E140FEF1FF06E143F6EEC7FE06EECFFC0DBC0031380EDF01F92B6120002DF14 -FC02CF5C02C35CD91F8114C090260F807F90C7FC90C7EA0FF8384A7FC83E>98 -D<923803FFF85D4B7FA38181ED0003AEEC1FF0ECFFFE0103EBFF83010F14E34914F3017F -14FB90B7FC48EBF80F48EBC00191C7FC4848143F4848141F5B4848140F491407123F4914 -03127F5BA312FF90C8FCA97F127FA216077F123F6D140FA26C6C141F6D143F000F157F6C -6C14FF01FF5B6C6D5A6CD9F01FEBFFFC6C90B500FB13FE6D02F313FF6D14E3010F14C36D -020113FE010101FC14FC9026003FE0C8FC384A7CC83E>100 D<143E147F4A7E497FA56D -5B6EC8FC143E91C9FCAC003FB57E5A81A47EC7123FB3B3007FB71280B812C0A56C16802A -4A76C93E>105 D<007FB512C0B6FC81A47EC7121FB3B3B3A5007FB712F8B812FCA56C16 -F82E4978C83E>108 D111 -DI<903901FFF00F011F9038 -FE1F8090B612BF000315FF5A5A5A393FFE003F01F01307D87FC0130190C8FC5A48157FA4 -7EEE3F00D87FC091C7FC13F0EA3FFE381FFFF06CEBFFC06C14FE6C6E7EC615E0013F14F8 -010780D9003F7F02007F03071380030013C0003EED3FE0007F151F48150F17F06D1407A3 -7FA26D140F6D15E0161F01FCEC3FC06D14FF9026FFC00F138091B612005E485D013F5C6D -14E0D8FC0714802778007FF8C7FC2C3677B43E>115 D<147C14FC497EAD003FB712FC5A -B87EA36C5EA2260001FEC9FCB3A6173FA2EF7F80A76E14FF6D16006F5A9238C007FE9138 -7FF01F92B55A6E5C6E5C6E5C6E1480020149C7FC9138003FF031437DC13E>I<000FB812 -804817C04817E0A418C001C0C712014C13804C1300EE1FFE4C5AEE7FF06C484A5A4B5BC8 -485B4B90C7FC4B5A4B5A4B5A4B5A4B5A4A5B4A5B4A90C8FC4A5A4A5A4A5A4A5A4A5A495B -495B4990C9FC495A495A4948EC0FC0495A4948EC1FE0485B00075B4890C8FCEA1FFC485A -485A90B8FCB9FCA46C17C07E33337CB23E>122 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fe cmtt12 13.14 31 -/Fe 31 123 df50 D<003FB6FC4815E0B712F882826C816C16802701FC000113C0 -9238007FE0161FEE0FF0A2160717F81603A6160717F0A2160FEE1FE0163FEE7FC0923801 -FF80030F130090B65A5E16F08216FEEEFF8017C001FCC7EA7FE0EE1FF0EE07F8160317FC -EE01FE1600A217FF177FA717FF17FE16011603EE07FC160FEE3FF8EEFFF0003FB7FC4816 -E0B812C01780EEFE006C15F86C15C030437DC238>66 DI<007FB512F8B7FC16C08216F8826C813A03F8001FFF15 -07030113806F13C0167FEE3FE0161FEE0FF0A2EE07F8A2EE03FCA21601A217FE1600A417 -7FAD17FF17FEA4160117FCA2160317F81607A2EE0FF0161FEE3FE0167FEEFFC04B13805D -031F1300007FB65AB75A5E5E16C093C7FC6C14F830437DC238>I<007FB712FCB87EA57E -D801FCC8FCA9177C94C7FCA6ED07C04B7EA590B6FCA79038FC000FA56F5A92C9FCA7EF0F -80EF1FC0AA007FB8FCB9FCA56C178032437DC238>I<91391FF003C091397FFC07E049B5 -FC010714CF4914EF4914FF5B90387FF81F9038FFE00748EB800191C7FC4848147F485A49 -143F485A161F485AA249140F123F5BA2127F90C8EA07C093C7FCA35A5AAA923807FFFC4B -13FE4B13FF7E7E6F13FE6F13FC9238000FE07F003F151FA27F121F7F163F6C7EA26C6C14 -7F7F6C6C14FF6C6C5B6E5A6C6D5A90387FF81F6DB6FC6D14EF6D14CF6D148F0101140F90 -3A007FFC07C0DA1FF0C7FC30457CC338>71 D<007FB612F0B712F8A56C15F0260001FCC7 -FCB3B3B1007FB612F0B712F8A56C15F0254377C238>73 D<90380FFFFE90B612E0000315 -F8488148814881A2273FFE000F138001F01301497F49147F4848EC3FC0A290C8121FA448 -16E0A248150FB3AC6C151FA36C16C0A36D143FA36C6CEC7F806D14FF6D5B01FE130F6CB7 -1200A26C5D6C5D6C5DC615E0010F49C7FC2B457AC338>79 D<003FB512F04814FEB77E16 -E0826C816C813A01FC003FFEED07FF03017F81707E163F161F83160FA7161F5F163F167F -4C5A5D030790C7FCED3FFE90B65A5E5E5EA282829038FC001FED07FC6F7E150115008282 -AA18E0EF01F0EF03F8A31783EE3F87263FFFE0ECC7F0486D14FFB56C7F18E07013C06C49 -6D13806C496D1300CA12FC35447EC238>82 D<003FB8FC481780B9FCA53BFE0007F0003F -A9007CEE1F00C792C7FCB3B3A70107B512F04980A56D5C31437DC238>84 -D<267FFFF090387FFFF0B56C90B512F8A56C496D13F0D801FCC73801FC00B3B3A66D1403 -00005EA36D14076D5D6E130F6D6C495A6E133F6D6C495A6D6C495AECFF076D90B5C7FC6D -5C6D5C6D5C023F13E0020F1380DA03FEC8FC35447FC238>I87 -D<001FB712F04816F85AA417F090C8121F17E0EE3FC0167F1780EEFF00A24B5A4B5A123E -C8485A4B5AA24B5A4B5AA24B5A4BC7FCA24A5A14035D4A5A140F5D4A5A143F5D4A5A14FF -92C8FC495A13035C495AA2495A495AA2495A495A17F849C7EA01FC485AA2485A485AA248 -5A121F5B485A127F90B7FCB8FCA56C16F82E437BC238>90 D<003FB712804816C0B812E0 -A46C16C06C16802B087A7D38>95 D97 DIIIII<14F0497E497E497EA4 -6D5A6D5A6D5A91C8FCAB383FFFFC487FB5FCA37E7EC7FCB3AF007FB612F0B712F816FCA3 -16F86C15F0264476C338>105 D<387FFFFEB6FCA57EC77EB3B3B1007FB7FCB81280A56C -1600294379C238>108 D<023FEB07E03B3FE0FFC01FF8D87FF39038E07FFCD8FFF76D48 -7E90B500F97F15FB6C91B612806C01C1EBF83F00030100EBE01F4902C013C0A24990387F -800FA2491400A349137EB3A73C3FFF03FFE07FFC4801879038F0FFFEB500C76D13FFA36C -01874913FE6C01039038E07FFC383080AF38>IIII114 D<903907FF80F0017FEBF1F848B5 -12FD000714FF5A5A5AEBFC00D87FE0131F0180130F48C71207481403A5007FEC01F001C0 -90C7FCEA3FF013FE381FFFF86CEBFFC0000314F8C614FF013F1480010714E0D9003F13F0 -020013F8ED0FFC1503003CEC01FE007E140000FE15FF167F7EA37F6D14FF16FE01F01303 -6DEB07FC01FF137F91B512F816F016E04815C0D8FC3F1400010F13FCD8780113E0283278 -B038>III<000FB712FC4816FE5AA417 -FC0180C7EA1FF8EE3FF0EE7FE0EEFFC04B13804B13006CC7485AC8485A4B5A4B5A4B5A4B -5A4A5B4A90C7FCEC07FC4A5A4A5A4A5A4A5A49485A4990C8FC495A495A495A495A494814 -7C494814FE485B4890C8FC485A485A485A485A48B7FCB8FCA56C16FC2F2F7DAE38>122 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Ff cmbx12 13.14 53 -/Ff 53 122 df<923807FFE092B512FC020714FF021F81027F9038007FC0902601FFF0EB -0FE04901C0497E4990C7487ED90FFC147F011F824A14FF495AA2137F5CA2715A715A715A -EF078094C8FCA7EF07FCB9FCA526007FF0C7123F171FB3B3A2003FB5D8E00FB512F8A53D -4D7ECC44>12 D45 DI<177817F8EE01FCA21603A2EE07F8A217F016 -0FA217E0161FA2EE3FC0A21780167FA217005EA24B5AA25E1503A24B5AA25E150FA25E15 -1FA24B5AA25E157FA24BC7FCA25D1401A25D1403A24A5AA25D140FA24A5AA25D143FA25D -147FA24AC8FCA25C1301A25C1303A2495AA25C130FA2495AA25C133FA25C137FA249C9FC -A25B1201A2485AA25B1207A25B120FA2485AA25B123FA25B127FA248CAFCA25AA2127CA2 -2E6D79D13D>I<15F014011407141F147FEB03FF137FB6FCA313FC1380C7FCB3B3B2007F -B712E0A52B4777C63D>49 DIIIII<121F7F7F13FE90B812E0A45A18C0188018005F5FA25F485E90C8 -EA07E0007E4B5A5F007C151F4CC7FC167E5E485D15014B5A4B5AC8485A4B5AA24BC8FC15 -7EA25D1401A24A5A1407A24A5AA2141FA24A5AA2147FA314FFA3495BA45BA55BAA6D5BA2 -6D90C9FCEB007C334B79C93D>III65 -D<93261FFF80EB01C00307B500F81303033F02FE13074AB7EAC00F0207EEE03F021F903A -FE007FF87F027F01E0903807FCFF91B5C70001B5FC010301FC6E7E4901F0151F4901C081 -4949814990C97E494882494882485B48197F4A173F5A4A171F5A5C48190FA2485B1A07A2 -5AA297C7FC91CDFCA2B5FCAD7EA280A2F207C07EA36C7FA26C190F6E18807E6E171F6C1A -006E5F6C193E6C6D177E6D6C5F6D6C4C5A6D6D15036D6D4B5A6D01F04B5A6D01FCED3FC0 -010001FFEDFF806E01E0D903FEC7FC021F01FEEB3FFC020790B612F002015EDA003F92C8 -FC030714FCDB001F13804A4D79CB59>67 D -III<93261FFF80EB01C00307B500F8 -1303033F02FE13074AB7EAC00F0207EEE03F021F903AFE007FF87F027F01E0903807FCFF -91B5C70001B5FC010301FC6E7E4901F0151F4901C0814949814990C97E49488249488248 -5B48197F4A173F5A4A171F5A5C48190FA2485B1A07A25AA297C8FC91CEFCA2B5FCAD6C04 -0FB712C0A280A36C93C7001FEBC000A2807EA27E807E807E806C7F7E6D7E6D7E6D7F6D01 -E05D6D6D5D6D13FC010001FF4AB5FC6E01E0EB07F9021F01FFEB3FF0020791B5EAE07F02 -01EEC01FDA003FED0007030702F81301DB001F018090C8FC524D79CB61>III76 DII -II82 DI<003FBB12C0A5DA80019038FC001FD9FC001601D8 -7FF09438007FE001C0183F49181F90C7170FA2007E1907A3007C1903A500FC1AF0481901 -A5C894C7FCB3B3A749B812FCA54C4A7CC955>III89 D97 -DI<91380FFF8091B512F8 -010314FF010F15804948C613C0D97FF8EB1FE0D9FFE0EB3FF04849137F4849EBFFF84890 -C7FCA2485A121FA24848EC7FF0EE3FE0EE1FC0007F92C7FC5BA212FFAC127FA27FA2123F -A26C6C153EA26C6C157E177C6C6D14FC6C6D14F86C6D13036C6DEB07F0D97FFCEB1FE06D -B4EBFFC0010F90B5120001035C010014F0020F13802F347CB237>IIIIII<13FCEA03FF487F487FA2487FA66C5BA26C5B6C90C7FCEA00FC90C8 -FCABEB7FC0B5FCA512037EB3B3A2B61280A5194D7BCC22>I108 D<90287FC001FFC0EC7FF0B5010F01FC0103B5FC033F -6D010F804B6D4980DBFE079026803F817F9126C1F801903AC07E007FF00003D9C3E0DAE0 -F8806C9026C78000D9F1E06D7E02CFC7EBF3C002DEEDF780DD7FFF6E7E02FC93C7FC4A5D -A24A5DA34A5DB3AAB6D8C03FB5D8F00FB512FCA55E327BB167>I<903A7FC001FFC0B501 -0F13F8033F7F4B13FFDBFE077F9138C1F00300039026C3E0017F6CD9C78080ECCF0014DE -02DC6D7F14FC5CA25CA35CB3AAB6D8C07FEBFFE0A53B327BB144>I<913807FF80027F13 -F80103B6FC010F15C090261FFE017F903A7FF0003FF849486D7E480180EB07FE4890C76C -7E4817804980000F17C048486E13E0A2003F17F0A249157F007F17F8A400FF17FCAB007F -17F8A46C6CEDFFF0A2001F17E0A26C6C4A13C0A26C6C4A13806C6D4913006C5E6C01E0EB -1FFC6D6C495A903A3FFE01FFF0010FB612C0010392C7FCD9007F13F80207138036347DB2 -3D>I<90397FC007FFB5017F13E002C1B512FC02C714FF9126CFF80F7F9126DFC0037F00 -0301FFC77F6C496E7E02F8814A6E7E717E4A81831980A28319C0A37113E0AC19C05FA319 -805F19005F606E143F6E5D4D5A6E4A5A02FF495BDBC0075B9126EFF01F5B02E7B548C7FC -02E114F8DAE07F13E0DB0FFEC8FC92CAFCAFB612C0A53B477CB144>I<9039FF803FE0B5 -EBFFF8028113FE02837FDA87E11380EC8F830003D99F0713C06C139E14BCA214F8A24A6C -13806F13006F5A4A90C7FCA45CB3A8B612E0A52A327CB132>114 -D<903907FF8070017FEBF1F048B6FC1207380FFC01391FE0003F4848130F491307127F90 -C71203A2481401A27FA27F01F090C7FC13FCEBFFC06C13FEECFFE06C14FC6C806CECFF80 -6C15C06C15E06C15F06C7E011F14F8010114FCEB000FEC007FED1FFE0078140F00F81407 -15037E1501A27E16FC7E15036D14F86D13076D14F001F8EB1FE001FFEBFFC04890B51280 -486C1400D8F81F13FCD8E00313C027347CB230>I<14F8A51301A41303A21307A2130FA2 -131F133F137F13FF1203000F90B512F0B7FCA426007FF8C7FCB3A7167CAA013F14F880A2 -90391FFE01F0010F1303903907FF87E06DEBFFC06D14806D6C1300EC0FFC26467EC430> -IIII<007FB500C090387FFFE0A5C601F0C73803F8006E5D017F5E6E140701 -3F5E80170F011F5E6E141F6D93C7FC6F5B6D153E6F137E6D157C6F13FCA26D6D5B16016D -5DEDF803027F5CEDFC07023F5CEDFE0F021F5C15FF161F6E91C8FC16BF6E13BE16FE6E5B -A26E5BA36E5BA26F5AA26F5AA26F5AA393C9FC5D153E157E157CD81F8013FC486C5B387F -E001D8FFF05B14035D14074A5A49485A007F133F4948CAFC383F81FE381FFFF86C5B6C13 -C0C648CBFC3B477EB041>121 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fg cmtt12 17.28 6 -/Fg 6 123 df<913803FFC0023F13FC49B67E010715F04981013F15FE498190B812C048 -8348D9FC0180489026E0001F7F480180130391C87F48486F7E49153F4848ED0FFF834848 -178083496F13C012FF8319E07FA2187FA36C5A6C5A6C5ACBFCA218FFA219C05FA219805F -A24D13005F604D5A173F4D5A4D5AA24C5B4C5B4C5B041F90C7FC4C5A4C5A4C5A4B5B4B5B -4B5B031F5B4B90C8FC4B5AEDFFF84A5B4A5B4A5B021F5B4A90C9FCEC7FFC4A5A495B495B -010F5B495B4948CAFC4948ED1F804948ED3FC04849ED7FE0485B000F5B4890C9FC4890B8 -FC5ABAFCA56C18C06C18803B5A79D94A>50 D<383FFFF0487F80B5FCA37EA27EEA000FB0 -EE0FFC93B57E030714E0031F14F84B14FE92B7FC02FD8291B87E85DCE01F7FEE000703FC -01017F4B6D7F03E0143F4B6E7E4B140F8592C87E4A6F1380A34A6F13C0A284A21AE0A219 -7FAA19FFA21AC0A26E5DA24E138080606F1600606F4A5A6F143F6F4A5A6F4A5A6F130303 -FF010F5BDCC03F5B93B65A6102FD93C7FC02FC5D6F5C031F14F0902607F80714C0902603 -F00191C8FC90C8EA3FF043597FD74A>98 D105 D<003FB512FE4880B77EA57E7EC71201B3B3B3 -B0003FB812FC4817FEBAFCA56C17FE6C17FC385877D74A>108 D -112 D<000FB912E04818F04818F8A619F001F0C8000313E04D13C04D13804D13004D5A4D -5A4D5A6C484A5B6C484A5BC9000F5B4C5B4C90C7FC4C5A4C5A4B5B4B5B4B5B4B5B4B5B4B -90C8FC4B5A4B5A4A5B4A5B4A5B4A5B4A5B4A90C9FC4A5A4A5A495B495B495B4949EC07E0 -4949EC0FF04948C8EA1FF8495A495A485B485B485B485B4890C9FC485A48B9FCBAFCA66C -18F06C18E03D3E7BBD4A>122 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fh cmbx12 17.28 28 -/Fh 28 120 df<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007 -C7FCB3B3B3B3007FB91280A6395E74DD51>49 D<913801FFF8021FEBFFC091B612F80103 -15FF010F16C0013F8290267FFC0114F89027FFE0003F7F4890C7000F7F48486E7FD807F8 -6E148048486E14C048486E14E048486F13F001FC17F8486C816D17FC6E80B56C16FE8380 -A219FFA283A36C5BA26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FCA219F85F19F04D -13E0A294B512C019804C14004C5B604C5B4C5B604C13804C90C7FC4C5A4C5A4B13F05F4B -13804B90C8FC4B5AED1FF84B5A4B5A4B48143F4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC -7F8092C9FC02FE16FE495A495A4948ED01FCD90FC0150749B8FC5B5B90B9FC5A4818F85A -5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5FC020F14F8023F14FF49B712C04916F001 -0FD9C01F13FC90271FFC00077FD93FE001017F49486D8049C86C7F484883486C6F7F14C0 -486D826E806E82487FA4805CA36C5E4A5E6C5B6C5B6C495E011FC85A90C95CA294B55A61 -4C91C7FC604C5B4C5B4C5B4C5B047F138092260FFFFEC8FC020FB512F817E094C9FC17F8 -17FF91C7003F13E0040713F8040113FE707F717F7113E085717FA2717F85A285831A80A3 -1AC0EA03FCEA0FFF487F487F487FA2B57EA31A80A34D14005C7E4A5E5F6C495E49C8485B -D81FF85F000F5ED807FE92B55A6C6C6C4914806C01F0010791C7FC6C9026FF803F5B6D90 -B65A011F16F0010716C001014BC8FCD9001F14F0020149C9FC426079DD51>II<4DB5ED03C0057F02F0 -14070407B600FE140F047FDBFFC0131F4BB800F0133F030F05FC137F033F9127F8007FFE -13FF92B6C73807FF814A02F0020113C3020702C09138007FE74A91C9001FB5FC023F01FC -16074A01F08291B54882490280824991CB7E49498449498449498449865D49498490B5FC -484A84A2484A84A24891CD127FA25A4A1A3F5AA348491A1FA44899C7FCA25CA3B5FCB07E -A380A27EA2F50FC0A26C7FA37E6E1A1F6C1D80A26C801D3F6C6E1A00A26C6E616D1BFE6D -7F6F4E5A7F6D6D4E5A6D6D4E5A6D6D4E5A6D6E171F6D02E04D5A6E6DEFFF806E01FC4C90 -C7FC020F01FFEE07FE6E02C0ED1FF8020102F8ED7FF06E02FF913803FFE0033F02F8013F -1380030F91B648C8FC030117F86F6C16E004071680DC007F02F8C9FC050191CAFC626677 -E375>67 D72 DI77 -D80 D<001FBEFCA64849C79126E0000F148002E0180091 -C8171F498601F81A0349864986A2491B7FA2491B3F007F1DC090C9181FA4007E1C0FA600 -FE1DE0481C07A5CA95C7FCB3B3B3A3021FBAFCA663617AE070>84 -D<913803FFFE027FEBFFF00103B612FE010F6F7E4916E090273FFE001F7FD97FE001077F -D9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C496E7FA26C5B6D5AEB1FC090 -C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEBFE004913F048B512C04891 -C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C047D7F6EEB01F96C6DD903 -F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B5487E6C6C4B7E011F02FC13 -0F010302F001011400D9001F90CBFC49437CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3 -A8EFFFF8040FEBFF80047F14F00381B612FC038715FF038F010014C0DBBFF0011F7FDBFF -C001077F93C76C7F4B02007F03F8824B6F7E4B6F13804B17C0851BE0A27313F0A21BF8A3 -7313FCA41BFEAE1BFCA44F13F8A31BF0A24F13E0A24F13C06F17804F1300816F4B5A6F4A -5B4AB402075B4A6C6C495B9126F83FE0013F13C09127F00FFC03B55A4A6CB648C7FCDAC0 -0115F84A6C15E091C7001F91C8FC90C8000313E04F657BE35A>I<92380FFFF04AB67E02 -0F15F0023F15FC91B77E01039039FE001FFF4901F8010113804901E0010713C049018049 -13E0017F90C7FC49484A13F0A2485B485B5A5C5A7113E0485B7113C048701380943800FE -0095C7FC485BA4B5FCAE7EA280A27EA2806C18FCA26C6D150119F87E6C6D15036EED07F0 -6C18E06C6D150F6D6DEC1FC06D01E0EC7F806D6DECFF00010701FCEB03FE6D9039FFC03F -FC010091B512F0023F5D020F1580020102FCC7FCDA000F13C03E437BC148>II<92380FFFC0 -4AB512FC020FECFF80023F15E091B712F80103D9FE037F499039F0007FFF011F01C0011F -7F49496D7F4990C76C7F49486E7F48498048844A804884485B727E5A5C48717EA35A5C72 -1380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A27EA27E6E160FF11F806C183F6C7FF1 -7F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A -6D9026FFC01F90C7FC6D6C90B55A021F15F8020715E0020092C8FC030713F041437CC14A ->III<903807FF80B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714 -FC041F14FF4C8193267FE07F7F922781FE001F7FDB83F86D7FDB87F07FDB8FC0814C7F03 -9FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651647BE35A>II<903807FF80B6 -FCA6C6FC7F7FB3B3B3B3ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B6 -91B500F00207EBFF80040702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D48 -01037F922781FE001F9027E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F -6DD98FC0DBF87EC7804C6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B -5FA24B5FA24B94C8FCA44B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607 -FF80EB1FFFB691B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83 -F86D7F6DD987F07F6DD98FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2 -B7D8F007B71280A651417BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE49 -4848C66C6C7E010701F0010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E -48496F13804819C04A814819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FF -AD6C19FEA46C6D4B13FCA36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C -6D4B13006D6C4B5A6D6D495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC -023F15FC020715E0020092C8FC030713E048437CC151>I114 D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0 -014890C7121FD80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D -92C7FC13FF14E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F -1680010F16C01303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC8117 -7F6C163FA2171F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002 -C0EB0FFE02FCEB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437B -C140>II<90 -2607FFC0ED3FFEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D14 -7E4E7F6D6D4948806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8 -DA003F018002F0C7FC51427BC05A>I119 D -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fi cmsy10 10.95 1 -/Fi 1 16 df15 -D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fj cmtt10 10.95 89 -/Fj 89 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00 -A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14 -00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2 -02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F -90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2 -29387DB730>I38 DI<141E147F14FF5BEB03FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00 -485A5B12035B485A120F5BA2485AA2123F5BA2127F90C7FCA412FEAD127FA47F123FA27F -121FA26C7EA27F12076C7E7F12017F6C7EEB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB -01FF7F147F141E184771BE30>I<127812FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB -7F80133F14C0131FEB0FE014F01307A2EB03F8A214FC1301A214FE1300A4147FAD14FEA4 -130114FCA2130314F8A2EB07F0A2130F14E0EB1FC0133F1480137FEBFF00485A485A485A -485AEA3FE0485A485A90C7FC5A1278184778BE30>I<14E0497E497EA60038EC0380007E -EC0FC0D8FF83EB3FE001C3137F9038F3F9FF267FFBFB13C06CB61280000FECFE00000314 -F86C5C6C6C13C0011F90C7FC017F13C048B512F04880000F14FE003FECFF80267FFBFB13 -C026FFF3F913E09038C3F87F0183133FD87E03EB0FC00038EC0380000091C7FCA66D5A6D -5A23277AAE30>I<143EA2147FAF007FB7FCA2B81280A36C1600A2C76CC8FCAF143EA229 -297DAF30>II<007FB612F0 -A2B712F8A36C15F0A225077B9E30>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0 -EA0F000C0C6E8B30>I<16F01501ED03F8A21507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80 -A2EDFF00A24A5AA25D1403A24A5AA24A5AA24A5AA24A5AA24A5AA24AC7FCA2495AA25C13 -03A2495AA2495AA2495AA2495AA2495AA249C8FCA2485AA25B1203A2485AA2485AA2485A -A2485AA2485AA248C9FCA25AA2127CA225477BBE30>I<14FE903807FFC0497F013F13F8 -497F90B57E48EB83FF4848C6138049137F4848EB3FC04848EB1FE049130F001F15F04913 -07A24848EB03F8A290C712014815FCA400FEEC00FEAD6C14016C15FCA36D1303003F15F8 -A26D1307001F15F0A26D130F6C6CEB1FE0A26C6CEB3FC06C6CEB7F806D13FF2601FF8313 -006CEBFFFE6D5B6D5B010F13E06D5BD900FEC7FC273A7CB830>IIIII<000FB612804815C05AA316800180C8FCAEEB83FF019F13C0 -90B512F015FC8181D9FE0313809039F0007FC049133F0180EB1FE06CC7120F000E15F0C8 -1207A216F81503A31218127EA2B4FC150716F048140F6C15E06C141F6DEB3FC06D137F3A -3FE001FF80261FFC0F13006CB55A6C5C6C5C6C14E06C6C1380D90FFCC7FC25397BB730> -II<127CB712FC16FEA416FC48C7EA0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00 -A24A5A4A5A5D14075D140F5D4A5AA24A5AA24AC7FCA25C5C13015CA213035CA213075CA4 -495AA6131F5CA96D5A6DC8FC273A7CB830>I<49B4FC011F13F0017F13FC90B57E0003EC -FF804815C048010113E03A1FF8003FF049131FD83FC0EB07F8A24848EB03FC90C71201A5 -6D1303003F15F86D13076C6CEB0FF06C6CEB1FE0D807FCEB7FC03A03FF83FF806C90B512 -006C6C13FC011F13F0497F90B512FE48802607FE0013C0D80FF8EB3FE0D81FE0EB0FF048 -48EB07F8491303007F15FC90C712014815FE481400A66C14016C15FC6D1303003F15F86D -1307D81FF0EB1FF06D133F3A0FFF01FFE06C90B512C06C1580C6ECFE006D5B011F13F001 -0190C7FC273A7CB830>I<49B4FC010F13E0013F13F890B57E4880488048010113803A0F -FC007FC0D81FF0EB3FE04848131F49EB0FF048481307A290C7EA03F85A4815FC1501A416 -FEA37E7E6D130315076C7E6C6C130F6D133FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEB -E1FC010F138190380060011400ED03F8A2150716F0150F000F15E0486C131F486CEB3FC0 -157FEDFF804A1300EC07FE391FF01FFC90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7C -B830>I<120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA -7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C276EA630>II<16F01503ED07F8151F157FEDFFF014034A13C0021F138091383FFE00ECFFF8495B01 -0713C0495BD93FFEC7FC495A3801FFF0485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA -7FF87FEA1FFF6C7F000313E06C7F38007FFC6D7E90380FFF806D7F010113F06D7FEC3FFE -91381FFF80020713C06E13F01400ED7FF8151F1507ED03F01500252F7BB230>I<007FB7 -FCA2B81280A36C16006C5DCBFCA7003FB612FE4881B81280A36C1600A229157DA530>I< -1278127EB4FC13C07FEA7FF813FEEA1FFF6C13C000037F6C13F86C6C7EEB1FFF6D7F0103 -13E06D7F9038007FFC6E7E91380FFF806E13C0020113F080ED3FF8151F153FEDFFF05C02 -0713C04A138091383FFE004A5A903801FFF0495B010F13804990C7FCEB7FFC48485A4813 -E0000F5B4890C8FCEA7FFE13F8EAFFE05B90C9FC127E1278252F7BB230>I64 D<147F4A7EA2497FA449 -7F14F7A401077F14E3A3010F7FA314C1A2011F7FA490383F80FEA590387F007FA4498049 -133F90B6FCA34881A39038FC001F00038149130FA4000781491307A2D87FFFEB7FFFB56C -B51280A46C496C130029397DB830>I<007FB512F0B612FE6F7E82826C813A03F8001FF8 -15076F7E1501A26F7EA615015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E082 -9039F8000FF8ED03FC6F7E1500167FA3EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6 -FCB75A5E16C05E6C02FCC7FC29387EB730>I<91387F803C903903FFF03E49EBFC7E011F -13FE49EBFFFE5B9038FFE07F48EB801F3903FE000F484813075B48481303A2484813015B -123F491300A2127F90C8FC167C16005A5AAC7E7EA2167C6D14FE123FA27F121F6D13016C -6C14FCA26C6CEB03F86D13076C6CEB0FF03901FF801F6C9038E07FE06DB512C06D14806D -1400010713FC6D13F09038007FC0273A7CB830>I<003FB512E04814FCB67E6F7E6C816C -813A03F8007FF0ED1FF8150F6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC -161F17C0A3163F1780A2167F17005E4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A -93C7FC6C14FC6C14E02B387FB730>I<007FB7FCB81280A47ED803F8C7123FA8EE1F0093 -C7FCA4157C15FEA490B5FCA6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA4 -6C16C02B387EB730>I<003FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FC -A5153E157FA490B6FCA69038FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A38 -7EB730>I<02FF13F00103EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F4848 -133F4848131F49130F485A491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA8 -92B5FC4A14805CA26C7F6C6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C6C13 -1FA2D803FE133F6C6C137FECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC -293A7DB830>I<3B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D8 -03F8C7EAFE00B290B6FCA601F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C -496C13F06C496C13E02D387FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3B3A8 -007FB6FCB71280A46C1500213879B730>I<49B512F04914F85BA27F6D14F090C7EAFE00 -B3B3123C127EB4FCA24A5A1403EB8007397FF01FF86CB55A5D6C5C00075C000149C7FC38 -003FF025397AB730>II<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F -80EE1FC0A9003FB7FC5AB8FCA27E6C16802A387EB730>III<90383FFFE048B512FC00 -0714FF4815804815C04815E0EBF80001E0133FD87F80EB0FF0A290C71207A44815F84814 -03B3A96C1407A26C15F0A36D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C1580 -6C1500000114FCD8003F13E0253A7BB830>I<007FB512F0B612FE6F7E16E0826C813903 -F8003FED0FFCED03FE15016F7EA2821780163FA6167F17005EA24B5A1503ED0FFCED3FF8 -90B6FC5E5E16804BC7FC15F001F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<90383F -FFE048B512FC000714FF4815804815C04815E0EBF80001E0133F4848EB1FF049130F90C7 -1207A44815F8481403B3A8147E14FE6CEBFF076C15F0EC7F87A2EC3FC7018013CF9038C0 -1FFFD83FE014E0EBF80F90B6FC6C15C06C15806C1500000114FCD8003F7FEB00016E7EA2 -1680157F16C0153F16E0151F16F0150FED07E025467BB830>I<003FB57E4814F0B612FC -15FF6C816C812603F8017F9138003FF0151F6F7E15071503821501A515035E1507150F4B -5A153F4AB45A90B65A5E93C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FC -A53A3FFF8003FB4801C0EBFFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB7 -30>I<90390FF803C0D97FFF13E048B512C74814F74814FF5A381FF80F383FE001497E48 -48137F90C7123F5A48141FA2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13 -FF6C14E0000114F86C80011F13FF01031480D9003F13C014019138007FE0151FED0FF0A2 -ED07F8A2007C140312FEA56C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B512 -80160000FD5CD8FC7F13F8D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8 -FCA43AFE003F800FA8007CED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730 ->I<3B7FFFC007FFFCB56C4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600 -A36C6C14FE6D13016D5CEC800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC -9038007FFCEC1FF02F3980B730>III<3A3FFF01FFF84801837F02C77FA202835B6C01015B3A01FC007F806D91C7 -FC00005C6D5BEB7F01EC81FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D5BA2 -6D90C8FCA4497FA2497FA2815B81EB0FE781EB1FC381EB3F8181EB7F0081497F49800001 -143F49800003141F49800007140FD87FFEEB7FFFB590B5128080A25C6C486D130029387D -B730>II<001FB612FC4815FE5AA490C7EA03FCED07F816F0150FED1FE016C0153F -ED7F80003E1500C85A4A5A5D14034A5A5D140F4A5A5D143F4A5A92C7FC5C495A5C130349 -5A5C130F495A5C133F495A91C8FC5B4848147C4914FE1203485A5B120F485A5B123F485A -90B6FCB7FCA46C15FC27387CB730>I<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC15 -80A46C140019476DBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5FCB6FCA46C -140019477DBE30>93 D<1307EB1FC0EB7FF0497E000313FE000FEBFF80003F14E0D87FFD -13F039FFF07FF8EBC01FEB800F38FE0003007CEB01F00010EB00401D0E77B730>I<007F -B612F0A2B712F8A36C15F0A225077B7D30>I97 -DII<913801FFE04A7F5C -A28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49 -131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F -390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D907FC -C8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A07FC -007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516 -F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE0 -6C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>IIII< -14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003F -B612C04815E0B7FCA27E6C15C023397AB830>III<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB7 -30>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F138726 -07FE07EB03F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80 -B548018F13C0A46C486C01071380322881A730>II< -49B4FC010F13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81F -E0EB0FF0A24848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D -1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B51280 -6C15006C6C13FC6D5B010F13E0010190C7FC272A7CA830>II<49B413F8010FEBC1FC013F13F14913FD48B6FC5A4813 -81390FFC007F49131F4848130F491307485A491303127F90C7FC15015A5AA77E7E15037F -A26C6C1307150F6C6C131F6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F -13F1010F13C1903803FE0190C7FCAD92B512F84A14FCA46E14F82E3C7DA730>II<90381FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E -007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02 -001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC -5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830>III<3B3F -FFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005D -A26D130F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE0107 -5BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFF -E0486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE -00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FB -A290393FF07FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801 -C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3EC -E7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1 -F890381F81FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500 -C1148014E3A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A2 -6C16C06C496C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805B -A214C0010F49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D -147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387 -EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316 -FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A -4A5A4990C7FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A48 -5A48B7FCB8FCA46C15FE28277DA630>II< -127CA212FEB3B3B3AD127CA207476CBE30>II<017C13 -3848B4137C48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF8713E0010713C0486C13 -80D87C0113003838007C1F0C78B730>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fk cmbx12 14.4 49 -/Fk 49 122 df12 D45 DI<157815FC14031407141F14FF130F00 -07B5FCB6FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43>49 -DI<91380FFFC091B512FC0107ECFF80011F15E09026 -3FF8077F9026FF800113FC4848C76C7ED803F86E7E491680D807FC8048B416C080486D15 -E0A4805CA36C17C06C5B6C90C75AD801FC1680C9FC4C13005FA24C5A4B5B4B5B4B13C04B -5BDBFFFEC7FC91B512F816E016FCEEFF80DA000713E0030113F89238007FFE707E701380 -7013C018E07013F0A218F8A27013FCA218FEA2EA03E0EA0FF8487E487E487EB57EA318FC -A25E18F891C7FC6C17F0495C6C4816E001F04A13C06C484A1380D80FF84A13006CB44A5A -6CD9F0075BC690B612F06D5D011F1580010302FCC7FCD9001F1380374F7ACD43>I<177C -17FEA2160116031607160FA2161F163F167FA216FF5D5DA25D5DED1FBFED3F3F153E157C -15FCEC01F815F0EC03E01407EC0FC01580EC1F005C147E147C5C1301495A495A5C495A13 -1F49C7FC133E5B13FC485A5B485A1207485A485A90C8FC123E127E5ABA12C0A5C96C48C7 -FCAF020FB712C0A53A4F7CCE43>III<121F7F7FEB -FF8091B81280A45A1900606060A2606060485F0180C86CC7FC007EC95A4C5A007C4B5A5F -4C5A160F4C5A484B5A4C5A94C8FC16FEC812014B5A5E4B5A150F4B5AA24B5AA24B5A15FF -A24A90C9FCA25C5D1407A2140FA25D141FA2143FA4147F5DA314FFA55BAC6D5BA2EC3FC0 -6E5A395279D043>I<913807FFC0027F13FC0103B67E010F15E090261FFC0113F8903A3F -E0003FFCD97F80EB0FFE49C76C7E48488048486E1380000717C04980120F18E0177FA212 -1F7FA27F7F6E14FF02E015C014F802FE4913806C7FDBC00313009238F007FE6C02F85B92 -38FE1FF86C9138FFBFF06CEDFFE017806C4BC7FC6D806D81010F15E06D81010115FC0107 -81011F81491680EBFFE748018115C048D9007F14E04848011F14F048487F484813030300 -14F8484880161F4848020713FC1601824848157F173FA2171FA2170FA218F8A27F007F17 -F06D151FA26C6CED3FE0001F17C06D157F6C6CEDFF806C6C6C010313006C01E0EB0FFE6C -01FCEBFFFC6C6CB612F06D5D010F1580010102FCC7FCD9000F13C0364F7ACD43>I<9138 -0FFF8091B512F8010314FE010F6E7E4901037F90267FF8007F4948EB3FF048496D7E4849 -80486F7E484980824817805A91C714C05A7013E0A218F0B5FCA318F8A618FCA46C5DA37E -A25E6C7F6C5DA26C5D6C7F6C6D137B6C6D13F390387FF803011FB512E36D14C301030283 -13F89039007FFE03EC00401500A218F05EA3D801F816E0487E486C16C0487E486D491380 -A218005E5F4C5A91C7FC6C484A5A494A5A49495B6C48495BD803FC010F5B9027FF807FFE -C7FC6C90B55A6C6C14F06D14C0010F49C8FC010013F0364F7ACD43>I<91B5FC010F14F8 -017F14FF90B712C00003D9C00F7F2707FC00017FD80FE06D7F48486E7E48C87FD87FE06E -7E7F7F486C1680A66C5A18006C485C6C5AC9485A5F4B5B4B5B4B5B4B5B4B90C7FC16FC4B -5A4B5A16C04B5A93C8FC4A5A5D14035D5D14075DA25D140FA25DAB91CAFCAAEC1FC04A7E -ECFFF8497FA2497FA76D5BA26D5BEC3FE06E5A315479D340>63 D68 DI -I72 D -I<027FB71280A591C76C90C7FCB3B3B3EA07F0EA1FFC487E487EA2B57EA44C5AA34A485B -7E49495BD83FF8495BD81FE05DD80FFC011F5B2707FF807F90C8FC000190B512FC6C6C14 -F0011F14C0010101F8C9FC39537DD145>I76 DI80 -D82 D<91260FFF80130791B5 -00F85B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5 -FC4848C87E48488149150F001F824981123F4981007F82A28412FF84A27FA26D82A27F7F -6D93C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C83 -6C836D826D82010F821303010082021F16801400030F15C0ED007F040714E01600173F05 -0F13F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D -5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7 -FC48C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F -9038C0007F49C71607D87FF8060113C001E08449197F49193F90C8171FA2007E1A0FA300 -7C1A07A500FC1BE0481A03A6C994C7FCB3B3AC91B912F0A553517BD05E>II87 -D97 -DI<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001 -FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A48 -92C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC -3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC -020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91 -B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980 -485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C -6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9 -003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901 -817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191 -C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01 -F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE -903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>IIII<137F497E -000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3 -A6B612E0A51B547BD325>I -107 DIII<913801FFE0021F13FE91B612C0010315F0010F9038 -807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C8 -6C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA2 -6C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF80 -7FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F -13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F -92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F61 -6E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F14 -80031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380F -FF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF -150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114 -D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980 -127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C -816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00 -F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF -C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414 -FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE -07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203 -13802A4D7ECB34>IIII121 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fl cmr10 10.95 86 -/Fl 86 124 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907 -F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7 -FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11 -D<4AB4FC021F13C091387F01F0903901FC0078D907F0131C4948133E494813FF49485A13 -7F1400A213FE6F5A163893C7FCAA167FB8FCA33900FE00018182B3AC486CECFF80007FD9 -FC3F13FEA32F407FBF33>I<4AB47E021F13F791387F00FFEB01F8903807F001EB0FE0EB -1FC0EB3F80137F14008101FE80AEB8FCA3C648C77EB3AE486CECFF80007FD9FC3F13FEA3 -2F407FBF33>I<4AB4ECFF80021FD9C00F13E0913B7F01F03F80F8903C01F80078FE003C -D907F0D93FF8130E49484948131F49484948EB7F804948484913FF137F02005CA201FE92 -C7FC6FED7F0070141C96C7FCAAF13F80BBFCA3C648C76CC7FC197F193FB3AC486C4A6CEB -7FC0007FD9FC3FD9FE1FB5FCA348407FBF4C>I<121EEA7F80EAFFC0A9EA7F80ACEA3F00 -AC121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33 -D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F391E600F30000013 -00A401E01370491360A3000114E04913C00003130101001380481303000EEB070048130E -0018130C0038131C003013181C1C7DBE2D>I<013F4C7ED9FFC04B7E2601E0E015072607 -C070150F48486C4B5A023E4BC7FC48486C5D48D90FC0EB01FE003ED90EF0EB07FCDA0F3F -133E007E903A070FFFF8F8007C0200EBC1F0EE000300FC6D6C495A604D5A171F95C8FC17 -3E177E177C5F16015F007C4948485A1607007E5E003E49495A020E131F003F93C9FC6C49 -133E260F803C137E0238137C6C6C485B3901E0E0016CB448485AD93F0049133F90C74848 -EBFFC0030F903801E0E093398007C0704B4848487E4B153C033E90381F001C4B497F03FC -133E4B150F4A48017E7F0203147C5D4A4801FCEB0380140F5D4AC7FC5C143E5C14FC5C49 -5A13034948027CEB07005C4948147E011F033E5B91C8140E013E153F017E6F5B017C9238 -0F803C4917380001706C5A49923801E0E0496FB45A6C48043FC7FC41497BC34C>37 -DI<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A3120113801203 -13005A120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0EB03801307EB0F00 -131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6 -127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F12007F1378 -7F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E12707E7E12 -1E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0A3130714E0 -A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA2137813F85B12 -015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>II<121EEA7F8012FF13C0A213 -E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A1218123812300B1C79 -8919>44 DI<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A79 -8919>IIIIII<150E151E153EA2157EA215FE1401A21403EC -077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B5B -1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD -2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FCAC -EB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C713800006141FC813 -C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC3F -80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F824 -3F7CBC2D>II<1238123C123F90B6 -12FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC812 -7015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A313 -0F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>III<12 -1EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E00 -0A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A213 -C0A4127F121E1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A619 ->I<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12F0A26C18E03C167BA147>61 -D63 D<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A2913801C7FC15C3A291380381 -FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D7EA349486D7E91B6FCA249 -819138800001A249C87EA24982010E157FA2011E82011C153FA2013C820138151FA20178 -82170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D417DC044>65 -DII -IIII< -B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7120FB3 -A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>II<011FB512FCA3D9000713006E5A1401B3B3A6123FEA -7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603E07EC7 -FC3800FFF8EB3FC026407CBD2F>IIIIIII -III<003FB91280A3903AF0 -007FE001018090393FC0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00 -E0A5C81600B3B14B7E4B7E0107B612FEA33B3D7DBC42>IIII<007F -B5D8C003B512E0A3C649C7EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C -6D6C143C5F6D6C14706D6D13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BED -F81E913807FC1C163C6E6C5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFE -ED71FF15F103E07F913801C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E0238 -6D7E14784A6D7E4A6D7F130149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00 -076DEC7FFFB500FC0103B512FEA33F3E7EBD44>II<003FB712F8A391C7EA1FF013F801E0EC3FE00180EC7FC090C8FC003EED -FF80A2003C4A1300007C4A5A12784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A90C7FC -A24A5A4A5AA24A5AA24A5A4A5AA24A5A4A5AA24990C8FCA2495A4948141CA2495A495AA2 -495A495A173C495AA24890C8FC485A1778485A484815F8A24848140116034848140F4848 -143FED01FFB8FCA32E3E7BBD38>I -I<486C13C00003130101001380481303000EEB070048130E0018130C0038131C00301318 -0070133800601330A300E01370481360A400CFEB678039FFC07FE001E013F0A3007F133F -A2003F131F01C013E0390F0007801C1C73BE2D>II97 -DI<49B4FC010F13E090383F00F8017C131E4848131F -4848137F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3 -003FEC01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01 -F090380FFFC0D901FEC7FC222A7DA828>II -II<167C903903F801 -FF903A1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC -49137E001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071F -FFC8FCEB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A -0FC0001FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C49 -5A6C6C495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>III<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313 -017F147FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380F -FF803801FC00185185BD1C>II -I<2701F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007 -903BE001F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FC -A2495CB3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF -903807FFC091381E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91 -C7FC13FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F -81F890387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2 -003F15FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6C -EB07E06C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A -7EA82D>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A03FFC001FC6C49 -6C7E91C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC0 -6D1580EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891 -C9FCAD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C -01FC131CD803F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA3 -6C7EA2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC1 -903801FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787C -ECE1FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA3 -1F287EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C00 -78130112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8 -003F13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB -03C0903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA2 -13FCA2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB -7F03013F138090381F8700EB07FEEB01F81B397EB723>IIIIII<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C49 -5A141F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F -80EBFF005A5B484813071207491400485A48485BA248485B4848137F00FF495A90B6FCA2 -21277EA628>II E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fm cmbx12 20.736 9 -/Fm 9 123 df<92380FFFE04AB67E020F15F0027F15FE49B87E4917E0010F17F8013F83 -49D9C01F14FF9027FFFC0001814801E06D6C80480180021F804890C86C8048486F804848 -6F8001FF6F804801C06E8002F081486D18806E816E18C0B5821BE06E81A37214F0A56C5B -A36C5B6C5B6C5B000313C0C690C9FC90CA15E060A34E14C0A21B80601B0060626295B55A -5F624D5C624D5C4D91C7FC614D5B4D13F04D5B6194B55A4C49C8FC4C5B4C5B4C13E04C5B -604C90C9FCEE7FFC4C5A4B5B4B5B4B0180EC0FF04B90C8FC4B5A4B5A4B48ED1FE0EDFFE0 -4A5B4A5B4A90C9FC4A48163F4A5ADA3FF017C05D4A48167F4A5A4990CA12FFD903FC1607 -49BAFC5B4919805B5B90BBFC5A5A5A5A481A005A5ABCFCA462A44C7176F061>50 -D<92383FFFF80207B612E0027F15FC49B87E010717E0011F83499026F0007F13FC4948C7 -000F7F90B502036D7E486E6D806F6D80727F486E6E7F8486727FA28684A26C5C72806C5C -6D90C8FC6D5AEB0FF8EB03E090CAFCA70507B6FC041FB7FC0303B8FC157F0203B9FC021F -ECFE0391B612800103ECF800010F14C04991C7FC017F13FC90B512F04814C0485C4891C8 -FC485B5A485B5C5A5CA2B5FC5CA360A36E5DA26C5F6E5D187E6C6D846E4A48806C6D4A48 -14FC6C6ED90FF0ECFFFC6C02E090263FE07F14FE00019139FC03FFC06C91B6487E013F4B -487E010F4B1307010303F01301D9003F0280D9003F13FC020101F8CBFC57507ACE5E>97 -D<903801FFFCB6FCA8C67E131F7FB3ADF0FFFC050FEBFFE0057F14FE0403B77E040F16E0 -043F16F84CD9007F13FE9226FDFFF001077F92B500C001018094C86C13E004FC6F7F4C6F -7F04E06F7F4C6F7F5E747F93C915804B7014C0A27414E0A21DF087A21DF8A31DFC87A41D -FEAF1DFCA4631DF8A31DF098B5FC1DE0A25014C0A26F1980501400705D705F704B5B505B -704B5B04FC4B5BDBE7FE92B55A9226C3FF8001035C038101E0011F49C7FC9226807FFC90 -B55A4B6CB712F04A010F16C04A010393C8FC4A010015F84A023F14C090C9000301F0C9FC -5F797AF76C>I<97380FFFE00607B6FCA8F00003190086B3AD93383FFF800307B512F803 -3F14FF4AB712C0020716F0021F16FC027F9039FE007FFE91B500F0EB0FFF010302800101 -90B5FC4949C87E49498149498149498149498190B548814884484A8192CAFC5AA2485BA2 -5A5C5AA35A5CA4B5FCAF7EA4807EA37EA2807EA26C7F616C6E5D6C606C80616D6D5D6D6D -5D6D6D92B67E6D6D4A15FC010301FF0207EDFFFE6D02C0EB3FFE6D6C9039FC01FFF86E90 -B65A020F16C002031600DA007F14FC030F14E09226007FFEC749C7FC5F797AF76C>100 -D105 D<903801FFFCB6FCA8C67E131F7FB3B3B3B3B3ABB812C0A82A7879F7 -35>108 D<902601FFF891380FFFE0B692B512FE05036E7E050F15E0053F15F84D819327 -01FFF01F7F4CD900077FDC07FC6D80C66CDA0FF06D80011FDA1FC07F6D4A48824CC8FC04 -7E6F7F5EEDF9F85E03FB707F5E15FF5EA25EA293C9FCA45DB3B3A6B8D8E003B81280A861 -4E79CD6C>110 D<902601FFFCEC7FFEB6020FB512F0057F14FE4CB712C0040716F0041F -82047F16FE93B5C66C7F92B500F0010F14C0C66C0380010380011F4AC76C806D4A6E8004 -F06F7F4C6F7F4C6F7F4C8193C915804B7014C0861DE0A27414F0A27414F8A47513FCA575 -13FEAF5113FCA598B512F8A31DF0621DE0621DC0621D806F5E701800704B5B505B704B5B -7092B55A04FC4A5C704A5C706C010F5C05E0013F49C7FC9227FE7FFC01B55A70B712F004 -0F16C0040393C8FC040015F8053F14C0050301F0C9FC94CCFCB3A6B812E0A85F6F7ACD6C ->112 D<0007BA12FC1AFEA503E0C714FC4AC74814F84801F04A14F05C02804A14E091C8 -4814C04D14805B494B14004D5B4992B55AA24C5C494A5C615E4C5C001F4B5C5B4C91C7FC -4C5B93B55AA24B5CC8485C4B5CA24B5C4B5C4B91C8FCA24B5B92B55AA24A5C4A5C4A4A14 -FFA24A5C4A5C4A91C8FC614A4915FE91B55A495CA2495C494A14035E5B495C4991C81207 -A24949ED0FFC90B55A484A151FA2484A153F484A157F484A15FF1803484A140F4891C812 -3F48490207B5FC91B9FCBB12F8A57E484D7BCC56>122 D E -%EndDVIPSBitmapFont -end -%%EndProlog -%%BeginSetup -%%Feature: *Resolution 600dpi -TeXDict begin -%%PaperSize: A4 - -%%EndSetup -%%Page: 1 1 -1 0 bop 150 1318 a Fm(bzip2)64 b(and)g(libbzip2)p 150 -1418 3600 34 v 2010 1515 a Fl(a)31 b(program)f(and)g(library)e(for)i -(data)h(compression)2198 1623 y(cop)m(yrigh)m(t)f(\(C\))h(1996-2000)j -(Julian)28 b(Sew)m(ard)2605 1731 y(v)m(ersion)i(1.0)h(of)g(21)g(Marc)m -(h)g(2000)150 5091 y Fk(Julian)46 b(Sew)l(ard)p 150 5141 -3600 17 v eop -%%Page: 1 2 -1 1 bop 3705 -116 a Fl(1)150 299 y(This)24 b(program,)j -Fj(bzip2)p Fl(,)e(and)g(asso)s(ciated)i(library)c Fj(libbzip2)p -Fl(,)i(are)h(Cop)m(yrigh)m(t)g(\(C\))g(1996-2000)j(Julian)150 -408 y(R)h(Sew)m(ard.)40 b(All)29 b(righ)m(ts)h(reserv)m(ed.)150 -565 y(Redistribution)f(and)i(use)h(in)f(source)h(and)g(binary)e(forms,) -j(with)e(or)h(without)f(mo)s(di\014cation,)g(are)i(p)s(er-)150 -675 y(mitted)d(pro)m(vided)f(that)i(the)f(follo)m(wing)f(conditions)g -(are)i(met:)225 832 y Fi(\017)60 b Fl(Redistributions)26 -b(of)k(source)g(co)s(de)g(m)m(ust)g(retain)f(the)h(ab)s(o)m(v)m(e)h -(cop)m(yrigh)m(t)g(notice,)f(this)f(list)f(of)i(con-)330 -941 y(ditions)e(and)i(the)h(follo)m(wing)e(disclaimer.)225 -1076 y Fi(\017)60 b Fl(The)33 b(origin)f(of)h(this)f(soft)m(w)m(are)j -(m)m(ust)e(not)h(b)s(e)e(misrepresen)m(ted;)i(y)m(ou)g(m)m(ust)f(not)g -(claim)g(that)h(y)m(ou)330 1185 y(wrote)d(the)h(original)d(soft)m(w)m -(are.)44 b(If)31 b(y)m(ou)g(use)g(this)f(soft)m(w)m(are)i(in)e(a)h(pro) -s(duct,)g(an)f(ac)m(kno)m(wledgmen)m(t)330 1295 y(in)f(the)i(pro)s -(duct)e(do)s(cumen)m(tation)h(w)m(ould)f(b)s(e)h(appreciated)g(but)g -(is)f(not)i(required.)225 1429 y Fi(\017)60 b Fl(Altered)21 -b(source)g(v)m(ersions)f(m)m(ust)h(b)s(e)f(plainly)e(mark)m(ed)j(as)g -(suc)m(h,)i(and)d(m)m(ust)h(not)g(b)s(e)f(misrepresen)m(ted)330 -1539 y(as)31 b(b)s(eing)e(the)h(original)f(soft)m(w)m(are.)225 -1674 y Fi(\017)60 b Fl(The)27 b(name)h(of)f(the)h(author)f(ma)m(y)h -(not)g(b)s(e)f(used)g(to)h(endorse)f(or)h(promote)g(pro)s(ducts)e -(deriv)m(ed)g(from)330 1783 y(this)j(soft)m(w)m(are)j(without)d(sp)s -(eci\014c)h(prior)e(written)i(p)s(ermission.)150 1965 -y(THIS)37 b(SOFTW)-10 b(ARE)38 b(IS)f(PR)m(O)m(VIDED)i(BY)g(THE)f(A)m -(UTHOR)g(\\AS)g(IS")g(AND)h(ANY)f(EXPRESS)150 2074 y(OR)31 -b(IMPLIED)h(W)-10 b(ARRANTIES,)31 b(INCLUDING,)i(BUT)f(NOT)f(LIMITED)g -(TO,)h(THE)f(IMPLIED)150 2184 y(W)-10 b(ARRANTIES)27 -b(OF)h(MER)m(CHANT)-8 b(ABILITY)28 b(AND)g(FITNESS)f(F)m(OR)g(A)h(P)-8 -b(AR)g(TICULAR)28 b(PUR-)150 2294 y(POSE)37 b(ARE)g(DISCLAIMED.)h(IN)f -(NO)h(EVENT)f(SHALL)g(THE)g(A)m(UTHOR)h(BE)g(LIABLE)g(F)m(OR)150 -2403 y(ANY)56 b(DIRECT,)f(INDIRECT,)h(INCIDENT)-8 b(AL,)56 -b(SPECIAL,)e(EXEMPLAR)-8 b(Y,)57 b(OR)e(CONSE-)150 2513 -y(QUENTIAL)48 b(D)m(AMA)m(GES)i(\(INCLUDING,)g(BUT)f(NOT)f(LIMITED)g -(TO,)g(PR)m(OCUREMENT)150 2622 y(OF)35 b(SUBSTITUTE)e(GOODS)i(OR)f(SER) --10 b(VICES;)34 b(LOSS)f(OF)i(USE,)g(D)m(A)-8 b(T)g(A,)36 -b(OR)f(PR)m(OFITS;)f(OR)150 2732 y(BUSINESS)28 b(INTERR)m(UPTION\))g -(HO)m(WEVER)i(CA)m(USED)f(AND)g(ON)g(ANY)g(THEOR)-8 b(Y)29 -b(OF)g(LIA-)150 2842 y(BILITY,)36 b(WHETHER)g(IN)g(CONTRA)m(CT,)g -(STRICT)e(LIABILITY,)i(OR)g(TOR)-8 b(T)35 b(\(INCLUDING)150 -2951 y(NEGLIGENCE)45 b(OR)g(OTHER)-10 b(WISE\))44 b(ARISING)h(IN)g(ANY) -h(W)-10 b(A)i(Y)46 b(OUT)e(OF)i(THE)e(USE)h(OF)150 3061 -y(THIS)29 b(SOFTW)-10 b(ARE,)31 b(EVEN)f(IF)g(AD)m(VISED)i(OF)e(THE)g -(POSSIBILITY)e(OF)j(SUCH)f(D)m(AMA)m(GE.)150 3218 y(Julian)e(Sew)m -(ard,)i(Cam)m(bridge,)g(UK.)150 3374 y Fj(jseward@acm.org)150 -3531 y(http://sourceware.cygnus)o(.com)o(/bzi)o(p2)150 -3688 y(http://www.cacheprof.org)150 3845 y(http://www.muraroa.demon)o -(.co.)o(uk)150 4002 y(bzip2)p Fl(/)p Fj(libbzip2)d Fl(v)m(ersion)j(1.0) -i(of)e(21)h(Marc)m(h)g(2000.)150 4159 y(P)-8 b(A)g(TENTS:)40 -b(T)-8 b(o)40 b(the)g(b)s(est)g(of)g(m)m(y)g(kno)m(wledge,)j -Fj(bzip2)38 b Fl(do)s(es)i(not)g(use)g(an)m(y)g(paten)m(ted)h -(algorithms.)150 4268 y(Ho)m(w)m(ev)m(er,)33 b(I)e(do)f(not)h(ha)m(v)m -(e)h(the)f(resources)g(a)m(v)-5 b(ailable)30 b(to)h(carry)g(out)g(a)g -(full)d(paten)m(t)k(searc)m(h.)42 b(Therefore)150 4378 -y(I)30 b(cannot)h(giv)m(e)g(an)m(y)g(guaran)m(tee)h(of)e(the)h(ab)s(o)m -(v)m(e)g(statemen)m(t.)p eop -%%Page: 2 3 -2 2 bop 150 -116 a Fl(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2591 -b(2)150 299 y Fh(1)80 b(In)l(tro)t(duction)150 555 y -Fj(bzip2)20 b Fl(compresses)h(\014les)f(using)g(the)h(Burro)m -(ws-Wheeler)g(blo)s(c)m(k-sorting)f(text)j(compression)d(algorithm,)150 -665 y(and)33 b(Hu\013man)g(co)s(ding.)50 b(Compression)32 -b(is)h(generally)g(considerably)f(b)s(etter)i(than)f(that)h(ac)m(hiev)m -(ed)h(b)m(y)150 775 y(more)f(con)m(v)m(en)m(tional)g(LZ77/LZ78-based)g -(compressors,)g(and)f(approac)m(hes)h(the)f(p)s(erformance)g(of)h(the) -150 884 y(PPM)c(family)f(of)i(statistical)f(compressors.)150 -1041 y Fj(bzip2)k Fl(is)h(built)e(on)i(top)h(of)g Fj(libbzip2)p -Fl(,)e(a)i(\015exible)e(library)f(for)i(handling)e(compressed)i(data)i -(in)d(the)150 1151 y Fj(bzip2)c Fl(format.)43 b(This)30 -b(man)m(ual)g(describ)s(es)g(b)s(oth)g(ho)m(w)i(to)g(use)f(the)g -(program)g(and)g(ho)m(w)g(to)h(w)m(ork)f(with)150 1260 -y(the)d(library)d(in)m(terface.)41 b(Most)28 b(of)g(the)g(man)m(ual)f -(is)g(dev)m(oted)i(to)f(this)f(library)-8 b(,)26 b(not)i(the)g -(program,)g(whic)m(h)150 1370 y(is)h(go)s(o)s(d)i(news)e(if)h(y)m(our)g -(in)m(terest)h(is)e(only)g(in)h(the)g(program.)150 1527 -y(Chapter)24 b(2)g(describ)s(es)f(ho)m(w)h(to)h(use)f -Fj(bzip2)p Fl(;)h(this)e(is)g(the)i(only)e(part)h(y)m(ou)h(need)f(to)h -(read)f(if)f(y)m(ou)h(just)g(w)m(an)m(t)150 1636 y(to)35 -b(kno)m(w)f(ho)m(w)g(to)g(op)s(erate)h(the)f(program.)51 -b(Chapter)34 b(3)g(describ)s(es)e(the)i(programming)f(in)m(terfaces)h -(in)150 1746 y(detail,)23 b(and)d(Chapter)h(4)h(records)f(some)h -(miscellaneous)e(notes)i(whic)m(h)e(I)h(though)m(t)h(ough)m(t)g(to)g(b) -s(e)f(recorded)150 1855 y(somewhere.)p eop -%%Page: 3 4 -3 3 bop 150 -116 a Fl(Chapter)30 b(2:)41 b(Ho)m(w)31 -b(to)g(use)f Fj(bzip2)2375 b Fl(3)150 299 y Fh(2)80 b(Ho)l(w)53 -b(to)g(use)g Fg(bzip2)150 566 y Fl(This)29 b(c)m(hapter)i(con)m(tains)f -(a)h(cop)m(y)g(of)g(the)f Fj(bzip2)f Fl(man)h(page,)h(and)f(nothing)g -(else.)390 818 y Ff(NAME)570 1004 y Fj(bzip2)p Fl(,)f -Fj(bunzip2)g Fl(-)h(a)h(blo)s(c)m(k-sorting)f(\014le)f(compressor,)i -(v1.0)570 1136 y Fj(bzcat)e Fl(-)i(decompresses)f(\014les)f(to)i -(stdout)570 1267 y Fj(bzip2recover)c Fl(-)k(reco)m(v)m(ers)h(data)f -(from)f(damaged)g(bzip2)g(\014les)390 1519 y Ff(SYNOPSIS)570 -1706 y Fj(bzip2)f Fl([)h(-cdfkqstvzVL123456789)35 b(])c([)g -(\014lenames)e(...)41 b(])570 1837 y Fj(bunzip2)28 b -Fl([)j(-fkvsVL)f(])h([)f(\014lenames)g(...)41 b(])570 -1968 y Fj(bzcat)29 b Fl([)h(-s)h(])g([)f(\014lenames)g(...)41 -b(])570 2100 y Fj(bzip2recover)27 b Fl(\014lename)390 -2352 y Ff(DESCRIPTION)390 2538 y Fj(bzip2)i Fl(compresses)i(\014les)f -(using)f(the)i(Burro)m(ws-Wheeler)g(blo)s(c)m(k)f(sorting)g(text)i -(compres-)390 2642 y(sion)40 b(algorithm,)j(and)d(Hu\013man)h(co)s -(ding.)71 b(Compression)40 b(is)g(generally)g(considerably)390 -2746 y(b)s(etter)25 b(than)g(that)h(ac)m(hiev)m(ed)g(b)m(y)f(more)g -(con)m(v)m(en)m(tional)h(LZ77/LZ78-based)g(compressors,)390 -2850 y(and)k(approac)m(hes)h(the)f(p)s(erformance)g(of)h(the)f(PPM)g -(family)f(of)i(statistical)f(compressors.)390 3001 y(The)e -(command-line)e(options)i(are)h(delib)s(erately)d(v)m(ery)i(similar)e -(to)j(those)g(of)f(GNU)h Fj(gzip)p Fl(,)390 3104 y(but)h(they)g(are)h -(not)g(iden)m(tical.)390 3255 y Fj(bzip2)f Fl(exp)s(ects)h(a)g(list)f -(of)h(\014le)f(names)h(to)h(accompan)m(y)h(the)e(command-line)e -(\015ags.)43 b(Eac)m(h)390 3359 y(\014le)e(is)h(replaced)g(b)m(y)g(a)h -(compressed)f(v)m(ersion)g(of)g(itself,)i(with)e(the)g(name)g -Fj(original_)390 3463 y(name.bz2)p Fl(.)49 b(Eac)m(h)34 -b(compressed)g(\014le)f(has)g(the)h(same)g(mo)s(di\014cation)e(date,)k -(p)s(ermissions,)390 3567 y(and,)24 b(when)f(p)s(ossible,)f(o)m -(wnership)f(as)j(the)f(corresp)s(onding)f(original,)h(so)g(that)h -(these)g(prop-)390 3671 y(erties)34 b(can)g(b)s(e)f(correctly)i -(restored)f(at)g(decompression)f(time.)51 b(File)34 b(name)g(handling)d -(is)390 3774 y(naiv)m(e)26 b(in)f(the)i(sense)f(that)h(there)f(is)f(no) -i(mec)m(hanism)e(for)h(preserving)f(original)f(\014le)i(names,)390 -3878 y(p)s(ermissions,)37 b(o)m(wnerships)f(or)h(dates)i(in)d -(\014lesystems)h(whic)m(h)g(lac)m(k)h(these)g(concepts,)j(or)390 -3982 y(ha)m(v)m(e)32 b(serious)d(\014le)g(name)i(length)f -(restrictions,)f(suc)m(h)h(as)h(MS-DOS.)390 4133 y Fj(bzip2)26 -b Fl(and)h Fj(bunzip2)e Fl(will)f(b)m(y)k(default)e(not)i(o)m(v)m -(erwrite)g(existing)e(\014les.)38 b(If)27 b(y)m(ou)h(w)m(an)m(t)g(this) -390 4237 y(to)j(happ)s(en,)e(sp)s(ecify)g(the)i Fj(-f)e -Fl(\015ag.)390 4388 y(If)34 b(no)h(\014le)f(names)g(are)i(sp)s -(eci\014ed,)e Fj(bzip2)f Fl(compresses)i(from)f(standard)g(input)f(to)j -(stan-)390 4491 y(dard)c(output.)49 b(In)32 b(this)g(case,)k -Fj(bzip2)31 b Fl(will)g(decline)h(to)i(write)e(compressed)h(output)g -(to)h(a)390 4595 y(terminal,)29 b(as)i(this)e(w)m(ould)g(b)s(e)h(en)m -(tirely)f(incomprehensible)e(and)j(therefore)h(p)s(oin)m(tless.)390 -4746 y Fj(bunzip2)36 b Fl(\(or)j Fj(bzip2)29 b(-d)p Fl(\))37 -b(decompresses)i(all)e(sp)s(eci\014ed)f(\014les.)63 b(Files)37 -b(whic)m(h)g(w)m(ere)i(not)390 4850 y(created)e(b)m(y)f -Fj(bzip2)f Fl(will)e(b)s(e)i(detected)j(and)d(ignored,)i(and)e(a)i(w)m -(arning)d(issued.)56 b Fj(bzip2)390 4954 y Fl(attempts)31 -b(to)f(guess)g(the)g(\014lename)f(for)h(the)g(decompressed)f(\014le)g -(from)h(that)g(of)g(the)g(com-)390 5058 y(pressed)f(\014le)h(as)h -(follo)m(ws:)570 5209 y Fj(filename.bz2)57 b Fl(b)s(ecomes)31 -b Fj(filename)570 5340 y(filename.bz)58 b Fl(b)s(ecomes)30 -b Fj(filename)p eop -%%Page: 4 5 -4 4 bop 150 -116 a Fl(Chapter)30 b(2:)41 b(Ho)m(w)31 -b(to)g(use)f Fj(bzip2)2375 b Fl(4)570 299 y Fj(filename.tbz2)27 -b Fl(b)s(ecomes)j Fj(filename.tar)570 470 y(filename.tbz)57 -b Fl(b)s(ecomes)31 b Fj(filename.tar)570 641 y(anyothername)57 -b Fl(b)s(ecomes)31 b Fj(anyothername.out)390 859 y Fl(If)j(the)h -(\014le)e(do)s(es)i(not)f(end)g(in)f(one)i(of)g(the)g(recognised)f -(endings,)g Fj(.bz2)p Fl(,)h Fj(.bz)p Fl(,)g Fj(.tbz2)e -Fl(or)390 963 y Fj(.tbz)p Fl(,)h Fj(bzip2)f Fl(complains)f(that)j(it)e -(cannot)i(guess)f(the)g(name)h(of)f(the)g(original)e(\014le,)j(and)390 -1067 y(uses)30 b(the)g(original)f(name)h(with)g Fj(.out)f -Fl(app)s(ended.)390 1218 y(As)j(with)f(compression,)h(supplying)c(no)k -(\014lenames)f(causes)i(decompression)e(from)h(stan-)390 -1321 y(dard)d(input)g(to)i(standard)e(output.)390 1472 -y Fj(bunzip2)k Fl(will)g(correctly)j(decompress)e(a)i(\014le)e(whic)m -(h)g(is)h(the)g(concatenation)i(of)e(t)m(w)m(o)i(or)390 -1576 y(more)j(compressed)f(\014les.)67 b(The)39 b(result)g(is)g(the)g -(concatenation)i(of)f(the)g(corresp)s(onding)390 1680 -y(uncompressed)c(\014les.)59 b(In)m(tegrit)m(y)38 b(testing)f(\()p -Fj(-t)p Fl(\))g(of)g(concatenated)i(compressed)e(\014les)f(is)390 -1784 y(also)30 b(supp)s(orted.)390 1935 y(Y)-8 b(ou)40 -b(can)g(also)f(compress)g(or)g(decompress)g(\014les)g(to)h(the)f -(standard)g(output)g(b)m(y)g(giving)390 2039 y(the)30 -b Fj(-c)g Fl(\015ag.)40 b(Multiple)28 b(\014les)h(ma)m(y)i(b)s(e)e -(compressed)h(and)f(decompressed)h(lik)m(e)f(this.)39 -b(The)390 2142 y(resulting)31 b(outputs)i(are)h(fed)f(sequen)m(tially)f -(to)i(stdout.)49 b(Compression)32 b(of)h(m)m(ultiple)e(\014les)390 -2246 y(in)24 b(this)g(manner)h(generates)h(a)g(stream)f(con)m(taining)g -(m)m(ultiple)e(compressed)i(\014le)f(represen-)390 2350 -y(tations.)58 b(Suc)m(h)36 b(a)g(stream)g(can)h(b)s(e)e(decompressed)h -(correctly)h(only)e(b)m(y)h Fj(bzip2)e Fl(v)m(ersion)390 -2454 y(0.9.0)g(or)e(later.)47 b(Earlier)30 b(v)m(ersions)i(of)g -Fj(bzip2)f Fl(will)f(stop)i(after)h(decompressing)e(the)i(\014rst)390 -2558 y(\014le)c(in)h(the)g(stream.)390 2709 y Fj(bzcat)f -Fl(\(or)i Fj(bzip2)e(-dc)p Fl(\))g(decompresses)i(all)e(sp)s(eci\014ed) -g(\014les)g(to)i(the)g(standard)e(output.)390 2860 y -Fj(bzip2)f Fl(will)g(read)i(argumen)m(ts)g(from)f(the)h(en)m(vironmen)m -(t)g(v)-5 b(ariables)28 b Fj(BZIP2)h Fl(and)g Fj(BZIP)p -Fl(,)g(in)390 2963 y(that)24 b(order,)g(and)f(will)e(pro)s(cess)i(them) -g(b)s(efore)g(an)m(y)h(argumen)m(ts)f(read)h(from)f(the)g(command)390 -3067 y(line.)39 b(This)29 b(giv)m(es)h(a)h(con)m(v)m(enien)m(t)h(w)m(a) -m(y)f(to)g(supply)d(default)i(argumen)m(ts.)390 3218 -y(Compression)h(is)h(alw)m(a)m(ys)i(p)s(erformed,)e(ev)m(en)h(if)f(the) -h(compressed)g(\014le)f(is)g(sligh)m(tly)f(larger)390 -3322 y(than)26 b(the)g(original.)38 b(Files)25 b(of)h(less)g(than)g(ab) -s(out)g(one)g(h)m(undred)e(b)m(ytes)j(tend)f(to)h(get)g(larger,)390 -3426 y(since)34 b(the)g(compression)f(mec)m(hanism)h(has)f(a)i(constan) -m(t)g(o)m(v)m(erhead)h(in)d(the)h(region)g(of)g(50)390 -3529 y(b)m(ytes.)54 b(Random)34 b(data)h(\(including)d(the)i(output)h -(of)f(most)h(\014le)f(compressors\))h(is)e(co)s(ded)390 -3633 y(at)e(ab)s(out)f(8.05)i(bits)d(p)s(er)h(b)m(yte,)h(giving)e(an)h -(expansion)g(of)g(around)g(0.5\045.)390 3784 y(As)h(a)g(self-c)m(hec)m -(k)h(for)e(y)m(our)h(protection,)g Fj(bzip2)f Fl(uses)g(32-bit)h(CR)m -(Cs)f(to)i(mak)m(e)f(sure)f(that)390 3888 y(the)45 b(decompressed)f(v)m -(ersion)g(of)g(a)h(\014le)e(is)h(iden)m(tical)f(to)i(the)g(original.)81 -b(This)43 b(guards)390 3992 y(against)i(corruption)e(of)h(the)h -(compressed)f(data,)49 b(and)44 b(against)h(undetected)g(bugs)e(in)390 -4096 y Fj(bzip2)35 b Fl(\(hop)s(efully)e(v)m(ery)k(unlik)m(ely\).)56 -b(The)36 b(c)m(hances)h(of)f(data)h(corruption)e(going)h(unde-)390 -4199 y(tected)g(is)e(microscopic,)h(ab)s(out)f(one)h(c)m(hance)g(in)f -(four)g(billion)d(for)j(eac)m(h)i(\014le)d(pro)s(cessed.)390 -4303 y(Be)38 b(a)m(w)m(are,)k(though,)d(that)f(the)g(c)m(hec)m(k)i(o)s -(ccurs)d(up)s(on)f(decompression,)j(so)f(it)f(can)h(only)390 -4407 y(tell)28 b(y)m(ou)g(that)i(something)d(is)h(wrong.)40 -b(It)28 b(can't)i(help)d(y)m(ou)i(reco)m(v)m(er)h(the)e(original)f -(uncom-)390 4511 y(pressed)h(data.)41 b(Y)-8 b(ou)30 -b(can)f(use)g Fj(bzip2recover)d Fl(to)k(try)f(to)h(reco)m(v)m(er)h -(data)f(from)e(damaged)390 4614 y(\014les.)390 4766 y(Return)22 -b(v)-5 b(alues:)37 b(0)23 b(for)g(a)g(normal)f(exit,)j(1)e(for)g(en)m -(vironmen)m(tal)f(problems)f(\(\014le)i(not)g(found,)390 -4869 y(in)m(v)-5 b(alid)30 b(\015ags,)k(I/O)f(errors,)g(&c\),)h(2)f(to) -g(indicate)f(a)h(corrupt)f(compressed)h(\014le,)f(3)i(for)e(an)390 -4973 y(in)m(ternal)d(consistency)h(error)g(\(eg,)i(bug\))e(whic)m(h)f -(caused)i Fj(bzip2)e Fl(to)i(panic.)390 5304 y Ff(OPTIONS)p -eop -%%Page: 5 6 -5 5 bop 150 -116 a Fl(Chapter)30 b(2:)41 b(Ho)m(w)31 -b(to)g(use)f Fj(bzip2)2375 b Fl(5)390 299 y Fj(-c)30 -b(--stdout)870 403 y Fl(Compress)f(or)i(decompress)f(to)h(standard)e -(output.)390 557 y Fj(-d)h(--decompress)870 661 y Fl(F)-8 -b(orce)44 b(decompression.)77 b Fj(bzip2)p Fl(,)44 b -Fj(bunzip2)d Fl(and)h Fj(bzcat)f Fl(are)i(really)f(the)870 -764 y(same)27 b(program,)h(and)e(the)i(decision)d(ab)s(out)i(what)g -(actions)g(to)h(tak)m(e)g(is)e(done)870 868 y(on)k(the)h(basis)e(of)i -(whic)m(h)e(name)h(is)g(used.)40 b(This)28 b(\015ag)j(o)m(v)m(errides)f -(that)h(mec)m(h-)870 972 y(anism,)e(and)h(forces)h(bzip2)e(to)i -(decompress.)390 1126 y Fj(-z)f(--compress)870 1230 y -Fl(The)39 b(complemen)m(t)h(to)g Fj(-d)p Fl(:)59 b(forces)40 -b(compression,)h(regardless)d(of)i(the)g(in-)870 1334 -y(v)m(ok)-5 b(ation)31 b(name.)390 1488 y Fj(-t)f(--test)8 -b Fl(Chec)m(k)33 b(in)m(tegrit)m(y)j(of)f(the)g(sp)s(eci\014ed)e -(\014le\(s\),)k(but)d(don't)h(decompress)g(them.)870 -1591 y(This)40 b(really)g(p)s(erforms)g(a)i(trial)e(decompression)h -(and)g(thro)m(ws)g(a)m(w)m(a)m(y)j(the)870 1695 y(result.)390 -1849 y Fj(-f)30 b(--force)870 1953 y Fl(F)-8 b(orce)31 -b(o)m(v)m(erwrite)f(of)g(output)f(\014les.)40 b(Normally)-8 -b(,)29 b Fj(bzip2)f Fl(will)f(not)j(o)m(v)m(erwrite)870 -2057 y(existing)e(output)g(\014les.)39 b(Also)28 b(forces)h -Fj(bzip2)e Fl(to)i(break)g(hard)e(links)f(to)k(\014les,)870 -2161 y(whic)m(h)f(it)h(otherwise)g(w)m(ouldn't)f(do.)390 -2315 y Fj(-k)h(--keep)8 b Fl(Keep)24 b(\(don't)i(delete\))h(input)d -(\014les)g(during)g(compression)h(or)h(decompression.)390 -2469 y Fj(-s)k(--small)870 2573 y Fl(Reduce)23 b(memory)f(usage,)j(for) -d(compression,)h(decompression)f(and)g(testing.)870 2676 -y(Files)f(are)i(decompressed)e(and)h(tested)h(using)e(a)h(mo)s -(di\014ed)e(algorithm)h(whic)m(h)870 2780 y(only)30 b(requires)g(2.5)j -(b)m(ytes)f(p)s(er)e(blo)s(c)m(k)h(b)m(yte.)44 b(This)30 -b(means)h(an)m(y)h(\014le)e(can)i(b)s(e)870 2884 y(decompressed)d(in)f -(2300k)j(of)e(memory)-8 b(,)30 b(alb)s(eit)e(at)i(ab)s(out)f(half)g -(the)g(normal)870 2988 y(sp)s(eed.)870 3117 y(During)42 -b(compression,)k Fj(-s)d Fl(selects)h(a)g(blo)s(c)m(k)g(size)f(of)h -(200k,)k(whic)m(h)42 b(lim-)870 3220 y(its)33 b(memory)g(use)g(to)h -(around)e(the)i(same)f(\014gure,)h(at)g(the)g(exp)s(ense)f(of)g(y)m -(our)870 3324 y(compression)g(ratio.)50 b(In)33 b(short,)i(if)d(y)m -(our)i(mac)m(hine)f(is)g(lo)m(w)g(on)h(memory)f(\(8)870 -3428 y(megab)m(ytes)42 b(or)e(less\),)j(use)d(-s)g(for)g(ev)m -(erything.)71 b(See)40 b(MEMOR)-8 b(Y)41 b(MAN-)870 3532 -y(A)m(GEMENT)31 b(b)s(elo)m(w.)390 3686 y Fj(-q)f(--quiet)870 -3790 y Fl(Suppress)j(non-essen)m(tial)j(w)m(arning)e(messages.)58 -b(Messages)38 b(p)s(ertaining)33 b(to)870 3893 y(I/O)d(errors)g(and)g -(other)h(critical)e(ev)m(en)m(ts)j(will)27 b(not)k(b)s(e)f(suppressed.) -390 4047 y Fj(-v)g(--verbose)870 4151 y Fl(V)-8 b(erb)s(ose)28 -b(mo)s(de)f({)i(sho)m(w)e(the)h(compression)f(ratio)h(for)f(eac)m(h)i -(\014le)e(pro)s(cessed.)870 4255 y(F)-8 b(urther)30 b -Fj(-v)p Fl('s)g(increase)g(the)g(v)m(erb)s(osit)m(y)g(lev)m(el,)h(sp)s -(ewing)d(out)j(lots)f(of)g(infor-)870 4359 y(mation)g(whic)m(h)f(is)h -(primarily)d(of)j(in)m(terest)h(for)f(diagnostic)g(purp)s(oses.)390 -4513 y Fj(-L)g(--license)e(-V)h(--version)870 4617 y -Fl(Displa)m(y)h(the)g(soft)m(w)m(are)i(v)m(ersion,)e(license)f(terms)i -(and)e(conditions.)390 4771 y Fj(-1)h(to)g(-9)72 b Fl(Set)35 -b(the)g(blo)s(c)m(k)f(size)h(to)g(100)h(k,)g(200)g(k)f(..)53 -b(900)36 b(k)f(when)f(compressing.)53 b(Has)870 4875 -y(no)41 b(e\013ect)h(when)d(decompressing.)71 b(See)41 -b(MEMOR)-8 b(Y)41 b(MANA)m(GEMENT)870 4978 y(b)s(elo)m(w.)390 -5132 y Fj(--)324 b Fl(T)-8 b(reats)25 b(all)e(subsequen)m(t)g(argumen)m -(ts)i(as)f(\014le)g(names,)h(ev)m(en)g(if)e(they)i(start)f(with)870 -5236 y(a)32 b(dash.)43 b(This)29 b(is)h(so)i(y)m(ou)g(can)f(handle)f -(\014les)g(with)g(names)i(b)s(eginning)c(with)870 5340 -y(a)j(dash,)f(for)g(example:)40 b Fj(bzip2)29 b(--)h(-myfilename)p -Fl(.)p eop -%%Page: 6 7 -6 6 bop 150 -116 a Fl(Chapter)30 b(2:)41 b(Ho)m(w)31 -b(to)g(use)f Fj(bzip2)2375 b Fl(6)390 299 y Fj(--repetitive-fast)390 -427 y(--repetitive-best)870 530 y Fl(These)34 b(\015ags)g(are)h -(redundan)m(t)e(in)g(v)m(ersions)g(0.9.5)j(and)e(ab)s(o)m(v)m(e.)53 -b(They)34 b(pro-)870 634 y(vided)h(some)i(coarse)g(con)m(trol)g(o)m(v)m -(er)g(the)g(b)s(eha)m(viour)e(of)h(the)g(sorting)g(algo-)870 -738 y(rithm)h(in)h(earlier)g(v)m(ersions,)j(whic)m(h)d(w)m(as)h -(sometimes)h(useful.)65 b(0.9.5)41 b(and)870 842 y(ab)s(o)m(v)m(e)34 -b(ha)m(v)m(e)g(an)f(impro)m(v)m(ed)g(algorithm)f(whic)m(h)f(renders)h -(these)h(\015ags)h(irrel-)870 946 y(ev)-5 b(an)m(t.)390 -1190 y Ff(MEMOR)-10 b(Y)40 b(MANA)m(GEMENT)390 1377 y -Fj(bzip2)25 b Fl(compresses)i(large)g(\014les)e(in)g(blo)s(c)m(ks.)39 -b(The)26 b(blo)s(c)m(k)h(size)f(a\013ects)i(b)s(oth)e(the)h(compres-) -390 1481 y(sion)39 b(ratio)g(ac)m(hiev)m(ed,)k(and)d(the)f(amoun)m(t)i -(of)e(memory)h(needed)f(for)h(compression)f(and)390 1585 -y(decompression.)59 b(The)36 b(\015ags)h Fj(-1)f Fl(through)h -Fj(-9)f Fl(sp)s(ecify)f(the)i(blo)s(c)m(k)g(size)f(to)i(b)s(e)e -(100,000)390 1688 y(b)m(ytes)29 b(through)e(900,000)k(b)m(ytes)d(\(the) -h(default\))e(resp)s(ectiv)m(ely)-8 b(.)40 b(A)m(t)29 -b(decompression)e(time,)390 1792 y(the)32 b(blo)s(c)m(k)g(size)g(used)g -(for)g(compression)f(is)g(read)h(from)g(the)g(header)g(of)h(the)f -(compressed)390 1896 y(\014le,)j(and)f Fj(bunzip2)e Fl(then)i(allo)s -(cates)h(itself)e(just)h(enough)g(memory)g(to)i(decompress)e(the)390 -2000 y(\014le.)39 b(Since)29 b(blo)s(c)m(k)g(sizes)g(are)h(stored)f(in) -f(compressed)h(\014les,)g(it)g(follo)m(ws)f(that)i(the)g(\015ags)g -Fj(-1)390 2103 y Fl(to)h Fj(-9)f Fl(are)h(irrelev)-5 -b(an)m(t)29 b(to)i(and)f(so)h(ignored)e(during)f(decompression.)390 -2255 y(Compression)h(and)g(decompression)h(requiremen)m(ts,)f(in)g(b)m -(ytes,)j(can)e(b)s(e)g(estimated)h(as:)869 2406 y Fj(Compression:)140 -b(400k)46 b(+)i(\()f(8)h(x)f(block)f(size)h(\))869 2613 -y(Decompression:)d(100k)i(+)i(\()f(4)h(x)f(block)f(size)h(\),)g(or)1585 -2717 y(100k)f(+)i(\()f(2.5)g(x)g(block)g(size)f(\))390 -2868 y Fl(Larger)29 b(blo)s(c)m(k)f(sizes)h(giv)m(e)g(rapidly)d -(diminishing)e(marginal)k(returns.)39 b(Most)29 b(of)g(the)g(com-)390 -2972 y(pression)d(comes)j(from)f(the)g(\014rst)g(t)m(w)m(o)h(or)f -(three)h(h)m(undred)d(k)i(of)g(blo)s(c)m(k)g(size,)g(a)h(fact)g(w)m -(orth)390 3075 y(b)s(earing)j(in)f(mind)g(when)h(using)f -Fj(bzip2)h Fl(on)g(small)g(mac)m(hines.)47 b(It)33 b(is)f(also)h(imp)s -(ortan)m(t)f(to)390 3179 y(appreciate)j(that)h(the)f(decompression)f -(memory)h(requiremen)m(t)f(is)h(set)g(at)h(compression)390 -3283 y(time)30 b(b)m(y)g(the)h(c)m(hoice)g(of)g(blo)s(c)m(k)f(size.)390 -3434 y(F)-8 b(or)45 b(\014les)f(compressed)g(with)g(the)g(default)g -(900k)i(blo)s(c)m(k)e(size,)49 b Fj(bunzip2)42 b Fl(will)g(require)390 -3538 y(ab)s(out)29 b(3700)j(kb)m(ytes)e(to)h(decompress.)40 -b(T)-8 b(o)30 b(supp)s(ort)e(decompression)h(of)h(an)m(y)g(\014le)f(on) -g(a)i(4)390 3642 y(megab)m(yte)h(mac)m(hine,)d Fj(bunzip2)f -Fl(has)i(an)g(option)f(to)i(decompress)e(using)g(appro)m(ximately)390 -3745 y(half)k(this)g(amoun)m(t)i(of)f(memory)-8 b(,)36 -b(ab)s(out)e(2300)i(kb)m(ytes.)53 b(Decompression)34 -b(sp)s(eed)g(is)f(also)390 3849 y(halv)m(ed,)i(so)f(y)m(ou)h(should)d -(use)h(this)g(option)h(only)f(where)h(necessary)-8 b(.)53 -b(The)33 b(relev)-5 b(an)m(t)35 b(\015ag)390 3953 y(is)29 -b Fj(-s)p Fl(.)390 4104 y(In)34 b(general,)i(try)f(and)f(use)g(the)h -(largest)h(blo)s(c)m(k)e(size)h(memory)f(constrain)m(ts)h(allo)m(w,)h -(since)390 4208 y(that)45 b(maximises)f(the)h(compression)f(ac)m(hiev)m -(ed.)85 b(Compression)43 b(and)h(decompression)390 4311 -y(sp)s(eed)30 b(are)g(virtually)e(una\013ected)j(b)m(y)f(blo)s(c)m(k)g -(size.)390 4463 y(Another)25 b(signi\014can)m(t)f(p)s(oin)m(t)g -(applies)f(to)j(\014les)e(whic)m(h)g(\014t)h(in)e(a)j(single)d(blo)s(c) -m(k)i({)g(that)h(means)390 4566 y(most)g(\014les)g(y)m(ou'd)g(encoun)m -(ter)h(using)d(a)j(large)f(blo)s(c)m(k)g(size.)39 b(The)25 -b(amoun)m(t)i(of)f(real)g(memory)390 4670 y(touc)m(hed)38 -b(is)e(prop)s(ortional)f(to)j(the)f(size)g(of)h(the)f(\014le,)h(since)f -(the)g(\014le)g(is)f(smaller)g(than)h(a)390 4774 y(blo)s(c)m(k.)49 -b(F)-8 b(or)35 b(example,)f(compressing)e(a)i(\014le)e(20,000)k(b)m -(ytes)e(long)f(with)f(the)i(\015ag)g Fj(-9)f Fl(will)390 -4878 y(cause)28 b(the)f(compressor)g(to)h(allo)s(cate)f(around)f(7600k) -j(of)e(memory)-8 b(,)28 b(but)f(only)f(touc)m(h)i(400k)390 -4981 y Fj(+)h Fl(20000)j(*)e(8)g(=)f(560)i(kb)m(ytes)f(of)g(it.)40 -b(Similarly)-8 b(,)26 b(the)k(decompressor)f(will)e(allo)s(cate)j -(3700k)390 5085 y(but)g(only)f(touc)m(h)i(100k)h Fj(+)e -Fl(20000)i(*)f(4)g(=)f(180)i(kb)m(ytes.)390 5236 y(Here)41 -b(is)f(a)i(table)f(whic)m(h)e(summarises)g(the)j(maxim)m(um)d(memory)i -(usage)h(for)e(di\013eren)m(t)390 5340 y(blo)s(c)m(k)25 -b(sizes.)38 b(Also)25 b(recorded)g(is)f(the)i(total)g(compressed)e -(size)h(for)g(14)h(\014les)e(of)i(the)f(Calgary)p eop -%%Page: 7 8 -7 7 bop 150 -116 a Fl(Chapter)30 b(2:)41 b(Ho)m(w)31 -b(to)g(use)f Fj(bzip2)2375 b Fl(7)390 299 y(T)-8 b(ext)38 -b(Compression)d(Corpus)h(totalling)h(3,141,622)k(b)m(ytes.)61 -b(This)36 b(column)g(giv)m(es)i(some)390 403 y(feel)23 -b(for)f(ho)m(w)h(compression)f(v)-5 b(aries)23 b(with)e(blo)s(c)m(k)i -(size.)38 b(These)23 b(\014gures)f(tend)g(to)i(understate)390 -506 y(the)g(adv)-5 b(an)m(tage)26 b(of)e(larger)f(blo)s(c)m(k)h(sizes)f -(for)h(larger)f(\014les,)h(since)g(the)g(Corpus)e(is)h(dominated)390 -610 y(b)m(y)30 b(smaller)f(\014les.)1107 761 y Fj(Compress)141 -b(Decompress)g(Decompress)f(Corpus)773 865 y(Flag)238 -b(usage)285 b(usage)332 b(-s)48 b(usage)237 b(Size)821 -1073 y(-1)286 b(1200k)332 b(500k)429 b(350k)285 b(914704)821 -1176 y(-2)h(2000k)332 b(900k)429 b(600k)285 b(877703)821 -1280 y(-3)h(2800k)f(1300k)428 b(850k)285 b(860338)821 -1384 y(-4)h(3600k)f(1700k)380 b(1100k)285 b(846899)821 -1488 y(-5)h(4400k)f(2100k)380 b(1350k)285 b(845160)821 -1591 y(-6)h(5200k)f(2500k)380 b(1600k)285 b(838626)821 -1695 y(-7)h(6100k)f(2900k)380 b(1850k)285 b(834096)821 -1799 y(-8)h(6800k)f(3300k)380 b(2100k)285 b(828642)821 -1903 y(-9)h(7600k)f(3700k)380 b(2350k)285 b(828642)390 -2147 y Ff(RECO)m(VERING)37 b(D)m(A)-10 b(T)g(A)40 b(FR)m(OM)h(D)m(AMA)m -(GED)e(FILES)390 2333 y Fj(bzip2)25 b Fl(compresses)h(\014les)g(in)f -(blo)s(c)m(ks,)h(usually)e(900kb)m(ytes)29 b(long.)39 -b(Eac)m(h)27 b(blo)s(c)m(k)e(is)h(handled)390 2437 y(indep)s(enden)m -(tly)-8 b(.)47 b(If)32 b(a)i(media)e(or)h(transmission)e(error)i -(causes)h(a)f(m)m(ulti-blo)s(c)m(k)f Fj(.bz2)g Fl(\014le)390 -2541 y(to)k(b)s(ecome)h(damaged,)g(it)e(ma)m(y)i(b)s(e)e(p)s(ossible)e -(to)k(reco)m(v)m(er)g(data)f(from)g(the)f(undamaged)390 -2645 y(blo)s(c)m(ks)30 b(in)f(the)h(\014le.)390 2796 -y(The)j(compressed)h(represen)m(tation)f(of)h(eac)m(h)h(blo)s(c)m(k)e -(is)g(delimited)e(b)m(y)j(a)g(48-bit)g(pattern,)390 2900 -y(whic)m(h)27 b(mak)m(es)j(it)e(p)s(ossible)e(to)j(\014nd)e(the)i(blo)s -(c)m(k)f(b)s(oundaries)e(with)i(reasonable)g(certain)m(t)m(y)-8 -b(.)390 3003 y(Eac)m(h)34 b(blo)s(c)m(k)f(also)g(carries)g(its)g(o)m -(wn)g(32-bit)g(CR)m(C,)h(so)f(damaged)h(blo)s(c)m(ks)f(can)g(b)s(e)g -(distin-)390 3107 y(guished)c(from)h(undamaged)g(ones.)390 -3258 y Fj(bzip2recover)37 b Fl(is)j(a)h(simple)e(program)h(whose)g -(purp)s(ose)f(is)h(to)i(searc)m(h)f(for)f(blo)s(c)m(ks)g(in)390 -3362 y Fj(.bz2)34 b Fl(\014les,)i(and)f(write)f(eac)m(h)j(blo)s(c)m(k)d -(out)i(in)m(to)f(its)g(o)m(wn)g Fj(.bz2)f Fl(\014le.)55 -b(Y)-8 b(ou)36 b(can)f(then)g(use)390 3466 y Fj(bzip2)29 -b(-t)c Fl(to)i(test)f(the)g(in)m(tegrit)m(y)g(of)g(the)g(resulting)e -(\014les,)i(and)f(decompress)h(those)g(whic)m(h)390 3569 -y(are)31 b(undamaged.)390 3721 y Fj(bzip2recover)41 b -Fl(tak)m(es)46 b(a)f(single)e(argumen)m(t,)49 b(the)44 -b(name)h(of)g(the)f(damaged)h(\014le,)j(and)390 3824 -y(writes)33 b(a)i(n)m(um)m(b)s(er)d(of)j(\014les)e Fj(rec0001file.bz2)p -Fl(,)e Fj(rec0002file.bz2)p Fl(,)g(etc,)36 b(con)m(taining)390 -3928 y(the)42 b(extracted)g(blo)s(c)m(ks.)74 b(The)41 -b(output)g(\014lenames)f(are)i(designed)e(so)i(that)g(the)g(use)f(of) -390 4032 y(wildcards)30 b(in)h(subsequen)m(t)h(pro)s(cessing)f({)i(for) -g(example,)g Fj(bzip2)c(-dc)g(rec*file.bz2)e(>)390 4136 -y(recovered_data)f Fl({)31 b(lists)e(the)i(\014les)e(in)g(the)i -(correct)g(order.)390 4287 y Fj(bzip2recover)38 b Fl(should)i(b)s(e)g -(of)i(most)g(use)f(dealing)f(with)g(large)i Fj(.bz2)e -Fl(\014les,)k(as)d(these)390 4390 y(will)29 b(con)m(tain)j(man)m(y)g -(blo)s(c)m(ks.)45 b(It)32 b(is)f(clearly)g(futile)f(to)i(use)g(it)f(on) -h(damaged)g(single-blo)s(c)m(k)390 4494 y(\014les,)g(since)f(a)h -(damaged)h(blo)s(c)m(k)e(cannot)i(b)s(e)e(reco)m(v)m(ered.)47 -b(If)32 b(y)m(ou)g(wish)e(to)j(minimise)c(an)m(y)390 -4598 y(p)s(oten)m(tial)36 b(data)i(loss)e(through)g(media)h(or)f -(transmission)f(errors,)j(y)m(ou)f(migh)m(t)g(consider)390 -4702 y(compressing)29 b(with)g(a)i(smaller)e(blo)s(c)m(k)h(size.)390 -4946 y Ff(PERF)m(ORMANCE)39 b(NOTES)390 5132 y Fl(The)f(sorting)f -(phase)h(of)h(compression)e(gathers)i(together)h(similar)35 -b(strings)i(in)g(the)i(\014le.)390 5236 y(Because)54 -b(of)f(this,)58 b(\014les)52 b(con)m(taining)g(v)m(ery)h(long)g(runs)e -(of)i(rep)s(eated)g(sym)m(b)s(ols,)58 b(lik)m(e)390 5340 -y Fj(")p Fl(aabaabaabaab)e(...)p Fj(")g Fl(\(rep)s(eated)g(sev)m(eral)f -(h)m(undred)e(times\))i(ma)m(y)h(compress)f(more)p eop -%%Page: 8 9 -8 8 bop 150 -116 a Fl(Chapter)30 b(2:)41 b(Ho)m(w)31 -b(to)g(use)f Fj(bzip2)2375 b Fl(8)390 299 y(slo)m(wly)33 -b(than)g(normal.)50 b(V)-8 b(ersions)33 b(0.9.5)i(and)f(ab)s(o)m(v)m(e) -h(fare)e(m)m(uc)m(h)h(b)s(etter)g(than)f(previous)390 -403 y(v)m(ersions)i(in)g(this)f(resp)s(ect.)57 b(The)35 -b(ratio)h(b)s(et)m(w)m(een)h(w)m(orst-case)g(and)e(a)m(v)m(erage-case) -40 b(com-)390 506 y(pression)e(time)h(is)f(in)g(the)h(region)g(of)h -(10:1.)69 b(F)-8 b(or)40 b(previous)e(v)m(ersions,)j(this)d(\014gure)h -(w)m(as)390 610 y(more)f(lik)m(e)g(100:1.)66 b(Y)-8 b(ou)38 -b(can)h(use)e(the)i Fj(-vvvv)d Fl(option)i(to)h(monitor)e(progress)h -(in)f(great)390 714 y(detail,)30 b(if)f(y)m(ou)i(w)m(an)m(t.)390 -865 y(Decompression)f(sp)s(eed)g(is)f(una\013ected)i(b)m(y)f(these)h -(phenomena.)390 1016 y Fj(bzip2)i Fl(usually)g(allo)s(cates)i(sev)m -(eral)f(megab)m(ytes)j(of)d(memory)h(to)g(op)s(erate)h(in,)e(and)g -(then)390 1120 y(c)m(harges)k(all)d(o)m(v)m(er)j(it)f(in)e(a)i(fairly)e -(random)h(fashion.)59 b(This)34 b(means)j(that)g(p)s(erformance,)390 -1224 y(b)s(oth)27 b(for)h(compressing)f(and)g(decompressing,)h(is)f -(largely)g(determined)g(b)m(y)h(the)g(sp)s(eed)f(at)390 -1327 y(whic)m(h)35 b(y)m(our)h(mac)m(hine)g(can)g(service)g(cac)m(he)i -(misses.)57 b(Because)37 b(of)g(this,)f(small)f(c)m(hanges)390 -1431 y(to)f(the)f(co)s(de)h(to)f(reduce)g(the)h(miss)d(rate)j(ha)m(v)m -(e)h(b)s(een)d(observ)m(ed)h(to)h(giv)m(e)g(disprop)s(ortion-)390 -1535 y(ately)i(large)f(p)s(erformance)f(impro)m(v)m(emen)m(ts.)56 -b(I)35 b(imagine)f Fj(bzip2)g Fl(will)e(p)s(erform)i(b)s(est)h(on)390 -1639 y(mac)m(hines)30 b(with)f(v)m(ery)i(large)f(cac)m(hes.)390 -1885 y Ff(CA)-14 b(VEA)k(TS)390 2072 y Fl(I/O)38 b(error)g(messages)h -(are)f(not)h(as)f(helpful)e(as)i(they)g(could)f(b)s(e.)64 -b Fj(bzip2)37 b Fl(tries)g(hard)g(to)390 2176 y(detect)29 -b(I/O)e(errors)g(and)f(exit)i(cleanly)-8 b(,)27 b(but)g(the)h(details)e -(of)h(what)h(the)f(problem)f(is)g(some-)390 2280 y(times)k(seem)h -(rather)f(misleading.)390 2431 y(This)j(man)m(ual)g(page)i(p)s(ertains) -e(to)i(v)m(ersion)f(1.0)i(of)e Fj(bzip2)p Fl(.)51 b(Compressed)34 -b(data)h(created)390 2534 y(b)m(y)25 b(this)e(v)m(ersion)i(is)e(en)m -(tirely)h(forw)m(ards)h(and)f(bac)m(kw)m(ards)h(compatible)f(with)f -(the)i(previous)390 2638 y(public)18 b(releases,)24 b(v)m(ersions)c -(0.1pl2,)k(0.9.0)e(and)f(0.9.5,)k(but)20 b(with)g(the)h(follo)m(wing)e -(exception:)390 2742 y(0.9.0)43 b(and)e(ab)s(o)m(v)m(e)h(can)g -(correctly)f(decompress)g(m)m(ultiple)e(concatenated)k(compressed)390 -2846 y(\014les.)c(0.1pl2)30 b(cannot)g(do)f(this;)f(it)h(will)e(stop)i -(after)h(decompressing)e(just)g(the)i(\014rst)e(\014le)g(in)390 -2949 y(the)j(stream.)390 3100 y Fj(bzip2recover)20 b -Fl(uses)k(32-bit)g(in)m(tegers)f(to)i(represen)m(t)f(bit)e(p)s -(ositions)g(in)g(compressed)i(\014les,)390 3204 y(so)j(it)f(cannot)i -(handle)d(compressed)i(\014les)f(more)h(than)f(512)i(megab)m(ytes)h -(long.)39 b(This)25 b(could)390 3308 y(easily)30 b(b)s(e)f(\014xed.)390 -3555 y Ff(A)m(UTHOR)390 3741 y Fl(Julian)f(Sew)m(ard,)i -Fj(jseward@acm.org)p Fl(.)390 3892 y(The)24 b(ideas)f(em)m(b)s(o)s -(died)f(in)h Fj(bzip2)f Fl(are)j(due)e(to)i(\(at)g(least\))g(the)f -(follo)m(wing)e(p)s(eople:)37 b(Mic)m(hael)390 3996 y(Burro)m(ws)48 -b(and)g(Da)m(vid)h(Wheeler)f(\(for)h(the)g(blo)s(c)m(k)f(sorting)g -(transformation\),)53 b(Da)m(vid)390 4100 y(Wheeler)45 -b(\(again,)50 b(for)45 b(the)g(Hu\013man)g(co)s(der\),)k(P)m(eter)d(F) --8 b(en)m(wic)m(k)46 b(\(for)g(the)f(structured)390 4204 -y(co)s(ding)26 b(mo)s(del)g(in)f(the)i(original)e Fj(bzip)p -Fl(,)i(and)f(man)m(y)h(re\014nemen)m(ts\),)h(and)e(Alistair)f -(Mo\013at,)390 4307 y(Radford)34 b(Neal)h(and)f(Ian)h(Witten)g(\(for)f -(the)h(arithmetic)g(co)s(der)f(in)g(the)h(original)d -Fj(bzip)p Fl(\).)390 4411 y(I)41 b(am)g(m)m(uc)m(h)h(indebted)e(for)h -(their)f(help,)j(supp)s(ort)c(and)i(advice.)74 b(See)41 -b(the)h(man)m(ual)e(in)390 4515 y(the)28 b(source)g(distribution)23 -b(for)28 b(p)s(oin)m(ters)e(to)j(sources)e(of)h(do)s(cumen)m(tation.)40 -b(Christian)25 b(v)m(on)390 4619 y(Ro)s(ques)31 b(encouraged)h(me)g(to) -g(lo)s(ok)f(for)h(faster)g(sorting)f(algorithms,)f(so)i(as)g(to)g(sp)s -(eed)f(up)390 4723 y(compression.)47 b(Bela)34 b(Lubkin)c(encouraged)k -(me)f(to)g(impro)m(v)m(e)g(the)g(w)m(orst-case)i(compres-)390 -4826 y(sion)25 b(p)s(erformance.)38 b(Man)m(y)26 b(p)s(eople)f(sen)m(t) -h(patc)m(hes,)h(help)s(ed)d(with)g(p)s(ortabilit)m(y)f(problems,)390 -4930 y(len)m(t)30 b(mac)m(hines,)g(ga)m(v)m(e)j(advice)d(and)g(w)m(ere) -h(generally)f(helpful.)p eop -%%Page: 9 10 -9 9 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1927 b Fl(9)150 299 y Fh(3)80 b(Programming)53 -b(with)h Fg(libbzip2)150 568 y Fl(This)29 b(c)m(hapter)i(describ)s(es)d -(the)j(programming)e(in)m(terface)i(to)g Fj(libbzip2)p -Fl(.)150 725 y(F)-8 b(or)36 b(general)e(bac)m(kground)h(information,)f -(particularly)f(ab)s(out)h(memory)h(use)f(and)g(p)s(erformance)g(as-) -150 834 y(p)s(ects,)d(y)m(ou'd)f(b)s(e)g(w)m(ell)f(advised)g(to)j(read) -e(Chapter)g(2)g(as)h(w)m(ell.)150 1124 y Fk(3.1)68 b(T)-11 -b(op-lev)l(el)46 b(structure)150 1316 y Fj(libbzip2)33 -b Fl(is)i(a)h(\015exible)e(library)f(for)j(compressing)f(and)g -(decompressing)f(data)j(in)d(the)i Fj(bzip2)e Fl(data)150 -1426 y(format.)39 b(Although)24 b(pac)m(k)-5 b(aged)26 -b(as)e(a)h(single)e(en)m(tit)m(y)-8 b(,)27 b(it)d(helps)f(to)i(regard)g -(the)g(library)d(as)i(three)h(separate)150 1535 y(parts:)40 -b(the)31 b(lo)m(w)f(lev)m(el)g(in)m(terface,)h(and)f(the)h(high)e(lev)m -(el)h(in)m(terface,)h(and)f(some)h(utilit)m(y)d(functions.)150 -1692 y(The)38 b(structure)g(of)g Fj(libbzip2)p Fl('s)e(in)m(terfaces)j -(is)e(similar)f(to)j(that)g(of)g(Jean-loup)e(Gailly's)g(and)h(Mark)150 -1802 y(Adler's)29 b(excellen)m(t)i Fj(zlib)e Fl(library)-8 -b(.)150 1959 y(All)29 b(externally)g(visible)f(sym)m(b)s(ols)h(ha)m(v)m -(e)i(names)f(b)s(eginning)e Fj(BZ2_)p Fl(.)39 b(This)29 -b(is)g(new)h(in)f(v)m(ersion)h(1.0.)41 b(The)150 2068 -y(in)m(ten)m(tion)30 b(is)f(to)i(minimise)d(p)s(ollution)f(of)k(the)f -(namespaces)h(of)g(library)d(clien)m(ts.)150 2321 y Ff(3.1.1)63 -b(Lo)m(w-lev)m(el)39 b(summary)150 2514 y Fl(This)21 -b(in)m(terface)h(pro)m(vides)g(services)g(for)g(compressing)f(and)h -(decompressing)f(data)i(in)e(memory)-8 b(.)38 b(There's)150 -2623 y(no)43 b(pro)m(vision)e(for)h(dealing)g(with)f(\014les,)k -(streams)e(or)g(an)m(y)g(other)g(I/O)g(mec)m(hanisms,)i(just)e(straigh) -m(t)150 2733 y(memory-to-memory)25 b(w)m(ork.)38 b(In)23 -b(fact,)k(this)22 b(part)i(of)f(the)h(library)d(can)j(b)s(e)f(compiled) -f(without)h(inclusion)150 2843 y(of)31 b Fj(stdio.h)p -Fl(,)d(whic)m(h)h(ma)m(y)i(b)s(e)f(helpful)d(for)k(em)m(b)s(edded)e -(applications.)150 2999 y(The)h(lo)m(w-lev)m(el)g(part)g(of)h(the)f -(library)e(has)i(no)h(global)e(v)-5 b(ariables)29 b(and)h(is)g -(therefore)g(thread-safe.)150 3156 y(Six)d(routines)g(mak)m(e)j(up)d -(the)i(lo)m(w)f(lev)m(el)g(in)m(terface:)41 b Fj(BZ2_bzCompressInit)p -Fl(,)24 b Fj(BZ2_bzCompress)p Fl(,)h(and)150 3266 y Fj -(BZ2_bzCompressEnd)h Fl(for)k(compression,)f(and)h(a)h(corresp)s -(onding)d(trio)i Fj(BZ2_bzDecompressInit)p Fl(,)150 3375 -y Fj(BZ2_bzDecompress)37 b Fl(and)j Fj(BZ2_bzDecompressEnd)c -Fl(for)42 b(decompression.)72 b(The)41 b Fj(*Init)e Fl(functions)150 -3485 y(allo)s(cate)44 b(memory)g(for)f(compression/decompression)f(and) -h(do)h(other)g(initialisations,)f(whilst)f(the)150 3595 -y Fj(*End)29 b Fl(functions)g(close)i(do)m(wn)f(op)s(erations)f(and)h -(release)h(memory)-8 b(.)150 3751 y(The)36 b(real)f(w)m(ork)i(is)e -(done)h(b)m(y)g Fj(BZ2_bzCompress)c Fl(and)j Fj(BZ2_bzDecompress)p -Fl(.)54 b(These)36 b(compress)g(and)150 3861 y(decompress)30 -b(data)h(from)f(a)h(user-supplied)c(input)i(bu\013er)g(to)i(a)g -(user-supplied)c(output)j(bu\013er.)40 b(These)150 3971 -y(bu\013ers)32 b(can)i(b)s(e)e(an)m(y)i(size;)g(arbitrary)e(quan)m -(tities)h(of)g(data)h(are)g(handled)d(b)m(y)i(making)f(rep)s(eated)i -(calls)150 4080 y(to)f(these)f(functions.)44 b(This)30 -b(is)h(a)h(\015exible)e(mec)m(hanism)i(allo)m(wing)e(a)i(consumer-pull) -e(st)m(yle)i(of)g(activit)m(y)-8 b(,)150 4190 y(or)30 -b(pro)s(ducer-push,)e(or)i(a)h(mixture)e(of)i(b)s(oth.)150 -4443 y Ff(3.1.2)63 b(High-lev)m(el)41 b(summary)150 4635 -y Fl(This)d(in)m(terface)j(pro)m(vides)e(some)h(handy)f(wrapp)s(ers)f -(around)h(the)i(lo)m(w-lev)m(el)f(in)m(terface)g(to)h(facilitate)150 -4745 y(reading)26 b(and)g(writing)f Fj(bzip2)g Fl(format)i(\014les)f -(\()p Fj(.bz2)g Fl(\014les\).)38 b(The)27 b(routines)e(pro)m(vide)h(ho) -s(oks)h(to)g(facilitate)150 4854 y(reading)43 b(\014les)f(in)h(whic)m -(h)f(the)i Fj(bzip2)f Fl(data)h(stream)g(is)f(em)m(b)s(edded)f(within)g -(some)i(larger-scale)g(\014le)150 4964 y(structure,)30 -b(or)h(where)e(there)i(are)g(m)m(ultiple)d Fj(bzip2)h -Fl(data)i(streams)f(concatenated)j(end-to-end.)150 5121 -y(F)-8 b(or)31 b(reading)f(\014les,)f Fj(BZ2_bzReadOpen)p -Fl(,)e Fj(BZ2_bzRead)p Fl(,)h Fj(BZ2_bzReadClose)e Fl(and)150 -5230 y Fj(BZ2_bzReadGetUnused)19 b Fl(are)25 b(supplied.)36 -b(F)-8 b(or)25 b(writing)d(\014les,)j Fj(BZ2_bzWriteOpen)p -Fl(,)d Fj(BZ2_bzWrite)g Fl(and)150 5340 y Fj(BZ2_bzWriteFinish)k -Fl(are)k(a)m(v)-5 b(ailable.)p eop -%%Page: 10 11 -10 10 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(10)150 299 y(As)24 b(with)f(the)h(lo)m -(w-lev)m(el)h(library)-8 b(,)23 b(no)h(global)g(v)-5 -b(ariables)23 b(are)h(used)g(so)g(the)h(library)c(is)j(p)s(er)f(se)h -(thread-safe.)150 408 y(Ho)m(w)m(ev)m(er,)32 b(if)c(I/O)h(errors)g(o)s -(ccur)g(whilst)e(reading)i(or)g(writing)e(the)j(underlying)c -(compressed)j(\014les,)g(y)m(ou)150 518 y(ma)m(y)j(ha)m(v)m(e)g(to)g -(consult)e Fj(errno)g Fl(to)h(determine)g(the)g(cause)g(of)h(the)f -(error.)42 b(In)30 b(that)i(case,)h(y)m(ou'd)e(need)g(a)150 -628 y(C)f(library)e(whic)m(h)h(correctly)i(supp)s(orts)d -Fj(errno)h Fl(in)g(a)i(m)m(ultithreaded)e(en)m(vironmen)m(t.)150 -784 y(T)-8 b(o)56 b(mak)m(e)g(the)g(library)d(a)j(little)e(simpler)f -(and)i(more)h(p)s(ortable,)61 b Fj(BZ2_bzReadOpen)51 -b Fl(and)k Fj(BZ2_)150 894 y(bzWriteOpen)34 b Fl(require)j(y)m(ou)g(to) -i(pass)e(them)g(\014le)g(handles)f(\()p Fj(FILE*)p Fl(s\))g(whic)m(h)h -(ha)m(v)m(e)h(previously)e(b)s(een)150 1004 y(op)s(ened)41 -b(for)g(reading)f(or)h(writing)f(resp)s(ectiv)m(ely)-8 -b(.)73 b(That)41 b(a)m(v)m(oids)h(p)s(ortabilit)m(y)d(problems)g(asso)s -(ciated)150 1113 y(with)j(\014le)h(op)s(erations)g(and)g(\014le)g -(attributes,)j(whilst)c(not)i(b)s(eing)e(m)m(uc)m(h)h(of)h(an)g(imp)s -(osition)c(on)k(the)150 1223 y(programmer.)150 1474 y -Ff(3.1.3)63 b(Utilit)m(y)40 b(functions)h(summary)150 -1666 y Fl(F)-8 b(or)45 b(v)m(ery)g(simple)d(needs,)48 -b Fj(BZ2_bzBuffToBuffCompres)o(s)38 b Fl(and)44 b Fj -(BZ2_bzBuffToBuffDecompres)o(s)150 1776 y Fl(are)29 b(pro)m(vided.)38 -b(These)28 b(compress)g(data)h(in)e(memory)h(from)g(one)h(bu\013er)e -(to)i(another)f(bu\013er)g(in)f(a)h(single)150 1885 y(function)38 -b(call.)67 b(Y)-8 b(ou)40 b(should)d(assess)j(whether)f(these)h -(functions)d(ful\014ll)f(y)m(our)k(memory-to-memory)150 -1995 y(compression/decompression)26 b(requiremen)m(ts)h(b)s(efore)g(in) -m(v)m(esting)g(e\013ort)i(in)d(understanding)f(the)j(more)150 -2105 y(general)i(but)g(more)h(complex)f(lo)m(w-lev)m(el)g(in)m -(terface.)150 2261 y(Y)-8 b(oshiok)j(a)47 b(Tsuneo)e(\()p -Fj(QWF00133@niftyserve.or.jp)40 b Fl(/)46 b Fj -(tsuneo-y@is.aist-nara.ac.)o(jp)p Fl(\))40 b(has)150 -2371 y(con)m(tributed)f(some)h(functions)e(to)j(giv)m(e)f(b)s(etter)g -Fj(zlib)f Fl(compatibilit)m(y)-8 b(.)67 b(These)40 b(functions)e(are)i -Fj(BZ2_)150 2481 y(bzopen)p Fl(,)e Fj(BZ2_bzread)p Fl(,)f -Fj(BZ2_bzwrite)p Fl(,)g Fj(BZ2_bzflush)p Fl(,)g Fj(BZ2_bzclose)p -Fl(,)f Fj(BZ2_bzerror)f Fl(and)i Fj(BZ2_)150 2590 y(bzlibVersion)p -Fl(.)49 b(Y)-8 b(ou)35 b(ma)m(y)g(\014nd)e(these)i(functions)d(more)j -(con)m(v)m(enien)m(t)g(for)f(simple)f(\014le)g(reading)h(and)150 -2700 y(writing,)c(than)h(those)h(in)e(the)i(high-lev)m(el)e(in)m -(terface.)45 b(These)31 b(functions)f(are)i(not)g(\(y)m(et\))h -(o\016cially)d(part)150 2809 y(of)k(the)g(library)-8 -b(,)33 b(and)g(are)h(minimally)c(do)s(cumen)m(ted)k(here.)51 -b(If)33 b(they)h(break,)h(y)m(ou)f(get)h(to)g(k)m(eep)f(all)f(the)150 -2919 y(pieces.)40 b(I)31 b(hop)s(e)e(to)i(do)s(cumen)m(t)g(them)f(prop) -s(erly)e(when)h(time)i(p)s(ermits.)150 3076 y(Y)-8 b(oshiok)j(a)27 -b(also)g(con)m(tributed)f(mo)s(di\014cations)f(to)i(allo)m(w)f(the)h -(library)e(to)i(b)s(e)f(built)f(as)i(a)g(Windo)m(ws)f(DLL.)150 -3362 y Fk(3.2)68 b(Error)45 b(handling)150 3554 y Fl(The)23 -b(library)f(is)h(designed)g(to)i(reco)m(v)m(er)g(cleanly)f(in)e(all)h -(situations,)h(including)d(the)j(w)m(orst-case)i(situation)150 -3664 y(of)j(decompressing)e(random)g(data.)41 b(I'm)28 -b(not)h(100\045)g(sure)f(that)h(it)f(can)h(alw)m(a)m(ys)g(do)f(this,)g -(so)g(y)m(ou)h(migh)m(t)150 3774 y(w)m(an)m(t)i(to)g(add)e(a)i(signal)d -(handler)g(to)j(catc)m(h)h(segmen)m(tation)f(violations)e(during)f -(decompression)h(if)g(y)m(ou)150 3883 y(are)g(feeling)f(esp)s(ecially)f -(paranoid.)39 b(I)28 b(w)m(ould)g(b)s(e)g(in)m(terested)h(in)e(hearing) -h(more)h(ab)s(out)f(the)h(robustness)150 3993 y(of)i(the)f(library)e -(to)j(corrupted)f(compressed)g(data.)150 4150 y(V)-8 -b(ersion)39 b(1.0)h(is)f(m)m(uc)m(h)g(more)h(robust)e(in)g(this)g(resp) -s(ect)i(than)f(0.9.0)i(or)e(0.9.5.)70 b(In)m(v)m(estigations)39 -b(with)150 4259 y(Chec)m(k)m(er)21 b(\(a)g(to)s(ol)g(for)f(detecting)h -(problems)d(with)h(memory)h(managemen)m(t,)k(similar)18 -b(to)j(Purify\))e(indicate)150 4369 y(that,)40 b(at)e(least)f(for)g -(the)h(few)e(\014les)h(I)g(tested,)j(all)c(single-bit)f(errors)i(in)e -(the)j(decompressed)f(data)h(are)150 4478 y(caugh)m(t)c(prop)s(erly)-8 -b(,)31 b(with)g(no)i(segmen)m(tation)h(faults,)e(no)g(reads)h(of)g -(uninitialised)27 b(data)34 b(and)e(no)g(out)h(of)150 -4588 y(range)f(reads)g(or)f(writes.)44 b(So)32 b(it's)f(certainly)g(m)m -(uc)m(h)h(impro)m(v)m(ed,)g(although)f(I)g(w)m(ouldn't)g(claim)g(it)g -(to)i(b)s(e)150 4698 y(totally)d(b)s(om)m(bpro)s(of.)150 -4854 y(The)25 b(\014le)g Fj(bzlib.h)f Fl(con)m(tains)i(all)f -(de\014nitions)e(needed)i(to)i(use)e(the)h(library)-8 -b(.)37 b(In)26 b(particular,)f(y)m(ou)h(should)150 4964 -y(de\014nitely)i(not)j(include)d Fj(bzlib_private.h)p -Fl(.)150 5121 y(In)39 b Fj(bzlib.h)p Fl(,)h(the)g(v)-5 -b(arious)39 b(return)f(v)-5 b(alues)39 b(are)h(de\014ned.)68 -b(The)39 b(follo)m(wing)f(list)h(is)f(not)i(in)m(tended)f(as)150 -5230 y(an)c(exhaustiv)m(e)h(description)d(of)i(the)h(circumstances)f -(in)f(whic)m(h)g(a)i(giv)m(en)f(v)-5 b(alue)35 b(ma)m(y)h(b)s(e)e -(returned)h({)150 5340 y(those)h(descriptions)d(are)j(giv)m(en)f -(later.)56 b(Rather,)37 b(it)d(is)h(in)m(tended)f(to)i(con)m(v)m(ey)h -(the)e(rough)g(meaning)g(of)p eop -%%Page: 11 12 -11 11 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(11)150 299 y(eac)m(h)38 -b(return)d(v)-5 b(alue.)59 b(The)36 b(\014rst)g(\014v)m(e)g(actions)h -(are)g(normal)f(and)f(not)i(in)m(tended)f(to)h(denote)g(an)f(error)150 -408 y(situation.)150 592 y Fj(BZ_OK)180 b Fl(The)30 b(requested)g -(action)h(w)m(as)g(completed)f(successfully)-8 b(.)150 -756 y Fj(BZ_RUN_OK)150 866 y(BZ_FLUSH_OK)150 975 y(BZ_FINISH_OK)630 -1085 y Fl(In)24 b Fj(BZ2_bzCompress)p Fl(,)e(the)i(requested)g -(\015ush/\014nish/nothing-sp)s(ecial)c(action)k(w)m(as)h(com-)630 -1194 y(pleted)30 b(successfully)-8 b(.)150 1358 y Fj(BZ_STREAM_END)630 -1468 y Fl(Compression)38 b(of)j(data)f(w)m(as)h(completed,)h(or)f(the)f -(logical)f(stream)i(end)e(w)m(as)i(detected)630 1577 -y(during)28 b(decompression.)150 1761 y(The)i(follo)m(wing)f(return)g -(v)-5 b(alues)30 b(indicate)f(an)h(error)g(of)h(some)g(kind.)150 -1945 y Fj(BZ_CONFIG_ERROR)630 2055 y Fl(Indicates)48 -b(that)h(the)g(library)e(has)h(b)s(een)g(improp)s(erly)d(compiled)j(on) -g(y)m(our)h(platform)630 2164 y({)j(a)g(ma)5 b(jor)51 -b(con\014guration)g(error.)104 b(Sp)s(eci\014cally)-8 -b(,)55 b(it)c(means)g(that)h Fj(sizeof\(char\))p Fl(,)630 -2274 y Fj(sizeof\(short\))44 b Fl(and)i Fj(sizeof\(int\))f -Fl(are)j(not)f(1,)52 b(2)c(and)f(4)h(resp)s(ectiv)m(ely)-8 -b(,)51 b(as)d(they)630 2384 y(should)27 b(b)s(e.)40 b(Note)30 -b(that)g(the)f(library)e(should)g(still)g(w)m(ork)i(prop)s(erly)e(on)i -(64-bit)g(platforms)630 2493 y(whic)m(h)d(follo)m(w)h(the)g(LP64)h -(programming)e(mo)s(del)h({)g(that)h(is,)g(where)e Fj(sizeof\(long\))f -Fl(and)630 2603 y Fj(sizeof\(void*\))e Fl(are)k(8.)40 -b(Under)25 b(LP64,)j Fj(sizeof\(int\))c Fl(is)h(still)f(4,)k(so)f -Fj(libbzip2)p Fl(,)e(whic)m(h)630 2712 y(do)s(esn't)30 -b(use)g(the)h Fj(long)e Fl(t)m(yp)s(e,)i(is)e(OK.)150 -2876 y Fj(BZ_SEQUENCE_ERROR)630 2986 y Fl(When)43 b(using)f(the)i -(library)-8 b(,)45 b(it)e(is)f(imp)s(ortan)m(t)h(to)h(call)e(the)i -(functions)e(in)g(the)i(correct)630 3095 y(sequence)28 -b(and)f(with)f(data)j(structures)e(\(bu\013ers)f(etc\))j(in)e(the)g -(correct)i(states.)41 b Fj(libbzip2)630 3205 y Fl(c)m(hec)m(ks)26 -b(as)e(m)m(uc)m(h)h(as)f(it)g(can)g(to)h(ensure)f(this)f(is)g(happ)s -(ening,)h(and)f(returns)g Fj(BZ_SEQUENCE_)630 3314 y(ERROR)36 -b Fl(if)h(not.)62 b(Co)s(de)37 b(whic)m(h)g(complies)f(precisely)g -(with)h(the)g(function)g(seman)m(tics,)j(as)630 3424 -y(detailed)d(b)s(elo)m(w,)i(should)d(nev)m(er)i(receiv)m(e)h(this)d(v) --5 b(alue;)41 b(suc)m(h)d(an)g(ev)m(en)m(t)h(denotes)f(buggy)630 -3534 y(co)s(de)31 b(whic)m(h)e(y)m(ou)h(should)f(in)m(v)m(estigate.)150 -3697 y Fj(BZ_PARAM_ERROR)630 3807 y Fl(Returned)43 b(when)f(a)i -(parameter)g(to)h(a)f(function)e(call)h(is)f(out)i(of)g(range)g(or)g -(otherwise)630 3917 y(manifestly)34 b(incorrect.)57 b(As)36 -b(with)e Fj(BZ_SEQUENCE_ERROR)p Fl(,)f(this)i(denotes)h(a)g(bug)f(in)g -(the)630 4026 y(clien)m(t)23 b(co)s(de.)39 b(The)22 b(distinction)f(b)s -(et)m(w)m(een)j Fj(BZ_PARAM_ERROR)c Fl(and)j Fj(BZ_SEQUENCE_ERROR)630 -4136 y Fl(is)29 b(a)i(bit)f(hazy)-8 b(,)31 b(but)f(still)e(w)m(orth)i -(making.)150 4300 y Fj(BZ_MEM_ERROR)630 4409 y Fl(Returned)g(when)f(a)i -(request)f(to)i(allo)s(cate)f(memory)f(failed.)40 b(Note)31 -b(that)g(the)g(quan)m(tit)m(y)g(of)630 4519 y(memory)21 -b(needed)g(to)i(decompress)e(a)g(stream)h(cannot)g(b)s(e)f(determined)f -(un)m(til)g(the)h(stream's)630 4628 y(header)29 b(has)g(b)s(een)g -(read.)40 b(So)29 b Fj(BZ2_bzDecompress)c Fl(and)j Fj(BZ2_bzRead)f -Fl(ma)m(y)j(return)e Fj(BZ_)630 4738 y(MEM_ERROR)d Fl(ev)m(en)k(though) -e(some)h(of)g(the)g(compressed)g(data)g(has)g(b)s(een)f(read.)39 -b(The)28 b(same)630 4847 y(is)38 b(not)i(true)f(for)g(compression;)k -(once)d Fj(BZ2_bzCompressInit)34 b Fl(or)39 b Fj(BZ2_bzWriteOpen)630 -4957 y Fl(ha)m(v)m(e)32 b(successfully)c(completed,)j -Fj(BZ_MEM_ERROR)c Fl(cannot)k(o)s(ccur.)150 5121 y Fj(BZ_DATA_ERROR)630 -5230 y Fl(Returned)h(when)g(a)h(data)g(in)m(tegrit)m(y)g(error)g(is)e -(detected)k(during)30 b(decompression.)47 b(Most)630 -5340 y(imp)s(ortan)m(tly)-8 b(,)31 b(this)f(means)i(when)f(stored)g -(and)g(computed)h(CR)m(Cs)f(for)g(the)h(data)g(do)g(not)p -eop -%%Page: 12 13 -12 12 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(12)630 299 y(matc)m(h.)41 -b(This)28 b(v)-5 b(alue)29 b(is)f(also)i(returned)e(up)s(on)g -(detection)i(of)g(an)m(y)g(other)f(anomaly)h(in)e(the)630 -408 y(compressed)i(data.)150 560 y Fj(BZ_DATA_ERROR_MAGIC)630 -670 y Fl(As)k(a)g(sp)s(ecial)f(case)i(of)f Fj(BZ_DATA_ERROR)p -Fl(,)d(it)i(is)g(sometimes)h(useful)e(to)j(kno)m(w)f(when)f(the)630 -779 y(compressed)d(stream)h(do)s(es)f(not)g(start)h(with)e(the)i -(correct)h(magic)e(b)m(ytes)h(\()p Fj('B')f('Z')f('h')p -Fl(\).)150 931 y Fj(BZ_IO_ERROR)630 1040 y Fl(Returned)k(b)m(y)h -Fj(BZ2_bzRead)d Fl(and)i Fj(BZ2_bzWrite)e Fl(when)i(there)h(is)f(an)g -(error)h(reading)f(or)630 1150 y(writing)28 b(in)h(the)h(compressed)g -(\014le,)f(and)h(b)m(y)g Fj(BZ2_bzReadOpen)c Fl(and)j -Fj(BZ2_bzWriteOpen)630 1259 y Fl(for)i(attempts)i(to)f(use)f(a)h -(\014le)e(for)i(whic)m(h)e(the)h(error)g(indicator)g(\(viz,)g -Fj(ferror\(f\))p Fl(\))f(is)g(set.)630 1369 y(On)h(receipt)g(of)h -Fj(BZ_IO_ERROR)p Fl(,)e(the)h(caller)h(should)d(consult)i -Fj(errno)g Fl(and/or)g Fj(perror)f Fl(to)630 1479 y(acquire)g(op)s -(erating-system)g(sp)s(eci\014c)f(information)g(ab)s(out)h(the)h -(problem.)150 1630 y Fj(BZ_UNEXPECTED_EOF)630 1740 y -Fl(Returned)36 b(b)m(y)g Fj(BZ2_bzRead)e Fl(when)i(the)h(compressed)f -(\014le)g(\014nishes)e(b)s(efore)j(the)f(logical)630 -1849 y(end)30 b(of)g(stream)h(is)e(detected.)150 2001 -y Fj(BZ_OUTBUFF_FULL)630 2110 y Fl(Returned)g(b)m(y)i -Fj(BZ2_bzBuffToBuffCompres)o(s)24 b Fl(and)30 b Fj -(BZ2_bzBuffToBuffDecompres)o(s)630 2220 y Fl(to)h(indicate)f(that)h -(the)f(output)g(data)h(will)d(not)i(\014t)h(in)m(to)f(the)h(output)f -(bu\013er)f(pro)m(vided.)150 2492 y Fk(3.3)68 b(Lo)l(w-lev)l(el)47 -b(in)l(terface)150 2766 y Ff(3.3.1)63 b Fe(BZ2_bzCompressInit)390 -2953 y Fj(typedef)533 3057 y(struct)46 b({)676 3161 y(char)h(*next_in;) -676 3264 y(unsigned)f(int)h(avail_in;)676 3368 y(unsigned)f(int)h -(total_in_lo32;)676 3472 y(unsigned)f(int)h(total_in_hi32;)676 -3680 y(char)g(*next_out;)676 3783 y(unsigned)f(int)h(avail_out;)676 -3887 y(unsigned)f(int)h(total_out_lo32;)676 3991 y(unsigned)f(int)h -(total_out_hi32;)676 4198 y(void)g(*state;)676 4406 y(void)g -(*\(*bzalloc\)\(void)c(*,int,int\);)676 4510 y(void)k -(\(*bzfree\)\(void)d(*,void)i(*\);)676 4614 y(void)h(*opaque;)533 -4717 y(})533 4821 y(bz_stream;)390 5029 y(int)g(BZ2_bzCompressInit)c -(\()k(bz_stream)e(*strm,)1583 5132 y(int)i(blockSize100k,)1583 -5236 y(int)g(verbosity,)1583 5340 y(int)g(workFactor)e(\);)p -eop -%%Page: 13 14 -13 13 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(13)150 456 y(Prepares)32 -b(for)h(compression.)47 b(The)32 b Fj(bz_stream)e Fl(structure)j(holds) -e(all)h(data)h(p)s(ertaining)e(to)i(the)g(com-)150 565 -y(pression)i(activit)m(y)-8 b(.)62 b(A)37 b Fj(bz_stream)e -Fl(structure)h(should)f(b)s(e)i(allo)s(cated)g(and)f(initialised)e -(prior)h(to)j(the)150 675 y(call.)67 b(The)39 b(\014elds)e(of)j -Fj(bz_stream)d Fl(comprise)h(the)i(en)m(tiret)m(y)g(of)f(the)h -(user-visible)c(data.)68 b Fj(state)38 b Fl(is)h(a)150 -784 y(p)s(oin)m(ter)29 b(to)i(the)g(priv)-5 b(ate)30 -b(data)h(structures)f(required)e(for)i(compression.)150 -941 y(Custom)37 b(memory)g(allo)s(cators)g(are)h(supp)s(orted,)f(via)g -(\014elds)f Fj(bzalloc)p Fl(,)h Fj(bzfree)p Fl(,)g(and)g -Fj(opaque)p Fl(.)59 b(The)150 1051 y(v)-5 b(alue)32 b -Fj(opaque)e Fl(is)i(passed)f(to)i(as)g(the)f(\014rst)g(argumen)m(t)h -(to)g(all)e(calls)g(to)i Fj(bzalloc)d Fl(and)i Fj(bzfree)p -Fl(,)f(but)h(is)150 1160 y(otherwise)d(ignored)g(b)m(y)h(the)g(library) --8 b(.)38 b(The)29 b(call)h Fj(bzalloc)e(\()i(opaque,)e(n,)i(m)g(\))g -Fl(is)e(exp)s(ected)j(to)f(return)150 1270 y(a)g(p)s(oin)m(ter)e -Fj(p)h Fl(to)h Fj(n)g(*)g(m)f Fl(b)m(ytes)h(of)g(memory)-8 -b(,)30 b(and)e Fj(bzfree)h(\()h(opaque,)f(p)h(\))f Fl(should)e(free)i -(that)h(memory)-8 b(.)150 1427 y(If)33 b(y)m(ou)g(don't)h(w)m(an)m(t)g -(to)g(use)f(a)g(custom)h(memory)f(allo)s(cator,)h(set)g -Fj(bzalloc)p Fl(,)e Fj(bzfree)g Fl(and)h Fj(opaque)e -Fl(to)150 1537 y Fj(NULL)p Fl(,)e(and)h(the)h(library)d(will)f(then)k -(use)f(the)g(standard)g Fj(malloc)p Fl(/)p Fj(free)e -Fl(routines.)150 1693 y(Before)39 b(calling)d Fj(BZ2_bzCompressInit)p -Fl(,)f(\014elds)h Fj(bzalloc)p Fl(,)h Fj(bzfree)f Fl(and)h -Fj(opaque)f Fl(should)g(b)s(e)h(\014lled)150 1803 y(appropriately)-8 -b(,)35 b(as)h(just)f(describ)s(ed.)53 b(Up)s(on)34 b(return,)i(the)g -(in)m(ternal)e(state)i(will)d(ha)m(v)m(e)j(b)s(een)f(allo)s(cated)150 -1913 y(and)43 b(initialised,)g(and)g Fj(total_in_lo32)p -Fl(,)h Fj(total_in_hi32)p Fl(,)f Fj(total_out_lo32)d -Fl(and)j Fj(total_out_)150 2022 y(hi32)37 b Fl(will)f(ha)m(v)m(e)j(b)s -(een)f(set)h(to)g(zero.)65 b(These)38 b(four)g(\014elds)e(are)j(used)f -(b)m(y)g(the)g(library)e(to)j(inform)e(the)150 2132 y(caller)j(of)g -(the)h(total)g(amoun)m(t)g(of)g(data)g(passed)f(in)m(to)g(and)g(out)g -(of)h(the)g(library)-8 b(,)41 b(resp)s(ectiv)m(ely)-8 -b(.)70 b(Y)-8 b(ou)150 2241 y(should)34 b(not)j(try)f(to)h(c)m(hange)g -(them.)58 b(As)36 b(of)h(v)m(ersion)f(1.0,)j(64-bit)d(coun)m(ts)h(are)f -(main)m(tained,)h(ev)m(en)g(on)150 2351 y(32-bit)i(platforms,)h(using)d -(the)i Fj(_hi32)e Fl(\014elds)g(to)j(store)f(the)g(upp)s(er)d(32)k -(bits)d(of)i(the)g(coun)m(t.)66 b(So,)41 b(for)150 2460 -y(example,)30 b(the)h(total)g(amoun)m(t)g(of)f(data)h(in)f(is)f -Fj(\(total_in_hi32)d(<<)k(32\))g(+)g(total_in_lo32)p -Fl(.)150 2617 y(P)m(arameter)g Fj(blockSize100k)25 b -Fl(sp)s(eci\014es)i(the)h(blo)s(c)m(k)g(size)h(to)g(b)s(e)f(used)f(for) -h(compression.)40 b(It)28 b(should)f(b)s(e)150 2727 y(a)k(v)-5 -b(alue)30 b(b)s(et)m(w)m(een)i(1)f(and)f(9)h(inclusiv)m(e,)e(and)h(the) -h(actual)g(blo)s(c)m(k)f(size)g(used)g(is)g(100000)j(x)e(this)e -(\014gure.)42 b(9)150 2836 y(giv)m(es)31 b(the)f(b)s(est)g(compression) -g(but)f(tak)m(es)j(most)f(memory)-8 b(.)150 2993 y(P)m(arameter)29 -b Fj(verbosity)c Fl(should)h(b)s(e)h(set)i(to)f(a)h(n)m(um)m(b)s(er)d -(b)s(et)m(w)m(een)j(0)f(and)f(4)h(inclusiv)m(e.)38 b(0)28 -b(is)f(silen)m(t,)h(and)150 3103 y(greater)j(n)m(um)m(b)s(ers)c(giv)m -(e)j(increasingly)d(v)m(erb)s(ose)j(monitoring/debugging)d(output.)40 -b(If)29 b(the)g(library)e(has)150 3212 y(b)s(een)j(compiled)e(with)i -Fj(-DBZ_NO_STDIO)p Fl(,)d(no)j(suc)m(h)g(output)g(will)e(app)s(ear)h -(for)h(an)m(y)h(v)m(erb)s(osit)m(y)f(setting.)150 3369 -y(P)m(arameter)35 b Fj(workFactor)d Fl(con)m(trols)i(ho)m(w)g(the)g -(compression)f(phase)h(b)s(eha)m(v)m(es)g(when)f(presen)m(ted)h(with) -150 3479 y(w)m(orst)40 b(case,)j(highly)37 b(rep)s(etitiv)m(e,)k(input) -d(data.)68 b(If)39 b(compression)g(runs)e(in)m(to)j(di\016culties)d -(caused)i(b)m(y)150 3588 y(rep)s(etitiv)m(e)34 b(data,)j(the)e(library) -d(switc)m(hes)j(from)f(the)h(standard)f(sorting)g(algorithm)g(to)i(a)f -(fallbac)m(k)f(al-)150 3698 y(gorithm.)47 b(The)32 b(fallbac)m(k)g(is)g -(slo)m(w)m(er)g(than)h(the)f(standard)g(algorithm)g(b)m(y)g(p)s(erhaps) -f(a)i(factor)h(of)e(three,)150 3808 y(but)e(alw)m(a)m(ys)h(b)s(eha)m(v) -m(es)f(reasonably)-8 b(,)31 b(no)f(matter)h(ho)m(w)g(bad)f(the)g -(input.)150 3965 y(Lo)m(w)m(er)25 b(v)-5 b(alues)24 b(of)h -Fj(workFactor)d Fl(reduce)i(the)h(amoun)m(t)g(of)g(e\013ort)g(the)g -(standard)f(algorithm)f(will)f(exp)s(end)150 4074 y(b)s(efore)j -(resorting)h(to)g(the)g(fallbac)m(k.)39 b(Y)-8 b(ou)27 -b(should)c(set)k(this)e(parameter)h(carefully;)g(to)s(o)h(lo)m(w,)g -(and)e(man)m(y)150 4184 y(inputs)32 b(will)f(b)s(e)i(handled)f(b)m(y)i -(the)g(fallbac)m(k)g(algorithm)f(and)g(so)h(compress)g(rather)g(slo)m -(wly)-8 b(,)34 b(to)s(o)h(high,)150 4293 y(and)24 b(y)m(our)h(a)m(v)m -(erage-to-w)m(orst)30 b(case)c(compression)e(times)h(can)g(b)s(ecome)g -(v)m(ery)h(large.)39 b(The)24 b(default)g(v)-5 b(alue)150 -4403 y(of)31 b(30)g(giv)m(es)f(reasonable)h(b)s(eha)m(viour)e(o)m(v)m -(er)i(a)g(wide)e(range)i(of)f(circumstances.)150 4560 -y(Allo)m(w)m(able)h(v)-5 b(alues)31 b(range)i(from)e(0)i(to)f(250)h -(inclusiv)m(e.)44 b(0)32 b(is)f(a)h(sp)s(ecial)f(case,)i(equiv)-5 -b(alen)m(t)32 b(to)g(using)f(the)150 4669 y(default)f(v)-5 -b(alue)29 b(of)i(30.)150 4826 y(Note)38 b(that)f(the)g(compressed)f -(output)g(generated)h(is)f(the)g(same)h(regardless)f(of)h(whether)f(or) -g(not)h(the)150 4936 y(fallbac)m(k)30 b(algorithm)f(is)h(used.)150 -5093 y(Be)23 b(a)m(w)m(are)h(also)f(that)g(this)f(parameter)h(ma)m(y)g -(disapp)s(ear)e(en)m(tirely)h(in)f(future)h(v)m(ersions)g(of)h(the)g -(library)-8 b(.)36 b(In)150 5202 y(principle)20 b(it)j(should)e(b)s(e)h -(p)s(ossible)f(to)j(devise)f(a)g(go)s(o)s(d)g(w)m(a)m(y)i(to)f -(automatically)f(c)m(ho)s(ose)h(whic)m(h)e(algorithm)150 -5312 y(to)31 b(use.)41 b(Suc)m(h)29 b(a)i(mec)m(hanism)f(w)m(ould)f -(render)g(the)i(parameter)g(obsolete.)p eop -%%Page: 14 15 -14 14 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(14)150 299 y(P)m(ossible)29 -b(return)h(v)-5 b(alues:)572 450 y Fj(BZ_CONFIG_ERROR)663 -554 y Fl(if)29 b(the)i(library)d(has)i(b)s(een)f(mis-compiled)572 -657 y Fj(BZ_PARAM_ERROR)663 761 y Fl(if)g Fj(strm)g Fl(is)h -Fj(NULL)663 865 y Fl(or)g Fj(blockSize)e(<)i Fl(1)h(or)f -Fj(blockSize)e(>)i Fl(9)663 969 y(or)g Fj(verbosity)e(<)i -Fl(0)h(or)f Fj(verbosity)e(>)i Fl(4)663 1073 y(or)g Fj(workFactor)e(<)i -Fl(0)g(or)h Fj(workFactor)c(>)j Fl(250)572 1176 y Fj(BZ_MEM_ERROR)663 -1280 y Fl(if)f(not)i(enough)f(memory)g(is)f(a)m(v)-5 -b(ailable)572 1384 y Fj(BZ_OK)663 1488 y Fl(otherwise)150 -1645 y(Allo)m(w)m(able)30 b(next)g(actions:)572 1796 -y Fj(BZ2_bzCompress)663 1899 y Fl(if)f Fj(BZ_OK)g Fl(is)g(returned)572 -2003 y(no)h(sp)s(eci\014c)f(action)i(needed)f(in)f(case)i(of)g(error) -150 2255 y Ff(3.3.2)63 b Fe(BZ2_bzCompress)533 2441 y -Fj(int)47 b(BZ2_bzCompress)d(\()j(bz_stream)f(*strm,)g(int)h(action)f -(\);)150 2598 y Fl(Pro)m(vides)28 b(more)g(input)f(and/or)h(output)g -(bu\013er)g(space)h(for)f(the)h(library)-8 b(.)38 b(The)28 -b(caller)g(main)m(tains)f(input)150 2708 y(and)j(output)g(bu\013ers,)f -(and)h(calls)g Fj(BZ2_bzCompress)c Fl(to)31 b(transfer)f(data)h(b)s(et) -m(w)m(een)g(them.)150 2865 y(Before)j(eac)m(h)g(call)e(to)i -Fj(BZ2_bzCompress)p Fl(,)c Fj(next_in)h Fl(should)g(p)s(oin)m(t)h(at)h -(the)g(data)h(to)g(b)s(e)e(compressed,)150 2974 y(and)41 -b Fj(avail_in)f Fl(should)g(indicate)h(ho)m(w)h(man)m(y)f(b)m(ytes)i -(the)f(library)d(ma)m(y)k(read.)75 b Fj(BZ2_bzCompress)150 -3084 y Fl(up)s(dates)29 b Fj(next_in)p Fl(,)g Fj(avail_in)f -Fl(and)i Fj(total_in)e Fl(to)j(re\015ect)g(the)g(n)m(um)m(b)s(er)e(of)h -(b)m(ytes)h(it)f(has)g(read.)150 3241 y(Similarly)-8 -b(,)27 b Fj(next_out)h Fl(should)g(p)s(oin)m(t)h(to)i(a)f(bu\013er)f -(in)g(whic)m(h)g(the)h(compressed)g(data)h(is)e(to)i(b)s(e)e(placed,) -150 3350 y(with)i Fj(avail_out)f Fl(indicating)h(ho)m(w)h(m)m(uc)m(h)h -(output)f(space)h(is)f(a)m(v)-5 b(ailable.)46 b Fj(BZ2_bzCompress)29 -b Fl(up)s(dates)150 3460 y Fj(next_out)p Fl(,)f Fj(avail_out)g -Fl(and)i Fj(total_out)e Fl(to)j(re\015ect)g(the)f(n)m(um)m(b)s(er)g(of) -g(b)m(ytes)h(output.)150 3617 y(Y)-8 b(ou)40 b(ma)m(y)g(pro)m(vide)e -(and)h(remo)m(v)m(e)i(as)f(little)e(or)h(as)h(m)m(uc)m(h)f(data)h(as)g -(y)m(ou)f(lik)m(e)g(on)g(eac)m(h)i(call)e(of)g Fj(BZ2_)150 -3726 y(bzCompress)p Fl(.)48 b(In)33 b(the)h(limit,)f(it)h(is)f -(acceptable)h(to)h(supply)c(and)j(remo)m(v)m(e)h(data)g(one)f(b)m(yte)g -(at)h(a)f(time,)150 3836 y(although)28 b(this)f(w)m(ould)g(b)s(e)h -(terribly)e(ine\016cien)m(t.)39 b(Y)-8 b(ou)29 b(should)e(alw)m(a)m(ys) -h(ensure)g(that)h(at)g(least)g(one)f(b)m(yte)150 3946 -y(of)j(output)f(space)g(is)g(a)m(v)-5 b(ailable)30 b(at)h(eac)m(h)g -(call.)150 4102 y(A)38 b(second)h(purp)s(ose)d(of)j Fj(BZ2_bzCompress) -34 b Fl(is)j(to)i(request)f(a)h(c)m(hange)g(of)g(mo)s(de)e(of)i(the)f -(compressed)150 4212 y(stream.)150 4369 y(Conceptually)-8 -b(,)24 b(a)g(compressed)g(stream)g(can)f(b)s(e)g(in)g(one)h(of)f(four)g -(states:)39 b(IDLE,)24 b(R)m(UNNING,)h(FLUSH-)150 4478 -y(ING)37 b(and)g(FINISHING.)g(Before)i(initialisation)33 -b(\()p Fj(BZ2_bzCompressInit)p Fl(\))g(and)j(after)i(termination)150 -4588 y(\()p Fj(BZ2_bzCompressEnd)p Fl(\),)27 b(a)j(stream)h(is)f -(regarded)g(as)g(IDLE.)150 4745 y(Up)s(on)35 b(initialisation)e(\()p -Fj(BZ2_bzCompressInit)p Fl(\),)h(the)i(stream)h(is)e(placed)h(in)e(the) -j(R)m(UNNING)g(state.)150 4854 y(Subsequen)m(t)j(calls)g(to)i -Fj(BZ2_bzCompress)37 b Fl(should)j(pass)g Fj(BZ_RUN)g -Fl(as)h(the)g(requested)h(action;)47 b(other)150 4964 -y(actions)31 b(are)f(illegal)f(and)h(will)d(result)j(in)f -Fj(BZ_SEQUENCE_ERROR)p Fl(.)150 5121 y(A)m(t)38 b(some)f(p)s(oin)m(t,)h -(the)f(calling)e(program)i(will)d(ha)m(v)m(e)k(pro)m(vided)e(all)f(the) -i(input)e(data)j(it)e(w)m(an)m(ts)i(to.)61 b(It)150 5230 -y(will)28 b(then)h(w)m(an)m(t)i(to)g(\014nish)d(up)h({)i(in)d -(e\013ect,)k(asking)e(the)g(library)e(to)j(pro)s(cess)f(an)m(y)g(data)h -(it)f(migh)m(t)g(ha)m(v)m(e)150 5340 y(bu\013ered)25 -b(in)m(ternally)-8 b(.)38 b(In)25 b(this)g(state,)k Fj(BZ2_bzCompress) -22 b Fl(will)i(no)i(longer)g(attempt)h(to)g(read)f(data)h(from)p -eop -%%Page: 15 16 -15 15 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(15)150 299 y Fj(next_in)p -Fl(,)33 b(but)g(it)h(will)d(w)m(an)m(t)k(to)g(write)e(data)h(to)h -Fj(next_out)p Fl(.)49 b(Because)36 b(the)e(output)f(bu\013er)g -(supplied)150 408 y(b)m(y)e(the)h(user)e(can)i(b)s(e)f(arbitrarily)d -(small,)j(the)g(\014nishing-up)d(op)s(eration)i(cannot)i(necessarily)e -(b)s(e)h(done)150 518 y(with)e(a)i(single)e(call)h(of)g -Fj(BZ2_bzCompress)p Fl(.)150 675 y(Instead,)47 b(the)d(calling)f -(program)g(passes)h Fj(BZ_FINISH)d Fl(as)j(an)g(action)g(to)h -Fj(BZ2_bzCompress)p Fl(.)77 b(This)150 784 y(c)m(hanges)30 -b(the)f(stream's)g(state)h(to)f(FINISHING.)g(An)m(y)g(remaining)e -(input)g(\(ie,)i Fj(next_in[0)f(..)i(avail_)150 894 y(in-1])p -Fl(\))36 b(is)f(compressed)i(and)f(transferred)g(to)h(the)g(output)g -(bu\013er.)58 b(T)-8 b(o)38 b(do)e(this,)i Fj(BZ2_bzCompress)150 -1004 y Fl(m)m(ust)h(b)s(e)f(called)g(rep)s(eatedly)h(un)m(til)e(all)h -(the)h(output)f(has)h(b)s(een)f(consumed.)66 b(A)m(t)40 -b(that)g(p)s(oin)m(t,)g Fj(BZ2_)150 1113 y(bzCompress)h -Fl(returns)h Fj(BZ_STREAM_END)p Fl(,)i(and)f(the)h(stream's)g(state)h -(is)d(set)j(bac)m(k)f(to)g(IDLE.)g Fj(BZ2_)150 1223 y(bzCompressEnd)27 -b Fl(should)h(then)i(b)s(e)g(called.)150 1380 y(Just)25 -b(to)i(mak)m(e)g(sure)e(the)i(calling)d(program)i(do)s(es)g(not)g(c)m -(heat,)i(the)f(library)c(mak)m(es)k(a)f(note)h(of)f Fj(avail_in)150 -1489 y Fl(at)g(the)g(time)f(of)g(the)g(\014rst)g(call)g(to)h -Fj(BZ2_bzCompress)21 b Fl(whic)m(h)j(has)h Fj(BZ_FINISH)e -Fl(as)i(an)h(action)f(\(ie,)i(at)f(the)150 1599 y(time)d(the)h(program) -g(has)f(announced)g(its)h(in)m(ten)m(tion)f(to)h(not)g(supply)e(an)m(y) -i(more)g(input\).)37 b(By)24 b(comparing)150 1708 y(this)k(v)-5 -b(alue)28 b(with)g(that)h(of)h Fj(avail_in)c Fl(o)m(v)m(er)k(subsequen) -m(t)f(calls)f(to)h Fj(BZ2_bzCompress)p Fl(,)d(the)j(library)e(can)150 -1818 y(detect)33 b(an)m(y)e(attempts)i(to)f(slip)d(in)h(more)h(data)h -(to)h(compress.)43 b(An)m(y)31 b(calls)g(for)g(whic)m(h)f(this)g(is)h -(detected)150 1928 y(will)j(return)h Fj(BZ_SEQUENCE_ERROR)p -Fl(.)55 b(This)34 b(indicates)i(a)h(programming)e(mistak)m(e)i(whic)m -(h)e(should)g(b)s(e)150 2037 y(corrected.)150 2194 y(Instead)i(of)g -(asking)f(to)h(\014nish,)f(the)h(calling)f(program)g(ma)m(y)h(ask)g -Fj(BZ2_bzCompress)c Fl(to)38 b(tak)m(e)g(all)e(the)150 -2304 y(remaining)j(input,)i(compress)f(it)g(and)g(terminate)h(the)g -(curren)m(t)f(\(Burro)m(ws-Wheeler\))h(compression)150 -2413 y(blo)s(c)m(k.)e(This)26 b(could)h(b)s(e)g(useful)f(for)h(error)h -(con)m(trol)g(purp)s(oses.)38 b(The)27 b(mec)m(hanism)g(is)g(analogous) -h(to)g(that)150 2523 y(for)35 b(\014nishing:)46 b(call)35 -b Fj(BZ2_bzCompress)c Fl(with)i(an)i(action)g(of)g Fj(BZ_FLUSH)p -Fl(,)g(remo)m(v)m(e)h(output)f(data,)i(and)150 2632 y(p)s(ersist)h -(with)g(the)i Fj(BZ_FLUSH)e Fl(action)i(un)m(til)e(the)i(v)-5 -b(alue)39 b Fj(BZ_RUN)f Fl(is)h(returned.)68 b(As)39 -b(with)g(\014nishing,)150 2742 y Fj(BZ2_bzCompress)23 -b Fl(detects)28 b(an)m(y)f(attempt)h(to)f(pro)m(vide)f(more)h(input)e -(data)i(once)g(the)g(\015ush)e(has)i(b)s(egun.)150 2899 -y(Once)j(the)h(\015ush)e(is)g(complete,)i(the)g(stream)f(returns)g(to)h -(the)f(normal)g(R)m(UNNING)h(state.)150 3056 y(This)f(all)h(sounds)g -(prett)m(y)h(complex,)h(but)e(isn't)g(really)-8 b(.)45 -b(Here's)33 b(a)f(table)g(whic)m(h)f(sho)m(ws)h(whic)m(h)f(actions)150 -3165 y(are)e(allo)m(w)m(able)f(in)f(eac)m(h)j(state,)g(what)f(action)g -(will)c(b)s(e)j(tak)m(en,)j(what)d(the)h(next)f(state)i(is,)e(and)g -(what)h(the)150 3275 y(non-error)h(return)f(v)-5 b(alues)29 -b(are.)41 b(Note)32 b(that)e(y)m(ou)h(can't)g(explicitly)d(ask)i(what)g -(state)i(the)e(stream)h(is)e(in,)150 3384 y(but)h(nor)g(do)g(y)m(ou)h -(need)f(to)h({)g(it)e(can)i(b)s(e)f(inferred)e(from)i(the)h(v)-5 -b(alues)29 b(returned)h(b)m(y)g Fj(BZ2_bzCompress)p Fl(.)390 -3535 y(IDLE/)p Fj(any)572 3639 y Fl(Illegal.)60 b(IDLE)30 -b(state)i(only)d(exists)h(after)h Fj(BZ2_bzCompressEnd)26 -b Fl(or)572 3743 y(b)s(efore)k Fj(BZ2_bzCompressInit)p -Fl(.)572 3847 y(Return)f(v)-5 b(alue)30 b(=)g Fj(BZ_SEQUENCE_ERROR)390 -4054 y Fl(R)m(UNNING/)p Fj(BZ_RUN)572 4158 y Fl(Compress)f(from)h -Fj(next_in)f Fl(to)i Fj(next_out)d Fl(as)i(m)m(uc)m(h)h(as)f(p)s -(ossible.)572 4262 y(Next)h(state)h(=)e(R)m(UNNING)572 -4366 y(Return)f(v)-5 b(alue)30 b(=)g Fj(BZ_RUN_OK)390 -4573 y Fl(R)m(UNNING/)p Fj(BZ_FLUSH)572 4677 y Fl(Remem)m(b)s(er)g -(curren)m(t)g(v)-5 b(alue)30 b(of)g Fj(next_in)p Fl(.)59 -b(Compress)30 b(from)g Fj(next_in)572 4781 y Fl(to)h -Fj(next_out)d Fl(as)j(m)m(uc)m(h)f(as)h(p)s(ossible,)d(but)i(do)g(not)g -(accept)i(an)m(y)f(more)f(input.)572 4885 y(Next)h(state)h(=)e -(FLUSHING)572 4988 y(Return)f(v)-5 b(alue)30 b(=)g Fj(BZ_FLUSH_OK)390 -5196 y Fl(R)m(UNNING/)p Fj(BZ_FINISH)572 5300 y Fl(Remem)m(b)s(er)g -(curren)m(t)g(v)-5 b(alue)30 b(of)g Fj(next_in)p Fl(.)59 -b(Compress)30 b(from)g Fj(next_in)p eop -%%Page: 16 17 -16 16 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(16)572 299 y(to)31 b Fj(next_out)d -Fl(as)j(m)m(uc)m(h)f(as)h(p)s(ossible,)d(but)i(do)g(not)g(accept)i(an)m -(y)f(more)f(input.)572 403 y(Next)h(state)h(=)e(FINISHING)572 -506 y(Return)f(v)-5 b(alue)30 b(=)g Fj(BZ_FINISH_OK)390 -714 y Fl(FLUSHING/)p Fj(BZ_FLUSH)572 818 y Fl(Compress)f(from)h -Fj(next_in)f Fl(to)i Fj(next_out)d Fl(as)i(m)m(uc)m(h)h(as)f(p)s -(ossible,)572 922 y(but)f(do)i(not)f(accept)i(an)m(y)f(more)f(input.) -572 1025 y(If)g(all)f(the)i(existing)e(input)f(has)i(b)s(een)g(used)g -(up)f(and)h(all)f(compressed)572 1129 y(output)h(has)g(b)s(een)g(remo)m -(v)m(ed)663 1233 y(Next)h(state)h(=)e(R)m(UNNING;)i(Return)d(v)-5 -b(alue)30 b(=)g Fj(BZ_RUN_OK)572 1337 y Fl(else)663 1440 -y(Next)h(state)h(=)e(FLUSHING;)h(Return)e(v)-5 b(alue)30 -b(=)g Fj(BZ_FLUSH_OK)390 1648 y Fl(FLUSHING/other)572 -1752 y(Illegal.)572 1856 y(Return)f(v)-5 b(alue)30 b(=)g -Fj(BZ_SEQUENCE_ERROR)390 2063 y Fl(FINISHING/)p Fj(BZ_FINISH)572 -2167 y Fl(Compress)f(from)h Fj(next_in)f Fl(to)i Fj(next_out)d -Fl(as)i(m)m(uc)m(h)h(as)f(p)s(ossible,)572 2271 y(but)f(to)j(not)e -(accept)i(an)m(y)f(more)f(input.)572 2374 y(If)g(all)f(the)i(existing)e -(input)f(has)i(b)s(een)g(used)g(up)f(and)h(all)f(compressed)572 -2478 y(output)h(has)g(b)s(een)g(remo)m(v)m(ed)663 2582 -y(Next)h(state)h(=)e(IDLE;)g(Return)g(v)-5 b(alue)30 -b(=)g Fj(BZ_STREAM_END)572 2686 y Fl(else)663 2790 y(Next)h(state)h(=)e -(FINISHING;)g(Return)g(v)-5 b(alue)30 b(=)g Fj(BZ_FINISHING)390 -2997 y Fl(FINISHING/other)572 3101 y(Illegal.)572 3205 -y(Return)f(v)-5 b(alue)30 b(=)g Fj(BZ_SEQUENCE_ERROR)150 -3361 y Fl(That)24 b(still)f(lo)s(oks)g(complicated?)39 -b(W)-8 b(ell,)25 b(fair)f(enough.)38 b(The)24 b(usual)f(sequence)i(of)f -(calls)g(for)g(compressing)150 3471 y(a)31 b(load)f(of)g(data)h(is:)225 -3628 y Fi(\017)60 b Fl(Get)31 b(started)g(with)e Fj(BZ2_bzCompressInit) -p Fl(.)225 3774 y Fi(\017)60 b Fl(Sho)m(v)m(el)38 b(data)h(in)e(and)g -(shlurp)e(out)k(its)e(compressed)h(form)g(using)e(zero)j(or)f(more)h -(calls)e(of)h Fj(BZ2_)330 3884 y(bzCompress)28 b Fl(with)h(action)h(=)g -Fj(BZ_RUN)p Fl(.)225 4030 y Fi(\017)60 b Fl(Finish)23 -b(up.)38 b(Rep)s(eatedly)25 b(call)f Fj(BZ2_bzCompress)e -Fl(with)i(action)h(=)g Fj(BZ_FINISH)p Fl(,)f(cop)m(ying)h(out)h(the)330 -4139 y(compressed)k(output,)g(un)m(til)f Fj(BZ_STREAM_END)e -Fl(is)i(returned.)225 4285 y Fi(\017)60 b Fl(Close)30 -b(up)f(and)h(go)h(home.)41 b(Call)29 b Fj(BZ2_bzCompressEnd)p -Fl(.)150 4478 y(If)23 b(the)h(data)h(y)m(ou)f(w)m(an)m(t)h(to)f -(compress)g(\014ts)f(in)m(to)h(y)m(our)g(input)e(bu\013er)h(all)f(at)j -(once,)h(y)m(ou)e(can)g(skip)f(the)h(calls)150 4588 y(of)37 -b Fj(BZ2_bzCompress)26 b(\()k(...,)f(BZ_RUN)g(\))36 b -Fl(and)g(just)g(do)h(the)g Fj(BZ2_bzCompress)26 b(\()k(...,)f -(BZ_FINISH)150 4698 y(\))h Fl(calls.)150 4854 y(All)36 -b(required)g(memory)h(is)f(allo)s(cated)i(b)m(y)f Fj -(BZ2_bzCompressInit)p Fl(.)56 b(The)37 b(compression)g(library)e(can) -150 4964 y(accept)g(an)m(y)f(data)h(at)g(all)d(\(ob)m(viously\).)51 -b(So)34 b(y)m(ou)g(shouldn't)e(get)j(an)m(y)f(error)f(return)g(v)-5 -b(alues)33 b(from)h(the)150 5074 y Fj(BZ2_bzCompress)29 -b Fl(calls.)46 b(If)32 b(y)m(ou)h(do,)g(they)g(will)d(b)s(e)i -Fj(BZ_SEQUENCE_ERROR)p Fl(,)d(and)j(indicate)f(a)i(bug)f(in)150 -5183 y(y)m(our)e(programming.)150 5340 y(T)-8 b(rivial)28 -b(other)j(p)s(ossible)d(return)h(v)-5 b(alues:)p eop -%%Page: 17 18 -17 17 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(17)572 299 y Fj(BZ_PARAM_ERROR)663 -403 y Fl(if)29 b Fj(strm)g Fl(is)h Fj(NULL)p Fl(,)f(or)i -Fj(strm->s)d Fl(is)h Fj(NULL)150 652 y Ff(3.3.3)63 b -Fe(BZ2_bzCompressEnd)390 839 y Fj(int)47 b(BZ2_bzCompressEnd)c(\()k -(bz_stream)f(*strm)g(\);)150 996 y Fl(Releases)31 b(all)e(memory)h -(asso)s(ciated)h(with)e(a)i(compression)e(stream.)150 -1153 y(P)m(ossible)g(return)h(v)-5 b(alues:)481 1304 -y Fj(BZ_PARAM_ERROR)117 b Fl(if)30 b Fj(strm)f Fl(is)g -Fj(NULL)g Fl(or)i Fj(strm->s)d Fl(is)i Fj(NULL)481 1408 -y(BZ_OK)120 b Fl(otherwise)150 1657 y Ff(3.3.4)63 b Fe -(BZ2_bzDecompressInit)390 1844 y Fj(int)47 b(BZ2_bzDecompressInit)42 -b(\()48 b(bz_stream)d(*strm,)h(int)h(verbosity,)e(int)i(small)f(\);)150 -2001 y Fl(Prepares)30 b(for)f(decompression.)40 b(As)29 -b(with)g Fj(BZ2_bzCompressInit)p Fl(,)c(a)31 b Fj(bz_stream)c -Fl(record)j(should)e(b)s(e)150 2110 y(allo)s(cated)c(and)f(initialised) -e(b)s(efore)i(the)i(call.)38 b(Fields)22 b Fj(bzalloc)p -Fl(,)i Fj(bzfree)e Fl(and)i Fj(opaque)e Fl(should)g(b)s(e)h(set)i(if) -150 2220 y(a)h(custom)f(memory)g(allo)s(cator)g(is)g(required,)f(or)h -(made)h Fj(NULL)e Fl(for)h(the)g(normal)f Fj(malloc)p -Fl(/)p Fj(free)f Fl(routines.)150 2330 y(Up)s(on)h(return,)h(the)g(in)m -(ternal)f(state)i(will)c(ha)m(v)m(e)k(b)s(een)f(initialised,)d(and)i -Fj(total_in)f Fl(and)h Fj(total_out)f Fl(will)150 2439 -y(b)s(e)30 b(zero.)150 2596 y(F)-8 b(or)31 b(the)g(meaning)e(of)i -(parameter)g Fj(verbosity)p Fl(,)d(see)j Fj(BZ2_bzCompressInit)p -Fl(.)150 2753 y(If)e Fj(small)e Fl(is)h(nonzero,)i(the)f(library)e -(will)f(use)j(an)g(alternativ)m(e)h(decompression)e(algorithm)g(whic)m -(h)f(uses)150 2862 y(less)c(memory)g(but)g(at)h(the)g(cost)h(of)e -(decompressing)g(more)g(slo)m(wly)g(\(roughly)f(sp)s(eaking,)i(half)f -(the)h(sp)s(eed,)150 2972 y(but)34 b(the)i(maxim)m(um)d(memory)i -(requiremen)m(t)g(drops)e(to)j(around)e(2300k\).)57 b(See)35 -b(Chapter)g(2)g(for)g(more)150 3082 y(information)29 -b(on)h(memory)g(managemen)m(t.)150 3238 y(Note)40 b(that)f(the)f(amoun) -m(t)h(of)g(memory)f(needed)g(to)i(decompress)e(a)h(stream)f(cannot)h(b) -s(e)f(determined)150 3348 y(un)m(til)j(the)h(stream's)h(header)f(has)g -(b)s(een)g(read,)j(so)e(ev)m(en)g(if)e Fj(BZ2_bzDecompressInit)c -Fl(succeeds,)46 b(a)150 3458 y(subsequen)m(t)30 b Fj(BZ2_bzDecompress)c -Fl(could)j(fail)g(with)g Fj(BZ_MEM_ERROR)p Fl(.)150 3614 -y(P)m(ossible)g(return)h(v)-5 b(alues:)572 3765 y Fj(BZ_CONFIG_ERROR) -663 3869 y Fl(if)29 b(the)i(library)d(has)i(b)s(een)f(mis-compiled)572 -3973 y Fj(BZ_PARAM_ERROR)663 4077 y Fl(if)g Fj(\(small)46 -b(!=)h(0)h(&&)f(small)f(!=)h(1\))663 4181 y Fl(or)30 -b Fj(\(verbosity)45 b(<)j(0)f(||)g(verbosity)e(>)j(4\))572 -4284 y(BZ_MEM_ERROR)663 4388 y Fl(if)29 b(insu\016cien)m(t)g(memory)h -(is)f(a)m(v)-5 b(ailable)150 4545 y(Allo)m(w)m(able)30 -b(next)g(actions:)572 4696 y Fj(BZ2_bzDecompress)663 -4800 y Fl(if)f Fj(BZ_OK)g Fl(w)m(as)i(returned)572 4904 -y(no)f(sp)s(eci\014c)f(action)i(required)e(in)g(case)i(of)g(error)150 -5153 y Ff(3.3.5)63 b Fe(BZ2_bzDecompress)390 5340 y Fj(int)47 -b(BZ2_bzDecompress)c(\()48 b(bz_stream)d(*strm)h(\);)p -eop -%%Page: 18 19 -18 18 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(18)150 299 y(Pro)m(vides)24 -b(more)g(input)f(and/out)h(output)g(bu\013er)g(space)h(for)f(the)g -(library)-8 b(.)37 b(The)24 b(caller)g(main)m(tains)f(input)150 -408 y(and)30 b(output)g(bu\013ers,)f(and)h(uses)g Fj(BZ2_bzDecompress)c -Fl(to)31 b(transfer)f(data)h(b)s(et)m(w)m(een)g(them.)150 -565 y(Before)g(eac)m(h)g(call)f(to)g Fj(BZ2_bzDecompress)p -Fl(,)c Fj(next_in)i Fl(should)h(p)s(oin)m(t)g(at)h(the)h(compressed)e -(data,)j(and)150 675 y Fj(avail_in)h Fl(should)h(indicate)h(ho)m(w)h -(man)m(y)f(b)m(ytes)i(the)e(library)f(ma)m(y)i(read.)56 -b Fj(BZ2_bzDecompress)32 b Fl(up-)150 784 y(dates)f Fj(next_in)p -Fl(,)e Fj(avail_in)f Fl(and)h Fj(total_in)g Fl(to)i(re\015ect)g(the)f -(n)m(um)m(b)s(er)f(of)i(b)m(ytes)g(it)f(has)g(read.)150 -941 y(Similarly)-8 b(,)37 b Fj(next_out)f Fl(should)g(p)s(oin)m(t)i(to) -g(a)h(bu\013er)e(in)g(whic)m(h)g(the)i(uncompressed)e(output)g(is)h(to) -h(b)s(e)150 1051 y(placed,)d(with)e Fj(avail_out)f Fl(indicating)g(ho)m -(w)i(m)m(uc)m(h)g(output)g(space)h(is)e(a)m(v)-5 b(ailable.)55 -b Fj(BZ2_bzCompress)150 1160 y Fl(up)s(dates)29 b Fj(next_out)p -Fl(,)g Fj(avail_out)f Fl(and)h Fj(total_out)f Fl(to)j(re\015ect)g(the)g -(n)m(um)m(b)s(er)e(of)h(b)m(ytes)h(output.)150 1317 y(Y)-8 -b(ou)40 b(ma)m(y)g(pro)m(vide)e(and)h(remo)m(v)m(e)i(as)f(little)e(or)h -(as)h(m)m(uc)m(h)f(data)h(as)g(y)m(ou)f(lik)m(e)g(on)g(eac)m(h)i(call)e -(of)g Fj(BZ2_)150 1427 y(bzDecompress)p Fl(.)e(In)27 -b(the)i(limit,)d(it)i(is)f(acceptable)j(to)f(supply)d(and)h(remo)m(v)m -(e)j(data)f(one)f(b)m(yte)h(at)g(a)g(time,)150 1537 y(although)f(this)f -(w)m(ould)g(b)s(e)h(terribly)e(ine\016cien)m(t.)39 b(Y)-8 -b(ou)29 b(should)e(alw)m(a)m(ys)h(ensure)g(that)h(at)g(least)g(one)f(b) -m(yte)150 1646 y(of)j(output)f(space)g(is)g(a)m(v)-5 -b(ailable)30 b(at)h(eac)m(h)g(call.)150 1803 y(Use)g(of)f -Fj(BZ2_bzDecompress)c Fl(is)k(simpler)e(than)i Fj(BZ2_bzCompress)p -Fl(.)150 1960 y(Y)-8 b(ou)31 b(should)d(pro)m(vide)h(input)f(and)i -(remo)m(v)m(e)i(output)d(as)i(describ)s(ed)d(ab)s(o)m(v)m(e,)k(and)d -(rep)s(eatedly)h(call)f Fj(BZ2_)150 2069 y(bzDecompress)35 -b Fl(un)m(til)i Fj(BZ_STREAM_END)e Fl(is)j(returned.)64 -b(App)s(earance)39 b(of)g Fj(BZ_STREAM_END)c Fl(denotes)150 -2179 y(that)47 b Fj(BZ2_bzDecompress)42 b Fl(has)k(detected)h(the)f -(logical)g(end)g(of)g(the)h(compressed)e(stream.)89 b -Fj(BZ2_)150 2289 y(bzDecompress)28 b Fl(will)g(not)j(pro)s(duce)f -Fj(BZ_STREAM_END)d Fl(un)m(til)j(all)f(output)i(data)h(has)e(b)s(een)h -(placed)f(in)m(to)150 2398 y(the)36 b(output)g(bu\013er,)h(so)g(once)g -Fj(BZ_STREAM_END)32 b Fl(app)s(ears,)38 b(y)m(ou)e(are)h(guaran)m(teed) -g(to)g(ha)m(v)m(e)h(a)m(v)-5 b(ailable)150 2508 y(all)29 -b(the)i(decompressed)f(output,)g(and)g Fj(BZ2_bzDecompressEnd)25 -b Fl(can)31 b(safely)f(b)s(e)f(called.)150 2665 y(If)40 -b(case)h(of)f(an)h(error)e(return)h(v)-5 b(alue,)42 b(y)m(ou)f(should)d -(call)h Fj(BZ2_bzDecompressEnd)c Fl(to)41 b(clean)f(up)g(and)150 -2774 y(release)31 b(memory)-8 b(.)150 2931 y(P)m(ossible)29 -b(return)h(v)-5 b(alues:)572 3082 y Fj(BZ_PARAM_ERROR)663 -3186 y Fl(if)29 b Fj(strm)g Fl(is)h Fj(NULL)f Fl(or)h -Fj(strm->s)f Fl(is)g Fj(NULL)663 3290 y Fl(or)h Fj(strm->avail_out)44 -b(<)j(1)572 3393 y(BZ_DATA_ERROR)663 3497 y Fl(if)29 -b(a)i(data)g(in)m(tegrit)m(y)f(error)g(is)g(detected)h(in)e(the)i -(compressed)f(stream)572 3601 y Fj(BZ_DATA_ERROR_MAGIC)663 -3705 y Fl(if)f(the)i(compressed)f(stream)g(do)s(esn't)h(b)s(egin)e -(with)g(the)h(righ)m(t)g(magic)h(b)m(ytes)572 3808 y -Fj(BZ_MEM_ERROR)663 3912 y Fl(if)e(there)i(w)m(asn't)f(enough)h(memory) -f(a)m(v)-5 b(ailable)572 4016 y Fj(BZ_STREAM_END)663 -4120 y Fl(if)29 b(the)i(logical)e(end)h(of)h(the)f(data)h(stream)g(w)m -(as)g(detected)g(and)f(all)663 4224 y(output)g(in)f(has)h(b)s(een)g -(consumed,)f(eg)j Fj(s->avail_out)44 b(>)k(0)572 4327 -y(BZ_OK)663 4431 y Fl(otherwise)150 4588 y(Allo)m(w)m(able)30 -b(next)g(actions:)572 4739 y Fj(BZ2_bzDecompress)663 -4843 y Fl(if)f Fj(BZ_OK)g Fl(w)m(as)i(returned)572 4946 -y Fj(BZ2_bzDecompressEnd)663 5050 y Fl(otherwise)p eop -%%Page: 19 20 -19 19 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(19)150 299 y Ff(3.3.6)63 -b Fe(BZ2_bzDecompressEnd)390 486 y Fj(int)47 b(BZ2_bzDecompressEnd)42 -b(\()48 b(bz_stream)d(*strm)i(\);)150 643 y Fl(Releases)31 -b(all)e(memory)h(asso)s(ciated)h(with)e(a)i(decompression)e(stream.)150 -799 y(P)m(ossible)g(return)h(v)-5 b(alues:)572 950 y -Fj(BZ_PARAM_ERROR)663 1054 y Fl(if)29 b Fj(strm)g Fl(is)h -Fj(NULL)f Fl(or)h Fj(strm->s)f Fl(is)g Fj(NULL)572 1158 -y(BZ_OK)663 1262 y Fl(otherwise)150 1419 y(Allo)m(w)m(able)h(next)g -(actions:)572 1570 y(None.)150 1857 y Fk(3.4)68 b(High-lev)l(el)47 -b(in)l(terface)150 2050 y Fl(This)35 b(in)m(terface)j(pro)m(vides)d -(functions)h(for)g(reading)g(and)h(writing)e Fj(bzip2)g -Fl(format)i(\014les.)59 b(First,)39 b(some)150 2159 y(general)30 -b(p)s(oin)m(ts.)225 2316 y Fi(\017)60 b Fl(All)35 b(of)h(the)g -(functions)e(tak)m(e)k(an)e Fj(int*)f Fl(\014rst)g(argumen)m(t,)j -Fj(bzerror)p Fl(.)56 b(After)36 b(eac)m(h)h(call,)g Fj(bzerror)330 -2426 y Fl(should)23 b(b)s(e)i(consulted)g(\014rst)g(to)h(determine)e -(the)i(outcome)h(of)e(the)h(call.)38 b(If)25 b Fj(bzerror)f -Fl(is)g Fj(BZ_OK)p Fl(,)i(the)330 2535 y(call)35 b(completed)g -(successfully)-8 b(,)36 b(and)f(only)g(then)g(should)f(the)h(return)g -(v)-5 b(alue)35 b(of)h(the)f(function)g(\(if)330 2645 -y(an)m(y\))30 b(b)s(e)f(consulted.)39 b(If)29 b Fj(bzerror)e -Fl(is)h Fj(BZ_IO_ERROR)p Fl(,)f(there)i(w)m(as)h(an)f(error)g -(reading/writing)e(the)330 2754 y(underlying)32 b(compressed)j(\014le,) -h(and)f(y)m(ou)h(should)d(then)i(consult)g Fj(errno)p -Fl(/)p Fj(perror)e Fl(to)j(determine)330 2864 y(the)i(cause)g(of)g(the) -g(di\016cult)m(y)-8 b(.)61 b Fj(bzerror)36 b Fl(ma)m(y)i(also)g(b)s(e)f -(set)h(to)g(v)-5 b(arious)37 b(other)h(v)-5 b(alues;)41 -b(precise)330 2974 y(details)29 b(are)i(giv)m(en)g(on)f(a)h(p)s -(er-function)d(basis)h(b)s(elo)m(w.)225 3111 y Fi(\017)60 -b Fl(If)40 b Fj(bzerror)f Fl(indicates)g(an)i(error)f(\(ie,)j(an)m -(ything)d(except)h Fj(BZ_OK)f Fl(and)g Fj(BZ_STREAM_END)p -Fl(\),)g(y)m(ou)330 3220 y(should)56 b(immediately)h(call)g -Fj(BZ2_bzReadClose)e Fl(\(or)j Fj(BZ2_bzWriteClose)p -Fl(,)j(dep)s(ending)56 b(on)330 3330 y(whether)50 b(y)m(ou)g(are)h -(attempting)g(to)g(read)f(or)g(to)i(write\))d(to)j(free)e(up)f(all)h -(resources)g(asso)s(ci-)330 3439 y(ated)33 b(with)e(the)i(stream.)47 -b(Once)32 b(an)h(error)f(has)g(b)s(een)g(indicated,)f(b)s(eha)m(viour)g -(of)i(all)e(calls)h(except)330 3549 y Fj(BZ2_bzReadClose)46 -b Fl(\()p Fj(BZ2_bzWriteClose)p Fl(\))h(is)j(unde\014ned.)99 -b(The)50 b(implication)e(is)i(that)h(\(1\))330 3659 y -Fj(bzerror)44 b Fl(should)g(b)s(e)h(c)m(hec)m(k)m(ed)j(after)e(eac)m(h) -h(call,)i(and)c(\(2\))i(if)e Fj(bzerror)f Fl(indicates)g(an)i(error,) -330 3768 y Fj(BZ2_bzReadClose)26 b Fl(\()p Fj(BZ2_bzWriteClose)p -Fl(\))h(should)h(then)i(b)s(e)g(called)g(to)h(clean)f(up.)225 -3905 y Fi(\017)60 b Fl(The)33 b Fj(FILE*)f Fl(argumen)m(ts)h(passed)g -(to)h Fj(BZ2_bzReadOpen)p Fl(/)p Fj(BZ2_bzWriteOp)o(en)27 -b Fl(should)32 b(b)s(e)g(set)i(to)330 4015 y(binary)23 -b(mo)s(de.)38 b(Most)26 b(Unix)d(systems)i(will)d(do)i(this)g(b)m(y)g -(default,)i(but)e(other)g(platforms,)h(including)330 -4124 y(Windo)m(ws)20 b(and)g(Mac,)k(will)19 b(not.)38 -b(If)20 b(y)m(ou)h(omit)g(this,)h(y)m(ou)f(ma)m(y)h(encoun)m(ter)f -(problems)e(when)h(mo)m(ving)330 4234 y(co)s(de)31 b(to)g(new)f -(platforms.)225 4371 y Fi(\017)60 b Fl(Memory)23 b(allo)s(cation)f -(requests)h(are)g(handled)e(b)m(y)i Fj(malloc)p Fl(/)p -Fj(free)p Fl(.)36 b(A)m(t)23 b(presen)m(t)g(there)g(is)f(no)h(facilit)m -(y)330 4481 y(for)40 b(user-de\014ned)e(memory)i(allo)s(cators)g(in)f -(the)h(\014le)g(I/O)g(functions)e(\(could)i(easily)f(b)s(e)g(added,)330 -4590 y(though\).)150 4842 y Ff(3.4.1)63 b Fe(BZ2_bzReadOpen)533 -5029 y Fj(typedef)46 b(void)h(BZFILE;)533 5236 y(BZFILE)f -(*BZ2_bzReadOpen)e(\()j(int)g(*bzerror,)f(FILE)g(*f,)1726 -5340 y(int)h(small,)f(int)h(verbosity,)p eop -%%Page: 20 21 -20 20 bop 150 -116 a Fl(Chapter)30 b(3:)h(Programming)e(with)g -Fj(libbzip2)1891 b Fl(20)1726 299 y Fj(void)47 b(*unused,)f(int)g -(nUnused)g(\);)150 456 y Fl(Prepare)29 b(to)g(read)g(compressed)f(data) -i(from)e(\014le)g(handle)f Fj(f)p Fl(.)40 b Fj(f)29 b -Fl(should)d(refer)j(to)h(a)f(\014le)f(whic)m(h)f(has)i(b)s(een)150 -565 y(op)s(ened)h(for)h(reading,)f(and)h(for)f(whic)m(h)g(the)h(error)g -(indicator)e(\()p Fj(ferror\(f\))p Fl(\)is)f(not)k(set.)42 -b(If)31 b Fj(small)e Fl(is)h(1,)150 675 y(the)h(library)d(will)f(try)j -(to)i(decompress)e(using)f(less)g(memory)-8 b(,)31 b(at)g(the)g(exp)s -(ense)f(of)g(sp)s(eed.)150 832 y(F)-8 b(or)39 b(reasons)f(explained)f -(b)s(elo)m(w,)j Fj(BZ2_bzRead)35 b Fl(will)h(decompress)i(the)g -Fj(nUnused)e Fl(b)m(ytes)j(starting)f(at)150 941 y Fj(unused)p -Fl(,)k(b)s(efore)e(starting)h(to)g(read)g(from)f(the)h(\014le)f -Fj(f)p Fl(.)71 b(A)m(t)42 b(most)f Fj(BZ_MAX_UNUSED)c -Fl(b)m(ytes)k(ma)m(y)h(b)s(e)150 1051 y(supplied)32 b(lik)m(e)k(this.) -55 b(If)36 b(this)e(facilit)m(y)h(is)g(not)h(required,)g(y)m(ou)g -(should)e(pass)h Fj(NULL)g Fl(and)g Fj(0)g Fl(for)h Fj(unused)150 -1160 y Fl(and)30 b(n)p Fj(Unused)e Fl(resp)s(ectiv)m(ely)-8 -b(.)150 1317 y(F)g(or)31 b(the)g(meaning)e(of)i(parameters)g -Fj(small)e Fl(and)g Fj(verbosity)p Fl(,)f(see)j Fj -(BZ2_bzDecompressInit)p Fl(.)150 1474 y(The)k(amoun)m(t)g(of)g(memory)g -(needed)g(to)g(decompress)g(a)h(\014le)e(cannot)h(b)s(e)g(determined)e -(un)m(til)h(the)h(\014le's)150 1584 y(header)22 b(has)f(b)s(een)g -(read.)38 b(So)22 b(it)f(is)g(p)s(ossible)e(that)k Fj(BZ2_bzReadOpen)17 -b Fl(returns)k Fj(BZ_OK)f Fl(but)h(a)i(subsequen)m(t)150 -1693 y(call)30 b(of)g Fj(BZ2_bzRead)e Fl(will)f(return)j -Fj(BZ_MEM_ERROR)p Fl(.)150 1850 y(P)m(ossible)f(assignmen)m(ts)h(to)h -Fj(bzerror)p Fl(:)572 2001 y Fj(BZ_CONFIG_ERROR)663 2105 -y Fl(if)e(the)i(library)d(has)i(b)s(een)f(mis-compiled)572 -2209 y Fj(BZ_PARAM_ERROR)663 2313 y Fl(if)g Fj(f)h Fl(is)g -Fj(NULL)663 2416 y Fl(or)g Fj(small)f Fl(is)g(neither)h -Fj(0)g Fl(nor)g Fj(1)663 2520 y Fl(or)g Fj(\(unused)46 -b(==)h(NULL)g(&&)g(nUnused)f(!=)h(0\))663 2624 y Fl(or)30 -b Fj(\(unused)46 b(!=)h(NULL)g(&&)g(!\(0)g(<=)g(nUnused)f(<=)h -(BZ_MAX_UNUSED\)\))572 2728 y(BZ_IO_ERROR)663 2831 y -Fl(if)29 b Fj(ferror\(f\))f Fl(is)h(nonzero)572 2935 -y Fj(BZ_MEM_ERROR)663 3039 y Fl(if)g(insu\016cien)m(t)g(memory)h(is)f -(a)m(v)-5 b(ailable)572 3143 y Fj(BZ_OK)663 3247 y Fl(otherwise.)150 -3403 y(P)m(ossible)29 b(return)h(v)-5 b(alues:)572 3554 -y(P)m(oin)m(ter)31 b(to)g(an)f(abstract)h Fj(BZFILE)663 -3658 y Fl(if)e Fj(bzerror)f Fl(is)i Fj(BZ_OK)572 3762 -y(NULL)663 3866 y Fl(otherwise)150 4023 y(Allo)m(w)m(able)g(next)g -(actions:)572 4174 y Fj(BZ2_bzRead)663 4277 y Fl(if)f -Fj(bzerror)f Fl(is)i Fj(BZ_OK)572 4381 y(BZ2_bzClose)663 -4485 y Fl(otherwise)150 4887 y Ff(3.4.2)63 b Fe(BZ2_bzRead)533 -5074 y Fj(int)47 b(BZ2_bzRead)e(\()j(int)e(*bzerror,)g(BZFILE)g(*b,)h -(void)f(*buf,)h(int)g(len)g(\);)150 5230 y Fl(Reads)35 -b(up)f(to)h Fj(len)f Fl(\(uncompressed\))h(b)m(ytes)g(from)f(the)h -(compressed)g(\014le)f Fj(b)g Fl(in)m(to)h(the)g(bu\013er)f -Fj(buf)p Fl(.)53 b(If)150 5340 y(the)30 b(read)f(w)m(as)h(successful,)f -Fj(bzerror)e Fl(is)i(set)h(to)g Fj(BZ_OK)e Fl(and)h(the)h(n)m(um)m(b)s -(er)e(of)i(b)m(ytes)g(read)f(is)g(returned.)p eop -%%Page: 21 22 -21 21 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(21)150 299 y(If)33 b(the)g(logical)g -(end-of-stream)h(w)m(as)g(detected,)i Fj(bzerror)31 b -Fl(will)g(b)s(e)h(set)i(to)g Fj(BZ_STREAM_END)p Fl(,)d(and)i(the)150 -408 y(n)m(um)m(b)s(er)c(of)i(b)m(ytes)f(read)h(is)e(returned.)40 -b(All)29 b(other)h Fj(bzerror)f Fl(v)-5 b(alues)29 b(denote)i(an)g -(error.)150 565 y Fj(BZ2_bzRead)37 b Fl(will)f(supply)h -Fj(len)i Fl(b)m(ytes,)j(unless)c(the)i(logical)f(stream)h(end)e(is)h -(detected)i(or)e(an)g(error)150 675 y(o)s(ccurs.)75 b(Because)43 -b(of)f(this,)i(it)d(is)g(p)s(ossible)e(to)k(detect)g(the)f(stream)g -(end)f(b)m(y)h(observing)f(when)g(the)150 784 y(n)m(um)m(b)s(er)29 -b(of)h(b)m(ytes)g(returned)f(is)g(less)g(than)h(the)g(n)m(um)m(b)s(er)f -(requested.)40 b(Nev)m(ertheless,)31 b(this)e(is)g(regarded)150 -894 y(as)38 b(inadvisable;)g(y)m(ou)g(should)d(instead)i(c)m(hec)m(k)i -Fj(bzerror)d Fl(after)i(ev)m(ery)g(call)e(and)h(w)m(atc)m(h)i(out)f -(for)f Fj(BZ_)150 1004 y(STREAM_END)p Fl(.)150 1160 y(In)m(ternally)-8 -b(,)47 b Fj(BZ2_bzRead)41 b Fl(copies)j(data)g(from)g(the)g(compressed) -g(\014le)f(in)f(c)m(h)m(unks)i(of)g(size)g Fj(BZ_MAX_)150 -1270 y(UNUSED)31 b Fl(b)m(ytes)i(b)s(efore)f(decompressing)f(it.)47 -b(If)32 b(the)h(\014le)e(con)m(tains)i(more)g(b)m(ytes)g(than)f -(strictly)f(needed)150 1380 y(to)48 b(reac)m(h)f(the)g(logical)f -(end-of-stream,)52 b Fj(BZ2_bzRead)44 b Fl(will)g(almost)j(certainly)f -(read)h(some)g(of)g(the)150 1489 y(trailing)c(data)j(b)s(efore)e -(signalling)f Fj(BZ_SEQUENCE_END)p Fl(.)80 b(T)-8 b(o)46 -b(collect)f(the)g(read)g(but)g(un)m(used)e(data)150 1599 -y(once)29 b Fj(BZ_SEQUENCE_END)24 b Fl(has)k(app)s(eared,)g(call)f -Fj(BZ2_bzReadGetUnused)c Fl(immediately)j(b)s(efore)i -Fj(BZ2_)150 1708 y(bzReadClose)p Fl(.)150 1865 y(P)m(ossible)h -(assignmen)m(ts)h(to)h Fj(bzerror)p Fl(:)572 2016 y Fj(BZ_PARAM_ERROR) -663 2120 y Fl(if)e Fj(b)h Fl(is)g Fj(NULL)f Fl(or)h Fj(buf)g -Fl(is)f Fj(NULL)g Fl(or)i Fj(len)46 b(<)i(0)572 2224 -y(BZ_SEQUENCE_ERROR)663 2328 y Fl(if)29 b Fj(b)h Fl(w)m(as)h(op)s(ened) -e(with)h Fj(BZ2_bzWriteOpen)572 2431 y(BZ_IO_ERROR)663 -2535 y Fl(if)f(there)i(is)e(an)h(error)g(reading)g(from)g(the)g -(compressed)g(\014le)572 2639 y Fj(BZ_UNEXPECTED_EOF)663 -2743 y Fl(if)f(the)i(compressed)f(\014le)f(ended)h(b)s(efore)g(the)g -(logical)g(end-of-stream)h(w)m(as)g(detected)572 2847 -y Fj(BZ_DATA_ERROR)663 2950 y Fl(if)e(a)i(data)g(in)m(tegrit)m(y)f -(error)g(w)m(as)h(detected)h(in)d(the)h(compressed)g(stream)572 -3054 y Fj(BZ_DATA_ERROR_MAGIC)663 3158 y Fl(if)f(the)i(stream)f(do)s -(es)g(not)h(b)s(egin)e(with)g(the)i(requisite)e(header)h(b)m(ytes)h -(\(ie,)f(is)g(not)663 3262 y(a)g Fj(bzip2)f Fl(data)i(\014le\).)61 -b(This)28 b(is)i(really)f(a)i(sp)s(ecial)e(case)i(of)g -Fj(BZ_DATA_ERROR)p Fl(.)572 3365 y Fj(BZ_MEM_ERROR)663 -3469 y Fl(if)e(insu\016cien)m(t)g(memory)h(w)m(as)h(a)m(v)-5 -b(ailable)572 3573 y Fj(BZ_STREAM_END)663 3677 y Fl(if)29 -b(the)i(logical)e(end)h(of)h(stream)f(w)m(as)h(detected.)572 -3781 y Fj(BZ_OK)663 3884 y Fl(otherwise.)150 4041 y(P)m(ossible)e -(return)h(v)-5 b(alues:)572 4192 y(n)m(um)m(b)s(er)29 -b(of)h(b)m(ytes)h(read)663 4296 y(if)e Fj(bzerror)f Fl(is)i -Fj(BZ_OK)f Fl(or)h Fj(BZ_STREAM_END)572 4400 y Fl(unde\014ned)663 -4503 y(otherwise)150 4660 y(Allo)m(w)m(able)g(next)g(actions:)572 -4811 y(collect)h(data)g(from)f Fj(buf)p Fl(,)f(then)h -Fj(BZ2_bzRead)e Fl(or)i Fj(BZ2_bzReadClose)663 4915 y -Fl(if)f Fj(bzerror)f Fl(is)i Fj(BZ_OK)572 5019 y Fl(collect)h(data)g -(from)f Fj(buf)p Fl(,)f(then)h Fj(BZ2_bzReadClose)d Fl(or)j -Fj(BZ2_bzReadGetUnused)663 5123 y Fl(if)f Fj(bzerror)f -Fl(is)i Fj(BZ_SEQUENCE_END)572 5226 y(BZ2_bzReadClose)663 -5330 y Fl(otherwise)p eop -%%Page: 22 23 -22 22 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(22)150 299 y Ff(3.4.3)63 -b Fe(BZ2_bzReadGetUnused)533 486 y Fj(void)47 b(BZ2_bzReadGetUnused)42 -b(\()48 b(int*)e(bzerror,)g(BZFILE)g(*b,)1822 589 y(void**)g(unused,)g -(int*)g(nUnused)g(\);)150 746 y Fl(Returns)36 b(data)i(whic)m(h)d(w)m -(as)j(read)f(from)f(the)h(compressed)g(\014le)f(but)g(w)m(as)h(not)h -(needed)e(to)i(get)g(to)g(the)150 856 y(logical)k(end-of-stream.)78 -b Fj(*unused)41 b Fl(is)h(set)h(to)g(the)g(address)f(of)g(the)h(data,)k -(and)42 b Fj(*nUnused)e Fl(to)k(the)150 965 y(n)m(um)m(b)s(er)29 -b(of)i(b)m(ytes.)41 b Fj(*nUnused)28 b Fl(will)g(b)s(e)h(set)i(to)g(a)g -(v)-5 b(alue)30 b(b)s(et)m(w)m(een)h Fj(0)f Fl(and)g -Fj(BZ_MAX_UNUSED)d Fl(inclusiv)m(e.)150 1122 y(This)d(function)h(ma)m -(y)h(only)g(b)s(e)f(called)g(once)i Fj(BZ2_bzRead)c Fl(has)j(signalled) -e Fj(BZ_STREAM_END)e Fl(but)j(b)s(efore)150 1232 y Fj(BZ2_bzReadClose)p -Fl(.)150 1389 y(P)m(ossible)k(assignmen)m(ts)h(to)h Fj(bzerror)p -Fl(:)572 1540 y Fj(BZ_PARAM_ERROR)663 1644 y Fl(if)e -Fj(b)h Fl(is)g Fj(NULL)663 1747 y Fl(or)g Fj(unused)f -Fl(is)g Fj(NULL)g Fl(or)i Fj(nUnused)d Fl(is)i Fj(NULL)572 -1851 y(BZ_SEQUENCE_ERROR)663 1955 y Fl(if)f Fj(BZ_STREAM_END)e -Fl(has)j(not)h(b)s(een)e(signalled)663 2059 y(or)h(if)f -Fj(b)h Fl(w)m(as)h(op)s(ened)f(with)f Fj(BZ2_bzWriteOpen)542 -2162 y(BZ_OK)663 2266 y Fl(otherwise)150 2423 y(Allo)m(w)m(able)h(next) -g(actions:)572 2574 y Fj(BZ2_bzReadClose)150 2882 y Ff(3.4.4)63 -b Fe(BZ2_bzReadClose)533 3068 y Fj(void)47 b(BZ2_bzReadClose)c(\()48 -b(int)f(*bzerror,)e(BZFILE)h(*b)h(\);)150 3225 y Fl(Releases)36 -b(all)e(memory)h(p)s(ertaining)e(to)i(the)h(compressed)f(\014le)f -Fj(b)p Fl(.)54 b Fj(BZ2_bzReadClose)31 b Fl(do)s(es)k(not)h(call)150 -3335 y Fj(fclose)c Fl(on)h(the)h(underlying)d(\014le)h(handle,)h(so)h -(y)m(ou)g(should)e(do)h(that)h(y)m(ourself)f(if)g(appropriate.)49 -b Fj(BZ2_)150 3445 y(bzReadClose)27 b Fl(should)i(b)s(e)g(called)h(to)h -(clean)f(up)g(after)h(all)e(error)h(situations.)150 3601 -y(P)m(ossible)f(assignmen)m(ts)h(to)h Fj(bzerror)p Fl(:)572 -3752 y Fj(BZ_SEQUENCE_ERROR)663 3856 y Fl(if)e Fj(b)h -Fl(w)m(as)h(op)s(ened)e(with)h Fj(BZ2_bzOpenWrite)572 -3960 y(BZ_OK)663 4064 y Fl(otherwise)150 4221 y(Allo)m(w)m(able)g(next) -g(actions:)572 4372 y(none)150 4679 y Ff(3.4.5)63 b Fe(BZ2_bzWriteOpen) -533 4866 y Fj(BZFILE)46 b(*BZ2_bzWriteOpen)e(\()j(int)g(*bzerror,)e -(FILE)i(*f,)1774 4970 y(int)g(blockSize100k,)d(int)j(verbosity,)1774 -5074 y(int)g(workFactor)e(\);)150 5230 y Fl(Prepare)33 -b(to)g(write)f(compressed)h(data)h(to)f(\014le)f(handle)g -Fj(f)p Fl(.)47 b Fj(f)33 b Fl(should)e(refer)i(to)g(a)g(\014le)f(whic)m -(h)g(has)h(b)s(een)150 5340 y(op)s(ened)d(for)g(writing,)e(and)i(for)g -(whic)m(h)f(the)i(error)f(indicator)f(\()p Fj(ferror\(f\))p -Fl(\)is)f(not)i(set.)p eop -%%Page: 23 24 -23 23 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(23)150 299 y(F)-8 b(or)31 -b(the)g(meaning)e(of)i(parameters)g Fj(blockSize100k)p -Fl(,)c Fj(verbosity)g Fl(and)j Fj(workFactor)p Fl(,)e(see)150 -408 y Fj(BZ2_bzCompressInit)p Fl(.)150 565 y(All)d(required)f(memory)i -(is)f(allo)s(cated)i(at)g(this)e(stage,)j(so)f(if)e(the)h(call)g -(completes)g(successfully)-8 b(,)26 b Fj(BZ_MEM_)150 -675 y(ERROR)j Fl(cannot)i(b)s(e)f(signalled)e(b)m(y)i(a)h(subsequen)m -(t)f(call)f(to)i Fj(BZ2_bzWrite)p Fl(.)150 832 y(P)m(ossible)e -(assignmen)m(ts)h(to)h Fj(bzerror)p Fl(:)572 983 y Fj(BZ_CONFIG_ERROR) -663 1087 y Fl(if)e(the)i(library)d(has)i(b)s(een)f(mis-compiled)572 -1190 y Fj(BZ_PARAM_ERROR)663 1294 y Fl(if)g Fj(f)h Fl(is)g -Fj(NULL)663 1398 y Fl(or)g Fj(blockSize100k)44 b(<)k(1)30 -b Fl(or)g Fj(blockSize100k)44 b(>)k(9)572 1502 y(BZ_IO_ERROR)663 -1605 y Fl(if)29 b Fj(ferror\(f\))f Fl(is)h(nonzero)572 -1709 y Fj(BZ_MEM_ERROR)663 1813 y Fl(if)g(insu\016cien)m(t)g(memory)h -(is)f(a)m(v)-5 b(ailable)572 1917 y Fj(BZ_OK)663 2021 -y Fl(otherwise)150 2177 y(P)m(ossible)29 b(return)h(v)-5 -b(alues:)572 2328 y(P)m(oin)m(ter)31 b(to)g(an)f(abstract)h -Fj(BZFILE)663 2432 y Fl(if)e Fj(bzerror)f Fl(is)i Fj(BZ_OK)572 -2536 y(NULL)663 2640 y Fl(otherwise)150 2797 y(Allo)m(w)m(able)g(next)g -(actions:)572 2948 y Fj(BZ2_bzWrite)663 3051 y Fl(if)f -Fj(bzerror)f Fl(is)i Fj(BZ_OK)604 3155 y Fl(\(y)m(ou)25 -b(could)e(go)h(directly)f(to)h Fj(BZ2_bzWriteClose)p -Fl(,)c(but)j(this)g(w)m(ould)g(b)s(e)g(prett)m(y)h(p)s(oin)m(tless\)) -572 3259 y Fj(BZ2_bzWriteClose)663 3363 y Fl(otherwise)150 -3639 y Ff(3.4.6)63 b Fe(BZ2_bzWrite)533 3826 y Fj(void)47 -b(BZ2_bzWrite)e(\()i(int)g(*bzerror,)e(BZFILE)h(*b,)h(void)g(*buf,)f -(int)h(len)g(\);)150 3983 y Fl(Absorbs)26 b Fj(len)g -Fl(b)m(ytes)i(from)e(the)i(bu\013er)e Fj(buf)p Fl(,)h(ev)m(en)m(tually) -g(to)h(b)s(e)e(compressed)h(and)f(written)g(to)i(the)g(\014le.)150 -4140 y(P)m(ossible)h(assignmen)m(ts)h(to)h Fj(bzerror)p -Fl(:)572 4291 y Fj(BZ_PARAM_ERROR)663 4395 y Fl(if)e -Fj(b)h Fl(is)g Fj(NULL)f Fl(or)h Fj(buf)g Fl(is)f Fj(NULL)g -Fl(or)i Fj(len)46 b(<)i(0)572 4498 y(BZ_SEQUENCE_ERROR)663 -4602 y Fl(if)29 b(b)h(w)m(as)h(op)s(ened)e(with)g Fj(BZ2_bzReadOpen)572 -4706 y(BZ_IO_ERROR)663 4810 y Fl(if)g(there)i(is)e(an)h(error)g -(writing)f(the)h(compressed)g(\014le.)572 4914 y Fj(BZ_OK)663 -5017 y Fl(otherwise)150 5294 y Ff(3.4.7)63 b Fe(BZ2_bzWriteClose)p -eop -%%Page: 24 25 -24 24 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(24)533 299 y Fj(void)47 -b(BZ2_bzWriteClose)c(\()48 b(int)f(*bzerror,)e(BZFILE*)h(f,)1679 -403 y(int)h(abandon,)1679 506 y(unsigned)e(int*)i(nbytes_in,)1679 -610 y(unsigned)e(int*)i(nbytes_out)e(\);)533 818 y(void)i -(BZ2_bzWriteClose64)c(\()k(int)g(*bzerror,)e(BZFILE*)h(f,)1774 -922 y(int)h(abandon,)1774 1025 y(unsigned)f(int*)g(nbytes_in_lo32,)1774 -1129 y(unsigned)g(int*)g(nbytes_in_hi32,)1774 1233 y(unsigned)g(int*)g -(nbytes_out_lo32,)1774 1337 y(unsigned)g(int*)g(nbytes_out_hi32)e(\);) -150 1493 y Fl(Compresses)39 b(and)g(\015ushes)g(to)h(the)g(compressed)g -(\014le)f(all)f(data)j(so)f(far)g(supplied)c(b)m(y)k -Fj(BZ2_bzWrite)p Fl(.)150 1603 y(The)27 b(logical)g(end-of-stream)h -(mark)m(ers)g(are)g(also)f(written,)h(so)f(subsequen)m(t)g(calls)g(to)h -Fj(BZ2_bzWrite)d Fl(are)150 1713 y(illegal.)50 b(All)33 -b(memory)h(asso)s(ciated)g(with)f(the)i(compressed)e(\014le)h -Fj(b)f Fl(is)g(released.)52 b Fj(fflush)33 b Fl(is)g(called)g(on)150 -1822 y(the)e(compressed)f(\014le,)f(but)h(it)g(is)f(not)i -Fj(fclose)p Fl('d.)150 1979 y(If)i Fj(BZ2_bzWriteClose)c -Fl(is)k(called)f(to)j(clean)e(up)f(after)i(an)g(error,)g(the)g(only)e -(action)i(is)f(to)h(release)g(the)150 2089 y(memory)-8 -b(.)42 b(The)30 b(library)e(records)j(the)g(error)f(co)s(des)h(issued)e -(b)m(y)h(previous)f(calls,)i(so)f(this)g(situation)g(will)150 -2198 y(b)s(e)c(detected)h(automatically)-8 b(.)40 b(There)26 -b(is)g(no)g(attempt)h(to)h(complete)e(the)h(compression)f(op)s -(eration,)g(nor)150 2308 y(to)32 b Fj(fflush)d Fl(the)i(compressed)g -(\014le.)42 b(Y)-8 b(ou)32 b(can)f(force)h(this)e(b)s(eha)m(viour)g(to) -h(happ)s(en)f(ev)m(en)i(in)d(the)j(case)g(of)150 2417 -y(no)e(error,)g(b)m(y)h(passing)e(a)i(nonzero)f(v)-5 -b(alue)30 b(to)h Fj(abandon)p Fl(.)150 2574 y(If)j Fj(nbytes_in)d -Fl(is)j(non-n)m(ull,)f Fj(*nbytes_in)e Fl(will)h(b)s(e)h(set)i(to)g(b)s -(e)f(the)g(total)h(v)m(olume)f(of)g(uncompressed)150 -2684 y(data)k(handled.)60 b(Similarly)-8 b(,)35 b Fj(nbytes_out)g -Fl(will)g(b)s(e)h(set)i(to)g(the)g(total)g(v)m(olume)f(of)g(compressed) -g(data)150 2793 y(written.)h(F)-8 b(or)27 b(compatibilit)m(y)d(with)h -(older)g(v)m(ersions)h(of)g(the)g(library)-8 b(,)25 b -Fj(BZ2_bzWriteClose)d Fl(only)j(yields)150 2903 y(the)40 -b(lo)m(w)m(er)g(32)h(bits)d(of)i(these)h(coun)m(ts.)69 -b(Use)40 b Fj(BZ2_bzWriteClose64)35 b Fl(if)k(y)m(ou)h(w)m(an)m(t)h -(the)f(full)d(64)k(bit)150 3013 y(coun)m(ts.)g(These)30 -b(t)m(w)m(o)i(functions)d(are)i(otherwise)f(absolutely)f(iden)m(tical.) -150 3169 y(P)m(ossible)g(assignmen)m(ts)h(to)h Fj(bzerror)p -Fl(:)572 3320 y Fj(BZ_SEQUENCE_ERROR)663 3424 y Fl(if)e -Fj(b)h Fl(w)m(as)h(op)s(ened)e(with)h Fj(BZ2_bzReadOpen)572 -3528 y(BZ_IO_ERROR)663 3632 y Fl(if)f(there)i(is)e(an)h(error)g -(writing)f(the)h(compressed)g(\014le)572 3736 y Fj(BZ_OK)663 -3839 y Fl(otherwise)150 4161 y Ff(3.4.8)63 b(Handling)41 -b(em)m(b)s(edded)g(compressed)h(data)e(streams)150 4354 -y Fl(The)i(high-lev)m(el)g(library)f(facilitates)h(use)h(of)g -Fj(bzip2)e Fl(data)j(streams)f(whic)m(h)f(form)g(some)i(part)e(of)i(a) -150 4463 y(surrounding,)27 b(larger)j(data)h(stream.)225 -4620 y Fi(\017)60 b Fl(F)-8 b(or)22 b(writing,)f(the)g(library)e(tak)m -(es)k(an)e(op)s(en)f(\014le)g(handle,)i(writes)e(compressed)h(data)h -(to)g(it,)g Fj(fflush)p Fl(es)330 4730 y(it)34 b(but)f(do)s(es)h(not)h -Fj(fclose)d Fl(it.)52 b(The)34 b(calling)f(application)g(can)h(write)g -(its)f(o)m(wn)i(data)g(b)s(efore)f(and)330 4839 y(after)d(the)f -(compressed)h(data)g(stream,)g(using)d(that)j(same)g(\014le)f(handle.) -225 5011 y Fi(\017)60 b Fl(Reading)34 b(is)f(more)i(complex,)g(and)f -(the)h(facilities)d(are)j(not)g(as)g(general)f(as)h(they)f(could)g(b)s -(e)g(since)330 5121 y(generalit)m(y)e(is)f(hard)f(to)j(reconcile)e -(with)f(e\016ciency)-8 b(.)46 b Fj(BZ2_bzRead)29 b Fl(reads)i(from)g -(the)h(compressed)330 5230 y(\014le)39 b(in)g(blo)s(c)m(ks)g(of)h(size) -g Fj(BZ_MAX_UNUSED)c Fl(b)m(ytes,)44 b(and)39 b(in)g(doing)g(so)h -(probably)e(will)f(o)m(v)m(ersho)s(ot)330 5340 y(the)i(logical)g(end)f -(of)h(compressed)f(stream.)67 b(T)-8 b(o)40 b(reco)m(v)m(er)g(this)e -(data)i(once)f(decompression)f(has)p eop -%%Page: 25 26 -25 25 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(25)330 299 y(ended,)28 -b(call)g Fj(BZ2_bzReadGetUnused)23 b Fl(after)29 b(the)g(last)f(call)g -(of)g Fj(BZ2_bzRead)e Fl(\(the)j(one)g(returning)330 -408 y Fj(BZ_STREAM_END)p Fl(\))e(but)j(b)s(efore)g(calling)f -Fj(BZ2_bzReadClose)p Fl(.)150 596 y(This)51 b(mec)m(hanism)g(mak)m(es)j -(it)e(easy)h(to)g(decompress)f(m)m(ultiple)e Fj(bzip2)i -Fl(streams)g(placed)g(end-to-)150 706 y(end.)90 b(As)48 -b(the)f(end)f(of)i(one)f(stream,)52 b(when)46 b Fj(BZ2_bzRead)f -Fl(returns)h Fj(BZ_STREAM_END)p Fl(,)i(call)e Fj(BZ2_)150 -816 y(bzReadGetUnused)36 b Fl(to)41 b(collect)g(the)g(un)m(used)e(data) -i(\(cop)m(y)g(it)f(in)m(to)g(y)m(our)h(o)m(wn)f(bu\013er)f -(somewhere\).)150 925 y(That)25 b(data)g(forms)f(the)h(start)h(of)e -(the)h(next)g(compressed)g(stream.)39 b(T)-8 b(o)25 b(start)h -(uncompressing)c(that)k(next)150 1035 y(stream,)40 b(call)d -Fj(BZ2_bzReadOpen)d Fl(again,)40 b(feeding)d(in)g(the)h(un)m(used)e -(data)j(via)e(the)h Fj(unused)p Fl(/)p Fj(nUnused)150 -1144 y Fl(parameters.)54 b(Keep)34 b(doing)g(this)f(un)m(til)g -Fj(BZ_STREAM_END)e Fl(return)j(coincides)f(with)h(the)g(ph)m(ysical)g -(end)150 1254 y(of)d(\014le)e(\()p Fj(feof\(f\))p Fl(\).)39 -b(In)30 b(this)f(situation)h Fj(BZ2_bzReadGetUnused)25 -b Fl(will)i(of)k(course)g(return)e(no)h(data.)150 1411 -y(This)c(should)f(giv)m(e)j(some)g(feel)f(for)g(ho)m(w)h(the)g -(high-lev)m(el)e(in)m(terface)i(can)f(b)s(e)g(used.)39 -b(If)27 b(y)m(ou)h(require)e(extra)150 1520 y(\015exibilit)m(y)-8 -b(,)28 b(y)m(ou'll)i(ha)m(v)m(e)h(to)g(bite)f(the)h(bullet)d(and)i(get) -i(to)f(grips)e(with)g(the)h(lo)m(w-lev)m(el)h(in)m(terface.)150 -1779 y Ff(3.4.9)63 b(Standard)40 b(\014le-reading/writing)j(co)s(de)150 -1972 y Fl(Here's)31 b(ho)m(w)f(y)m(ou'd)h(write)e(data)j(to)f(a)f -(compressed)g(\014le:)390 2330 y Fj(FILE*)142 b(f;)390 -2434 y(BZFILE*)46 b(b;)390 2538 y(int)238 b(nBuf;)390 -2642 y(char)190 b(buf[)46 b(/*)i(whatever)d(size)i(you)g(like)f(*/)i -(];)390 2746 y(int)238 b(bzerror;)390 2849 y(int)g(nWritten;)390 -3057 y(f)47 b(=)h(fopen)e(\()i("myfile.bz2",)c("w")j(\);)390 -3161 y(if)g(\(!f\))g({)533 3264 y(/*)g(handle)f(error)h(*/)390 -3368 y(})390 3472 y(b)g(=)h(BZ2_bzWriteOpen)c(\()j(&bzerror,)e(f,)i(9)h -(\);)390 3576 y(if)f(\(bzerror)f(!=)h(BZ_OK\))f({)533 -3680 y(BZ2_bzWriteClose)e(\()j(b)g(\);)533 3783 y(/*)g(handle)f(error)h -(*/)390 3887 y(})390 4095 y(while)f(\()i(/*)f(condition)e(*/)i(\))h({) -533 4198 y(/*)f(get)g(data)g(to)g(write)f(into)h(buf,)g(and)g(set)g -(nBuf)f(appropriately)e(*/)533 4302 y(nWritten)i(=)h(BZ2_bzWrite)e(\()i -(&bzerror,)f(b,)h(buf,)f(nBuf)h(\);)533 4406 y(if)g(\(bzerror)f(==)h -(BZ_IO_ERROR\))e({)676 4510 y(BZ2_bzWriteClose)f(\()j(&bzerror,)e(b)j -(\);)676 4614 y(/*)g(handle)e(error)g(*/)533 4717 y(})390 -4821 y(})390 5029 y(BZ2_bzWriteClose)d(\()48 b(&bzerror,)d(b)j(\);)390 -5132 y(if)f(\(bzerror)f(==)h(BZ_IO_ERROR\))d({)533 5236 -y(/*)j(handle)f(error)h(*/)390 5340 y(})p eop -%%Page: 26 27 -26 26 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(26)150 299 y(And)29 b(to)j(read)e(from)g -(a)h(compressed)f(\014le:)390 450 y Fj(FILE*)142 b(f;)390 -554 y(BZFILE*)46 b(b;)390 657 y(int)238 b(nBuf;)390 761 -y(char)190 b(buf[)46 b(/*)i(whatever)d(size)i(you)g(like)f(*/)i(];)390 -865 y(int)238 b(bzerror;)390 969 y(int)g(nWritten;)390 -1176 y(f)47 b(=)h(fopen)e(\()i("myfile.bz2",)c("r")j(\);)390 -1280 y(if)g(\(!f\))g({)533 1384 y(/*)g(handle)f(error)h(*/)390 -1488 y(})390 1591 y(b)g(=)h(BZ2_bzReadOpen)c(\()j(&bzerror,)f(f,)h(0,)g -(NULL,)f(0)i(\);)390 1695 y(if)f(\(bzerror)f(!=)h(BZ_OK\))f({)533 -1799 y(BZ2_bzReadClose)e(\()j(&bzerror,)f(b)h(\);)533 -1903 y(/*)g(handle)f(error)h(*/)390 2007 y(})390 2214 -y(bzerror)f(=)h(BZ_OK;)390 2318 y(while)f(\(bzerror)g(==)h(BZ_OK)f(&&)i -(/*)f(arbitrary)e(other)h(conditions)f(*/\))i({)533 2422 -y(nBuf)g(=)g(BZ2_bzRead)e(\()j(&bzerror,)d(b,)i(buf,)g(/*)g(size)g(of)g -(buf)g(*/)g(\);)533 2525 y(if)g(\(bzerror)f(==)h(BZ_OK\))f({)676 -2629 y(/*)i(do)f(something)e(with)i(buf[0)f(..)h(nBuf-1])f(*/)533 -2733 y(})390 2837 y(})390 2941 y(if)h(\(bzerror)f(!=)h(BZ_STREAM_END\)) -d({)533 3044 y(BZ2_bzReadClose)g(\()j(&bzerror,)f(b)h(\);)533 -3148 y(/*)g(handle)f(error)h(*/)390 3252 y(})g(else)g({)533 -3356 y(BZ2_bzReadClose)d(\()j(&bzerror)f(\);)390 3459 -y(})150 3753 y Fk(3.5)68 b(Utilit)l(y)47 b(functions)150 -4045 y Ff(3.5.1)63 b Fe(BZ2_bzBuffToBuffCompress)533 -4232 y Fj(int)47 b(BZ2_bzBuffToBuffCompress\()41 b(char*)428 -b(dest,)1965 4335 y(unsigned)46 b(int*)g(destLen,)1965 -4439 y(char*)428 b(source,)1965 4543 y(unsigned)46 b(int)94 -b(sourceLen,)1965 4647 y(int)524 b(blockSize100k,)1965 -4751 y(int)g(verbosity,)1965 4854 y(int)g(workFactor)45 -b(\);)150 5011 y Fl(A)m(ttempts)33 b(to)g(compress)f(the)g(data)h(in)e -Fj(source[0)d(..)i(sourceLen-1])e Fl(in)m(to)k(the)h(destination)e -(bu\013er,)150 5121 y Fj(dest[0)e(..)g(*destLen-1])p -Fl(.)37 b(If)26 b(the)g(destination)g(bu\013er)f(is)h(big)f(enough,)j -Fj(*destLen)c Fl(is)h(set)i(to)g(the)g(size)150 5230 -y(of)i(the)f(compressed)h(data,)g(and)f Fj(BZ_OK)f Fl(is)h(returned.)39 -b(If)28 b(the)h(compressed)f(data)h(w)m(on't)g(\014t,)g -Fj(*destLen)150 5340 y Fl(is)g(unc)m(hanged,)i(and)e -Fj(BZ_OUTBUFF_FULL)e Fl(is)i(returned.)p eop -%%Page: 27 28 -27 27 bop 150 -116 a Fl(Chapter)30 b(3:)h(Programming)e(with)g -Fj(libbzip2)1891 b Fl(27)150 299 y(Compression)22 b(in)g(this)h(manner) -g(is)g(a)h(one-shot)g(ev)m(en)m(t,)j(done)c(with)g(a)h(single)e(call)h -(to)i(this)d(function.)37 b(The)150 408 y(resulting)25 -b(compressed)i(data)i(is)d(a)i(complete)f Fj(bzip2)f -Fl(format)i(data)g(stream.)40 b(There)27 b(is)f(no)i(mec)m(hanism)150 -518 y(for)23 b(making)g(additional)e(calls)i(to)h(pro)m(vide)f(extra)h -(input)e(data.)39 b(If)23 b(y)m(ou)h(w)m(an)m(t)g(that)g(kind)e(of)h -(mec)m(hanism,)150 628 y(use)30 b(the)h(lo)m(w-lev)m(el)f(in)m -(terface.)150 784 y(F)-8 b(or)31 b(the)g(meaning)e(of)i(parameters)g -Fj(blockSize100k)p Fl(,)c Fj(verbosity)g Fl(and)j Fj(workFactor)p -Fl(,)150 894 y(see)h Fj(BZ2_bzCompressInit)p Fl(.)150 -1051 y(T)-8 b(o)27 b(guaran)m(tee)h(that)e(the)h(compressed)f(data)h -(will)d(\014t)i(in)f(its)g(bu\013er,)i(allo)s(cate)f(an)g(output)g -(bu\013er)g(of)g(size)150 1160 y(1\045)31 b(larger)f(than)g(the)g -(uncompressed)f(data,)j(plus)c(six)h(h)m(undred)g(extra)i(b)m(ytes.)150 -1317 y Fj(BZ2_bzBuffToBuffDecompre)o(ss)25 b Fl(will)k(not)j(write)e -(data)j(at)f(or)f(b)s(ey)m(ond)g Fj(dest[*destLen])p -Fl(,)d(ev)m(en)k(in)150 1427 y(case)f(of)g(bu\013er)e(o)m(v)m(er\015o)m -(w.)150 1584 y(P)m(ossible)g(return)h(v)-5 b(alues:)572 -1735 y Fj(BZ_CONFIG_ERROR)663 1839 y Fl(if)29 b(the)i(library)d(has)i -(b)s(een)f(mis-compiled)572 1942 y Fj(BZ_PARAM_ERROR)663 -2046 y Fl(if)g Fj(dest)g Fl(is)h Fj(NULL)f Fl(or)h Fj(destLen)f -Fl(is)g Fj(NULL)663 2150 y Fl(or)h Fj(blockSize100k)44 -b(<)k(1)30 b Fl(or)g Fj(blockSize100k)44 b(>)k(9)663 -2254 y Fl(or)30 b Fj(verbosity)45 b(<)j(0)30 b Fl(or)g -Fj(verbosity)45 b(>)j(4)663 2357 y Fl(or)30 b Fj(workFactor)45 -b(<)j(0)30 b Fl(or)g Fj(workFactor)45 b(>)i(250)572 2461 -y(BZ_MEM_ERROR)663 2565 y Fl(if)29 b(insu\016cien)m(t)g(memory)h(is)f -(a)m(v)-5 b(ailable)572 2669 y Fj(BZ_OUTBUFF_FULL)663 -2773 y Fl(if)29 b(the)i(size)f(of)g(the)h(compressed)f(data)h(exceeds)g -Fj(*destLen)572 2876 y(BZ_OK)663 2980 y Fl(otherwise)150 -3349 y Ff(3.5.2)63 b Fe(BZ2_bzBuffToBuffDecompress)533 -3536 y Fj(int)47 b(BZ2_bzBuffToBuffDecompres)o(s)42 b(\()47 -b(char*)428 b(dest,)2108 3640 y(unsigned)46 b(int*)g(destLen,)2108 -3744 y(char*)428 b(source,)2108 3848 y(unsigned)46 b(int)94 -b(sourceLen,)2108 3951 y(int)524 b(small,)2108 4055 y(int)g(verbosity) -46 b(\);)150 4212 y Fl(A)m(ttempts)24 b(to)g(decompress)f(the)g(data)g -(in)f Fj(source[0)28 b(..)i(sourceLen-1])20 b Fl(in)m(to)j(the)g -(destination)f(bu\013er,)150 4322 y Fj(dest[0)29 b(..)g(*destLen-1])p -Fl(.)37 b(If)26 b(the)g(destination)g(bu\013er)f(is)h(big)f(enough,)j -Fj(*destLen)c Fl(is)h(set)i(to)g(the)g(size)150 4431 -y(of)21 b(the)g(uncompressed)e(data,)24 b(and)c Fj(BZ_OK)f -Fl(is)h(returned.)36 b(If)20 b(the)h(compressed)g(data)g(w)m(on't)h -(\014t,)g Fj(*destLen)150 4541 y Fl(is)29 b(unc)m(hanged,)i(and)e -Fj(BZ_OUTBUFF_FULL)e Fl(is)i(returned.)150 4698 y Fj(source)g -Fl(is)g(assumed)h(to)h(hold)e(a)i(complete)f Fj(bzip2)f -Fl(format)i(data)g(stream.)150 4807 y Fj(BZ2_bzBuffToBuffDecompre)o(ss) -22 b Fl(tries)28 b(to)i(decompress)e(the)h(en)m(tiret)m(y)g(of)g(the)f -(stream)h(in)m(to)g(the)f(out-)150 4917 y(put)i(bu\013er.)150 -5074 y(F)-8 b(or)31 b(the)g(meaning)e(of)i(parameters)g -Fj(small)e Fl(and)g Fj(verbosity)p Fl(,)f(see)j Fj -(BZ2_bzDecompressInit)p Fl(.)150 5230 y(Because)j(the)f(compression)e -(ratio)i(of)g(the)g(compressed)f(data)h(cannot)g(b)s(e)f(kno)m(wn)g(in) -g(adv)-5 b(ance,)34 b(there)150 5340 y(is)d(no)h(easy)g(w)m(a)m(y)h(to) -f(guaran)m(tee)i(that)e(the)g(output)f(bu\013er)g(will)e(b)s(e)i(big)g -(enough.)45 b(Y)-8 b(ou)32 b(ma)m(y)h(of)f(course)p eop -%%Page: 28 29 -28 28 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(28)150 299 y(mak)m(e)36 -b(arrangemen)m(ts)f(in)e(y)m(our)i(co)s(de)g(to)g(record)g(the)g(size)f -(of)h(the)g(uncompressed)f(data,)i(but)e(suc)m(h)h(a)150 -408 y(mec)m(hanism)30 b(is)f(b)s(ey)m(ond)h(the)g(scop)s(e)h(of)f(this) -g(library)-8 b(.)150 565 y Fj(BZ2_bzBuffToBuffDecompre)o(ss)25 -b Fl(will)k(not)j(write)e(data)j(at)f(or)f(b)s(ey)m(ond)g -Fj(dest[*destLen])p Fl(,)d(ev)m(en)k(in)150 675 y(case)f(of)g(bu\013er) -e(o)m(v)m(er\015o)m(w.)150 832 y(P)m(ossible)g(return)h(v)-5 -b(alues:)572 983 y Fj(BZ_CONFIG_ERROR)663 1087 y Fl(if)29 -b(the)i(library)d(has)i(b)s(een)f(mis-compiled)572 1190 -y Fj(BZ_PARAM_ERROR)663 1294 y Fl(if)g Fj(dest)g Fl(is)h -Fj(NULL)f Fl(or)h Fj(destLen)f Fl(is)g Fj(NULL)663 1398 -y Fl(or)h Fj(small)46 b(!=)i(0)f(&&)g(small)g(!=)g(1)663 -1502 y Fl(or)30 b Fj(verbosity)45 b(<)j(0)30 b Fl(or)g -Fj(verbosity)45 b(>)j(4)572 1605 y(BZ_MEM_ERROR)663 1709 -y Fl(if)29 b(insu\016cien)m(t)g(memory)h(is)f(a)m(v)-5 -b(ailable)572 1813 y Fj(BZ_OUTBUFF_FULL)663 1917 y Fl(if)29 -b(the)i(size)f(of)g(the)h(compressed)f(data)h(exceeds)g -Fj(*destLen)572 2021 y(BZ_DATA_ERROR)663 2124 y Fl(if)e(a)i(data)g(in)m -(tegrit)m(y)f(error)g(w)m(as)h(detected)h(in)d(the)h(compressed)g(data) -572 2228 y Fj(BZ_DATA_ERROR_MAGIC)663 2332 y Fl(if)f(the)i(compressed)f -(data)h(do)s(esn't)f(b)s(egin)f(with)g(the)i(righ)m(t)e(magic)i(b)m -(ytes)572 2436 y Fj(BZ_UNEXPECTED_EOF)663 2539 y Fl(if)e(the)i -(compressed)f(data)h(ends)e(unexp)s(ectedly)572 2643 -y Fj(BZ_OK)663 2747 y Fl(otherwise)150 3116 y Fk(3.6)68 -b Fd(zlib)43 b Fk(compatibilit)l(y)k(functions)150 3308 -y Fl(Y)-8 b(oshiok)j(a)33 b(Tsuneo)e(has)h(con)m(tributed)g(some)g -(functions)f(to)i(giv)m(e)g(b)s(etter)f Fj(zlib)f Fl(compatibilit)m(y) --8 b(.)45 b(These)150 3418 y(functions)36 b(are)i Fj(BZ2_bzopen)p -Fl(,)e Fj(BZ2_bzread)p Fl(,)h Fj(BZ2_bzwrite)p Fl(,)f -Fj(BZ2_bzflush)p Fl(,)h Fj(BZ2_bzclose)p Fl(,)f Fj(BZ2_)150 -3527 y(bzerror)23 b Fl(and)h Fj(BZ2_bzlibVersion)p Fl(.)34 -b(These)25 b(functions)e(are)j(not)f(\(y)m(et\))h(o\016cially)e(part)h -(of)g(the)g(library)-8 b(.)150 3637 y(If)30 b(they)g(break,)h(y)m(ou)g -(get)g(to)g(k)m(eep)g(all)f(the)g(pieces.)41 b(Nev)m(ertheless,)31 -b(I)f(think)f(they)i(w)m(ork)f(ok.)390 3788 y Fj(typedef)46 -b(void)g(BZFILE;)390 3995 y(const)g(char)h(*)g(BZ2_bzlibVersion)d(\()j -(void)g(\);)150 4152 y Fl(Returns)29 b(a)i(string)f(indicating)e(the)i -(library)e(v)m(ersion.)390 4303 y Fj(BZFILE)46 b(*)i(BZ2_bzopen)92 -b(\()48 b(const)e(char)h(*path,)f(const)g(char)h(*mode)f(\);)390 -4407 y(BZFILE)g(*)i(BZ2_bzdopen)c(\()k(int)381 b(fd,)190 -b(const)46 b(char)h(*mode)f(\);)150 4564 y Fl(Op)s(ens)19 -b(a)j Fj(.bz2)e Fl(\014le)g(for)g(reading)g(or)h(writing,)g(using)f -(either)g(its)h(name)g(or)g(a)g(pre-existing)f(\014le)g(descriptor.)150 -4674 y(Analogous)30 b(to)i Fj(fopen)c Fl(and)i Fj(fdopen)p -Fl(.)390 4825 y Fj(int)47 b(BZ2_bzread)93 b(\()47 b(BZFILE*)f(b,)h -(void*)f(buf,)h(int)g(len)g(\);)390 4928 y(int)g(BZ2_bzwrite)e(\()i -(BZFILE*)f(b,)h(void*)f(buf,)h(int)g(len)g(\);)150 5085 -y Fl(Reads/writes)30 b(data)h(from/to)g(a)g(previously)d(op)s(ened)i -Fj(BZFILE)p Fl(.)39 b(Analogous)30 b(to)h Fj(fread)e -Fl(and)h Fj(fwrite)p Fl(.)390 5236 y Fj(int)95 b(BZ2_bzflush)44 -b(\()k(BZFILE*)e(b)h(\);)390 5340 y(void)g(BZ2_bzclose)d(\()k(BZFILE*)e -(b)h(\);)p eop -%%Page: 29 30 -29 29 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(29)150 299 y(Flushes/closes)27 -b(a)h Fj(BZFILE)p Fl(.)39 b Fj(BZ2_bzflush)24 b Fl(do)s(esn't)k -(actually)f(do)h(an)m(ything.)39 b(Analogous)28 b(to)h -Fj(fflush)150 408 y Fl(and)h Fj(fclose)p Fl(.)390 559 -y Fj(const)46 b(char)h(*)g(BZ2_bzerror)e(\()j(BZFILE)e(*b,)h(int)g -(*errnum)e(\))150 716 y Fl(Returns)31 b(a)i(string)e(describing)f(the)i -(more)g(recen)m(t)h(error)f(status)h(of)f Fj(b)p Fl(,)g(and)g(also)g -(sets)h Fj(*errnum)d Fl(to)j(its)150 826 y(n)m(umerical)c(v)-5 -b(alue.)150 1242 y Fk(3.7)68 b(Using)46 b(the)f(library)g(in)g(a)g -Fd(stdio)p Fk(-free)f(en)l(vironmen)l(t)150 1615 y Ff(3.7.1)63 -b(Getting)40 b(rid)h(of)g Fe(stdio)150 1807 y Fl(In)i(a)g(deeply)g(em)m -(b)s(edded)f(application,)j(y)m(ou)f(migh)m(t)f(w)m(an)m(t)h(to)g(use)f -(just)g(the)h(memory-to-memory)150 1917 y(functions.)39 -b(Y)-8 b(ou)30 b(can)f(do)g(this)g(con)m(v)m(enien)m(tly)g(b)m(y)g -(compiling)e(the)j(library)d(with)h(prepro)s(cessor)g(sym)m(b)s(ol)150 -2026 y Fj(BZ_NO_STDIO)35 b Fl(de\014ned.)63 b(Doing)39 -b(this)e(giv)m(es)h(y)m(ou)h(a)f(library)e(con)m(taining)i(only)f(the)i -(follo)m(wing)e(eigh)m(t)150 2136 y(functions:)150 2293 -y Fj(BZ2_bzCompressInit)p Fl(,)26 b Fj(BZ2_bzCompress)p -Fl(,)g Fj(BZ2_bzCompressEnd)150 2402 y(BZ2_bzDecompressInit)p -Fl(,)f Fj(BZ2_bzDecompress)p Fl(,)h Fj(BZ2_bzDecompressEnd)150 -2512 y(BZ2_bzBuffToBuffCompress)o Fl(,)f Fj(BZ2_bzBuffToBuffDecompre)o -(ss)150 2669 y Fl(When)30 b(compiled)f(lik)m(e)h(this,)f(all)g -(functions)g(will)f(ignore)i Fj(verbosity)e Fl(settings.)150 -3006 y Ff(3.7.2)63 b(Critical)40 b(error)h(handling)150 -3199 y Fj(libbzip2)20 b Fl(con)m(tains)j(a)g(n)m(um)m(b)s(er)f(of)g(in) -m(ternal)g(assertion)g(c)m(hec)m(ks)i(whic)m(h)d(should,)i(needless)f -(to)h(sa)m(y)-8 b(,)26 b(nev)m(er)150 3308 y(b)s(e)g(activ)-5 -b(ated.)40 b(Nev)m(ertheless,)28 b(if)d(an)i(assertion)f(should)e -(fail,)i(b)s(eha)m(viour)f(dep)s(ends)f(on)j(whether)e(or)i(not)150 -3418 y(the)k(library)d(w)m(as)i(compiled)f(with)g Fj(BZ_NO_STDIO)e -Fl(set.)150 3575 y(F)-8 b(or)31 b(a)g(normal)e(compile,)h(an)g -(assertion)g(failure)f(yields)f(the)j(message)533 3726 -y Fj(bzip2/libbzip2:)44 b(internal)h(error)i(number)f(N.)533 -3829 y(This)h(is)g(a)g(bug)g(in)h(bzip2/libbzip2,)43 -b(1.0)k(of)g(21-Mar-2000.)533 3933 y(Please)f(report)g(it)i(to)f(me)g -(at:)g(jseward@acm.org.)91 b(If)47 b(this)g(happened)533 -4037 y(when)g(you)g(were)f(using)h(some)f(program)g(which)h(uses)f -(libbzip2)g(as)h(a)533 4141 y(component,)e(you)i(should)f(also)h -(report)f(this)h(bug)f(to)i(the)f(author\(s\))533 4244 -y(of)g(that)g(program.)93 b(Please)46 b(make)h(an)g(effort)f(to)h -(report)g(this)f(bug;)533 4348 y(timely)g(and)h(accurate)f(bug)h -(reports)e(eventually)g(lead)i(to)g(higher)533 4452 y(quality)f -(software.)93 b(Thanks.)h(Julian)46 b(Seward,)f(21)j(March)e(2000.)150 -4609 y Fl(where)30 b Fj(N)g Fl(is)f(some)i(error)f(co)s(de)h(n)m(um)m -(b)s(er.)39 b Fj(exit\(3\))28 b Fl(is)i(then)g(called.)150 -4766 y(F)-8 b(or)31 b(a)g Fj(stdio)p Fl(-free)e(library)-8 -b(,)29 b(assertion)h(failures)e(result)i(in)f(a)i(call)e(to)i(a)g -(function)e(declared)h(as:)533 4917 y Fj(extern)46 b(void)h -(bz_internal_error)c(\()k(int)g(errcode)f(\);)150 5074 -y Fl(The)30 b(relev)-5 b(an)m(t)31 b(co)s(de)f(is)g(passed)f(as)i(a)g -(parameter.)41 b(Y)-8 b(ou)31 b(should)d(supply)g(suc)m(h)i(a)h -(function.)150 5230 y(In)g(either)g(case,)j(once)e(an)g(assertion)g -(failure)e(has)h(o)s(ccurred,)h(an)m(y)g Fj(bz_stream)e -Fl(records)h(in)m(v)m(olv)m(ed)h(can)150 5340 y(b)s(e)e(regarded)g(as)h -(in)m(v)-5 b(alid.)38 b(Y)-8 b(ou)31 b(should)d(not)j(attempt)g(to)g -(resume)f(normal)g(op)s(eration)f(with)g(them.)p eop -%%Page: 30 31 -30 30 bop 150 -116 a Fl(Chapter)30 b(3:)41 b(Programming)29 -b(with)g Fj(libbzip2)1881 b Fl(30)150 299 y(Y)-8 b(ou)22 -b(ma)m(y)-8 b(,)25 b(of)d(course,)h(c)m(hange)g(critical)e(error)g -(handling)e(to)j(suit)f(y)m(our)g(needs.)38 b(As)21 b(I)h(said)e(ab)s -(o)m(v)m(e,)25 b(critical)150 408 y(errors)30 b(indicate)g(bugs)g(in)g -(the)h(library)d(and)i(should)f(not)i(o)s(ccur.)42 b(All)29 -b Fj(")p Fl(normal)p Fj(")h Fl(error)g(situations)g(are)150 -518 y(indicated)f(via)h(error)g(return)f(co)s(des)i(from)f(functions,)f -(and)g(can)i(b)s(e)f(reco)m(v)m(ered)i(from.)150 798 -y Fk(3.8)68 b(Making)45 b(a)g(Windo)l(ws)h(DLL)150 990 -y Fl(Ev)m(erything)30 b(related)g(to)h(Windo)m(ws)f(has)g(b)s(een)f -(con)m(tributed)h(b)m(y)g(Y)-8 b(oshiok)j(a)31 b(Tsuneo)150 -1100 y(\()p Fj(QWF00133@niftyserve.or.jp)46 b Fl(/)52 -b Fj(tsuneo-y@is.aist-nara.ac.j)o(p)p Fl(\),)g(so)h(y)m(ou)f(should)f -(send)150 1210 y(y)m(our)30 b(queries)g(to)h(him)e(\(but)h(p)s(erhaps)e -(Cc:)41 b(me,)31 b Fj(jseward@acm.org)p Fl(\).)150 1366 -y(My)43 b(v)-5 b(ague)44 b(understanding)d(of)i(what)g(to)h(do)f(is:)65 -b(using)41 b(Visual)h(C)p Fj(++)g Fl(5.0,)48 b(op)s(en)42 -b(the)h(pro)5 b(ject)44 b(\014le)150 1476 y Fj(libbz2.dsp)p -Fl(,)28 b(and)i(build.)37 b(That's)31 b(all.)150 1633 -y(If)41 b(y)m(ou)g(can't)h(op)s(en)e(the)h(pro)5 b(ject)42 -b(\014le)e(for)h(some)g(reason,)j(mak)m(e)e(a)g(new)e(one,)k(naming)c -(these)i(\014les:)150 1742 y Fj(blocksort.c)p Fl(,)28 -b Fj(bzlib.c)p Fl(,)g Fj(compress.c)p Fl(,)g Fj(crctable.c)p -Fl(,)g Fj(decompress.c)p Fl(,)f Fj(huffman.c)p Fl(,)150 -1852 y Fj(randtable.c)32 b Fl(and)j Fj(libbz2.def)p Fl(.)53 -b(Y)-8 b(ou)36 b(will)d(also)i(need)g(to)h(name)g(the)g(header)f -(\014les)f Fj(bzlib.h)g Fl(and)150 1962 y Fj(bzlib_private.h)p -Fl(.)150 2118 y(If)c(y)m(ou)h(don't)f(use)g(V)m(C)p Fj(++)p -Fl(,)g(y)m(ou)h(ma)m(y)g(need)f(to)h(de\014ne)f(the)h(propro)s(cessor)e -(sym)m(b)s(ol)g Fj(_WIN32)p Fl(.)150 2275 y(Finally)-8 -b(,)28 b Fj(dlltest.c)e Fl(is)h(a)i(sample)f(program)g(using)g(the)g -(DLL.)h(It)g(has)f(a)h(pro)5 b(ject)29 b(\014le,)g Fj(dlltest.dsp)p -Fl(.)150 2432 y(If)h(y)m(ou)h(just)e(w)m(an)m(t)j(a)e(mak)m(e\014le)h -(for)f(Visual)f(C,)h(ha)m(v)m(e)i(a)e(lo)s(ok)g(at)i -Fj(makefile.msc)p Fl(.)150 2589 y(Be)k(a)m(w)m(are)g(that)g(if)e(y)m -(ou)h(compile)f Fj(bzip2)g Fl(itself)g(on)h(Win32,)h(y)m(ou)g(m)m(ust)f -(set)g Fj(BZ_UNIX)e Fl(to)j(0)f(and)g Fj(BZ_)150 2698 -y(LCCWIN32)27 b Fl(to)j(1,)g(in)f(the)g(\014le)g Fj(bzip2.c)p -Fl(,)e(b)s(efore)i(compiling.)39 b(Otherwise)28 b(the)h(resulting)f -(binary)f(w)m(on't)150 2808 y(w)m(ork)j(correctly)-8 -b(.)150 2965 y(I)30 b(ha)m(v)m(en't)i(tried)d(an)m(y)i(of)g(this)e -(stu\013)h(m)m(yself,)g(but)g(it)f(all)h(lo)s(oks)g(plausible.)p -eop -%%Page: 31 32 -31 31 bop 150 -116 a Fl(Chapter)30 b(4:)41 b(Miscellanea)2586 -b(31)150 299 y Fh(4)80 b(Miscellanea)150 583 y Fl(These)30 -b(are)h(just)f(some)g(random)g(though)m(ts)h(of)f(mine.)40 -b(Y)-8 b(our)30 b(mileage)h(ma)m(y)g(v)-5 b(ary)d(.)150 -884 y Fk(4.1)68 b(Limitations)47 b(of)e(the)g(compressed)g(\014le)h -(format)150 1077 y Fj(bzip2-1.0)p Fl(,)e Fj(0.9.5)e Fl(and)g -Fj(0.9.0)g Fl(use)h(exactly)h(the)f(same)h(\014le)e(format)i(as)f(the)h -(previous)d(v)m(ersion,)150 1186 y Fj(bzip2-0.1)p Fl(.)75 -b(This)41 b(decision)g(w)m(as)i(made)g(in)e(the)i(in)m(terests)g(of)g -(stabilit)m(y)-8 b(.)77 b(Creating)42 b(y)m(et)i(another)150 -1296 y(incompatible)21 b(compressed)i(\014le)f(format)i(w)m(ould)e -(create)i(further)e(confusion)g(and)h(disruption)d(for)j(users.)150 -1453 y(Nev)m(ertheless,)31 b(this)e(is)g(not)h(a)g(painless)e -(decision.)39 b(Dev)m(elopmen)m(t)31 b(w)m(ork)f(since)f(the)h(release) -h(of)f Fj(bzip2-)150 1562 y(0.1)19 b Fl(in)g(August)i(1997)h(has)e(sho) -m(wn)f(complexities)h(in)f(the)h(\014le)g(format)g(whic)m(h)f(slo)m(w)h -(do)m(wn)g(decompression)150 1672 y(and,)30 b(in)f(retrosp)s(ect,)i -(are)g(unnecessary)-8 b(.)40 b(These)31 b(are:)225 1829 -y Fi(\017)60 b Fl(The)20 b(run-length)g(enco)s(der,)i(whic)m(h)e(is)g -(the)h(\014rst)f(of)h(the)g(compression)f(transformations,)i(is)e(en)m -(tirely)330 1938 y(irrelev)-5 b(an)m(t.)63 b(The)38 b(original)e(purp)s -(ose)g(w)m(as)j(to)g(protect)g(the)f(sorting)g(algorithm)f(from)g(the)i -(v)m(ery)330 2048 y(w)m(orst)h(case)h(input:)58 b(a)41 -b(string)e(of)h(rep)s(eated)g(sym)m(b)s(ols.)68 b(But)40 -b(algorithm)f(steps)h(Q6a)h(and)e(Q6b)330 2157 y(in)30 -b(the)i(original)e(Burro)m(ws-Wheeler)i(tec)m(hnical)g(rep)s(ort)f -(\(SR)m(C-124\))i(sho)m(w)f(ho)m(w)g(rep)s(eats)g(can)g(b)s(e)330 -2267 y(handled)c(without)i(di\016cult)m(y)f(in)g(blo)s(c)m(k)h -(sorting.)225 2409 y Fi(\017)60 b Fl(The)30 b(randomisation)e(mec)m -(hanism)i(do)s(esn't)g(really)f(need)h(to)g(b)s(e)g(there.)41 -b(Udi)29 b(Man)m(b)s(er)h(and)f(Gene)330 2518 y(My)m(ers)j(published)c -(a)33 b(su\016x)e(arra)m(y)h(construction)f(algorithm)g(a)h(few)g(y)m -(ears)h(bac)m(k,)g(whic)m(h)d(can)j(b)s(e)330 2628 y(emplo)m(y)m(ed)27 -b(to)h(sort)g(an)m(y)f(blo)s(c)m(k,)h(no)f(matter)h(ho)m(w)f(rep)s -(etitiv)m(e,)h(in)d(O\(N)j(log)f(N\))h(time.)39 b(Subsequen)m(t)330 -2737 y(w)m(ork)25 b(b)m(y)f(Kunihik)m(o)f(Sadak)-5 b(ane)24 -b(has)h(pro)s(duced)e(a)i(deriv)-5 b(ativ)m(e)24 b(O\(N)h(\(log)g(N\))p -Fj(^)p Fl(2\))h(algorithm)d(whic)m(h)330 2847 y(usually)28 -b(outp)s(erforms)h(the)i(Man)m(b)s(er-My)m(ers)g(algorithm.)330 -2988 y(I)g(could)g(ha)m(v)m(e)i(c)m(hanged)f(to)g(Sadak)-5 -b(ane's)32 b(algorithm,)f(but)g(I)g(\014nd)f(it)h(to)h(b)s(e)f(slo)m(w) -m(er)h(than)f Fj(bzip2)p Fl('s)330 3098 y(existing)38 -b(algorithm)g(for)h(most)h(inputs,)f(and)g(the)g(randomisation)f(mec)m -(hanism)g(protects)i(ade-)330 3208 y(quately)34 b(against)f(bad)g -(cases.)52 b(I)33 b(didn't)f(think)g(it)i(w)m(as)g(a)g(go)s(o)s(d)f -(tradeo\013)i(to)f(mak)m(e.)51 b(P)m(artly)34 b(this)330 -3317 y(is)39 b(due)h(to)h(the)f(fact)h(that)g(I)f(w)m(as)g(not)h(\015o) -s(o)s(ded)e(with)g(email)g(complain)m(ts)g(ab)s(out)h -Fj(bzip2-0.1)p Fl('s)330 3427 y(p)s(erformance)30 b(on)g(rep)s(etitiv)m -(e)g(data,)h(so)g(p)s(erhaps)d(it)i(isn't)g(a)h(problem)d(for)j(real)f -(inputs.)330 3568 y(Probably)i(the)h(b)s(est)g(long-term)g(solution,)g -(and)g(the)g(one)h(I)f(ha)m(v)m(e)h(incorp)s(orated)e(in)m(to)i(0.9.5)h -(and)330 3678 y(ab)s(o)m(v)m(e,)42 b(is)c(to)h(use)f(the)h(existing)f -(sorting)g(algorithm)f(initially)-8 b(,)38 b(and)g(fall)f(bac)m(k)i(to) -h(a)f(O\(N)f(\(log)330 3787 y(N\))p Fj(^)p Fl(2\))31 -b(algorithm)f(if)f(the)i(standard)e(algorithm)h(gets)h(in)m(to)f -(di\016culties.)225 3929 y Fi(\017)60 b Fl(The)31 b(compressed)f -(\014le)g(format)i(w)m(as)f(nev)m(er)h(designed)d(to)j(b)s(e)f(handled) -e(b)m(y)i(a)g(library)-8 b(,)29 b(and)i(I)g(ha)m(v)m(e)330 -4039 y(had)d(to)i(jump)e(though)g(some)i(ho)s(ops)e(to)i(pro)s(duce)e -(an)h(e\016cien)m(t)g(implemen)m(tation)f(of)h(decompres-)330 -4148 y(sion.)38 b(It's)26 b(a)h(bit)e(hairy)-8 b(.)38 -b(T)-8 b(ry)26 b(passing)f Fj(decompress.c)d Fl(through)k(the)g(C)f -(prepro)s(cessor)g(and)h(y)m(ou'll)330 4258 y(see)32 -b(what)g(I)f(mean.)45 b(Muc)m(h)32 b(of)g(this)e(complexit)m(y)i(could) -f(ha)m(v)m(e)i(b)s(een)e(a)m(v)m(oided)h(if)e(the)i(compressed)330 -4367 y(size)e(of)h(eac)m(h)g(blo)s(c)m(k)f(of)h(data)g(w)m(as)g -(recorded)f(in)f(the)h(data)h(stream.)225 4509 y Fi(\017)60 -b Fl(An)30 b(Adler-32)g(c)m(hec)m(ksum,)i(rather)e(than)g(a)h(CR)m(C32) -g(c)m(hec)m(ksum,)g(w)m(ould)e(b)s(e)h(faster)h(to)g(compute.)150 -4698 y(It)e(w)m(ould)f(b)s(e)g(fair)g(to)h(sa)m(y)h(that)g(the)f -Fj(bzip2)e Fl(format)i(w)m(as)h(frozen)f(b)s(efore)f(I)h(prop)s(erly)d -(and)j(fully)d(under-)150 4807 y(sto)s(o)s(d)k(the)h(p)s(erformance)e -(consequences)i(of)g(doing)e(so.)150 4964 y(Impro)m(v)m(emen)m(ts)d -(whic)m(h)e(I)i(w)m(as)g(able)f(to)h(incorp)s(orate)f(in)m(to)g(0.9.0,) -k(despite)24 b(using)g(the)i(same)g(\014le)e(format,)150 -5074 y(are:)225 5230 y Fi(\017)60 b Fl(Single)30 b(arra)m(y)i(implemen) -m(tation)e(of)h(the)h(in)m(v)m(erse)f(BWT.)h(This)e(signi\014can)m(tly) -f(sp)s(eeds)i(up)f(decom-)330 5340 y(pression,)f(presumably)f(b)s -(ecause)i(it)g(reduces)g(the)h(n)m(um)m(b)s(er)e(of)i(cac)m(he)h -(misses.)p eop -%%Page: 32 33 -32 32 bop 150 -116 a Fl(Chapter)30 b(4:)41 b(Miscellanea)2586 -b(32)225 299 y Fi(\017)60 b Fl(F)-8 b(aster)27 b(in)m(v)m(erse)e(MTF)h -(transform)f(for)g(large)h(MTF)f(v)-5 b(alues.)39 b(The)25 -b(new)g(implemen)m(tation)f(is)g(based)330 408 y(on)30 -b(the)h(notion)f(of)g(sliding)e(blo)s(c)m(ks)h(of)i(v)-5 -b(alues.)225 544 y Fi(\017)60 b Fj(bzip2-0.9.0)24 b Fl(no)m(w)k(reads)f -(and)f(writes)h(\014les)f(with)g Fj(fread)g Fl(and)h -Fj(fwrite)p Fl(;)f(v)m(ersion)h(0.1)i(used)d Fj(putc)330 -653 y Fl(and)k Fj(getc)p Fl(.)39 b(Duh!)h(W)-8 b(ell,)31 -b(y)m(ou)f(liv)m(e)g(and)g(learn.)150 836 y(F)-8 b(urther)30 -b(ahead,)g(it)f(w)m(ould)g(b)s(e)g(nice)h(to)g(b)s(e)g(able)f(to)i(do)e -(random)g(access)j(in)m(to)d(\014les.)40 b(This)28 b(will)f(require)150 -945 y(some)k(careful)e(design)h(of)g(compressed)g(\014le)g(formats.)150 -1227 y Fk(4.2)68 b(P)l(ortabilit)l(y)47 b(issues)150 -1419 y Fl(After)36 b(some)g(consideration,)g(I)f(ha)m(v)m(e)i(decided)d -(not)i(to)g(use)g(GNU)g Fj(autoconf)d Fl(to)j(con\014gure)g(0.9.5)h(or) -150 1529 y(1.0.)150 1686 y Fj(autoconf)p Fl(,)31 b(admirable)g(and)h(w) -m(onderful)f(though)i(it)f(is,)h(mainly)d(assists)j(with)e(p)s -(ortabilit)m(y)g(problems)150 1795 y(b)s(et)m(w)m(een)f(Unix-lik)m(e)d -(platforms.)40 b(But)29 b Fj(bzip2)f Fl(do)s(esn't)h(ha)m(v)m(e)h(m)m -(uc)m(h)f(in)f(the)h(w)m(a)m(y)h(of)g(p)s(ortabilit)m(y)d(prob-)150 -1905 y(lems)35 b(on)h(Unix;)j(most)d(of)g(the)h(di\016culties)d(app)s -(ear)h(when)g(p)s(orting)g(to)i(the)f(Mac,)j(or)d(to)h(Microsoft's)150 -2015 y(op)s(erating)26 b(systems.)40 b Fj(autoconf)25 -b Fl(do)s(esn't)h(help)g(in)f(those)j(cases,)h(and)d(brings)f(in)g(a)j -(whole)e(load)g(of)h(new)150 2124 y(complexit)m(y)-8 -b(.)150 2281 y(Most)28 b(p)s(eople)f(should)f(b)s(e)h(able)g(to)h -(compile)e(the)i(library)d(and)i(program)h(under)e(Unix)g(straigh)m(t)i -(out-of-)150 2391 y(the-b)s(o)m(x,)j(so)g(to)g(sp)s(eak,)f(esp)s -(ecially)f(if)g(y)m(ou)i(ha)m(v)m(e)g(a)g(v)m(ersion)f(of)g(GNU)h(C)f -(a)m(v)-5 b(ailable.)150 2547 y(There)32 b(are)h(a)g(couple)f(of)h -Fj(__inline__)d Fl(directiv)m(es)i(in)f(the)i(co)s(de.)48 -b(GNU)33 b(C)f(\()p Fj(gcc)p Fl(\))g(should)f(b)s(e)h(able)g(to)150 -2657 y(handle)24 b(them.)39 b(If)25 b(y)m(ou're)i(not)e(using)g(GNU)h -(C,)f(y)m(our)h(C)f(compiler)f(shouldn't)g(see)i(them)f(at)i(all.)38 -b(If)25 b(y)m(our)150 2767 y(compiler)k(do)s(es,)i(for)g(some)g -(reason,)h(see)f(them)g(and)f(do)s(esn't)h(lik)m(e)f(them,)i(just)e -Fj(#define)f(__inline__)150 2876 y Fl(to)37 b(b)s(e)f -Fj(/*)30 b(*/)p Fl(.)58 b(One)36 b(easy)h(w)m(a)m(y)g(to)h(do)e(this)f -(is)h(to)h(compile)e(with)g(the)i(\015ag)g Fj(-D__inline__=)p -Fl(,)d(whic)m(h)150 2986 y(should)28 b(b)s(e)i(understo)s(o)s(d)f(b)m -(y)h(most)h(Unix)e(compilers.)150 3143 y(If)35 b(y)m(ou)g(still)e(ha)m -(v)m(e)j(di\016culties,)e(try)h(compiling)e(with)g(the)j(macro)f -Fj(BZ_STRICT_ANSI)c Fl(de\014ned.)54 b(This)150 3252 -y(should)28 b(enable)i(y)m(ou)h(to)g(build)d(the)i(library)e(in)h(a)i -(strictly)f(ANSI)g(complian)m(t)f(en)m(vironmen)m(t.)41 -b(Building)150 3362 y(the)25 b(program)f(itself)f(lik)m(e)g(this)h(is)f -(dangerous)h(and)g(not)g(supp)s(orted,)g(since)g(y)m(ou)h(remo)m(v)m(e) -g Fj(bzip2)p Fl('s)e(c)m(hec)m(ks)150 3471 y(against)30 -b(compressing)f(directories,)g(sym)m(b)s(olic)g(links,)f(devices,)i -(and)f(other)h(not-really-a-\014le)g(en)m(tities.)150 -3581 y(This)f(could)g(cause)i(\014lesystem)f(corruption!)150 -3738 y(One)e(other)i(thing:)39 b(if)27 b(y)m(ou)j(create)g(a)f -Fj(bzip2)f Fl(binary)f(for)i(public)d(distribution,)g(please)i(try)h -(and)g(link)d(it)150 3847 y(statically)g(\()p Fj(gcc)k(-s)p -Fl(\).)39 b(This)25 b(a)m(v)m(oids)i(all)f(sorts)h(of)g(library-v)m -(ersion)d(issues)h(that)i(others)g(ma)m(y)g(encoun)m(ter)150 -3957 y(later)j(on.)150 4114 y(If)f(y)m(ou)g(build)e Fj(bzip2)h -Fl(on)h(Win32,)h(y)m(ou)f(m)m(ust)g(set)h Fj(BZ_UNIX)e -Fl(to)i(0)f(and)g Fj(BZ_LCCWIN32)d Fl(to)k(1,)g(in)e(the)i(\014le)150 -4223 y Fj(bzip2.c)p Fl(,)f(b)s(efore)h(compiling.)38 -b(Otherwise)29 b(the)i(resulting)d(binary)h(w)m(on't)i(w)m(ork)f -(correctly)-8 b(.)150 4505 y Fk(4.3)68 b(Rep)t(orting)46 -b(bugs)150 4698 y Fl(I)25 b(tried)f(prett)m(y)i(hard)e(to)i(mak)m(e)g -(sure)f Fj(bzip2)e Fl(is)i(bug)f(free,)j(b)s(oth)d(b)m(y)h(design)f -(and)h(b)m(y)g(testing.)39 b(Hop)s(efully)150 4807 y(y)m(ou'll)29 -b(nev)m(er)i(need)f(to)h(read)g(this)e(section)h(for)h(real.)150 -4964 y(Nev)m(ertheless,)36 b(if)c Fj(bzip2)h Fl(dies)g(with)f(a)i -(segmen)m(tation)h(fault,)g(a)f(bus)f(error)g(or)h(an)g(in)m(ternal)e -(assertion)150 5074 y(failure,)i(it)h(will)d(ask)j(y)m(ou)g(to)g(email) -f(me)h(a)g(bug)f(rep)s(ort.)54 b(Exp)s(erience)33 b(with)h(v)m(ersion)g -(0.1)i(sho)m(ws)e(that)150 5183 y(almost)c(all)g(these)h(problems)d -(can)j(b)s(e)f(traced)h(to)g(either)f(compiler)e(bugs)i(or)g(hardw)m -(are)g(problems.)225 5340 y Fi(\017)60 b Fl(Recompile)22 -b(the)h(program)g(with)f(no)h(optimisation,)g(and)f(see)i(if)e(it)g(w)m -(orks.)39 b(And/or)22 b(try)h(a)g(di\013eren)m(t)p eop -%%Page: 33 34 -33 33 bop 150 -116 a Fl(Chapter)30 b(4:)41 b(Miscellanea)2586 -b(33)330 299 y(compiler.)77 b(I)43 b(heard)f(all)g(sorts)h(of)h -(stories)e(ab)s(out)h(v)-5 b(arious)42 b(\015a)m(v)m(ours)h(of)h(GNU)f -(C)g(\(and)g(other)330 408 y(compilers\))20 b(generating)i(bad)e(co)s -(de)i(for)f Fj(bzip2)p Fl(,)h(and)f(I'v)m(e)h(run)e(across)i(t)m(w)m(o) -g(suc)m(h)f(examples)g(m)m(yself.)330 606 y(2.7.X)35 -b(v)m(ersions)e(of)g(GNU)h(C)f(are)h(kno)m(wn)f(to)h(generate)h(bad)d -(co)s(de)i(from)f(time)g(to)h(time,)g(at)g(high)330 716 -y(optimisation)20 b(lev)m(els.)37 b(If)21 b(y)m(ou)g(get)i(problems,)e -(try)g(using)f(the)i(\015ags)f Fj(-O2)f(-fomit-frame-pointer)330 -825 y(-fno-strength-reduce)p Fl(.)35 b(Y)-8 b(ou)31 b(should)d(sp)s -(eci\014cally)h Fc(not)j Fl(use)e Fj(-funroll-loops)p -Fl(.)330 1023 y(Y)-8 b(ou)38 b(ma)m(y)g(notice)g(that)g(the)g(Mak)m -(e\014le)g(runs)e(six)g(tests)i(as)g(part)f(of)h(the)g(build)c(pro)s -(cess.)62 b(If)37 b(the)330 1132 y(program)43 b(passes)g(all)f(of)h -(these,)k(it's)c(a)h(prett)m(y)f(go)s(o)s(d)g(\(but)g(not)g(100\045\))i -(indication)c(that)j(the)330 1242 y(compiler)29 b(has)h(done)g(its)g -(job)g(correctly)-8 b(.)225 1440 y Fi(\017)60 b Fl(If)33 -b Fj(bzip2)f Fl(crashes)i(randomly)-8 b(,)33 b(and)g(the)h(crashes)g -(are)g(not)g(rep)s(eatable,)g(y)m(ou)g(ma)m(y)g(ha)m(v)m(e)h(a)f -(\015aky)330 1549 y(memory)k(subsystem.)64 b Fj(bzip2)37 -b Fl(really)g(hammers)h(y)m(our)g(memory)g(hierarc)m(h)m(y)-8 -b(,)41 b(and)d(if)f(it's)h(a)h(bit)330 1659 y(marginal,)33 -b(y)m(ou)h(ma)m(y)g(get)h(these)f(problems.)49 b(Ditto)34 -b(if)f(y)m(our)h(disk)e(or)h(I/O)h(subsystem)e(is)h(slo)m(wly)330 -1768 y(failing.)39 b(Y)-8 b(up,)30 b(this)f(really)g(do)s(es)h(happ)s -(en.)330 1966 y(T)-8 b(ry)28 b(using)f(a)i(di\013eren)m(t)f(mac)m(hine) -g(of)h(the)g(same)f(t)m(yp)s(e,)i(and)e(see)h(if)e(y)m(ou)i(can)g(rep)s -(eat)g(the)f(problem.)225 2163 y Fi(\017)60 b Fl(This)21 -b(isn't)i(really)f(a)h(bug,)i(but)d(...)39 b(If)23 b -Fj(bzip2)f Fl(tells)g(y)m(ou)h(y)m(our)h(\014le)e(is)g(corrupted)h(on)g -(decompression,)330 2273 y(and)29 b(y)m(ou)g(obtained)f(the)i(\014le)e -(via)h(FTP)-8 b(,)29 b(there)h(is)e(a)h(p)s(ossibilit)m(y)d(that)k(y)m -(ou)f(forgot)h(to)g(tell)e(FTP)h(to)330 2383 y(do)23 -b(a)g(binary)e(mo)s(de)i(transfer.)38 b(That)23 b(absolutely)f(will)e -(cause)j(the)h(\014le)e(to)h(b)s(e)g(non-decompressible.)330 -2492 y(Y)-8 b(ou'll)30 b(ha)m(v)m(e)h(to)g(transfer)f(it)g(again.)150 -2737 y(If)i(y)m(ou'v)m(e)h(incorp)s(orated)e Fj(libbzip2)f -Fl(in)m(to)i(y)m(our)g(o)m(wn)g(program)g(and)g(are)g(getting)h -(problems,)e(please,)150 2847 y(please,)d(please,)h(c)m(hec)m(k)g(that) -f(the)g(parameters)g(y)m(ou)g(are)g(passing)f(in)f(calls)h(to)h(the)g -(library)-8 b(,)26 b(are)j(correct,)150 2956 y(and)e(in)f(accordance)k -(with)c(what)i(the)g(do)s(cumen)m(tation)f(sa)m(ys)h(is)f(allo)m(w)m -(able.)39 b(I)28 b(ha)m(v)m(e)h(tried)e(to)h(mak)m(e)h(the)150 -3066 y(library)f(robust)i(against)g(suc)m(h)g(problems,)f(but)h(I'm)g -(sure)g(I)g(ha)m(v)m(en't)h(succeeded.)150 3223 y(Finally)-8 -b(,)32 b(if)g(the)h(ab)s(o)m(v)m(e)i(commen)m(ts)e(don't)g(help,)g(y)m -(ou'll)f(ha)m(v)m(e)i(to)g(send)e(me)h(a)g(bug)g(rep)s(ort.)48 -b(No)m(w,)34 b(it's)150 3332 y(just)c(amazing)g(ho)m(w)h(man)m(y)f(p)s -(eople)g(will)d(send)j(me)g(a)h(bug)f(rep)s(ort)g(sa)m(ying)g -(something)g(lik)m(e)481 3483 y(bzip2)f(crashed)h(with)f(segmen)m -(tation)j(fault)e(on)g(m)m(y)g(mac)m(hine)150 3640 y(and)h(absolutely)f -(nothing)h(else.)44 b(Needless)32 b(to)g(sa)m(y)-8 b(,)33 -b(a)f(suc)m(h)f(a)h(rep)s(ort)f(is)g Fc(totally)-8 b(,)32 -b(utterly)-8 b(,)32 b(completely)150 3750 y(and)40 b(comprehensiv)m -(ely)g(100\045)h(useless;)46 b(a)41 b(w)m(aste)g(of)g(y)m(our)g(time,)i -(m)m(y)e(time,)i(and)e(net)g(bandwidth)p Fl(.)150 3859 -y(With)31 b(no)h(details)f(at)i(all,)e(there's)h(no)g(w)m(a)m(y)h(I)f -(can)g(p)s(ossibly)d(b)s(egin)h(to)j(\014gure)e(out)i(what)e(the)i -(problem)150 3969 y(is.)150 4126 y(The)d(rules)e(of)i(the)g(game)h -(are:)41 b(facts,)32 b(facts,)f(facts.)41 b(Don't)31 -b(omit)f(them)g(b)s(ecause)g Fj(")p Fl(oh,)g(they)g(w)m(on't)h(b)s(e) -150 4235 y(relev)-5 b(an)m(t)p Fj(")p Fl(.)41 b(A)m(t)31 -b(the)g(bare)f(minim)m(um:)481 4386 y(Mac)m(hine)h(t)m(yp)s(e.)61 -b(Op)s(erating)29 b(system)h(v)m(ersion.)481 4490 y(Exact)h(v)m(ersion) -f(of)h Fj(bzip2)e Fl(\(do)h Fj(bzip2)47 b(-V)p Fl(\).)481 -4594 y(Exact)31 b(v)m(ersion)f(of)h(the)f(compiler)f(used.)481 -4698 y(Flags)i(passed)e(to)j(the)e(compiler.)150 4854 -y(Ho)m(w)m(ev)m(er,)i(the)d(most)h(imp)s(ortan)m(t)f(single)f(thing)g -(that)i(will)d(help)h(me)h(is)f(the)i(\014le)e(that)i(y)m(ou)g(w)m(ere) -g(trying)150 4964 y(to)f(compress)f(or)g(decompress)g(at)h(the)f(time)g -(the)g(problem)f(happ)s(ened.)38 b(Without)28 b(that,)h(m)m(y)g(abilit) -m(y)d(to)150 5074 y(do)k(an)m(ything)g(more)h(than)f(sp)s(eculate)g(ab) -s(out)g(the)g(cause,)i(is)d(limited.)150 5230 y(Please)34 -b(remem)m(b)s(er)f(that)h(I)f(connect)i(to)f(the)g(In)m(ternet)g(with)e -(a)i(mo)s(dem,)g(so)f(y)m(ou)h(should)e(con)m(tact)k(me)150 -5340 y(b)s(efore)30 b(mailing)e(me)j(h)m(uge)f(\014les.)p -eop -%%Page: 34 35 -34 34 bop 150 -116 a Fl(Chapter)30 b(4:)41 b(Miscellanea)2586 -b(34)150 299 y Fk(4.4)68 b(Did)45 b(y)l(ou)g(get)h(the)f(righ)l(t)h -(pac)l(k)-7 b(age?)150 491 y Fj(bzip2)34 b Fl(is)h(a)h(resource)g(hog.) -56 b(It)36 b(soaks)g(up)f(large)g(amoun)m(ts)h(of)g(CPU)f(cycles)h(and) -f(memory)-8 b(.)57 b(Also,)36 b(it)150 601 y(giv)m(es)26 -b(v)m(ery)h(large)f(latencies.)39 b(In)25 b(the)h(w)m(orst)g(case,)i(y) -m(ou)f(can)f(feed)g(man)m(y)g(megab)m(ytes)h(of)f(uncompressed)150 -711 y(data)45 b(in)m(to)e(the)i(library)c(b)s(efore)j(getting)g(an)m(y) -g(compressed)g(output,)j(so)d(this)f(probably)f(rules)h(out)150 -820 y(applications)29 b(requiring)e(in)m(teractiv)m(e)32 -b(b)s(eha)m(viour.)150 977 y(These)38 b(aren't)h(faults)e(of)h(m)m(y)g -(implemen)m(tation,)h(I)f(hop)s(e,)i(but)d(more)h(an)g(in)m(trinsic)e -(prop)s(ert)m(y)h(of)i(the)150 1087 y(Burro)m(ws-Wheeler)30 -b(transform)g(\(unfortunately\).)40 b(Ma)m(yb)s(e)31 -b(this)e(isn't)h(what)g(y)m(ou)h(w)m(an)m(t.)150 1244 -y(If)h(y)m(ou)h(w)m(an)m(t)g(a)g(compressor)g(and/or)f(library)e(whic)m -(h)h(is)h(faster,)i(uses)e(less)g(memory)g(but)g(gets)h(prett)m(y)150 -1353 y(go)s(o)s(d)e(compression,)g(and)g(has)h(minimal)c(latency)-8 -b(,)33 b(consider)e(Jean-loup)f(Gailly's)g(and)h(Mark)h(Adler's)150 -1463 y(w)m(ork,)f Fj(zlib-1.1.2)c Fl(and)j Fj(gzip-1.2.4)p -Fl(.)38 b(Lo)s(ok)31 b(for)f(them)g(at)150 1620 y Fj -(http://www.cdrom.com/pub)o(/inf)o(ozip)o(/zl)o(ib)24 -b Fl(and)30 b Fj(http://www.gzip.org)25 b Fl(resp)s(ectiv)m(ely)-8 -b(.)150 1776 y(F)g(or)32 b(something)f(faster)i(and)e(ligh)m(ter)f -(still,)h(y)m(ou)g(migh)m(t)h(try)f(Markus)h(F)g(X)f(J)h(Ob)s(erh)m -(umer's)d Fj(LZO)i Fl(real-)150 1886 y(time)f -(compression/decompression)f(library)-8 b(,)28 b(at)150 -1996 y Fj(http://wildsau.idv.uni-l)o(inz.)o(ac.a)o(t/m)o(fx/l)o(zo.h)o -(tml)o Fl(.)150 2152 y(If)38 b(y)m(ou)h(w)m(an)m(t)g(to)h(use)e(the)g -Fj(bzip2)g Fl(algorithms)f(to)i(compress)f(small)g(blo)s(c)m(ks)f(of)i -(data,)j(64k)d(b)m(ytes)g(or)150 2262 y(smaller,)i(for)e(example)g(on)h -(an)f(on-the-\015y)h(disk)e(compressor,)k(y)m(ou'd)e(b)s(e)f(w)m(ell)g -(advised)f(not)i(to)g(use)150 2372 y(this)i(library)-8 -b(.)77 b(Instead,)47 b(I'v)m(e)d(made)f(a)h(sp)s(ecial)e(library)f -(tuned)h(for)h(that)h(kind)d(of)j(use.)79 b(It's)43 b(part)150 -2481 y(of)d Fj(e2compr-0.40)p Fl(,)f(an)g(on-the-\015y)h(disk)e -(compressor)h(for)h(the)f(Lin)m(ux)f Fj(ext2)h Fl(\014lesystem.)67 -b(Lo)s(ok)40 b(at)150 2591 y Fj(http://www.netspace.net.)o(au/~)o(reit) -o(er/)o(e2co)o(mpr)p Fl(.)150 2880 y Fk(4.5)68 b(T)-11 -b(esting)150 3072 y Fl(A)30 b(record)h(of)f(the)h(tests)g(I'v)m(e)g -(done.)150 3229 y(First,)f(some)h(data)g(sets:)225 3386 -y Fi(\017)60 b Fl(B:)32 b(a)f(directory)f(con)m(taining)h(6001)i -(\014les,)d(one)h(for)g(ev)m(ery)h(length)e(in)g(the)h(range)g(0)h(to)f -(6000)i(b)m(ytes.)330 3496 y(The)d(\014les)f(con)m(tain)i(random)e(lo)m -(w)m(ercase)j(letters.)41 b(18.7)32 b(megab)m(ytes.)225 -3633 y Fi(\017)60 b Fl(H:)36 b(m)m(y)f(home)h(directory)f(tree.)56 -b(Do)s(cumen)m(ts,)38 b(source)d(co)s(de,)i(mail)d(\014les,)i -(compressed)f(data.)57 b(H)330 3743 y(con)m(tains)39 -b(B,)h(and)f(also)g(a)g(directory)g(of)g(\014les)f(designed)g(as)i(b)s -(oundary)d(cases)j(for)f(the)g(sorting;)330 3853 y(mostly)30 -b(v)m(ery)h(rep)s(etitiv)m(e,)f(nast)m(y)h(\014les.)39 -b(565)32 b(megab)m(ytes.)225 3990 y Fi(\017)60 b Fl(A:)43 -b(directory)f(tree)i(holding)d(v)-5 b(arious)41 b(applications)g(built) -g(from)h(source:)66 b Fj(egcs)p Fl(,)45 b Fj(gcc-2.8.1)p -Fl(,)330 4100 y(KDE,)31 b(GTK,)f(Octa)m(v)m(e,)j(etc.)41 -b(2200)33 b(megab)m(ytes.)150 4285 y(The)i(tests)g(conducted)g(are)h -(as)f(follo)m(ws.)54 b(Eac)m(h)36 b(test)g(means)f(compressing)f(\(a)h -(cop)m(y)h(of)7 b(\))36 b(eac)m(h)g(\014le)e(in)150 4394 -y(the)d(data)g(set,)g(decompressing)e(it)h(and)g(comparing)f(it)h -(against)h(the)g(original.)150 4551 y(First,)26 b(a)g(bunc)m(h)f(of)h -(tests)h(with)d(blo)s(c)m(k)h(sizes)h(and)f(in)m(ternal)g(bu\013er)f -(sizes)i(set)g(v)m(ery)g(small,)g(to)g(detect)i(an)m(y)150 -4661 y(problems)g(with)g(the)i(blo)s(c)m(king)f(and)g(bu\013ering)e -(mec)m(hanisms.)40 b(This)28 b(required)g(mo)s(difying)f(the)j(source) -150 4770 y(co)s(de)h(so)f(as)h(to)g(try)f(to)h(break)g(it.)199 -4927 y(1.)61 b(Data)32 b(set)f(H,)g(with)e(bu\013er)g(size)h(of)h(1)g -(b)m(yte,)g(and)f(blo)s(c)m(k)g(size)g(of)g(23)i(b)m(ytes.)199 -5065 y(2.)61 b(Data)32 b(set)f(B,)g(bu\013er)e(sizes)h(1)h(b)m(yte,)g -(blo)s(c)m(k)f(size)g(1)h(b)m(yte.)199 5202 y(3.)61 b(As)30 -b(\(2\))i(but)d(small-mo)s(de)g(decompression.)199 5340 -y(4.)61 b(As)30 b(\(2\))i(with)d(blo)s(c)m(k)h(size)g(2)h(b)m(ytes.)p -eop -%%Page: 35 36 -35 35 bop 150 -116 a Fl(Chapter)30 b(4:)41 b(Miscellanea)2586 -b(35)199 299 y(5.)61 b(As)30 b(\(2\))i(with)d(blo)s(c)m(k)h(size)g(3)h -(b)m(ytes.)199 431 y(6.)61 b(As)30 b(\(2\))i(with)d(blo)s(c)m(k)h(size) -g(4)h(b)m(ytes.)199 564 y(7.)61 b(As)30 b(\(2\))i(with)d(blo)s(c)m(k)h -(size)g(5)h(b)m(ytes.)199 697 y(8.)61 b(As)30 b(\(2\))i(with)d(blo)s(c) -m(k)h(size)g(6)h(b)m(ytes)g(and)e(small-mo)s(de)g(decompression.)199 -829 y(9.)61 b(H)30 b(with)g(bu\013er)f(size)h(of)h(1)f(b)m(yte,)i(but)d -(normal)h(blo)s(c)m(k)g(size)g(\(up)f(to)j(900000)h(b)m(ytes\).)150 -1009 y(Then)c(some)i(tests)g(with)e(unmo)s(di\014ed)f(source)i(co)s -(de.)199 1166 y(1.)61 b(H,)31 b(all)e(settings)h(normal.)199 -1299 y(2.)61 b(As)30 b(\(1\),)i(with)d(small-mo)s(de)g(decompress.)199 -1431 y(3.)61 b(H,)31 b(compress)f(with)f(\015ag)i Fj(-1)p -Fl(.)199 1564 y(4.)61 b(H,)31 b(compress)f(with)f(\015ag)i -Fj(-s)p Fl(,)f(decompress)g(with)f(\015ag)i Fj(-s)p Fl(.)199 -1697 y(5.)61 b(F)-8 b(orw)m(ards)33 b(compatibilit)m(y:)45 -b(H,)33 b Fj(bzip2-0.1pl2)d Fl(compressing,)j Fj(bzip2-0.9.5)d -Fl(decompressing,)330 1806 y(all)f(settings)i(normal.)199 -1939 y(6.)61 b(Bac)m(kw)m(ards)23 b(compatibilit)m(y:)35 -b(H,)23 b Fj(bzip2-0.9.5)c Fl(compressing,)k Fj(bzip2-0.1pl2)c -Fl(decompressing,)330 2048 y(all)29 b(settings)i(normal.)199 -2181 y(7.)61 b(Bigger)31 b(tests:)41 b(A,)31 b(all)e(settings)i -(normal.)199 2314 y(8.)61 b(As)30 b(\(7\),)i(using)d(the)i(fallbac)m(k) -e(\(Sadak)-5 b(ane-lik)m(e\))31 b(sorting)f(algorithm.)199 -2446 y(9.)61 b(As)30 b(\(8\),)i(compress)e(with)f(\015ag)i -Fj(-1)p Fl(,)f(decompress)g(with)f(\015ag)i Fj(-s)p Fl(.)154 -2579 y(10.)61 b(H,)31 b(using)e(the)h(fallbac)m(k)g(sorting)g -(algorithm.)154 2711 y(11.)61 b(F)-8 b(orw)m(ards)33 -b(compatibilit)m(y:)45 b(A,)33 b Fj(bzip2-0.1pl2)d Fl(compressing,)j -Fj(bzip2-0.9.5)d Fl(decompressing,)330 2821 y(all)f(settings)i(normal.) -154 2954 y(12.)61 b(Bac)m(kw)m(ards)23 b(compatibilit)m(y:)35 -b(A,)23 b Fj(bzip2-0.9.5)c Fl(compressing,)k Fj(bzip2-0.1pl2)c -Fl(decompressing,)330 3063 y(all)29 b(settings)i(normal.)154 -3196 y(13.)61 b(Misc)39 b(test:)58 b(ab)s(out)39 b(400)h(megab)m(ytes)h -(of)e Fj(.tar)f Fl(\014les)f(with)h Fj(bzip2)f Fl(compiled)h(with)f -(Chec)m(k)m(er)j(\(a)330 3305 y(memory)30 b(access)i(error)e(detector,) -i(lik)m(e)e(Purify\).)154 3438 y(14.)61 b(Misc)30 b(tests)h(to)g(mak)m -(e)h(sure)d(it)h(builds)e(and)h(runs)g(ok)i(on)f(non-Lin)m(ux/x86)g -(platforms.)150 3618 y(These)35 b(tests)h(w)m(ere)f(conducted)g(on)g(a) -h(225)g(MHz)g(IDT)f(WinChip)d(mac)m(hine,)k(running)d(Lin)m(ux)g -(2.0.36.)150 3728 y(They)d(represen)m(t)g(nearly)g(a)h(w)m(eek)g(of)f -(con)m(tin)m(uous)g(computation.)41 b(All)29 b(tests)i(completed)f -(successfully)-8 b(.)150 4003 y Fk(4.6)68 b(F)-11 b(urther)44 -b(reading)150 4196 y Fj(bzip2)28 b Fl(is)h(not)h(researc)m(h)g(w)m -(ork,)g(in)e(the)i(sense)g(that)g(it)f(do)s(esn't)g(presen)m(t)h(an)m -(y)g(new)f(ideas.)40 b(Rather,)30 b(it's)150 4306 y(an)g(engineering)f -(exercise)i(based)f(on)g(existing)g(ideas.)150 4463 y(F)-8 -b(our)31 b(do)s(cumen)m(ts)f(describ)s(e)e(essen)m(tially)i(all)f(the)i -(ideas)e(b)s(ehind)f Fj(bzip2)p Fl(:)390 4614 y Fj(Michael)46 -b(Burrows)g(and)h(D.)g(J.)g(Wheeler:)485 4717 y("A)h(block-sorting)c -(lossless)h(data)i(compression)e(algorithm")533 4821 -y(10th)i(May)g(1994.)533 4925 y(Digital)f(SRC)h(Research)e(Report)i -(124.)533 5029 y(ftp://ftp.digital.com/pub)o(/DEC)o(/SR)o(C/re)o(sear)o -(ch-)o(repo)o(rts/)o(SRC)o(-124)o(.ps.)o(gz)533 5132 -y(If)g(you)g(have)g(trouble)f(finding)g(it,)g(try)h(searching)f(at)h -(the)533 5236 y(New)g(Zealand)f(Digital)g(Library,)f -(http://www.nzdl.org.)p eop -%%Page: 36 37 -36 36 bop 150 -116 a Fl(Chapter)30 b(4:)41 b(Miscellanea)2586 -b(36)390 299 y Fj(Daniel)46 b(S.)h(Hirschberg)e(and)i(Debra)g(A.)g -(LeLewer)485 403 y("Efficient)e(Decoding)h(of)h(Prefix)f(Codes")533 -506 y(Communications)e(of)j(the)g(ACM,)g(April)f(1990,)h(Vol)f(33,)h -(Number)f(4.)533 610 y(You)h(might)f(be)i(able)e(to)h(get)g(an)h -(electronic)d(copy)h(of)h(this)676 714 y(from)g(the)g(ACM)g(Digital)f -(Library.)390 922 y(David)g(J.)i(Wheeler)533 1025 y(Program)e(bred3.c)g -(and)h(accompanying)d(document)i(bred3.ps.)533 1129 y(This)h(contains)e -(the)i(idea)g(behind)f(the)h(multi-table)e(Huffman)533 -1233 y(coding)h(scheme.)533 1337 y(ftp://ftp.cl.cam.ac.uk/us)o(ers/)o -(djw)o(3/)390 1544 y(Jon)h(L.)g(Bentley)f(and)h(Robert)f(Sedgewick)485 -1648 y("Fast)h(Algorithms)e(for)i(Sorting)f(and)g(Searching)g(Strings") -533 1752 y(Available)f(from)i(Sedgewick's)e(web)i(page,)533 -1856 y(www.cs.princeton.edu/~rs)150 2012 y Fl(The)29 -b(follo)m(wing)f(pap)s(er)g(giv)m(es)h(v)-5 b(aluable)28 -b(additional)g(insigh)m(ts)f(in)m(to)j(the)f(algorithm,)g(but)g(is)f -(not)i(imme-)150 2122 y(diately)g(the)g(basis)f(of)i(an)m(y)g(co)s(de)f -(used)g(in)f(bzip2.)390 2273 y Fj(Peter)46 b(Fenwick:)533 -2377 y(Block)h(Sorting)e(Text)i(Compression)533 2481 -y(Proceedings)e(of)i(the)g(19th)g(Australasian)d(Computer)i(Science)f -(Conference,)629 2584 y(Melbourne,)g(Australia.)92 b(Jan)47 -b(31)g(-)h(Feb)f(2,)g(1996.)533 2688 y(ftp://ftp.cs.auckland.ac.)o -(nz/p)o(ub/)o(pete)o(r-f/)o(ACS)o(C96p)o(aper)o(.ps)150 -2845 y Fl(Kunihik)m(o)28 b(Sadak)-5 b(ane's)31 b(sorting)e(algorithm,)h -(men)m(tioned)g(ab)s(o)m(v)m(e,)i(is)d(a)m(v)-5 b(ailable)30 -b(from:)390 2996 y Fj(http://naomi.is.s.u-toky)o(o.ac)o(.jp/)o(~sa)o -(da/p)o(aper)o(s/S)o(ada9)o(8b.p)o(s.g)o(z)150 3153 y -Fl(The)41 b(Man)m(b)s(er-My)m(ers)g(su\016x)g(arra)m(y)g(construction)g -(algorithm)f(is)g(describ)s(ed)f(in)h(a)i(pap)s(er)e(a)m(v)-5 -b(ailable)150 3262 y(from:)390 3413 y Fj(http://www.cs.arizona.ed)o -(u/pe)o(ople)o(/ge)o(ne/P)o(APER)o(S/s)o(uffi)o(x.ps)150 -3570 y Fl(Finally)d(,)33 b(the)h(follo)m(wing)e(pap)s(er)h(do)s(cumen)m -(ts)g(some)h(recen)m(t)h(in)m(v)m(estigations)e(I)h(made)f(in)m(to)h -(the)g(p)s(erfor-)150 3680 y(mance)d(of)f(sorting)g(algorithms:)390 -3831 y Fj(Julian)46 b(Seward:)533 3935 y(On)h(the)g(Performance)e(of)i -(BWT)g(Sorting)f(Algorithms)533 4038 y(Proceedings)f(of)i(the)g(IEEE)g -(Data)f(Compression)f(Conference)g(2000)629 4142 y(Snowbird,)g(Utah.)94 -b(28-30)46 b(March)h(2000.)p eop -%%Page: -1 38 --1 37 bop 3725 -116 a Fl(i)150 299 y Fh(T)-13 b(able)54 -b(of)g(Con)l(ten)l(ts)150 641 y Fk(1)135 b(In)l(tro)t(duction)15 -b Fb(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f -(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)60 -b Fk(2)150 911 y(2)135 b(Ho)l(w)45 b(to)h(use)f Fd(bzip2)31 -b Fb(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g -(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)78 b Fk(3)1047 -1048 y Fl(NAME)20 b Fa(.)c(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b Fl(3)1047 -1157 y(SYNOPSIS)21 b Fa(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)h(.)f(.)g(.)50 b Fl(3)1047 1267 y(DESCRIPTION)10 -b Fa(.)j(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 -b Fl(3)1047 1377 y(OPTIONS)16 b Fa(.)d(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)45 b Fl(4)1047 -1486 y(MEMOR)-8 b(Y)31 b(MANA)m(GEMENT)14 b Fa(.)j(.)e(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 -b Fl(6)1047 1596 y(RECO)m(VERING)30 b(D)m(A)-8 b(T)g(A)32 -b(FR)m(OM)f(D)m(AMA)m(GED)i(FILES)1256 1705 y Fa(.)15 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)57 b Fl(7)1047 1815 y(PERF)m(ORMANCE)30 -b(NOTES)9 b Fa(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)38 b Fl(7)1047 1924 -y(CA)-10 b(VEA)i(TS)10 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b Fl(8)1047 2034 -y(A)m(UTHOR)23 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b Fl(8)150 2276 y Fk(3)135 -b(Programming)46 b(with)f Fd(libbzip2)29 b Fb(.)16 b(.)j(.)h(.)f(.)h(.) -f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)74 b Fk(9)449 -2413 y Fl(3.1)92 b(T)-8 b(op-lev)m(el)30 b(structure)24 -b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h -(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)54 b Fl(9)748 2523 y(3.1.1)93 b(Lo)m(w-lev)m(el)30 -b(summary)23 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)53 -b Fl(9)748 2633 y(3.1.2)93 b(High-lev)m(el)29 b(summary)12 -b Fa(.)i(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)41 b -Fl(9)748 2742 y(3.1.3)93 b(Utilit)m(y)29 b(functions)g(summary)12 -b Fa(.)h(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)41 b Fl(10)449 2852 y(3.2)92 b(Error)29 -b(handling)18 b Fa(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b Fl(10)449 -2961 y(3.3)92 b(Lo)m(w-lev)m(el)31 b(in)m(terface)d Fa(.)15 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)57 b Fl(12)748 3071 y(3.3.1)93 b Fj(BZ2_bzCompressInit)21 -b Fa(.)9 b(.)15 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b Fl(12)748 -3181 y(3.3.2)93 b Fj(BZ2_bzCompress)9 b Fa(.)h(.)15 b(.)g(.)g(.)g(.)g -(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)38 b Fl(14)748 3290 y(3.3.3)93 -b Fj(BZ2_bzCompressEnd)23 b Fa(.)10 b(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)52 b Fl(17)748 3400 y(3.3.4)93 b Fj(BZ2_bzDecompressInit)16 -b Fa(.)9 b(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h -(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b Fl(17)748 3509 -y(3.3.5)93 b Fj(BZ2_bzDecompress)21 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)55 b Fl(17)748 3619 y(3.3.6)93 b Fj(BZ2_bzDecompressEnd)18 -b Fa(.)10 b(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b Fl(19)449 -3729 y(3.4)92 b(High-lev)m(el)30 b(in)m(terface)16 b -Fa(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h -(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)45 b Fl(19)748 3838 y(3.4.1)93 b Fj(BZ2_bzReadOpen)9 -b Fa(.)h(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)38 -b Fl(19)748 3948 y(3.4.2)93 b Fj(BZ2_bzRead)18 b Fa(.)12 -b(.)j(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 -b Fl(20)748 4057 y(3.4.3)93 b Fj(BZ2_bzReadGetUnused)18 -b Fa(.)10 b(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b Fl(22)748 -4167 y(3.4.4)93 b Fj(BZ2_bzReadClose)23 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)57 b Fl(22)748 4276 y(3.4.5)93 b -Fj(BZ2_bzWriteOpen)23 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)57 b Fl(22)748 4386 y(3.4.6)93 b Fj(BZ2_bzWrite)16 -b Fa(.)11 b(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -45 b Fl(23)748 4496 y(3.4.7)93 b Fj(BZ2_bzWriteClose)21 -b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b Fl(23)748 -4605 y(3.4.8)93 b(Handling)28 b(em)m(b)s(edded)h(compressed)h(data)h -(streams)17 b Fa(.)f(.)f(.)g(.)46 b Fl(24)748 4715 y(3.4.9)93 -b(Standard)29 b(\014le-reading/writing)e(co)s(de)22 b -Fa(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52 -b Fl(25)449 4824 y(3.5)92 b(Utilit)m(y)29 b(functions)f -Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)59 b Fl(26)748 4934 y(3.5.1)93 b -Fj(BZ2_bzBuffToBuffCompres)o(s)22 b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)57 b Fl(26)748 -5044 y(3.5.2)93 b Fj(BZ2_bzBuffToBuffDecompr)o(ess)17 -b Fa(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -53 b Fl(27)449 5153 y(3.6)92 b Fj(zlib)29 b Fl(compatibilit)m(y)g -(functions)23 b Fa(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h -(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52 -b Fl(28)449 5263 y(3.7)92 b(Using)30 b(the)g(library)e(in)h(a)i -Fj(stdio)p Fl(-free)e(en)m(vironmen)m(t)23 b Fa(.)15 -b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)52 b Fl(29)p -eop -%%Page: -2 39 --2 38 bop 3699 -116 a Fl(ii)748 83 y(3.7.1)93 b(Getting)31 -b(rid)d(of)j Fj(stdio)20 b Fa(.)13 b(.)i(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 -b Fl(29)748 193 y(3.7.2)93 b(Critical)28 b(error)i(handling)22 -b Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b Fl(29)449 302 -y(3.8)92 b(Making)30 b(a)h(Windo)m(ws)e(DLL)15 b Fa(.)h(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)44 b Fl(30)150 545 -y Fk(4)135 b(Miscellanea)11 b Fb(.)21 b(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)h -(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)g(.)h(.)56 b Fk(31)449 682 y Fl(4.1)92 b(Limitations)29 -b(of)h(the)h(compressed)f(\014le)f(format)9 b Fa(.)15 -b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)38 -b Fl(31)449 791 y(4.2)92 b(P)m(ortabilit)m(y)30 b(issues)14 -b Fa(.)f(.)j(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)h(.)f(.)g(.)43 b Fl(32)449 901 y(4.3)92 b(Rep)s(orting)29 -b(bugs)f Fa(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 b Fl(32)449 1010 y(4.4)92 -b(Did)29 b(y)m(ou)i(get)h(the)e(righ)m(t)g(pac)m(k)-5 -b(age?)22 b Fa(.)17 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h -(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 -b Fl(34)449 1120 y(4.5)92 b(T)-8 b(esting)16 b Fa(.)f(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)45 b Fl(34)449 1230 y(4.6)92 -b(F)-8 b(urther)30 b(reading)22 b Fa(.)14 b(.)h(.)g(.)h(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)51 -b Fl(35)p eop -%%Trailer -end -userdict /end-hook known{end-hook}if -%%EOF diff --git a/winsup/bz2lib/manual.texi b/winsup/bz2lib/manual.texi deleted file mode 100644 index 336776ab8..000000000 --- a/winsup/bz2lib/manual.texi +++ /dev/null @@ -1,2215 +0,0 @@ -\input texinfo @c -*- Texinfo -*- -@setfilename bzip2.info - -@ignore -This file documents bzip2 version 1.0, and associated library -libbzip2, written by Julian Seward (jseward@acm.org). - -Copyright (C) 1996-2000 Julian R Seward - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for verbatim copies. -@end ignore - -@ifinfo -@format -START-INFO-DIR-ENTRY -* Bzip2: (bzip2). A program and library for data compression. -END-INFO-DIR-ENTRY -@end format - -@end ifinfo - -@iftex -@c @finalout -@settitle bzip2 and libbzip2 -@titlepage -@title bzip2 and libbzip2 -@subtitle a program and library for data compression -@subtitle copyright (C) 1996-2000 Julian Seward -@subtitle version 1.0 of 21 March 2000 -@author Julian Seward - -@end titlepage - -@parindent 0mm -@parskip 2mm - -@end iftex -@node Top, Overview, (dir), (dir) - -This program, @code{bzip2}, -and associated library @code{libbzip2}, are -Copyright (C) 1996-2000 Julian R Seward. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -@itemize @bullet -@item - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -@item - The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. -@item - Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. -@item - The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. -@end itemize -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - -Julian Seward, Cambridge, UK. - -@code{jseward@@acm.org} - -@code{http://sourceware.cygnus.com/bzip2} - -@code{http://www.cacheprof.org} - -@code{http://www.muraroa.demon.co.uk} - -@code{bzip2}/@code{libbzip2} version 1.0 of 21 March 2000. - -PATENTS: To the best of my knowledge, @code{bzip2} does not use any patented -algorithms. However, I do not have the resources available to carry out -a full patent search. Therefore I cannot give any guarantee of the -above statement. - - - - - - - -@node Overview, Implementation, Top, Top -@chapter Introduction - -@code{bzip2} compresses files using the Burrows-Wheeler -block-sorting text compression algorithm, and Huffman coding. -Compression is generally considerably better than that -achieved by more conventional LZ77/LZ78-based compressors, -and approaches the performance of the PPM family of statistical compressors. - -@code{bzip2} is built on top of @code{libbzip2}, a flexible library -for handling compressed data in the @code{bzip2} format. This manual -describes both how to use the program and -how to work with the library interface. Most of the -manual is devoted to this library, not the program, -which is good news if your interest is only in the program. - -Chapter 2 describes how to use @code{bzip2}; this is the only part -you need to read if you just want to know how to operate the program. -Chapter 3 describes the programming interfaces in detail, and -Chapter 4 records some miscellaneous notes which I thought -ought to be recorded somewhere. - - -@chapter How to use @code{bzip2} - -This chapter contains a copy of the @code{bzip2} man page, -and nothing else. - -@quotation - -@unnumberedsubsubsec NAME -@itemize -@item @code{bzip2}, @code{bunzip2} -- a block-sorting file compressor, v1.0 -@item @code{bzcat} -- decompresses files to stdout -@item @code{bzip2recover} -- recovers data from damaged bzip2 files -@end itemize - -@unnumberedsubsubsec SYNOPSIS -@itemize -@item @code{bzip2} [ -cdfkqstvzVL123456789 ] [ filenames ... ] -@item @code{bunzip2} [ -fkvsVL ] [ filenames ... ] -@item @code{bzcat} [ -s ] [ filenames ... ] -@item @code{bzip2recover} filename -@end itemize - -@unnumberedsubsubsec DESCRIPTION - -@code{bzip2} compresses files using the Burrows-Wheeler block sorting -text compression algorithm, and Huffman coding. Compression is -generally considerably better than that achieved by more conventional -LZ77/LZ78-based compressors, and approaches the performance of the PPM -family of statistical compressors. - -The command-line options are deliberately very similar to those of GNU -@code{gzip}, but they are not identical. - -@code{bzip2} expects a list of file names to accompany the command-line -flags. Each file is replaced by a compressed version of itself, with -the name @code{original_name.bz2}. Each compressed file has the same -modification date, permissions, and, when possible, ownership as the -corresponding original, so that these properties can be correctly -restored at decompression time. File name handling is naive in the -sense that there is no mechanism for preserving original file names, -permissions, ownerships or dates in filesystems which lack these -concepts, or have serious file name length restrictions, such as MS-DOS. - -@code{bzip2} and @code{bunzip2} will by default not overwrite existing -files. If you want this to happen, specify the @code{-f} flag. - -If no file names are specified, @code{bzip2} compresses from standard -input to standard output. In this case, @code{bzip2} will decline to -write compressed output to a terminal, as this would be entirely -incomprehensible and therefore pointless. - -@code{bunzip2} (or @code{bzip2 -d}) decompresses all -specified files. Files which were not created by @code{bzip2} -will be detected and ignored, and a warning issued. -@code{bzip2} attempts to guess the filename for the decompressed file -from that of the compressed file as follows: -@itemize -@item @code{filename.bz2 } becomes @code{filename} -@item @code{filename.bz } becomes @code{filename} -@item @code{filename.tbz2} becomes @code{filename.tar} -@item @code{filename.tbz } becomes @code{filename.tar} -@item @code{anyothername } becomes @code{anyothername.out} -@end itemize -If the file does not end in one of the recognised endings, -@code{.bz2}, @code{.bz}, -@code{.tbz2} or @code{.tbz}, @code{bzip2} complains that it cannot -guess the name of the original file, and uses the original name -with @code{.out} appended. - -As with compression, supplying no -filenames causes decompression from standard input to standard output. - -@code{bunzip2} will correctly decompress a file which is the -concatenation of two or more compressed files. The result is the -concatenation of the corresponding uncompressed files. Integrity -testing (@code{-t}) of concatenated compressed files is also supported. - -You can also compress or decompress files to the standard output by -giving the @code{-c} flag. Multiple files may be compressed and -decompressed like this. The resulting outputs are fed sequentially to -stdout. Compression of multiple files in this manner generates a stream -containing multiple compressed file representations. Such a stream -can be decompressed correctly only by @code{bzip2} version 0.9.0 or -later. Earlier versions of @code{bzip2} will stop after decompressing -the first file in the stream. - -@code{bzcat} (or @code{bzip2 -dc}) decompresses all specified files to -the standard output. - -@code{bzip2} will read arguments from the environment variables -@code{BZIP2} and @code{BZIP}, in that order, and will process them -before any arguments read from the command line. This gives a -convenient way to supply default arguments. - -Compression is always performed, even if the compressed file is slightly -larger than the original. Files of less than about one hundred bytes -tend to get larger, since the compression mechanism has a constant -overhead in the region of 50 bytes. Random data (including the output -of most file compressors) is coded at about 8.05 bits per byte, giving -an expansion of around 0.5%. - -As a self-check for your protection, @code{bzip2} uses 32-bit CRCs to -make sure that the decompressed version of a file is identical to the -original. This guards against corruption of the compressed data, and -against undetected bugs in @code{bzip2} (hopefully very unlikely). The -chances of data corruption going undetected is microscopic, about one -chance in four billion for each file processed. Be aware, though, that -the check occurs upon decompression, so it can only tell you that -something is wrong. It can't help you recover the original uncompressed -data. You can use @code{bzip2recover} to try to recover data from -damaged files. - -Return values: 0 for a normal exit, 1 for environmental problems (file -not found, invalid flags, I/O errors, &c), 2 to indicate a corrupt -compressed file, 3 for an internal consistency error (eg, bug) which -caused @code{bzip2} to panic. - - -@unnumberedsubsubsec OPTIONS -@table @code -@item -c --stdout -Compress or decompress to standard output. -@item -d --decompress -Force decompression. @code{bzip2}, @code{bunzip2} and @code{bzcat} are -really the same program, and the decision about what actions to take is -done on the basis of which name is used. This flag overrides that -mechanism, and forces bzip2 to decompress. -@item -z --compress -The complement to @code{-d}: forces compression, regardless of the -invokation name. -@item -t --test -Check integrity of the specified file(s), but don't decompress them. -This really performs a trial decompression and throws away the result. -@item -f --force -Force overwrite of output files. Normally, @code{bzip2} will not overwrite -existing output files. Also forces @code{bzip2} to break hard links -to files, which it otherwise wouldn't do. -@item -k --keep -Keep (don't delete) input files during compression -or decompression. -@item -s --small -Reduce memory usage, for compression, decompression and testing. Files -are decompressed and tested using a modified algorithm which only -requires 2.5 bytes per block byte. This means any file can be -decompressed in 2300k of memory, albeit at about half the normal speed. - -During compression, @code{-s} selects a block size of 200k, which limits -memory use to around the same figure, at the expense of your compression -ratio. In short, if your machine is low on memory (8 megabytes or -less), use -s for everything. See MEMORY MANAGEMENT below. -@item -q --quiet -Suppress non-essential warning messages. Messages pertaining to -I/O errors and other critical events will not be suppressed. -@item -v --verbose -Verbose mode -- show the compression ratio for each file processed. -Further @code{-v}'s increase the verbosity level, spewing out lots of -information which is primarily of interest for diagnostic purposes. -@item -L --license -V --version -Display the software version, license terms and conditions. -@item -1 to -9 -Set the block size to 100 k, 200 k .. 900 k when compressing. Has no -effect when decompressing. See MEMORY MANAGEMENT below. -@item -- -Treats all subsequent arguments as file names, even if they start -with a dash. This is so you can handle files with names beginning -with a dash, for example: @code{bzip2 -- -myfilename}. -@item --repetitive-fast -@item --repetitive-best -These flags are redundant in versions 0.9.5 and above. They provided -some coarse control over the behaviour of the sorting algorithm in -earlier versions, which was sometimes useful. 0.9.5 and above have an -improved algorithm which renders these flags irrelevant. -@end table - - -@unnumberedsubsubsec MEMORY MANAGEMENT - -@code{bzip2} compresses large files in blocks. The block size affects -both the compression ratio achieved, and the amount of memory needed for -compression and decompression. The flags @code{-1} through @code{-9} -specify the block size to be 100,000 bytes through 900,000 bytes (the -default) respectively. At decompression time, the block size used for -compression is read from the header of the compressed file, and -@code{bunzip2} then allocates itself just enough memory to decompress -the file. Since block sizes are stored in compressed files, it follows -that the flags @code{-1} to @code{-9} are irrelevant to and so ignored -during decompression. - -Compression and decompression requirements, in bytes, can be estimated -as: -@example - Compression: 400k + ( 8 x block size ) - - Decompression: 100k + ( 4 x block size ), or - 100k + ( 2.5 x block size ) -@end example -Larger block sizes give rapidly diminishing marginal returns. Most of -the compression comes from the first two or three hundred k of block -size, a fact worth bearing in mind when using @code{bzip2} on small machines. -It is also important to appreciate that the decompression memory -requirement is set at compression time by the choice of block size. - -For files compressed with the default 900k block size, @code{bunzip2} -will require about 3700 kbytes to decompress. To support decompression -of any file on a 4 megabyte machine, @code{bunzip2} has an option to -decompress using approximately half this amount of memory, about 2300 -kbytes. Decompression speed is also halved, so you should use this -option only where necessary. The relevant flag is @code{-s}. - -In general, try and use the largest block size memory constraints allow, -since that maximises the compression achieved. Compression and -decompression speed are virtually unaffected by block size. - -Another significant point applies to files which fit in a single block --- that means most files you'd encounter using a large block size. The -amount of real memory touched is proportional to the size of the file, -since the file is smaller than a block. For example, compressing a file -20,000 bytes long with the flag @code{-9} will cause the compressor to -allocate around 7600k of memory, but only touch 400k + 20000 * 8 = 560 -kbytes of it. Similarly, the decompressor will allocate 3700k but only -touch 100k + 20000 * 4 = 180 kbytes. - -Here is a table which summarises the maximum memory usage for different -block sizes. Also recorded is the total compressed size for 14 files of -the Calgary Text Compression Corpus totalling 3,141,622 bytes. This -column gives some feel for how compression varies with block size. -These figures tend to understate the advantage of larger block sizes for -larger files, since the Corpus is dominated by smaller files. -@example - Compress Decompress Decompress Corpus - Flag usage usage -s usage Size - - -1 1200k 500k 350k 914704 - -2 2000k 900k 600k 877703 - -3 2800k 1300k 850k 860338 - -4 3600k 1700k 1100k 846899 - -5 4400k 2100k 1350k 845160 - -6 5200k 2500k 1600k 838626 - -7 6100k 2900k 1850k 834096 - -8 6800k 3300k 2100k 828642 - -9 7600k 3700k 2350k 828642 -@end example - -@unnumberedsubsubsec RECOVERING DATA FROM DAMAGED FILES - -@code{bzip2} compresses files in blocks, usually 900kbytes long. Each -block is handled independently. If a media or transmission error causes -a multi-block @code{.bz2} file to become damaged, it may be possible to -recover data from the undamaged blocks in the file. - -The compressed representation of each block is delimited by a 48-bit -pattern, which makes it possible to find the block boundaries with -reasonable certainty. Each block also carries its own 32-bit CRC, so -damaged blocks can be distinguished from undamaged ones. - -@code{bzip2recover} is a simple program whose purpose is to search for -blocks in @code{.bz2} files, and write each block out into its own -@code{.bz2} file. You can then use @code{bzip2 -t} to test the -integrity of the resulting files, and decompress those which are -undamaged. - -@code{bzip2recover} -takes a single argument, the name of the damaged file, -and writes a number of files @code{rec0001file.bz2}, - @code{rec0002file.bz2}, etc, containing the extracted blocks. - The output filenames are designed so that the use of - wildcards in subsequent processing -- for example, -@code{bzip2 -dc rec*file.bz2 > recovered_data} -- lists the files in - the correct order. - -@code{bzip2recover} should be of most use dealing with large @code{.bz2} - files, as these will contain many blocks. It is clearly - futile to use it on damaged single-block files, since a - damaged block cannot be recovered. If you wish to minimise -any potential data loss through media or transmission errors, -you might consider compressing with a smaller - block size. - - -@unnumberedsubsubsec PERFORMANCE NOTES - -The sorting phase of compression gathers together similar strings in the -file. Because of this, files containing very long runs of repeated -symbols, like "aabaabaabaab ..." (repeated several hundred times) may -compress more slowly than normal. Versions 0.9.5 and above fare much -better than previous versions in this respect. The ratio between -worst-case and average-case compression time is in the region of 10:1. -For previous versions, this figure was more like 100:1. You can use the -@code{-vvvv} option to monitor progress in great detail, if you want. - -Decompression speed is unaffected by these phenomena. - -@code{bzip2} usually allocates several megabytes of memory to operate -in, and then charges all over it in a fairly random fashion. This means -that performance, both for compressing and decompressing, is largely -determined by the speed at which your machine can service cache misses. -Because of this, small changes to the code to reduce the miss rate have -been observed to give disproportionately large performance improvements. -I imagine @code{bzip2} will perform best on machines with very large -caches. - - -@unnumberedsubsubsec CAVEATS - -I/O error messages are not as helpful as they could be. @code{bzip2} -tries hard to detect I/O errors and exit cleanly, but the details of -what the problem is sometimes seem rather misleading. - -This manual page pertains to version 1.0 of @code{bzip2}. Compressed -data created by this version is entirely forwards and backwards -compatible with the previous public releases, versions 0.1pl2, 0.9.0 and -0.9.5, but with the following exception: 0.9.0 and above can correctly -decompress multiple concatenated compressed files. 0.1pl2 cannot do -this; it will stop after decompressing just the first file in the -stream. - -@code{bzip2recover} uses 32-bit integers to represent bit positions in -compressed files, so it cannot handle compressed files more than 512 -megabytes long. This could easily be fixed. - - -@unnumberedsubsubsec AUTHOR -Julian Seward, @code{jseward@@acm.org}. - -The ideas embodied in @code{bzip2} are due to (at least) the following -people: Michael Burrows and David Wheeler (for the block sorting -transformation), David Wheeler (again, for the Huffman coder), Peter -Fenwick (for the structured coding model in the original @code{bzip}, -and many refinements), and Alistair Moffat, Radford Neal and Ian Witten -(for the arithmetic coder in the original @code{bzip}). I am much -indebted for their help, support and advice. See the manual in the -source distribution for pointers to sources of documentation. Christian -von Roques encouraged me to look for faster sorting algorithms, so as to -speed up compression. Bela Lubkin encouraged me to improve the -worst-case compression performance. Many people sent patches, helped -with portability problems, lent machines, gave advice and were generally -helpful. - -@end quotation - - - - -@chapter Programming with @code{libbzip2} - -This chapter describes the programming interface to @code{libbzip2}. - -For general background information, particularly about memory -use and performance aspects, you'd be well advised to read Chapter 2 -as well. - -@section Top-level structure - -@code{libbzip2} is a flexible library for compressing and decompressing -data in the @code{bzip2} data format. Although packaged as a single -entity, it helps to regard the library as three separate parts: the low -level interface, and the high level interface, and some utility -functions. - -The structure of @code{libbzip2}'s interfaces is similar to -that of Jean-loup Gailly's and Mark Adler's excellent @code{zlib} -library. - -All externally visible symbols have names beginning @code{BZ2_}. -This is new in version 1.0. The intention is to minimise pollution -of the namespaces of library clients. - -@subsection Low-level summary - -This interface provides services for compressing and decompressing -data in memory. There's no provision for dealing with files, streams -or any other I/O mechanisms, just straight memory-to-memory work. -In fact, this part of the library can be compiled without inclusion -of @code{stdio.h}, which may be helpful for embedded applications. - -The low-level part of the library has no global variables and -is therefore thread-safe. - -Six routines make up the low level interface: -@code{BZ2_bzCompressInit}, @code{BZ2_bzCompress}, and @* @code{BZ2_bzCompressEnd} -for compression, -and a corresponding trio @code{BZ2_bzDecompressInit}, @* @code{BZ2_bzDecompress} -and @code{BZ2_bzDecompressEnd} for decompression. -The @code{*Init} functions allocate -memory for compression/decompression and do other -initialisations, whilst the @code{*End} functions close down operations -and release memory. - -The real work is done by @code{BZ2_bzCompress} and @code{BZ2_bzDecompress}. -These compress and decompress data from a user-supplied input buffer -to a user-supplied output buffer. These buffers can be any size; -arbitrary quantities of data are handled by making repeated calls -to these functions. This is a flexible mechanism allowing a -consumer-pull style of activity, or producer-push, or a mixture of -both. - - - -@subsection High-level summary - -This interface provides some handy wrappers around the low-level -interface to facilitate reading and writing @code{bzip2} format -files (@code{.bz2} files). The routines provide hooks to facilitate -reading files in which the @code{bzip2} data stream is embedded -within some larger-scale file structure, or where there are -multiple @code{bzip2} data streams concatenated end-to-end. - -For reading files, @code{BZ2_bzReadOpen}, @code{BZ2_bzRead}, -@code{BZ2_bzReadClose} and @* @code{BZ2_bzReadGetUnused} are supplied. For -writing files, @code{BZ2_bzWriteOpen}, @code{BZ2_bzWrite} and -@code{BZ2_bzWriteFinish} are available. - -As with the low-level library, no global variables are used -so the library is per se thread-safe. However, if I/O errors -occur whilst reading or writing the underlying compressed files, -you may have to consult @code{errno} to determine the cause of -the error. In that case, you'd need a C library which correctly -supports @code{errno} in a multithreaded environment. - -To make the library a little simpler and more portable, -@code{BZ2_bzReadOpen} and @code{BZ2_bzWriteOpen} require you to pass them file -handles (@code{FILE*}s) which have previously been opened for reading or -writing respectively. That avoids portability problems associated with -file operations and file attributes, whilst not being much of an -imposition on the programmer. - - - -@subsection Utility functions summary -For very simple needs, @code{BZ2_bzBuffToBuffCompress} and -@code{BZ2_bzBuffToBuffDecompress} are provided. These compress -data in memory from one buffer to another buffer in a single -function call. You should assess whether these functions -fulfill your memory-to-memory compression/decompression -requirements before investing effort in understanding the more -general but more complex low-level interface. - -Yoshioka Tsuneo (@code{QWF00133@@niftyserve.or.jp} / -@code{tsuneo-y@@is.aist-nara.ac.jp}) has contributed some functions to -give better @code{zlib} compatibility. These functions are -@code{BZ2_bzopen}, @code{BZ2_bzread}, @code{BZ2_bzwrite}, @code{BZ2_bzflush}, -@code{BZ2_bzclose}, -@code{BZ2_bzerror} and @code{BZ2_bzlibVersion}. You may find these functions -more convenient for simple file reading and writing, than those in the -high-level interface. These functions are not (yet) officially part of -the library, and are minimally documented here. If they break, you -get to keep all the pieces. I hope to document them properly when time -permits. - -Yoshioka also contributed modifications to allow the library to be -built as a Windows DLL. - - -@section Error handling - -The library is designed to recover cleanly in all situations, including -the worst-case situation of decompressing random data. I'm not -100% sure that it can always do this, so you might want to add -a signal handler to catch segmentation violations during decompression -if you are feeling especially paranoid. I would be interested in -hearing more about the robustness of the library to corrupted -compressed data. - -Version 1.0 is much more robust in this respect than -0.9.0 or 0.9.5. Investigations with Checker (a tool for -detecting problems with memory management, similar to Purify) -indicate that, at least for the few files I tested, all single-bit -errors in the decompressed data are caught properly, with no -segmentation faults, no reads of uninitialised data and no -out of range reads or writes. So it's certainly much improved, -although I wouldn't claim it to be totally bombproof. - -The file @code{bzlib.h} contains all definitions needed to use -the library. In particular, you should definitely not include -@code{bzlib_private.h}. - -In @code{bzlib.h}, the various return values are defined. The following -list is not intended as an exhaustive description of the circumstances -in which a given value may be returned -- those descriptions are given -later. Rather, it is intended to convey the rough meaning of each -return value. The first five actions are normal and not intended to -denote an error situation. -@table @code -@item BZ_OK -The requested action was completed successfully. -@item BZ_RUN_OK -@itemx BZ_FLUSH_OK -@itemx BZ_FINISH_OK -In @code{BZ2_bzCompress}, the requested flush/finish/nothing-special action -was completed successfully. -@item BZ_STREAM_END -Compression of data was completed, or the logical stream end was -detected during decompression. -@end table - -The following return values indicate an error of some kind. -@table @code -@item BZ_CONFIG_ERROR -Indicates that the library has been improperly compiled on your -platform -- a major configuration error. Specifically, it means -that @code{sizeof(char)}, @code{sizeof(short)} and @code{sizeof(int)} -are not 1, 2 and 4 respectively, as they should be. Note that the -library should still work properly on 64-bit platforms which follow -the LP64 programming model -- that is, where @code{sizeof(long)} -and @code{sizeof(void*)} are 8. Under LP64, @code{sizeof(int)} is -still 4, so @code{libbzip2}, which doesn't use the @code{long} type, -is OK. -@item BZ_SEQUENCE_ERROR -When using the library, it is important to call the functions in the -correct sequence and with data structures (buffers etc) in the correct -states. @code{libbzip2} checks as much as it can to ensure this is -happening, and returns @code{BZ_SEQUENCE_ERROR} if not. Code which -complies precisely with the function semantics, as detailed below, -should never receive this value; such an event denotes buggy code -which you should investigate. -@item BZ_PARAM_ERROR -Returned when a parameter to a function call is out of range -or otherwise manifestly incorrect. As with @code{BZ_SEQUENCE_ERROR}, -this denotes a bug in the client code. The distinction between -@code{BZ_PARAM_ERROR} and @code{BZ_SEQUENCE_ERROR} is a bit hazy, but still worth -making. -@item BZ_MEM_ERROR -Returned when a request to allocate memory failed. Note that the -quantity of memory needed to decompress a stream cannot be determined -until the stream's header has been read. So @code{BZ2_bzDecompress} and -@code{BZ2_bzRead} may return @code{BZ_MEM_ERROR} even though some of -the compressed data has been read. The same is not true for -compression; once @code{BZ2_bzCompressInit} or @code{BZ2_bzWriteOpen} have -successfully completed, @code{BZ_MEM_ERROR} cannot occur. -@item BZ_DATA_ERROR -Returned when a data integrity error is detected during decompression. -Most importantly, this means when stored and computed CRCs for the -data do not match. This value is also returned upon detection of any -other anomaly in the compressed data. -@item BZ_DATA_ERROR_MAGIC -As a special case of @code{BZ_DATA_ERROR}, it is sometimes useful to -know when the compressed stream does not start with the correct -magic bytes (@code{'B' 'Z' 'h'}). -@item BZ_IO_ERROR -Returned by @code{BZ2_bzRead} and @code{BZ2_bzWrite} when there is an error -reading or writing in the compressed file, and by @code{BZ2_bzReadOpen} -and @code{BZ2_bzWriteOpen} for attempts to use a file for which the -error indicator (viz, @code{ferror(f)}) is set. -On receipt of @code{BZ_IO_ERROR}, the caller should consult -@code{errno} and/or @code{perror} to acquire operating-system -specific information about the problem. -@item BZ_UNEXPECTED_EOF -Returned by @code{BZ2_bzRead} when the compressed file finishes -before the logical end of stream is detected. -@item BZ_OUTBUFF_FULL -Returned by @code{BZ2_bzBuffToBuffCompress} and -@code{BZ2_bzBuffToBuffDecompress} to indicate that the output data -will not fit into the output buffer provided. -@end table - - - -@section Low-level interface - -@subsection @code{BZ2_bzCompressInit} -@example -typedef - struct @{ - char *next_in; - unsigned int avail_in; - unsigned int total_in_lo32; - unsigned int total_in_hi32; - - char *next_out; - unsigned int avail_out; - unsigned int total_out_lo32; - unsigned int total_out_hi32; - - void *state; - - void *(*bzalloc)(void *,int,int); - void (*bzfree)(void *,void *); - void *opaque; - @} - bz_stream; - -int BZ2_bzCompressInit ( bz_stream *strm, - int blockSize100k, - int verbosity, - int workFactor ); - -@end example - -Prepares for compression. The @code{bz_stream} structure -holds all data pertaining to the compression activity. -A @code{bz_stream} structure should be allocated and initialised -prior to the call. -The fields of @code{bz_stream} -comprise the entirety of the user-visible data. @code{state} -is a pointer to the private data structures required for compression. - -Custom memory allocators are supported, via fields @code{bzalloc}, -@code{bzfree}, -and @code{opaque}. The value -@code{opaque} is passed to as the first argument to -all calls to @code{bzalloc} and @code{bzfree}, but is -otherwise ignored by the library. -The call @code{bzalloc ( opaque, n, m )} is expected to return a -pointer @code{p} to -@code{n * m} bytes of memory, and @code{bzfree ( opaque, p )} -should free -that memory. - -If you don't want to use a custom memory allocator, set @code{bzalloc}, -@code{bzfree} and -@code{opaque} to @code{NULL}, -and the library will then use the standard @code{malloc}/@code{free} -routines. - -Before calling @code{BZ2_bzCompressInit}, fields @code{bzalloc}, -@code{bzfree} and @code{opaque} should -be filled appropriately, as just described. Upon return, the internal -state will have been allocated and initialised, and @code{total_in_lo32}, -@code{total_in_hi32}, @code{total_out_lo32} and -@code{total_out_hi32} will have been set to zero. -These four fields are used by the library -to inform the caller of the total amount of data passed into and out of -the library, respectively. You should not try to change them. -As of version 1.0, 64-bit counts are maintained, even on 32-bit -platforms, using the @code{_hi32} fields to store the upper 32 bits -of the count. So, for example, the total amount of data in -is @code{(total_in_hi32 << 32) + total_in_lo32}. - -Parameter @code{blockSize100k} specifies the block size to be used for -compression. It should be a value between 1 and 9 inclusive, and the -actual block size used is 100000 x this figure. 9 gives the best -compression but takes most memory. - -Parameter @code{verbosity} should be set to a number between 0 and 4 -inclusive. 0 is silent, and greater numbers give increasingly verbose -monitoring/debugging output. If the library has been compiled with -@code{-DBZ_NO_STDIO}, no such output will appear for any verbosity -setting. - -Parameter @code{workFactor} controls how the compression phase behaves -when presented with worst case, highly repetitive, input data. If -compression runs into difficulties caused by repetitive data, the -library switches from the standard sorting algorithm to a fallback -algorithm. The fallback is slower than the standard algorithm by -perhaps a factor of three, but always behaves reasonably, no matter how -bad the input. - -Lower values of @code{workFactor} reduce the amount of effort the -standard algorithm will expend before resorting to the fallback. You -should set this parameter carefully; too low, and many inputs will be -handled by the fallback algorithm and so compress rather slowly, too -high, and your average-to-worst case compression times can become very -large. The default value of 30 gives reasonable behaviour over a wide -range of circumstances. - -Allowable values range from 0 to 250 inclusive. 0 is a special case, -equivalent to using the default value of 30. - -Note that the compressed output generated is the same regardless of -whether or not the fallback algorithm is used. - -Be aware also that this parameter may disappear entirely in future -versions of the library. In principle it should be possible to devise a -good way to automatically choose which algorithm to use. Such a -mechanism would render the parameter obsolete. - -Possible return values: -@display - @code{BZ_CONFIG_ERROR} - if the library has been mis-compiled - @code{BZ_PARAM_ERROR} - if @code{strm} is @code{NULL} - or @code{blockSize} < 1 or @code{blockSize} > 9 - or @code{verbosity} < 0 or @code{verbosity} > 4 - or @code{workFactor} < 0 or @code{workFactor} > 250 - @code{BZ_MEM_ERROR} - if not enough memory is available - @code{BZ_OK} - otherwise -@end display -Allowable next actions: -@display - @code{BZ2_bzCompress} - if @code{BZ_OK} is returned - no specific action needed in case of error -@end display - -@subsection @code{BZ2_bzCompress} -@example - int BZ2_bzCompress ( bz_stream *strm, int action ); -@end example -Provides more input and/or output buffer space for the library. The -caller maintains input and output buffers, and calls @code{BZ2_bzCompress} to -transfer data between them. - -Before each call to @code{BZ2_bzCompress}, @code{next_in} should point at -the data to be compressed, and @code{avail_in} should indicate how many -bytes the library may read. @code{BZ2_bzCompress} updates @code{next_in}, -@code{avail_in} and @code{total_in} to reflect the number of bytes it -has read. - -Similarly, @code{next_out} should point to a buffer in which the -compressed data is to be placed, with @code{avail_out} indicating how -much output space is available. @code{BZ2_bzCompress} updates -@code{next_out}, @code{avail_out} and @code{total_out} to reflect the -number of bytes output. - -You may provide and remove as little or as much data as you like on each -call of @code{BZ2_bzCompress}. In the limit, it is acceptable to supply and -remove data one byte at a time, although this would be terribly -inefficient. You should always ensure that at least one byte of output -space is available at each call. - -A second purpose of @code{BZ2_bzCompress} is to request a change of mode of the -compressed stream. - -Conceptually, a compressed stream can be in one of four states: IDLE, -RUNNING, FLUSHING and FINISHING. Before initialisation -(@code{BZ2_bzCompressInit}) and after termination (@code{BZ2_bzCompressEnd}), a -stream is regarded as IDLE. - -Upon initialisation (@code{BZ2_bzCompressInit}), the stream is placed in the -RUNNING state. Subsequent calls to @code{BZ2_bzCompress} should pass -@code{BZ_RUN} as the requested action; other actions are illegal and -will result in @code{BZ_SEQUENCE_ERROR}. - -At some point, the calling program will have provided all the input data -it wants to. It will then want to finish up -- in effect, asking the -library to process any data it might have buffered internally. In this -state, @code{BZ2_bzCompress} will no longer attempt to read data from -@code{next_in}, but it will want to write data to @code{next_out}. -Because the output buffer supplied by the user can be arbitrarily small, -the finishing-up operation cannot necessarily be done with a single call -of @code{BZ2_bzCompress}. - -Instead, the calling program passes @code{BZ_FINISH} as an action to -@code{BZ2_bzCompress}. This changes the stream's state to FINISHING. Any -remaining input (ie, @code{next_in[0 .. avail_in-1]}) is compressed and -transferred to the output buffer. To do this, @code{BZ2_bzCompress} must be -called repeatedly until all the output has been consumed. At that -point, @code{BZ2_bzCompress} returns @code{BZ_STREAM_END}, and the stream's -state is set back to IDLE. @code{BZ2_bzCompressEnd} should then be -called. - -Just to make sure the calling program does not cheat, the library makes -a note of @code{avail_in} at the time of the first call to -@code{BZ2_bzCompress} which has @code{BZ_FINISH} as an action (ie, at the -time the program has announced its intention to not supply any more -input). By comparing this value with that of @code{avail_in} over -subsequent calls to @code{BZ2_bzCompress}, the library can detect any -attempts to slip in more data to compress. Any calls for which this is -detected will return @code{BZ_SEQUENCE_ERROR}. This indicates a -programming mistake which should be corrected. - -Instead of asking to finish, the calling program may ask -@code{BZ2_bzCompress} to take all the remaining input, compress it and -terminate the current (Burrows-Wheeler) compression block. This could -be useful for error control purposes. The mechanism is analogous to -that for finishing: call @code{BZ2_bzCompress} with an action of -@code{BZ_FLUSH}, remove output data, and persist with the -@code{BZ_FLUSH} action until the value @code{BZ_RUN} is returned. As -with finishing, @code{BZ2_bzCompress} detects any attempt to provide more -input data once the flush has begun. - -Once the flush is complete, the stream returns to the normal RUNNING -state. - -This all sounds pretty complex, but isn't really. Here's a table -which shows which actions are allowable in each state, what action -will be taken, what the next state is, and what the non-error return -values are. Note that you can't explicitly ask what state the -stream is in, but nor do you need to -- it can be inferred from the -values returned by @code{BZ2_bzCompress}. -@display -IDLE/@code{any} - Illegal. IDLE state only exists after @code{BZ2_bzCompressEnd} or - before @code{BZ2_bzCompressInit}. - Return value = @code{BZ_SEQUENCE_ERROR} - -RUNNING/@code{BZ_RUN} - Compress from @code{next_in} to @code{next_out} as much as possible. - Next state = RUNNING - Return value = @code{BZ_RUN_OK} - -RUNNING/@code{BZ_FLUSH} - Remember current value of @code{next_in}. Compress from @code{next_in} - to @code{next_out} as much as possible, but do not accept any more input. - Next state = FLUSHING - Return value = @code{BZ_FLUSH_OK} - -RUNNING/@code{BZ_FINISH} - Remember current value of @code{next_in}. Compress from @code{next_in} - to @code{next_out} as much as possible, but do not accept any more input. - Next state = FINISHING - Return value = @code{BZ_FINISH_OK} - -FLUSHING/@code{BZ_FLUSH} - Compress from @code{next_in} to @code{next_out} as much as possible, - but do not accept any more input. - If all the existing input has been used up and all compressed - output has been removed - Next state = RUNNING; Return value = @code{BZ_RUN_OK} - else - Next state = FLUSHING; Return value = @code{BZ_FLUSH_OK} - -FLUSHING/other - Illegal. - Return value = @code{BZ_SEQUENCE_ERROR} - -FINISHING/@code{BZ_FINISH} - Compress from @code{next_in} to @code{next_out} as much as possible, - but to not accept any more input. - If all the existing input has been used up and all compressed - output has been removed - Next state = IDLE; Return value = @code{BZ_STREAM_END} - else - Next state = FINISHING; Return value = @code{BZ_FINISHING} - -FINISHING/other - Illegal. - Return value = @code{BZ_SEQUENCE_ERROR} -@end display - -That still looks complicated? Well, fair enough. The usual sequence -of calls for compressing a load of data is: -@itemize @bullet -@item Get started with @code{BZ2_bzCompressInit}. -@item Shovel data in and shlurp out its compressed form using zero or more -calls of @code{BZ2_bzCompress} with action = @code{BZ_RUN}. -@item Finish up. -Repeatedly call @code{BZ2_bzCompress} with action = @code{BZ_FINISH}, -copying out the compressed output, until @code{BZ_STREAM_END} is returned. -@item Close up and go home. Call @code{BZ2_bzCompressEnd}. -@end itemize -If the data you want to compress fits into your input buffer all -at once, you can skip the calls of @code{BZ2_bzCompress ( ..., BZ_RUN )} and -just do the @code{BZ2_bzCompress ( ..., BZ_FINISH )} calls. - -All required memory is allocated by @code{BZ2_bzCompressInit}. The -compression library can accept any data at all (obviously). So you -shouldn't get any error return values from the @code{BZ2_bzCompress} calls. -If you do, they will be @code{BZ_SEQUENCE_ERROR}, and indicate a bug in -your programming. - -Trivial other possible return values: -@display - @code{BZ_PARAM_ERROR} - if @code{strm} is @code{NULL}, or @code{strm->s} is @code{NULL} -@end display - -@subsection @code{BZ2_bzCompressEnd} -@example -int BZ2_bzCompressEnd ( bz_stream *strm ); -@end example -Releases all memory associated with a compression stream. - -Possible return values: -@display - @code{BZ_PARAM_ERROR} if @code{strm} is @code{NULL} or @code{strm->s} is @code{NULL} - @code{BZ_OK} otherwise -@end display - - -@subsection @code{BZ2_bzDecompressInit} -@example -int BZ2_bzDecompressInit ( bz_stream *strm, int verbosity, int small ); -@end example -Prepares for decompression. As with @code{BZ2_bzCompressInit}, a -@code{bz_stream} record should be allocated and initialised before the -call. Fields @code{bzalloc}, @code{bzfree} and @code{opaque} should be -set if a custom memory allocator is required, or made @code{NULL} for -the normal @code{malloc}/@code{free} routines. Upon return, the internal -state will have been initialised, and @code{total_in} and -@code{total_out} will be zero. - -For the meaning of parameter @code{verbosity}, see @code{BZ2_bzCompressInit}. - -If @code{small} is nonzero, the library will use an alternative -decompression algorithm which uses less memory but at the cost of -decompressing more slowly (roughly speaking, half the speed, but the -maximum memory requirement drops to around 2300k). See Chapter 2 for -more information on memory management. - -Note that the amount of memory needed to decompress -a stream cannot be determined until the stream's header has been read, -so even if @code{BZ2_bzDecompressInit} succeeds, a subsequent -@code{BZ2_bzDecompress} could fail with @code{BZ_MEM_ERROR}. - -Possible return values: -@display - @code{BZ_CONFIG_ERROR} - if the library has been mis-compiled - @code{BZ_PARAM_ERROR} - if @code{(small != 0 && small != 1)} - or @code{(verbosity < 0 || verbosity > 4)} - @code{BZ_MEM_ERROR} - if insufficient memory is available -@end display - -Allowable next actions: -@display - @code{BZ2_bzDecompress} - if @code{BZ_OK} was returned - no specific action required in case of error -@end display - - - -@subsection @code{BZ2_bzDecompress} -@example -int BZ2_bzDecompress ( bz_stream *strm ); -@end example -Provides more input and/out output buffer space for the library. The -caller maintains input and output buffers, and uses @code{BZ2_bzDecompress} -to transfer data between them. - -Before each call to @code{BZ2_bzDecompress}, @code{next_in} -should point at the compressed data, -and @code{avail_in} should indicate how many bytes the library -may read. @code{BZ2_bzDecompress} updates @code{next_in}, @code{avail_in} -and @code{total_in} -to reflect the number of bytes it has read. - -Similarly, @code{next_out} should point to a buffer in which the uncompressed -output is to be placed, with @code{avail_out} indicating how much output space -is available. @code{BZ2_bzCompress} updates @code{next_out}, -@code{avail_out} and @code{total_out} to reflect -the number of bytes output. - -You may provide and remove as little or as much data as you like on -each call of @code{BZ2_bzDecompress}. -In the limit, it is acceptable to -supply and remove data one byte at a time, although this would be -terribly inefficient. You should always ensure that at least one -byte of output space is available at each call. - -Use of @code{BZ2_bzDecompress} is simpler than @code{BZ2_bzCompress}. - -You should provide input and remove output as described above, and -repeatedly call @code{BZ2_bzDecompress} until @code{BZ_STREAM_END} is -returned. Appearance of @code{BZ_STREAM_END} denotes that -@code{BZ2_bzDecompress} has detected the logical end of the compressed -stream. @code{BZ2_bzDecompress} will not produce @code{BZ_STREAM_END} until -all output data has been placed into the output buffer, so once -@code{BZ_STREAM_END} appears, you are guaranteed to have available all -the decompressed output, and @code{BZ2_bzDecompressEnd} can safely be -called. - -If case of an error return value, you should call @code{BZ2_bzDecompressEnd} -to clean up and release memory. - -Possible return values: -@display - @code{BZ_PARAM_ERROR} - if @code{strm} is @code{NULL} or @code{strm->s} is @code{NULL} - or @code{strm->avail_out < 1} - @code{BZ_DATA_ERROR} - if a data integrity error is detected in the compressed stream - @code{BZ_DATA_ERROR_MAGIC} - if the compressed stream doesn't begin with the right magic bytes - @code{BZ_MEM_ERROR} - if there wasn't enough memory available - @code{BZ_STREAM_END} - if the logical end of the data stream was detected and all - output in has been consumed, eg @code{s->avail_out > 0} - @code{BZ_OK} - otherwise -@end display -Allowable next actions: -@display - @code{BZ2_bzDecompress} - if @code{BZ_OK} was returned - @code{BZ2_bzDecompressEnd} - otherwise -@end display - - -@subsection @code{BZ2_bzDecompressEnd} -@example -int BZ2_bzDecompressEnd ( bz_stream *strm ); -@end example -Releases all memory associated with a decompression stream. - -Possible return values: -@display - @code{BZ_PARAM_ERROR} - if @code{strm} is @code{NULL} or @code{strm->s} is @code{NULL} - @code{BZ_OK} - otherwise -@end display - -Allowable next actions: -@display - None. -@end display - - -@section High-level interface - -This interface provides functions for reading and writing -@code{bzip2} format files. First, some general points. - -@itemize @bullet -@item All of the functions take an @code{int*} first argument, - @code{bzerror}. - After each call, @code{bzerror} should be consulted first to determine - the outcome of the call. If @code{bzerror} is @code{BZ_OK}, - the call completed - successfully, and only then should the return value of the function - (if any) be consulted. If @code{bzerror} is @code{BZ_IO_ERROR}, - there was an error - reading/writing the underlying compressed file, and you should - then consult @code{errno}/@code{perror} to determine the - cause of the difficulty. - @code{bzerror} may also be set to various other values; precise details are - given on a per-function basis below. -@item If @code{bzerror} indicates an error - (ie, anything except @code{BZ_OK} and @code{BZ_STREAM_END}), - you should immediately call @code{BZ2_bzReadClose} (or @code{BZ2_bzWriteClose}, - depending on whether you are attempting to read or to write) - to free up all resources associated - with the stream. Once an error has been indicated, behaviour of all calls - except @code{BZ2_bzReadClose} (@code{BZ2_bzWriteClose}) is undefined. - The implication is that (1) @code{bzerror} should - be checked after each call, and (2) if @code{bzerror} indicates an error, - @code{BZ2_bzReadClose} (@code{BZ2_bzWriteClose}) should then be called to clean up. -@item The @code{FILE*} arguments passed to - @code{BZ2_bzReadOpen}/@code{BZ2_bzWriteOpen} - should be set to binary mode. - Most Unix systems will do this by default, but other platforms, - including Windows and Mac, will not. If you omit this, you may - encounter problems when moving code to new platforms. -@item Memory allocation requests are handled by - @code{malloc}/@code{free}. - At present - there is no facility for user-defined memory allocators in the file I/O - functions (could easily be added, though). -@end itemize - - - -@subsection @code{BZ2_bzReadOpen} -@example - typedef void BZFILE; - - BZFILE *BZ2_bzReadOpen ( int *bzerror, FILE *f, - int small, int verbosity, - void *unused, int nUnused ); -@end example -Prepare to read compressed data from file handle @code{f}. @code{f} -should refer to a file which has been opened for reading, and for which -the error indicator (@code{ferror(f)})is not set. If @code{small} is 1, -the library will try to decompress using less memory, at the expense of -speed. - -For reasons explained below, @code{BZ2_bzRead} will decompress the -@code{nUnused} bytes starting at @code{unused}, before starting to read -from the file @code{f}. At most @code{BZ_MAX_UNUSED} bytes may be -supplied like this. If this facility is not required, you should pass -@code{NULL} and @code{0} for @code{unused} and n@code{Unused} -respectively. - -For the meaning of parameters @code{small} and @code{verbosity}, -see @code{BZ2_bzDecompressInit}. - -The amount of memory needed to decompress a file cannot be determined -until the file's header has been read. So it is possible that -@code{BZ2_bzReadOpen} returns @code{BZ_OK} but a subsequent call of -@code{BZ2_bzRead} will return @code{BZ_MEM_ERROR}. - -Possible assignments to @code{bzerror}: -@display - @code{BZ_CONFIG_ERROR} - if the library has been mis-compiled - @code{BZ_PARAM_ERROR} - if @code{f} is @code{NULL} - or @code{small} is neither @code{0} nor @code{1} - or @code{(unused == NULL && nUnused != 0)} - or @code{(unused != NULL && !(0 <= nUnused <= BZ_MAX_UNUSED))} - @code{BZ_IO_ERROR} - if @code{ferror(f)} is nonzero - @code{BZ_MEM_ERROR} - if insufficient memory is available - @code{BZ_OK} - otherwise. -@end display - -Possible return values: -@display - Pointer to an abstract @code{BZFILE} - if @code{bzerror} is @code{BZ_OK} - @code{NULL} - otherwise -@end display - -Allowable next actions: -@display - @code{BZ2_bzRead} - if @code{bzerror} is @code{BZ_OK} - @code{BZ2_bzClose} - otherwise -@end display - - -@subsection @code{BZ2_bzRead} -@example - int BZ2_bzRead ( int *bzerror, BZFILE *b, void *buf, int len ); -@end example -Reads up to @code{len} (uncompressed) bytes from the compressed file -@code{b} into -the buffer @code{buf}. If the read was successful, -@code{bzerror} is set to @code{BZ_OK} -and the number of bytes read is returned. If the logical end-of-stream -was detected, @code{bzerror} will be set to @code{BZ_STREAM_END}, -and the number -of bytes read is returned. All other @code{bzerror} values denote an error. - -@code{BZ2_bzRead} will supply @code{len} bytes, -unless the logical stream end is detected -or an error occurs. Because of this, it is possible to detect the -stream end by observing when the number of bytes returned is -less than the number -requested. Nevertheless, this is regarded as inadvisable; you should -instead check @code{bzerror} after every call and watch out for -@code{BZ_STREAM_END}. - -Internally, @code{BZ2_bzRead} copies data from the compressed file in chunks -of size @code{BZ_MAX_UNUSED} bytes -before decompressing it. If the file contains more bytes than strictly -needed to reach the logical end-of-stream, @code{BZ2_bzRead} will almost certainly -read some of the trailing data before signalling @code{BZ_SEQUENCE_END}. -To collect the read but unused data once @code{BZ_SEQUENCE_END} has -appeared, call @code{BZ2_bzReadGetUnused} immediately before @code{BZ2_bzReadClose}. - -Possible assignments to @code{bzerror}: -@display - @code{BZ_PARAM_ERROR} - if @code{b} is @code{NULL} or @code{buf} is @code{NULL} or @code{len < 0} - @code{BZ_SEQUENCE_ERROR} - if @code{b} was opened with @code{BZ2_bzWriteOpen} - @code{BZ_IO_ERROR} - if there is an error reading from the compressed file - @code{BZ_UNEXPECTED_EOF} - if the compressed file ended before the logical end-of-stream was detected - @code{BZ_DATA_ERROR} - if a data integrity error was detected in the compressed stream - @code{BZ_DATA_ERROR_MAGIC} - if the stream does not begin with the requisite header bytes (ie, is not - a @code{bzip2} data file). This is really a special case of @code{BZ_DATA_ERROR}. - @code{BZ_MEM_ERROR} - if insufficient memory was available - @code{BZ_STREAM_END} - if the logical end of stream was detected. - @code{BZ_OK} - otherwise. -@end display - -Possible return values: -@display - number of bytes read - if @code{bzerror} is @code{BZ_OK} or @code{BZ_STREAM_END} - undefined - otherwise -@end display - -Allowable next actions: -@display - collect data from @code{buf}, then @code{BZ2_bzRead} or @code{BZ2_bzReadClose} - if @code{bzerror} is @code{BZ_OK} - collect data from @code{buf}, then @code{BZ2_bzReadClose} or @code{BZ2_bzReadGetUnused} - if @code{bzerror} is @code{BZ_SEQUENCE_END} - @code{BZ2_bzReadClose} - otherwise -@end display - - - -@subsection @code{BZ2_bzReadGetUnused} -@example - void BZ2_bzReadGetUnused ( int* bzerror, BZFILE *b, - void** unused, int* nUnused ); -@end example -Returns data which was read from the compressed file but was not needed -to get to the logical end-of-stream. @code{*unused} is set to the address -of the data, and @code{*nUnused} to the number of bytes. @code{*nUnused} will -be set to a value between @code{0} and @code{BZ_MAX_UNUSED} inclusive. - -This function may only be called once @code{BZ2_bzRead} has signalled -@code{BZ_STREAM_END} but before @code{BZ2_bzReadClose}. - -Possible assignments to @code{bzerror}: -@display - @code{BZ_PARAM_ERROR} - if @code{b} is @code{NULL} - or @code{unused} is @code{NULL} or @code{nUnused} is @code{NULL} - @code{BZ_SEQUENCE_ERROR} - if @code{BZ_STREAM_END} has not been signalled - or if @code{b} was opened with @code{BZ2_bzWriteOpen} - @code{BZ_OK} - otherwise -@end display - -Allowable next actions: -@display - @code{BZ2_bzReadClose} -@end display - - -@subsection @code{BZ2_bzReadClose} -@example - void BZ2_bzReadClose ( int *bzerror, BZFILE *b ); -@end example -Releases all memory pertaining to the compressed file @code{b}. -@code{BZ2_bzReadClose} does not call @code{fclose} on the underlying file -handle, so you should do that yourself if appropriate. -@code{BZ2_bzReadClose} should be called to clean up after all error -situations. - -Possible assignments to @code{bzerror}: -@display - @code{BZ_SEQUENCE_ERROR} - if @code{b} was opened with @code{BZ2_bzOpenWrite} - @code{BZ_OK} - otherwise -@end display - -Allowable next actions: -@display - none -@end display - - - -@subsection @code{BZ2_bzWriteOpen} -@example - BZFILE *BZ2_bzWriteOpen ( int *bzerror, FILE *f, - int blockSize100k, int verbosity, - int workFactor ); -@end example -Prepare to write compressed data to file handle @code{f}. -@code{f} should refer to -a file which has been opened for writing, and for which the error -indicator (@code{ferror(f)})is not set. - -For the meaning of parameters @code{blockSize100k}, -@code{verbosity} and @code{workFactor}, see -@* @code{BZ2_bzCompressInit}. - -All required memory is allocated at this stage, so if the call -completes successfully, @code{BZ_MEM_ERROR} cannot be signalled by a -subsequent call to @code{BZ2_bzWrite}. - -Possible assignments to @code{bzerror}: -@display - @code{BZ_CONFIG_ERROR} - if the library has been mis-compiled - @code{BZ_PARAM_ERROR} - if @code{f} is @code{NULL} - or @code{blockSize100k < 1} or @code{blockSize100k > 9} - @code{BZ_IO_ERROR} - if @code{ferror(f)} is nonzero - @code{BZ_MEM_ERROR} - if insufficient memory is available - @code{BZ_OK} - otherwise -@end display - -Possible return values: -@display - Pointer to an abstract @code{BZFILE} - if @code{bzerror} is @code{BZ_OK} - @code{NULL} - otherwise -@end display - -Allowable next actions: -@display - @code{BZ2_bzWrite} - if @code{bzerror} is @code{BZ_OK} - (you could go directly to @code{BZ2_bzWriteClose}, but this would be pretty pointless) - @code{BZ2_bzWriteClose} - otherwise -@end display - - - -@subsection @code{BZ2_bzWrite} -@example - void BZ2_bzWrite ( int *bzerror, BZFILE *b, void *buf, int len ); -@end example -Absorbs @code{len} bytes from the buffer @code{buf}, eventually to be -compressed and written to the file. - -Possible assignments to @code{bzerror}: -@display - @code{BZ_PARAM_ERROR} - if @code{b} is @code{NULL} or @code{buf} is @code{NULL} or @code{len < 0} - @code{BZ_SEQUENCE_ERROR} - if b was opened with @code{BZ2_bzReadOpen} - @code{BZ_IO_ERROR} - if there is an error writing the compressed file. - @code{BZ_OK} - otherwise -@end display - - - - -@subsection @code{BZ2_bzWriteClose} -@example - void BZ2_bzWriteClose ( int *bzerror, BZFILE* f, - int abandon, - unsigned int* nbytes_in, - unsigned int* nbytes_out ); - - void BZ2_bzWriteClose64 ( int *bzerror, BZFILE* f, - int abandon, - unsigned int* nbytes_in_lo32, - unsigned int* nbytes_in_hi32, - unsigned int* nbytes_out_lo32, - unsigned int* nbytes_out_hi32 ); -@end example - -Compresses and flushes to the compressed file all data so far supplied -by @code{BZ2_bzWrite}. The logical end-of-stream markers are also written, so -subsequent calls to @code{BZ2_bzWrite} are illegal. All memory associated -with the compressed file @code{b} is released. -@code{fflush} is called on the -compressed file, but it is not @code{fclose}'d. - -If @code{BZ2_bzWriteClose} is called to clean up after an error, the only -action is to release the memory. The library records the error codes -issued by previous calls, so this situation will be detected -automatically. There is no attempt to complete the compression -operation, nor to @code{fflush} the compressed file. You can force this -behaviour to happen even in the case of no error, by passing a nonzero -value to @code{abandon}. - -If @code{nbytes_in} is non-null, @code{*nbytes_in} will be set to be the -total volume of uncompressed data handled. Similarly, @code{nbytes_out} -will be set to the total volume of compressed data written. For -compatibility with older versions of the library, @code{BZ2_bzWriteClose} -only yields the lower 32 bits of these counts. Use -@code{BZ2_bzWriteClose64} if you want the full 64 bit counts. These -two functions are otherwise absolutely identical. - - -Possible assignments to @code{bzerror}: -@display - @code{BZ_SEQUENCE_ERROR} - if @code{b} was opened with @code{BZ2_bzReadOpen} - @code{BZ_IO_ERROR} - if there is an error writing the compressed file - @code{BZ_OK} - otherwise -@end display - -@subsection Handling embedded compressed data streams - -The high-level library facilitates use of -@code{bzip2} data streams which form some part of a surrounding, larger -data stream. -@itemize @bullet -@item For writing, the library takes an open file handle, writes -compressed data to it, @code{fflush}es it but does not @code{fclose} it. -The calling application can write its own data before and after the -compressed data stream, using that same file handle. -@item Reading is more complex, and the facilities are not as general -as they could be since generality is hard to reconcile with efficiency. -@code{BZ2_bzRead} reads from the compressed file in blocks of size -@code{BZ_MAX_UNUSED} bytes, and in doing so probably will overshoot -the logical end of compressed stream. -To recover this data once decompression has -ended, call @code{BZ2_bzReadGetUnused} after the last call of @code{BZ2_bzRead} -(the one returning @code{BZ_STREAM_END}) but before calling -@code{BZ2_bzReadClose}. -@end itemize - -This mechanism makes it easy to decompress multiple @code{bzip2} -streams placed end-to-end. As the end of one stream, when @code{BZ2_bzRead} -returns @code{BZ_STREAM_END}, call @code{BZ2_bzReadGetUnused} to collect the -unused data (copy it into your own buffer somewhere). -That data forms the start of the next compressed stream. -To start uncompressing that next stream, call @code{BZ2_bzReadOpen} again, -feeding in the unused data via the @code{unused}/@code{nUnused} -parameters. -Keep doing this until @code{BZ_STREAM_END} return coincides with the -physical end of file (@code{feof(f)}). In this situation -@code{BZ2_bzReadGetUnused} -will of course return no data. - -This should give some feel for how the high-level interface can be used. -If you require extra flexibility, you'll have to bite the bullet and get -to grips with the low-level interface. - -@subsection Standard file-reading/writing code -Here's how you'd write data to a compressed file: -@example @code -FILE* f; -BZFILE* b; -int nBuf; -char buf[ /* whatever size you like */ ]; -int bzerror; -int nWritten; - -f = fopen ( "myfile.bz2", "w" ); -if (!f) @{ - /* handle error */ -@} -b = BZ2_bzWriteOpen ( &bzerror, f, 9 ); -if (bzerror != BZ_OK) @{ - BZ2_bzWriteClose ( b ); - /* handle error */ -@} - -while ( /* condition */ ) @{ - /* get data to write into buf, and set nBuf appropriately */ - nWritten = BZ2_bzWrite ( &bzerror, b, buf, nBuf ); - if (bzerror == BZ_IO_ERROR) @{ - BZ2_bzWriteClose ( &bzerror, b ); - /* handle error */ - @} -@} - -BZ2_bzWriteClose ( &bzerror, b ); -if (bzerror == BZ_IO_ERROR) @{ - /* handle error */ -@} -@end example -And to read from a compressed file: -@example -FILE* f; -BZFILE* b; -int nBuf; -char buf[ /* whatever size you like */ ]; -int bzerror; -int nWritten; - -f = fopen ( "myfile.bz2", "r" ); -if (!f) @{ - /* handle error */ -@} -b = BZ2_bzReadOpen ( &bzerror, f, 0, NULL, 0 ); -if (bzerror != BZ_OK) @{ - BZ2_bzReadClose ( &bzerror, b ); - /* handle error */ -@} - -bzerror = BZ_OK; -while (bzerror == BZ_OK && /* arbitrary other conditions */) @{ - nBuf = BZ2_bzRead ( &bzerror, b, buf, /* size of buf */ ); - if (bzerror == BZ_OK) @{ - /* do something with buf[0 .. nBuf-1] */ - @} -@} -if (bzerror != BZ_STREAM_END) @{ - BZ2_bzReadClose ( &bzerror, b ); - /* handle error */ -@} else @{ - BZ2_bzReadClose ( &bzerror ); -@} -@end example - - - -@section Utility functions -@subsection @code{BZ2_bzBuffToBuffCompress} -@example - int BZ2_bzBuffToBuffCompress( char* dest, - unsigned int* destLen, - char* source, - unsigned int sourceLen, - int blockSize100k, - int verbosity, - int workFactor ); -@end example -Attempts to compress the data in @code{source[0 .. sourceLen-1]} -into the destination buffer, @code{dest[0 .. *destLen-1]}. -If the destination buffer is big enough, @code{*destLen} is -set to the size of the compressed data, and @code{BZ_OK} is -returned. If the compressed data won't fit, @code{*destLen} -is unchanged, and @code{BZ_OUTBUFF_FULL} is returned. - -Compression in this manner is a one-shot event, done with a single call -to this function. The resulting compressed data is a complete -@code{bzip2} format data stream. There is no mechanism for making -additional calls to provide extra input data. If you want that kind of -mechanism, use the low-level interface. - -For the meaning of parameters @code{blockSize100k}, @code{verbosity} -and @code{workFactor}, @* see @code{BZ2_bzCompressInit}. - -To guarantee that the compressed data will fit in its buffer, allocate -an output buffer of size 1% larger than the uncompressed data, plus -six hundred extra bytes. - -@code{BZ2_bzBuffToBuffDecompress} will not write data at or -beyond @code{dest[*destLen]}, even in case of buffer overflow. - -Possible return values: -@display - @code{BZ_CONFIG_ERROR} - if the library has been mis-compiled - @code{BZ_PARAM_ERROR} - if @code{dest} is @code{NULL} or @code{destLen} is @code{NULL} - or @code{blockSize100k < 1} or @code{blockSize100k > 9} - or @code{verbosity < 0} or @code{verbosity > 4} - or @code{workFactor < 0} or @code{workFactor > 250} - @code{BZ_MEM_ERROR} - if insufficient memory is available - @code{BZ_OUTBUFF_FULL} - if the size of the compressed data exceeds @code{*destLen} - @code{BZ_OK} - otherwise -@end display - - - -@subsection @code{BZ2_bzBuffToBuffDecompress} -@example - int BZ2_bzBuffToBuffDecompress ( char* dest, - unsigned int* destLen, - char* source, - unsigned int sourceLen, - int small, - int verbosity ); -@end example -Attempts to decompress the data in @code{source[0 .. sourceLen-1]} -into the destination buffer, @code{dest[0 .. *destLen-1]}. -If the destination buffer is big enough, @code{*destLen} is -set to the size of the uncompressed data, and @code{BZ_OK} is -returned. If the compressed data won't fit, @code{*destLen} -is unchanged, and @code{BZ_OUTBUFF_FULL} is returned. - -@code{source} is assumed to hold a complete @code{bzip2} format -data stream. @* @code{BZ2_bzBuffToBuffDecompress} tries to decompress -the entirety of the stream into the output buffer. - -For the meaning of parameters @code{small} and @code{verbosity}, -see @code{BZ2_bzDecompressInit}. - -Because the compression ratio of the compressed data cannot be known in -advance, there is no easy way to guarantee that the output buffer will -be big enough. You may of course make arrangements in your code to -record the size of the uncompressed data, but such a mechanism is beyond -the scope of this library. - -@code{BZ2_bzBuffToBuffDecompress} will not write data at or -beyond @code{dest[*destLen]}, even in case of buffer overflow. - -Possible return values: -@display - @code{BZ_CONFIG_ERROR} - if the library has been mis-compiled - @code{BZ_PARAM_ERROR} - if @code{dest} is @code{NULL} or @code{destLen} is @code{NULL} - or @code{small != 0 && small != 1} - or @code{verbosity < 0} or @code{verbosity > 4} - @code{BZ_MEM_ERROR} - if insufficient memory is available - @code{BZ_OUTBUFF_FULL} - if the size of the compressed data exceeds @code{*destLen} - @code{BZ_DATA_ERROR} - if a data integrity error was detected in the compressed data - @code{BZ_DATA_ERROR_MAGIC} - if the compressed data doesn't begin with the right magic bytes - @code{BZ_UNEXPECTED_EOF} - if the compressed data ends unexpectedly - @code{BZ_OK} - otherwise -@end display - - - -@section @code{zlib} compatibility functions -Yoshioka Tsuneo has contributed some functions to -give better @code{zlib} compatibility. These functions are -@code{BZ2_bzopen}, @code{BZ2_bzread}, @code{BZ2_bzwrite}, @code{BZ2_bzflush}, -@code{BZ2_bzclose}, -@code{BZ2_bzerror} and @code{BZ2_bzlibVersion}. -These functions are not (yet) officially part of -the library. If they break, you get to keep all the pieces. -Nevertheless, I think they work ok. -@example -typedef void BZFILE; - -const char * BZ2_bzlibVersion ( void ); -@end example -Returns a string indicating the library version. -@example -BZFILE * BZ2_bzopen ( const char *path, const char *mode ); -BZFILE * BZ2_bzdopen ( int fd, const char *mode ); -@end example -Opens a @code{.bz2} file for reading or writing, using either its name -or a pre-existing file descriptor. -Analogous to @code{fopen} and @code{fdopen}. -@example -int BZ2_bzread ( BZFILE* b, void* buf, int len ); -int BZ2_bzwrite ( BZFILE* b, void* buf, int len ); -@end example -Reads/writes data from/to a previously opened @code{BZFILE}. -Analogous to @code{fread} and @code{fwrite}. -@example -int BZ2_bzflush ( BZFILE* b ); -void BZ2_bzclose ( BZFILE* b ); -@end example -Flushes/closes a @code{BZFILE}. @code{BZ2_bzflush} doesn't actually do -anything. Analogous to @code{fflush} and @code{fclose}. - -@example -const char * BZ2_bzerror ( BZFILE *b, int *errnum ) -@end example -Returns a string describing the more recent error status of -@code{b}, and also sets @code{*errnum} to its numerical value. - - -@section Using the library in a @code{stdio}-free environment - -@subsection Getting rid of @code{stdio} - -In a deeply embedded application, you might want to use just -the memory-to-memory functions. You can do this conveniently -by compiling the library with preprocessor symbol @code{BZ_NO_STDIO} -defined. Doing this gives you a library containing only the following -eight functions: - -@code{BZ2_bzCompressInit}, @code{BZ2_bzCompress}, @code{BZ2_bzCompressEnd} @* -@code{BZ2_bzDecompressInit}, @code{BZ2_bzDecompress}, @code{BZ2_bzDecompressEnd} @* -@code{BZ2_bzBuffToBuffCompress}, @code{BZ2_bzBuffToBuffDecompress} - -When compiled like this, all functions will ignore @code{verbosity} -settings. - -@subsection Critical error handling -@code{libbzip2} contains a number of internal assertion checks which -should, needless to say, never be activated. Nevertheless, if an -assertion should fail, behaviour depends on whether or not the library -was compiled with @code{BZ_NO_STDIO} set. - -For a normal compile, an assertion failure yields the message -@example - bzip2/libbzip2: internal error number N. - This is a bug in bzip2/libbzip2, 1.0 of 21-Mar-2000. - Please report it to me at: jseward@@acm.org. If this happened - when you were using some program which uses libbzip2 as a - component, you should also report this bug to the author(s) - of that program. Please make an effort to report this bug; - timely and accurate bug reports eventually lead to higher - quality software. Thanks. Julian Seward, 21 March 2000. -@end example -where @code{N} is some error code number. @code{exit(3)} -is then called. - -For a @code{stdio}-free library, assertion failures result -in a call to a function declared as: -@example - extern void bz_internal_error ( int errcode ); -@end example -The relevant code is passed as a parameter. You should supply -such a function. - -In either case, once an assertion failure has occurred, any -@code{bz_stream} records involved can be regarded as invalid. -You should not attempt to resume normal operation with them. - -You may, of course, change critical error handling to suit -your needs. As I said above, critical errors indicate bugs -in the library and should not occur. All "normal" error -situations are indicated via error return codes from functions, -and can be recovered from. - - -@section Making a Windows DLL -Everything related to Windows has been contributed by Yoshioka Tsuneo -@* (@code{QWF00133@@niftyserve.or.jp} / -@code{tsuneo-y@@is.aist-nara.ac.jp}), so you should send your queries to -him (but perhaps Cc: me, @code{jseward@@acm.org}). - -My vague understanding of what to do is: using Visual C++ 5.0, -open the project file @code{libbz2.dsp}, and build. That's all. - -If you can't -open the project file for some reason, make a new one, naming these files: -@code{blocksort.c}, @code{bzlib.c}, @code{compress.c}, -@code{crctable.c}, @code{decompress.c}, @code{huffman.c}, @* -@code{randtable.c} and @code{libbz2.def}. You will also need -to name the header files @code{bzlib.h} and @code{bzlib_private.h}. - -If you don't use VC++, you may need to define the proprocessor symbol -@code{_WIN32}. - -Finally, @code{dlltest.c} is a sample program using the DLL. It has a -project file, @code{dlltest.dsp}. - -If you just want a makefile for Visual C, have a look at -@code{makefile.msc}. - -Be aware that if you compile @code{bzip2} itself on Win32, you must set -@code{BZ_UNIX} to 0 and @code{BZ_LCCWIN32} to 1, in the file -@code{bzip2.c}, before compiling. Otherwise the resulting binary won't -work correctly. - -I haven't tried any of this stuff myself, but it all looks plausible. - - - -@chapter Miscellanea - -These are just some random thoughts of mine. Your mileage may -vary. - -@section Limitations of the compressed file format -@code{bzip2-1.0}, @code{0.9.5} and @code{0.9.0} -use exactly the same file format as the previous -version, @code{bzip2-0.1}. This decision was made in the interests of -stability. Creating yet another incompatible compressed file format -would create further confusion and disruption for users. - -Nevertheless, this is not a painless decision. Development -work since the release of @code{bzip2-0.1} in August 1997 -has shown complexities in the file format which slow down -decompression and, in retrospect, are unnecessary. These are: -@itemize @bullet -@item The run-length encoder, which is the first of the - compression transformations, is entirely irrelevant. - The original purpose was to protect the sorting algorithm - from the very worst case input: a string of repeated - symbols. But algorithm steps Q6a and Q6b in the original - Burrows-Wheeler technical report (SRC-124) show how - repeats can be handled without difficulty in block - sorting. -@item The randomisation mechanism doesn't really need to be - there. Udi Manber and Gene Myers published a suffix - array construction algorithm a few years back, which - can be employed to sort any block, no matter how - repetitive, in O(N log N) time. Subsequent work by - Kunihiko Sadakane has produced a derivative O(N (log N)^2) - algorithm which usually outperforms the Manber-Myers - algorithm. - - I could have changed to Sadakane's algorithm, but I find - it to be slower than @code{bzip2}'s existing algorithm for - most inputs, and the randomisation mechanism protects - adequately against bad cases. I didn't think it was - a good tradeoff to make. Partly this is due to the fact - that I was not flooded with email complaints about - @code{bzip2-0.1}'s performance on repetitive data, so - perhaps it isn't a problem for real inputs. - - Probably the best long-term solution, - and the one I have incorporated into 0.9.5 and above, - is to use the existing sorting - algorithm initially, and fall back to a O(N (log N)^2) - algorithm if the standard algorithm gets into difficulties. -@item The compressed file format was never designed to be - handled by a library, and I have had to jump though - some hoops to produce an efficient implementation of - decompression. It's a bit hairy. Try passing - @code{decompress.c} through the C preprocessor - and you'll see what I mean. Much of this complexity - could have been avoided if the compressed size of - each block of data was recorded in the data stream. -@item An Adler-32 checksum, rather than a CRC32 checksum, - would be faster to compute. -@end itemize -It would be fair to say that the @code{bzip2} format was frozen -before I properly and fully understood the performance -consequences of doing so. - -Improvements which I was able to incorporate into -0.9.0, despite using the same file format, are: -@itemize @bullet -@item Single array implementation of the inverse BWT. This - significantly speeds up decompression, presumably - because it reduces the number of cache misses. -@item Faster inverse MTF transform for large MTF values. The - new implementation is based on the notion of sliding blocks - of values. -@item @code{bzip2-0.9.0} now reads and writes files with @code{fread} - and @code{fwrite}; version 0.1 used @code{putc} and @code{getc}. - Duh! Well, you live and learn. - -@end itemize -Further ahead, it would be nice -to be able to do random access into files. This will -require some careful design of compressed file formats. - - - -@section Portability issues -After some consideration, I have decided not to use -GNU @code{autoconf} to configure 0.9.5 or 1.0. - -@code{autoconf}, admirable and wonderful though it is, -mainly assists with portability problems between Unix-like -platforms. But @code{bzip2} doesn't have much in the way -of portability problems on Unix; most of the difficulties appear -when porting to the Mac, or to Microsoft's operating systems. -@code{autoconf} doesn't help in those cases, and brings in a -whole load of new complexity. - -Most people should be able to compile the library and program -under Unix straight out-of-the-box, so to speak, especially -if you have a version of GNU C available. - -There are a couple of @code{__inline__} directives in the code. GNU C -(@code{gcc}) should be able to handle them. If you're not using -GNU C, your C compiler shouldn't see them at all. -If your compiler does, for some reason, see them and doesn't -like them, just @code{#define} @code{__inline__} to be @code{/* */}. One -easy way to do this is to compile with the flag @code{-D__inline__=}, -which should be understood by most Unix compilers. - -If you still have difficulties, try compiling with the macro -@code{BZ_STRICT_ANSI} defined. This should enable you to build the -library in a strictly ANSI compliant environment. Building the program -itself like this is dangerous and not supported, since you remove -@code{bzip2}'s checks against compressing directories, symbolic links, -devices, and other not-really-a-file entities. This could cause -filesystem corruption! - -One other thing: if you create a @code{bzip2} binary for public -distribution, please try and link it statically (@code{gcc -s}). This -avoids all sorts of library-version issues that others may encounter -later on. - -If you build @code{bzip2} on Win32, you must set @code{BZ_UNIX} to 0 and -@code{BZ_LCCWIN32} to 1, in the file @code{bzip2.c}, before compiling. -Otherwise the resulting binary won't work correctly. - - - -@section Reporting bugs -I tried pretty hard to make sure @code{bzip2} is -bug free, both by design and by testing. Hopefully -you'll never need to read this section for real. - -Nevertheless, if @code{bzip2} dies with a segmentation -fault, a bus error or an internal assertion failure, it -will ask you to email me a bug report. Experience with -version 0.1 shows that almost all these problems can -be traced to either compiler bugs or hardware problems. -@itemize @bullet -@item -Recompile the program with no optimisation, and see if it -works. And/or try a different compiler. -I heard all sorts of stories about various flavours -of GNU C (and other compilers) generating bad code for -@code{bzip2}, and I've run across two such examples myself. - -2.7.X versions of GNU C are known to generate bad code from -time to time, at high optimisation levels. -If you get problems, try using the flags -@code{-O2} @code{-fomit-frame-pointer} @code{-fno-strength-reduce}. -You should specifically @emph{not} use @code{-funroll-loops}. - -You may notice that the Makefile runs six tests as part of -the build process. If the program passes all of these, it's -a pretty good (but not 100%) indication that the compiler has -done its job correctly. -@item -If @code{bzip2} crashes randomly, and the crashes are not -repeatable, you may have a flaky memory subsystem. @code{bzip2} -really hammers your memory hierarchy, and if it's a bit marginal, -you may get these problems. Ditto if your disk or I/O subsystem -is slowly failing. Yup, this really does happen. - -Try using a different machine of the same type, and see if -you can repeat the problem. -@item This isn't really a bug, but ... If @code{bzip2} tells -you your file is corrupted on decompression, and you -obtained the file via FTP, there is a possibility that you -forgot to tell FTP to do a binary mode transfer. That absolutely -will cause the file to be non-decompressible. You'll have to transfer -it again. -@end itemize - -If you've incorporated @code{libbzip2} into your own program -and are getting problems, please, please, please, check that the -parameters you are passing in calls to the library, are -correct, and in accordance with what the documentation says -is allowable. I have tried to make the library robust against -such problems, but I'm sure I haven't succeeded. - -Finally, if the above comments don't help, you'll have to send -me a bug report. Now, it's just amazing how many people will -send me a bug report saying something like -@display - bzip2 crashed with segmentation fault on my machine -@end display -and absolutely nothing else. Needless to say, a such a report -is @emph{totally, utterly, completely and comprehensively 100% useless; -a waste of your time, my time, and net bandwidth}. -With no details at all, there's no way I can possibly begin -to figure out what the problem is. - -The rules of the game are: facts, facts, facts. Don't omit -them because "oh, they won't be relevant". At the bare -minimum: -@display - Machine type. Operating system version. - Exact version of @code{bzip2} (do @code{bzip2 -V}). - Exact version of the compiler used. - Flags passed to the compiler. -@end display -However, the most important single thing that will help me is -the file that you were trying to compress or decompress at the -time the problem happened. Without that, my ability to do anything -more than speculate about the cause, is limited. - -Please remember that I connect to the Internet with a modem, so -you should contact me before mailing me huge files. - - -@section Did you get the right package? - -@code{bzip2} is a resource hog. It soaks up large amounts of CPU cycles -and memory. Also, it gives very large latencies. In the worst case, you -can feed many megabytes of uncompressed data into the library before -getting any compressed output, so this probably rules out applications -requiring interactive behaviour. - -These aren't faults of my implementation, I hope, but more -an intrinsic property of the Burrows-Wheeler transform (unfortunately). -Maybe this isn't what you want. - -If you want a compressor and/or library which is faster, uses less -memory but gets pretty good compression, and has minimal latency, -consider Jean-loup -Gailly's and Mark Adler's work, @code{zlib-1.1.2} and -@code{gzip-1.2.4}. Look for them at - -@code{http://www.cdrom.com/pub/infozip/zlib} and -@code{http://www.gzip.org} respectively. - -For something faster and lighter still, you might try Markus F X J -Oberhumer's @code{LZO} real-time compression/decompression library, at -@* @code{http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html}. - -If you want to use the @code{bzip2} algorithms to compress small blocks -of data, 64k bytes or smaller, for example on an on-the-fly disk -compressor, you'd be well advised not to use this library. Instead, -I've made a special library tuned for that kind of use. It's part of -@code{e2compr-0.40}, an on-the-fly disk compressor for the Linux -@code{ext2} filesystem. Look at -@code{http://www.netspace.net.au/~reiter/e2compr}. - - - -@section Testing - -A record of the tests I've done. - -First, some data sets: -@itemize @bullet -@item B: a directory containing 6001 files, one for every length in the - range 0 to 6000 bytes. The files contain random lowercase - letters. 18.7 megabytes. -@item H: my home directory tree. Documents, source code, mail files, - compressed data. H contains B, and also a directory of - files designed as boundary cases for the sorting; mostly very - repetitive, nasty files. 565 megabytes. -@item A: directory tree holding various applications built from source: - @code{egcs}, @code{gcc-2.8.1}, KDE, GTK, Octave, etc. - 2200 megabytes. -@end itemize -The tests conducted are as follows. Each test means compressing -(a copy of) each file in the data set, decompressing it and -comparing it against the original. - -First, a bunch of tests with block sizes and internal buffer -sizes set very small, -to detect any problems with the -blocking and buffering mechanisms. -This required modifying the source code so as to try to -break it. -@enumerate -@item Data set H, with - buffer size of 1 byte, and block size of 23 bytes. -@item Data set B, buffer sizes 1 byte, block size 1 byte. -@item As (2) but small-mode decompression. -@item As (2) with block size 2 bytes. -@item As (2) with block size 3 bytes. -@item As (2) with block size 4 bytes. -@item As (2) with block size 5 bytes. -@item As (2) with block size 6 bytes and small-mode decompression. -@item H with buffer size of 1 byte, but normal block - size (up to 900000 bytes). -@end enumerate -Then some tests with unmodified source code. -@enumerate -@item H, all settings normal. -@item As (1), with small-mode decompress. -@item H, compress with flag @code{-1}. -@item H, compress with flag @code{-s}, decompress with flag @code{-s}. -@item Forwards compatibility: H, @code{bzip2-0.1pl2} compressing, - @code{bzip2-0.9.5} decompressing, all settings normal. -@item Backwards compatibility: H, @code{bzip2-0.9.5} compressing, - @code{bzip2-0.1pl2} decompressing, all settings normal. -@item Bigger tests: A, all settings normal. -@item As (7), using the fallback (Sadakane-like) sorting algorithm. -@item As (8), compress with flag @code{-1}, decompress with flag - @code{-s}. -@item H, using the fallback sorting algorithm. -@item Forwards compatibility: A, @code{bzip2-0.1pl2} compressing, - @code{bzip2-0.9.5} decompressing, all settings normal. -@item Backwards compatibility: A, @code{bzip2-0.9.5} compressing, - @code{bzip2-0.1pl2} decompressing, all settings normal. -@item Misc test: about 400 megabytes of @code{.tar} files with - @code{bzip2} compiled with Checker (a memory access error - detector, like Purify). -@item Misc tests to make sure it builds and runs ok on non-Linux/x86 - platforms. -@end enumerate -These tests were conducted on a 225 MHz IDT WinChip machine, running -Linux 2.0.36. They represent nearly a week of continuous computation. -All tests completed successfully. - - -@section Further reading -@code{bzip2} is not research work, in the sense that it doesn't present -any new ideas. Rather, it's an engineering exercise based on existing -ideas. - -Four documents describe essentially all the ideas behind @code{bzip2}: -@example -Michael Burrows and D. J. Wheeler: - "A block-sorting lossless data compression algorithm" - 10th May 1994. - Digital SRC Research Report 124. - ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-124.ps.gz - If you have trouble finding it, try searching at the - New Zealand Digital Library, http://www.nzdl.org. - -Daniel S. Hirschberg and Debra A. LeLewer - "Efficient Decoding of Prefix Codes" - Communications of the ACM, April 1990, Vol 33, Number 4. - You might be able to get an electronic copy of this - from the ACM Digital Library. - -David J. Wheeler - Program bred3.c and accompanying document bred3.ps. - This contains the idea behind the multi-table Huffman - coding scheme. - ftp://ftp.cl.cam.ac.uk/users/djw3/ - -Jon L. Bentley and Robert Sedgewick - "Fast Algorithms for Sorting and Searching Strings" - Available from Sedgewick's web page, - www.cs.princeton.edu/~rs -@end example -The following paper gives valuable additional insights into the -algorithm, but is not immediately the basis of any code -used in bzip2. -@example -Peter Fenwick: - Block Sorting Text Compression - Proceedings of the 19th Australasian Computer Science Conference, - Melbourne, Australia. Jan 31 - Feb 2, 1996. - ftp://ftp.cs.auckland.ac.nz/pub/peter-f/ACSC96paper.ps -@end example -Kunihiko Sadakane's sorting algorithm, mentioned above, -is available from: -@example -http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz -@end example -The Manber-Myers suffix array construction -algorithm is described in a paper -available from: -@example -http://www.cs.arizona.edu/people/gene/PAPERS/suffix.ps -@end example -Finally, the following paper documents some recent investigations -I made into the performance of sorting algorithms: -@example -Julian Seward: - On the Performance of BWT Sorting Algorithms - Proceedings of the IEEE Data Compression Conference 2000 - Snowbird, Utah. 28-30 March 2000. -@end example - - -@contents - -@bye - diff --git a/winsup/bz2lib/manual_1.html b/winsup/bz2lib/manual_1.html deleted file mode 100644 index 92ba7c6df..000000000 --- a/winsup/bz2lib/manual_1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - -bzip2 and libbzip2 - Introduction - - - - - -

Go to the first, previous, next, last section, table of contents. -


- - -

Introduction

- -

-bzip2 compresses files using the Burrows-Wheeler -block-sorting text compression algorithm, and Huffman coding. -Compression is generally considerably better than that -achieved by more conventional LZ77/LZ78-based compressors, -and approaches the performance of the PPM family of statistical compressors. - -

-

-bzip2 is built on top of libbzip2, a flexible library -for handling compressed data in the bzip2 format. This manual -describes both how to use the program and -how to work with the library interface. Most of the -manual is devoted to this library, not the program, -which is good news if your interest is only in the program. - -

-

-Chapter 2 describes how to use bzip2; this is the only part -you need to read if you just want to know how to operate the program. -Chapter 3 describes the programming interfaces in detail, and -Chapter 4 records some miscellaneous notes which I thought -ought to be recorded somewhere. - -

- -


-

Go to the first, previous, next, last section, table of contents. - - diff --git a/winsup/bz2lib/manual_2.html b/winsup/bz2lib/manual_2.html deleted file mode 100644 index 39453c42d..000000000 --- a/winsup/bz2lib/manual_2.html +++ /dev/null @@ -1,484 +0,0 @@ - - - - -bzip2 and libbzip2 - How to use bzip2 - - - - - - -

Go to the first, previous, next, last section, table of contents. -


- - -

How to use bzip2

- -

-This chapter contains a copy of the bzip2 man page, -and nothing else. - -

- -
- - - -

NAME

- -
    -
  • bzip2, bunzip2 - -- a block-sorting file compressor, v1.0 -
  • bzcat - -- decompresses files to stdout -
  • bzip2recover - -- recovers data from damaged bzip2 files -
- - - -

SYNOPSIS

- -
    -
  • bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ... ] - -
  • bunzip2 [ -fkvsVL ] [ filenames ... ] - -
  • bzcat [ -s ] [ filenames ... ] - -
  • bzip2recover filename - -
- - - -

DESCRIPTION

- -

-bzip2 compresses files using the Burrows-Wheeler block sorting -text compression algorithm, and Huffman coding. Compression is -generally considerably better than that achieved by more conventional -LZ77/LZ78-based compressors, and approaches the performance of the PPM -family of statistical compressors. - -

-

-The command-line options are deliberately very similar to those of GNU -gzip, but they are not identical. - -

-

-bzip2 expects a list of file names to accompany the command-line -flags. Each file is replaced by a compressed version of itself, with -the name original_name.bz2. Each compressed file has the same -modification date, permissions, and, when possible, ownership as the -corresponding original, so that these properties can be correctly -restored at decompression time. File name handling is naive in the -sense that there is no mechanism for preserving original file names, -permissions, ownerships or dates in filesystems which lack these -concepts, or have serious file name length restrictions, such as MS-DOS. - -

-

-bzip2 and bunzip2 will by default not overwrite existing -files. If you want this to happen, specify the -f flag. - -

-

-If no file names are specified, bzip2 compresses from standard -input to standard output. In this case, bzip2 will decline to -write compressed output to a terminal, as this would be entirely -incomprehensible and therefore pointless. - -

-

-bunzip2 (or bzip2 -d) decompresses all -specified files. Files which were not created by bzip2 -will be detected and ignored, and a warning issued. -bzip2 attempts to guess the filename for the decompressed file -from that of the compressed file as follows: - -

    -
  • filename.bz2 becomes filename - -
  • filename.bz becomes filename - -
  • filename.tbz2 becomes filename.tar - -
  • filename.tbz becomes filename.tar - -
  • anyothername becomes anyothername.out - -
- -

-If the file does not end in one of the recognised endings, -.bz2, .bz, -.tbz2 or .tbz, bzip2 complains that it cannot -guess the name of the original file, and uses the original name -with .out appended. - -

-

-As with compression, supplying no -filenames causes decompression from standard input to standard output. - -

-

-bunzip2 will correctly decompress a file which is the -concatenation of two or more compressed files. The result is the -concatenation of the corresponding uncompressed files. Integrity -testing (-t) of concatenated compressed files is also supported. - -

-

-You can also compress or decompress files to the standard output by -giving the -c flag. Multiple files may be compressed and -decompressed like this. The resulting outputs are fed sequentially to -stdout. Compression of multiple files in this manner generates a stream -containing multiple compressed file representations. Such a stream -can be decompressed correctly only by bzip2 version 0.9.0 or -later. Earlier versions of bzip2 will stop after decompressing -the first file in the stream. - -

-

-bzcat (or bzip2 -dc) decompresses all specified files to -the standard output. - -

-

-bzip2 will read arguments from the environment variables -BZIP2 and BZIP, in that order, and will process them -before any arguments read from the command line. This gives a -convenient way to supply default arguments. - -

-

-Compression is always performed, even if the compressed file is slightly -larger than the original. Files of less than about one hundred bytes -tend to get larger, since the compression mechanism has a constant -overhead in the region of 50 bytes. Random data (including the output -of most file compressors) is coded at about 8.05 bits per byte, giving -an expansion of around 0.5%. - -

-

-As a self-check for your protection, bzip2 uses 32-bit CRCs to -make sure that the decompressed version of a file is identical to the -original. This guards against corruption of the compressed data, and -against undetected bugs in bzip2 (hopefully very unlikely). The -chances of data corruption going undetected is microscopic, about one -chance in four billion for each file processed. Be aware, though, that -the check occurs upon decompression, so it can only tell you that -something is wrong. It can't help you recover the original uncompressed -data. You can use bzip2recover to try to recover data from -damaged files. - -

-

-Return values: 0 for a normal exit, 1 for environmental problems (file -not found, invalid flags, I/O errors, &c), 2 to indicate a corrupt -compressed file, 3 for an internal consistency error (eg, bug) which -caused bzip2 to panic. - -

- - - -

OPTIONS

-
- -
-c --stdout -
-Compress or decompress to standard output. -
-d --decompress -
-Force decompression. bzip2, bunzip2 and bzcat are -really the same program, and the decision about what actions to take is -done on the basis of which name is used. This flag overrides that -mechanism, and forces bzip2 to decompress. -
-z --compress -
-The complement to -d: forces compression, regardless of the -invokation name. -
-t --test -
-Check integrity of the specified file(s), but don't decompress them. -This really performs a trial decompression and throws away the result. -
-f --force -
-Force overwrite of output files. Normally, bzip2 will not overwrite -existing output files. Also forces bzip2 to break hard links -to files, which it otherwise wouldn't do. -
-k --keep -
-Keep (don't delete) input files during compression -or decompression. -
-s --small -
-Reduce memory usage, for compression, decompression and testing. Files -are decompressed and tested using a modified algorithm which only -requires 2.5 bytes per block byte. This means any file can be -decompressed in 2300k of memory, albeit at about half the normal speed. - -During compression, -s selects a block size of 200k, which limits -memory use to around the same figure, at the expense of your compression -ratio. In short, if your machine is low on memory (8 megabytes or -less), use -s for everything. See MEMORY MANAGEMENT below. -
-q --quiet -
-Suppress non-essential warning messages. Messages pertaining to -I/O errors and other critical events will not be suppressed. -
-v --verbose -
-Verbose mode -- show the compression ratio for each file processed. -Further -v's increase the verbosity level, spewing out lots of -information which is primarily of interest for diagnostic purposes. -
-L --license -V --version -
-Display the software version, license terms and conditions. -
-1 to -9 -
-Set the block size to 100 k, 200 k .. 900 k when compressing. Has no -effect when decompressing. See MEMORY MANAGEMENT below. -
-- -
-Treats all subsequent arguments as file names, even if they start -with a dash. This is so you can handle files with names beginning -with a dash, for example: bzip2 -- -myfilename. -
--repetitive-fast -
-
--repetitive-best -
-These flags are redundant in versions 0.9.5 and above. They provided -some coarse control over the behaviour of the sorting algorithm in -earlier versions, which was sometimes useful. 0.9.5 and above have an -improved algorithm which renders these flags irrelevant. -
- - - -

MEMORY MANAGEMENT

- -

-bzip2 compresses large files in blocks. The block size affects -both the compression ratio achieved, and the amount of memory needed for -compression and decompression. The flags -1 through -9 -specify the block size to be 100,000 bytes through 900,000 bytes (the -default) respectively. At decompression time, the block size used for -compression is read from the header of the compressed file, and -bunzip2 then allocates itself just enough memory to decompress -the file. Since block sizes are stored in compressed files, it follows -that the flags -1 to -9 are irrelevant to and so ignored -during decompression. - -

-

-Compression and decompression requirements, in bytes, can be estimated -as: - -

-     Compression:   400k + ( 8 x block size )
-
-     Decompression: 100k + ( 4 x block size ), or
-                    100k + ( 2.5 x block size )
-
- -

-Larger block sizes give rapidly diminishing marginal returns. Most of -the compression comes from the first two or three hundred k of block -size, a fact worth bearing in mind when using bzip2 on small machines. -It is also important to appreciate that the decompression memory -requirement is set at compression time by the choice of block size. - -

-

-For files compressed with the default 900k block size, bunzip2 -will require about 3700 kbytes to decompress. To support decompression -of any file on a 4 megabyte machine, bunzip2 has an option to -decompress using approximately half this amount of memory, about 2300 -kbytes. Decompression speed is also halved, so you should use this -option only where necessary. The relevant flag is -s. - -

-

-In general, try and use the largest block size memory constraints allow, -since that maximises the compression achieved. Compression and -decompression speed are virtually unaffected by block size. - -

-

-Another significant point applies to files which fit in a single block --- that means most files you'd encounter using a large block size. The -amount of real memory touched is proportional to the size of the file, -since the file is smaller than a block. For example, compressing a file -20,000 bytes long with the flag -9 will cause the compressor to -allocate around 7600k of memory, but only touch 400k + 20000 * 8 = 560 -kbytes of it. Similarly, the decompressor will allocate 3700k but only -touch 100k + 20000 * 4 = 180 kbytes. - -

-

-Here is a table which summarises the maximum memory usage for different -block sizes. Also recorded is the total compressed size for 14 files of -the Calgary Text Compression Corpus totalling 3,141,622 bytes. This -column gives some feel for how compression varies with block size. -These figures tend to understate the advantage of larger block sizes for -larger files, since the Corpus is dominated by smaller files. - -

-          Compress   Decompress   Decompress   Corpus
-   Flag     usage      usage       -s usage     Size
-
-    -1      1200k       500k         350k      914704
-    -2      2000k       900k         600k      877703
-    -3      2800k      1300k         850k      860338
-    -4      3600k      1700k        1100k      846899
-    -5      4400k      2100k        1350k      845160
-    -6      5200k      2500k        1600k      838626
-    -7      6100k      2900k        1850k      834096
-    -8      6800k      3300k        2100k      828642
-    -9      7600k      3700k        2350k      828642
-
- - - -

RECOVERING DATA FROM DAMAGED FILES

- -

-bzip2 compresses files in blocks, usually 900kbytes long. Each -block is handled independently. If a media or transmission error causes -a multi-block .bz2 file to become damaged, it may be possible to -recover data from the undamaged blocks in the file. - -

-

-The compressed representation of each block is delimited by a 48-bit -pattern, which makes it possible to find the block boundaries with -reasonable certainty. Each block also carries its own 32-bit CRC, so -damaged blocks can be distinguished from undamaged ones. - -

-

-bzip2recover is a simple program whose purpose is to search for -blocks in .bz2 files, and write each block out into its own -.bz2 file. You can then use bzip2 -t to test the -integrity of the resulting files, and decompress those which are -undamaged. - -

-

-bzip2recover -takes a single argument, the name of the damaged file, -and writes a number of files rec0001file.bz2, - rec0002file.bz2, etc, containing the extracted blocks. - The output filenames are designed so that the use of - wildcards in subsequent processing -- for example, -bzip2 -dc rec*file.bz2 > recovered_data -- lists the files in - the correct order. - -

-

-bzip2recover should be of most use dealing with large .bz2 - files, as these will contain many blocks. It is clearly - futile to use it on damaged single-block files, since a - damaged block cannot be recovered. If you wish to minimise -any potential data loss through media or transmission errors, -you might consider compressing with a smaller - block size. - -

- - - -

PERFORMANCE NOTES

- -

-The sorting phase of compression gathers together similar strings in the -file. Because of this, files containing very long runs of repeated -symbols, like "aabaabaabaab ..." (repeated several hundred times) may -compress more slowly than normal. Versions 0.9.5 and above fare much -better than previous versions in this respect. The ratio between -worst-case and average-case compression time is in the region of 10:1. -For previous versions, this figure was more like 100:1. You can use the --vvvv option to monitor progress in great detail, if you want. - -

-

-Decompression speed is unaffected by these phenomena. - -

-

-bzip2 usually allocates several megabytes of memory to operate -in, and then charges all over it in a fairly random fashion. This means -that performance, both for compressing and decompressing, is largely -determined by the speed at which your machine can service cache misses. -Because of this, small changes to the code to reduce the miss rate have -been observed to give disproportionately large performance improvements. -I imagine bzip2 will perform best on machines with very large -caches. - -

- - - -

CAVEATS

- -

-I/O error messages are not as helpful as they could be. bzip2 -tries hard to detect I/O errors and exit cleanly, but the details of -what the problem is sometimes seem rather misleading. - -

-

-This manual page pertains to version 1.0 of bzip2. Compressed -data created by this version is entirely forwards and backwards -compatible with the previous public releases, versions 0.1pl2, 0.9.0 and -0.9.5, but with the following exception: 0.9.0 and above can correctly -decompress multiple concatenated compressed files. 0.1pl2 cannot do -this; it will stop after decompressing just the first file in the -stream. - -

-

-bzip2recover uses 32-bit integers to represent bit positions in -compressed files, so it cannot handle compressed files more than 512 -megabytes long. This could easily be fixed. - -

- - - -

AUTHOR

-

-Julian Seward, jseward@acm.org. - -

-

-The ideas embodied in bzip2 are due to (at least) the following -people: Michael Burrows and David Wheeler (for the block sorting -transformation), David Wheeler (again, for the Huffman coder), Peter -Fenwick (for the structured coding model in the original bzip, -and many refinements), and Alistair Moffat, Radford Neal and Ian Witten -(for the arithmetic coder in the original bzip). I am much -indebted for their help, support and advice. See the manual in the -source distribution for pointers to sources of documentation. Christian -von Roques encouraged me to look for faster sorting algorithms, so as to -speed up compression. Bela Lubkin encouraged me to improve the -worst-case compression performance. Many people sent patches, helped -with portability problems, lent machines, gave advice and were generally -helpful. - -

-
- -


-

Go to the first, previous, next, last section, table of contents. - - diff --git a/winsup/bz2lib/manual_3.html b/winsup/bz2lib/manual_3.html deleted file mode 100644 index a8fa7e682..000000000 --- a/winsup/bz2lib/manual_3.html +++ /dev/null @@ -1,1773 +0,0 @@ - - - - -bzip2 and libbzip2 - Programming with libbzip2 - - - - - - -

Go to the first, previous, next, last section, table of contents. -


- - -

Programming with libbzip2

- -

-This chapter describes the programming interface to libbzip2. - -

-

-For general background information, particularly about memory -use and performance aspects, you'd be well advised to read Chapter 2 -as well. - -

- - -

Top-level structure

- -

-libbzip2 is a flexible library for compressing and decompressing -data in the bzip2 data format. Although packaged as a single -entity, it helps to regard the library as three separate parts: the low -level interface, and the high level interface, and some utility -functions. - -

-

-The structure of libbzip2's interfaces is similar to -that of Jean-loup Gailly's and Mark Adler's excellent zlib -library. - -

-

-All externally visible symbols have names beginning BZ2_. -This is new in version 1.0. The intention is to minimise pollution -of the namespaces of library clients. - -

- - -

Low-level summary

- -

-This interface provides services for compressing and decompressing -data in memory. There's no provision for dealing with files, streams -or any other I/O mechanisms, just straight memory-to-memory work. -In fact, this part of the library can be compiled without inclusion -of stdio.h, which may be helpful for embedded applications. - -

-

-The low-level part of the library has no global variables and -is therefore thread-safe. - -

-

-Six routines make up the low level interface: -BZ2_bzCompressInit, BZ2_bzCompress, and
BZ2_bzCompressEnd -for compression, -and a corresponding trio BZ2_bzDecompressInit,
BZ2_bzDecompress -and BZ2_bzDecompressEnd for decompression. -The *Init functions allocate -memory for compression/decompression and do other -initialisations, whilst the *End functions close down operations -and release memory. - -

-

-The real work is done by BZ2_bzCompress and BZ2_bzDecompress. -These compress and decompress data from a user-supplied input buffer -to a user-supplied output buffer. These buffers can be any size; -arbitrary quantities of data are handled by making repeated calls -to these functions. This is a flexible mechanism allowing a -consumer-pull style of activity, or producer-push, or a mixture of -both. - -

- - - -

High-level summary

- -

-This interface provides some handy wrappers around the low-level -interface to facilitate reading and writing bzip2 format -files (.bz2 files). The routines provide hooks to facilitate -reading files in which the bzip2 data stream is embedded -within some larger-scale file structure, or where there are -multiple bzip2 data streams concatenated end-to-end. - -

-

-For reading files, BZ2_bzReadOpen, BZ2_bzRead, -BZ2_bzReadClose and
BZ2_bzReadGetUnused are supplied. For -writing files, BZ2_bzWriteOpen, BZ2_bzWrite and -BZ2_bzWriteFinish are available. - -

-

-As with the low-level library, no global variables are used -so the library is per se thread-safe. However, if I/O errors -occur whilst reading or writing the underlying compressed files, -you may have to consult errno to determine the cause of -the error. In that case, you'd need a C library which correctly -supports errno in a multithreaded environment. - -

-

-To make the library a little simpler and more portable, -BZ2_bzReadOpen and BZ2_bzWriteOpen require you to pass them file -handles (FILE*s) which have previously been opened for reading or -writing respectively. That avoids portability problems associated with -file operations and file attributes, whilst not being much of an -imposition on the programmer. - -

- - - -

Utility functions summary

-

-For very simple needs, BZ2_bzBuffToBuffCompress and -BZ2_bzBuffToBuffDecompress are provided. These compress -data in memory from one buffer to another buffer in a single -function call. You should assess whether these functions -fulfill your memory-to-memory compression/decompression -requirements before investing effort in understanding the more -general but more complex low-level interface. - -

-

-Yoshioka Tsuneo (QWF00133@niftyserve.or.jp / -tsuneo-y@is.aist-nara.ac.jp) has contributed some functions to -give better zlib compatibility. These functions are -BZ2_bzopen, BZ2_bzread, BZ2_bzwrite, BZ2_bzflush, -BZ2_bzclose, -BZ2_bzerror and BZ2_bzlibVersion. You may find these functions -more convenient for simple file reading and writing, than those in the -high-level interface. These functions are not (yet) officially part of -the library, and are minimally documented here. If they break, you -get to keep all the pieces. I hope to document them properly when time -permits. - -

-

-Yoshioka also contributed modifications to allow the library to be -built as a Windows DLL. - -

- - - -

Error handling

- -

-The library is designed to recover cleanly in all situations, including -the worst-case situation of decompressing random data. I'm not -100% sure that it can always do this, so you might want to add -a signal handler to catch segmentation violations during decompression -if you are feeling especially paranoid. I would be interested in -hearing more about the robustness of the library to corrupted -compressed data. - -

-

-Version 1.0 is much more robust in this respect than -0.9.0 or 0.9.5. Investigations with Checker (a tool for -detecting problems with memory management, similar to Purify) -indicate that, at least for the few files I tested, all single-bit -errors in the decompressed data are caught properly, with no -segmentation faults, no reads of uninitialised data and no -out of range reads or writes. So it's certainly much improved, -although I wouldn't claim it to be totally bombproof. - -

-

-The file bzlib.h contains all definitions needed to use -the library. In particular, you should definitely not include -bzlib_private.h. - -

-

-In bzlib.h, the various return values are defined. The following -list is not intended as an exhaustive description of the circumstances -in which a given value may be returned -- those descriptions are given -later. Rather, it is intended to convey the rough meaning of each -return value. The first five actions are normal and not intended to -denote an error situation. -

- -
BZ_OK -
-The requested action was completed successfully. -
BZ_RUN_OK -
-
BZ_FLUSH_OK -
-
BZ_FINISH_OK -
-In BZ2_bzCompress, the requested flush/finish/nothing-special action -was completed successfully. -
BZ_STREAM_END -
-Compression of data was completed, or the logical stream end was -detected during decompression. -
- -

-The following return values indicate an error of some kind. -

- -
BZ_CONFIG_ERROR -
-Indicates that the library has been improperly compiled on your -platform -- a major configuration error. Specifically, it means -that sizeof(char), sizeof(short) and sizeof(int) -are not 1, 2 and 4 respectively, as they should be. Note that the -library should still work properly on 64-bit platforms which follow -the LP64 programming model -- that is, where sizeof(long) -and sizeof(void*) are 8. Under LP64, sizeof(int) is -still 4, so libbzip2, which doesn't use the long type, -is OK. -
BZ_SEQUENCE_ERROR -
-When using the library, it is important to call the functions in the -correct sequence and with data structures (buffers etc) in the correct -states. libbzip2 checks as much as it can to ensure this is -happening, and returns BZ_SEQUENCE_ERROR if not. Code which -complies precisely with the function semantics, as detailed below, -should never receive this value; such an event denotes buggy code -which you should investigate. -
BZ_PARAM_ERROR -
-Returned when a parameter to a function call is out of range -or otherwise manifestly incorrect. As with BZ_SEQUENCE_ERROR, -this denotes a bug in the client code. The distinction between -BZ_PARAM_ERROR and BZ_SEQUENCE_ERROR is a bit hazy, but still worth -making. -
BZ_MEM_ERROR -
-Returned when a request to allocate memory failed. Note that the -quantity of memory needed to decompress a stream cannot be determined -until the stream's header has been read. So BZ2_bzDecompress and -BZ2_bzRead may return BZ_MEM_ERROR even though some of -the compressed data has been read. The same is not true for -compression; once BZ2_bzCompressInit or BZ2_bzWriteOpen have -successfully completed, BZ_MEM_ERROR cannot occur. -
BZ_DATA_ERROR -
-Returned when a data integrity error is detected during decompression. -Most importantly, this means when stored and computed CRCs for the -data do not match. This value is also returned upon detection of any -other anomaly in the compressed data. -
BZ_DATA_ERROR_MAGIC -
-As a special case of BZ_DATA_ERROR, it is sometimes useful to -know when the compressed stream does not start with the correct -magic bytes ('B' 'Z' 'h'). -
BZ_IO_ERROR -
-Returned by BZ2_bzRead and BZ2_bzWrite when there is an error -reading or writing in the compressed file, and by BZ2_bzReadOpen -and BZ2_bzWriteOpen for attempts to use a file for which the -error indicator (viz, ferror(f)) is set. -On receipt of BZ_IO_ERROR, the caller should consult -errno and/or perror to acquire operating-system -specific information about the problem. -
BZ_UNEXPECTED_EOF -
-Returned by BZ2_bzRead when the compressed file finishes -before the logical end of stream is detected. -
BZ_OUTBUFF_FULL -
-Returned by BZ2_bzBuffToBuffCompress and -BZ2_bzBuffToBuffDecompress to indicate that the output data -will not fit into the output buffer provided. -
- - - -

Low-level interface

- - - -

BZ2_bzCompressInit

- -
-typedef 
-   struct {
-      char *next_in;
-      unsigned int avail_in;
-      unsigned int total_in_lo32;
-      unsigned int total_in_hi32;
-
-      char *next_out;
-      unsigned int avail_out;
-      unsigned int total_out_lo32;
-      unsigned int total_out_hi32;
-
-      void *state;
-
-      void *(*bzalloc)(void *,int,int);
-      void (*bzfree)(void *,void *);
-      void *opaque;
-   } 
-   bz_stream;
-
-int BZ2_bzCompressInit ( bz_stream *strm, 
-                         int blockSize100k, 
-                         int verbosity,
-                         int workFactor );
-
-
- -

-Prepares for compression. The bz_stream structure -holds all data pertaining to the compression activity. -A bz_stream structure should be allocated and initialised -prior to the call. -The fields of bz_stream -comprise the entirety of the user-visible data. state -is a pointer to the private data structures required for compression. - -

-

-Custom memory allocators are supported, via fields bzalloc, -bzfree, -and opaque. The value -opaque is passed to as the first argument to -all calls to bzalloc and bzfree, but is -otherwise ignored by the library. -The call bzalloc ( opaque, n, m ) is expected to return a -pointer p to -n * m bytes of memory, and bzfree ( opaque, p ) -should free -that memory. - -

-

-If you don't want to use a custom memory allocator, set bzalloc, -bzfree and -opaque to NULL, -and the library will then use the standard malloc/free -routines. - -

-

-Before calling BZ2_bzCompressInit, fields bzalloc, -bzfree and opaque should -be filled appropriately, as just described. Upon return, the internal -state will have been allocated and initialised, and total_in_lo32, -total_in_hi32, total_out_lo32 and -total_out_hi32 will have been set to zero. -These four fields are used by the library -to inform the caller of the total amount of data passed into and out of -the library, respectively. You should not try to change them. -As of version 1.0, 64-bit counts are maintained, even on 32-bit -platforms, using the _hi32 fields to store the upper 32 bits -of the count. So, for example, the total amount of data in -is (total_in_hi32 << 32) + total_in_lo32. - -

-

-Parameter blockSize100k specifies the block size to be used for -compression. It should be a value between 1 and 9 inclusive, and the -actual block size used is 100000 x this figure. 9 gives the best -compression but takes most memory. - -

-

-Parameter verbosity should be set to a number between 0 and 4 -inclusive. 0 is silent, and greater numbers give increasingly verbose -monitoring/debugging output. If the library has been compiled with --DBZ_NO_STDIO, no such output will appear for any verbosity -setting. - -

-

-Parameter workFactor controls how the compression phase behaves -when presented with worst case, highly repetitive, input data. If -compression runs into difficulties caused by repetitive data, the -library switches from the standard sorting algorithm to a fallback -algorithm. The fallback is slower than the standard algorithm by -perhaps a factor of three, but always behaves reasonably, no matter how -bad the input. - -

-

-Lower values of workFactor reduce the amount of effort the -standard algorithm will expend before resorting to the fallback. You -should set this parameter carefully; too low, and many inputs will be -handled by the fallback algorithm and so compress rather slowly, too -high, and your average-to-worst case compression times can become very -large. The default value of 30 gives reasonable behaviour over a wide -range of circumstances. - -

-

-Allowable values range from 0 to 250 inclusive. 0 is a special case, -equivalent to using the default value of 30. - -

-

-Note that the compressed output generated is the same regardless of -whether or not the fallback algorithm is used. - -

-

-Be aware also that this parameter may disappear entirely in future -versions of the library. In principle it should be possible to devise a -good way to automatically choose which algorithm to use. Such a -mechanism would render the parameter obsolete. - -

-

-Possible return values: - -

-      BZ_CONFIG_ERROR
-         if the library has been mis-compiled
-      BZ_PARAM_ERROR 
-         if strm is NULL 
-         or blockSize < 1 or blockSize > 9
-         or verbosity < 0 or verbosity > 4
-         or workFactor < 0 or workFactor > 250
-      BZ_MEM_ERROR 
-         if not enough memory is available
-      BZ_OK 
-         otherwise
-
- -

-Allowable next actions: - -

-      BZ2_bzCompress 
-         if BZ_OK is returned
-      no specific action needed in case of error
-
- - - -

BZ2_bzCompress

- -
-   int BZ2_bzCompress ( bz_stream *strm, int action );
-
- -

-Provides more input and/or output buffer space for the library. The -caller maintains input and output buffers, and calls BZ2_bzCompress to -transfer data between them. - -

-

-Before each call to BZ2_bzCompress, next_in should point at -the data to be compressed, and avail_in should indicate how many -bytes the library may read. BZ2_bzCompress updates next_in, -avail_in and total_in to reflect the number of bytes it -has read. - -

-

-Similarly, next_out should point to a buffer in which the -compressed data is to be placed, with avail_out indicating how -much output space is available. BZ2_bzCompress updates -next_out, avail_out and total_out to reflect the -number of bytes output. - -

-

-You may provide and remove as little or as much data as you like on each -call of BZ2_bzCompress. In the limit, it is acceptable to supply and -remove data one byte at a time, although this would be terribly -inefficient. You should always ensure that at least one byte of output -space is available at each call. - -

-

-A second purpose of BZ2_bzCompress is to request a change of mode of the -compressed stream. - -

-

-Conceptually, a compressed stream can be in one of four states: IDLE, -RUNNING, FLUSHING and FINISHING. Before initialisation -(BZ2_bzCompressInit) and after termination (BZ2_bzCompressEnd), a -stream is regarded as IDLE. - -

-

-Upon initialisation (BZ2_bzCompressInit), the stream is placed in the -RUNNING state. Subsequent calls to BZ2_bzCompress should pass -BZ_RUN as the requested action; other actions are illegal and -will result in BZ_SEQUENCE_ERROR. - -

-

-At some point, the calling program will have provided all the input data -it wants to. It will then want to finish up -- in effect, asking the -library to process any data it might have buffered internally. In this -state, BZ2_bzCompress will no longer attempt to read data from -next_in, but it will want to write data to next_out. -Because the output buffer supplied by the user can be arbitrarily small, -the finishing-up operation cannot necessarily be done with a single call -of BZ2_bzCompress. - -

-

-Instead, the calling program passes BZ_FINISH as an action to -BZ2_bzCompress. This changes the stream's state to FINISHING. Any -remaining input (ie, next_in[0 .. avail_in-1]) is compressed and -transferred to the output buffer. To do this, BZ2_bzCompress must be -called repeatedly until all the output has been consumed. At that -point, BZ2_bzCompress returns BZ_STREAM_END, and the stream's -state is set back to IDLE. BZ2_bzCompressEnd should then be -called. - -

-

-Just to make sure the calling program does not cheat, the library makes -a note of avail_in at the time of the first call to -BZ2_bzCompress which has BZ_FINISH as an action (ie, at the -time the program has announced its intention to not supply any more -input). By comparing this value with that of avail_in over -subsequent calls to BZ2_bzCompress, the library can detect any -attempts to slip in more data to compress. Any calls for which this is -detected will return BZ_SEQUENCE_ERROR. This indicates a -programming mistake which should be corrected. - -

-

-Instead of asking to finish, the calling program may ask -BZ2_bzCompress to take all the remaining input, compress it and -terminate the current (Burrows-Wheeler) compression block. This could -be useful for error control purposes. The mechanism is analogous to -that for finishing: call BZ2_bzCompress with an action of -BZ_FLUSH, remove output data, and persist with the -BZ_FLUSH action until the value BZ_RUN is returned. As -with finishing, BZ2_bzCompress detects any attempt to provide more -input data once the flush has begun. - -

-

-Once the flush is complete, the stream returns to the normal RUNNING -state. - -

-

-This all sounds pretty complex, but isn't really. Here's a table -which shows which actions are allowable in each state, what action -will be taken, what the next state is, and what the non-error return -values are. Note that you can't explicitly ask what state the -stream is in, but nor do you need to -- it can be inferred from the -values returned by BZ2_bzCompress. - -

-IDLE/any           
-      Illegal.  IDLE state only exists after BZ2_bzCompressEnd or
-      before BZ2_bzCompressInit.
-      Return value = BZ_SEQUENCE_ERROR
-
-RUNNING/BZ_RUN     
-      Compress from next_in to next_out as much as possible.
-      Next state = RUNNING
-      Return value = BZ_RUN_OK
-
-RUNNING/BZ_FLUSH   
-      Remember current value of next_in.  Compress from next_in
-      to next_out as much as possible, but do not accept any more input.  
-      Next state = FLUSHING
-      Return value = BZ_FLUSH_OK
-
-RUNNING/BZ_FINISH  
-      Remember current value of next_in.  Compress from next_in
-      to next_out as much as possible, but do not accept any more input.
-      Next state = FINISHING
-      Return value = BZ_FINISH_OK
-
-FLUSHING/BZ_FLUSH  
-      Compress from next_in to next_out as much as possible, 
-      but do not accept any more input.  
-      If all the existing input has been used up and all compressed
-      output has been removed
-         Next state = RUNNING; Return value = BZ_RUN_OK
-      else
-         Next state = FLUSHING; Return value = BZ_FLUSH_OK
-
-FLUSHING/other     
-      Illegal.
-      Return value = BZ_SEQUENCE_ERROR
-
-FINISHING/BZ_FINISH  
-      Compress from next_in to next_out as much as possible,
-      but to not accept any more input.  
-      If all the existing input has been used up and all compressed
-      output has been removed
-         Next state = IDLE; Return value = BZ_STREAM_END
-      else
-         Next state = FINISHING; Return value = BZ_FINISHING
-
-FINISHING/other
-      Illegal.
-      Return value = BZ_SEQUENCE_ERROR
-
- -

-That still looks complicated? Well, fair enough. The usual sequence -of calls for compressing a load of data is: - -

    -
  • Get started with BZ2_bzCompressInit. - -
  • Shovel data in and shlurp out its compressed form using zero or more - -calls of BZ2_bzCompress with action = BZ_RUN. -
  • Finish up. - -Repeatedly call BZ2_bzCompress with action = BZ_FINISH, -copying out the compressed output, until BZ_STREAM_END is returned. -
  • Close up and go home. Call BZ2_bzCompressEnd. - -
- -

-If the data you want to compress fits into your input buffer all -at once, you can skip the calls of BZ2_bzCompress ( ..., BZ_RUN ) and -just do the BZ2_bzCompress ( ..., BZ_FINISH ) calls. - -

-

-All required memory is allocated by BZ2_bzCompressInit. The -compression library can accept any data at all (obviously). So you -shouldn't get any error return values from the BZ2_bzCompress calls. -If you do, they will be BZ_SEQUENCE_ERROR, and indicate a bug in -your programming. - -

-

-Trivial other possible return values: - -

-      BZ_PARAM_ERROR   
-         if strm is NULL, or strm->s is NULL
-
- - - -

BZ2_bzCompressEnd

- -
-int BZ2_bzCompressEnd ( bz_stream *strm );
-
- -

-Releases all memory associated with a compression stream. - -

-

-Possible return values: - -

-   BZ_PARAM_ERROR    if strm is NULL or strm->s is NULL
-   BZ_OK    otherwise
-
- - - -

BZ2_bzDecompressInit

- -
-int BZ2_bzDecompressInit ( bz_stream *strm, int verbosity, int small );
-
- -

-Prepares for decompression. As with BZ2_bzCompressInit, a -bz_stream record should be allocated and initialised before the -call. Fields bzalloc, bzfree and opaque should be -set if a custom memory allocator is required, or made NULL for -the normal malloc/free routines. Upon return, the internal -state will have been initialised, and total_in and -total_out will be zero. - -

-

-For the meaning of parameter verbosity, see BZ2_bzCompressInit. - -

-

-If small is nonzero, the library will use an alternative -decompression algorithm which uses less memory but at the cost of -decompressing more slowly (roughly speaking, half the speed, but the -maximum memory requirement drops to around 2300k). See Chapter 2 for -more information on memory management. - -

-

-Note that the amount of memory needed to decompress -a stream cannot be determined until the stream's header has been read, -so even if BZ2_bzDecompressInit succeeds, a subsequent -BZ2_bzDecompress could fail with BZ_MEM_ERROR. - -

-

-Possible return values: - -

-      BZ_CONFIG_ERROR
-         if the library has been mis-compiled
-      BZ_PARAM_ERROR
-         if (small != 0 && small != 1)
-         or (verbosity < 0 || verbosity > 4)
-      BZ_MEM_ERROR
-         if insufficient memory is available
-
- -

-Allowable next actions: - -

-      BZ2_bzDecompress
-         if BZ_OK was returned
-      no specific action required in case of error
-
- -

- - -

- - -

BZ2_bzDecompress

- -
-int BZ2_bzDecompress ( bz_stream *strm );
-
- -

-Provides more input and/out output buffer space for the library. The -caller maintains input and output buffers, and uses BZ2_bzDecompress -to transfer data between them. - -

-

-Before each call to BZ2_bzDecompress, next_in -should point at the compressed data, -and avail_in should indicate how many bytes the library -may read. BZ2_bzDecompress updates next_in, avail_in -and total_in -to reflect the number of bytes it has read. - -

-

-Similarly, next_out should point to a buffer in which the uncompressed -output is to be placed, with avail_out indicating how much output space -is available. BZ2_bzCompress updates next_out, -avail_out and total_out to reflect -the number of bytes output. - -

-

-You may provide and remove as little or as much data as you like on -each call of BZ2_bzDecompress. -In the limit, it is acceptable to -supply and remove data one byte at a time, although this would be -terribly inefficient. You should always ensure that at least one -byte of output space is available at each call. - -

-

-Use of BZ2_bzDecompress is simpler than BZ2_bzCompress. - -

-

-You should provide input and remove output as described above, and -repeatedly call BZ2_bzDecompress until BZ_STREAM_END is -returned. Appearance of BZ_STREAM_END denotes that -BZ2_bzDecompress has detected the logical end of the compressed -stream. BZ2_bzDecompress will not produce BZ_STREAM_END until -all output data has been placed into the output buffer, so once -BZ_STREAM_END appears, you are guaranteed to have available all -the decompressed output, and BZ2_bzDecompressEnd can safely be -called. - -

-

-If case of an error return value, you should call BZ2_bzDecompressEnd -to clean up and release memory. - -

-

-Possible return values: - -

-      BZ_PARAM_ERROR
-         if strm is NULL or strm->s is NULL
-         or strm->avail_out < 1
-      BZ_DATA_ERROR
-         if a data integrity error is detected in the compressed stream
-      BZ_DATA_ERROR_MAGIC
-         if the compressed stream doesn't begin with the right magic bytes
-      BZ_MEM_ERROR
-         if there wasn't enough memory available
-      BZ_STREAM_END
-         if the logical end of the data stream was detected and all
-         output in has been consumed, eg s->avail_out > 0
-      BZ_OK
-         otherwise
-
- -

-Allowable next actions: - -

-      BZ2_bzDecompress
-         if BZ_OK was returned
-      BZ2_bzDecompressEnd
-         otherwise
-
- - - -

BZ2_bzDecompressEnd

- -
-int BZ2_bzDecompressEnd ( bz_stream *strm );
-
- -

-Releases all memory associated with a decompression stream. - -

-

-Possible return values: - -

-      BZ_PARAM_ERROR
-         if strm is NULL or strm->s is NULL
-      BZ_OK
-         otherwise
-
- -

-Allowable next actions: - -

-      None.
-
- - - -

High-level interface

- -

-This interface provides functions for reading and writing -bzip2 format files. First, some general points. - -

- -
    -
  • All of the functions take an int* first argument, - - bzerror. - After each call, bzerror should be consulted first to determine - the outcome of the call. If bzerror is BZ_OK, - the call completed - successfully, and only then should the return value of the function - (if any) be consulted. If bzerror is BZ_IO_ERROR, - there was an error - reading/writing the underlying compressed file, and you should - then consult errno/perror to determine the - cause of the difficulty. - bzerror may also be set to various other values; precise details are - given on a per-function basis below. -
  • If bzerror indicates an error - - (ie, anything except BZ_OK and BZ_STREAM_END), - you should immediately call BZ2_bzReadClose (or BZ2_bzWriteClose, - depending on whether you are attempting to read or to write) - to free up all resources associated - with the stream. Once an error has been indicated, behaviour of all calls - except BZ2_bzReadClose (BZ2_bzWriteClose) is undefined. - The implication is that (1) bzerror should - be checked after each call, and (2) if bzerror indicates an error, - BZ2_bzReadClose (BZ2_bzWriteClose) should then be called to clean up. -
  • The FILE* arguments passed to - - BZ2_bzReadOpen/BZ2_bzWriteOpen - should be set to binary mode. - Most Unix systems will do this by default, but other platforms, - including Windows and Mac, will not. If you omit this, you may - encounter problems when moving code to new platforms. -
  • Memory allocation requests are handled by - - malloc/free. - At present - there is no facility for user-defined memory allocators in the file I/O - functions (could easily be added, though). -
- - - -

BZ2_bzReadOpen

- -
-   typedef void BZFILE;
-
-   BZFILE *BZ2_bzReadOpen ( int *bzerror, FILE *f, 
-                            int small, int verbosity,
-                            void *unused, int nUnused );
-
- -

-Prepare to read compressed data from file handle f. f -should refer to a file which has been opened for reading, and for which -the error indicator (ferror(f))is not set. If small is 1, -the library will try to decompress using less memory, at the expense of -speed. - -

-

-For reasons explained below, BZ2_bzRead will decompress the -nUnused bytes starting at unused, before starting to read -from the file f. At most BZ_MAX_UNUSED bytes may be -supplied like this. If this facility is not required, you should pass -NULL and 0 for unused and nUnused -respectively. - -

-

-For the meaning of parameters small and verbosity, -see BZ2_bzDecompressInit. - -

-

-The amount of memory needed to decompress a file cannot be determined -until the file's header has been read. So it is possible that -BZ2_bzReadOpen returns BZ_OK but a subsequent call of -BZ2_bzRead will return BZ_MEM_ERROR. - -

-

-Possible assignments to bzerror: - -

-      BZ_CONFIG_ERROR
-         if the library has been mis-compiled
-      BZ_PARAM_ERROR
-         if f is NULL 
-         or small is neither 0 nor 1                 
-         or (unused == NULL && nUnused != 0)
-         or (unused != NULL && !(0 <= nUnused <= BZ_MAX_UNUSED))
-      BZ_IO_ERROR    
-         if ferror(f) is nonzero
-      BZ_MEM_ERROR   
-         if insufficient memory is available
-      BZ_OK
-         otherwise.
-
- -

-Possible return values: - -

-      Pointer to an abstract BZFILE        
-         if bzerror is BZ_OK   
-      NULL
-         otherwise
-
- -

-Allowable next actions: - -

-      BZ2_bzRead
-         if bzerror is BZ_OK   
-      BZ2_bzClose 
-         otherwise
-
- - - -

BZ2_bzRead

- -
-   int BZ2_bzRead ( int *bzerror, BZFILE *b, void *buf, int len );
-
- -

-Reads up to len (uncompressed) bytes from the compressed file -b into -the buffer buf. If the read was successful, -bzerror is set to BZ_OK -and the number of bytes read is returned. If the logical end-of-stream -was detected, bzerror will be set to BZ_STREAM_END, -and the number -of bytes read is returned. All other bzerror values denote an error. - -

-

-BZ2_bzRead will supply len bytes, -unless the logical stream end is detected -or an error occurs. Because of this, it is possible to detect the -stream end by observing when the number of bytes returned is -less than the number -requested. Nevertheless, this is regarded as inadvisable; you should -instead check bzerror after every call and watch out for -BZ_STREAM_END. - -

-

-Internally, BZ2_bzRead copies data from the compressed file in chunks -of size BZ_MAX_UNUSED bytes -before decompressing it. If the file contains more bytes than strictly -needed to reach the logical end-of-stream, BZ2_bzRead will almost certainly -read some of the trailing data before signalling BZ_SEQUENCE_END. -To collect the read but unused data once BZ_SEQUENCE_END has -appeared, call BZ2_bzReadGetUnused immediately before BZ2_bzReadClose. - -

-

-Possible assignments to bzerror: - -

-      BZ_PARAM_ERROR
-         if b is NULL or buf is NULL or len < 0
-      BZ_SEQUENCE_ERROR 
-         if b was opened with BZ2_bzWriteOpen
-      BZ_IO_ERROR 
-         if there is an error reading from the compressed file
-      BZ_UNEXPECTED_EOF 
-         if the compressed file ended before the logical end-of-stream was detected
-      BZ_DATA_ERROR 
-         if a data integrity error was detected in the compressed stream
-      BZ_DATA_ERROR_MAGIC
-         if the stream does not begin with the requisite header bytes (ie, is not 
-         a bzip2 data file).  This is really a special case of BZ_DATA_ERROR.
-      BZ_MEM_ERROR 
-         if insufficient memory was available
-      BZ_STREAM_END 
-         if the logical end of stream was detected.
-      BZ_OK
-         otherwise.
-
- -

-Possible return values: - -

-      number of bytes read
-         if bzerror is BZ_OK or BZ_STREAM_END
-      undefined
-         otherwise
-
- -

-Allowable next actions: - -

-      collect data from buf, then BZ2_bzRead or BZ2_bzReadClose
-         if bzerror is BZ_OK 
-      collect data from buf, then BZ2_bzReadClose or BZ2_bzReadGetUnused 
-         if bzerror is BZ_SEQUENCE_END   
-      BZ2_bzReadClose 
-         otherwise
-
- - - -

BZ2_bzReadGetUnused

- -
-   void BZ2_bzReadGetUnused ( int* bzerror, BZFILE *b, 
-                              void** unused, int* nUnused );
-
- -

-Returns data which was read from the compressed file but was not needed -to get to the logical end-of-stream. *unused is set to the address -of the data, and *nUnused to the number of bytes. *nUnused will -be set to a value between 0 and BZ_MAX_UNUSED inclusive. - -

-

-This function may only be called once BZ2_bzRead has signalled -BZ_STREAM_END but before BZ2_bzReadClose. - -

-

-Possible assignments to bzerror: - -

-      BZ_PARAM_ERROR 
-         if b is NULL 
-         or unused is NULL or nUnused is NULL
-      BZ_SEQUENCE_ERROR 
-         if BZ_STREAM_END has not been signalled
-         or if b was opened with BZ2_bzWriteOpen
-     BZ_OK
-         otherwise
-
- -

-Allowable next actions: - -

-      BZ2_bzReadClose
-
- - - -

BZ2_bzReadClose

- -
-   void BZ2_bzReadClose ( int *bzerror, BZFILE *b );
-
- -

-Releases all memory pertaining to the compressed file b. -BZ2_bzReadClose does not call fclose on the underlying file -handle, so you should do that yourself if appropriate. -BZ2_bzReadClose should be called to clean up after all error -situations. - -

-

-Possible assignments to bzerror: - -

-      BZ_SEQUENCE_ERROR 
-         if b was opened with BZ2_bzOpenWrite 
-      BZ_OK 
-         otherwise
-
- -

-Allowable next actions: - -

-      none
-
- - - -

BZ2_bzWriteOpen

- -
-   BZFILE *BZ2_bzWriteOpen ( int *bzerror, FILE *f, 
-                             int blockSize100k, int verbosity,
-                             int workFactor );
-
- -

-Prepare to write compressed data to file handle f. -f should refer to -a file which has been opened for writing, and for which the error -indicator (ferror(f))is not set. - -

-

-For the meaning of parameters blockSize100k, -verbosity and workFactor, see -
BZ2_bzCompressInit. - -

-

-All required memory is allocated at this stage, so if the call -completes successfully, BZ_MEM_ERROR cannot be signalled by a -subsequent call to BZ2_bzWrite. - -

-

-Possible assignments to bzerror: - -

-      BZ_CONFIG_ERROR
-         if the library has been mis-compiled
-      BZ_PARAM_ERROR 
-         if f is NULL 
-         or blockSize100k < 1 or blockSize100k > 9
-      BZ_IO_ERROR 
-         if ferror(f) is nonzero
-      BZ_MEM_ERROR 
-         if insufficient memory is available
-      BZ_OK 
-         otherwise
-
- -

-Possible return values: - -

-      Pointer to an abstract BZFILE  
-         if bzerror is BZ_OK   
-      NULL 
-         otherwise
-
- -

-Allowable next actions: - -

-      BZ2_bzWrite 
-         if bzerror is BZ_OK 
-         (you could go directly to BZ2_bzWriteClose, but this would be pretty pointless)
-      BZ2_bzWriteClose 
-         otherwise
-
- - - -

BZ2_bzWrite

- -
-   void BZ2_bzWrite ( int *bzerror, BZFILE *b, void *buf, int len );
-
- -

-Absorbs len bytes from the buffer buf, eventually to be -compressed and written to the file. - -

-

-Possible assignments to bzerror: - -

-      BZ_PARAM_ERROR 
-         if b is NULL or buf is NULL or len < 0
-      BZ_SEQUENCE_ERROR 
-         if b was opened with BZ2_bzReadOpen
-      BZ_IO_ERROR 
-         if there is an error writing the compressed file.
-      BZ_OK 
-         otherwise
-
- - - -

BZ2_bzWriteClose

- -
-   void BZ2_bzWriteClose ( int *bzerror, BZFILE* f,
-                           int abandon,
-                           unsigned int* nbytes_in,
-                           unsigned int* nbytes_out );
-
-   void BZ2_bzWriteClose64 ( int *bzerror, BZFILE* f,
-                             int abandon,
-                             unsigned int* nbytes_in_lo32,
-                             unsigned int* nbytes_in_hi32,
-                             unsigned int* nbytes_out_lo32,
-                             unsigned int* nbytes_out_hi32 );
-
- -

-Compresses and flushes to the compressed file all data so far supplied -by BZ2_bzWrite. The logical end-of-stream markers are also written, so -subsequent calls to BZ2_bzWrite are illegal. All memory associated -with the compressed file b is released. -fflush is called on the -compressed file, but it is not fclose'd. - -

-

-If BZ2_bzWriteClose is called to clean up after an error, the only -action is to release the memory. The library records the error codes -issued by previous calls, so this situation will be detected -automatically. There is no attempt to complete the compression -operation, nor to fflush the compressed file. You can force this -behaviour to happen even in the case of no error, by passing a nonzero -value to abandon. - -

-

-If nbytes_in is non-null, *nbytes_in will be set to be the -total volume of uncompressed data handled. Similarly, nbytes_out -will be set to the total volume of compressed data written. For -compatibility with older versions of the library, BZ2_bzWriteClose -only yields the lower 32 bits of these counts. Use -BZ2_bzWriteClose64 if you want the full 64 bit counts. These -two functions are otherwise absolutely identical. - -

- -

-Possible assignments to bzerror: - -

-      BZ_SEQUENCE_ERROR 
-         if b was opened with BZ2_bzReadOpen
-      BZ_IO_ERROR 
-         if there is an error writing the compressed file
-      BZ_OK 
-         otherwise
-
- - - -

Handling embedded compressed data streams

- -

-The high-level library facilitates use of -bzip2 data streams which form some part of a surrounding, larger -data stream. - -

    -
  • For writing, the library takes an open file handle, writes - -compressed data to it, fflushes it but does not fclose it. -The calling application can write its own data before and after the -compressed data stream, using that same file handle. -
  • Reading is more complex, and the facilities are not as general - -as they could be since generality is hard to reconcile with efficiency. -BZ2_bzRead reads from the compressed file in blocks of size -BZ_MAX_UNUSED bytes, and in doing so probably will overshoot -the logical end of compressed stream. -To recover this data once decompression has -ended, call BZ2_bzReadGetUnused after the last call of BZ2_bzRead -(the one returning BZ_STREAM_END) but before calling -BZ2_bzReadClose. -
- -

-This mechanism makes it easy to decompress multiple bzip2 -streams placed end-to-end. As the end of one stream, when BZ2_bzRead -returns BZ_STREAM_END, call BZ2_bzReadGetUnused to collect the -unused data (copy it into your own buffer somewhere). -That data forms the start of the next compressed stream. -To start uncompressing that next stream, call BZ2_bzReadOpen again, -feeding in the unused data via the unused/nUnused -parameters. -Keep doing this until BZ_STREAM_END return coincides with the -physical end of file (feof(f)). In this situation -BZ2_bzReadGetUnused -will of course return no data. - -

-

-This should give some feel for how the high-level interface can be used. -If you require extra flexibility, you'll have to bite the bullet and get -to grips with the low-level interface. - -

- - -

Standard file-reading/writing code

-

-Here's how you'd write data to a compressed file: - -

-FILE*   f;
-BZFILE* b;
-int     nBuf;
-char    buf[ /* whatever size you like */ ];
-int     bzerror;
-int     nWritten;
-
-f = fopen ( "myfile.bz2", "w" );
-if (!f) {
-   /* handle error */
-}
-b = BZ2_bzWriteOpen ( &bzerror, f, 9 );
-if (bzerror != BZ_OK) {
-   BZ2_bzWriteClose ( b );
-   /* handle error */
-}
-
-while ( /* condition */ ) {
-   /* get data to write into buf, and set nBuf appropriately */
-   nWritten = BZ2_bzWrite ( &bzerror, b, buf, nBuf );
-   if (bzerror == BZ_IO_ERROR) { 
-      BZ2_bzWriteClose ( &bzerror, b );
-      /* handle error */
-   }
-}
-
-BZ2_bzWriteClose ( &bzerror, b );
-if (bzerror == BZ_IO_ERROR) {
-   /* handle error */
-}
-
- -

-And to read from a compressed file: - -

-FILE*   f;
-BZFILE* b;
-int     nBuf;
-char    buf[ /* whatever size you like */ ];
-int     bzerror;
-int     nWritten;
-
-f = fopen ( "myfile.bz2", "r" );
-if (!f) {
-   /* handle error */
-}
-b = BZ2_bzReadOpen ( &bzerror, f, 0, NULL, 0 );
-if (bzerror != BZ_OK) {
-   BZ2_bzReadClose ( &bzerror, b );
-   /* handle error */
-}
-
-bzerror = BZ_OK;
-while (bzerror == BZ_OK && /* arbitrary other conditions */) {
-   nBuf = BZ2_bzRead ( &bzerror, b, buf, /* size of buf */ );
-   if (bzerror == BZ_OK) {
-      /* do something with buf[0 .. nBuf-1] */
-   }
-}
-if (bzerror != BZ_STREAM_END) {
-   BZ2_bzReadClose ( &bzerror, b );
-   /* handle error */
-} else {
-   BZ2_bzReadClose ( &bzerror );
-}
-
- - - -

Utility functions

- - -

BZ2_bzBuffToBuffCompress

- -
-   int BZ2_bzBuffToBuffCompress( char*         dest,
-                                 unsigned int* destLen,
-                                 char*         source,
-                                 unsigned int  sourceLen,
-                                 int           blockSize100k,
-                                 int           verbosity,
-                                 int           workFactor );
-
- -

-Attempts to compress the data in source[0 .. sourceLen-1] -into the destination buffer, dest[0 .. *destLen-1]. -If the destination buffer is big enough, *destLen is -set to the size of the compressed data, and BZ_OK is -returned. If the compressed data won't fit, *destLen -is unchanged, and BZ_OUTBUFF_FULL is returned. - -

-

-Compression in this manner is a one-shot event, done with a single call -to this function. The resulting compressed data is a complete -bzip2 format data stream. There is no mechanism for making -additional calls to provide extra input data. If you want that kind of -mechanism, use the low-level interface. - -

-

-For the meaning of parameters blockSize100k, verbosity -and workFactor,
see BZ2_bzCompressInit. - -

-

-To guarantee that the compressed data will fit in its buffer, allocate -an output buffer of size 1% larger than the uncompressed data, plus -six hundred extra bytes. - -

-

-BZ2_bzBuffToBuffDecompress will not write data at or -beyond dest[*destLen], even in case of buffer overflow. - -

-

-Possible return values: - -

-      BZ_CONFIG_ERROR
-         if the library has been mis-compiled
-      BZ_PARAM_ERROR 
-         if dest is NULL or destLen is NULL
-         or blockSize100k < 1 or blockSize100k > 9
-         or verbosity < 0 or verbosity > 4 
-         or workFactor < 0 or workFactor > 250
-      BZ_MEM_ERROR
-         if insufficient memory is available 
-      BZ_OUTBUFF_FULL
-         if the size of the compressed data exceeds *destLen
-      BZ_OK 
-         otherwise
-
- - - -

BZ2_bzBuffToBuffDecompress

- -
-   int BZ2_bzBuffToBuffDecompress ( char*         dest,
-                                    unsigned int* destLen,
-                                    char*         source,
-                                    unsigned int  sourceLen,
-                                    int           small,
-                                    int           verbosity );
-
- -

-Attempts to decompress the data in source[0 .. sourceLen-1] -into the destination buffer, dest[0 .. *destLen-1]. -If the destination buffer is big enough, *destLen is -set to the size of the uncompressed data, and BZ_OK is -returned. If the compressed data won't fit, *destLen -is unchanged, and BZ_OUTBUFF_FULL is returned. - -

-

-source is assumed to hold a complete bzip2 format -data stream.
BZ2_bzBuffToBuffDecompress tries to decompress -the entirety of the stream into the output buffer. - -

-

-For the meaning of parameters small and verbosity, -see BZ2_bzDecompressInit. - -

-

-Because the compression ratio of the compressed data cannot be known in -advance, there is no easy way to guarantee that the output buffer will -be big enough. You may of course make arrangements in your code to -record the size of the uncompressed data, but such a mechanism is beyond -the scope of this library. - -

-

-BZ2_bzBuffToBuffDecompress will not write data at or -beyond dest[*destLen], even in case of buffer overflow. - -

-

-Possible return values: - -

-      BZ_CONFIG_ERROR
-         if the library has been mis-compiled
-      BZ_PARAM_ERROR 
-         if dest is NULL or destLen is NULL
-         or small != 0 && small != 1
-         or verbosity < 0 or verbosity > 4 
-      BZ_MEM_ERROR
-         if insufficient memory is available 
-      BZ_OUTBUFF_FULL
-         if the size of the compressed data exceeds *destLen
-      BZ_DATA_ERROR
-         if a data integrity error was detected in the compressed data
-      BZ_DATA_ERROR_MAGIC
-         if the compressed data doesn't begin with the right magic bytes
-      BZ_UNEXPECTED_EOF
-         if the compressed data ends unexpectedly
-      BZ_OK 
-         otherwise
-
- - - -

zlib compatibility functions

-

-Yoshioka Tsuneo has contributed some functions to -give better zlib compatibility. These functions are -BZ2_bzopen, BZ2_bzread, BZ2_bzwrite, BZ2_bzflush, -BZ2_bzclose, -BZ2_bzerror and BZ2_bzlibVersion. -These functions are not (yet) officially part of -the library. If they break, you get to keep all the pieces. -Nevertheless, I think they work ok. - -

-typedef void BZFILE;
-
-const char * BZ2_bzlibVersion ( void );
-
- -

-Returns a string indicating the library version. - -

-BZFILE * BZ2_bzopen  ( const char *path, const char *mode );
-BZFILE * BZ2_bzdopen ( int        fd,    const char *mode );
-
- -

-Opens a .bz2 file for reading or writing, using either its name -or a pre-existing file descriptor. -Analogous to fopen and fdopen. - -

-int BZ2_bzread  ( BZFILE* b, void* buf, int len );
-int BZ2_bzwrite ( BZFILE* b, void* buf, int len );
-
- -

-Reads/writes data from/to a previously opened BZFILE. -Analogous to fread and fwrite. - -

-int  BZ2_bzflush ( BZFILE* b );
-void BZ2_bzclose ( BZFILE* b );
-
- -

-Flushes/closes a BZFILE. BZ2_bzflush doesn't actually do -anything. Analogous to fflush and fclose. - -

- -
-const char * BZ2_bzerror ( BZFILE *b, int *errnum )
-
- -

-Returns a string describing the more recent error status of -b, and also sets *errnum to its numerical value. - -

- - - -

Using the library in a stdio-free environment

- - - -

Getting rid of stdio

- -

-In a deeply embedded application, you might want to use just -the memory-to-memory functions. You can do this conveniently -by compiling the library with preprocessor symbol BZ_NO_STDIO -defined. Doing this gives you a library containing only the following -eight functions: - -

-

-BZ2_bzCompressInit, BZ2_bzCompress, BZ2_bzCompressEnd
-BZ2_bzDecompressInit, BZ2_bzDecompress, BZ2_bzDecompressEnd
-BZ2_bzBuffToBuffCompress, BZ2_bzBuffToBuffDecompress - -

-

-When compiled like this, all functions will ignore verbosity -settings. - -

- - -

Critical error handling

-

-libbzip2 contains a number of internal assertion checks which -should, needless to say, never be activated. Nevertheless, if an -assertion should fail, behaviour depends on whether or not the library -was compiled with BZ_NO_STDIO set. - -

-

-For a normal compile, an assertion failure yields the message - -

-   bzip2/libbzip2: internal error number N.
-   This is a bug in bzip2/libbzip2, 1.0 of 21-Mar-2000.
-   Please report it to me at: jseward@acm.org.  If this happened
-   when you were using some program which uses libbzip2 as a
-   component, you should also report this bug to the author(s)
-   of that program.  Please make an effort to report this bug;
-   timely and accurate bug reports eventually lead to higher
-   quality software.  Thanks.  Julian Seward, 21 March 2000.
-
- -

-where N is some error code number. exit(3) -is then called. - -

-

-For a stdio-free library, assertion failures result -in a call to a function declared as: - -

-   extern void bz_internal_error ( int errcode );
-
- -

-The relevant code is passed as a parameter. You should supply -such a function. - -

-

-In either case, once an assertion failure has occurred, any -bz_stream records involved can be regarded as invalid. -You should not attempt to resume normal operation with them. - -

-

-You may, of course, change critical error handling to suit -your needs. As I said above, critical errors indicate bugs -in the library and should not occur. All "normal" error -situations are indicated via error return codes from functions, -and can be recovered from. - -

- - - -

Making a Windows DLL

-

-Everything related to Windows has been contributed by Yoshioka Tsuneo -
(QWF00133@niftyserve.or.jp / -tsuneo-y@is.aist-nara.ac.jp), so you should send your queries to -him (but perhaps Cc: me, jseward@acm.org). - -

-

-My vague understanding of what to do is: using Visual C++ 5.0, -open the project file libbz2.dsp, and build. That's all. - -

-

-If you can't -open the project file for some reason, make a new one, naming these files: -blocksort.c, bzlib.c, compress.c, -crctable.c, decompress.c, huffman.c,
-randtable.c and libbz2.def. You will also need -to name the header files bzlib.h and bzlib_private.h. - -

-

-If you don't use VC++, you may need to define the proprocessor symbol -_WIN32. - -

-

-Finally, dlltest.c is a sample program using the DLL. It has a -project file, dlltest.dsp. - -

-

-If you just want a makefile for Visual C, have a look at -makefile.msc. - -

-

-Be aware that if you compile bzip2 itself on Win32, you must set -BZ_UNIX to 0 and BZ_LCCWIN32 to 1, in the file -bzip2.c, before compiling. Otherwise the resulting binary won't -work correctly. - -

-

-I haven't tried any of this stuff myself, but it all looks plausible. - -

- -


-

Go to the first, previous, next, last section, table of contents. - - diff --git a/winsup/bz2lib/manual_4.html b/winsup/bz2lib/manual_4.html deleted file mode 100644 index 9ab7fb24f..000000000 --- a/winsup/bz2lib/manual_4.html +++ /dev/null @@ -1,528 +0,0 @@ - - - - -bzip2 and libbzip2 - Miscellanea - - - - - -

Go to the first, previous, next, last section, table of contents. -


- - -

Miscellanea

- -

-These are just some random thoughts of mine. Your mileage may -vary. - -

- - -

Limitations of the compressed file format

-

-bzip2-1.0, 0.9.5 and 0.9.0 -use exactly the same file format as the previous -version, bzip2-0.1. This decision was made in the interests of -stability. Creating yet another incompatible compressed file format -would create further confusion and disruption for users. - -

-

-Nevertheless, this is not a painless decision. Development -work since the release of bzip2-0.1 in August 1997 -has shown complexities in the file format which slow down -decompression and, in retrospect, are unnecessary. These are: - -

    -
  • The run-length encoder, which is the first of the - - compression transformations, is entirely irrelevant. - The original purpose was to protect the sorting algorithm - from the very worst case input: a string of repeated - symbols. But algorithm steps Q6a and Q6b in the original - Burrows-Wheeler technical report (SRC-124) show how - repeats can be handled without difficulty in block - sorting. -
  • The randomisation mechanism doesn't really need to be - - there. Udi Manber and Gene Myers published a suffix - array construction algorithm a few years back, which - can be employed to sort any block, no matter how - repetitive, in O(N log N) time. Subsequent work by - Kunihiko Sadakane has produced a derivative O(N (log N)^2) - algorithm which usually outperforms the Manber-Myers - algorithm. - - I could have changed to Sadakane's algorithm, but I find - it to be slower than bzip2's existing algorithm for - most inputs, and the randomisation mechanism protects - adequately against bad cases. I didn't think it was - a good tradeoff to make. Partly this is due to the fact - that I was not flooded with email complaints about - bzip2-0.1's performance on repetitive data, so - perhaps it isn't a problem for real inputs. - - Probably the best long-term solution, - and the one I have incorporated into 0.9.5 and above, - is to use the existing sorting - algorithm initially, and fall back to a O(N (log N)^2) - algorithm if the standard algorithm gets into difficulties. -
  • The compressed file format was never designed to be - - handled by a library, and I have had to jump though - some hoops to produce an efficient implementation of - decompression. It's a bit hairy. Try passing - decompress.c through the C preprocessor - and you'll see what I mean. Much of this complexity - could have been avoided if the compressed size of - each block of data was recorded in the data stream. -
  • An Adler-32 checksum, rather than a CRC32 checksum, - - would be faster to compute. -
- -

-It would be fair to say that the bzip2 format was frozen -before I properly and fully understood the performance -consequences of doing so. - -

-

-Improvements which I was able to incorporate into -0.9.0, despite using the same file format, are: - -

    -
  • Single array implementation of the inverse BWT. This - - significantly speeds up decompression, presumably - because it reduces the number of cache misses. -
  • Faster inverse MTF transform for large MTF values. The - - new implementation is based on the notion of sliding blocks - of values. -
  • bzip2-0.9.0 now reads and writes files with fread - - and fwrite; version 0.1 used putc and getc. - Duh! Well, you live and learn. - -
- -

-Further ahead, it would be nice -to be able to do random access into files. This will -require some careful design of compressed file formats. - -

- - - -

Portability issues

-

-After some consideration, I have decided not to use -GNU autoconf to configure 0.9.5 or 1.0. - -

-

-autoconf, admirable and wonderful though it is, -mainly assists with portability problems between Unix-like -platforms. But bzip2 doesn't have much in the way -of portability problems on Unix; most of the difficulties appear -when porting to the Mac, or to Microsoft's operating systems. -autoconf doesn't help in those cases, and brings in a -whole load of new complexity. - -

-

-Most people should be able to compile the library and program -under Unix straight out-of-the-box, so to speak, especially -if you have a version of GNU C available. - -

-

-There are a couple of __inline__ directives in the code. GNU C -(gcc) should be able to handle them. If you're not using -GNU C, your C compiler shouldn't see them at all. -If your compiler does, for some reason, see them and doesn't -like them, just #define __inline__ to be /* */. One -easy way to do this is to compile with the flag -D__inline__=, -which should be understood by most Unix compilers. - -

-

-If you still have difficulties, try compiling with the macro -BZ_STRICT_ANSI defined. This should enable you to build the -library in a strictly ANSI compliant environment. Building the program -itself like this is dangerous and not supported, since you remove -bzip2's checks against compressing directories, symbolic links, -devices, and other not-really-a-file entities. This could cause -filesystem corruption! - -

-

-One other thing: if you create a bzip2 binary for public -distribution, please try and link it statically (gcc -s). This -avoids all sorts of library-version issues that others may encounter -later on. - -

-

-If you build bzip2 on Win32, you must set BZ_UNIX to 0 and -BZ_LCCWIN32 to 1, in the file bzip2.c, before compiling. -Otherwise the resulting binary won't work correctly. - -

- - - -

Reporting bugs

-

-I tried pretty hard to make sure bzip2 is -bug free, both by design and by testing. Hopefully -you'll never need to read this section for real. - -

-

-Nevertheless, if bzip2 dies with a segmentation -fault, a bus error or an internal assertion failure, it -will ask you to email me a bug report. Experience with -version 0.1 shows that almost all these problems can -be traced to either compiler bugs or hardware problems. - -

    -
  • - -Recompile the program with no optimisation, and see if it -works. And/or try a different compiler. -I heard all sorts of stories about various flavours -of GNU C (and other compilers) generating bad code for -bzip2, and I've run across two such examples myself. - -2.7.X versions of GNU C are known to generate bad code from -time to time, at high optimisation levels. -If you get problems, try using the flags --O2 -fomit-frame-pointer -fno-strength-reduce. -You should specifically not use -funroll-loops. - -You may notice that the Makefile runs six tests as part of -the build process. If the program passes all of these, it's -a pretty good (but not 100%) indication that the compiler has -done its job correctly. -
  • - -If bzip2 crashes randomly, and the crashes are not -repeatable, you may have a flaky memory subsystem. bzip2 -really hammers your memory hierarchy, and if it's a bit marginal, -you may get these problems. Ditto if your disk or I/O subsystem -is slowly failing. Yup, this really does happen. - -Try using a different machine of the same type, and see if -you can repeat the problem. -
  • This isn't really a bug, but ... If bzip2 tells - -you your file is corrupted on decompression, and you -obtained the file via FTP, there is a possibility that you -forgot to tell FTP to do a binary mode transfer. That absolutely -will cause the file to be non-decompressible. You'll have to transfer -it again. -
- -

-If you've incorporated libbzip2 into your own program -and are getting problems, please, please, please, check that the -parameters you are passing in calls to the library, are -correct, and in accordance with what the documentation says -is allowable. I have tried to make the library robust against -such problems, but I'm sure I haven't succeeded. - -

-

-Finally, if the above comments don't help, you'll have to send -me a bug report. Now, it's just amazing how many people will -send me a bug report saying something like - -

-   bzip2 crashed with segmentation fault on my machine
-
- -

-and absolutely nothing else. Needless to say, a such a report -is totally, utterly, completely and comprehensively 100% useless; -a waste of your time, my time, and net bandwidth. -With no details at all, there's no way I can possibly begin -to figure out what the problem is. - -

-

-The rules of the game are: facts, facts, facts. Don't omit -them because "oh, they won't be relevant". At the bare -minimum: - -

-   Machine type.  Operating system version.  
-   Exact version of bzip2 (do bzip2 -V).  
-   Exact version of the compiler used.  
-   Flags passed to the compiler.
-
- -

-However, the most important single thing that will help me is -the file that you were trying to compress or decompress at the -time the problem happened. Without that, my ability to do anything -more than speculate about the cause, is limited. - -

-

-Please remember that I connect to the Internet with a modem, so -you should contact me before mailing me huge files. - -

- - - -

Did you get the right package?

- -

-bzip2 is a resource hog. It soaks up large amounts of CPU cycles -and memory. Also, it gives very large latencies. In the worst case, you -can feed many megabytes of uncompressed data into the library before -getting any compressed output, so this probably rules out applications -requiring interactive behaviour. - -

-

-These aren't faults of my implementation, I hope, but more -an intrinsic property of the Burrows-Wheeler transform (unfortunately). -Maybe this isn't what you want. - -

-

-If you want a compressor and/or library which is faster, uses less -memory but gets pretty good compression, and has minimal latency, -consider Jean-loup -Gailly's and Mark Adler's work, zlib-1.1.2 and -gzip-1.2.4. Look for them at - -

-

-http://www.cdrom.com/pub/infozip/zlib and -http://www.gzip.org respectively. - -

-

-For something faster and lighter still, you might try Markus F X J -Oberhumer's LZO real-time compression/decompression library, at -
http://wildsau.idv.uni-linz.ac.at/mfx/lzo.html. - -

-

-If you want to use the bzip2 algorithms to compress small blocks -of data, 64k bytes or smaller, for example on an on-the-fly disk -compressor, you'd be well advised not to use this library. Instead, -I've made a special library tuned for that kind of use. It's part of -e2compr-0.40, an on-the-fly disk compressor for the Linux -ext2 filesystem. Look at -http://www.netspace.net.au/~reiter/e2compr. - -

- - - -

Testing

- -

-A record of the tests I've done. - -

-

-First, some data sets: - -

    -
  • B: a directory containing 6001 files, one for every length in the - - range 0 to 6000 bytes. The files contain random lowercase - letters. 18.7 megabytes. -
  • H: my home directory tree. Documents, source code, mail files, - - compressed data. H contains B, and also a directory of - files designed as boundary cases for the sorting; mostly very - repetitive, nasty files. 565 megabytes. -
  • A: directory tree holding various applications built from source: - - egcs, gcc-2.8.1, KDE, GTK, Octave, etc. - 2200 megabytes. -
- -

-The tests conducted are as follows. Each test means compressing -(a copy of) each file in the data set, decompressing it and -comparing it against the original. - -

-

-First, a bunch of tests with block sizes and internal buffer -sizes set very small, -to detect any problems with the -blocking and buffering mechanisms. -This required modifying the source code so as to try to -break it. - -

    -
  1. Data set H, with - - buffer size of 1 byte, and block size of 23 bytes. -
  2. Data set B, buffer sizes 1 byte, block size 1 byte. - -
  3. As (2) but small-mode decompression. - -
  4. As (2) with block size 2 bytes. - -
  5. As (2) with block size 3 bytes. - -
  6. As (2) with block size 4 bytes. - -
  7. As (2) with block size 5 bytes. - -
  8. As (2) with block size 6 bytes and small-mode decompression. - -
  9. H with buffer size of 1 byte, but normal block - - size (up to 900000 bytes). -
- -

-Then some tests with unmodified source code. - -

    -
  1. H, all settings normal. - -
  2. As (1), with small-mode decompress. - -
  3. H, compress with flag -1. - -
  4. H, compress with flag -s, decompress with flag -s. - -
  5. Forwards compatibility: H, bzip2-0.1pl2 compressing, - - bzip2-0.9.5 decompressing, all settings normal. -
  6. Backwards compatibility: H, bzip2-0.9.5 compressing, - - bzip2-0.1pl2 decompressing, all settings normal. -
  7. Bigger tests: A, all settings normal. - -
  8. As (7), using the fallback (Sadakane-like) sorting algorithm. - -
  9. As (8), compress with flag -1, decompress with flag - - -s. -
  10. H, using the fallback sorting algorithm. - -
  11. Forwards compatibility: A, bzip2-0.1pl2 compressing, - - bzip2-0.9.5 decompressing, all settings normal. -
  12. Backwards compatibility: A, bzip2-0.9.5 compressing, - - bzip2-0.1pl2 decompressing, all settings normal. -
  13. Misc test: about 400 megabytes of .tar files with - - bzip2 compiled with Checker (a memory access error - detector, like Purify). -
  14. Misc tests to make sure it builds and runs ok on non-Linux/x86 - - platforms. -
- -

-These tests were conducted on a 225 MHz IDT WinChip machine, running -Linux 2.0.36. They represent nearly a week of continuous computation. -All tests completed successfully. - -

- - - -

Further reading

-

-bzip2 is not research work, in the sense that it doesn't present -any new ideas. Rather, it's an engineering exercise based on existing -ideas. - -

-

-Four documents describe essentially all the ideas behind bzip2: - -

-Michael Burrows and D. J. Wheeler:
-  "A block-sorting lossless data compression algorithm"
-   10th May 1994. 
-   Digital SRC Research Report 124.
-   ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-124.ps.gz
-   If you have trouble finding it, try searching at the
-   New Zealand Digital Library, http://www.nzdl.org.
-
-Daniel S. Hirschberg and Debra A. LeLewer
-  "Efficient Decoding of Prefix Codes"
-   Communications of the ACM, April 1990, Vol 33, Number 4.
-   You might be able to get an electronic copy of this
-      from the ACM Digital Library.
-
-David J. Wheeler
-   Program bred3.c and accompanying document bred3.ps.
-   This contains the idea behind the multi-table Huffman
-   coding scheme.
-   ftp://ftp.cl.cam.ac.uk/users/djw3/
-
-Jon L. Bentley and Robert Sedgewick
-  "Fast Algorithms for Sorting and Searching Strings"
-   Available from Sedgewick's web page,
-   www.cs.princeton.edu/~rs
-
- -

-The following paper gives valuable additional insights into the -algorithm, but is not immediately the basis of any code -used in bzip2. - -

-Peter Fenwick:
-   Block Sorting Text Compression
-   Proceedings of the 19th Australasian Computer Science Conference,
-     Melbourne, Australia.  Jan 31 - Feb 2, 1996.
-   ftp://ftp.cs.auckland.ac.nz/pub/peter-f/ACSC96paper.ps
-
- -

-Kunihiko Sadakane's sorting algorithm, mentioned above, -is available from: - -

-http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz
-
- -

-The Manber-Myers suffix array construction -algorithm is described in a paper -available from: - -

-http://www.cs.arizona.edu/people/gene/PAPERS/suffix.ps
-
- -

-Finally, the following paper documents some recent investigations -I made into the performance of sorting algorithms: - -

-Julian Seward:
-   On the Performance of BWT Sorting Algorithms
-   Proceedings of the IEEE Data Compression Conference 2000
-     Snowbird, Utah.  28-30 March 2000.
-
- -


-

Go to the first, previous, next, last section, table of contents. - - diff --git a/winsup/bz2lib/manual_toc.html b/winsup/bz2lib/manual_toc.html deleted file mode 100644 index d4132c435..000000000 --- a/winsup/bz2lib/manual_toc.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - -bzip2 and libbzip2 - Table of Contents - - - -

bzip2 and libbzip2

-

a program and library for data compression

-

copyright (C) 1996-2000 Julian Seward

-

version 1.0 of 21 March 2000

-
Julian Seward
-

-


- -

-This program, bzip2, -and associated library libbzip2, are -Copyright (C) 1996-2000 Julian R Seward. All rights reserved. - -

-

-Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -

    -
  • - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -
  • - - The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. -
  • - - Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. -
  • - - The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. -
- -

-THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - -

-

-Julian Seward, Cambridge, UK. - -

-

-jseward@acm.org - -

-

-http://sourceware.cygnus.com/bzip2 - -

-

-http://www.cacheprof.org - -

-

-http://www.muraroa.demon.co.uk - -

-

-bzip2/libbzip2 version 1.0 of 21 March 2000. - -

-

-PATENTS: To the best of my knowledge, bzip2 does not use any patented -algorithms. However, I do not have the resources available to carry out -a full patent search. Therefore I cannot give any guarantee of the -above statement. - -

- - -


-This document was generated on 23 March 2000 using the -texi2html -translator version 1.51a.

- - diff --git a/winsup/bz2lib/randtable.c b/winsup/bz2lib/randtable.c deleted file mode 100644 index 983089d46..000000000 --- a/winsup/bz2lib/randtable.c +++ /dev/null @@ -1,124 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Table for randomising repetitive blocks ---*/ -/*--- randtable.c ---*/ -/*-------------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. 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. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR 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. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - -#include "bzlib_private.h" - - -/*---------------------------------------------*/ -Int32 BZ2_rNums[512] = { - 619, 720, 127, 481, 931, 816, 813, 233, 566, 247, - 985, 724, 205, 454, 863, 491, 741, 242, 949, 214, - 733, 859, 335, 708, 621, 574, 73, 654, 730, 472, - 419, 436, 278, 496, 867, 210, 399, 680, 480, 51, - 878, 465, 811, 169, 869, 675, 611, 697, 867, 561, - 862, 687, 507, 283, 482, 129, 807, 591, 733, 623, - 150, 238, 59, 379, 684, 877, 625, 169, 643, 105, - 170, 607, 520, 932, 727, 476, 693, 425, 174, 647, - 73, 122, 335, 530, 442, 853, 695, 249, 445, 515, - 909, 545, 703, 919, 874, 474, 882, 500, 594, 612, - 641, 801, 220, 162, 819, 984, 589, 513, 495, 799, - 161, 604, 958, 533, 221, 400, 386, 867, 600, 782, - 382, 596, 414, 171, 516, 375, 682, 485, 911, 276, - 98, 553, 163, 354, 666, 933, 424, 341, 533, 870, - 227, 730, 475, 186, 263, 647, 537, 686, 600, 224, - 469, 68, 770, 919, 190, 373, 294, 822, 808, 206, - 184, 943, 795, 384, 383, 461, 404, 758, 839, 887, - 715, 67, 618, 276, 204, 918, 873, 777, 604, 560, - 951, 160, 578, 722, 79, 804, 96, 409, 713, 940, - 652, 934, 970, 447, 318, 353, 859, 672, 112, 785, - 645, 863, 803, 350, 139, 93, 354, 99, 820, 908, - 609, 772, 154, 274, 580, 184, 79, 626, 630, 742, - 653, 282, 762, 623, 680, 81, 927, 626, 789, 125, - 411, 521, 938, 300, 821, 78, 343, 175, 128, 250, - 170, 774, 972, 275, 999, 639, 495, 78, 352, 126, - 857, 956, 358, 619, 580, 124, 737, 594, 701, 612, - 669, 112, 134, 694, 363, 992, 809, 743, 168, 974, - 944, 375, 748, 52, 600, 747, 642, 182, 862, 81, - 344, 805, 988, 739, 511, 655, 814, 334, 249, 515, - 897, 955, 664, 981, 649, 113, 974, 459, 893, 228, - 433, 837, 553, 268, 926, 240, 102, 654, 459, 51, - 686, 754, 806, 760, 493, 403, 415, 394, 687, 700, - 946, 670, 656, 610, 738, 392, 760, 799, 887, 653, - 978, 321, 576, 617, 626, 502, 894, 679, 243, 440, - 680, 879, 194, 572, 640, 724, 926, 56, 204, 700, - 707, 151, 457, 449, 797, 195, 791, 558, 945, 679, - 297, 59, 87, 824, 713, 663, 412, 693, 342, 606, - 134, 108, 571, 364, 631, 212, 174, 643, 304, 329, - 343, 97, 430, 751, 497, 314, 983, 374, 822, 928, - 140, 206, 73, 263, 980, 736, 876, 478, 430, 305, - 170, 514, 364, 692, 829, 82, 855, 953, 676, 246, - 369, 970, 294, 750, 807, 827, 150, 790, 288, 923, - 804, 378, 215, 828, 592, 281, 565, 555, 710, 82, - 896, 831, 547, 261, 524, 462, 293, 465, 502, 56, - 661, 821, 976, 991, 658, 869, 905, 758, 745, 193, - 768, 550, 608, 933, 378, 286, 215, 979, 792, 961, - 61, 688, 793, 644, 986, 403, 106, 366, 905, 644, - 372, 567, 466, 434, 645, 210, 389, 550, 919, 135, - 780, 773, 635, 389, 707, 100, 626, 958, 165, 504, - 920, 176, 193, 713, 857, 265, 203, 50, 668, 108, - 645, 990, 626, 197, 510, 357, 358, 850, 858, 364, - 936, 638 -}; - - -/*-------------------------------------------------------------*/ -/*--- end randtable.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/winsup/bz2lib/sample1.bz2 b/winsup/bz2lib/sample1.bz2 deleted file mode 100644 index 18dea6004..000000000 Binary files a/winsup/bz2lib/sample1.bz2 and /dev/null differ diff --git a/winsup/bz2lib/sample1.ref b/winsup/bz2lib/sample1.ref deleted file mode 100644 index a56e52b77..000000000 Binary files a/winsup/bz2lib/sample1.ref and /dev/null differ diff --git a/winsup/bz2lib/sample2.bz2 b/winsup/bz2lib/sample2.bz2 deleted file mode 100644 index d5a6160ba..000000000 Binary files a/winsup/bz2lib/sample2.bz2 and /dev/null differ diff --git a/winsup/bz2lib/sample2.ref b/winsup/bz2lib/sample2.ref deleted file mode 100644 index 34af95839..000000000 Binary files a/winsup/bz2lib/sample2.ref and /dev/null differ diff --git a/winsup/bz2lib/sample3.bz2 b/winsup/bz2lib/sample3.bz2 deleted file mode 100644 index d90cff920..000000000 Binary files a/winsup/bz2lib/sample3.bz2 and /dev/null differ diff --git a/winsup/bz2lib/sample3.ref b/winsup/bz2lib/sample3.ref deleted file mode 100644 index 775a2f68e..000000000 --- a/winsup/bz2lib/sample3.ref +++ /dev/null @@ -1,30007 +0,0 @@ -This file is exceedingly boring. If you find yourself -reading it, please (1) take it from me that you can safely -guess what the rest of the file says, and (2) seek professional -help. - -ps. there are no further sarcastic remarks in this file. - -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh -ugh diff --git a/winsup/bz2lib/spewG.c b/winsup/bz2lib/spewG.c deleted file mode 100644 index 7934e7658..000000000 --- a/winsup/bz2lib/spewG.c +++ /dev/null @@ -1,39 +0,0 @@ - -/* spew out a thoroughly gigantic file designed so that bzip2 - can compress it reasonably rapidly. This is to help test - support for large files (> 2GB) in a reasonable amount of time. - I suggest you use the undocumented --exponential option to - bzip2 when compressing the resulting file; this saves a bit of - time. Note: *don't* bother with --exponential when compressing - Real Files; it'll just waste a lot of CPU time :-) - (but is otherwise harmless). -*/ - -#define _FILE_OFFSET_BITS 64 - -#include -#include - -/* The number of megabytes of junk to spew out (roughly) */ -#define MEGABYTES 5000 - -#define N_BUF 1000000 -char buf[N_BUF]; - -int main ( int argc, char** argv ) -{ - int ii, kk, p; - srandom(1); - setbuffer ( stdout, buf, N_BUF ); - for (kk = 0; kk < MEGABYTES * 515; kk+=3) { - p = 25+random()%50; - for (ii = 0; ii < p; ii++) - printf ( "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ); - for (ii = 0; ii < p-1; ii++) - printf ( "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" ); - for (ii = 0; ii < p+1; ii++) - printf ( "ccccccccccccccccccccccccccccccccccccc" ); - } - fflush(stdout); - return 0; -} diff --git a/winsup/bz2lib/unzcrash.c b/winsup/bz2lib/unzcrash.c deleted file mode 100644 index f0f17fcca..000000000 --- a/winsup/bz2lib/unzcrash.c +++ /dev/null @@ -1,126 +0,0 @@ - -/* A test program written to test robustness to decompression of - corrupted data. Usage is - unzcrash filename - and the program will read the specified file, compress it (in memory), - and then repeatedly decompress it, each time with a different bit of - the compressed data inverted, so as to test all possible one-bit errors. - This should not cause any invalid memory accesses. If it does, - I want to know about it! - - p.s. As you can see from the above description, the process is - incredibly slow. A file of size eg 5KB will cause it to run for - many hours. -*/ - -#include -#include -#include "bzlib.h" - -#define M_BLOCK 1000000 - -typedef unsigned char uchar; - -#define M_BLOCK_OUT (M_BLOCK + 1000000) -uchar inbuf[M_BLOCK]; -uchar outbuf[M_BLOCK_OUT]; -uchar zbuf[M_BLOCK + 600 + (M_BLOCK / 100)]; - -int nIn, nOut, nZ; - -static char *bzerrorstrings[] = { - "OK" - ,"SEQUENCE_ERROR" - ,"PARAM_ERROR" - ,"MEM_ERROR" - ,"DATA_ERROR" - ,"DATA_ERROR_MAGIC" - ,"IO_ERROR" - ,"UNEXPECTED_EOF" - ,"OUTBUFF_FULL" - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ -}; - -void flip_bit ( int bit ) -{ - int byteno = bit / 8; - int bitno = bit % 8; - uchar mask = 1 << bitno; - //fprintf ( stderr, "(byte %d bit %d mask %d)", - // byteno, bitno, (int)mask ); - zbuf[byteno] ^= mask; -} - -int main ( int argc, char** argv ) -{ - FILE* f; - int r; - int bit; - int i; - - if (argc != 2) { - fprintf ( stderr, "usage: unzcrash filename\n" ); - return 1; - } - - f = fopen ( argv[1], "r" ); - if (!f) { - fprintf ( stderr, "unzcrash: can't open %s\n", argv[1] ); - return 1; - } - - nIn = fread ( inbuf, 1, M_BLOCK, f ); - fprintf ( stderr, "%d bytes read\n", nIn ); - - nZ = M_BLOCK; - r = BZ2_bzBuffToBuffCompress ( - zbuf, &nZ, inbuf, nIn, 9, 0, 30 ); - - assert (r == BZ_OK); - fprintf ( stderr, "%d after compression\n", nZ ); - - for (bit = 0; bit < nZ*8; bit++) { - fprintf ( stderr, "bit %d ", bit ); - flip_bit ( bit ); - nOut = M_BLOCK_OUT; - r = BZ2_bzBuffToBuffDecompress ( - outbuf, &nOut, zbuf, nZ, 0, 0 ); - fprintf ( stderr, " %d %s ", r, bzerrorstrings[-r] ); - - if (r != BZ_OK) { - fprintf ( stderr, "\n" ); - } else { - if (nOut != nIn) { - fprintf(stderr, "nIn/nOut mismatch %d %d\n", nIn, nOut ); - return 1; - } else { - for (i = 0; i < nOut; i++) - if (inbuf[i] != outbuf[i]) { - fprintf(stderr, "mismatch at %d\n", i ); - return 1; - } - if (i == nOut) fprintf(stderr, "really ok!\n" ); - } - } - - flip_bit ( bit ); - } - -#if 0 - assert (nOut == nIn); - for (i = 0; i < nOut; i++) { - if (inbuf[i] != outbuf[i]) { - fprintf ( stderr, "difference at %d !\n", i ); - return 1; - } - } -#endif - - fprintf ( stderr, "all ok\n" ); - return 0; -} diff --git a/winsup/bz2lib/words0 b/winsup/bz2lib/words0 deleted file mode 100644 index 164a8ed28..000000000 --- a/winsup/bz2lib/words0 +++ /dev/null @@ -1,5 +0,0 @@ - -If compilation produces errors, or a large number of warnings, -please read README.COMPILATION.PROBLEMS -- you might be able to -adjust the flags in this Makefile to improve matters. - diff --git a/winsup/bz2lib/words1 b/winsup/bz2lib/words1 deleted file mode 100644 index 2e83de9f0..000000000 --- a/winsup/bz2lib/words1 +++ /dev/null @@ -1,4 +0,0 @@ - -Doing 6 tests (3 compress, 3 uncompress) ... -If there's a problem, things might stop at this point. - diff --git a/winsup/bz2lib/words2 b/winsup/bz2lib/words2 deleted file mode 100644 index 203ee39c4..000000000 --- a/winsup/bz2lib/words2 +++ /dev/null @@ -1,5 +0,0 @@ - -Checking test results. If any of the four "cmp"s which follow -report any differences, something is wrong. If you can't easily -figure out what, please let me know (jseward@acm.org). - diff --git a/winsup/bz2lib/words3 b/winsup/bz2lib/words3 deleted file mode 100644 index 8486a84c8..000000000 --- a/winsup/bz2lib/words3 +++ /dev/null @@ -1,23 +0,0 @@ - -If you got this far and the "cmp"s didn't complain, it looks -like you're in business. - -To install in /usr/bin, /usr/lib, /usr/man and /usr/include, type - make install -To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type - make install PREFIX=/xxx/yyy -If you are (justifiably) paranoid and want to see what 'make install' -is going to do, you can first do - make -n install or - make -n install PREFIX=/xxx/yyy respectively. -The -n instructs make to show the commands it would execute, but -not actually execute them. - -Instructions for use are in the preformatted manual page, in the file -bzip2.txt. For more detailed documentation, read the full manual. -It is available in Postscript form (manual.ps) and HTML form -(manual_toc.html). - -You can also do "bzip2 --help" to see some helpful information. -"bzip2 -L" displays the software license. - diff --git a/winsup/configure b/winsup/configure deleted file mode 100755 index 8877f33f9..000000000 --- a/winsup/configure +++ /dev/null @@ -1,1328 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=Makefile.in - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - - - - - - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:578: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:599: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:617: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - - -if test $host != $build; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:649: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_CC"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:681: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="gcc" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - CC="gcc" -fi -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:717: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:766: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:790: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - -# Extract the first word of "${ac_tool_prefix}g++", so it can be a program name with args. -set dummy ${ac_tool_prefix}g++; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:820: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CXX="${ac_tool_prefix}g++" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CXX="$ac_cv_prog_CXX" -if test -n "$CXX"; then - echo "$ac_t""$CXX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_CXX"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "g++", so it can be a program name with args. -set dummy g++; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:852: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CXX="g++" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CXX" && ac_cv_prog_CXX="g++" -fi -fi -CXX="$ac_cv_prog_CXX" -if test -n "$CXX"; then - echo "$ac_t""$CXX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - CXX="g++" -fi -fi - -if test -z "$CXX"; then - # Extract the first word of "c++", so it can be a program name with args. -set dummy c++; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:888: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CXX="c++" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CXX="$ac_cv_prog_CXX" -if test -n "$CXX"; then - echo "$ac_t""$CXX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -CXXFLAGS='$(CFLAGS)' - - -SUBDIRS='cygwin' -test -d $srcdir/w32api && SUBDIRS="w32api $SUBDIRS" -test -d $srcdir/mingw && SUBDIRS="$SUBDIRS mingw" - -case "$with_cross_host" in - ""|*cygwin*) - test -d $srcdir/bz2lib && SUBDIRS="$SUBDIRS bz2lib" - test -d $srcdir/zlib && SUBDIRS="$SUBDIRS zlib" - test -d $srcdir/cinstall && SUBDIRS="$SUBDIRS cinstall" - # test -d $srcdir/subauth && SUBDIRS="$SUBDIRS subauth" - SUBDIRS="$SUBDIRS utils doc" - ;; -esac - -subdirs="$SUBDIRS" - - -echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:938: checking whether ${MAKE-make} sets \${MAKE}" >&5 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftestmake <<\EOF -all: - @echo 'ac_maketemp="${MAKE}"' -EOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftestmake -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$ac_t""yes" 1>&6 - SET_MAKE= -else - echo "$ac_t""no" 1>&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@CC@%$CC%g -s%@CXX@%$CXX%g -s%@subdirs@%$subdirs%g -s%@SET_MAKE@%$SET_MAKE%g -s%@SUBDIRS@%$SUBDIRS%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - -if test "$no_recursion" != yes; then - - # Remove --cache-file and --srcdir arguments so they do not pile up. - ac_sub_configure_args= - ac_prev= - for ac_arg in $ac_configure_args; do - if test -n "$ac_prev"; then - ac_prev= - continue - fi - case "$ac_arg" in - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - ;; - *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; - esac - done - - for ac_config_dir in $SUBDIRS; do - - # Do not complain, so a configure script can configure whichever - # parts of a large source tree are present. - if test ! -d $srcdir/$ac_config_dir; then - continue - fi - - echo configuring in $ac_config_dir - - case "$srcdir" in - .) ;; - *) - if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; - else - { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; } - fi - ;; - esac - - ac_popdir=`pwd` - cd $ac_config_dir - - # A "../" for each directory in /$ac_config_dir. - ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'` - - case "$srcdir" in - .) # No --srcdir option. We are building in place. - ac_sub_srcdir=$srcdir ;; - /*) # Absolute path. - ac_sub_srcdir=$srcdir/$ac_config_dir ;; - *) # Relative path. - ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;; - esac - - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_sub_srcdir/configure; then - ac_sub_configure=$ac_sub_srcdir/configure - elif test -f $ac_sub_srcdir/configure.in; then - ac_sub_configure=$ac_configure - else - echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2 - ac_sub_configure= - fi - - # The recursion is here. - if test -n "$ac_sub_configure"; then - - # Make the cache file name correct relative to the subdirectory. - case "$cache_file" in - /*) ac_sub_cache_file=$cache_file ;; - *) # Relative path. - ac_sub_cache_file="$ac_dots$cache_file" ;; - esac - - echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir" - # The eval makes quoting arguments work. - if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir - then : - else - { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; } - fi - fi - - cd $ac_popdir - done -fi - diff --git a/winsup/configure.in b/winsup/configure.in deleted file mode 100755 index c588658d2..000000000 --- a/winsup/configure.in +++ /dev/null @@ -1,88 +0,0 @@ -dnl Autoconf configure script for Cygwin. -dnl Copyright 1996, 1997, 1998, 1999, 2000 Red Hat, Inc. -dnl -dnl This file is part of Cygwin. -dnl -dnl This software is a copyrighted work licensed under the terms of the -dnl Cygwin license. Please consult the file "CYGWIN_LICENSE" for -dnl details. -dnl -dnl Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.12)dnl -AC_INIT(Makefile.in) - -dnl FIXME: We temporarily define our own version of AC_PROG_CC. This is -dnl copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -dnl are probably using a cross compiler, which will not be able to fully -dnl link an executable. This should really be fixed in autoconf -dnl itself. - -AC_DEFUN(LIB_AC_PROG_CC, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_TOOL(CC, gcc, gcc) -if test -z "$CC"; then - AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -AC_PROG_CC_GNU - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -dnl Check whether -g works, even if CFLAGS is set, in case the package -dnl plays around with CFLAGS (such as to build both debugging and -dnl normal versions of a library), tasteless as that idea is. - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - AC_PROG_CC_G - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi -]) - -AC_DEFUN(LIB_AC_PROG_CXX, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_TOOL(CXX, g++, g++) -if test -z "$CXX"; then - AC_CHECK_PROG(CXX, c++, c++, , , ) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -CXXFLAGS='$(CFLAGS)' -]) - -AC_CANONICAL_SYSTEM - -LIB_AC_PROG_CC -LIB_AC_PROG_CXX - -SUBDIRS='cygwin' -test -d $srcdir/w32api && SUBDIRS="w32api $SUBDIRS" -test -d $srcdir/mingw && SUBDIRS="$SUBDIRS mingw" - -case "$with_cross_host" in - ""|*cygwin*) - test -d $srcdir/bz2lib && SUBDIRS="$SUBDIRS bz2lib" - test -d $srcdir/zlib && SUBDIRS="$SUBDIRS zlib" - test -d $srcdir/cinstall && SUBDIRS="$SUBDIRS cinstall" - # test -d $srcdir/subauth && SUBDIRS="$SUBDIRS subauth" - SUBDIRS="$SUBDIRS utils doc" - ;; -esac - -AC_CONFIG_SUBDIRS($SUBDIRS) - -AC_PROG_MAKE_SET - -AC_SUBST(SUBDIRS) -AC_OUTPUT(Makefile) diff --git a/winsup/doc/ChangeLog b/winsup/doc/ChangeLog deleted file mode 100644 index f036ef81b..000000000 --- a/winsup/doc/ChangeLog +++ /dev/null @@ -1,115 +0,0 @@ -2002-01-12 Christopher Faylor - - * overview.sgml: Fix Red Hat cygwin contract link. - * what.texinfo: Ditto. - -2002-01-01 Christopher Faylor - - * Makefile.in: Duh. Actually use bzip2 to create the tarball. Don't - just change the name. - -2002-01-01 Christopher Faylor - - * Makefile.in: Make .bz2 tarball. - -2001-12-11 Christopher Faylor - - * what.texinfo: Clarify XP. - -2001-12-03 Christopher Faylor - - Cleanup copyrights and Cygnus'isms throughout. - * setup.sgml: Nuke ancient instructions. - -Tue Oct 16 18:02:00 2001 Corinna Vinschen - - * pathnames.sgml: Cleanup raw device text to be more coherent. - -Tue Oct 16 17:14:00 2001 Corinna Vinschen - - * pathnames.sgml: Add description for new fixed device paths. - -Fri Sep 7 12:47:47 2001 Michael Schaap - - * how-resources.texinfo: Add some additional words about where to find - documentation. - -Wed Jun 13 13:54:35 2001 Christopher Faylor - - * who.texinfo: Oops. Add a couple of important folk. - -Wed Jun 13 13:45:44 2001 Christopher Faylor - - * who.texinfo: Remove email addresses. Modernize. - -Tue May 29 21:30:07 2001 Christopher Faylor - - * Makefile.in: Tweak to attempt to accomodate older texi2html. - -Tue May 29 16:24:46 2001 Christopher Faylor - - * Makefile.in: Accomodate newer versions of docbook and openjade. - -Thu Apr 12 23:52:00 2001 Corinna Vinschen - - * cygwinenv.sgml: Add text for `check_case' option. - -Fri Mar 2 12:42:00 2001 Corinna Vinschen - - * cygwinenv.sgml: Add text for `winsymlinks' option. - * how-api.texinfo: Add text to explain new symlinks==shortcuts - and the CYGWIN setting `(no)winsymlinks'. - * how-using.texinfo: Add text that Cygwin now treats shortcuts - as symlinks. - -2001-02-07 Eric M. Monsler - - * setup2.sgml: Add docs about domain accounts. - -Thu Dec 21 15:03:29 2000 Edward M. Lee - - * cygwinenv.sgml: Fix typo in . Add missing . - -Tue Dec 19 21:06:00 2000 Corinna Vinschen - - * cygwinenv.sgml: Add text for `smbntsec' option. - -Sat Nov 18 23:50:12 2000 Christopher Faylor - - * cygwinenv.sgml: Remove CYGWIN=strace option. Update CYGWIN options. - * setup2.sgml: Remove CYGWIN=strace example. - * how-programming.texinfo: Remove stuff about CYGWIN=strace. - -Thu Oct 26 10:00:00 2000 Corinna Vinschen - - * ntsec.sgml: Slight changes. Fix some errors. - -Thu Oct 26 9:35:00 2000 Corinna Vinschen - - * ntsec.sgml: Changed the (now incorrect) hint that ntsec only - uses access allowed ACEs. - -Fri Sep 29 23:52:00 2000 Corinna Vinschen - - * pathnames.sgml: Add documentation about raw block special - devices and tape devices to the "POSIX devices" chapter. - -Fri Aug 18 15:51:06 2000 Christopher Faylor - - * fhandler-tut.txt: hinfo -> dtable. - -Thu Jul 20 13:01:00 2000 Corinna Vinschen - - * ntsec.sgml: Add description for the new setuid ability - of Cygwin since release 1.1.3. - * overview2.sgml: Add description for new chroot functionality. - * calls.texinfo: Add missing calls. Change comments for - setuid, setgid, seteuid, setegid, chroot. - -Tue May 3 0:25:00 2000 Corinna Vinschen - - * ntsec.sgml: Revisited description of `ntsec' according to - the changes in release 1.1. - * setup.sgml: Include ntsec. - * setup-net.sgml: Ditto. - diff --git a/winsup/doc/Makefile.in b/winsup/doc/Makefile.in deleted file mode 100644 index 4be5f06e5..000000000 --- a/winsup/doc/Makefile.in +++ /dev/null @@ -1,121 +0,0 @@ -# -*- Makefile -*- for winsup/doc -# Copyright (c) 1998-2000,2001 Red Hat, Inc. -# -# This file is part of Cygwin. -# -# This software is a copyrighted work licensed under the terms of the -# Cygwin license. Please consult the file "CYGWIN_LICENSE" for -# details. - -SHELL = @SHELL@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -SGMLDIRS = -d $(srcdir) -d $(utils_source) -d $(cygwin_source) - -# These *.info targets don't actually work, so remove them for now. -# Put them back when we figure out what to do with them. (davisb) -#DOC=faq.txt faq.info readme.txt readme.info -DOC=faq.txt readme.txt -HTMLDOC=faq.html readme.html - -CC:=@CC@ -CC_FOR_TARGET:=@CC@ -exeext:=@build_exeext@ - -MAKEINFO:=makeinfo -TEXI2DVI:=texi2dvi -TEXI2HTML:=texi2html - -include $(srcdir)/../Makefile.common - -TOCLEAN:=faq.txt ./*.html readme.txt doctool.o doctool \ - cygwin-ug.sgml cygwin-ug-net.sgml - -.SUFFIXES: - -# You can add cygwin-api/cygwin-api.html if you want to. -all : \ - cygwin-ug/cygwin-ug.html \ - cygwin-ug-net/cygwin-ug-net.html \ - cygwin-api-int/cygwin-api-int.html \ - cygwin-api/cygwin-api.html \ - $(DOC) \ - $(HTMLDOC) - -clean: - rm -f $(TOCLEAN) - -install: all - -cygwin-ug/cygwin-ug.html : cygwin-ug.sgml doctool - -db2html $< - -cygwin-ug.sgml : cygwin-ug.in.sgml ./doctool Makefile - -./doctool -m $(SGMLDIRS) -s $(srcdir) -o $@ $< - -cygwin-ug-net/cygwin-ug-net.html : cygwin-ug-net.sgml doctool - -db2html $< - -cygwin-ug-net.sgml : cygwin-ug-net.in.sgml ./doctool Makefile - -./doctool -m $(SGMLDIRS) -s $(srcdir) -o $@ $< - -cygwin-api/cygwin-api.html : cygwin-api.sgml - -db2html $< - -cygwin-api.sgml : cygwin-api.in.sgml ./doctool Makefile - -./doctool -m $(SGMLDIRS) -s $(srcdir) -o $@ $< - -cygwin-api-int/cygwin-api-int.html : cygwin-api-int.sgml - -db2html $< - -cygwin-api-int.sgml : cygwin-api.in.sgml ./doctool Makefile - -./doctool -i -m $(SGMLDIRS) -s $(srcdir) -b cygwin-api-int -o $@ $< - -./doctool : doctool.c - gcc -g $< -o $@ - -%.dvi: %.sgml - -db2dvi $< - -%.rtf: %.sgml - -db2rtf $< - -%.ps: %.sgml - -db2ps $< - -%.pdf: %.ps - -ps2pdf $< $@ - -%.info: %.texinfo - -$(MAKEINFO) -I $(srcdir) $< - -%.txt: %.texinfo - -$(MAKEINFO) -I $(srcdir) $< - -%.html: %.texinfo - -$(TEXI2HTML) -I $(srcdir) $< - -readme.txt: $(srcdir)/readme.texinfo $(srcdir)/*.texinfo - -$(MAKEINFO) -I$(srcdir) --no-split --no-headers $< -o - |\ - sed '/^Concept Index/,$$d' > $@ - -faq.html: $(srcdir)/faq.texinfo $(srcdir)/*.texinfo - -rm -f faq_toc.html; \ - for i in $(srcdir)/*.texinfo ; do \ - sed < $$i -e 's?@file{\([fth]*p://[^}]*\)}?@strong{\1}?' \ - -e 's?\([.+a-zA-Z0-9-]*@@[.a-zA-Z0-9-]*[a-zA-Z0-9]\)?\1?' >./`basename $$i` ; done; \ - $(TEXI2HTML) -split_chapter ./faq.texinfo; \ - rm -f *.texinfo; \ - [ -r faq_toc.html ] && mv faq_toc.html faq.html; exit 0 - -TBFILES = cygwin-ug-net.dvi cygwin-ug-net.rtf cygwin-ug-net.ps \ - cygwin-ug-net.pdf cygwin-ug-net.sgml \ - cygwin-api.dvi cygwin-api.rtf cygwin-api.ps \ - cygwin-api.pdf cygwin-api.sgml -TBDIRS = cygwin-ug-net cygwin-api -TBDEPS = cygwin-ug-net/cygwin-ug-net.html cygwin-api/cygwin-api.html - -tarball : cygwin-docs.tar.bz2 -cygwin-docs.tar.bz2 : $(TBFILES) $(TBDEPS) - find $(TBFILES) $(TBDIRS) \! -type d | sort | tar -T - -cf - | bzip2 > cygwin-docs.tar.bz2 diff --git a/winsup/doc/calls.texinfo b/winsup/doc/calls.texinfo deleted file mode 100644 index c4fe0aba1..000000000 --- a/winsup/doc/calls.texinfo +++ /dev/null @@ -1,707 +0,0 @@ -@chapter What Unix API calls are supported by Cygwin? - -This is the beginning of documentation listing the calls supported -by the Cygwin library. - -All POSIX.1/1996 and ANSI C calls are listed in this file. Note that -while almost all POSIX.1/1990 calls are included in Cygwin, most -POSIX.1/1996 calls are not (yet at least!). Additional Unix -compatibility calls and extended libc/libm calls are provided by -Cygwin but may or may not be listed yet. - -To see if a function is implemented but not listed here, check for the -presence of the call in the file winsup/cygwin.din in the sources. In -addition, you may want to read the source code corresponding to the call -to verify that it is not a stub. Finally, libc/libm functions -(including extended calls not listed here) may be documented in the -newlib texinfo documentation. - -Calls are implemented on both Windows 95 and NT unless otherwise -noted. Included are references to relevant standards, if any. -Calls starting with "cygwin_" are Cygwin-specific calls. - -@section ANSI C Library Functions - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -@itemize @code - -@item libc stdio (newlib/libc/stdio) -@itemize @code -@item clearerr: C 4.9.10.1 -@item fclose: C 4.9.5.1, P 8.2.3.2 -@item feof: C 4.9.10.2 -@item ferror: C 4.9.10.3 -@item fflush: C 4.9.5.2, P 8.2.3.4 -@item fgetc: C 4.9.7.1, P 8.2.3.5 -@item fgetpos: C 4.9.9.1 -@item fgets: C 4.9.7.2, P 8.2.3.5 -@item fopen: C 4.9.5.3, P 8.2.3.1 -@item fprintf: C 4.9.7.3, P 8.2.3.6 -@item fputc: C 4.9.7.3, P 8.2.3.6 -@item fputs: C 4.9.7.4, P 8.2.3.6 -@item fread: C 4.9.8.1, P 8.2.3.5 -@item freopen: C 4.9.5.4, P 8.2.3.3 -@item fscanf: C 4.9.6.2, P 8.2.3.7 -@item fseek: C 4.9.9.2, P 8.2.3.7 -@item fsetpos: C 4.9.9.3 -@item ftell: C 4.9.9.4, P 8.2.3.10 -@item fwrite: C 4.9.8.2, P 8.2.3.6 -@item getc: C 4.9.7.5, P 8.2.3.5 -@item getchar: C 4.9.7.6, P 8.2.3.5 -@item gets: C 4.9.7.7, P 8.2.3.5 -@item perror: C 4.9.10.4, P 8.2.3.8 -@item printf: C 4.9.6.3, P 8.2.3.6 -@item putc: C 4.9.7.8, P 8.2.3.6 -@item putchar: C 4.9.7.9, P 8.2.3.6 -@item puts: C 4.9.7.10, P 8.2.3.6 -@item remove: C 4.9.4.1, P 8.2.4 -@item rename: C 4.9.4.2, P 5.5.3.1 -@item rewind: C 4.9.9.5, P 8.2.3.7 -@item scanf: C 4.9.6.4, P 8.2.3.5 -@item setbuf: C 4.9.5.5 -@item setvbuf: C 4.9.5.6 -@item sprintf: C 4.9.6.5 -@item sscanf: C 4.9.6.6 -@item tmpfile: C 4.9.4.3, P 8.2.3.9 -@item tmpnam: C 4.9.4.4, P 8.2.5 -@item vfprintf: C 4.9.6.7 -@item ungetc: C 4.9.7.11 -@item vprintf: C 4.9.6.8 -@item vsprintf: C 4.9.6.9 -@end itemize - -@item libc string (newlib/libc/string) -@itemize @code -@item memchr: C 4.11.5.1 -@item memcmp: C 4.11.4.1 -@item memcpy: C 4.11.2.1 -@item memmove: C 4.11.2.2 -@item memset: C 4.11.6.1 -@item strcat: C 4.11.3.1 -@item strchr: C 4.11.5.2 -@item strcmp: C 4.11.4.2 -@item strcoll: C 4.11.4.3 -@item strcpy: C 4.11.2.3 -@item strcspn: C 4.11.5.3 -@item strerror: C 4.11.6.2 -@item strlen: C 4.11.6.3 -@item strncat: C 4.11.3.2 -@item strncmp: C 4.11.3.2 -@item strncpy: C 4.11.2.4 -@item strpbrk: C 4.11.5.4 -@item strrchr: C 4.11.5.5 -@item strspn: C 4.11.5.6 -@item strstr: C 4.11.5.7 -@item strtok: C 4.11.5.8 -@item strxfrm: C 4.11.4.5 -@end itemize - -@item libc stdlib (newlib/libc/stdlib, environ.cc, newlib/libc/include/machine/setjmp.h newlib/libc/include/assert.h) -@itemize @code -@item abort: C 4.10.4.1, P 8.2.3.12 -@item abs: C 4.10.6.1 -@item assert: C 4.2.1.1 -@item atexit: C 4.10.4.2 -@item atof: C 4.10.1.1 -@item atoi: C 4.10.1.2 -@item atol: C 4.10.1.3 -@item bsearch: C 4.10.5.1 -@item calloc: C 4.10.3.1 -@item div: C 4.10.6.2 -@item exit: C 4.10.4.3, P 8.2.3.12 -@item free: C 4.10.3.2 -@item getenv: C 4.10.4.4, P 4.6.1.1 -@item labs: C 4.10.6.3 -@item ldiv: C 4.10.6.2 -@item longjmp: C 4.6.2.1 -@item malloc: C 4.10.3.3 -@item mblen: C 4.10.7.1 -@item mbstowcs: C 4.10.8.1 -@item mbtowc: C 4.10.7.2 -@item qsort: 4.10.5.2 -@item rand: C 4.10.2.1 -@item realloc: C 4.10.3.4 -@item setjmp: C 4.6.1.1 -@item srand: C 4.10.2.2 -@item strtod: C 4.10.1.4 -@item strtol: C 4.10.1.5 -@item strtoul: C 4.10.1.6 -@item system: C 4.10.4.5 -@item wcstombs: C 4.10.8.2 -@item wctomb: C 4.10.7.3 -@end itemize - -@item libc time (times.cc, newlib/libc/time) -@itemize @code -@item asctime: C 4.12.3.1 -@item gmtime: C 4.12.3.3 -@item localtime: C 4.12.3.4, P 8.1.1 -@item time: C 4.12.2.4, P 4.5.1.1 -@item clock: C 4.12.2.1 -@item ctime: C 4.12.3.2 -@item difftime: C 4.12.2.2 -@item mktime: C 4.12.2.3, P 8.1.1 -@item strftime: C 4.11.6.2 -@end itemize - -@item libc signals (signal.cc, newlib/libc/signal) -@itemize @code -@item raise: C 4.7.2.1 -@item signal: C 4.7.1.1 -@end itemize - -@item libc ctype (newlib/libc/ctype) -@itemize @code -@item isalnum: C 4.3.1.1 -@item isalpha: C 4.3.1.2 -@item iscntrl: C 4.3.1.3 -@item isdigit: C 4.3.1.4 -@item isgraph: C 4.3.1.5 -@item islower: C 4.3.1.6 -@item isprint: C 4.3.1.7 -@item ispunct: C 4.3.1.8 -@item isspace: C 4.3.1.9 -@item isupper: C 4.3.1.10 -@item isxdigit: C 4.3.1.11 -@item tolower: C 4.3.2.1 -@item toupper: C 4.3.2.2 -@end itemize - -@item libm math (newlib/libm/math) -@itemize @code -@item acos: C 4.5.2.1 -@item asin: C 4.5.2.2 -@item atan: C 4.5.2.3 -@item atan2: C 4.5.2.4 -@item ceil: C 4.5.6.1 -@item cos: C 4.5.2.5 -@item cosh: C 4.5.3.2 -@item exp: C 4.5.4.1 -@item fabs: C 4.5.6.2 -@item floor: C 4.5.6.3 -@item fmod: C 4.5.6.4 -@item frexp: C 4.5.4.2 -@item ldexp: C 4.5.4.3 -@item log: C 4.5.4.4 -@item log10: C 4.5.4.5 -@item modf: C 4.5.4.6 -@item pow: C 4.5.5.1 -@item sin: C 4.5.2.6 -@item sinh: C 4.5.3.2 -@item sqrt: C 4.5.5.2 -@item tan: C 4.5.2.7 -@item tanh: C 4.5.3.3 -@end itemize - -@item libc misc (newlib/libc/locale, gcc/ginclude/stdarg.h) -@itemize @code -@item localeconv: C 4.4.2.1 -@item setlocale: C 4.4.1.1, P 8.1.2.1 -@item va_arg: C 4.8.1.2 -@item va_end: C 4.8.1.3 -@item va_start: C 4.8.1.1 -@end itemize - -@section POSIX.1/96 Functions - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -@item Process Primitives (Section 3) -@itemize @code -@item fork: P 3.1.1.1 -@item execl: P 3.1.2.1 -@item execle: P 3.1.2.1 -@item execlp: P 3.1.2.1 -@item execv: P 3.1.2.1 -@item execve: P 3.1.2.1 -@item execvp: P 3.1.2.1 -@item pthread_atfork: P96 3.1.3.1 -- unimplemented -@item wait: P 3.2.1.1 -@item waitpid: P 3.2.1.1 -@item _exit: P 3.2.2.1 -@item kill: P 3.3.2.1 -@item sigemptyset: P 3.3.3.1 -@item sigfillset: P 3.3.3.1 -@item sigaddset: P 3.3.3.1 -@item sigdelset: P 3.3.3.1 -@item sigismember: P 3.3.3.1 -@item sigaction: P 3.3.4.1 -@item pthread_sigmask: P96 3.3.5.1 -@item sigprocmask: P 3.3.5.1 -@item sigpending: P 3.3.6.1 -@item sigsuspend: P 3.3.7.1 -@item sigwait: P96 3.3.8.1 -- unimplemented -@item sigwaitinfo: P96 3.3.8.1 -- unimplemented -@item sigtimedwait: P96 3.3.8.1 -- unimplemented -@item sigqueue: P96 3.3.9.1 -- unimplemented -@item pthread_kill: P96 3.3.10.1 -@item alarm: P 3.4.1.1 -@item pause: P 3.4.2.1 -@item sleep: P 3.4.3.1 -@end itemize - -@item Process Environment (Section 4) -@itemize @code -@item getpid: P 4.1.1.1 -@item getppid: P 4.1.1.1 -@item getuid: P 4.2.1.1 -@item geteuid: P 4.2.1.1 -@item getgid: P 4.2.1.1 -@item getegid: P 4.2.1.1 -@item setuid: P 4.2.2.1 (stub on 9X, sets ENOSYS, returns zero) -@item setgid: P 4.2.2.1 (stub on 9X, sets ENOSYS, returns zero) -@item getgroups: P 4.2.3.1 -@item getlogin: P 4.2.4.1 -@item getlogin_r: P 4.2.4.1 -- unimplemented -@item getpgrp: P 4.3.1.1 -@item setsid: P 4.3.2.1 -@item setpgid: P 4.3.3.1 -@item uname: P 4.4.1.1 -@item time: C 4.12.2.4, P 4.5.1.1 -@item times: P 4.5.2.1 -@item getenv: C 4.10.4.4, P 4.6.1.1 -@item ctermid: P 4.7.1.1 -@item ttyname: P 4.7.2.1 -@item ttyname_r: P 4.7.2.1 -- unimplemented -@item isatty: P 4.7.2.1 -@item sysconf: P 4.8.1.1 -@end itemize - -@item Files and Directories (Section 5) -@itemize @code -@item opendir: P 5.1.2.1 -@item readdir: P 5.1.2.1 -@item readdir_r: P96 5.1.2.1 -- unimplemented -@item rewinddir: P 5.1.2.1 -@item closedir: P 5.1.2.1 -@item chdir: P 5.2.1.1 -@item getcwd: P 5.2.2.1 -@item open: P 5.3.1.1 -@item creat: P 5.3.2.1 -@item umask: P 5.3.3.1 -@item link: P 5.3.4.1 (copy file in Win 95, and when link fails in NT) -@item mkdir: P 5.4.1.1 -@item mkfifo: P 5.4.2.1 -- unimplemented!!! -@item unlink: P 5.5.1.1 -@item rmdir: P 5.5.2.1 -@item rename: C 4.9.4.2, P 5.5.3.1 -@item stat: P 5.6.2.1 -@item fstat: P 5.6.2.1 -@item access: P 5.6.3.1 -@item chmod: P 5.6.4.1 -@item fchmod: P96 5.6.4.1 -@item chown: P 5.6.5.1 (stub in Win 95; always returns zero) -@item utime: P 5.6.6.1 -@item ftruncate: P96 5.6.7.1 -@item pathconf: P 5.7.1.1 -@item fpathconf: P 5.7.1.1 -@end itemize - -@item Input and Output Primitives (Section 6) -@itemize @code -@item pipe: P 6.1.1.1 -@item dup: P 6.2.1.1 -@item dup2: P 6.2.1.1 -@item close: P 6.3.1.1 -@item read: P 6.4.1.1 -@item write: P 6.4.2.1 -@item fcntl: P 6.5.2.1 (note: fcntl(fd, F_GETLK,...) is not implemented (returns -1 with errno set to ENOSYS)). -@item lseek: P 6.5.3.1 (note: only works correctly on binary files) -@item fsync: P96 6.6.1.1 -@item fdatasync: P96 6.6.2.1 -- unimplemented -@item aio_read: P96 6.7.2.1 -- unimplemented -@item aio_write: P96 6.7.3.1 -- unimplemented -@item lio_listio: P96 6.7.4.1 -- unimplemented -@item aio_error: P96 6.7.5.1 -- unimplemented -@item aio_return: P96 6.7.6.1 -- unimplemented -@item aio_cancel: P96 6.7.7.1 -- unimplemented -@item aio_suspend: P96 6.7.8.1 -- unimplemented -@item aio_fsync: P96 6.7.9.1 -- unimplemented -@end itemize - -@item Device- and Class-Specific Functions (Section 7) -@itemize @code -@item cfgetispeed: P96 7.1.3.1 -@item cfgetospeed: P96 7.1.3.1 -@item cfsetispeed: P96 7.1.3.1 -@item cfsetospeed: P96 7.1.3.1 -@item tcdrain: P 7.2.2.1 -@item tcflow: P 7.2.2.1 -@item tcflush: P 7.2.2.1 -@item tcgetattr: P96 7.2.1.1 -@item tcgetpgrp: P 7.2.3.1 -@item tcsendbreak: P 7.2.2.1 -@item tcsetattr: P96 7.2.1.1 -@item tcsetpgrp: P 7.2.4.1 -@end itemize - -@item Language-Specific Services for the C Programming Language -(Section 8) -@itemize @code -@item abort: C 4.10.4.1, P 8.2.3.12 -@item asctime_r: P96 8.3.4.1 -- unimplemented -@item ctime_r: P96 8.3.5.1 -- unimplemented -@item exit: C 4.10.4.3, P 8.2.3.12 -@item fclose: C 4.9.5.1, P 8.2.3.2 -@item fdopen: P 8.2.2.1 -@item fflush: C 4.9.5.2, P 8.2.3.4 -@item fgetc: C 4.9.7.1, P 8.2.3.5 -@item fgets: C 4.9.7.2, P 8.2.3.5 -@item fileno: P 8.2.1.1 -@item flockfile: P96 8.2.6.1 -- unimplemented -@item fopen: C 4.9.5.3, P 8.2.3.1 -@item fprintf: C 4.9.7.3, P 8.2.3.6 -@item fputc: C 4.9.7.3, P 8.2.3.6 -@item fputs: C 4.9.7.4, P 8.2.3.6 -@item fread: C 4.9.8.1, P 8.2.3.5 -@item freopen: C 4.9.5.4, P 8.2.3.3 -@item fscanf: C 4.9.6.2, P 8.2.3.7 -@item fseek: C 4.9.9.2, P 8.2.3.7 -@item ftell: C 4.9.9.4, P 8.2.3.10 -@item ftrylockfile: P96 8.2.6.1 -- unimplemented -@item funlockfile: P96 8.2.6.1 -- unimplemented -@item fwrite: C 4.9.8.2, P 8.2.3.6 -@item getc: C 4.9.7.5, P 8.2.3.5 -@item getc_unlocked: P96 8.2.7.1 -- unimplemented -@item getchar: C 4.9.7.6, P 8.2.3.5 -@item getchar_unlocked: P96 8.2.7.1 -- unimplemented -@item gets: C 4.9.7.7, P 8.2.3.5 -@item gmtime_r: P96 8.3.6.1 -- unimplemented -@item localtime_r: P96 8.3.7.1 -- unimplemented -@item perror: C 4.9.10.4, P 8.2.3.8 -@item printf: C 4.9.6.3, P 8.2.3.6 -@item putc: C 4.9.7.8, P 8.2.3.6 -@item putc_unlocked: P96 8.2.7.1 -- unimplemented -@item putchar: C 4.9.7.9, P 8.2.3.6 -@item putchar_unlocked: P96 8.2.7.1 -- unimplemented -@item puts: C 4.9.7.10, P 8.2.3.6 -@item rand_r: P96 8.3.8.1 -- unimplemented -@item remove: C 4.9.4.1, P 8.2.4 -@item rewind: C 4.9.9.5, P 8.2.3.7 -@item scanf: C 4.9.6.4, P 8.2.3.5 -@item setlocale: C 4.4.1.1, P 8.1.2.1 -@item siglongjmp: P 8.3.1.1 -@item sigsetjmp: P 8.3.1.1 -@item strtok_r: P96 8.3.3.1 -- unimplemented -@item tmpfile: C 4.9.4.3, P 8.2.3.9 -@item tmpnam: C 4.9.4.4, P 8.2.5 -@item tzset: P 8.3.2.1 -@end itemize - -@item System Databases (Section 9) -@itemize @code -@item getgrgid: P 9.2.1.1 -@item getgrgid_r: P96 9.2.1.1 -- unimplemented -@item getgrnam: P 9.2.1.1 -@item getgrnam_r: P96 9.2.1.1 -- unimplemented -@item getpwnam: P 9.2.2.1 -@item getpwnam_r: P96 9.2.2.1 -- unimplemented -@item getpwuid: P 9.2.2.1 -@item getpwuid_r: P96 9.2.2.1 -- unimplemented -@end itemize - -@item Synchronization (Section 11) -@itemize @code -@item pthread_cond_broadcast: P96 11.4.3.1 -- unimplemented -@item pthread_cond_destroy: P96 11.4.2.1 -- unimplemented -@item pthread_cond_init: P96 11.4.2.1 -- unimplemented -@item pthread_cond_signal: P96 11.4.3.1 -- unimplemented -@item pthread_cond_timedwait: P96 11.4.4.1 -- unimplemented -@item pthread_cond_wait: P96 11.4.4.1 -- unimplemented -@item pthread_condattr_destroy: P96 11.4.1.1 -- unimplemented -@item pthread_condattr_getpshared: P96 11.4.1.1 -- unimplemented -@item pthread_condattr_init: P96 11.4.1.1 -- unimplemented -@item pthread_condattr_setpshared: P96 11.4.1.1 -- unimplemented -@item pthread_mutex_destroy: P96 11.3.2.1 -@item pthread_mutex_init: P96 11.3.2.1 -@item pthread_mutex_lock: P96 11.3.3.1 -@item pthread_mutex_trylock: P96 11.3.3.1 -@item pthread_mutex_unlock: P96 11.3.3.1 -@item sem_close: P96 11.2.4.1 -- unimplemented -@item sem_destroy: P96 11.2.2.1 -@item sem_getvalue: P96 11.2.8.1 -- unimplemented -@item sem_init: P96 11.2.1.1 -@item sem_open: P96 11.2.3.1 -- unimplemented -@item sem_post: P96 11.2.7.1 -@item sem_trywait: P96 11.2.6.1 -@item sem_unlink: P96 11.2.5.1 -- unimplemented -@item sem_wait: P96 11.2.6.1 -@end itemize - -@item Memory Management (Section 12) -@itemize @code -@item mlock: P96 12.1.2.1 -- unimplemented -@item mlockall: P96 12.1.1.1 -- unimplemented -@item mmap: P96 12.2.1.1 -@item mprotect: P96 12.2.3.1 -@item msync: P96 12.2.4.1 -@item munlock: P96 12.1.2.1 -- unimplemented -@item munlockall: P96 12.1.1.1 -- unimplemented -@item munmap: P96 12.2.2.1 -@item shm_open: P96 12.3.1.1 -- unimplemented -@item shm_unlink: P96 12.3.2.1 -- unimplemented -@end itemize - -@item Execution Scheduling (Section 13) -@itemize @code -@item pthread_attr_getinheritsched: P96 13.5.1.1 -- unimplemented -@item pthread_attr_getschedparam: P96 13.5.1.1 -- unimplemented -@item pthread_attr_getschedpolicy: P96 13.5.1.1 -- unimplemented -@item pthread_attr_getscope: P96 13.5.1.1 -- unimplemented -@item pthread_attr_setinheritsched: P96 13.5.1.1 -- unimplemented -@item pthread_attr_setschedparam: P96 13.5.1.1 -- unimplemented -@item pthread_attr_setschedpolicy: P96 13.5.1.1 -- unimplemented -@item pthread_attr_setscope: P96 13.5.1.1 -- unimplemented -@item pthread_getschedparam: P96 13.5.2.1 -- unimplemented -@item pthread_mutex_getprioceiling: P96 13.6.2.1 -- unimplemented -@item pthread_mutex_setprioceiling: P96 13.6.2.1 -- unimplemented -@item pthread_mutexattr_getprioceiling: P96 13.6.1.1 -- unimplemented -@item pthread_mutexattr_getprotocol: P96 13.6.1.1 -- unimplemented -@item pthread_mutexattr_setprioceiling: P96 13.6.1.1 -- unimplemented -@item pthread_mutexattr_setprotocol: P96 13.6.1.1 -- unimplemented -@item pthread_setschedparam: P96 13.5.2.1 -- unimplemented -@item sched_get_priority_max: P96 13.3.6.1 -- unimplemented -@item sched_get_priority_min: P96 13.3.6.1 -- unimplemented -@item sched_getparam: P96 13.3.2.1 -- unimplemented -@item sched_getscheduler: P96 13.3.4.1 -- unimplemented -@item sched_rr_get_interval: P96 13.3.6.1 -- unimplemented -@item sched_setparam: P96 13.3.1.1 -- unimplemented -@item sched_setscheduler: P96 13.3.3.1 -- unimplemented -@item sched_yield: P96 13.3.5.1 -- unimplemented -@end itemize - -@item Clocks and Timers (Section 14) -@itemize @code -@item clock_getres: P96 14.2.1.1 -- unimplemented -@item clock_gettime: P96 14.2.1.1 -- unimplemented -@item clock_settime: P96 14.2.1.1 -- unimplemented -@item nanosleep: P96 14.2.5.1 -- unimplemented -@item timer_create: P96 14.2.2.1 -- unimplemented -@item timer_delete: P96 14.2.3.1 -- unimplemented -@item timer_getoverrun: P96 14.2.4.1 -- unimplemented -@item timer_gettime: P96 14.2.4.1 -- unimplemented -@item timer_settime: P96 14.2.4.1 -- unimplemented -@end itemize - -@item Message Passing (Section 15) -@itemize @code -@item mq_close: P96 15.2.2.1 -- unimplemented -@item mq_getattr: P96 15.2.8.1 -- unimplemented -@item mq_notify: P96 15.2.6.1 -- unimplemented -@item mq_open: P96 15.2.1.1 -- unimplemented -@item mq_receive: P96 15.2.5.1 -- unimplemented -@item mq_send: P96 15.2.4.1 -- unimplemented -@item mq_setattr: P96 15.2.7.1 -- unimplemented -@item mq_unlink: P96 15.2.3.1 -- unimplemented -@end itemize - -@item Thread Management (Section 16) -@itemize @code -@item pthread_attr_destroy: P96 16.2.1.1 -@item pthread_attr_getdetachstate: P96 16.2.1.1 -- unimplemented -@item pthread_attr_getstackaddr: P96 16.2.1.1 -- unimplemented -@item pthread_attr_getstacksize: P96 16.2.1.1 -@item pthread_attr_init: P96 16.2.1.1 -@item pthread_attr_setdetachstate: P96 16.2.1.1 -- unimplemented -@item pthread_attr_setstackaddr: P96 16.2.1.1 -- unimplemented -@item pthread_attr_setstacksize: P96 16.2.1.1 -@item pthread_create: P96 16.2.2.1 -@item pthread_detach: P96 16.2.4.1 -- unimplemented -@item pthread_equal: P96 16.2.7.1 -@item pthread_exit: P96 16.2.5.1 -@item pthread_join: P96 16.2.3.1 -- unimplemented -@item pthread_once: P96 16.2.8.1 -- unimplemented -@item pthread_self: P96 16.2.6.1 -@end itemize - -@item Thread-Specific Data (Section 17) -@itemize @code -@item pthread_getspecific: P96 17.1.2.1 -@item pthread_key_create: P96 17.1.1.1 -@item pthread_key_delete: P96 17.1.3.1 -@item pthread_setspecific: P96 17.1.2.1 -@end itemize - -@item Thread Cancellation (Section 18) -@itemize @code -@item pthread_cancel: P96 18.2.1.1 -- unimplemented -@item pthread_cleanup_pop: P96 18.2.3.1 -- unimplemented -@item pthread_cleanup_push: P96 18.2.3.1 -- unimplemented -@item pthread_setcancelstate: P96 18.2.2.1 -- unimplemented -@item pthread_setcanceltype: P96 18.2.2.1 -- unimplemented -@item pthread_testcancel: P96 18.2.2.1 -- unimplemented -@end itemize - -@section Misc Functions - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -@item Networking (net.cc) (Standardized by POSIX 1.g, which is probably still in draft?) -@itemize @code -@item accept -@item bind -@item connect -@item getdomainname -@item gethostbyaddr -@item gethostbyname -@item getpeername -@item getprotobyname -@item getprotobynumber -@item getservbyname -@item getservbyport -@item getsockname -@item getsockopt -@item herror -@item htonl -@item htons -@item inet_addr -@item inet_makeaddr -@item inet_netof -@item inet_ntoa -@item listen -@item ntohl -@item ntohs -@item rcmd -@item recv -@item recvfrom -@item rexec -@item rresvport -@item send -@item sendto -@item setsockopt -@item shutdown -@item socket -@item socketpair -@end itemize - -Of these networking calls, rexec, rcmd and rresvport are implemented -in MS IP stack but may not be implemented in other vendors' stacks. - -@item Other -@itemize @code -@item acl -@item aclcheck -@item aclfrommode -@item aclfrompbits -@item aclfromtext -@item aclsort -@item acltomode -@item acltopbits -@item acltotext -@item chroot (with restrictions) -@item closelog -@item cwait -@item cygwin_conv_to_full_posix_path -@item cygwin_conv_to_full_win32_path -@item cygwin_conv_to_posix_path -@item cygwin_conv_to_win32_path -@item cygwin_logon_user -@item cygwin_posix_path_list_p -@item cygwin_posix_to_win32_path_list -@item cygwin_posix_to_win32_path_list_buf_size -@item cygwin_set_impersonation_token -@item cygwin_split_path -@item cygwin_win32_to_posix_path_list -@item cygwin_win32_to_posix_path_list_buf_size -@item cygwin_winpid_to_pid -@item dlclose -@item dlerror -@item dlfork -@item dlopen -@item dlsym -@item endgrent -@item endhostent -@item facl -@item ffs -@item fstatfs -@item ftime -@item get_osfhandle -@item getdtablesize -@item getgrent -@item gethostname -@item getitimer -@item getmntent -@item getpagesize -@item getpgid -@item getpwent -@item gettimeofday: BSD -@item grantpt -@item initgroups (stub) -@item ioctl -@item killpg -@item login -@item logout -@item lstat -@item mknod (stub, sets ENOSYS, returns -1) -@item memccpy -@item nice -@item openlog -@item pclose -@item popen -@item ptsname -@item putenv -@item random -@item readv -@item realpath -@item regfree -@item rexec -@item select -@item setegid: SVR4 (stub on 9X, sets ENOSYS, returns zero)@item endpwent -@item setenv -@item seterrno -@item seteuid (stub on 9X, sets ENOSYS, returns zero) -@item sethostent -@item setitimer -@item setmntent -@item setmode -@item setpassent -@item setpgrp -@item setpwent -@item settimeofday: BSD (stub, set ENOSYS, return -1) -@item sexecl -@item sexecle -@item sexeclp -@item sexeclpe -@item sexeclpe -@item sexecp -@item sexecv -@item sexecve -@item sexecvpe -@item sigpause -@item spawnl (spawn calls are from Windows C library) -@item spawnle -@item spawnlp -@item spawnlpe -@item spawnv -@item spawnve -@item spawnvp -@item spawnvpe -@item srandom -@item statfs -@item strsignal -@item strtosigno -@item swab -@item syslog -@item timezone -@item truncate (SVR4/4.3+BSD) -@item ttyslot -@item unlockpt -@item unsetenv -@item usleep -@item utimes -@item vfork: stub that calls fork -@item vhangup (stub, sets ENOSYS, returns -1) -@item wait3 -@item wait4 -@item wcscmp -@item wcslen -@item wprintf -@item writev -@end itemize - -@end itemize - diff --git a/winsup/doc/changes.texinfo b/winsup/doc/changes.texinfo deleted file mode 100644 index 6e464784d..000000000 --- a/winsup/doc/changes.texinfo +++ /dev/null @@ -1,202 +0,0 @@ -@section Release Beta 20.1 (Dec 4 1998) - -This is a bug fix update to the Beta 20 release. - -The main change is an improved version of the Cygwin library although -there are also a couple of other minor changes to the tools. - -@subsection Changes in specific tools: - -The "-mno-cygwin" flag to gcc now include the correct headers. In 20.0, -it included the Cygwin headers which was incorrect. - -The "-pipe" flag to gcc works correctly now. - -The cygcheck program now reassures users that not finding cpp is the -correct behavior. - -The "-b" flag to md5sum can now be used to generate correct checksums -of binary files. - -The libtermcap library has been added to the compiler tools sources. -It is the new source of the termcap library and /etc/termcap file. - -The less pager (using libtermcap) has been added to the binary -distribution. - -@subsection Changes in the Cygwin API (cygwin.dll): - -This version of Cygwin is backwards-compatible with the beta 20 and 19 -releases. The library is now much more stable under Windows 9x and the -bugs affecting configures under 9x (and NT to a lesser extent) have -also been fixed. - -The bug that made it necessary to start the value of the CYGWIN -environment variable with two leading spaces has been fixed. - -The serial support in the select call has been fixed. - -Handling of DLLs loaded by non-cygwin apps has been improved. Bugs in -dlopen have been fixed. - -Passing _SC_CHILD_MAX to the sysconf function now yields CHILD_MAX (63) -instead of _POSIX_CHILD_MAX (3). - -Several minor path bugs have been fixed. Including the one that -caused "mkdir a/" to fail. - -The include file sys/sysmacros.h has been added. Added missing protos -for wcslen and wcscmp to wchar.h. - -__P is now defined in include/sys/cdefs.h. To support that last change, -the top-level Makefile.in now sets CC_FOR_TARGET and CXX_FOR_TARGET -differently. - -Cygwin now exports the following newlib bessel functions: j1, jn, y1, -yn. - -Several tty ioctl options have been added: TCGETA, TCSETA, TCSETAW, and -TCSETAF. - -Several functions cope with NULL pointer references more gracefully. - -Problems with execution of relative paths via #! should be fixed. - -@section Release Beta 20 (Oct 30 1998) - -This is a significant update to the Beta 19 release. In addition to an -EGCS-based compiler and updated tools, this release includes a new -version of the Cygwin library that contains many improvements and -bugfixes over the last one. - -@subsection The project has a new name! - -Starting with this release, we are retiring the "GNU-Win32" name for the -releases. We have also dropped the "32" from Cygwin32. This means that -you should now refer to the tools as "the Cygwin toolset", the library -as "the Cygwin library" or "the Cygwin DLL", and the library's interface -as "the Cygwin API". - -Because of this name change, we have changed any aspects of the library -that involved the name "Cygwin32". For example, the CYGWIN32 -environment variable is now the CYGWIN environment variable. API -functions starting with cygwin32_ are still available under that form -for backwards-compatibility as well as under the new cygwin_-prefixed -names. The same goes for the change of preprocessor define from -__CYGWIN32__ to __CYGWIN__. We will remove the old names in a future -release so please take the minute or two that it will take to remove -those "32"s. Thanks and I apologize for the hassle this may cause -people. We would have changed the name to "Bob" but that name's already -taken by Microsoft... :-) - -Why change it? For one thing, not all of the software included in the -distributions is GNU software, including the Cygwin library itself. So -calling the project "GNU-Win32" has always been a bit of a misnomer. In -addition, we think that calling the tools the "Cygwin tools" that use -the "Cygwin library" will be less confusing to people. - -Also notice that we are now on the spiffy new sourceware.cygnus.com -web/ftp site. The old address will work for some unknown period of -time (hopefully at least until we get all of the mirrors adjusted). - -@subsection Changes in specific tools: - -The latest public EGCS release is now the basis for the compiler used -in Cygwin distributions. As a result, EGCS 1.1 is the compiler in this -release, with a few additional x86/Cygwin-related patches. - -Those of you who are more interested in native Windows development than -in porting Unix programs will be glad to know that a new gcc flag -"-mno-cygwin" will link in the latest Mingw32 libs and produce an -executable that does not use Cygwin. - -All of the other development tools have been updated to their latest -versions. The linker (ld) includes many important bug fixes. It is now -possible to safely strip a DLL with a .reloc section. The windres -resource compiler is significantly improved. - -Beta 20 also includes upgrades to a number of packages: ash-0.3.2-4, -bash 2.02.1, grep-2.2, ncurses 4.2, and less 332. We have added bzip2 -0.9.0 to the distribution. And you'll now find that the df utility -has joined its other friends from the fileutils package. - -The sh executable is still ash from the Debian Linux distribution but no -longer has the problematic quoting bug that was present in the Beta 19 -release. Control-Cs in the bash shell no longer kill background tasks. - -Tcl/tk are upgraded to version 8.1a2 (with additional patches). -Compatible versions of tix and itcl are included. These all include -Cygwin-compatible configury files so you can do a Unix-style build of -the Win32 ports of tcl/tk. expect has been upgraded to 5.26 with some -additional Cygwin patches. - -In response to customer requests and feedback, Cygnus has developed a -better graphical front end to GDB than GDBtk or WinGDB. This tcl-based -GUI is shipping today to customers of the GNUPro Toolkit. The -instrumentation changes to GDB and the tcl interpreter that was built -into GDB are part of the GPL'd source base. But the tcl scripts are not -being made available to the net at this time. For this reason, you will -only find a command-line version of gdb in this Cygwin release. - -DJ Delorie has written a new "cygcheck" program that will print out -useful information about how your Cygwin environment is set up, what -DLLs a named executable is loading from where, etc. We hope this will -make it easier to help diagnose common setup problems. - -The ps utility has been upgraded. It now has several options including -shorter and longer output formats. - -@subsection Changes in the Cygwin API (cygwin.dll): - -This version of Cygwin is backwards-compatible with the beta 19 release. -You can use the new "cygwin1.dll" with your old B19-compiled executables -if you move the old "cygwinb19.dll" out of the way and install a copy -of "cygwin1.dll" as "cygwinb19.dll". - -Quite a lot of the Cygwin internals have been rewritten or modified to -address various issues. If you have a question about specific changes, -the winsup/ChangeLog file in the development tools sources lists all -changes made to the DLL over the last three years. Following are a few -highlights: - -We are now using a new versioning scheme for Cygwin. There is now a -separate version number for the DLL, the API, the shared memory region -interfaces, and the registry interface. This will hopefully make it -easier for multiple Cygwin toolsets to coexist in one user environment. - -Windows 98 is now supported (it is like Windows 95 from Cygwin's -perspective). We still recommend upgrading to Windows NT. - -While there is still a lot left to do in improving Cygwin's runtime -performance, we have put some effort into this prior to the B20 release. -Hopefully you will find that the latest version of Cygwin is faster than -ever. In addition, we have plugged several nasty handle leaks -associated with opening/closing files and with using ttys. - -The lseek call now uses WriteFile to fill gaps with zeros whenever a -write is done past an EOF, rather than leaving "undefined" data as Win32 -specifies. - -Significant work has been done to improve the Cygwin header files. - -The Cygwin Support for Unix-style serial I/O is much improved. - -Path handling has had another round of fixes/rewrites. We no longer use -NT Extended Attributes by default for storing Unix permissions/execute -status because the file NT creates on FAT partitions is not scalable to -thousands of files (everything slows to a crawl). - -Signal handling has also gotten a fair amount of attention. -Unfortunately, there are still some problems combining itimers and -Windows 9x. - -The number of ttys has been upped from 16 to 128. - -New API calls included in the DLL: sethostent, endhostent. - -As mentioned earlier, all cygwin32_-prefixed functions are now exported -with a cygwin_ prefix instead. Please adjust your code to call the -newly named functions. - -reads of `slow' devices are now correctly interrupted by signals, i.e. -a read will receive an EINTR. diff --git a/winsup/doc/configure b/winsup/doc/configure deleted file mode 100755 index eea87df57..000000000 --- a/winsup/doc/configure +++ /dev/null @@ -1,1067 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=cygwin-api.in.sgml - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - - - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:575: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:596: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:614: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - - -if test $host != $build; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:646: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_CC"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:678: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="gcc" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - CC="gcc" -fi -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:714: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -if test $ac_cv_prog_gcc = yes; then - GCC=yes - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:768: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi - if test "$ac_test_CXXFLAGS" != set; then - CXXFLAGS='$(CFLAGS)' - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - - - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@CC@%$CC%g -s%@build_exeext@%$build_exeext%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/winsup/doc/configure.in b/winsup/doc/configure.in deleted file mode 100644 index 503777724..000000000 --- a/winsup/doc/configure.in +++ /dev/null @@ -1,54 +0,0 @@ -dnl Autoconf configure script for winsup/regexp -dnl Copyright 1997,1998,1999,2000,2001 Red Hat, Inc. -dnl -dnl This file is part of Cygwin. -dnl -dnl This software is a copyrighted work licensed under the terms of the -dnl Cygwin license. Please consult the file "CYGWIN_LICENSE" for -dnl details. - -dnl Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.12) -AC_INIT(cygwin-api.in.sgml) - -AC_DEFUN(LIB_AC_PROG_CC, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_TOOL(CC, gcc, gcc) -if test -z "$CC"; then - AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -dnl Check whether -g works, even if CFLAGS is set, in case the package -dnl plays around with CFLAGS (such as to build both debugging and -dnl normal versions of a library), tasteless as that idea is. - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - AC_PROG_CC_G - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi - if test "$ac_test_CXXFLAGS" != set; then - CXXFLAGS='$(CFLAGS)' - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi -]) - -AC_CANONICAL_SYSTEM - -LIB_AC_PROG_CC - -AC_SUBST(build_exeext) - -AC_OUTPUT(Makefile) diff --git a/winsup/doc/copy.texinfo b/winsup/doc/copy.texinfo deleted file mode 100644 index 90dc078d1..000000000 --- a/winsup/doc/copy.texinfo +++ /dev/null @@ -1,382 +0,0 @@ -@chapter What are the copyrights ? - -@section The general idea - -Most of the tools are covered by the GNU General Public License (GPL), -although some are public domain, and others have a X11-style -copyright. To cover the GNU GPL -requirements, the basic rule is if you give out any binaries, you must -also make the source available. For the full details, be sure to -read the text of the GNU GPL which follows. - -The Cygwin API library found in the winsup subdirectory of the -source code is also covered by the GNU GPL. By default, all -executables link against this library (and in the process include GPL'd -Cygwin glue code). This means that unless you modify the tools -so that compiled executables do not make use of the Cygwin library, -your compiled programs will also have to be free software distributed -under the GPL with source code available to all. - -Cygwin is currently available for proprietary use only through a -proprietary-use license. Please contact sales@@cygnus.com for -more information. - -In accordance with section 10 of the GPL, Cygnus permits programs whose -sources are distributed under a license that complies with the Open -Source definition to be linked with libcygwin.a without libcygwin.a -itself causing the resulting program to be covered by the GNU GPL. - -This means that you can port an Open Source(tm) application to cygwin, -and distribute that executable as if it didn't include a copy of -libcygwin.a linked into it. Note that this does not apply to the cygwin -DLL itself. If you distribute a (possibly modified) version of the DLL -you must adhere to the terms of the GPL, i.e., you must provide sources -for the cygwin DLL. - -See http://www.opensource.org/osd.html for the precise Open Source -Definition referenced above. - -@section GNU GENERAL PUBLIC LICENSE -@example - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. - -@end example - diff --git a/winsup/doc/cygwin-api.in.sgml b/winsup/doc/cygwin-api.in.sgml deleted file mode 100644 index 06baf5247..000000000 --- a/winsup/doc/cygwin-api.in.sgml +++ /dev/null @@ -1,67 +0,0 @@ -1998Red Hat, Inc."> - - ]> - - - - - 1998-08-31 - Cygwin API Reference - - - DJ - Delorie - - - Geoffrey - Noer - - - - DOCTOOL-INSERT-legal - - - - 0.0 - 1998-08-31 - dj - Initial revision - - - 0.5.0 - 1998-12-17 - noer - Add pthread, sem calls. Change revnumber to - three-part number: Cygwin API major, Cygwin API minor, Doc rev - number. Starts out at 0.5.0. - - - - - - -Compatibility -DOCTOOL-INSERT-std-ansi -DOCTOOL-INSERT-std-posix -DOCTOOL-INSERT-std-misc - - -Cygwin Functions - -These functions are specific to Cygwin itself, and probably -won't be found anywhere else. - -DOCTOOL-INSERT-func- - - - - diff --git a/winsup/doc/cygwin-ug-net.in.sgml b/winsup/doc/cygwin-ug-net.in.sgml deleted file mode 100644 index 41e876f22..000000000 --- a/winsup/doc/cygwin-ug-net.in.sgml +++ /dev/null @@ -1,72 +0,0 @@ -1999,2000,2001 - Red Hat, Inc."> - - ]> - - - - - 2001-22-03 - Cygwin User's Guide - - - Corinna - Vinschen - - - Christopher - Faylor - - - DJ - Delorie - - - Pierre - Humblet - - - Geoffrey - Noer - - - -DOCTOOL-INSERT-legal - - - - 0.0 - 1998-10-06 - noer - Initial revision - - - 20.1.0 - 1999-02-08 - Pierre.Humblet@eurecom.fr - Expand, describe Cygwin 20.1 - - - - - - -DOCTOOL-INSERT-overview - -DOCTOOL-INSERT-setup-net - -DOCTOOL-INSERT-using - -DOCTOOL-INSERT-programming - - diff --git a/winsup/doc/cygwin-ug.in.sgml b/winsup/doc/cygwin-ug.in.sgml deleted file mode 100644 index 91054f324..000000000 --- a/winsup/doc/cygwin-ug.in.sgml +++ /dev/null @@ -1,71 +0,0 @@ -1999,2000,2001 - Red Hat, Inc."> - - ]> - - - - - 2001-22-03 - Cygwin User's Guide - - - Corinna - Vinschen - - - Christopher - Faylor - - - DJ - Delorie - - - Pierre - Humblet - - - Geoffrey - Noer - - - -DOCTOOL-INSERT-legal - - - - 0.0 - 1998-08-31 - dj - Initial revision - - - 20.1.0 - 1999-02-08 - Pierre.Humblet@eurecom.fr - Expand, describe Cygwin 20.1 - - - - - - -DOCTOOL-INSERT-overview - -DOCTOOL-INSERT-setup - -DOCTOOL-INSERT-using - -DOCTOOL-INSERT-programming - - diff --git a/winsup/doc/cygwinenv.sgml b/winsup/doc/cygwinenv.sgml deleted file mode 100644 index bb391a592..000000000 --- a/winsup/doc/cygwinenv.sgml +++ /dev/null @@ -1,130 +0,0 @@ -The <EnVar>CYGWIN</EnVar> environment -variable - -The CYGWIN environment variable is used to configure -many global settings for the Cygwin runtime system. It contains the options -listed below, separated by blank characters. Many options can be turned off -by prefixing with no . - - - -(no)binmode - if set, non-disk -(e.g. pipe and COM ports) file opens default to binary mode -(no CR/LF/Ctrl-Z translations) instead of text mode. -Defaults to set (binary mode). This option must be set -before starting a Cygwin shell to have an effect on redirection. - -Warning!If set in 12/98 b20.1, all files -always open in binary mode. - - -check_case:level - Controls the behaviour of -Cygwin when a user tries to open or create a file using a case different from -the case of the path as asved on the disk. -level is one of relaxed, -adjust and strict. - - -relaxed which is the default behaviour simply -ignores case. That's the default for native Windows applications as well. - - -adjust behaves mostly invisible. The POSIX input -path is internally adjusted in case, so that the resulting DOS path uses the -correct case throughout. You can see the result when changing the directory -using a wrong case and calling /bin/pwd afterwards. - - -strict results in a error message if the case -isn't correct. Trying to open a file Foo while a file -fOo exists results in a "no such file or directory" -error. Trying to create a file BAR while a file -Bar exists results in a "Filename exists with different -case" error. - - - - -(no)envcache - If set, environment variable -conversions (between Win32 and POSIX) are cached. Note that this is may -cause problems if the mount table changes, as the cache is not invalidated -and may contain values that depend on the previous mount table -contents. Defaults to set. - - -(no)export - if set, the final values of these -settings are re-exported to the environment as $CYGWIN again. - - -error_start:filepath - if set, runs filepath -when cygwin encounters a fatal error. This is useful for debugging. -filepath is usually set to the path to the gdb -program. -(no)glob[:ignorecase] - if set, command line arguments -containing UNIX-style file wildcard characters (brackets, question mark, -asterisk, escaped with \) are expanded into lists of files that match -those wildcards. -This is applicable only to programs running from a DOS command line prompt. -Default is set. -This option also accepts an optional [no]ignorecase modifer. -If supplied, wildcard matching is case insensitive. The default is noignorecase - - -(no)ntea - if set, use the full NT Extended -Attributes to store UNIX-like inode information. -This option only operates under Windows NT. Defaults to not set. -Warning! This may create additional -large files on non-NTFS partitions. - - -(no)ntsec - if set, use the NT security -model to set UNIX-like permissions on files and processes. The -file permissions can only be set on NTFS partitions. FAT doesn't -support the NT file security. For more information, read the documentation -in ntsec.sgml. - - -(no)smbntsec - if set, use `ntsec' on remote -drives as well (this is the default). If you encounter problems with NT shares -or Samba drives, setting this to `nosmbntsec' could help. In that case the -permission and owner/group information is faked as on FAT partitions. -A reason for a non working ntsec on remote drives could be insufficient -permissions of the users. Since the needed user rights are somewhat dangerous -(SeRestorePrivilege) it's not always an option to grant that rights to users. -However, this shouldn't be a problem in NT domain environments. - - -(no)reset_com - if set, serial ports are reset -to 9600-8-N-1 with no flow control when used. This is done at open -time and when handles are inherited. Defaults to set. - - -(no)strip_title - if set, strips the directory -part off the window title, if any. Default is not set. - - -(no)title - if set, the title bar -reflects the name of the program currently running. Default is not -set. Note that under Win9x the title bar is always enabled and it is -stripped by default, but this is because of the way Win9x works. In -order not to strip, specify title or title -nostrip_title. - - -(no)tty - if set, Cygwin enables extra support -(i.e., termios) for UNIX-like ttys. -It is not compatible with some Windows programs. -Defaults to not set, in which case the tty is opened in text mode -with ^Z as EOF. Note that this has been changed such that ^D works as -expected instead of ^Z, and is settable via stty. -This option must be specified before starting a Cygwin shell -and it cannot be changed in the shell. - - -(no)winsymlinks - if set, Cygwin creates -symlinks as Windows shortcuts with a special header and the R/O attribute -set. If not set, Cygwin creates symlinks as plain files with a magic number, -a path and the system attribute set. Defaults to set. - - - diff --git a/winsup/doc/dll.sgml b/winsup/doc/dll.sgml deleted file mode 100644 index 274f12926..000000000 --- a/winsup/doc/dll.sgml +++ /dev/null @@ -1,120 +0,0 @@ -Building and Using DLLs - -DLLs are Dynamic Link Libraries, which means that they're linked -into your program at run time instead of build time. There are three -parts to a DLL: - - - the exports - the code and data - the import library - - -The code and data are the parts you write - functions, -variables, etc. All these are merged together, like if you were -building one big object files, and put into the dll. They are not -put into your .exe at all. - -The exports contains a list of functions and variables that the -dll makes available to other programs. Think of this as the list of -"global" symbols, the rest being hidden. Normally, you'd create this -list by hand with a text editor, but it's possible to do it -automatically from the list of functions in your code. The -dlltool program creates the exports section of -the dll from your text file of exported symbols. - -The import library is a regular UNIX-like -.a library, but it only contains the tiny bit of -information needed to tell the OS how your program interacts with -("imports") the dll. This information is linked into your -.exe. This is also generated by -dlltool. - -Building DLLs - -OK, let's go through a simple example of how to build a dll. -For this example, we'll use a single file -myprog.c for the program -(myprog.exe) and a single file -mydll.c for the contents of the dll -(mydll.dll). - -Now compile everything to objects: - - -gcc -c myprog.c -gcc -c mydll.c - - -Unfortunately, the process for building a dll is, well, convoluted. -You have to run five commands, like this: - - -gcc -s -Wl,--base-file,mydll.base -o mydll.dll mydll.o -Wl,-e,_mydll_init@12 -dlltool --base-file mydll.base --def mydll.def --output-exp mydll.exp --dllname mydll.dll -gcc -s -Wl,--base-file,mydll.base,mydll.exp -o mydll.dll mydll.o -Wl,-e,_mydll_init@12 -dlltool --base-file mydll.base --def mydll.def --output-exp mydll.exp --dllname mydll.dll -gcc -Wl,mydll.exp -o mydll.dll mydll.o -Wl,-e,_mydll_init@12 - - -The extra steps give dlltool the -opportunity to generate the extra sections (exports and relocation) -that a dll needs. After this, you build the import library: - - -dlltool --def mydll.def --dllname mydll.dll --output-lib mydll.a - - -Now, when you build your program, you link against the import -library: - - -gcc -o myprog myprog.o mydll.a - - -Note that we linked with -e _mydll_init@12. -This tells the OS what the DLL's "entry point" is, and this is a -special function that coordinates bringing the dll to life withing the -OS. The minimum function looks like this: - - -#include <windows.h> - -int WINAPI -mydll_init(HANDLE h, DWORD reason, void *foo) -{ - return 1; -} - - - - -Linking Against DLLs - -If you have an existing DLL already, you need to build a -Cygwin-compatible import library (The supplied ones should work, but -you might not have them) to link against. Unfortunately, there is not -yet any tool to do this automatically. However, you can get most of -the way by creating a .def file with these commands (you might need to -do this in bash for the quoting to work -correctly): - - -echo EXPORTS > foo.def -nm foo.dll | grep ' T _' | sed 's/.* T _//' >> foo.def - - -Note that this will only work if the DLL is not stripped. -Otherwise you will get an error message: "No symbols in -foo.dll". - -Once you have the .def file, you can create -an import library from it like this: - - -dlltool --def foo.def --dllname foo.dll --output-lib foo.a - - - - - diff --git a/winsup/doc/doctool.c b/winsup/doc/doctool.c deleted file mode 100644 index ae034f345..000000000 --- a/winsup/doc/doctool.c +++ /dev/null @@ -1,622 +0,0 @@ -/* doctool.c - - Copyright 1998,1999,2000,2001 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include -#include -#include -#include -#include - -/* Building native in a cross-built directory is tricky. Be careful, -and beware that you don't have the full portability stuff available to -you (like libiberty) */ - -/*****************************************************************************/ - -/* The list of extensions that may contain SGML snippets. We check - both cases in case the file system isn't case sensitive enough. */ - -struct { - char *upper; - char *lower; - int is_sgml; -} extensions[] = { - { ".C", ".c", 0 }, - { ".CC", ".cc", 0 }, - { ".H", ".h", 0 }, - { ".SGML", ".sgml", 1 }, - { 0, 0, 0 } -}; - -/*****************************************************************************/ - -void -show_help() -{ - printf("Usage: doctool [-m] [-i] [-d dir] [-o outfile] [-s prefix] \\\n"); - printf(" [-b book_id] infile\n"); - printf(" -m means to adjust Makefile to include new dependencies\n"); - printf(" -i means to include internal snippets\n"); - printf(" -d means to recursively scan directory for snippets\n"); - printf(" -o means to output to file (else stdout)\n"); - printf(" -s means to suppress source dir prefix\n"); - printf(" -b means to change the \n"); - printf("\n"); - printf("doctool looks for DOCTOOL-START and DOCTOOL-END lines in source,\n"); - printf("saves blocks, and looks for DOCTOOL-INSERT-bar\n"); - printf("commands to insert selected sections. IDs starting with int-\n"); - printf("are internal only, add- are added at the end of relevant sections\n"); - printf("or add-int- for both. Inserted sections are chosen by prefix,\n"); - printf("and sorted when inserted.\n"); - exit(1); -} - -/*****************************************************************************/ - -typedef struct Section { - struct Section *next; - struct OneFile *file; - char *name; - char internal; - char addend; - char used; - char **lines; - int num_lines; - int max_lines; -} Section; - -typedef struct OneFile { - struct OneFile *next; - char *filename; - int enable_scan; - int used; - Section *sections; -} OneFile; - -OneFile *file_list = 0; - -char *output_name = 0; -FILE *output_file = 0; - -char *source_dir_prefix = ""; -char *book_id = 0; - -int internal_flag = 0; - -/*****************************************************************************/ - -char * -has_string(char *line, char *string) -{ - int i; - while (*line) - { - for (i=0; line[i]; i++) - { - if (!string[i]) - return line; - if (line[i] != string[i]) - break; - } - line++; - } - return 0; -} - -int -starts_with(char *line, char *string) -{ - int i=0; - while (1) - { - if (!string[i]) - return 1; - if (!line[i] || line[i] != string[i]) - return 0; - i++; - } -} - -/*****************************************************************************/ - -#ifdef S_ISLNK -#define STAT lstat -#else -#define STAT stat -#endif - -void -scan_directory(dirname) - char *dirname; -{ - struct stat st; - char *name; - struct dirent *de; - DIR *dir = opendir(dirname); - if (!dir) - return; - while (de = readdir(dir)) - { - if (strcmp(de->d_name, ".") == 0 - || strcmp(de->d_name, "..") == 0) - continue; - - name = (char *)malloc(strlen(dirname)+strlen(de->d_name)+3); - strcpy(name, dirname); - strcat(name, "/"); - strcat(name, de->d_name); - - STAT(name, &st); - - if (S_ISDIR(st.st_mode)) - { - scan_directory(name); - } - - else if (S_ISREG(st.st_mode)) - { - char *dot = strrchr(de->d_name, '.'); - int i; - - if (dot) - { - for (i=0; extensions[i].upper; i++) - if (strcmp(dot, extensions[i].upper) == 0 - || strcmp(dot, extensions[i].lower) == 0) - { - OneFile *one = (OneFile *)malloc(sizeof(OneFile)); - one->next = file_list; - file_list = one; - one->filename = name; - one->enable_scan = ! extensions[i].is_sgml; - one->used = 0; - one->sections = 0; - } - } - } - } - closedir (dir); -} - -/*****************************************************************************/ - -void -scan_file(OneFile *one) -{ - FILE *f = fopen(one->filename, "r"); - int enabled = ! one->enable_scan; - char line[1000], *tag=0, *id=0, *tmp; - int taglen = 0; - Section *section = 0; - Section **prev_section_ptr = &(one->sections); - - if (!f) - { - perror(one->filename); - return; - } - - while (fgets(line, 1000, f)) - { - if (one->enable_scan) - { - /* source files have comment-embedded docs, check for them */ - if (has_string(line, "DOCTOOL-START")) - enabled = 1; - if (has_string(line, "DOCTOOL-END")) - enabled = 0; - } - if (!enabled) - continue; - - /* DOCTOOL-START - - -this is the doctool tags section. - - - DOCTOOL-END */ - - if (!tag && line[0] == '<') - { - tag = (char *)malloc(strlen(line)+1); - id = (char *)malloc(strlen(line)+1); - if (sscanf(line, "<%s id=\"%[^\"]\">", tag, id) == 2) - { - if (strcmp(tag, "book") == 0 || strcmp(tag, "BOOK") == 0) - { - /* Don't want to "scan" these */ - return; - } - taglen = strlen(tag); - section = (Section *)malloc(sizeof(Section)); - /* We want chunks within single files to appear in that order */ - section->next = 0; - section->file = one; - *prev_section_ptr = section; - prev_section_ptr = &(section->next); - section->internal = 0; - section->addend = 0; - section->used = 0; - section->name = id; - if (starts_with(section->name, "add-")) - { - section->addend = 1; - section->name += 4; - } - if (starts_with(section->name, "int-")) - { - section->internal = 1; - section->name += 4; - } - section->lines = (char **)malloc(10*sizeof(char *)); - section->num_lines = 0; - section->max_lines = 10; - } - else - { - free(tag); - free(id); - tag = id = 0; - } - } - - if (tag && section) - { - if (section->num_lines >= section->max_lines) - { - section->max_lines += 10; - section->lines = (char **)realloc(section->lines, - section->max_lines * sizeof (char *)); - } - section->lines[section->num_lines] = (char *)malloc(strlen(line)+1); - strcpy(section->lines[section->num_lines], line); - section->num_lines++; - - if (line[0] == '<' && line[1] == '/' - && memcmp(line+2, tag, taglen) == 0 - && (isspace(line[2+taglen]) || line[2+taglen] == '>')) - { - /* last line! */ - tag = 0; - } - } - } - fclose(f); -} - -/*****************************************************************************/ - -Section ** -enumerate_matching_sections(char *name_prefix, int internal, int addend, int *count_ret) -{ - Section **rv = (Section **)malloc(12*sizeof(Section *)); - int count = 0, max=10, prefix_len = strlen(name_prefix); - OneFile *one; - int wildcard = 0; - - if (name_prefix[strlen(name_prefix)-1] == '-') - wildcard = 1; - - for (one=file_list; one; one=one->next) - { - Section *s; - for (s=one->sections; s; s=s->next) - { - int matches = 0; - if (wildcard) - { - if (starts_with(s->name, name_prefix)) - matches = 1; - } - else - { - if (strcmp(s->name, name_prefix) == 0) - matches = 1; - } - if (s->internal <= internal - && s->addend == addend - && matches - && ! s->used) - { - s->used = 1; - if (count >= max) - { - max += 10; - rv = (Section **)realloc(rv, max*sizeof(Section *)); - } - rv[count++] = s; - rv[count] = 0; - } - } - } - if (count_ret) - *count_ret = count; - return rv; -} - -/*****************************************************************************/ - -#define ID_CHARS "~@$%&()_-+[]{}:." - -void include_section(char *name, int addend); - -char * -unprefix(char *fn) -{ - int l = strlen(source_dir_prefix); - if (memcmp(fn, source_dir_prefix, l) == 0) - { - fn += l; - while (*fn == '/' || *fn == '\\') - fn++; - return fn; - } - return fn; -} - -void -parse_line(char *line, char *filename) -{ - char *cmd = has_string(line, "DOCTOOL-INSERT-"); - char *sname, *send, *id, *save; - if (!cmd) - { - if (book_id - && (starts_with(line, "'); - if (cmd) - { - cmd++; - fprintf(output_file, "", book_id); - fputs(cmd, output_file); - return; - } - } - fputs(line, output_file); - return; - } - if (cmd != line) - fwrite(line, cmd-line, 1, output_file); - save = (char *)malloc(strlen(line)+1); - strcpy(save, line); - line = save; - - sname = cmd + 15; /* strlen("DOCTOOL-INSERT-") */ - for (send = sname; - *send && isalnum(*send) || strchr(ID_CHARS, *send); - send++); - id = (char *)malloc(send-sname+2); - memcpy(id, sname, send-sname); - id[send-sname] = 0; - include_section(id, 0); - - fprintf(output_file, "\n", unprefix(filename)); - - fputs(send, output_file); - free(save); -} - -int -section_sort(const void *va, const void *vb) -{ - Section *a = *(Section **)va; - Section *b = *(Section **)vb; - int rv = strcmp(a->name, b->name); - if (rv) - return rv; - return a->internal - b->internal; -} - -void -include_section(char *name, int addend) -{ - Section **sections, *s; - int count, i, l; - - sections = enumerate_matching_sections(name, internal_flag, addend, &count); - - qsort(sections, count, sizeof(sections[0]), section_sort); - for (i=0; ifile->used = 1; - fprintf(output_file, "\n", unprefix(s->file->filename)); - for (l=addend; lnum_lines-1; l++) - parse_line(s->lines[l], s->file->filename); - if (!addend) - { - include_section(s->name, 1); - parse_line(s->lines[l], s->file->filename); - } - } - - free(sections); -} - -void -parse_sgml(FILE *in, char *input_name) -{ - static char line[1000]; - while (fgets(line, 1000, in)) - { - parse_line(line, input_name); - } -} - -/*****************************************************************************/ - -void -fix_makefile(char *output_name) -{ - FILE *in, *out; - char line[1000]; - int oname_len = strlen(output_name); - OneFile *one; - int used_something = 0; - struct stat st; - struct utimbuf times; - - stat("Makefile", &st); - - in = fopen("Makefile", "r"); - if (!in) - { - perror("Makefile"); - return; - } - - out = fopen("Makefile.new", "w"); - if (!out) - { - perror("Makefile.new"); - return; - } - - while (fgets(line, 1000, in)) - { - if (starts_with(line, output_name) - && strcmp(line+oname_len, ": \\\n") == 0) - { - /* this is the old dependency */ - while (fgets(line, 1000, in)) - { - if (strcmp(line+strlen(line)-2, "\\\n")) - break; - } - } - else - fputs(line, out); - } - fclose(in); - - for (one=file_list; one; one=one->next) - if (one->used) - { - used_something = 1; - break; - } - - if (used_something) - { - fprintf(out, "%s:", output_name); - for (one=file_list; one; one=one->next) - if (one->used) - fprintf(out, " \\\n\t%s", one->filename); - fprintf(out, "\n"); - } - - fclose(out); - - times.actime = st.st_atime; - times.modtime = st.st_mtime; - utime("Makefile.new", ×); - - if (rename("Makefile", "Makefile.old")) - return; - if (rename("Makefile.new", "Makefile")) - rename("Makefile.old", "Makefile"); -} - -/*****************************************************************************/ - -int -main(argc, argv) - int argc; - char **argv; -{ - int i; - OneFile *one; - FILE *input_file; - int fix_makefile_flag = 0; - - while (argc > 1 && argv[1][0] == '-') - { - if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0) - { - show_help(); - } - else if (strcmp(argv[1], "-i") == 0) - { - internal_flag = 1; - } - else if (strcmp(argv[1], "-m") == 0) - { - fix_makefile_flag = 1; - } - else if (strcmp(argv[1], "-d") == 0 && argc > 2) - { - scan_directory(argv[2]); - argc--; - argv++; - } - else if (strcmp(argv[1], "-o") == 0 && argc > 2) - { - output_name = argv[2]; - argc--; - argv++; - } - else if (strcmp(argv[1], "-s") == 0 && argc > 2) - { - source_dir_prefix = argv[2]; - argc--; - argv++; - } - else if (strcmp(argv[1], "-b") == 0 && argc > 2) - { - book_id = argv[2]; - argc--; - argv++; - } - - argc--; - argv++; - } - - for (one=file_list; one; one=one->next) - { - scan_file(one); - } - - input_file = fopen(argv[1], "r"); - if (!input_file) - { - perror(argv[1]); - return 1; - } - - if (output_name) - { - output_file = fopen(output_name, "w"); - if (!output_file) - { - perror(output_name); - return 1; - } - } - else - { - output_file = stdout; - output_name = ""; - } - - parse_sgml(input_file, argv[1]); - - if (output_file != stdout) - fclose(output_file); - - if (fix_makefile_flag) - fix_makefile(output_name); - - return 0; -} diff --git a/winsup/doc/doctool.txt b/winsup/doc/doctool.txt deleted file mode 100644 index c89e39243..000000000 --- a/winsup/doc/doctool.txt +++ /dev/null @@ -1,146 +0,0 @@ -Doctool - -DJ Delorie - -These are the instructions for using doctool. Yes, I should have -written them *in* DocBook, but hey, I was in a hurry. - -OK, doctool is a program that gathers snippets of a docbook document and -puts them all together in the right order. There are three -places that it gets snippets from: - -1. The document that you tell it you want "finished" - -2. blocks of SGML in *.sgml files - -3. comments in source code - -The first of these is the template file, which is to say, it's a -normal SGML file (sort of). This file is the first one read, and -includes such things as your tags etc. It contains commands to -doctool to tell it where to put the other parts. - -The second, the *.sgml files, contain one or more blocks of SGML. -To work with doctool, each of these snippets must begin and end -with matching tags, must have an id="" attribute, and the start/end -tags must begin at the beginning of the line. For example: - - - stuff goes here - - - stuff goes here - - -In this example, the file contains two snippets, one marked by "foo" -and one barked by "bar", with id's "from-45" and "from-48". Note that -I made up the foo and bar tags. You'd usually use a tag or -something useful like that. Stuff outside the blocks is ignored. - -The third is simply an encapsulation of the second in comments, like this: - -/* DOCTOOL-START - - stuff goes here - -DOCTOOL-END */ - -The DOCTOOL-START and DOCTOOL-END things are special. Doctool uses -those to know which parts of which comments are useful, and which -parts are the useless source code stuff ;-) - - -OK, so now we've got all these snippets of SGML floating around. What -do we do with them? Well, inside the template document (#1 in our -list up there) you'd put text snippets that said "ok, put them -here". Each text snippet looks like this: - -DOCTOOL-INSERT-frob- - -Note that the "frob-" part tells doctool to pull in all the snippets -with IDs that start with "frob-", in alphabetical (well, asciibetical -at the moment) order. So, by saying "DOCTOOL-INSERT-frob-" you'd get -all the "frob-*" snippets, like "frob-45" and "frob-48". - -If you just said DOCTOOL-INSERT-frob, it inserts the snippet named -"frob" and no others. - -Note that no snippet will ever be inserted more than once, no matter -how many DOCTOOL-INSERTs you have. - -There's two other tricks doctool has. If it finds a snippet with an ID -like "int-*" (i.e. int-frob-45) that means that snippet of documentation -is for the "internal" version only. The "int-" is discarded, and if -the -i option is given to doctool, this snippet is treated as if the -int- wasn't there. Without the -i, the int-* snippets are ignored -completely. - -If a snippet has "add-" on it, like "add-frob-45", that's an addendum. -Each time a snippet named without the add- is found, doctool looks for -an addendum with exactly that same name (i.e. frob-45 looks for -add-frob-45). If it finds any, it puts them just before the last line -of the non-add snippet (so that it's *inside* the main snippet's -block, not after it). Example: - - - some text - - - more text - - -This would yield: - - - some text - more text - - -You should use the same outermost tags as the main snippet, but only -because it sets the proper nesting rules for what's enclosed. - -You can use add- and int- at the same time, but always do add-int- and -not int-add- (i.e. "add-int-frob-45"). - - -OK, now for doctool command line options. - --m tells doctool to "fix" the Makefile (not makefile) to include the -extra dependencies needed by the file you're generating. You need to -manually include dependencies on the Makefile itself and the template -file; doctool only includes the snippet files (sources etc) that it -actually pulled content from. Note: this isn't perfect! Someone can -come along and add a new snippet to a source file, and doctool would -never know. Sometimes, it's best to just rebuild the docs all the -time. - --i means to include snippets with the "int-" prefix on their IDs. Use -with -b to make internal and public versions from the same sources. - -"-d dir" tells doctool to scan all the files in that directory (and -subdirectories, recursively) for files that might contain snippets of -SGML. These include *.c, *.cc, *.h, and *.sgml. The idea is that -most of the documentation would be in a *.sgml file named after the -source (i.e. foo.c -> foo.sgml) but some commentary within the source -might be useful in the docs as well. SGML files (*.sgml) do not need -the DOCTOOL-START/END tags but the others do. - --o sets the output file. Without -o, the file goes to stdout (ick). - --s tells doctool to supress a "source directory prefix". What this -means is that, in the generated output doctool puts comments that say -where each snippet comes from (for debugging), which includes the full -path sometimes, but if you use -s, you can tell doctool to cut off -that prefix. For example, -/usr/people/dj/src/cygnus/latest/devo/winsup/foo.c might get shortened -to winsup/foo.c if you gave "-s -/usr/people/dj/src/cygnus/latest/devo/". Cygnus makefiles could -just use -s $(srcdir) most of the time. - --b changes the ID for the tag. db2html uses the tag's -ID as the default subdirectory name and/or html file name to create -the book with. You'd need this to generate two books (internal vs -public) from the same source. - -The only other thing you'd add to the command line is the ONE template -file you want to pull in. diff --git a/winsup/doc/faq.texinfo b/winsup/doc/faq.texinfo deleted file mode 100644 index 3908f637a..000000000 --- a/winsup/doc/faq.texinfo +++ /dev/null @@ -1,18 +0,0 @@ -\input texinfo - -@title The Cygwin FAQ - -@subtitle (Not @emph{completely} updated for the latest net release, but still useful!) - -@author You can always find the latest version of this FAQ at @file{http://cygwin.com/faq/}. - -@setfilename faq.txt - -@include what.texinfo -@include install.texinfo -@include calls.texinfo -@include how.texinfo -@include relnotes.texinfo -@include history.texinfo -@include who.texinfo -@include copy.texinfo diff --git a/winsup/doc/fhandler-tut.txt b/winsup/doc/fhandler-tut.txt deleted file mode 100644 index 213b32b20..000000000 --- a/winsup/doc/fhandler-tut.txt +++ /dev/null @@ -1,83 +0,0 @@ -fhandler tutorial - -This document will show how to add a new "fhandler" to cygwin, by -showing an example of /dev/zero. - -Files to note: - -fhandler.h - must define a new derived class here and FH_* -path.cc - to notice "/dev/zero" and mark it -fhandler_zero.cc - new -dtable.cc - to create the fhandler instance - -OK, first we have to define what this new fhandler will do. In our -example case, we're going to implement the unix "/dev/zero" device, -which has the following characteristics: - -* writes to /dev/zero are silently discarded -* reads from /dev/zero return all zero bytes -* mmap()ing /dev/zero maps a chunk of zero'd out memory. - -Since windows doesn't have a device that acts like this, we'll be -simulating everything. Thus: - -* writes simply return a success status -* reads memset() the buffer and return success -* we take advantage of the fact that CreateFileMapping can take a - handle of -1, which (1) maps swap memory, and (2) zeros it out for - us (at least, on NT). - -OK, let's start with fhandler.h. - -First, update the comment about which files are where. We're adding -fhandler_dev_zero as FH_DEV_ZERO. We're adding this as a "fast" -device (it will never block) so we have to adjust FH_NDEV also. - -Later in that file, we'll copy fhandler_dev_null and edit it to be -fhandler_dev_zero. I chose that one because it's small, but we'll add -more members as we go (since we're simulating the whole thing). In -fact, let's copy the I/O methods from fhandler_windows since we'll -need all those anyway, even though we'll go through the full list -later. - -OK, next we need to edit path.cc to recognize when the user is trying -to open "/dev/zero". Look in get_device_number; there's a long list -of cases, just add one (I added one after "null"). Also remember to -add an entry to the windows_device_names list in the right spot. - -To go along with that change, we'll need to change dtable.cc. Look for -FH_NULL and add a case for FH_ZERO as well. - -Now we get to fhandler_zero.cc itself. Create the empty file and copy -the "usual" header/copyright/includes from some other fhandler_*.cc -source file. Also, edit Makefile.in to build this new file. Add one -new entry to DLL_OFILES, and a new line for the winsup.h dependencies. - -Since we changed fhandler.h, when you type "make" it will rebuild -everything. Go ahead and do that when you get a chance to let it run, -since we're not changing the headers any more. Note that you won't be -able to link the new dll, as we haven't added all the methods for the -new fhandler class yet, but at least you'll get a lot of compilation -out of the way. - -Next we start adding in the fhandler methods themselves. - -Constructor: This takes a name, and all we do is pass that name back -to the base class, along with the FH_ZERO value. We call set_cb -because all fhandlers call this (it's for exec to copy the fd). - -open: we override the one that takes a name because there are no real -windows devices like /dev/zero, but we ignore the name. We call -set_flags to save the flags. - -write: writes are discarded; we return success. - -read: reads read NUL bytes, so fill the buffer with NULs and return -success. - -lseek/close: just return success. - -dump: this is just for debugging, so we just print something. - -select_*: we don't support this yet, see the myriad examples in -select.cc for examples. The base fhandler's methods will do for now. diff --git a/winsup/doc/filemodes.sgml b/winsup/doc/filemodes.sgml deleted file mode 100644 index b0bac2eef..000000000 --- a/winsup/doc/filemodes.sgml +++ /dev/null @@ -1,34 +0,0 @@ -File permissions - -On Windows 9x systems, files are always readable, and Cygwin uses the -native read-only mode to determine if they are writable. Files are -considered to be executable if the filename ends with .bat, .com or .exe, or -if its content starts with #!. Consequently chmod can -only affect the "w" mode, it silently ignores actions involving the other -modes. This means that ls -l -needs to open and read files. It can thus be relatively slow. - -Under NT, file permissions default to the same behavior as Windows -9x but there is optional functionality in Cygwin that can make file -systems behave more like on UNIX systems. This is turned on by adding -the "ntea" option to the CYGWIN environment variable. - -When the "ntea" feature is activated, Cygwin will start with basic -permissions as determined above, but can store POSIX file permissions in NT -Extended Attributes. This feature works quite well on NTFS partitions -because the attributes can be stored sensibly inside the normal NTFS -filesystem structure. However, on a FAT partition, NT stores extended -attributes in a flat file at the root of the partition called EA -DATA. SF. This file can grow to extremely large sizes if you -have a large number of files on the partition in question, slowing the -system to a crawl. In addition, the EA DATA. SF file -can only be deleted outside of Windows because of its "in use" status. For -these reasons, the use of NT Extended Attributes is off by default in -Cygwin. Finally, note that specifying "ntea" in CYGWIN has no -effect under Windows 9x. - -Under NT, the test "[ -w filename]" is only true if filename is -writable across the board, e.g. chmod +w filename. - - - diff --git a/winsup/doc/gcc.sgml b/winsup/doc/gcc.sgml deleted file mode 100644 index 238babfa3..000000000 --- a/winsup/doc/gcc.sgml +++ /dev/null @@ -1,78 +0,0 @@ -Using GCC with Cygwin - -Console Mode Applications - -Use gcc to compile, just like under UNIX. -Refer to the GCC User's Guide for information on standard usage and -options. Here's a simple example: - - -Building Hello World with GCC - -C:\> gcc hello.c -o hello.exe -C:\> hello.exe -Hello, World - -C:\> - - - - - -GUI Mode Applications - -Cygwin allows you to build programs with full access to the -standard Windows 32-bit API, including the GUI functions as defined in -any Microsoft or off-the-shelf publication. However, the process of -building those applications is slightly different, as you'll be using -the GNU tools instead of the Microsoft tools. - -For the most part, your sources won't need to change at all. -However, you should remove all __export attributes from functions -and replace them like this: - - -int foo (int) __attribute__ ((__dllexport__)); - -int -foo (int i) - - -For most cases, you can just remove the __export and leave it at -that. For convenience sake, you might want to include the following -code snippet when compiling GUI programs. If you don't, you will want -to add "-e _mainCRTStartup" to your link line in your Makefile. - - -#ifdef __CYGWIN__ -WinMainCRTStartup() { mainCRTStartup(); } -#endif - - -The Makefile is similar to any other UNIX-like Makefile, -and like any other Cygwin makefile. The only difference is that you use -gcc -mwindows to link your program into a GUI -application instead of a command-line application. Here's an example: - - -myapp.exe : myapp.o myapp.res - gcc -mwindows myapp.o myapp.res -o $@ - -myapp.res : myapp.rc resource.h - windres $< -O coff -o $@ - - -Note the use of windres to compile the -Windows resources into a COFF-format .res file. -That will include all the bitmaps, icons, and other resources you -need, into one handy object file. Normally, if you omitted the "-O -coff" it would create a Windows .res format file, -but we can only link COFF objects. So, we tell -windres to produce a COFF object, but for -compatibility with the many examples that assume your linker can -handle Windows resource files directly, we maintain the -.res naming convention. For more information on -windres, consult the Binutils manual. - - - diff --git a/winsup/doc/gdb.sgml b/winsup/doc/gdb.sgml deleted file mode 100644 index 732004f49..000000000 --- a/winsup/doc/gdb.sgml +++ /dev/null @@ -1,88 +0,0 @@ - -Debugging Cygwin Programs - -When your program doesn't work right, it usually has a "bug" in -it, meaning there's something wrong with the program itself that is -causing unexpected results or crashes. Diagnosing these bugs and -fixing them is made easy by special tools called -debuggers. In the case of Cygwin, the debugger -is GDB, which stands for "GNU DeBugger". This tool lets you run your -program in a controlled environment where you can investigate the -state of your program while it is running or after it crashes. -Crashing programs sometimes create "core" files. In Cygwin these are -regular text files that cannot be used directly by GDB. - - -Before you can debug your program, you need to prepare your -program for debugging. What you need to do is add --g to all the other flags you use when compiling -your sources to objects. - -Compiling with -g - -$ gcc -g -O2 -c myapp.c -$ gcc -g myapp.c -o myapp - - - -What this does is add extra information to the objects (they get -much bigger too) that tell the debugger about line numbers, variable -names, and other useful things. These extra symbols and debugging -information give your program enough information about the original -sources so that the debugger can make debugging much easier for -you. - -In Windows versions of GNUPro, GDB comes with a full-featured -graphical interface. In Cygwin Net distributions, GDB is only -available as a command-line tool. To invoke GDB, simply type -gdb myapp.exe at the command prompt. It will -display some text telling you about itself, then -(gdb) will appear to prompt you to enter commands. -Whenever you see this prompt, it means that gdb is waiting for you to -type in a command, like run or -help. Oh :-) type -help to get help on the commands you can type in, -or read the GDB User's Manual for a complete -description of GDB and how to use it. - -If your program crashes and you're trying to figure out why it -crashed, the best thing to do is type run and let -your program run. After it crashes, you can type -where to find out where it crashed, or -info locals to see the values of all the local -variables. There's also a print that lets you look -at individual variables or what pointers point to. - -If your program is doing something unexpected, you can use the -break command to tell gdb to stop your program when it -gets to a specific function or line number: - -"break" in gdb - -(gdb) break my_function -(gdb) break 47 - - - -Now, when you type run your program will stop -at that "breakpoint" and you can use the other gdb commands to look at -the state of your program at that point, modify variables, and -step through your program's statements one at a -time. - -Note that you may specify additional arguments to the -run command to provide command-line arguments to -your program. These two cases are the same as far as your program is -concerned: - -Debugging with command line arguments - -$ myprog -t foo --queue 47 - -$ gdb myprog -(gdb) run -t foo --queue 47 - - - - - diff --git a/winsup/doc/history.texinfo b/winsup/doc/history.texinfo deleted file mode 100644 index f5ae98780..000000000 --- a/winsup/doc/history.texinfo +++ /dev/null @@ -1,5 +0,0 @@ -@chapter History - -This section of the FAQ is no longer maintained. - -Instead, see @file{http://cygwin.com/history.html}. diff --git a/winsup/doc/how-api.texinfo b/winsup/doc/how-api.texinfo deleted file mode 100644 index b35ab4202..000000000 --- a/winsup/doc/how-api.texinfo +++ /dev/null @@ -1,293 +0,0 @@ -@section Cygwin API Questions - -@subsection How does everything work? - -There's a C library which provides a Unix-style API. The -applications are linked with it and voila - they run on Windows. - -The aim is to add all the goop necessary to make your apps run on -Windows into the C library. Then your apps should run on Unix and -Windows with no changes at the source level. - -The C library is in a DLL, which makes basic applications quite small. -And it allows relatively easy upgrades to the Win32/Unix translation -layer, providing that dll changes stay backward-compatible. - -For a good overview of Cygwin, you may want to read the paper on Cygwin -published by the Usenix Association in conjunction with the 2d Usenix NT -Symposium in August 1998. It is available in html format on the project -WWW site. - -@subsection Are development snapshots for the Cygwin library available? - -Yes. They're made whenever anything interesting happens inside the -Cygwin library (usually roughly on a nightly basis, depending on how much -is going on). They are only intended for those people who wish to -contribute code to the project. If you aren't going to be happy -debugging problems in a buggy snapshot, avoid these and wait for a real -release. The snapshots are available from -http://cygwin.com/snapshots/ - - -@subsection How is the DOS/Unix CR/LF thing handled? - -Let's start with some background. - -In UNIX, a file is a file and what the file contains is whatever the -program/programmer/user told it to put into it. In Windows, a file is -also a file and what the file contains depends not only on the -program/programmer/user but also the file processing mode. - -When processing in text mode, certain values of data are treated -specially. A \n (new line) written to the file will prepend a \r -(carriage return) so that if you `printf("Hello\n") you in fact get -"Hello\r\n". Upon reading this combination, the \r is removed and the -number of bytes returned by the read is 1 less than was actually read. -This tends to confuse programs dependant on ftell() and fseek(). A -Ctrl-Z encountered while reading a file sets the End Of File flags even -though it truly isn't the end of file. - -One of Cygwin's goals is to make it possible to easily mix Cygwin-ported -Unix programs with generic Windows programs. As a result, Cygwin opens -files in text mode as is normal under Windows. In the accompanying -tools, tools that deal with binaries (e.g. objdump) operate in unix -binary mode and tools that deal with text files (e.g. bash) operate in -text mode. - -Some people push the notion of globally setting the default processing -mode to binary via mount point options or by setting the CYGWIN -environment variable. But that creates a different problem. In -binary mode, the program receives all of the data in the file, including -a \r. Since the programs will no longer deal with these properly for -you, you would have to remove the \r from the relevant text files, -especially scripts and startup resource files. This is a porter "cop -out", forcing the user to deal with the \r for the porter. - -It is rather easy for the porter to fix the source code by supplying the -appropriate file processing mode switches to the open/fopen functions. -Treat all text files as text and treat all binary files as binary. -To be specific, you can select binary mode by adding @code{O_BINARY} to -the second argument of an @code{open} call, or @code{"b"} to second -argument of an @code{fopen} call. You can also call @code{setmode (fd, -O_BINARY)}. - -Note that because the open/fopen switches are defined by ANSI, they -exist under most flavors of Unix; open/fopen will just ignore the switch -since they have no meaning to UNIX. - -Also note that @code{lseek} only works in binary mode. - -Explanation adapted from mailing list email by Earnie Boyd -. - -@subsection Is the Cygwin library multi-thread-safe? - -Multi-thread-safe support is turned on by default in 1.1.x releases -(i.e., in the latest net release). That does not mean that it is bug -free! - -There is also limited support for 'POSIX threads', see the file -@code{cygwin.din} for the list of POSIX thread functions provided. - -@subsection Why is some functionality only supported in Windows NT? - -Windows 9x: n. -32 bit extensions and a graphical shell for a 16 bit patch to an -8 bit operating system originally coded for a 4 bit microprocessor, -written by a 2 bit company that can't stand 1 bit of competition. - -But seriously, Windows 9x lacks most of the security-related calls and -has several other deficiencies with respect to its version of the Win32 -API. See the calls.texinfo document for more information as to what -is not supported in Win 9x. - -@subsection How is fork() implemented? - -Cygwin fork() essentially works like a non-copy on write version -of fork() (like old Unix versions used to do). Because of this it -can be a little slow. In most cases, you are better off using the -spawn family of calls if possible. - -Here's how it works: - -Parent initializes a space in the Cygwin process table for child. -Parent creates child suspended using Win32 CreateProcess call, giving -the same path it was invoked with itself. Parent calls setjmp to save -its own context and then sets a pointer to this in the Cygwin shared -memory area (shared among all Cygwin tasks). Parent fills in the childs -.data and .bss subsections by copying from its own address space into -the suspended child's address space. Parent then starts the child. -Parent waits on mutex for child to get to safe point. Child starts and -discovers if has been forked and then longjumps using the saved jump -buffer. Child sets mutex parent is waiting on and then blocks on -another mutex waiting for parent to fill in its stack and heap. Parent -notices child is in safe area, copies stack and heap from itself into -child, releases the mutex the child is waiting on and returns from the -fork call. Child wakes from blocking on mutex, recreates any mmapped -areas passed to it via shared area and then returns from fork itself. - -@subsection How does wildcarding (globbing) work? - -If the DLL thinks it was invoked from a DOS style prompt, it runs a -`globber' over the arguments provided on the command line. This means -that if you type @code{LS *.EXE} from DOS, it will do what you might -expect. - -Beware: globbing uses @code{malloc}. If your application defines -@code{malloc}, that will get used. This may do horrible things to you. - -@subsection How do symbolic links work? - -Cygwin knows of two ways to create symlinks. - -The old method is the only valid one up to but not including version 1.3.0. -If it's enabled (from 1.3.0 on by setting `nowinsymlinks' in the environment -variable CYGWIN) Cygwin generates link files with a magic header. When you -open a file or directory that is a link to somewhere else, it opens the file -or directory listed in the magic header. Because we don't want to have to -open every referenced file to check symlink status, Cygwin marks symlinks -with the system attribute. Files without the system attribute are not -checked. Because remote samba filesystems do not enable the system -attribute by default, symlinks do not work on network drives unless you -explicitly enable this attribute. - -The new method which is introduced with Cygwin version 1.3.0 is enabled -by default or if `winsymlinks' is set in the environment variable CYGWIN. -Using this method, Cygwin generates symlinks by creating Windows shortcuts. -Cygwin created shortcuts have a special header (which is in that way never -created by Explorer) and the R/O attribute set. A DOS path is stored in -the shortcut as usual and the description entry is used to store the POSIX -path. While the POSIX path is stored as is, the DOS path has perhaps to be -rearranged to result in a valid path. This may result in a divergence -between the DOS and the POSIX path when symlinks are moved crossing mount -points. When a user changes the shortcut, this will be detected by Cygwin -and it will only use the DOS path then. While Cygwin shortcuts are shown -without the ".lnk" suffix in `ls' output, non-Cygwin shortcuts are shown -with the suffix. However, both are treated as symlinks. - -Both, the old and the new symlinks can live peacefully together since Cygwin -treats both as symlinks regardless of the setting of `(no)winsymlinks' in -the environment variable CYGWIN. - -@subsection Why do some files, which are not executables have the 'x' type. - -When working out the unix-style attribute bits on a file, the library -has to fill out some information not provided by the WIN32 API. - -It guesses that files ending in .exe and .bat are executable, as are -ones which have a "#!" as their first characters. - -@subsection How secure is Cygwin in a multi-user environment? - -Cygwin is not secure in a multi-user environment. For -example if you have a long running daemon such as "inetd" -running as admin while ordinary users are logged in, or if -you have a user logged in remotely while another user is logged -into the console, one cygwin client can trick another into -running code for it. In this way one user may gain the -priveledge of another cygwin program running on the machine. -This is because cygwin has shared state that is accessible by -all processes. - -(Thanks to Tim Newsham (newsham@@lava.net) for this explanation). - -@subsection How do the net-related functions work? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -The network support in Cygwin is supposed to provide the Unix API, not -the Winsock API. - -There are differences between the semantics of functions with the same -name under the API. - -E.g., the select system call on Unix can wait on a standard file handles -and handles to sockets. The select call in winsock can only wait on -sockets. Because of this, cygwin.dll does a lot of nasty stuff behind -the scenes, trying to persuade various winsock/win32 functions to do what -a Unix select would do. - -If you are porting an application which already uses Winsock, then -using the net support in Cygwin is wrong. - -But you can still use native Winsock, and use Cygwin. The functions -which cygwin.dll exports are called 'cygwin_'. There -are a load of defines which map the standard Unix names to the names -exported by the dll -- check out include/netdb.h: - -@example -..etc.. -void cygwin_setprotoent (int); -void cygwin_setservent (int); -void cygwin_setrpcent (int); -..etc.. -#ifndef __INSIDE_CYGWIN_NET__ -#define endprotoent cygwin_endprotoent -#define endservent cygwin_endservent -#define endrpcent cygwin_endrpcent -..etc.. -@end example - -The idea is that you'll get the Unix->Cygwin mapping if you include -the standard Unix header files. If you use this, you won't need to -link with libwinsock.a - all the net stuff is inside the dll. - -The mywinsock.h file is a standard winsock.h which has been hacked to -remove the bits which conflict with the standard Unix API, or are -defined in other headers. E.g., in mywinsock.h, the definition of -struct hostent is removed. This is because on a Unix box, it lives in -netdb. It isn't a good idea to use it in your applications. - -As of the b19 release, this information may be slightly out of date. - -@subsection I don't want Unix sockets, how do I use normal Win32 winsock? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -To use the vanilla Win32 winsock, you just need to #define Win32_Winsock -and #include "windows.h" at the top of your source file(s). You'll also -want to add -lwsock32 to the compiler's command line so you link against -libwsock32.a. - -@subsection What version numbers are associated with Cygwin? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -There is a cygwin.dll major version number that gets incremented -every time we make a new Cygwin release available. This -corresponds to the name of the release (e.g. beta 19's major -number is "19"). There is also a cygwin.dll minor version number. If -we release an update of the library for an existing release, the minor -number would be incremented. - -There are also Cygwin API major and minor numbers. The major number -tracks important non-backward-compatible interface changes to the API. -An executable linked with an earlier major number will not be compatible -with the latest DLL. The minor number tracks significant API additions -or changes that will not break older executables but may be required by -newly compiled ones. - -Then there is a shared memory region compatibity version number. It is -incremented when incompatible changes are made to the shared memory -region or to any named shared mutexes, semaphores, etc. - -Finally there is a mount point registry version number which keeps track -of non-backwards-compatible changes to the registry mount table layout. -This has been "B15.0" since the beta 15 release. - -@subsection Why isn't _timezone set correctly? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -Did you explicitly call tzset() before checking the value of _timezone? -If not, you must do so. - -@subsection Is there a mouse interface? - -There is no way to capture mouse events from Cygwin. There are -currently no plans to add support for this. - diff --git a/winsup/doc/how-programming.texinfo b/winsup/doc/how-programming.texinfo deleted file mode 100644 index 5809744ff..000000000 --- a/winsup/doc/how-programming.texinfo +++ /dev/null @@ -1,597 +0,0 @@ -@section Programming Questions - -@subsection How do I contribute a package? - -If you are willing to be a package maintainer, great. We urgently need -volunteers to prepare and maintain packages, because the priority of the -Cygwin Team is Cygwin itself. - -There will be a separate web page where all the details are documented, -but this is not prepared yet. Meanwhile, pore through the cygwin-apps -mailing archives (start at @file{http://cygwin.com/lists.html}), and -subscribe. Charles Wilson posted a short recipe of what's involved, -using texinfo as an example, -at @file{http://cygwin.com/ml/cygwin-apps/2000-11/msg00055.html}. This -should give you an idea of what is required. - -You should announce your intentions to the general cygwin list, in case -others were thinking the same thing. - -@subsection How do I contribute to Cygwin? - -If you want to contribute to Cygwin itself, see -@file{http://cygwin.com/contrib.html}. - -@subsection Why are compiled executables so huge?!? - -By default, gcc compiles in all symbols. You'll also find that gcc -creates large executables on UNIX. - -If that bothers you, just use the 'strip' program, part of the binutils -package. Or compile with the @samp{-s} option to gcc. - -@subsection Where is glibc? - -Cygwin does not provide glibc. It uses newlib instead, which provides -much (but not all) of the same functionality. Porting glibc to Cygwin -would be difficult. - -@subsection Where is Objective C? - -Objective C is not distributed with the Cygwin version of gcc, and there -are no plans to do so. The gcc package maintainer had difficulty -building it, and once built there were problems using it. It appears -that there is only minimual support for the Objective C front-end in the -main GCC distribution, anyway. - -@subsection Why is make behaving badly? - -First of all, if you are using @samp{make -j[N]}, then stop. It doesn't -work well. - -Otherwise, read on... - -Make has two operating modes, UNIX and WIN32. You need to make sure -that you are operating in the right mode. - -In UNIX mode, make uses sh.exe as a subshell. The path list separator -is ':', '\' is the escape character, POSIX paths are expected, and -Cygwin mounts will be understood. Use this for Makefiles written for -UNIX. - -In WIN32 mode, make uses the "native" command shell (cmd.exe or -command.com), with all the restrictions that implies. The path list -separator is ';', the path separator is '\', "copy" and "del" work, but -the Cygwin mount table is not understood. Use this for nmake-style -Makefiles. - -The default mode for the Net Release of make (the one installed by -@code{setup.exe}) is UNIX. The default mode for commercial releases to -Redhat (formerly Cygnus) customers is WIN32. - -You can override the default by setting the environment variable -MAKE_MODE to "UNIX" (actually case is not significant) or "WIN32" -(actually anything other than "UNIX"). You can also specify the options ---unix or --win32 on the make command line. - -@subsection Why the undefined reference to @samp{WinMain@@16}? - -Try adding an empty main() function to one of your sources. - -Or, perhaps you have @samp{-lm} too early in the link command line. It -should be at the end: - -@example - bash$ gcc hello.c -lm - bash$ ./a.exe - Hello World! -@end example - -works, but - -@example - bash$ gcc -lm hello.c - /c/TEMP/ccjLEGlU.o(.text+0x10):hello.c: multiple definition of `main' - /usr/lib/libm.a(libcmain.o)(.text+0x0):libcmain.c: first defined here - /usr/lib/libm.a(libcmain.o)(.text+0x6a):libcmain.c: undefined reference to `WinMain@@16' - collect2: ld returned 1 exit status -@end example - -This is an artifact of libm.a being a symbolic link to libcygwin.a. - -@subsection How do I use Win32 API calls? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -It's pretty simple actually. Cygwin tools require that you explicitly -link the import libraries for whatever Win32 API functions that you -are going to use, with the exception of kernel32, which is linked -automatically (because the startup and/or built-in code uses it). - -For example, to use graphics functions (GDI) you must link -with gdi32 like this: - -gcc -o foo.exe foo.o bar.o -lgdi32 - -or (compiling and linking in one step): - -gcc -o foo.exe foo.c bar.c -lgdi32 - -The following libraries are available for use in this way: - -advapi32 largeint ole32 scrnsave vfw32 -cap lz32 oleaut32 shell32 win32spl -comctl32 mapi32 oledlg snmp winmm -comdlg32 mfcuia32 olepro32 svrapi winserve -ctl3d32 mgmtapi opengl32 tapi32 winspool -dlcapi mpr penwin32 th32 winstrm -gdi32 msacm32 pkpd32 thunk32 wow32 -glaux nddeapi rasapi32 url wsock32 -glu32 netapi32 rpcdce4 user32 wst -icmp odbc32 rpcndr uuid -imm32 odbccp32 rpcns4 vdmdbg -kernel32 oldnames rpcrt4 version - -The regular setup allows you to use the option -mwindows on the -command line to include a set of the basic libraries (and also -make your program a GUI program instead of a console program), -including user32, gdi32 and, IIRC, comdlg32. - -Note that you should never include -lkernel32 on your link line -unless you are invoking ld directly. Do not include the same import -library twice on your link line. Finally, it is a good idea to -put import libraries last on your link line, or at least after -all the object files and static libraries that reference them. - -The first two are related to problems the linker has (as of b18 at least) -when import libraries are referenced twice. Tables get messed up and -programs crash randomly. The last point has to do with the fact that -gcc processes the files listed on the command line in sequence and -will only resolve references to libraries if they are given after -the file that makes the reference. - -@subsection How do I compile a Win32 executable that doesn't use Cygwin? - -The -mno-cygwin flag to gcc makes gcc link against standard Microsoft -DLLs instead of Cygwin. This is desirable for native Windows programs -that don't need a UNIX emulation layer. - -This is not to be confused with 'MinGW' (Minimalist GNU for Windows), -which is a completely separate effort. That project's home page is -@file{http://www.mingw.org/index.shtml}. - -@subsection Can I build a Cygwin program that does not require cygwin1.dll at runtime? - -No. If your program uses the Cygwin API, then your executable cannot -run without cygwin1.dll. In particular, it is not possible to -statically link with a Cygwin library to obtain an independent, -self-contained executable. - -If this is an issue because you intend to distribute your Cygwin -application, then you had better read and understand -@file{http://cygwin.com/licensing.html}, which explains the licensing -options. Unless you purchase a special commercial license from Red -Hat, then your Cygwin application must be Open Source. - -@subsection Can I link with both MSVCRT*.DLL and cygwin1.dll? - -No, you must use one or the other, they are mutually exclusive. - -@subsection How do I make the console window go away? - -The default during compilation is to produce a console application. -It you are writing a GUI program, you should either compile with --mwindows as explained above, or add the string -"-Wl,--subsystem,windows" to the GCC commandline. - -@subsection Why does make complain about a "missing separator"? - -This problem usually occurs as a result of someone editing a Makefile -with a text editor that replaces tab characters with spaces. Command -lines must start with tabs. This is not specific to Cygwin. - -@subsection Why can't we redistribute Microsoft's Win32 headers? - -Subsection 2.d.f of the `Microsoft Open Tools License agreement' looks -like it says that one may not "permit further redistribution of the -Redistributables to their end users". We take this to mean that we can -give them to you, but you can't give them to anyone else, which is -something that Cygnus (err... Red Hat) can't agree to. Fortunately, we -have our own Win32 headers which are pretty complete. - -@subsection How do I link against .lib files? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -1. Build a C file with a function table. Put all functions you intend -to use in that table. This forces the linker to include all the object -files from the .lib. Maybe there is an option to force LINK.EXE to -include an object file. -2. Build a dummy 'LibMain'. -3. Build a .def with all the exports you need. -4. Link with your .lib using link.exe. - -or - -1. Extract all the object files from the .lib using LIB.EXE. -2. Build a dummy C file referencing all the functions you need, either -with a direct call or through an initialized function pointer. -3. Build a dummy LibMain. -4. Link all the objects with this file+LibMain. -5. Write a .def. -6. Link. - -You can use these methods to use MSVC (and many other runtime libs) -with Cygwin development tools. - -Note that this is a lot of work (half a day or so), but much less than -rewriting the runtime library in question from specs... - -(thanks to Jacob Navia (root@@jacob.remcomp.fr) for this explanation) - -@subsection How do I rebuild the tools on my NT box? - -@strong{Note:} You must build in a directory @emph{outside} the source -tree. - -Assuming that you have the src installed as /src, will build in -the directory /obj, and want to install the tools in /install: - -@example -bash -cd /obj -/src/configure --prefix=/install -v > configure.log 2>&1 -make > make.log 2>&1 -make install > install.log 2>&1 -@end example - -Normally, this will also attempt to build the documentation, which -additionally requires db2html, and possibly other tools, which are not -included in the Cygwin distribution. You can get db2html as part of -docbook, from @file{http://sources.redhat.com/docbook-tools/}. - -To check a cygwin1.dll, run "make check" in the winsup/cygwin directory. -If that works, install everything @emph{except} the dll (if you can). -Then, close down all cygwin programs (including bash windows, inetd, -etc.), save your old dll, and copy the new dll to @emph{all} the -places where the old dll was (if there is more than one on your -machine). Then start up a bash window and see what happens. (Or better, -run a cygwin program from the Windows command prompt.) - -If you get the error "shared region is corrupted" it means that two -different versions of cygwin1.dll are running on your machine at the -same time. - -@subsection How can I compile a powerpc NT toolchain? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -Unfortunately, this will be difficult. It hasn't been built for -some time (late 1996) since Microsoft has dropped development of -powerpc NT. Exception handling/signals support semantics/args have been -changed for x86 and not updated for ppc so the ppc specific support would -have to be rewritten. We don't know of any other incompatibilities. -Please send us patches if you do this work! - -@subsection How can I compile an Alpha NT toolchain? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -We have not ported the tools to Alpha NT and do not have plans to -do so at the present time. We would be happy to add support -for Alpha NT if someone contributes the changes to us. - -@subsection How can I adjust the heap/stack size of an application? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -Pass heap/stack linker arguments to gcc. To create foo.exe with -a heap size of 1024 and a stack size of 4096, you would invoke -gcc as: - -@code{gcc -Wl,--heap,1024,--stack,4096 -o foo foo.c} - -@subsection How can I find out which dlls are needed by an executable? - -@samp{objdump -p} provides this information, but is rather verbose. - -@samp{cygcheck} will do this much more concisely, and operates -recursively, provided the command is in your path. - -Note there is currently a bug in cygcheck in that it will not report -on a program in a Windows system dir (e.g., C:\Windows or C:\WINNT) even -if it's in your path. To work around this, supply the full Win32 path -to the executable, including the .exe extension: - -@example -cygcheck c:\\winnt\\system32\\cmd.exe -@end example - -(Note the windows path separator must be escaped if this is typed in -bash.) - -@subsection How do I build a DLL? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -There's documentation that explains the process on the main Cygwin -project web page (http://cygwin.com/). - -@subsection How can I set a breakpoint at MainCRTStartup? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -Set a breakpoint at *0x401000 in gdb and then run the program in -question. - -@subsection How can I build a relocatable dll? - -@strong{(Please note: This section has not yet been updated for the -latest net release. However, there was a discussion on the cygwin -mailing list recently that addresses this issue. Read -@file{http://cygwin.com/ml/cygwin/2000-06/msg00688.html} and -related messages.)} - -You must execute the following sequence of five commands, in this -order: - -@example -$(LD) -s --base-file BASEFILE --dll -o DLLNAME OBJS LIBS -e ENTRY - -$(DLLTOOL) --as=$(AS) --dllname DLLNAME --def DEFFILE \ - --base-file BASEFILE --output-exp EXPFILE - -$(LD) -s --base-file BASEFILE EXPFILE -dll -o DLLNAME OBJS LIBS -e ENTRY - -$(DLLTOOL) --as=$(AS) --dllname DLLNAME --def DEFFILE \ - --base-file BASEFILE --output-exp EXPFILE - -$(LD) EXPFILE --dll -o DLLNAME OBJS LIBS -e ENTRY -@end example - -In this example, $(LD) is the linker, ld. - -$(DLLTOOL) is dlltool. - -$(AS) is the assembler, as. - -DLLNAME is the name of the DLL you want to create, e.g., tcl80.dll. - -OBJS is the list of object files you want to put into the DLL. - -LIBS is the list of libraries you want to link the DLL against. For -example, you may or may not want -lcygwin. You may want -lkernel32. -Tcl links against -lcygwin -ladvapi32 -luser32 -lgdi32 -lcomdlg32 --lkernel32. - -DEFFILE is the name of your definitions file. A simple DEFFILE would -consist of ``EXPORTS'' followed by a list of all symbols which should -be exported from the DLL. Each symbol should be on a line by itself. -Other programs will only be able to access the listed symbols. - -BASEFILE is a temporary file that is used during this five stage -process, e.g., tcl.base. - -EXPFILE is another temporary file, e.g., tcl.exp. - -ENTRY is the name of the function which you want to use as the entry -point. This function should be defined using the WINAPI attribute, -and should take three arguments: - int WINAPI startup (HINSTANCE, DWORD, LPVOID) - -This means that the actual symbol name will have an appended @@12, so if -your entry point really is named @samp{startup}, the string you should -use for ENTRY in the above examples would be @samp{startup@@12}. - -If your DLL calls any Cygwin API functions, the entry function will need -to initialize the Cygwin impure pointer. You can do that by declaring -a global variable @samp{_impure_ptr}, and then initializing it in the -entry function. Be careful not to export the global variable -@samp{_impure_ptr} from your DLL; that is, do not put it in DEFFILE. - -@example -/* This is a global variable. */ -struct _reent *_impure_ptr; -extern struct _reent *__imp_reent_data; - -int entry (HINSTANT hinst, DWORD reason, LPVOID reserved) -@{ - _impure_ptr = __imp_reent_data; - /* Whatever else you want to do. */ -@} -@end example - -You may put an optional `--subsystem windows' on the $(LD) lines. The -Tcl build does this, but I admit that I no longer remember whether -this is important. Note that if you specify a --subsytem flag to ld, -the -e entry must come after the subsystem flag, since the subsystem flag -sets a different default entry point. - -You may put an optional `--image-base BASEADDR' on the $(LD) lines. -This will set the default image base. Programs using this DLL will -start up a bit faster if each DLL occupies a different portion of the -address space. Each DLL starts at the image base, and continues for -whatever size it occupies. - -Now that you've built your DLL, you may want to build a library so -that other programs can link against it. This is not required: you -could always use the DLL via LoadLibrary. However, if you want to be -able to link directly against the DLL, you need to create a library. -Do that like this: - -$(DLLTOOL) --as=$(AS) --dllname DLLNAME --def DEFFILE --output-lib LIBFILE - -$(DLLTOOL), $(AS), DLLNAME, and DEFFILE are the same as above. Make -sure you use the same DLLNAME and DEFFILE, or things won't work right. - -LIBFILE is the name of the library you want to create, e.g., -libtcl80.a. You can then link against that library using something -like -ltcl80 in your linker command. - -@subsection How can I debug what's going on? - -You can debug your application using @code{gdb}. Make sure you -compile it with the -g flag! If your application calls functions in -MS dlls, gdb will complain about not being able to load debug information -for them when you run your program. This is normal since these dlls -don't contain debugging information (and even if they did, that debug -info would not be compatible with gdb). - -@subsection Can I use a system trace mechanism instead? - -Yes. You can use the @code{strace.exe} utility to run other cygwin -programs with various debug and trace messages enabled. For information -on using @code{strace}, see the Cygwin User's Guide or the file -@code{winsup/utils/utils.sgml}. - -@subsection Why doesn't gdb handle signals? - -Unfortunately, there is only minimal signal handling support in gdb -currently. Signal handling only works with Windows-type signals. -SIGINT may work, SIGFPE may work, SIGSEGV definitely does. You cannot -'stop', 'print' or 'nopass' signals like SIGUSR1 or SIGHUP to the -process being debugged. - -@subsection The linker complains that it can't find something. - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -A common error is to put the library on the command line before -the thing that needs things from it. - -This is wrong @code{gcc -lstdc++ hello.cc}. -This is right @code{gcc hello.cc -lstdc++}. - -@subsection I use a function I know is in the API, but I still get a link error. - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -The function probably isn't declared in the header files, or -the UNICODE stuff for it isn't filled in. - -@subsection Can you make DLLs that are linked against libc ? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -Yes. - -@subsection Where is malloc.h? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -Include stdlib.h instead of malloc.h. - -@subsection Can I use my own malloc? - -If you define a function called @code{malloc} in your own code, and link -with the DLL, the DLL @emph{will} call your @code{malloc}. Needless to -say, you will run into serious problems if your malloc is buggy. - -If you run any programs from the DOS command prompt, rather than from in -bash, the DLL will try and expand the wildcards on the command line. -This process uses @code{malloc} @emph{before} your main line is started. -If you have written your own @code{malloc} to need some initialization -to occur after @code{main} is called, then this will surely break. - -Moreover, there is an outstanding issue with @code{_malloc_r} in -@code{newlib}. This re-entrant version of @code{malloc} will be called -directly from within @code{newlib}, by-passing your custom version, and -is probably incompatible with it. But it may not be possible to replace -@code{_malloc_r} too, because @code{cygwin1.dll} does not export it and -Cygwin does not expect your program to replace it. This is really a -newlib issue, but we are open to suggestions on how to deal with it. - -@subsection Can I mix objects compiled with msvc++ and gcc? - -Yes, but only if you are combining C object files. MSVC C++ uses a -different mangling scheme than GNU C++, so you will have difficulties -combining C++ objects. - -@subsection Can I use the gdb debugger to debug programs built by VC++? - -No, not for full (high level source language) debugging. -The Microsoft compilers generate a different type of debugging -symbol information, which gdb does not understand. - -However, the low-level (assembly-type) symbols generated by -Microsoft compilers are coff, which gdb DOES understand. -Therefore you should at least be able to see all of your -global symbols; you just won't have any information about -data types, line numbers, local variables etc. - -@subsection Where can I find info on x86 assembly? - -CPU reference manuals for Intel's current chips are available in -downloadable PDF form on Intel's web site: - -@file{http://developer.intel.com/design/pro/manuals/} - -@subsection Shell scripts aren't running properly from my makefiles? - -If your scripts are in the current directory, you must have @samp{.} -(dot) in your $PATH. (It is not normally there by default.) Otherwise, -you would need to add /bin/sh in front of each and every shell script -invoked in your Makefiles. - -@subsection What preprocessor do I need to know about? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -We use _WIN32 to signify access to the Win32 API and __CYGWIN__ for -access to the Cygwin environment provided by the dll. - -We chose _WIN32 because this is what Microsoft defines in VC++ and -we thought it would be a good idea for compatibility with VC++ code -to follow their example. We use _MFC_VER to indicate code that should -be compiled with VC++. - -@subsection Where can I get f77 and objc components for B20 EGCS 1.1? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -B20-compatible versions of the f77 and objc components are available -from @file{http://www.xraylith.wisc.edu/~khan/software/gnu-win32/}. - -@subsection How should I port my Unix GUI to Windows? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -There are two basic strategies for porting Unix GUIs to Windows. - -The first is to use a portable graphics library such as tcl/tk, X11, or -V (and others?). Typically, you will end up with a GUI on Windows that -requires some runtime support. With tcl/tk, you'll want to include the -necessary library files and the tcl/tk DLLs. In the case of X11, you'll -need everyone using your program to have an X11 server installed. - -The second method is to rewrite your GUI using Win32 API calls (or MFC -with VC++). If your program is written in a fairly modular fashion, you -may still want to use Cygwin if your program contains a lot of shared -(non-GUI-related) code. That way you still gain some of the portability -advantages inherent in using Cygwin. - -@subsection Why not use DJGPP ? - -DJGPP is a similar idea, but for DOS instead of Win32. DJGPP uses a -"DOS extender" to provide a more reasonable operating interface for its -applications. The Cygwin toolset doesn't have to do this since all of -the applications are native WIN32. Applications compiled with the -Cygwin tools can access the Win32 API functions, so you can write -programs which use the Windows GUI. - -You can get more info on DJGPP by following -@file{http://www.delorie.com/}. diff --git a/winsup/doc/how-resources.texinfo b/winsup/doc/how-resources.texinfo deleted file mode 100644 index c1236f7bc..000000000 --- a/winsup/doc/how-resources.texinfo +++ /dev/null @@ -1,123 +0,0 @@ -@section Where can I get more information? - -@subsection Where's the documentation? - -If you have installed Cygwin, you can find lots of documentation in -@samp{/usr/doc/}. Many packages ship with standard documentation, you -can find this in a directory @samp{/usr/doc/@emph{package_name}}. In -addition, some packages have Cygwin specific instructions in a file -@samp{/usr/doc/Cygwin/@emph{package_name}.README}. - -There are links to quite a lot of it on the main Cygwin project web -page: @file{http://cygwin.com/}. Be sure to at least -read any 'Release Notes' or 'Readme' or 'read this' links on the main -web page, if there are any. - -There is a comprehensive Cygwin User's Guide at -@file{http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html} -and an API Reference at -@file{http://cygwin.com/cygwin-api/cygwin-api.html}. - -There is an interesting paper about Cygwin from the 1998 USENIX Windows -NT Workshop Proceedings at -@file{http://cygwin.com/usenix-98/cygwin.html}. - -You can find documentation for the individual GNU tools at -@file{http://www.fsf.org/manual/}. (You should read GNU manuals from a -local mirror, check @file{http://www.fsf.org/server/list-mirrors.html} -for a list of them.) - -@subsection What Cygwin mailing lists can I join? - -Comprehensive information about the Cygwin mailing lists can be found at -@file{http://cygwin.com/lists.html}. - -To subscribe to the main list, send a message to -cygwin-subscribe@@cygwin.com. To unsubscribe from the -main list, send a message to cygwin-unsubscribe@@cygwin.com. -In both cases, the subject and body of the message are ignored. - -Similarly, to subscribe to the Cygwin annoucements list, send a message -to cygwin-announce-subscribe@@cygwin.com. To unsubscribe, -send a message to cygwin-announce-unsubscribe@@cygwin.com. - -If you are going to help develop the Cygwin library by volunteering for -the project, you will want to subscribe to the Cygwin developers list, -called cygwin-developers. If you are contributing to Cygwin tools & -applications, rather than the library itself, then you should subscribe -to cygwin-apps. The same mechanism as described for the first two lists -works for these as well. Both cygwin-developers and cygwin-apps are -by-approval lists. - -There is a searchable archive of the main mailing list at -@file{http://cygwin.com/ml/cygwin/}. There is an alternate -archive, also searchable, at @file{http://www.delorie.com/archives/}. -You can also search at @file{http://www.google.com/} and include -"cygwin" in the list of search terms. - -Cygwin mailing lists are not gatewayed to USENET, so anti-spam measures -in your email address are neither required nor appreciated. Also, avoid -sending HTML content to Cygwin mailing lists. - -@subsection Posting Guidelines (Or: Why won't you/the mailing list answer my questions?) - -If you follow these guidelines, you are much more likely to get a -helpful response from the Cygwin developers and/or the Cygwin community at -large: - -@itemize @bullet -@item Read the User's Guide and the FAQ first. -@item Check the mailing list archives. Your topic may have come up -before. (It may even have been answered!) Use the search facilities -at the links above. Try the alternate site if the main archive is not -producing search results. -@item Explain your problem carefully and completely. "I installed Blah -and it doesn't work!" wastes everybody's time. It provides no -information for anyone to help you with your problem. You should -provide: - -@itemize @bullet -@item A problem statement: How does it behave, how do you think it -should behave, and what makes you think it's broken? (Oh yeah, and what -is @emph{"it"}?) -@item Information about your Windows OS ("Win95 OSR2" or "NT4/SP3" or -"Win2K" or "Win98 SE" or ...). -@item Details about your installation process, or attempts at same. (Internet or -Directory install? If the former, exactly when and from what mirror? -If the latter, which packages did you download? Which version of -setup.exe? Any subsequent updates?) -@item Details about your Cygwin setup, accomplished by @emph{pasting} -the output of 'cygcheck -s -v -r' into your message. (Do not send the -output as a file attachment.) -@item A valid return address, so that a reply doesn't require manual editing of -the 'To:' header. -@end itemize - -@item Your message must be relevant to the list. Messages that are -@emph{not} directly related to Cygwin are considered off-topic and are -unwelcome. For example, the following are off-topic: - -@itemize @bullet -@item General programming language questions -@item General Windows programming questions -@item General UNIX shell programming questions -@item General application usage questions -@item How to make millions by working at home -@item Announcements from LaserJet toner cartridge suppliers -@end itemize - -@end itemize - -If you do not follow the above guidelines, you may still elicit a -response, but you may not appreciate it! - -Inquiries about support contracts and commercial licensing should go to -info@@cygnus.com. If you want to purchase the Cygwin 1.0 CD-ROM, visit -@file{http://www.cygnus.com/cygwin/} or write to -cygwin-info@@cygnus.com. While not strictly @emph{unappreciated} in the -main cygwin list, you'll get the information you need more quickly if -you write to the correct address in the first place. - -Beyond that, perhaps nobody has time to answer your question. Perhaps -nobody knows the answer. - diff --git a/winsup/doc/how-using.texinfo b/winsup/doc/how-using.texinfo deleted file mode 100644 index c9b9e59f9..000000000 --- a/winsup/doc/how-using.texinfo +++ /dev/null @@ -1,688 +0,0 @@ -@section Using Cygwin - -@subsection My application cannot locate cygncurses5.dll!!! - -If you upgraded recently, and suddenly vim (or some other Cygwin -application) fails with this message, it means that you did not follow -these instructions properly: -@file{http://cygwin.com/ml/cygwin-announce/2001/msg00124.html}. To -repair the damage, you must run setup.exe again, and re-install the -@samp{libncurses5} package. - -Note that setup won't show this option by default. In the ``Select -packages to install'' dialogue, click on the @samp{Full/Part} -button. This lists all packages, even those that are already -installed. Scroll down to locate the @samp{libncurses5} package. -Click on the ``cycle'' glyph until it says ``Reinstall''. Continue -with setup. - -@subsection Why is Cygwin suddenly @emph{so} slow? - -If you recently upgraded the @samp{cygwin} package and suddenly -@emph{every} command takes a @emph{very} long time, then you probably -have the obsolete @code{//c} notation in your PATH. This now means -the @emph{network share} @code{c}, which will slow things down -tremendously if it does not exist. See then next FAQ entry. - -@subsection Why doesn't //c (for C:) work anymore? - -(Similarly for any drive letter, e.g. @code{//z} for @code{Z:}) - -This ``feature'' has long been deprecated, and no longer works at all -in the latest release. As of release 1.3.3, @code{//c} now means the -@emph{network share} @code{c}. - -For a detailed discussion of why this change was made, and how deal -with it now, refer to -@file{http://sources.redhat.com/ml/cygwin/2001-09/msg00014.html}. - -@subsection How should I set my PATH? - -This is done for you in the file /etc/profile, which is sourced by bash -when you start it from the Desktop or Start Menu shortcut, created by -@code{setup.exe}. The line is - -@example - PATH="/usr/local/bin:/usr/bin:/bin:$PATH" -@end example - -Effectively, this @strong{prepends} /usr/local/bin and /usr/bin to your -Windows system path. If you choose to reset your PATH, say in -$HOME/.bashrc, or by editing etc/profile directly, then you should -follow this rule. You @strong{must} have @code{/usr/bin} in your PATH -@strong{before} any Windows system directories. (And you must not omit -the Windows system directories!) Otherwise you will likely encounter -all sorts of problems running Cygwin applications. - -@subsection Bash says "command not found", but it's right there! - -If you compile a program, you might find that you can't run it: - -@example - bash$ gcc -o hello hello.c - bash$ hello - bash: hello: command not found -@end example - -Unlike Windows, bash does not look for programs in @samp{.} (the current -directory) by default. You can add @samp{.} to your PATH (see above), -but this is not recommended (at least on UNIX) for security reasons. -Just tell bash where to find it, when you type it on the command line: - -@example - bash$ gcc -o hello hello.c - bash$ ./hello - Hello World! -@end example - -@subsection How do I convert between Windows and UNIX paths? - -Use the 'cygpath' utility. Type '@code{cygpath}' with no arguments to -get usage information. For example (on my installation): -@example - bash$ cygpath --windows ~/.bashrc - D:\starksb\.bashrc - bash$ cygpath --unix C:/cygwin/bin/cygwin.bat - /usr/bin/cygwin.bat - bash$ cygpath --unix C:\\cygwin\\bin\\cygwin.bat - /usr/bin/cygwin.bat -@end example -Note that bash interprets the backslash '\' as an escape character, so -you must type it twice in the bash shell if you want it to be recognized -as such. - -@subsection Why doesn't bash read my .bashrc file on startup? - -Your .bashrc is read from your home directory specified by the HOME -environment variable. It uses /.bashrc if HOME is not set. So you need -to set HOME correctly, or move your .bashrc to the top of the drive -mounted as / in Cygwin. - -@subsection How can I get bash filename completion to be case insensitive? - -Add the following to your @code{~/.bashrc} file: - -@example - shopt -s nocaseglob -@end example - -and add the following to your @code{~/.inputrc} file: - -@example - set completion-ignore-case on -@end example - -@subsection Can I use paths/filenames containing spaces in them? - -Cygwin does support spaces in filenames and paths. That said, some -utilities that use the library may not, since files don't typically -contain spaces in Unix. If you stumble into problems with this, you -will need to either fix the utilities or stop using spaces in filenames -used by Cygwin tools. - -In particular, bash interprets space as a word separator. You would have -to quote a filename containing spaces, or escape the space character. -For example: -@example - bash-2.03$ cd '/cygdrive/c/Program Files' -@end example -or -@example - bash-2.03$ cd /cygdrive/c/Program\ Files -@end example - -@subsection Why can't I cd into a shortcut to a directory? - -This is only valid up to but not including version 1.3.0: - -Cygwin does not follow MS Windows Explorer Shortcuts (*.lnk files). It -sees a shortcut as a regular file and this you cannot "cd" into it. - -Some people have suggested replacing the current symbolic link scheme -with shortcuts. The major problem with this is that .LNK files would -then be used to symlink Cygwin paths that may or may not be valid -under native Win32 non-Cygwin applications such as Explorer. - -Since version 1.3.0, Cygwin treats shortcuts as symlinks. - -@subsection I'm having basic problems with find. Why? - -Make sure you are using the find that came with Cygwin and that you -aren't picking up the Win32 find command instead. You can verify that -you are getting the right one by doing a "type find" in bash. - -If the path argument to find, including current directory (default), is -itself a symbolic link, then find will not traverse it unless you -specify the @samp{-follow} option. This behavior is different than most -other UNIX implementations, but is not likely to change. - -@subsection Where is the @samp{su} command? - -The @samp{su} command is not ported to Cygwin, so it is no longer -provided in the distribution. You may be able to use @samp{login} -instead, but you should read -@file{http://www.cygwin.com/ml/cygwin/2001-03/msg00337.html} first. - -If you have a copy of su, then it's from an old Cygwin distribution, and -it probably doesn't work properly anyway. - -@subsection Why doesn't man (or apropos) work? - -Even after installing the @samp{man} package, you get an error like this: - -@example - bash-2.04$ man man - Error executing formatting or display command. - System command (cd /usr/man ; (echo -e ".pl 1100i"; cat /usr/man/man1/man.1; echo ".pl \n(nlu+10") | /usr/bin/tbl | /usr/bin/groff -Tascii -mandoc | less -is) exited with status 32512. - No manual entry for man -@end example - -You also need /bin/sh, which is found in the @samp{ash} package. -You must install this too. - -In addition, before you can use @samp{man -k} or @samp{apropos}, you -must create the whatis database. Just run the command - -@example - /usr/sbin/makewhatis -@end example - -(it may take a minute to complete). - -@subsection Why doesn't chmod work? - -@samp{ntsec} will allow UNIX permissions in Windows NT on NTFS file systems. - -@samp{ntea} works on NTFS @emph{and} FAT but it creates a huge, -@strong{undeletable} file on FAT filesystems. - -(The @samp{ntsec} and @samp{ntea} settings are values for the -@samp{CYGWIN} environment variable. See the Cygwin User's Guide at -@file{http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html} for more -information on this variable and its settings.) - -There is no solution at all for Windows 9x. - -If you have an application that requires a certain permission mode on a -file, you may be able to work around this requirement by modifying the -application's source code. For a hint, based on work done by Corinna -Vinschen for OpenSSH, see this message from the cygwin mailing list: -@file{http://cygwin.com/ml/cygwin/2000-11/msg01176.html}. - -@subsection Why doesn't @samp{mkdir -p} work on a network share? - -Unfortunately, you cannot do something like this: - -@example -bash$ mkdir -p //MACHINE/Share/path/to/new/dir -mkdir: cannot create directory `//MACHINE': No such file or directory -@end example - -This is because mkdir checks for the existence of each directory on the -path, creating them as necessary. Since @samp{//MACHINE} is not a -directory (you can't cd to it either), mkdir tries to create it, and -fails. - -This might get fixed someday, but for now, you have to work around it: - -@example -bash$ cd //MACHINE/Share -bash$ mkdir -p path/to/new/dir -@end example - -@subsection Why doesn't my shell script work? - -There are two basic problems you might run into. One is the fact that -/bin/sh is really ash, and is missing some features you might expect -in /bin/sh, particularly if you are used to /bin/sh actually being -bash (Linux) or ksh (Tru64). For example: - -@itemize bullet -@item No job control -@item No getopts -@item No let -@item No functions exported -@item Must use `.' instead of `source' (true of sh and ksh too, not just ash) -@end itemize - -Or, it could be a permission problem, and Cygwin doesn't understand that -your script is executable. Because @samp{chmod} may not work (see FAQ -entry above), Cygwin must read the contents of files to determine if -they are executable. If your script does not start with - -@example - #! /bin/sh -@end example - -(or any path to a script interpreter, it does not have to be /bin/sh) -then Cygwin will not know it is an executable script. The Bourne shell -idiom - -@example - : - # This is the 2nd line, assume processing by /bin/sh -@end example - -also works. - -Note that you can use @samp{mount -x} to force Cygwin to treat all files -under the mount point as executable. This can be used for individual -files as well as directories. Then Cygwin will not bother to read files -to determine whether they are executable. - -@subsection How do I print under Cygwin? - -There is no working lp or lpr system as you would find on UNIX. - -Jason Tishler has written a couple of messages that explain how to use -a2ps (for nicely formatted text in PostScript) and ghostscript (to print -PostScript files on non-PostScript Windows printers). Start at -@file{http://cygwin.com/ml/cygwin/2001-04/msg00657.html}. Note that the -@samp{file} command is now available as part of Cygwin setup. - -Alternatively, on NT, you can use the Windows @samp{print} command. (It -does not seem to be available on Win9x.) Type - -@example - bash$ print /\? -@end example - -for usage instructions (note the @samp{?} must be escaped from the -shell). - -Finally, you can simply @samp{cat} the file to the printer's share name: - -@example - bash$ cat myfile > //host/printer -@end example - -You may need to press the formfeed button on your printer or append the -formfeed character to your file. - -@subsection Why don't international (8-bit) characters work? - -Before you can type international characters (£åäö) in bash, you must -add the following lines to your @code{~/.inputrc} file: - -@example - set meta-flag on - set convert-meta off - set output-meta on -@end example - -These are options to the @code{readline} library, which you can read -about in the @code{bash(1)} man page. - -@subsection Why don't cursor keys work under Win95/Win98? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -Careful examination shows that they not just non-functional, but -rather behave strangely, for example, with NumLock off, keys on numeric -keyboard work, until you press usual cursor keys, when even numeric -stop working, but they start working again after hitting alphanumeric -key, etc. This reported to happen on localized versions of Win98 and -Win95, and not specific to Cygwin (there're known cases of Alt+Enter -(fullscreen/windowed toggle) not working and shifts sticking with -other programs). The cause of this problem is Microsoft keyboard -localizer which by default installed in 'autoexec.bat'. Corresponding -line looks like: - -@example -keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys -@end example - -(That's for russian locale.) You should comment that line if you want -your keys working properly. Of course, this will deprive you of your -local alphabet keyboard support, so you should think about -another localizer. exUSSR users are of course knowledgeable of Keyrus -localizer, and it might work for other locales too, since it has keyboard -layout editor. But it has russian messages and documentation ;-( -Reference URL is http://www.hnet.ru/software/contrib/Utils/KeyRus/ -(note the you may need to turn off Windows logo for Keyrus to operate -properly). - -@subsection Is it OK to have multiple copies of the DLL? - -You should only have one copy of the Cygwin DLL on your system. If you -have multiple versions, they will conflict and cause problems. - -If you get the error "shared region is corrupted" or "shared region -version mismatch" it means you have multiple versions of cygwin1.dll -running at the same time. This could happen, for example, if you update -cygwin1.dll without exiting @emph{all} Cygwin apps (including inetd) -beforehand. - -If you're trying to find multiple versions of the DLL that are causing -this problem, reboot first, in case DLL's still loaded in memory are the -cause. Then use the Windows System find utility to search your whole -machine, not just components in your PATH (as 'type' would do) or -cygwin-mounted filesystems (as Cygwin 'find' would do). - -@subsection Where can I find "more"? - -If you are looking for the "more" pager, you should use the "less" pager -instead. - -@subsection Why isn't package XXXX available in Cygwin? (Or, why is your package so out of date?) - -Probably because there is nobody willing or able to maintain it. It -takes time, and the priority for the Cygwin Team is the Cygwin package. -The rest is a volunteer effort. Want to contribute? See below. - -@subsection How can I access other drives? - -You have some flexibility here. - -Cygwin has a builtin "cygdrive prefix" for drives that are not mounted. -You can access any drive, say Z:, as '/cygdrive/z/'. - -In some applications (notably bash), you can use the familiar windows -:/path/, using posix forward-slashes ('/') instead of Windows -backward-slashes ('\'). (But see the warning below!) This maps in the -obvious way to the Windows path, but will be converted internally to use -the Cygwin path, following mounts (default or explicit). For example: -@example - bash$ cd C:/Windows - bash$ pwd - /cygdrive/c/Windows -@end example -and -@example - bash$ cd C:/cygwin - bash$ pwd - / -@end example -for a default setup. You could also use backward-slashes in the -Windows path, but these would have to be escaped from the shell. - -@strong{Warning:} There is some ambiguity in going from a Windows path -to the posix path, because different posix paths, through different -mount points, could map to the same Windows directory. This matters -because different mount points may be binmode or textmode, so the -behavior of Cygwin apps will vary depending on the posix path used to -get there. - -You can avoid the ambiguity of Windows paths, and avoid typing -"/cygdrive", by explicitly mounting drives to posix paths. For example: -@example - bash$ mkdir /c - bash$ mount c:/ /c - bash$ ls /c -@end example -Then @samp{/cygdrive/c/Windows} becomes @samp{/c/Windows} which is a -little less typing. - -Note that you only need to mount drives once. The mapping is kept -in the registry so mounts stay valid pretty much indefinitely. -You can only get rid of them with umount, or the registry editor. - -The '-b' option to mount mounts the mountpoint in binary mode -("binmode") where text and binary files are treated equivalently. This -should only be necessary for badly ported Unix programs where binary -flags are missing from open calls. It is also the setting for /, -/usr/bin and /usr/lib in a default Cygwin installation. The default for -new mounts is text mode ("textmode"), which is also the mode for all -"cygdrive" mounts. - -You can change the default @samp{cygdrive} prefix and whether it is -binmode or textmode using the @code{mount} command. For example, -@example - bash$ mount -b --change-cygdrive-prefix cygdrive -@end example -will change all @code{/cygdrive/...} mounts to binmode. - -@subsection How can I copy and paste into Cygwin console windows? - -Under Windows NT, open the properties dialog of the console window. -The options contain a toggle button, named "Quick edit mode". It must -be ON. Save the properties. - -Under Windows 9x, open the properties dialog of the console window. -Select the Misc tab. Uncheck Fast Pasting. Check QuickEdit. - -You can also bind the insert key to paste from the clipboard by adding -the following line to your .inputrc file: -@example - "\e[2~": paste-from-clipboard -@end example - - -@subsection What does "mount failed: Device or resource busy" mean? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -This usually means that you are trying to mount to a location -already in use by mount. For example, if c: is mounted as '/' -and you try to mount d: there as well, you will get this error -message. First "umount" the old location, then "mount" the new one and -you should have better luck. - -If you are trying to umount '/' and are getting this message, you may -need to run @code{regedit.exe} and change the "native" key for the '/' -mount in one of the mount points kept under -HKEY_CURRENT_USER/Software/Red Hat, Inc./CYGWIN.DLL setup/ -where is the latest registry version associated with the -Cygwin library. - -@subsection How can I share files between Unix and Windows? - -During development, we have both Unix boxes running Samba and -NT/Windows 95/98 machines. We often build with cross-compilers -under Unix and copy binaries and source to the Windows system -or just toy with them directly off the Samba-mounted partition. -On dual-boot NT/Windows 9x machines, we usually use the FAT -filesystem so we can also access the files under Windows 9x. - -@subsection Are mixed-case filenames possible with Cygwin? - -Several Unix programs expect to be able to use to filenames -spelled the same way, but with different case. A prime example -of this is perl's configuration script, which wants @code{Makefile} and -@code{makefile}. WIN32 can't tell the difference between files with -just different case, so the configuration fails. - -In releases prior to beta 16, mount had a special mixed case option -which renamed files in such a way as to allow mixed case filenames. We -chose to remove the support when we rewrote the path handling code for -beta 16. The standard Windows apps -- explorer.exe, -cmd.exe/command.com, etc. -- do not distinguish filenames that differed -only in case, resulting in some (very) undesirable behavior. - -Sergey Okhapkin had maintained a mixed-case patch ('coolview') until -about B20.1, but this has not been updated to recent versions of Cygwin. - -@subsection What about DOS special filenames? - -Files cannot be named com1, lpt1, or aux (to name a few); either as -the root filename or as the extension part. If you do, you'll have -trouble. Unix programs don't avoid these names which can make things -interesting. E.g., the perl distribution has a file called -@code{aux.sh}. The perl configuration tries to make sure that -@code{aux.sh} is there, but an operation on a file with the magic -letters 'aux' in it will hang. - -@subsection When it hangs, how do I get it back? - -If something goes wrong and the tools hang on you for some reason (easy -to do if you try and read a file called aux.sh), first try hitting ^C to -return to bash or the cmd prompt. - -If you start up another shell, and applications don't run, it's a good -bet that the hung process is still running somewhere. Use the Task -Manager, pview, or a similar utility to kill the process. - -And, if all else fails, there's always the reset button/power switch. -This should never be necessary under Windows NT. - -@subsection Why the weird directory structure? - -Why do /lib and /usr/lib (and /bin, /usr/bin) point to the same thing? - -Why use mounts instead of symbolic links? - -Can I use a disk root (e.g., C:\) as Cygwin root? Why is this discouraged? - -After a new installation in the default location, your mount points will -look something like this: - -@example - bash$ mount - C:\cygwin\bin on /usr/bin type system (binmode) - C:\cygwin\lib on /usr/lib type system (binmode) - C:\cygwin on / type system (binmode) -@end example - -(Exactly what you see depends on what options you gave to @code{setup.exe}.) - -Note that /bin and /usr/bin point to the same location, as do /lib and -/usr/lib. This is intentional, and you should not undo these mounts -unless you @emph{really} know what you are doing. - -Various applications and packages may expect to be installed in /lib or -/usr/lib (similarly /bin or /usr/bin). Rather than distinguish between -them and try to keep track of them (possibly requiring the occasional -duplication or symbolic link), it was decided to maintain only one -actual directory, with equivalent ways to access it. - -Symbolic links had been considered for this purpose, but were dismissed -because they do not always work on Samba drives. Also, mounts are -faster to process because no disk access is required to resolve them. - -Note that non-cygwin applications will not observe Cygwin mounts (or -symlinks for that matter). For example, if you use WinZip to unpack the -tar distribution of a Cygwin package, it may not get installed to the -correct Cygwin path. @emph{So don't do this!} - -It is strongly recommended not to make the Cygwin root directory the -same as your drive's root directory, unless you know what you are doing -and are prepared to deal with the consequences. It is generally easier -to maintain the Cygwin hierarchy if it is isolated from, say, C:\. For -one thing, you avoid possible collisions with other (non-cygwin) -applications that may create (for example) \bin and \lib directories. -(Maybe you have nothing like that installed now, but who knows about -things you might add in the future?) - -@subsection How do anti-virus programs like Cygwin? - -Users have reported that NAI (formerly McAfee) VirusScan for NT (and -others?) is incompatible with Cygwin. This is because it tries to scan -the newly loaded shared memory in cygwin1.dll, which can cause fork() to -fail, wreaking havoc on many of the tools. (It is not confirmed that -this is still a problem, however.) - -There have been several reports of NAI VirusScan causing the system to -hang when unpacking tar.gz archives. This is surely a bug in VirusScan, -and should be reported to NAI. The only workaround is to disable -VirusScan when accessing these files. This can be an issue during -setup, and is discussed in that FAQ entry. - -Some users report a significant performance hit using Cygwin when their -anti-virus software is enabled. Rather than disable the anti-virus -software completely, it may be possible to specify directories whose -contents are exempt from scanning. In a default installation, this -would be @samp{@code{C:\cygwin\bin}}. Obviously, this could be -exploited by a hostile non-Cygwin program, so do this at your own risk. - -@subsection How do I run bash as a shell under NT Emacs? - -The Windows port of GNU Emacs (aka "NT emacs") uses the Windows command -shell by default. Also, since Emacs is not a Cygwin application, it has -no knowledge of Cygwin mounts. With those points in mind, you need to -add the following code to your ~/.emacs or ~/_emacs file in order to use -bash. This is particularly useful for the JDE package -(@file{http://sunsite.dk/jde/}). - -@example - ;; This assumes that Cygwin is installed in C:\cygwin (the - ;; default) and that C:\cygwin\bin is not already in your - ;; Windows Path (it generally should not be). - ;; - (setq exec-path (cons "C:/cygwin/bin" exec-path)) - (setenv "PATH" (concat "C:\\cygwin\\bin;" (getenv "PATH"))) - ;; - ;; NT-emacs assumes a Windows command shell, which you change - ;; here. - ;; - (setq process-coding-system-alist '(("bash" . undecided-unix))) - (setq w32-quote-process-args ?\") - (setq shell-file-name "bash") - (setenv "SHELL" shell-file-name) - (setq explicit-shell-file-name shell-file-name) - ;; - ;; This removes unsightly ^M characters that would otherwise - ;; appear in the output of java applications. - ;; - (add-hook 'comint-output-filter-functions - 'comint-strip-ctrl-m) -@end example - -@subsection info error "dir: No such file or directory" - -Cygwin packages install their info documentation in the /usr/info -directory. But you need to create a @code{dir} file there before the -standalone info program (probably @code{/usr/bin/info}) can be used to -read those info files. This is how you do it: -@example - bash$ cd /usr/info - bash$ for f in *.info ; do install-info $f dir ; done -@end example -This may generate warnings: -@example - install-info: warning: no info dir entry in `gzip.info' - install-info: warning: no info dir entry in `time.info' -@end example -The @code{install-info} command cannot parse these files, so you will -have to add their entries to @code{/usr/info/dir} by hand. - -@subsection Why do I get a message saying Out of Queue slots? - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -"Out of queue slots!" generally occurs when you're trying to remove -many files that you do not have permission to remove (either because -you don't have permission, they are opened exclusively, etc). What -happens is Cygwin queues up these files with the supposition that it -will be possible to delete these files in the future. Assuming that -the permission of an affected file does change later on, the file will -be deleted as requested. However, if too many requests come in to -delete inaccessible files, the queue overflows and you get the message -you're asking about. Usually you can remedy this with a quick chmod, -close of a file, or other such thing. (Thanks to Larry Hall for -this explanation). - -@subsection Why don't symlinks work on samba-mounted filesystems? - -Symlinks are marked with "system" file attribute. Samba does not -enable this attribute by default. To enable it, consult your Samba -documentation and then add these lines to your samba configuration -file: - -@smallexample - map system = yes - create mask = 0775 -@end smallexample - -Note that the 0775 can be anything as long as the 0010 bit is set. - -@subsection Why does df report sizes incorrectly. - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -There is a bug in the Win32 API function GetFreeDiskSpace that -makes it return incorrect values for disks larger than 2 GB in size. -Perhaps that may be your problem? - -@subsection Why doesn't Cygwin tcl/tk understand Cygwin paths? - -The versions of Tcl/Tk distributed with Cygwin (e.g. cygtclsh80.exe) are -not actually "Cygwin versions" of those tools. They are built with the -@samp{-mno-cygwin} option to @code{gcc}, which means they do not -understand Cygwin mounts or symbolic links. - -See the entry "How do I convert between Windows and UNIX paths?" -elsewhere in this FAQ. diff --git a/winsup/doc/how.texinfo b/winsup/doc/how.texinfo deleted file mode 100644 index 4c7385ba4..000000000 --- a/winsup/doc/how.texinfo +++ /dev/null @@ -1,6 +0,0 @@ -@chapter Question and Answers - -@include how-resources.texinfo -@include how-using.texinfo -@include how-api.texinfo -@include how-programming.texinfo diff --git a/winsup/doc/install.texinfo b/winsup/doc/install.texinfo deleted file mode 100644 index 11ab8c9a8..000000000 --- a/winsup/doc/install.texinfo +++ /dev/null @@ -1,271 +0,0 @@ -@chapter Installation Instructions -@section Contents - -Unlike previous net releases such as B20.1 and earlier, there is no -monolithic "full" or "usertools" installation. Rather, you can pick and -choose the packages you wish to install, and update them individually. - -For a searchable list of packages that can be installed with Cygwin, -see @file{http://cygwin.com/packages/}. - -Full source code is available for all packages and tools. - -There is one recommended way to install Cygwin, which is to use the GUI -installer @samp{setup.exe}. There are some variations on how you go -about that. - -Do it any other way, and you're on your own! That said, keep in mind -that the GUI installer is a "work in progress", so there might be a few -difficulties, especially if you are behind a firewall or have other -specific requirements. If something doesn't work right for you, and -it's not covered here or elsewhere, then by all means report it to the -mailing list. - -@section Installation using the @samp{setup.exe} program - -The @samp{setup.exe} program is the recommended way to install Cygwin, -but it is still a work in progress. Expect features and functionality -to change. For this reason, it is a good idea to note the version and -build time reported by @code{setup.exe} when you run it. This will help -diagnose problems, should you have any. Check the cygwin mailing list -for the latest news about @code{setup.exe}. - -@subsection Why not install in C:\? - -The @code{setup.exe} program will prompt you for a "root" directory. -The default is @samp{C:\cygwin}, but you can change it. You are urged not to -choose something like 'C:\' (the root directory on the system drive) for -your Cygwin root. If you do, then critical Cygwin system directories -like 'etc', 'lib' and 'bin' could easily be corrupted by other (non-Cygwin) -applications or packages that use \etc, \lib or \bin. Perhaps there is -no conflict now, but who knows what you might install in the future? -It's also just good common sense to segregate your Cygwin "filesystems" -from the rest of your Windows system disk. (In the past, there had been -genuine bugs that would cause problems for people who installed in C:\, -but we believe those are gone now.) - -@subsection Can I use the new setup to update a B18, B19, B20, B20.1 or CD-ROM (1.0) installation of Cygwin? - -No, you must start from scratch with the new setup. The overall -structure has changed so much that it would be silly to try to -accomodate old installations of Cygwin. You'll probably be much better -off with a whole new installation anyway. You may backup or rename your -old installation first, or just install the new one somewhere else. Be -sure to make note of your current mount table, because this will be -overwritten during the new setup. - -Once you've installed the latest net release, the new setup will update -just the individual packages that need it. - -@subsection Is @code{setup.exe}, or one of the packages, infected with a virus? - -Unlikely. Unless you can confirm it, please don't report it to the -mailing list. Anti-virus products have been known to detect false -positives when extracting compressed tar archives. If this causes -problems for you, consider disabling your anti-virus software when -running @code{setup}. Read the next entry for a fairly safe way to do -this. - -@subsection My computer hangs when I try to run @code{setup.exe}! - -Network Associates (formerly McAfee) products have been reported to -"hang" when extracting Cygwin tar archives. Consider disabling your -anti-virus software when running @code{setup}. The following -procedure should be a fairly safe way to do that: - -@enumerate -@item Download @code{setup.exe} and scan it explicitly. - -@item Turn off the anti-virus software. - -@item Run setup to download and extract all the tar files. - -@item Re-activate your anti-virus software and scan everything -in C:\cygwin (or wherever you chose to install). If you're concerned -about a malicious package, say if a mirror is compromised, then you -should scan your entire hard disk after running setup. - -@end enumerate - -This should be safe provided setup.exe is not substituted by something -malicious. - -@subsection What packages should I download? - -When using @samp{setup.exe} for the first time, the default is to -install a minimal subset of packages. If you want anything beyond -that, you will have to select it explicitly. See -@file{http://cygwin.com/packages/} for a searchable list of packages available. - -If you want to build programs, of course you'll need @samp{gcc}, -@samp{binutils}, @samp{make} and probably other packages from the -``Devel'' category. - -@subsection How do I just get everything? - -In the past, the default was to install everything, much to the -irritation of many users. Now the default is to install only a basic -core of packages. At the moment, there is no easy way to get -everything. You must do the following: - -@enumerate - -@item When the GUI says ``Select packages to install'', click on the -``View'' button until it says ``Full''. - -@item Wherever it says ``Skip'', click twice until it gives the -version number of the package. That means it will be downloaded and -installed. - -@end enumerate - -If a package you've selected for installation has prerequisites, those -will automatically be installed too. It's a lot of clicking but you -only the first time. Once you install a package, any subsequent -updates to that package will be installed by default. Note that new -packages are added rather frequently, so you'll have to regularly -check the list for any ``Skip'' entries if you want to stay up to date -with a complete installation. - -This should become much easier in a future version of @samp{setup.exe}. - -@subsection How much disk space does Cygwin require? - -That depends, obviously, on what you've chosen to download and install. -A full installation is probably 250-300MB installed, not including the -package archives themselves or the source code. - -After installation, the package archives remain in your ``Local Package -Directory'', by default the location of @code{setup.exe}. You may -conserve disk space by deleting the @code{contrib} and @code{latest} -subdirectories there. - -@subsection What if setup fails? - -First, make sure that you are using the latest version of -@code{setup.exe}. It's a work in progress, with improvements and -bugfixes being made often. The latest version is always available from -the 'Install Cygwin now' link on the Cygwin Home Page at -@file{http://cygwin.com/}. - -If you are downloading from the internet, setup will fail if it cannot -download the list of mirrors at -@file{http://cygwin.com/mirrors.html}. It could be that -the network is too busy. Similarly for an ftp download site that isn't -working. Try another mirror, or try again later. - -If setup refuses to download a package that you know needs to be -upgraded, try deleting that package's entry from /etc/setup. If you are -reacting quickly to an announcement on the mailing list, it could be -that the mirror you are using doesn't have the latest copy yet. Try -another mirror, or try again tomorrow. - -If setup has otherwise behaved strangely, check the files -@samp{setup.log} and @samp{setup.log.full} in the Cygwin root directory -(@code{C:\cygwin} by default). It may provide some clues as to what -went wrong and why. - -If you're still baffled, search the Cygwin mailing list for clues. -Others may have the same problem, and a solution may be posted there. -If that search proves fruitless, send a query to the Cygwin mailing -list. You must provide complete details in your query: version of -setup, options you selected, contents of setup.log and setup.log.full, -what happened that wasn't supposed to happen, etc. - -@subsection What's the difference between packages in @samp{latest} and @samp{contrib}? - -There is no difference as far as @code{setup.exe} is concerned, and -you should not worry about this either. The distinction is -historical, not practical. - -@subsection My Windows logon name has a space in it, will this cause problems? - -Most definitely yes! UNIX shells (and thus Cygwin) use the space -character as a word delimiter. Under certain circumstances, it is -possible to get around this with various shell quoting mechanisms, but -you are much better off if you can avoid the problem entirely. - -In particular, the environment variables @samp{USER} and @samp{HOME} are -set for you in /etc/profile. By default these derive from your Windows -logon name. You may edit this file and set them explicitly to something -without spaces. - -(If you use the @samp{login} package or anything else that reads -/etc/passwd, you may need to make corresponding changes there. See the -README file for that package.) - -@subsection How do I uninstall individual packages? - -Run @code{setup.exe} as you would to install packages. In the list of -packages to install, browse the relevant category or click on the -``View'' button to get a full listing. Click on the cycle glyph until -the action reads ``Uninstall''. Proceed by clicking ``Next''. - -@subsection How do I uninstall @strong{all} of Cygwin? - -Setup has no automatic uninstall facility. Just delete everything -manually: - -@itemize @bullet -@item Cygwin shortcuts on the Desktop and Start Menu - -@item The registry tree @samp{Software\Red Hat, Inc.} under -@code{HKEY_LOCAL_MACHINE} and/or @code{HKEY_CURRENT_USER}. - -@item Anything under the Cygwin root folder, @samp{C:\cygwin} by -default. - -@item Anything created by setup in its temporary working directory. - -@end itemize - -It's up to you to deal with other changes you made to your system, such -as installing the inetd service, altering system paths, etc. Setup -would not have done any of these things for you. - -@subsection Can I use setup to install snapshots? - -No. It used to be possible, but not any more. - -If experimenting with developer snapshots from -@file{http://cygwin.com/snapshots/}, you should generally install the -full @code{cygwin-inst-YYYYMMDD.tar.bz2} update, rather than just the -DLL, otherwise some components may be out of sync. Cygwin tar won't be -able to update @code{/usr/bin/cygwin1.dll}, but it should succeed with -everything else. The following steps should work: - -@enumerate - -@item Download the snapshot, and run: -@example - cd / - tar jxvf /posix/path/to/cygwin-inst-YYYYMMDD.tar.bz2 --exclude=usr/bin/cygwin1.dll - cd /tmp - tar jxvf /posix/path/to/cygwin-inst-YYYYMMDD.tar.bz2 usr/bin/cygwin1.dll -@end example - -@item After closing all Cygwin apps (see below), use Explorer or the -Windows command shell to move @code{C:\cygwin\tmp\usr\bin\cygwin1.dll} -to @code{C:\cygwin\bin\cygwin1.dll}. - -@end enumerate - -The obvious warnings about updating the cygwin package and using developer -snapshots apply: - -@enumerate - -@item Close all Cygwin apps, including shells and services -(e.g. inetd), before updating @code{cygwin1.dll}. You may have to -restart Windows to clear the DLL from memory. - -@item Snapshots are risky. They have not been tested. Use them -@strong{only} if there is a feature or bugfix that you need to try, -and you are willing to deal with any problems. - -@item If you cannot download a snapshot from the main ftp distribution -site, use a mirror, and look in the @samp{snapshots} directory. You may -have to hunt for one that has a copy of the latest snapshot. Start at -@file{http://cygwin.com/mirrors.html}. - -@end enumerate diff --git a/winsup/doc/legal.sgml b/winsup/doc/legal.sgml deleted file mode 100644 index 1190ecce1..000000000 --- a/winsup/doc/legal.sgml +++ /dev/null @@ -1,30 +0,0 @@ - - -Copyright © 1998,1999,2000,2001 Red Hat, Inc. - - - - diff --git a/winsup/doc/ntsec.sgml b/winsup/doc/ntsec.sgml deleted file mode 100644 index 1741b8046..000000000 --- a/winsup/doc/ntsec.sgml +++ /dev/null @@ -1,663 +0,0 @@ -NT security and the <literal>ntsec</literal> usage - -The design goal of the ntsec patch was to get a more UNIX like -permission structure based upon the security features of Windows NT. -To describe the changes, I will give a short overview of NT security -in chapter one. -Chapter two discusses the changes in ntsec related to privileges on -processes. -Chapter three shows the basics of UNIX like setting of -file permissions. -Chapter four talks about the advanced settings introduced in -release 1.1 -Chapter five illustrates the permission mapping leak of Windows NT. -Chapter six describes the new support of a setuid concept introduced -with release 1.1.3. - -Chapter six describes in short the new acl API since release 1.1 - -The setting of UNIX like object permissions is controlled by the new -CYGWIN variable setting (no)ntsec. - -NT security - -The NT security allows a process to allow or deny access of -different kind to `objects'. `Objects' are files, processes, -threads, semaphores, etc. - -The main data structure of NT security is the `security descriptor' -(SD) structure. It explains the permissions, that are granted (or denied) -to an object and contains information, that is related to so called -`security identifiers' (SID). - -A SID is a unique identifier for users, groups and domains. -SIDs are comparable to UNIX UIDs and GIDs, but are more complicated -because they are unique across networks. Example: - -SID of a system `foo': - - - S-1-5-21-165875785-1005667432-441284377 - - -SID of a user `johndoe' of the system `foo': - - - S-1-5-21-165875785-1005667432-441284377-1023 - - -The above example shows the convention for printing SIDs. The leading -`S' should show that it is a SID. The next number is a version number which -is always 1. The next number is the so called `top-level authority' that -identifies the source that issued the SID. - -While each system in a NT network has it's own SID, the situation -is modified in NT domains: The SID of the domain controller is the -base SID for each domain user. If an NT user has one account as domain -user and another account on his local machine, this accounts are under -any circumstances DIFFERENT, regardless of the usage of the same user -name and password! - -SID of a domain `bar': - - - S-1-5-21-186985262-1144665072-740312968 - - -SID of a user `johndoe' in the domain `bar': - - - S-1-5-21-186985262-1144665072-740312968-1207 - - -The last part of the SID, the so called `relative identifier' (RID), -is by default used as UID and/or GID under cygwin. As the name and the -above example implies, this id is unique only relative to one system or -domain. - -Note, that it's possible, that an user has the same RID on two -different systems. The resulting SIDs are nevertheless different, so -the SIDs are representing different users in an NT network. - -There is a big difference between UNIX IDs and NT SIDs, the existence of -the so called `well known groups'. For example UNIX has no GID for the -group of `all users'. NT has an SID for them, called `Everyone' in the -English versions. The SIDs of well-known groups are not unique across -an NT network but their meanings are unmistakable. -Examples of well-known groups: - - -everyone S-1-1-0 -creator/owner S-1-3-0 -batch process (via `at') S-1-5-3 -authenticated users S-1-5-11 -system S-1-5-18 - - -The last important group of SIDs are the `predefined groups'. This -groups are used mainly on systems outside of domains to simplify the -administration of user permissions. The corresponding SIDs are not unique -across the network so they are interpreted only locally: - - -administrators S-1-5-32-544 -users S-1-5-32-545 -guests S-1-5-32-546 -... - - -Now, how are permissions given to objects? A process may assign an SD -to the object. The SD of an object consists of three parts: - - -the SID of the owner -the SID of the group -a list of SIDs with their permissions, called -`access control list' (ACL) - - -UNIX is able to create three different permissions, the permissions -for the owner, for the group and for the world. In contrast the ACL -has a potentially infinite number of members. Every member is a so called -`access control element' (ACE). An ACE contains three parts: - - -the type of the ACE -permissions, described with a DWORD -the SID, for which the above mentioned permissions are -set - - -The two important types of ACEs are the `access allowed ACE' and the -`access denied ACE'. The ntsec patch only used `access allowed ACEs' up -to Cygwin version 1.1.0. Later versions use `access denied ACEs' as well -to reflect the UNIX permissions as good as possible. - -The possible permissions on objects are more detailed than in -UNIX. For example, the permission to delete an object is different -from the write permission. - -With the aforementioned method NT is able to grant or revoke permissions -to objects in a far more specific way. But what about cygwin? In a POSIX -environment it would be fine to have the security behavior of a POSIX -system. The NT security model is MOSTLY able to reproduce the POSIX model. -The ntsec patch tries to do this in cygwin. - -You ask "Mostly? Why mostly???" Because there's a leak in the NT model. -I will describe that in detail in chapter 4. - -Creating explicit object security is not that easy so you will often -see only two simple variations in use: - - -default permissions, computed by the operating system -each permission to everyone - - -For parameters to functions that create or open securable objects another -data structure is used, the `security attributes' (SA). This structure -contains an SD and a flag that specifies whether the returned handle -to the object is inherited to child processes or not. -This property is not important for the ntsec patch description so in -this document the difference between SDs and SAs is ignored. - - - -Process privileges - -Any process started under control of cygwin has a semaphore attached -to it, that is used for signaling purposes. The creation of this semaphore -can be found in sigproc.cc, function `getsem'. The first parameter to the -function call `CreateSemaphore' is an SA. Without ntsec patch this SA -assigns default security to the semaphore. There is a simple disadvantage: -Only the owner of the process may send signals to it. Or, in other words, -if the owner of the process is not a member of the administrators' group, -no administrator may kill the process! This is especially annoying, if -processes are started via service manager. - -The ntsec patch now assigns an SA to the process control semaphore, that -has each permission set for the user of the process, for the -administrators' group and for `system', which is a synonym for the -operating system itself. The creation of this SA is done by the function -`sec_user', that can be found in `shared.cc'. Each member of the -administrators' group is now allowed to send signals to any process -created in cygwin, regardless of the process owner. - -Moreover, each process now has the appropriate security settings, when -it is started via `CreateProcess'. You will find this in function -`spawn_guts' in module `spawn.cc'. The security settings for starting a -process in another user context have to add the sid of the new user, too. -In the case of the `CreateProcessAsUser' call, sec_user creates an SA with -an additional entry for the sid of the new user. - - - -File permissions - -If ntsec is turned on, file permissions are set as in UNIX. An SD is -assigned to the file containing the owner and group and ACEs for the -owner, the group and `Everyone'. - -The complete settings of UNIX like permissions can be found in the file -`security.cc'. The two functions `get_nt_attribute' and `set_nt_attribute' -are the main code. The reading and writing of the SDs is done by the -functions `read_sd' and `write_sd'. `write_sd' uses the function `BackupRead' -instead of the simpler function `SetFileSecurity' because the latter is -unable to set owners different from the caller. - -If you are creating a file `foo' outside of cygwin, you will see something -like the following on ls -ln: - -If your login is member of the administrators' group: - - rwxrwxrwx 1 544 513 ... foo - -if not: - - rwxrwxrwx 1 1000 513 ... foo - - -Note the user and group IDs. 544 is the UID of the administrators' group. -This is a `feature' :-P of WinNT. If one is a member of -the administrators' group, every file, that he has created is owned by the -administrators' group, instead by him. - -The second example shows the UID of the first user, that has been -created with NT's the user administration tool. The users and groups are -sequentially numbered, starting with 1000. Users and groups are using the -same numbering scheme, so a user and a group don't share the same ID. - -In both examples the GID 513 is of special interest. This GID is a -well known group with different naming in local systems and domains. -Outside of domains the group is named 'None' (`Kein' in German, `Aucun' -in French, etc.), in domains it is named 'Domain Users'. Unfortunately, -the group `None' is never shown in the user admin tool outside of domains! -This is very confusing but it seems that this has no negativ influences. - -To work correctly the ntsec patch depends on reasoned files -/etc/passwd/ and /etc/group. -In cygwin release 1.0 the names and the IDs must correspond to the -appropriate NT IDs! The IDs used in cygwin are the RID of the NT SID, as -mentioned earlier. -An SID of e.g. the user `corinna' on my NT workstation: - - - S-1-5-21-165875785-1005667432-441284377-1000 - - -Note the last number: It's the RID 1000, the cygwin's UID. - -Unfortunately, workstations and servers outside of domains are not -able to set primary groups! In these cases, where there is no correlation -of users to primary groups, NT returns 513 (None) as primary group, -regardless of the membership to existing local groups. - -when using mkpasswd -l -g on such systems, you -have to change the primary group by hand if `None' as primary group is -not what you want (and I'm sure, it's not what you want!) - -To get help in creating correct passwd and group files, look at -the following examples, that are part of my files. With the exception -of my personal user entry, all entries are well known entries. For a -better understanding, the names are translated to the equivalents of the -English NT version. - -/etc/passwd - -everyone:*:0:0::: -system:*:18:18::: -administrator::500:544::/home/root:/bin/bash -guest:*:501:546::: -administrators:*:544:544::/home/root: -corinna::1000:547:Corinna Vinschen:/home/corinna:/bin/tcsh - - - - -/etc/group - -everyone::0: -system::18: -none::513: -administrators::544: -users::545: -guests::546: -powerusers::547: - - - -Groups may be mentioned in the passwd file, too. This has two -advantages: - -Because NT assigns them to files as owners, a -ls -l is often better readable. -Moreover it's possible to assigned them to files as -owners with cygwin's chown. - - -The group `system' is the aforementioned synonym for the operating system -itself and is normally the owner of processes, that are started through -service manager. The same is true for files, that are created by -processes, which are started through service manager. - - - -New since Cygwin release 1.1 - -In Cygwin release 1.1 a new technique of using the -/etc/passwd and /etc/group - is introduced. - -Both files may now contain SIDs of users and groups. They -are saved in the last field of pw_gecos in /etc/passwd -and in the gr_passwd field in /etc/group. - -This has the following advantages: - -ntsec works better in domain environments. -Accounts (users and groups) may get another name in -cygwin than their NT account name. The name in /etc/passwd -or /etc/group is transparently used by cygwin -applications (eg. chown, chmod, -ls): - - -root::500:513::/home/root:/bin/sh - - -instead of - - -adminstrator::500:513::/home/root:/bin/sh - - -Caution: If you like to use the account as login account via -telnet etc. you have to remain the name unchanged or -you have to use the special version of login which is -part of the standard Cygwin distribution since 1.1. -Cygwin UIDs and GIDs are now not necessarily the RID -part of the NT SID: - - -root::0:513:S-1-5-21-54355234-56236534-345635656-500:/home/root:/bin/sh - - -instead of - - -root::500:513::/home/root:/bin/sh - - - -As in U*X systems UIDs and GIDs numbering scheme now -don't influence each other. So it's possible to have same Id's for a -user and a group: - -/etc/passwd: - -root::0:0:S-1-5-21-54355234-56236534-345635656-500:/home/root:/bin/sh - - - - -/etc/group: - -root:S-1-5-32-544:0: - - - - - -The tools mkpasswd and mkgroup -create the needed entries by default. If you don't want that you can use -the options -s or --no-sids. In this -case ntsec behaves like the previous version. - -Please note that the pw_gecos field in /etc/passwd -is defined as a comma seperated list. The SID has to be the last field! - -As aforementioned you are able to use cygwin account names different -from the NT account names. If you want to login thru `telnet' or something -else you have to use the special login. You may then -add another field to pw_gecos which contains the NT user name including -it's domain. So you are able to login as each domain user. The syntax -is easy: Just add an entry of the form U-ntdomain\ntusername to the pw_gecos -field. Note that the SID must still remain the last field in pw_gecos! - - -the_king::1:1:Elvis Presley,U-STILLHERE\elvis,S-1-5-21-1234-5678-9012-1000:/bin/sh - - -For a local user just drop the domain: - - -the_king::1:1:Elvis Presley,U-elvis,S-1-5-21-1234-5678-9012-1000:/bin/sh - - -In each case the password of the user is taken from the NT user -database, NOT from the passwd file! - - - -The mapping leak - -Now its time to point out the leak in the NT permissions. -The official documentation explains in short the following: - -access allow ACEs are accumulated regarding to the -group membership of the caller. -The order of ACEs is important. The system reads them -in sequence until either any needed right is denied or all needed rights -are granted. Later ACEs are then not taken into account. -All access denied ACEs _should_ precede any -access allowed ACE. - - -Note that the last rule is a preference, not a law. NT will correctly -deal with the ACL regardless of the sequence order. The second rule is -not modified to get the ACEs in the prefered order. - -Unfortunately the security tab of the NT4 explorer is completely -unable to deal with access denied ACEs while the explorer of W2K rearranges -the order of the ACEs before you can read them. Thank God, the sort order -remains unchanged if one presses the Cancel button. - -You still ask "Where is the leak?" NT ACLs are unable to reflect each -possible combination of POSIX permissions. Example: - - -rw-r-xrw- - - -1st try: - - -UserAllow: 110 -GroupAllow: 101 -OthersAllow: 110 - - -Hmm, because of the accumulation of allow rights the user may -execute because the group may execute. - -2st try: - - -UserDeny: 001 -GroupAllow: 101 -OthersAllow: 110 - - -Now the user may read and write but not execute. Better? No! -Unfortunately the group may write now because others may write. - -3rd try: - - -UserDeny: 001 -GroupDeny: 010 -GroupAllow: 001 -OthersAllow: 110 - - -Now the group may not write as intended but unfortunately the user may -not write anymore, too. How should this problem be solved? According to -the official rules a UserAllow has to follow the GroupDeny but it's -easy to see that this can never be solved that way. - -The only chance: - - -UserDeny: 001 -UserAllow: 010 -GroupDeny: 010 -GroupAllow: 001 -OthersAllow: 110 - - -Again: This works for both, NT4 and W2K. Only the GUIs aren't -able to deal with that order. - - - -New acl API - -For dealing with ACLs Cygwin now has the acl API as it's -implemented in newer versions of Solaris. The new data structure -for a single ACL entry (ACE in NT terminology) is defined in -sys/acl.h as: - - -typedef struct acl { - int a_type; /* entry type */ - uid_t a_id; /* UID | GID */ - mode_t a_perm; /* permissions */ -} aclent_t; - - -The a_perm member of the aclent_t type contains only the bits -for read, write and execute as in the file mode. If eg. read permission -is granted, all read bits (S_IRUSR, S_IRGRP, S_IROTH) are set. -CLASS_OBJ or MASK ACL entries are not fully implemented yet. - -The new API calls are - - -acl(2), facl(2) -aclcheck(3), -aclsort(3), -acltomode(3), aclfrommode(3), -acltopbits(3), aclfrompbits(3), -acltotext(3), aclfromtext(3) - - -Like in Solaris, Cygwin has two new commands for working with -ACLs on the command line: getfacl and -setfacl. - -Online man pages for the aforementioned commands and API calls -can be found on eg. http://docs.sun.com - - - -New setuid concept - -UNIX applications which have to switch the user context are using -the setuid and seteuid calls which -are not part of the Windows API. -Nevertheless these calls are supported under Windows NT/W2K since Cygwin -release 1.1.3. Because of the nature of NT security an application which -needs the ability has to be patched, though. - -NT uses so called `access tokens' to identify a user and it's -permissions. To switch the user context the application has to request -such an `access token'. This is typically done by calling the NT API -function LogonUser. The access token is returned and -either used in ImpersonateLoggedOnUser to change user -context of the current process or in CreateProcessAsUser -to change user context of a spawned child process. An important restriction -is that the application using LogonUser must have special -permissions: - - -"Act as part of the operating system" -"Replace process level token" -"Increase quotas" - - -Note that administrators do not have all that user rights set by default. - -Two new Cygwin calls are introduced to support porting -setuid applications with a minimum of effort. You only -have to care to give Cygwin the right access token and then you can call -seteuid or setuid as usual in POSIX -applications. The call to sexec is not needed -anymore. Porting a setuid application is illustrated by -a short example: - - - -/* First include all needed cygwin stuff. */ -#ifdef __CYGWIN__ -#include <windows.h> -#include <sys/cygwin.h> -/* Use the following define to determine the Windows version */ -#define is_winnt (GetVersion() < 0x80000000) -#endif - -[...] - - struct passwd *user_pwd_entry = getpwnam (username); - char *cleartext_password = getpass ("Password:"); - -[...] - -#ifdef __CYGWIN__ - /* Patch the typical password test. */ - if (is_winnt) - { - HANDLE token; - - /* Try to get the access token from NT. */ - token = cygwin_logon_user (user_pwd_entry, cleartext_password); - if (token == INVALID_HANDLE_VALUE) - error_exit; - /* Inform Cygwin about the new impersonation token. - Cygwin is able now, to switch to that user context by - setuid or seteuid calls. */ - cygwin_set_impersonation_token (token); - } - else -#endif /* CYGWIN */ - /* Use standard method for W9X as well. */ - hashed_password = crypt (cleartext_password, salt); - if (!user_pwd_entry || - strcmp (hashed_password, user_pwd_entry->pw_password)) - error_exit; - -[...] - - /* Everything else remains the same! */ - - setegid (user_pwd_entry->pw_gid); - seteuid (user_pwd_entry->pw_uid); - execl ("/bin/sh", ...); - - - -The new Cygwin call to retrive an access token is defined as follows: - - -#include <windows.h> -#include <sys/cygwin.h> - -HANDLE -cygwin_logon_user (struct passwd *pw, const char *cleartext_password) - - -You can call that function as often as you want for different user -logons and remeber the access tokens for further calls to the second function. - - -#include <windows.h> -#include <sys/cygwin.h> - -void -cygwin_set_impersonation_token (HANDLE hToken); - - - is the call to inform Cygwin about the user context to which further -calls to setuid/seteuid should switch to. -While you need always the correct access token to do a -setuid/seteuid to another users context, -you are always able to use setuid/seteuid -to return to your own user context by giving your own uid as parameter. - -If you have remembered several access tokens from calls to -cygwin_logon_user you can switch to different user -contexts by observing the following order: - - - - cygwin_set_impersonation_token (user1_token); - seteuid (user1_uid); - -[...] - - seteuid (own_uid); - cygwin_set_impersonation_token (user2_token); - seteuid (user2_uid); - -[...] - - seteuid (own_uid); - cygwin_set_impersonation_token (user1_token); - seteuid (user1_uid); - -etc. - - - - - - diff --git a/winsup/doc/overview.sgml b/winsup/doc/overview.sgml deleted file mode 100644 index ff4cf7392..000000000 --- a/winsup/doc/overview.sgml +++ /dev/null @@ -1,88 +0,0 @@ -Cygwin Overview - -What is it? - -The Cygwin tools are ports of the popular GNU development -tools and utilities for Windows NT and 9x. They function through the -use of the Cygwin library which provides the UNIX system calls and -environment that these programs require. - -With the tools installed, programmers may write Win32 -console or GUI applications that make use of the standard Microsoft -Win32 API and/or the Cygwin API. As a result, it is possible to -easily port many significant UNIX programs without the need for -extensive changes to the source code. This includes configuring and -building most of the available GNU software (including the development -tools included with the Cygwin distributions). Even if the -compiler tools are of little to no use to you, you may have -interest in the many standard UNIX utilities. They can be used both -from the bash shell (provided) or from the command.com. - - - -Are the Cygwin tools free software? - -Yes. Parts are GNU software (gcc, gas, ld, etc...), parts are -covered by the standard X11 license, some of it is public domain, -some of it was written by Red Hat and placed under the GPL. None of it -is shareware. You don't have to pay anyone to use it but you should be -sure to read the copyright section of the FAQ more more information on -how the GNU General Public License may affect your use of these -tools. If you intend to port a proprietary application using the Cygwin -library, you may want the Cygwin proprietary-use license. -For more information about the proprietary-use license, please go to -http://www.redhat.com/software/tools/cygwin/ -. Customers of the native Win32 GNUPro should feel free to submit bug -reports and ask questions through the normal channels. All other -questions should be sent to the project mailing list -cygwin@cygwin.com. - - - -A brief history of the Cygwin project - -The first thing done was to enhance the development tools (gcc, -gdb, gas, et al) so that they could generate/interpret Win32 native -object files. - -The next task was to port the tools to Win NT/9x. We could have -done this by rewriting large portions of the source to work within the -context of the Win32 API. But this would have meant spending a huge -amount of time on each and every tool. Instead, we took a -substantially different approach by writing a shared library -(the Cygwin DLL) that adds the necessary UNIX-like functionality -missing from the Win32 API (fork, spawn, signals, select, sockets, -etc.). We call this new interface the Cygwin API. Once written, it -was possible to build working Win32 tools using UNIX-hosted -cross-compilers, linking against this library. - -From this point, we pursued the goal of producing native tools -capable of rebuilding themselves under Windows 9x and NT (this is -often called self-hosting). Since neither OS ships with standard UNIX -user tools (fileutils, textutils, bash, etc...), we had to get the GNU -equivalents working with the Cygwin API. Most of these tools were -previously only built natively so we had to modify their configure -scripts to be compatible with cross-compilation. Other than the -configuration changes, very few source-level changes had to be -made. Running bash with the development tools and user tools in place, -Windows 9x and NT look like a flavor of UNIX from the perspective of -the GNU configure mechanism. Self hosting was achieved as of the beta -17.1 release. - - - -DOCTOOL-INSERT-ov-ex-unix -DOCTOOL-INSERT-ov-ex-win -Highlights of Cygwin Functionality -DOCTOOL-INSERT-ov-hi-intro -DOCTOOL-INSERT-ov-hi-win9xnt -DOCTOOL-INSERT-ov-hi-perm -DOCTOOL-INSERT-ov-hi-files -DOCTOOL-INSERT-ov-hi-textvsbinary -DOCTOOL-INSERT-ov-hi-ansiclib -DOCTOOL-INSERT-ov-hi-process -DOCTOOL-INSERT-ov-hi-signals -DOCTOOL-INSERT-ov-hi-sockets -DOCTOOL-INSERT-ov-hi-select - - diff --git a/winsup/doc/overview2.sgml b/winsup/doc/overview2.sgml deleted file mode 100644 index 755b4c42c..000000000 --- a/winsup/doc/overview2.sgml +++ /dev/null @@ -1,322 +0,0 @@ -Expectations for UNIX Programmers - -Developers coming from a UNIX background will find a set of utilities -they are already comfortable using, including a working UNIX shell. The -compiler tools are the standard GNU compilers most people will have previously -used under UNIX, only ported to the Windows host. Programmers wishing to port -UNIX software to Windows NT or 9x will find that the Cygwin library provides -an easy way to port many UNIX packages, with only minimal source code -changes. - - -Expectations for Windows Programmers -Developers coming from a Windows background will find a set of tools capable -of writing console or GUI executables that rely on the Microsoft Win32 API. -The linker and dlltool utility may be used to write Windows Dynamically Linked -Libraries (DLLs). The resource compiler "windres" is also provided with the -native Windows GNUPro tools. All tools may be used from the Microsoft command -line prompt, with full support for normal Windows pathnames. - - -Introduction When a binary linked -against the library is executed, the Cygwin DLL is loaded into the -application's text segment. Because we are trying to emulate a UNIX kernel -which needs access to all processes running under it, the first Cygwin DLL to -run creates shared memory areas that other processes using separate instances -of the DLL can access. This is used to keep track of open file descriptors and -assist fork and exec, among other purposes. In addition to the shared memory -regions, every process also has a per_process structure that contains -information such as process id, user id, signal masks, and other similar -process-specific information. - -The DLL is implemented using the Win32 API, which allows it to run on all -Win32 hosts. Because processes run under the standard Win32 subsystem, they -can access both the UNIX compatibility calls provided by Cygwin as well as -any of the Win32 API calls. This gives the programmer complete flexibility in -designing the structure of their program in terms of the APIs used. For -example, they could write a Win32-specific GUI using Win32 API calls on top of -a UNIX back-end that uses Cygwin. - -Early on in the development process, we made the important design -decision that it would not be necessary to strictly adhere to existing UNIX -standards like POSIX.1 if it was not possible or if it would significantly -diminish the usability of the tools on the Win32 platform. In many cases, an -environment variable can be set to override the default behavior and force -standards compliance. - - -Supporting both Windows NT and 9x -While Windows 95 and Windows 98 are similar enough to each other that we -can safely ignore the distinction when implementing Cygwin, Windows NT is an -extremely different operating system. For this reason, whenever the DLL is -loaded, the library checks which operating system is active so that it can act -accordingly. - -In some cases, the Win32 API is only different for -historical reasons. In this situation, the same basic functionality is -available under Windows 9x and NT but the method used to gain this -functionality differs. A trivial example: in our implementation of -uname, the library examines the sysinfo.dwProcessorType structure -member to figure out the processor type under Windows 9x. This field -is not supported in NT, which has its own operating system-specific -structure member called sysinfo.wProcessorLevel. - -Other differences between NT and 9x are much more fundamental in -nature. The best example is that only NT provides a security model. - - -Permissions and Security -Windows NT includes a sophisticated security model based on Access -Control Lists (ACLs). Cygwin maps Win32 file ownership and permissions to the -more standard, older UNIX model by default. Cygwin version 1.1 introduces -support for ACLs according to the system calls used on newer versions of -Solaris. This ability is used when the `ntsec' feature is switched on which -is described in another chapter. -The chmod call maps UNIX-style permissions -back to the Win32 equivalents. Because many programs expect to be able to find -the /etc/passwd and /etc/group files, we provide utilities that can be used to -construct them from the user and group information provided by the operating -system. - -Under Windows NT, the administrator is permitted to chown files. There -is no mechanism to support the setuid concept or API call since Cygwin version -1.1.2. With version 1.1.3 Cygwin introduces a mechanism for setting real -and effective UIDs under Windows NT/W2K. This is described in the ntsec -section. - -Under Windows 9x, the situation is considerably different. Since a -security model is not provided, Cygwin fakes file ownership by making all -files look like they are owned by a default user and group id. As under NT, -file permissions can still be determined by examining their read/write/execute -status. Rather than return an unimplemented error, under Windows 9x, the -chown call succeeds immediately without actually performing any action -whatsoever. This is appropriate since essentially all users jointly own the -files when no concept of file ownership exists. - -It is important that we discuss the implications of our "kernel" using -shared memory areas to store information about Cygwin processes. Because -these areas are not yet protected in any way, in principle a malicious user -could modify them to cause unexpected behavior in Cygwin processes. While -this is not a new problem under Windows 9x (because of the lack of operating -system security), it does constitute a security hole under Windows NT. -This is because one user could affect the Cygwin programs run by -another user by changing the shared memory information in ways that -they could not in a more typical WinNT program. For this reason, it -is not appropriate to use Cygwin in high-security applications. In -practice, this will not be a major problem for most uses of the -library. - - -File Access Cygwin supports -both Win32- and POSIX-style paths, using either forward or back slashes as the -directory delimiter. Paths coming into the DLL are translated from Win32 to -POSIX as needed. As a result, the library believes that the file system is a -POSIX-compliant one, translating paths back to Win32 paths whenever it calls a -Win32 API function. UNC pathnames (starting with two slashes) are -supported. - -The layout of this POSIX view of the Windows file system space is stored -in the Windows registry. While the slash ('/') directory points to the system -partition by default, this is easy to change with the Cygwin mount utility. -In addition to selecting the slash partition, it allows mounting arbitrary -Win32 paths into the POSIX file system space. Many people use the utility to -mount each drive letter under the slash partition (e.g. C:\ to /c, D:\ to /d, -etc...). - -The library exports several Cygwin-specific functions that can be used -by external programs to convert a path or path list from Win32 to POSIX or vice -versa. Shell scripts and Makefiles cannot call these functions directly. -Instead, they can do the same path translations by executing the cygpath -utility program that we provide with Cygwin. - -Win32 file systems are case preserving but case insensitive. Cygwin -does not currently support case distinction because, in practice, few UNIX -programs actually rely on it. While we could mangle file names to support case -distinction, this would add unnecessary overhead to the library and make it -more difficult for non-Cygwin applications to access those files. - -Symbolic links are emulated by files containing a magic cookie followed -by the path to which the link points. They are marked with the System -attribute so that only files with that attribute have to be read to determine -whether or not the file is a symbolic link. Hard links are fully supported -under Windows NT on NTFS file systems. On a FAT file system, the call falls -back to simply copying the file, a strategy that works in many cases. - -The inode number for a file is calculated by hashing its full Win32 path. -The inode number generated by the stat call always matches the one returned in -d_ino of the dirent structure. It is worth noting that the number produced by -this method is not guaranteed to be unique. However, we have not found this to -be a significant problem because of the low probability of generating a -duplicate inode number. - -Chroot is supported since release 1.1.3. Note that chroot isn't -supported native by Windows. This implies some restrictions. First of all, -the chroot call isn't a privileged call. Each user may call it. Second, the -chroot environment isn't safe against native windows processes. If you -want to support a chroot environment as, for example, by allowing an -anonymous ftp with restricted access, you'll have to care that only -native Cygwin applications are accessible inside of the chroot environment. -Since that applications are only using the Cygwin POSIX API to access the -file system their access can be restricted as it is intended. This includes -not only POSIX paths but Win32 paths (containing drive letter and/or -backslashes) and CIFS paths (//server/share or \\server\share) as well. - - -Text Mode vs. Binary Mode -Interoperability with other Win32 programs such as text editors was -critical to the success of the port of the development tools. Most Red Hat -customers upgrading from the older DOS-hosted toolchains expected the new -Win32-hosted ones to continue to work with their old development -sources. - -Unfortunately, UNIX and Win32 use different end-of-line terminators in -text files. Consequently, carriage-return newlines have to be translated on -the fly by Cygwin into a single newline when reading in text mode. The -control-z character is interpreted as a valid end-of-file character for a -similar reason. - -This solution addresses the compatibility requirement at the expense of -violating the POSIX standard that states that text and binary mode will be -identical. Consequently, processes that attempt to lseek through text files can -no longer rely on the number of bytes read as an accurate indicator of position -in the file. For this reason, the CYGWIN environment variable can be -set to override this behavior. - - -ANSI C Library -We chose to include Red Hat's own existing ANSI C library -"newlib" as part of the library, rather than write all of the lib C -and math calls from scratch. Newlib is a BSD-derived ANSI C library, -previously only used by cross-compilers for embedded systems -development. - -The reuse of existing free implementations of such things -as the glob, regexp, and getopt libraries saved us considerable -effort. In addition, Cygwin uses Doug Lea's free malloc -implementation that successfully balances speed and compactness. The -library accesses the malloc calls via an exported function pointer. -This makes it possible for a Cygwin process to provide its own -malloc if it so desires. - - -Process Creation -The fork call in Cygwin is particularly interesting because it -does not map well on top of the Win32 API. This makes it very -difficult to implement correctly. Currently, the Cygwin fork is a -non-copy-on-write implementation similar to what was present in early -flavors of UNIX. - -The first thing that happens when a parent process -forks a child process is that the parent initializes a space in the -Cygwin process table for the child. It then creates a suspended -child process using the Win32 CreateProcess call. Next, the parent -process calls setjmp to save its own context and sets a pointer to -this in a Cygwin shared memory area (shared among all Cygwin -tasks). It then fills in the child's .data and .bss sections by -copying from its own address space into the suspended child's address -space. After the child's address space is initialized, the child is -run while the parent waits on a mutex. The child discovers it has -been forked and longjumps using the saved jump buffer. The child then -sets the mutex the parent is waiting on and blocks on another mutex. -This is the signal for the parent to copy its stack and heap into the -child, after which it releases the mutex the child is waiting on and -returns from the fork call. Finally, the child wakes from blocking on -the last mutex, recreates any memory-mapped areas passed to it via the -shared area, and returns from fork itself. - -While we have some -ideas as to how to speed up our fork implementation by reducing the -number of context switches between the parent and child process, fork -will almost certainly always be inefficient under Win32. Fortunately, -in most circumstances the spawn family of calls provided by Cygwin -can be substituted for a fork/exec pair with only a little effort. -These calls map cleanly on top of the Win32 API. As a result, they -are much more efficient. Changing the compiler's driver program to -call spawn instead of fork was a trivial change and increased -compilation speeds by twenty to thirty percent in our -tests. - -However, spawn and exec present their own set of -difficulties. Because there is no way to do an actual exec under -Win32, Cygwin has to invent its own Process IDs (PIDs). As a -result, when a process performs multiple exec calls, there will be -multiple Windows PIDs associated with a single Cygwin PID. In some -cases, stubs of each of these Win32 processes may linger, waiting for -their exec'd Cygwin process to exit. - - -Signals -When -a Cygwin process starts, the library starts a secondary thread for -use in signal handling. This thread waits for Windows events used to -pass signals to the process. When a process notices it has a signal, -it scans its signal bitmask and handles the signal in the appropriate -fashion. - -Several complications in the implementation arise from the -fact that the signal handler operates in the same address space as the -executing program. The immediate consequence is that Cygwin system -functions are interruptible unless special care is taken to avoid -this. We go to some lengths to prevent the sig_send function that -sends signals from being interrupted. In the case of a process -sending a signal to another process, we place a mutex around sig_send -such that sig_send will not be interrupted until it has completely -finished sending the signal. - -In the case of a process sending -itself a signal, we use a separate semaphore/event pair instead of the -mutex. sig_send starts by resetting the event and incrementing the -semaphore that flags the signal handler to process the signal. After -the signal is processed, the signal handler signals the event that it -is done. This process keeps intraprocess signals synchronous, as -required by POSIX. - -Most standard UNIX signals are provided. Job -control works as expected in shells that support -it. - - -Sockets -Socket-related calls in Cygwin simply -call the functions by the same name in Winsock, Microsoft's -implementation of Berkeley sockets. Only a few changes were needed to -match the expected UNIX semantics - one of the most troublesome -differences was that Winsock must be initialized before the first -socket function is called. As a result, Cygwin has to perform this -initialization when appropriate. In order to support sockets across -fork calls, child processes initialize Winsock if any inherited file -descriptor is a socket. - -Unfortunately, implicitly loading DLLs -at process startup is usually a slow affair. Because many processes -do not use sockets, Cygwin explicitly loads the Winsock DLL the -first time it calls the Winsock initialization routine. This single -change sped up GNU configure times by thirty -percent. - - -Select -The UNIX select function is another -call that does not map cleanly on top of the Win32 API. Much to our -dismay, we discovered that the Win32 select in Winsock only worked on -socket handles. Our implementation allows select to function normally -when given different types of file descriptors (sockets, pipes, -handles, and a custom /dev/windows Windows messages -pseudo-device). - -Upon entry into the select function, the first -operation is to sort the file descriptors into the different types. -There are then two cases to consider. The simple case is when at -least one file descriptor is a type that is always known to be ready -(such as a disk file). In that case, select returns immediately as -soon as it has polled each of the other types to see if they are -ready. The more complex case involves waiting for socket or pipe file -descriptors to be ready. This is accomplished by the main thread -suspending itself, after starting one thread for each type of file -descriptor present. Each thread polls the file descriptors of its -respective type with the appropriate Win32 API call. As soon as a -thread identifies a ready descriptor, that thread signals the main -thread to wake up. This case is now the same as the first one since -we know at least one descriptor is ready. So select returns, after -polling all of the file descriptors one last time. - diff --git a/winsup/doc/pathnames.sgml b/winsup/doc/pathnames.sgml deleted file mode 100644 index 00b216e92..000000000 --- a/winsup/doc/pathnames.sgml +++ /dev/null @@ -1,361 +0,0 @@ -Mapping path names - -Introduction - -Cygwin supports both Win32- and POSIX-style paths, where -directory delimiters may be either forward or back slashes. UNC -pathnames (starting with two slashes and a network name) are also -supported. - -POSIX operating systems (such as Linux) do not have the concept -of drive letters. Instead, all absolute paths begin with a -slash (instead of a drive letter such as "c:") and all file systems -appear as subdirectories (for example, you might buy a new disk and -make it be the /disk2 directory). - -Because many programs written to run on UNIX systems assume -the existance of a single unified POSIX file system structure, Cygwin -maintains a special internal POSIX view of the Win32 file system -that allows these programs to successfully run under Windows. Cygwin -uses this mapping to translate between Win32 and POSIX paths as -necessary. - - - -The Cygwin Mount Table - -The mount utility program is used to -to map Win32 drives and network shares into Cygwin's internal POSIX -directory tree. This is a similar concept to the typical UNIX mount -program. For those people coming from a Windows background, the -mount utility is very similar to the old DOS -join, in that it makes your drive letters appear as -subdirectories somewhere else. - -The mapping is stored in the current user's Cygwin -mount table in the Windows registry so that the -information will be retrieved next time the user logs in. Because it -is sometimes desirable to have system-wide as well as user-specific -mounts, there is also a system-wide mount table that all Cygwin users -inherit. The system-wide table may only be modified by a user with -the appropriate priviledges (Administrator priviledges in Windows -NT). - -The current user's table is located under -"HKEY_CURRENT_USER/Software/Red Hat, Inc./Cygwin/mounts -v<version>" -where <version> is the latest registry version associated with -the Cygwin library (this version is not the same as the release -number). The system-wide table is located under the same subkeys -under HKEY_LOCAL_SYSTEM. - -By default, the POSIX root / points to the -system partition but it can be relocated to any directory in the -Windows file system using the mount command. -Whenever Cygwin generates a POSIX path from a Win32 one, it uses the -longest matching prefix in the mount table. Thus, if -C: is mounted as /c and also -as /, then Cygwin would translate -C:/foo/bar to /c/foo/bar. - -Invoking mount without any arguments displays -Cygwin's current set of mount points. -In the following example, the C -drive is the POSIX root and D drive is mapped to -/d. Note that in this case, the root mount is a -system-wide mount point that is visible to all users running Cygwin -programs, whereas the /d mount is only visible -to the current user. - - -Displaying the current set of mount points - -c:\> mount -f:\cygwin\bin on /usr/bin type system (binmode) -f:\cygwin\lib on /usr/lib type system (binmode) -f:\cygwin on / type system (binmode) -e:\src on /usr/src type system (binmode) -c: on /cygdrive/c type user (binmode,noumount) -e: on /cygdrive/e type user (binmode,noumount) - - - -You can also use the mount command to add -new mount points, and the umount to delete -them. See and for more -information on how to use these utilities to set up your Cygwin POSIX -file system. - -Whenever Cygwin cannot use any of the existing mounts to convert -from a particular Win32 path to a POSIX one, Cygwin will -automatically default to an imaginary mount point under the default POSIX -path /cygdrive. For example, if Cygwin accesses -Z:\foo and the Z drive is not currently in the -mount table, then Z:\ would be automatically -converted to /cygdrive/Z. The default -prefix of /cygdrive may be changed (see the - for more information). - -It is possible to assign some special attributes to each mount -point. Automatically mounted partitions are displayed as "auto" -mounts. Mounts can also be marked as either "textmode" or "binmode" --- whether text files are read in the same manner as binary files by -default or not (see for more -information on text and binary modes. - - - -Additional Path-related Information - -The cygpath program provides the ability to -translate between Win32 and POSIX pathnames in shell scripts. See - for the details. - -The HOME, PATH, and -LD_LIBRARY_PATH environment variables are automatically -converted from Win32 format to POSIX format (e.g. from -c:\cygwin\bin to /bin, if -there was a mount from that Win32 path to that POSIX path) when a Cygwin -process first starts. - -Symbolic links can also be used to map Win32 pathnames to POSIX. -For example, the command -ln -s //pollux/home/joe/data /data would have about -the same effect as creating a mount point from -//pollux/home/joe/data to /data -using mount, except that symbolic links cannot set -the default file access mode. Other differences are that the mapping is -distributed throughout the file system and proceeds by iteratively -walking the directory tree instead of matching the longest prefix in a -kernel table. Note that symbolic links will only work on network -drives that are properly configured to support the "system" file -attribute. Many do not do so by default (the Unix Samba server does -not by default, for example). - - - - - -Special filenames - - DOS devices - -Windows filenames invalid under Windows are also invalid under -Cygwin. This means that base filenames such as -AUX, COM1, -LPT1 or PRN (to name a few) -cannot be used in a regular Cygwin Windows or POSIX path, even with an -extension (prn.txt). However the special names can be -used as filename extensions (file.aux). You can use -the special names as you would under DOS, for example you can print on your -default printer with the command cat filename > PRN -(make sure to end with a Form Feed). - - - - - POSIX devices -There is no need to create a POSIX /dev -directory as it is simulated within Cygwin automatically. -It supports the following devices: /dev/null, -/dev/zero, /dev/tty, -/dev/ttyX, /dev/ptmx, -/dev/comX (the serial ports), -/dev/windows (the windows message queue), -/dev/random and /dev/urandom. -These devices cannot be seen with the command ls /dev -although commands such as ls /dev/tty work fine. - - -Windows NT/W2K/XP additionally support raw devices like floppies, -disks, partitions and tapes. These are accessed from Cygwin applications -using POSIX device names which are supported in two different ways. -Up to 1.3.3, Cygwin only uses Win32 device names, since 1.3.4 -it additionally uses NT internal device names. - - -Up to Cygwin 1.3.3 the only way to access those devices is -to mount the Win32 device names to a POSIX device name. - - - -The Win32 device name for a partition is the drive letter -with leading \\.\, so the floppy would be -\\.\A:, the first partition typically -\\.\C:. Complete drives (except floppies and CD-ROMS -which are supported as partitions only) are named -\\.\PHYSICALDRIVEx. The x -is the drive number which you can check in the disk manager. -Each drive line has prepended the text "Disk x". - - -To access tape drives the Win32 file name \\.\TAPEx -is used. For example the first installed tape device is named -\\.\tape0. - - - -The naming convention is simple: The name of the POSIX device has to begin with -/dev/ and the rest is as you like. The only -exception are tape devices. To identify if the tape device is -used as a rewind or a no-rewind device the name must not begin with -n (rewind) or has to begin with n -(no-rewind). - - -Some examples: - - -mount -b //./A: /dev/fd0 # mount floppy as raw block special -mount -b //./physicaldrive1 /dev/hdb # mount "Disk 1" -mount -b //./tape0 /dev/st0 # mount first tape as the rewind device... -mount -b //./tape0 /dev/nst0 # ...and as the no-rewind device - - -Note the usage of the -b option. It is best to -include the -b option when mounting these devices to ensure that all -file I/O is in "binary mode". - - - -Since Cygwin 1.3.4 raw devices are accessible from inside of Cygwin processes -using fixed POSIX device names. That means, you don't have to mount the devices -anymore which results in a more cleaner mount table. - - - -These new fixed POSIX device names are generated using a direct conversion -from the POSIX namespace to the internal NT namespace. -E.g. the first harddisk is the NT internal device \device\harddisk0\partition0 -or the first partition on the third harddisk is \device\harddisk2\partition1. -The first floppy in the system is \device\floppy0, the first CD-ROM is -\device\cdrom0 and the first tape drive is \device\tape0. - - -The new fixed POSIX names are mapped to NT internal devices as -follows: - - -/dev/st0 \device\tape0, rewind -/dev/nst0 \device\tape0, no-rewind -/dev/st1 \device\tape1 -... - -/dev/fd0 \device\floppy0 -/dev/fd1 \device\floppy1 -... - -/dev/scd0 \device\cdrom0 -/dev/scd1 \device\cdrom1 -... - -/dev/sda \device\harddisk0\partition0 (whole disk) -/dev/sda1 \device\harddisk0\partition1 (first partition) -... -/dev/sda15 \device\harddisk0\partition15 (fifteenth partition) - -/dev/sdb \device\harddisk1\partition0 -/dev/sdb1 \device\harddisk1\partition1 - -[up to] - -/dev/sdl \device\harddisk11\partition0 -/dev/sdl1 \device\harddisk11\partition1 -... -/dev/sdl15 \device\harddisk11\partition15 - - - -if you don't like these device names, feel free to create symbolic -links as they are created on Linux systems for convenience: - - - -ln -s /dev/scd0 /dev/cdrom -ln -s /dev/st0 /dev/tape -... - - - -Note that you can't use the mount table to map from fixed device name -to your own device name or to map from internal NT device name to -your own device name. The following two examples will not work: - - - -mount -s -f -b /dev/st0 /dev/tape -mount -s -f -b /device/tape0 /dev/tape - - - - -The .exe extension - - Executable program filenames end with .exe but the .exe need -not be included in the command, so that traditional UNIX names can be -used. However, for programs that end in ".bat" and ".com", you cannot -omit the extension. - - -As a side effect, the ls filename gives -information about filename.exe if -filename.exe exists and filename -does not. In the same situation the function call -stat("filename",..) gives information about -filename.exe. The two files can be distinguished -by examining their inodes, as demonstrated below. - -C:\> ls * -a a.exe b.exe -C:\> ls -i a a.exe -445885548 a 435996602 a.exe -C:\> ls -i b b.exe -432961010 b 432961010 b.exe - -If a shell script myprog and a program -myprog.exe coexist in a directory, the program -has precedence and is selected for execution of -myprog. - -The gcc compiler produces an executable named -filename.exe when asked to produce -filename. This allows many makefiles written -for UNIX systems to work well under Cygwin. - -Unfortunately, the install and -strip commands do distinguish between -filename and filename.exe. They -fail when working on a non-existing filename even if -filename.exe exists, thus breaking some makefiles. -This problem can be solved by writing install and -strip shell scripts to provide the extension ".exe" -when needed. - - - -The @pathnames -To circumvent the limitations on shell line length in the native -Windows command shells, Cygwin programs expand their arguments -starting with "@" in a special way. If a file -pathname exists, the argument -@pathname expands recursively to the content of -pathname. Double quotes can be used inside the -file to delimit strings containing blank space. -Embedded double quotes must be repeated. -In the following example compare the behaviors of the bash built-in -echo and of the program /bin/echo. - - Using @pathname - -bash$ echo 'This is "a long" line' > mylist -bash$ echo @mylist -@mylist -bash$ /bin/echo @mylist -This is a long line -bash$ rm mylist -bash$ /bin/echo @mylist -@mylist - - - - diff --git a/winsup/doc/programming.sgml b/winsup/doc/programming.sgml deleted file mode 100644 index 45f26f4fa..000000000 --- a/winsup/doc/programming.sgml +++ /dev/null @@ -1,11 +0,0 @@ -Programming with Cygwin - -DOCTOOL-INSERT-gcc - -DOCTOOL-INSERT-gdb - -DOCTOOL-INSERT-dll - -DOCTOOL-INSERT-windres - - diff --git a/winsup/doc/readme.texinfo b/winsup/doc/readme.texinfo deleted file mode 100644 index bcd32a633..000000000 --- a/winsup/doc/readme.texinfo +++ /dev/null @@ -1,17 +0,0 @@ -\input texinfo -@title The Cygwin README - -@subtitle (Only partially updated for the latest net release.) - -@setfilename readme.txt - -@include install.texinfo - -@chapter Release Information - -@strong{(Please note: This section has not yet been updated for the latest -net release.)} - -@include changes.texinfo - -@include relnotes.texinfo diff --git a/winsup/doc/relnotes.texinfo b/winsup/doc/relnotes.texinfo deleted file mode 100644 index fbd96bed7..000000000 --- a/winsup/doc/relnotes.texinfo +++ /dev/null @@ -1,30 +0,0 @@ -@chapter Known Problems in the Latest Net Release - -@section Aware of the problem, no solution known. - -@subsection Pipe key (@samp{|}) doesn't work on non-US keyboards in Win9x/ME - -This might get fixed someday, but meanwhile, just use rxvt, which does -not have this problem. This is no real loss, because rxvt has many -other advantages. (Do not attempt to use the "broken" pipe key -(@samp{¦}) as a substitute, it is a different character.) - -@subsection Cannot access tape devices with mt on Win9x - -Win9x does not support the API used by the Cygwin fhandler_dev_tape -class. Details at -@file{http://sources.redhat.com/ml/cygwin/2000-12/msg00331.html}. - -@subsection Hang or core-dump during make - -There is a rare core-dump that seems to be triggered by a recursive -make. There is also a hang condition that happens more frequently -during parallel makes (@code{make -j 3}). The solution is not known, -so please help debug this. ``Me too'' reports are not useful, unless -accompanied by exhaustive, useful data (stack traces, reproducible -test cases, patches). - -@section Fixed in the Next Release - -@subsection On Win9x, scp and cvs/ssh leave ssh processes running, and cvs/ssh hangs at completion - diff --git a/winsup/doc/setup-net.sgml b/winsup/doc/setup-net.sgml deleted file mode 100644 index cc40f312b..000000000 --- a/winsup/doc/setup-net.sgml +++ /dev/null @@ -1,15 +0,0 @@ -Setting Up Cygwin - -Internet Setup -To install the Cygwin net release, go to http://cygwin.com/ and click on "Install Cygwin Now!". This will -download a GUI installer called setup.exe which can -be run to download a complete cygwin installation via the internet. -Follow the instructions on each screen to install Cygwin. - - -DOCTOOL-INSERT-setup-env -DOCTOOL-INSERT-ntsec -DOCTOOL-INSERT-setup-files - diff --git a/winsup/doc/setup.sgml b/winsup/doc/setup.sgml deleted file mode 100644 index 1ba28abb5..000000000 --- a/winsup/doc/setup.sgml +++ /dev/null @@ -1,47 +0,0 @@ -Setting Up Cygwin - -Cygwin Contents - -The following packages are included in the native Win32 -release of GNUPro: - -GNUPro development tools: binutils, bison, byacc, dejagnu, -diff, expect, flex, gas, gcc, gdb, itcl, ld, libstdc++, make, patch, -tcl, tix, tk - -GNUPro unsupported tools: ash, bash, bzip2, diff, fileutils, -findutils, gawk, grep, gzip, m4, sed, shellutils, tar, textutils, -time - - - -Installing the binary release - -Load the GNUPro CD-ROM and run the installer. It will -take you through the installation process, starting with asking for -your install location. Once the installation is complete, there will -be a new Program Files folder that you can use to obtain a shell -from which you can run the tools. - -There are two remaining thing you should do from this -prompt. First, you need to type mkdir -p /tmp to -ensure that a temp directory exists for programs that expect to find -one there. - -Second, depending on how you intend to use the tools, various -programs may need to be able to find `/bin/sh'. You should `mkdir -p -/bin' and put a copy of `sh.exe' there, removing the older version, if -present. Note that you can use the `mount' utility to select which -drive letter is mounted as `/'. - -If you should ever want to uninstall the tools, you may do so -via the "Add/Remove Programs" control panel. - - - -DOCTOOL-INSERT-setup-dir -DOCTOOL-INSERT-setup-env -DOCTOOL-INSERT-ntsec -DOCTOOL-INSERT-setup-reg -DOCTOOL-INSERT-setup-mount - diff --git a/winsup/doc/setup2.sgml b/winsup/doc/setup2.sgml deleted file mode 100644 index 4b2ecf6ef..000000000 --- a/winsup/doc/setup2.sgml +++ /dev/null @@ -1,133 +0,0 @@ -Environment Variables - - -Before starting bash, you may set some environment variables. A .bat -file is provided where the most important ones are set before bash in -launched. This is the safest way to launch bash initially. The .bat -file is installed in the root directory that you specified during setup -and pointed to in the Start Menu under the "Cygwin" option. You can -edit it this file your liking. - - -The CYGWIN variable is used to configure many global -settings for the Cygwin runtime system. Initially you can leave -CYGWIN unset or set it to tty (e.g. -to support job control with ^Z etc...) using a syntax like this in the -DOS shell, before launching bash. - - -C:\> set CYGWIN=tty notitle glob - - - -The PATH environment variable is used by Cygwin -applications as a list of directories to search for executable files -to run. This environment variable is converted from Windows format -(e.g. C:\WinNT\system32;C:\WinNT) to UNIX format -(e.g., /WinNT/system32:/WinNT) when a Cygwin -process first starts. -Set it so that it contains at least the x:\cygwin\bin -directory where "x:\cygwin is the "root" of your -cygwin installation if you wish to use cygwin tools outside of bash. - - - -The HOME environment variable is used by many programs to -determine the location of your home directory and we recommend that it be -defined. This environment variable is also converted from Windows format -when a Cygwin process first starts. Set it to point to your home directory -before launching bash. - - - -The TERM environment variable specifies your terminal -type. It is automatically set to cygwin if you have -not set it to something else. - - -The LD_LIBRARY_PATH environment variable is used by -the Cygwin function dlopen () as a list of -directories to search for .dll files to load. This environment variable -is converted from Windows format to UNIX format when a Cygwin process -first starts. Most Cygwin applications do not make use of the -dlopen () call and do not need this variable. - - - - -Customizing bash - - -To set bash up so that cut and paste work properly, click on the -"Properties" button of the window, then on the "Misc" tab. Make sure -that "Quick Edit" is checked and "Fast Pasting" isn't. These settings -will be remembered next time you run bash from that -shortcut. Similarly you can set the working directory inside the -"Program" tab. The entry "%HOME%" is valid. - - - -Your home directory should contain three initialization files -that control the behavior of bash. They are -.profile, .bashrc and -.inputrc. These initialization files will only -be read if HOME is defined before starting bash. - - - -.profile (other names are also valid, see the bash man -page) contains bash commands. It is executed when bash is started as login -shell, e.g. from the command bash --login (the provided -.bat file does not set the switch). This is a useful place to define and -export environment variables and bash functions that will be used by bash -and the programs invoked by bash. It is a good place to redefine -PATH if needed. We recommend adding a ":." to the end of -PATH to also search the current working directory (contrary -to DOS, the local directory is not searched by default). Also to avoid -delays you should either unset MAILCHECK -or define MAILPATH to point to your existing mail inbox. - - - -.bashrc is similar to -.profile but is executed each time an interactive -bash shell is launched. It serves to define elements that are not -inherited through the environment, such as aliases. If you do not use -login shells, you may want to put the contents of -.profile as discussed above in this file -instead. - - - - -shopt -s nocaseglob - -will allow bash to glob filenames in a case-insensitive manner. -Note that .bashrc is not called automatically for login -shells. You can source it from .profile. - - - -.inputrc controls how programs using the readline -library (including bash) behave. It is loaded automatically. The -full details are in the readline.info. -Due to a bug in the current readline version, -.inputrc cannot contain \r, -even on text mounted systems. -Consider the following settings: - -# Make Bash 8bit clean -set meta-flag on -set convert-meta off -set output-meta on -# Ignore case while completing -set completion-ignore-case on - -The first three commands allow bash to display 8-bit characters, -useful for languages with accented characters. The last line makes -filename completion case insensitive, which can be convenient in a -Windows environment. - - - - diff --git a/winsup/doc/textbinary.sgml b/winsup/doc/textbinary.sgml deleted file mode 100644 index a58bd0231..000000000 --- a/winsup/doc/textbinary.sgml +++ /dev/null @@ -1,181 +0,0 @@ -Text and Binary modes - - The Issue - -On a UNIX system, when an application reads from a file it gets -exactly what's in the file on disk and the converse is true for writing. -The situation is different in the DOS/Windows world where a file can -be opened in one of two modes, binary or text. In the binary mode the -system behaves exactly as in UNIX. However in text mode there are -major differences: - - - -On writing in text mode, a NL (\n, ^J) is transformed into the -sequence CR (\r, ^M) NL. - - - -On reading in text mode, a CR followed by an NL is deleted and a ^Z -character signals the end of file. - - - -This can wreak havoc with the seek/fseek calls since the number -of bytes actually in the file may differ from that seen by the -application. - -The mode can be specified explicitly as explained in the Programming -section below. In an ideal DOS/Windows world, all programs using lines as -records (such as bash, make, -sed ...) would open files (and change the mode of their -standard input and output) as text. All other programs (such as -cat, cmp, tr ...) -would use binary mode. In practice with Cygwin, programs that deal -explicitly with object files specify binary mode (this is the case of -od, which is helpful to diagnose CR problems). Most -other programs (such as cat, cmp, -tr) use the default mode. - - - -The default Cygwin behavior - -The Cygwin system gives us some flexibility in deciding how files -are to be opened when the mode is not specified explicitly. -The rules are evolving, this section gives the design goals. - - -If the file appears to reside on a file system that is mounted -(i.e. if its pathname starts with a directory displayed by -mount), then the default is specified by the mount -flag. If the file is a symbolic link, the mode of the target file system -applies. - - -If the file appears to reside on a file system that is not mounted -(as can happen when the path contains a drive letter), the default is text. - - - -Pipes and non-file devices are opened in binary mode, -except if the CYGWIN environment variable contains -nobinmode. -Warning!In b20.1 of 12/98, a file will be opened -in binary mode if any of the following conditions hold: - -binary mode is specified in the open call - -CYGWIN contains binmode - -the file resides in a binary mounted partition - -the file is not a disk file - - - - - - -When a Cygwin program is launched by a shell, its standard input, -output and error are in binary mode if the CYGWIN variable -contains tty, else in text mode, except if they are piped -or redirected. - When redirecting, the Cygwin shells uses rules (a-c). For -these shells the relevant value of CYGWIN is that at the time -the shell was launched and not that at the time the program is executed. -Non-Cygwin shells always pipe and redirect with binary mode. With -non-Cygwin shells the commands cat filename | program -and program < filename are not equivalent when -filename is on a text-mounted partition. - - - - -Example -To illustrate the various rules, we provide scripts to delete CRs -from files by using the tr program, which can only write -to standard output. -The script - -#!/bin/sh -# Remove \r from the file given as argument -tr -d '\r' < "$1" > "$1".nocr - - will not work on a text mounted systems because the \r will be -reintroduced on writing. However scripts such as - -#!/bin/sh -# Remove \r from the file given as argument -tr -d '\r' | gzip | gunzip > "$1".nocr - -and the .bat file - -REM Remove \r from the file given as argument -@echo off -tr -d \r < %1 > %1.nocr - - work fine. In the first case (assuming the pipes are binary) -we rely on gunzip to set its output to binary mode, -possibly overriding the mode used by the shell. -In the second case we rely on the DOS shell to redirect in binary mode. - - - -Binary or text? - -UNIX programs that have been written for maximum portability -will know the difference between text and binary files and act -appropriately under Cygwin. For those programs, the text mode default -is a good choice. Programs included in official Cygwin distributions -should work well in the default mode. - -Text mode makes it much easier to mix files between Cygwin and -Windows programs, since Windows programs will usually use the CRLF -format. Unfortunately you may still have some problems with text -mode. First, some of the utilities included with Cygwin do not yet -specify binary mode when they should, e.g. cat will -not work with binary files (input will stop at ^Z, CRs will be -introduced in the output). Second, you will introduce CRs in text -files you write, which can cause problems when moving them back to a -UNIX system. - -If you are mounting a remote file system from a UNIX machine, -or moving files back and forth to a UNIX machine, you may want to -access the files in binary mode. The text files found there will normally -be in UNIX NL format, and you would want any files put there by Cygwin -programs to be stored in a format understood by UNIX. -Be sure to remove CRs from all Makefiles and -shell scripts and make sure that you only edit the files with -DOS/Windows editors that can cope with and preserve NL terminated lines. - - -Note that you can decide this on a disk by disk basis (for -example, mounting local disks in text mode and network disks in binary -mode). You can also partition a disk, for example by mounting -c: in text mode, and c:\home -in binary mode. - - - -Programming - -In the open() function call, binary mode can be -specified with the flag O_BINARY and text mode with -O_TEXT. These symbols are defined in -fcntl.h. - -In the fopen() function call, binary mode can be -specified by adding a b to the mode string. There is no -direct way to specify text mode. - -The mode of a file can be changed by the call -setmode(fd,mode) where fd is a file -descriptor (an integer) and mode is -O_BINARY or O_TEXT. The function -returns O_BINARY or O_TEXT depending -on the mode before the call, and EOF on error. - - - - diff --git a/winsup/doc/using.sgml b/winsup/doc/using.sgml deleted file mode 100644 index 9d60e77bf..000000000 --- a/winsup/doc/using.sgml +++ /dev/null @@ -1,19 +0,0 @@ -Using Cygwin - -This chapter explains some key differences between the Cygwin -environment and traditional UNIX systems. It assumes a working -knowledge of standard UNIX commands. - -DOCTOOL-INSERT-using-pathnames - -DOCTOOL-INSERT-using-textbinary - -DOCTOOL-INSERT-using-filemodes - -DOCTOOL-INSERT-using-specialnames - -DOCTOOL-INSERT-using-cygwinenv - -DOCTOOL-INSERT-using-utils - - diff --git a/winsup/doc/what.texinfo b/winsup/doc/what.texinfo deleted file mode 100644 index cc0ec246d..000000000 --- a/winsup/doc/what.texinfo +++ /dev/null @@ -1,160 +0,0 @@ -@chapter What is it? - -The Cygwin tools are ports of the popular GNU development tools for -Microsoft Windows. They run thanks to the Cygwin library which -provides the UNIX system calls and environment these programs expect. - -With these tools installed, it is possible to write Win32 console or -GUI applications that make use of the standard Microsoft Win32 API -and/or the Cygwin API. As a result, it is possible to easily -port many significant Unix programs without the need -for extensive changes to the source code. This includes configuring -and building most of the available GNU software (including the packages -included with the Cygwin development tools themselves). Even if -the development tools are of little to no use to you, you may have -interest in the many standard Unix utilities provided with the package. -They can be used both from the bash shell (provided) or from the -standard Windows command shell. - -@section What versions of Windows are supported? - -Wait a minute... Cygwin is only @emph{supported} if you are paying for -it, such as through a support contract with Red Hat. For information -about getting a Red Hat support contract, see -@file{http://www.redhat.com/software/tools/cygwin/}. - -That said, Cygwin can be expected to run on all modern 32 bit versions of -Windows, except Windows CE. This includes Windows 95/98/ME/NT/2000/XP. - -Keep in mind that Cygwin can only do as much as the underlying OS -supports. Because of this, Cygwin will behave differently, and -exhibit different limitations, on the various versions of Windows. - -@section Where can I get it? - -The main WWW page for the Cygwin project is -@file{http://cygwin.com/}. There you should find -everything you need for Cygwin, including links for download and setup, -a current list of ftp mirror sites, a User's Guide, an API Reference, -mailing lists and archives, and additional ported software. - -You can find documentation for the individual GNU tools at -@file{http://www.fsf.org/manual/}. (You should read GNU manuals from a -local mirror. Check @file{http://www.fsf.org/server/list-mirrors.html} -for a list of them.) - - -@section Is it free software? - -Yes. Parts are GNU software (gcc, gas, ld, etc...), parts are covered -by the standard X11 license, some of it is public domain, some of -it was written by Cygnus and placed under the GPL. None of it is -shareware. You don't have to pay anyone to use it but you should be -sure to read the copyright section of the FAQ more more information on -how the GNU General Public License may affect your use of these tools. - -In particular, if you intend to port a proprietary (non-GPL'd) -application using Cygwin, you will need the proprietary-use license -for the Cygwin library. This is available for purchase; please -contact sales@@cygnus.com for more information. -All other questions should be sent to the project -mailing list cygwin@@cygwin.com. - -Note that when we say "free" we mean freedom, not price. The goal of -such freedom is that the people who use a given piece of software -should be able to change it to fit their needs, learn from it, share -it with their friends, etc. The Cygwin license allows you those -freedoms, so it is free software. - -The Cygwin 1.0 product was a "commercial" distribution of cygwin. As -such, it included such non-software things as printed manuals, support, -and aggregation of useful utilities. There was nothing (software-wise) -in there that you couldn't get off the net already, if you took the time -to find and download everything (and usually, build it yourself), -although the @emph{versions} available for download may have been -different than those distributed with the commercial product. We tested -it all to make sure it worked together, and packaged it in a convenient -form. We considered such testing and packaging to be a valuable service -and thus charged a fee for it. Plus, it provided income for the cygwin -project so we could continue working on it. However, Red Hat is no -longer offering Cygwin 1.0 on CD. There are tentative plans to offer a -new Cygwin CD sometime in early 2001. So far, however, there are no -definite plans. The latest news about this can be found at -@file{http://cygwin.com/cygwin-cd.html}. - - -@section Recent history of the project: What version @emph{is} this, anyway? - -Starting on April 17, 2000, the Cygwin team changed the procedure for -doing net releases. - -Previously, net releases entailed downloading one or two large files -(called something like @code{FULL.EXE} or @code{USER.EXE}). These files -unpacked a "Cygwin Distribution" to a static (and arcane) directory -structure. This distribution contained lots of .exe, .a, .h, and other -files. - -These distributions were named after the version of the Cygwin DLL which -they contained. The last version released with this method was Cygwin -B20.1. - -This distribution method has the advantage that everything was "all in -one place". You could copy the huge FULL.EXE file around and know that -you were getting the complete "Cygwin Distribution". - -The method had several disadvantages, however. 1) it was huge, 2) it -was hard to download in one error-free piece, and 3) it was hard to -update. - -Why was it hard to update? Because any change to any package in -FULL.EXE meant re-generating all of FULL.EXE. This process was not easy -to automate since FULL.EXE was an InstallShield executable. As a -result, until recently, Cygwin development was relatively static. - -To rectify these problems, the Cygwin team decided, early in January -2000, to break up the packages in the release and make a small program -(@code{setup.exe}) available to use in downloading packages. After much -development and internal discussion on the cygwin-developers mailing -list, the new, improved version of a Cygwin release was made available -on April 17, 2000. - -This new release also had a new version of the Cygwin DLL -- 1.1.0. -Most of the other packages were updated and some packages from the -Cygwin CD were included. Meanwhile, the Cygwin DLL continues to be -updated, and since release 1.3.1, is more generically referred to as -"1.3.x". - -Users obtain this package by first downloading a version of -@code{setup.exe}. This program started as a simple command line tool, -has metamorphosed into a GUI, and is in the process of continual -improvement. However, its purpose is simple -- it is designed to -install packages from the cygwin web site at @file{http://cygwin.com/}. -In effect, it is a smaller, more intelligent replacement for FULL.EXE. -It does not require the downloading a huge executable but rather -downloads individual small packages. - -Does this mean that the new net release of the Cygwin package is 1.3.x? -No. We no longer label the releases with the Cygwin version number. -Each package in the cygwin release has its own version now. - -Does this mean that Cygwin 1.3.x is newer than B20.1? Yes! The cygwin -1.3.x versions all represent continual improvement in the Cygwin DLL. -Although the 1.3.x code is still considered "beta quality", the Cygwin -team felt comfortable enough with the cygwin technology to bump the -version number to "1". - -The other packages in the latest directory are also continually -improving, thanks to the efforts of net volunteers who maintain the -cygwin binary ports. Each package has its own version numbers and its -own release process. - -So, how do you get the most up-to-date version of cygwin? Easy. Just -download the setup.exe program from your closest mirror. This program -will handle the task of updating the packages on your system to the -latest version. The Cygwin team frequently updates and adds new -packages to the soureware web site. The setup.exe program is the -easiest way to determine what you need on your system. - -For some "ancient" history of the project (rather, just woefully out of -date), visit the Project History page at -@file{http://cygwin.com/history.html}. diff --git a/winsup/doc/who.texinfo b/winsup/doc/who.texinfo deleted file mode 100644 index cc93ceaa1..000000000 --- a/winsup/doc/who.texinfo +++ /dev/null @@ -1,88 +0,0 @@ -@chapter Who's behind the project? - -@strong{(Please note that if you have cygwin-specific questions, all of these -people will appreciate it if you use the cygwin mailing lists rather than -sending personal email.)} - -Chris Faylor is behind many of the recent changes in Cygwin. Prior to -joining Cygnus, he contributed significant fixes to the process control -and environ code, reworked the strace mechanism, and rewrote the -signal-related code from scratch as a Net contributor. In addition to -continuing to make technical contributions, Chris is also currently the -group's manager. - -Corinna Vinschen has contributed several useful fixes to the path -handling code, console support, improved security handling, and raw -device support. Corinna is currently employed by Red Hat as a -GDB/Cygwin engineer. - -DJ Delorie has done important work in profiling Cygwin, -worked on the Dejagnu automated testing framework, merged the dlltool -functionality into ld, wrote a good deal of the Cygwin Users' Guide, -authored the cygcheck utility, and made automated snapshots available -from our project WWW page. DJ is currently employed by Red Hat as -a GCC engineer. - -Egor Duda has contributed many useful fixes. He is responsible for -Cygwin's ability to start a debugger on detection of a fatal error -as well as produce core dumps. - -Robert Collins has contributed many improvements to thread handling -as well as generic fixes to cygwin itself. - -Kazuhiro Fujieda has contributed many bug fixes and bug reports. - -Earnie Boyd has contributed many bug fixes and is the mingw and w32api -maintainer. - -David Starks-Browning is our dedicated FAQ maintainer. - -Geoffrey Noer took over the Cygwin project from its initial author Steve -Chamberlain in mid-1996. As maintainer, he produced Net releases beta -16 through 20; made the development snapshots; worked with Net -contributors to fix bugs; made many various code improvements himself; -wrote a paper on Cygwin for the 1998 Usenix NT Symposium; authored the -project WWW pages, FAQ, README; etc. Geoffrey is not currently employed -by Red Hat. - -Steve Chamberlain designed and implemented -Cygwin in 1995-1996 while working for Cygnus. He worked with the Net -to improve the technology, ported/integrated many of the user tools -for the first time to Cygwin, and produced all of the releases up to -beta 14. Steve is not currently employed by Red Hat. - -Marco Fuykschot and Peter Boncz of Data Distilleries contributed nearly -all of the changes required to make Cygwin thread-safe. They also -provided the pthreads interface. - -Sergey Okhapkin has been an invaluable Net contributor. He implemented -the tty/pty support, has played a significant role in revamping signal -and exception handling, and has made countless contributions throughout -the library. He also provided binaries of the development snapshots to -the Net after the beta 19 release. - -Mumit Khan has been most helpful on the EGCS end of things, providing -quite a large number of stabilizing patches to the compiler tools for -the B20 release. - -Philippe Giacinti contributed the implementation of dlopen, dlclose, -dlsym, dlfork, and dlerror in Cygwin. - -Ian Lance Taylor did a much-needed rework of the path handling code for -beta 18, and has made many assorted fixes throughout the code. Jeremy -Allison made significant contributions in the area of file handling and -process control, and rewrote select from scratch. Doug Evans rewrote -the path-handling code in beta 16, among other things. Kim Knuttila and -Michael Meissner put in many long hours working on the now-defunct -PowerPC port. Jason Molenda and Mark Eichin have also made important -contributions. - -Please note that all of us working on Cygwin try to -be as responsive as possible and deal with patches and questions as we -get them, but realistically we don't have time to answer all of the -email that is sent to the main mailing list. Making Net releases of the -Win32 tools and helping people on the Net out is not our primary job -function, so some email will have to go unanswered. - -Many thanks to everyone using the tools for their many contributions in -the form of advice, bug reports, and code fixes. Keep them coming! diff --git a/winsup/doc/windres.sgml b/winsup/doc/windres.sgml deleted file mode 100644 index 2d5410639..000000000 --- a/winsup/doc/windres.sgml +++ /dev/null @@ -1,167 +0,0 @@ - -Defining Windows Resources - -windres reads a Windows resource file -(*.rc) and converts it to a res or coff file. -The syntax and semantics of the input file are the same as for any -other resource compiler, so please refer to any publication describing -the Windows resource format for details. Also, the -windres program itself is fully documented in the -Binutils manual. Here's an example of using it in a project: - - -myapp.exe : myapp.o myapp.res - gcc -mwindows myapp.o myapp.res -o $@ - -myapp.res : myapp.rc resource.h - windres $< -O coff -o $@ - - - -What follows is a quick-reference to the syntax -windres supports. - - - -id ACCELERATORS suboptions -BEG -"^C" 12 -"Q" 12 -65 12 -65 12 , VIRTKEY ASCII NOINVERT SHIFT CONTROL ALT -65 12 , VIRTKEY, ASCII, NOINVERT, SHIFT, CONTROL, ALT -(12 is an acc_id) -END - -SHIFT, CONTROL, ALT require VIRTKEY - - -id BITMAP memflags "filename" -memflags defaults to MOVEABLE - - -id CURSOR memflags "filename" -memflags defaults to MOVEABLE,DISCARDABLE - - -id DIALOG memflags exstyle x,y,width,height styles BEG controls END -id DIALOGEX memflags exstyle x,y,width,height styles BEG controls END -id DIALOGEX memflags exstyle x,y,width,height,helpid styles BEG controls END - -memflags defaults to MOVEABLE -exstyle may be EXSTYLE=number -styles: CAPTION "string" - CLASS id - STYLE FOO | NOT FOO | (12) - EXSTYLE number - FONT number, "name" - FONT number, "name",weight,italic - MENU id - CHARACTERISTICS number - LANGUAGE number,number - VERSIONK number -controls: - AUTO3STATE params - AUTOCHECKBOX params - AUTORADIOBUTTON params - BEDIT params - CHECKBOX params - COMBOBOX params - CONTROL ["name",] id, class, style, x,y,w,h [,exstyle] [data] - CONTROL ["name",] id, class, style, x,y,w,h, exstyle, helpid [data] - CTEXT params - DEFPUSHBUTTON params - EDITTEXT params - GROUPBOX params - HEDIT params - ICON ["name",] id, x,y [data] - ICON ["name",] id, x,y,w,h, style, exstyle [data] - ICON ["name",] id, x,y,w,h, style, exstyle, helpid [data] - IEDIT params - LISTBOX params - LTEXT params - PUSHBOX params - PUSHBUTTON params - RADIOBUTTON params - RTEXT params - SCROLLBAR params - STATE3 params - USERBUTTON "string", id, x,y,w,h, style, exstyle -params: - ["name",] id, x, y, w, h, [data] - ["name",] id, x, y, w, h, style [,exstyle] [data] - ["name",] id, x, y, w, h, style, exstyle, helpid [data] - -[data] is optional BEG (string|number) [,(string|number)] (etc) END - - -id FONT memflags "filename" -memflags defaults to MOVEABLE|DISCARDABLE - -id ICON memflags "filename" -memflags defaults to MOVEABLE|DISCARDABLE - -LANGUAGE num,num - -id MENU options BEG items END -items: - "string", id, flags - SEPARATOR - POPUP "string" flags BEG menuitems END -flags: - CHECKED - GRAYED - HELP - INACTIVE - MENUBARBREAK - MENUBREAK - -id MENUEX suboptions BEG items END -items: - MENUITEM "string" - MENUITEM "string", id - MENUITEM "string", id, type [,state] - POPUP "string" BEG items END - POPUP "string", id BEG items END - POPUP "string", id, type BEG items END - POPUP "string", id, type, state [,helpid] BEG items END - -id MESSAGETABLE memflags "filename" -memflags defaults to MOVEABLE - -id RCDATA suboptions BEG (string|number) [,(string|number)] (etc) END - -STRINGTABLE suboptions BEG strings END -strings: - id "string" - id, "string" - -(User data) -id id suboptions BEG (string|number) [,(string|number)] (etc) END - -id VERSIONINFO stuffs BEG verblocks END -stuffs: FILEVERSION num,num,num,num - PRODUCTVERSION num,num,num,num - FILEFLAGSMASK num - FILEOS num - FILETYPE num - FILESUBTYPE num -verblocks: - BLOCK "StringFileInfo" BEG BLOCK BEG vervals END END - BLOCK "VarFileInfo" BEG BLOCK BEG vertrans END END -vervals: VALUE "foo","bar" -vertrans: VALUE num,num - - - -suboptions: - memflags - CHARACTERISTICS num - LANGUAGE num,num - VERSIONK num - -memflags are MOVEABLE/FIXED PURE/IMPURE PRELOAD/LOADONCALL DISCARDABLE - - - - diff --git a/winsup/mingw/CRT_noglob.c b/winsup/mingw/CRT_noglob.c deleted file mode 100644 index 442820cd8..000000000 --- a/winsup/mingw/CRT_noglob.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * noglob.c - * - * This file defines _CRT_glob to have a value of 0, which will - * turn off command line globbing. It is compiled into a separate object - * file which you can add to your link line to turn off globbing like - * this: - * - * gcc -o foo.exe foo.o noglob.o - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -int _CRT_glob = 0; diff --git a/winsup/mingw/CRTfmode.c b/winsup/mingw/CRTfmode.c deleted file mode 100644 index d0db222f0..000000000 --- a/winsup/mingw/CRTfmode.c +++ /dev/null @@ -1,20 +0,0 @@ -/* - * CRTfmode.c - * - * Sets _CRT_fmode to be zero, which will cause _mingw32_init_fmode to leave - * all file modes in their default state (basically text mode). - * - * This file is part of the Mingw32 package. - * - * THIS FILE IS IN THE PUBLIC DOMAIN. - * - * Contributers: - * Created by Colin Peters - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -unsigned int _CRT_fmode = 0; diff --git a/winsup/mingw/CRTglob.c b/winsup/mingw/CRTglob.c deleted file mode 100644 index 09f858146..000000000 --- a/winsup/mingw/CRTglob.c +++ /dev/null @@ -1,18 +0,0 @@ -/* - * CRTglob.c - * - * This object file defines _CRT_glob to have a value of -1, which will - * turn on command line globbing by default. If you want to turn off - * command line globbing include a line - * - * int _CRT_glob = 0; - * - * in one of your source modules. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -int _CRT_glob = -1; diff --git a/winsup/mingw/CRTinit.c b/winsup/mingw/CRTinit.c deleted file mode 100644 index fa0e7ba1f..000000000 --- a/winsup/mingw/CRTinit.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * CRTinit.c - * - * A dummy version of _CRT_INIT for MS compatibility. Programs, or more often - * dlls, which use the static version of the MSVC run time are supposed to - * call _CRT_INIT to initialize the run time library in DllMain. This does - * not appear to be necessary when using crtdll or the dll versions of the - * MSVC runtime, so the dummy call simply does nothing. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -void -_CRT_INIT () -{ -} diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog deleted file mode 100644 index ed4487b1d..000000000 --- a/winsup/mingw/ChangeLog +++ /dev/null @@ -1,813 +0,0 @@ -2002-01-28 Danny Smith - - * include/malloc.h (_heapinfo): Correct structure definition. - (_USEDENTRY,_FREEENTRY): Add defines. - Add comment on platform support for _heap* functions. - (_get_sbh_threshold): Add prototype. - (_set_sbh_threshold): Likewise. - (_expand): Likewise. - -2002-01-25 Danny Smith - - * profile/profil.c: Update copyright info. - * profile/profil.h: Likewise. - * profile/gcrt0.c: Likewise. - -2002-01-25 Pascal Obry - - * profile/profil.h (PROFADDR): Cast idx to unsigned long long to - avoid overflow. - * profile/gmon.c: Define bzero as memset if mingw32. - (monstartup): Use it. - -2002-01-25 Danny Smith - - * include/tchar.h (_TCHAR): Add missing ;. - -2002-01-25 Danny Smith - - * include/tchar.h (_TCHAR): Add typedefs. - -2002-01-16 Danny Smith - - * include/stdlib.h (_onexit_t): Add typedef. - (_onexit): Add prototype. - -2002-01-12 Danny Smith - - * msvcrt.def: Revert accidental change. - * include/stdlib.h: Ditto. - -2001-12-07 Earnie Boyd - - * Makefile.in: Increment VERSION. - * include/_mingw.h: Ditto. - -2001-12-05 Earnie Boyd - - * include/strings.h: New File. - -2001-12-02 Danny Smith - - Apply patches from: - 2001-06-21 Mumit Khan - - * include/math.h (_FPCLASS* ): Add defines from float.h. - (IEEE recommended functions): Add declarations from float.h. - * include/float.h (_FPCLASS* ): Protect against redefinition. - -2001-11-29 Wu Yongwei - - * include/_mingw.h,assert.h,conio.h,ctype.h,dir.h,direct.h - dirent.h,dos.h,errno.h,excpt.h,fcntl.h,float.h,io.h, - limits.h,locale.h,malloc.h,math.h,process.h,setjmp.h, - share.h,signal.h,stdarg.h,stddef.h,stdint.h,stdio.h, - stdlib.h,string.h,tchar.h,time.h,varargs.h,wchar.h, - wctype.h,sys/stat.h,sys/timeb.h,sys/types.h,sys/utime.h: - Correct spelling of "disclaimed" in comments. - * include/excpt.h: Another spelling correction. - -2001-11-08 Robert Collins - - * include/errno.h: Fix "errno is not a prototype" warning. - -2001-11-07 Danny Smith - - * include/ctype.h (tolower, toupper,_tolower,_toupper): Comment - differences between ANSI and non-ANSI versions. - (_ctype[],_pctype): Declare vars. - (__ISCTYPE): New helper macro using _pctype. - (is* ctype functions): Use __ISCTYPE to define inline versions. - (_toupper, _tolower, __isascii, __toascii, __iscsym, __iscsymf): - Inline definitions. - (isw* ctype functions): Inline definitions. - * include/wctype.h (_ctype[],_pctype): Declare vars. - (isw* ctype functions): Inline definitions. - - -2001-11-06 Danny Smith - - * include/float.h (_clearfp, _statusfp, _fpreset, fpreset, - __fpecode): Use __STDC__ prototypes. - - -2001-11-06 Thomas Pfaff - - * mthr_stub.c (__mingwthr_remove_key_dtor) New. - * mthr_init.c (DllMain) Run dtors if a process terminates. - * mthr.c (__mingwthr_add_key_dtor) Removed. - (___mingwthr_add_key_dtor) New. - (___mingwthr_remove_key_dtor) New. - (__mingwthr_run_key_dtors) Complete rewrite. - (__mingwthr_remove_key_dtor) New. - -2001-11-05 Egor Duda - - * Makefile.in: Delete unused executable after creating base-files. - -2001-11-06 Danny Smith - - * include/errno.h (_errno): Use __STDC__ prototype. - Thanks to: Jim Barton. - -2001-11-04 "stefan" - - * include/sys/locking.h (_LK_UNLCK, LK_UNLCK): Correct names. - -2001-10-30 Danny Smith - - * include/io.h (_commit): Add declaration. - Thanks to: "stefan" - -2001-10-30 Danny Smith - - * include/sys/stat.h: Make S_IS* macros safer. - -2001-10-27 Danny Smith - - * include/stdlib.h (EXIT_FAILURE): Change value to 1. - -2001-10-12 Danny Smith - - * include/stdlib.h (__p__environ, __p__wenviron): Use - __STDC__ prototypes. - -2001-09-19 Earnie Boyd - - * Makefile.in: Remove the /usr from the install target. - (VERSION): Increment. - include/_mingw.h: Ditto. - -2001-09-17 Earnie Boyd - - * Makefile.in: Increment version. - * include/_mingw.h: Ditto. - -2001-09-10 Earnie Boyd - - * dossh: Remove inadvertantly imported file. - -2001-09-10 Danny Smith - - * dirent.c (opendir): Use GetFileAttributes rather than stat - to determine if input arg is dir. - -2001-08-29 Danny Smith - - * include/stdarg.h (va_list): Typedef as __builtin_va_list if - __GNUC__ >= 3. - * include/varargs.h (va_list): Ditto. - * include/stdio.h (va_list): Ditto. - -2001-08-01 Danny Smith - - * include/stdlib.h (_wpgmptr): Don't declare ifndef __MSVCRT__. - * include/stdio.h (_IORW): Change constant to 0x0080. - (TMP_MAX): Add new define. - (_P_tmpdir): Ditto. - (_wP_tmpdir): Ditto. - (L_tmpnam): Change constant to 16. - -2001-06-28 Danny Smith - - * include/malloc.h: Fix non-ANSI comment after #endif. - -2001-06-11 Danny Smith - - * profile/configure.in: Make msvcrt.dll version default. - * profile/makefile.in: Build both gcrt1.o and gcrt2.o. - * provile/configure: Regenerate. - -2001-06-11 Mattia Barbon - - * include/stdio.h (swscanf): Make first arugument const. - * include/wchar.h (swscanf): Ditto. - * include/tchar.h (_tfopen): New _UNICODE define. - (_tgetenv): Ditto. - (_tsetlocale): Ditto. - -2001-06-04 Earnie Boyd - - * profile/Makefile.in (mkinstalldirs): Correct relative path. - -2001-06-04 Earnie Boyd - - * include/_mingw.h: Change version to 1.0. - Makefile.in: Ditto. - -2000-02-21 Earnie Boyd - - * include/tchar.h: (__TEXT): Remove undef. - (_TEXT): Ditto. - (_T): Ditto. - -Fri Feb 2 10:34:07 2001 Earnie Boyd - - * include/tchar.h: (__TEXT): Add private macro. - (_TEXT): Modify definition to use __TEXT. - (_T): Ditto. - This change allows the passing of a MACRO as an argument and have that - MACRO resolved first. - Thanks to: Eric PAIRE - -Wed Jan 31 17:12:51 2001 Earnie Boyd - - * Makefile.in: Increment version to 0.5 - * include/_mingw.h: Increment minor version - -Tue Jan 30 13:01:01 2001 Earnie Boyd - - * include/assert.h: (assert): Remove ; from end of definition - Thanks to: AJ Reins - -Tue Jan 30 07:31:22 2001 Earnie Boyd - - * include/time.h: (CLOCKS_PER_SEC): Type cast the constant. - Thanks to: Cosmin Truta - -Mon Jan 29 14:03:07 2001 Earnie Boyd - - * time.h: (CLOCKS_PER_SEC) Change from FP to integer constant. - -Sun Jan 28 13:01:08 2001 Earnie Boyd - - * include/wchar.h: The 2001.01.18 Change was incorrect. The functions - are actually C functions. These functions are resolved via the - -lmsvcp60 library and comments were placed in the header. - -2001-01-28 Danny Smith - - *include/stdlib.h (__p__pgmptr): add prototype. - (__p__wpgmptr): likewise. - (_pgmptr_dll): move declaration from dos.h. - (_wpgmptr_dll): likewise. - (_pgmptr): conditional define (MSVCT/CRTDLL). - (_wpgmptr): likewise. - *include/dos.h (_base*_dll variables): declare only for CRTDLL. - (_os*_dll variables): likewise. - (_pgmptr_dll): remove declaration and associated defines to stdlib.h. - (_wpgmptr_dll): likewise. - -2001-01-22 Danny Smith - - * include/stdint.h: New file. - -Thu Jan 18 10:33:01 2001 Earnie Boyd - - * include/wchar.h: Protect prototypes only declared in the C++ STL - from being declared unless __cplusplus is defined. - -Tue Jan 16 11:37:31 2001 Earnie Boyd - - * include/stdlib.h: Apply Danny Smith patch 102730 - 2000-12-09 Danny Smith - (_wgetenv) Correction to return type. - -Tue Jan 16 09:41:41 2001 Earnie Boyd - - * include/locale.h: Apply Danny Smith patch 101834 - 2000-11-23 Danny Smith - (LC_MIN) Add definition. - (LC_MAX) ditto. - (_wsetlocale) Add prototype. - -2000-11-29 Earnie Boyd - - * Makefile.in: eliminate the need for RUNTIME and CRT_ID. - Always build crt1.o, dllcrt1.o, crt2.o and dllcrt2.o. - Create a libcoldname.a for the oldname library for CRTDLL. - Restrict libmoldname.a for the oldname library for MSVCRT. - * configure.in: eliminate setting RUNTIME and CRT_ID variables. - Restructure the $target_os case logic. - Always name the MinGW thread dll helper mingwm. - Change Cygwin's HEADER_SUBDIR value from mingw32 to mingw. - * configure: regenerate. - -2000-11-22 Earnie Boyd - - * Makefile.in: Fix bindist target to distribute the correct files. - Remove the use of SNAPSHOT variable and test SNAPDATE instead. - Set SNAPDATE within the snapshot target on recursive call to $(MAKE). - -2000-11-21 Earnie Boyd - - * Makefile.in: Add missing line continuation `\' for $(SUBDIRS) target. - Add variables and targets to control binary and source distributions. - Add variables and targets to control snapshot distribution. - * profile/gmon.h: Add missing #endif for #ifndef. - * profile/ChangeLog: Merge entries here and remove. - * profile/Makefile.in: Add variables and targets to control - distribution. - * README: Add. - * TODO: ditto. - * config.guess: ditto. - * config.sub: ditto. - * mkinstalldirs: ditto. - * install-sh: ditto. - * configure: regenerate. - * profile/configure: ditto. - -2000-11-20 Earnie Boyd - - * Merge in changes from - 2000-10-23 Danny Smith - * include/direct.h: add guard around MSVCRT-only prototytpes - * include/io.h: add __int64 struct definitions and function prototypes; - add guard for MSVCRT-only prototypes - * include/limits.h: add ISO C9x macros LLONG_MIN, LLONG_MAX, ULLONG_MAX - * include/stdio.h: add wchar function prototypes (__MSVCRT__); - put wchar functions together to make sync with wchar.h easier - * include/stdlib.h: add wide char functions (__MSVCRT__) - * include/string.h: add string collation functions ( __MSVCRT__) - * include/sys/stat.h: add __int64 struct and function ( __MSVCRT__) - * include/tchar.h: add macros and macro function definitions - * include/wchar.h: add wide char function prototypes ( __MSVCRT__ ); - enclose more functions in __MSVCRT__ guard; - some oldname wide char function prototypes #if (0)'d - * profile/gmon.h: add guard around BSD-ish typedefs - -Mon Nov 20 18:58:12 2000 Christopher Faylor - - * Makefile.in: Use a different variable name for subdirectory since the - previous one was used by the top level make. - -Sun Nov 19 20:50:51 2000 Christopher Faylor - - * Makefile.in: Install mingw stuff in a subdirectory if building under - cygwin. - -Sat Jun 17 21:48:23 2000 Christopher Faylor - - * Makefile.in (subdirs): Eliminate for loop. - -Sat Jun 17 18:27:59 2000 Christopher Faylor - - * Makefile.in (subdirs): Previous change did not fix problem in - broken shells. - -Sat Jun 17 13:49:12 2000 Christopher Faylor - - * Makefile.in: Avoid installing dll if we're cross building and the - cross-host system isn't a Windows system. - * configure.in: Detect cross-hosting situation and set appropriate - variables in Makefile.in. - * configure: Regenerate. - -Wed Apr 19 13:10:54 2000 Christopher Faylor - - * configure.in: Change HEADER_SUBDIR to mingw32. - * configure: Regenerate. - -Mon Apr 10 17:24:28 2000 Christopher Faylor - - * include/string.h: Use proper prototype for _strerror. - -2000-03-30 Mumit Khan - - * Makefile.in (subdirs): Workaround for broken shells. - -2000-02-03 Mumit Khan - - * Snapshot 2000-02-03. - - * include/{assert.h, conio.h, ctype.h, direct.h, dirent.h, fcntl.h, - float.h, io.h, locale.h, malloc.h, math.h, process.h, signal.h, - stdio.h, stdlib.h, string.h, time.h, wctype.h, sys/stat.h, - sys/timeb.h, sys/utime.h}: Remove parameter names to avoid namespace - pollution. - - * Makefile.in (all): Build CRT0S first. - (libmingwthrd.a): Remove thread support DLL from dependency. - -2000-01-21 Mumit Khan - - * Snapshot 2000-01-21. - -2000-01-20 Mumit Khan - - Merge in changes from Cygwin: - * configure.in (HEADER_SUBDIRS): New variable. Substitute. - (SUBDIRS): Likewise. - * Makefile.in (HEADER_SUBDIRS): New variable. - (install): Use to install Mingw headers to a subdirectory if building - under Cygwin. - (DLL_CC_STUFF): Add DLL entry point. - * configure: Regenerate. - -2000-01-19 Mumit Khan - - * include/stdio.h (fsetpos): Fix prototype. - (fpos_t): Fix for MSVCRT. - * include/float.h (fpreset): Add prototype. - * include/limits.h: Define UINT_MAX, USHRT_MAX and ULONG_MAX with - constant values. - * include/time.h: Don't define tzname as a macro for CRTDLL, and - export using libmoldname.a. - * crtdll.def: Add DATA tags. - * msvcrt.def: Likewise. - * moldname.def.in: Likewise. Add fpreset. Export tzname for - both MSVCRT and CRTDLL. - * moldname-crtdll.def: Regenerate. - * moldname-msvcrt.def: Regenerate. - -Tue Dec 21 02:22:14 1999 Mumit Khan - - * Snapshot 1999-12-21. - - * include/wctype.h: New file. - * include/ctype.h (MB_CUR_MAX): Define. - (wctype_t): Guard. - * include/stdlib.h (MB_CUR_MAX): Define. - * include/wchar.h: Define stat, _stat structures here as well. - * include/float.h: Add invalid subconditions (_SW) and floating - point error (_FPE) macros. - * include/time.h (_CLOCK_T): Rename macro to _CLOCK_T_DEFINED. - (_TIME_T): Rename macro to _TIME_T_DEFINED. - * include/sys/types.h: Likewise. - -Thu Nov 18 00:22:26 1999 Mumit Khan - - * profile/profil.c (profile_on): Set the profiler thread priority to - be time critical. Thanks to Pascal Obry . - * Snapshot 1999-11-18. - -Sun Nov 7 02:50:09 1999 Mumit Khan - - Released 1999-11-07. - - * Makefile.in (CRT0S): Add crtst.o. - (install): Install in subdirs as well. - * dirent.h (struct _stat): Rename from struct stat. - * include/tchar.h: Add some new macros. Thanks to - Eric Kohl . - * profile/Makefile.in (install): Fix target. - -Thu Nov 4 14:32:58 1999 Mumit Khan - - * Makefile.in: Add support for profile directory. - * configure.in: Likewise. - * configure: Regenerate. - - * profile: Imported profiling sources from winsup-19991026 snapshot. - * profile/Makefile.in: New file. - * profile/configure.in: New file. - * profile/configure: Generate. - * profile/gcrt0.c (u_char, u_short, u_int, u_long): typedef for Mingw. - * profile/gmon.h (u_char, u_short, u_int, u_long): Likewise. - * profile/gmon.c (unistd.h): Include conditionally. - (sys/param.h): Likewise. - * profile/mcount.c (sys/param.h): Likewise. - * profile/profil.c (profile_on): thread id is DWORD, not int. - - -Wed Nov 3 16:26:44 1999 Mumit Khan - - * include/stdlib.h: Add wide character version of argv/environ. - Formatting changes. - * include/wchar.h: More wide character prototypes. - * include/sys/stat.h: Likewise. Add struct stat as well as _stat. - - * dllcrt1.c (init.c): Don't include. - (DllMainCRTStartup): Don't call _mingw32_init_mainargs(). - * Makefile.in: Remove init.c from dllcrt{1,2}.c dependency lists. - -Sat Oct 30 03:06:26 1999 Mumit Khan - - * moldname.def: Remove file. - * moldname.def.in: And add this. - * moldname-msvcrt.def: Generate from moldname.def.in. - * moldname-crtdll.def: Likewise. - - * mthr.c: New file for -mthread (thread-safe C++ EH) support. - * mthr_init.c: New file for -mthread (thread-safe C++ EH) support. - * mthr_stub.c: New file for -mthread (thread-safe C++ EH) support. - - * Makefile.in: Update. - * configure.in: Likewise. Also add *cygwin* target for building - under Cygwin winsup. - * configure: Regenerate. - -Fri Oct 1 11:10:30 1999 Mumit Khan - - * include/_mingw.h: Add version macros. - * include/direct.h (_diskfree_t, getdiskfree, getdrives): Add. - Also add wide character versions shared with wchar.h. - * include/dos.h (_diskfree_t, getdiskfree, getdrives): Add. - * include/io.h (sopen, _sopen): Fix prototype. - Add wide character prototypes. - * include/wchar.h: Likewise. - * include/stdlib.h (beep, seterrormode, sleep): Remove non- - underscored versions. Potential incompatibility. - * include/time.h (daylight, timezone, tzname): Fix MSVCRT cases. - Add wide character prototypes. - * include/sys/timeb.h (struct _timeb): Don't use macro, but real - definition. - -Wed Aug 18 18:38:39 1999 Mumit Khan - - * configure.in (RUNTIME, CRT_ID): Add to differentiate between - crtdll and msvcrt runtimes. Remove DLL_ENTRY and DEF_DLL_ENTRY - macros. - * configure: Rengerate. - * Makefile.in (RUNTIME, CRT_ID): Use to generate the correct - dll name and crt's. CRTDLL and MSVCRT are meant to created - separately, so remove all the *-msvcrt* targets. - (libmingwthr.a): New target. Dummy thread support archive. - (LIBS): Add libmingwthr.a. - (CRT0S): Use CRT_ID. Add crtmt.o. - (MINGW_OBJS): Add crtst.o. - * main.c (WinMain): Fix prototype. - * crtmt.c: New file. - * crtst.c: New file. - - * include/process.h (_beginthreadex): Fix prototype. - * include/_mingw.h (__int64): Define for __GNUC__. - * include/tchar.h (_ttol): Add macro. - * include/stdlib.h (_wtoi, _wtol, _i64toa, _ui64toa, _atoi64, - _i64tow, _ui64tow, _wtoi64): Add prototypes. - - Reported by Emanuele Aliberti : - * include/tchar.h (_ttoi): Add macro. - - Reported by Ulf Moeller <3umoelle@informatik.uni-hamburg.de>: - * include/stdio.h (_snprintf): Add prototype. - (_vsnprintf): Likewise. - -Sat Aug 7 18:00:00 1999 Mumit Khan - - Reported by Tor Lillqvist : - * include/stdlib.h (__p___argv): Fix return type. - -Fri Jul 30 22:07:06 1999 Mumit Khan - - Add UWIN support. - * include/errno.h (errno): It's linked in from startup, not imported. - * include/stdlib.h (errno): Likewise. - * include/io.h: Guard against conflicting macros and prototypes in - system headers. - * include/stdlib.h: Likewise. - * include/string.h: Likewise. - * include/time.h: Likewise. - -Fri Jul 30 13:47:34 1999 Mumit Khan - - * include/io.h (X_OK): Fix definition. Thanks to Jan Nijtmans. - * include/dos.h: Fix typo __MINGW_EXPORT->__MINGW_IMPORT. - * Makefile.in (INCLUDES): Remove old windows32 include directory. - - * crt1.c (_gnu_exception_handler): Fix prototype. - (__mingw_CRTStartup): New function based on mainCRTStartup. - (mainCRTStartup): Set the app type for MSVCRT and call - __mingw_CRTStartup. - (WinMainCRTStartup): Likewise. - * init.c (_startupinfo): Define. - (_getmainargs): Add 5th parameter. - (_mingw32_init_mainargs): Use. - - * ALL *.c files: Reformat according to GNU coding style. - -Fri Jul 16 00:46:04 1999 Mumit Khan - - * Makefile.in (INCLUDES): Add w32api include directory. - - * include/_mingw.h: New file. - * include/{assert.h,conio.h,ctype.h,direct.h,dirent.h,dos.h, - errno.h,excpt.h,fcntl.h,float.h,io.h,limits.h,locale.h,malloc.h, - math.h,process.h,setjmp.h,share.h,signal.h,stdarg.h,stdio.h, - stdlib.h,string.h,tchar.h,time.h,varargs.h,sys/locking.h, - sys/stat.h,sys/timeb.h,sys/types.h,sys/utime.h}: Include and - use the macros __DECLSPEC_SUPPORTED and __MINGW_IMPORT. - - * include/stdlib.h (atexit): Fix prototype. - -Mon Jun 14 18:38:49 1999 Mumit Khan - - * include/stdio.h (_tempnam): Fix prototype. - (tempnam): Likewise. - * include/stdlib.h: Replace with GCC's version, and guard - with RC_INVOKED. - - From Anders Norlander : - * include/stdlib.h (__argc): Declare. - (__argv): Likewise. - -Mon Apr 5 13:49:17 1999 Mumit Khan - - * crt1.c (_gnu_exception_handler): Acknowledge Jacob Navia's - contribution. - * Makefile.in (_libm_dummy.o): New target. - (libm.a): Use. - -Tue Mar 16 18:15:26 1999 Mumit Khan - - * Released 1999-03-16 along with egcs-1.1.2. - -Wed Feb 17 17:15:56 1999 Mumit Khan - - * Makefile.in (LIBS): Add libm.a. - (libm.a): Dummy libm.a. - - * Makefile.in: Update from winsup 1999-02-08 snapshot. - Preserve local changes. - (mkinstalldirs): In ../, not ../../. - (INCLUDES): Point to local windows32api headers and use -nostdinc. - (LIBGCC): Delete. - (LIBS): Add libmoldname-msvc.a. - (libmoldname-msvc.a): Add target. - (distclean): Add target. - -Tue Feb 9 00:26:05 1999 Mumit Khan - - * include/dir.h: Reintroduce as an obsolescent header. - * crt1.c (signal.h): Include. - (_gnu_exception_handler): New function to properly handle win32 - asynchronous signals. - (mainCRTStartup): Use. - -Sun Jan 3 23:52:25 1999 Mumit Khan - - * include/direct.h: Include io.h instead of dir.h - * include/dirent.h: Likewise. - * include/dos.h: Likewise. - * include/stdio.h: Replace reference to dir.h with io.h. - -Thu Dec 31 16:04:55 1998 Mumit Khan - - * 1999-01-01 release bundled with egcs-1.1.1. - - * include/io.h: Incorporate dir.h. - * include/dir.h: Remove. - * include/signal.h: Move RC_INVOKED up a bit. - -Tue Dec 29 15:04:38 1998 Mumit Khan - - * include/signal.h (sig_atomic_t): Define. - (NSIG): Define. - * include/malloc.h: Import defs from deprecated alloc.h. - * include/alloc.h: Remove. - - From "Daniel J. Rodriksson" : - * include/sys/types.h (_dev_t): Should be unsigned int for MSVCRT. - * include/sys/stat.h (struct stat): st_uid is of type short. Use - _off_t instead of long for st_size. - -Thu Sep 10 22:28:49 1998 Mumit Khan - - * include/errno.h (sys_errlist, sys_nerr): Move from here ... - * include/stdlib.h: Here. - - * include/netdb.h: Remove. - * include/arpa/inet.h: Remove. - * include/netinet/in.h: Remove. - * include/sys/socket.h: Remove. - -Fri Sep 4 15:09:11 1998 Mumit Khan - - * Release egcs-1.1. - - * include/{ctype.h,dos.h,io.h,string.h,time.h,sys/types.h, - sys/utime.h}: Protect stddef.h in RC_INVOKED macro. - -Thu Sep 3 10:43:29 1998 Mumit Khan - - * setjmp.h (_JBTYPE, _JBLEN): Define correctly. - (jmpbuf): typedef using above. - (setjmp, longjmp): Prototype using jmpbuf. - - Merge with Colin Peters' 980701 snapshot. I've ignored changes to - obsolescent imported names, ie., from __imp__ to _imp___. - - Also ignored empty include/sys/param.h and incorrect - include/sys/times.h. - - * CRTinit.c: New file. - * include/{errno.h,fcntl.h,math.h,process.h} (__MSVCRT__): Use #ifdef - instead of #if. - * include/io.h (umask): Fix prototype. - * include/stdlib.h (OS constants): Replace with Colin's. - * include/time.h (tzset, daylight, timezone): Replace with Colin's. - * include/sys/state.h: Merge. - -Thu Sep 3 09:49:07 1998 Mumit Khan - - * include/assert.h (assert): Lose the trailing semicolon. - -Thu Jul 30 21:18:49 1998 Mumit Khan - - * include/math.h (matherr): Declare. - * include/stdio.h (fileno, _fileno): Declare. - * include/stdlib.h (environ, _environ): Fix to use runtime DLL. - - From Earnie Boyd: - * include/stdio.h (fdopen, _fdopen): Add const. - (getw, putw): Declare. - * include/stdlib.h (MAX_{DRIVE,DIR,FNAME,EXT}): Fix. - -Sat Jun 13 18:19:41 1998 Mumit Khan - - * include/time.h (_timezone): Undefine. - * include/sys/timeb.h (struct timeb): Rename _timezone to timezone. - - * include/time.h (_daylight, _timezone, _tzname, _tzset): Remove - __cdecl for MSVCRT. - * include/stdlib.h (environ): Use DLL version. - * init.c (environ): Undefine it before use. - -Sun Mar 22 19:59:30 1998 Mumit Khan - - * Update to 980309 snapshot from Colin Peters. - - * include/utime.h: remove - * include/stdlib.h (__imp__osver_dll, __imp__winver_dll, - __imp__winmajor_dll, __imp__winminor_dll): Apply Jan-Jaap's - patches to define these. - * include/time.h (CLK_TCK): Renamed from CLK_TICK. - (_daylight, _timezone, _tzname, _tzset): Define. - - * include/netdb.h: Add from Colin's windows32api changes. - * include/sys/socket.h: Likewise. - * include/arpa/inet.h: Likewise. - * include/netinet/in.h: Likewise. - -Wed Feb 4 14:16:44 1998 Mumit Khan - - * Update to 980128 snapshot from Colin Peters. - -Sat Dec 6 21:30:35 1997 Mumit Khan - - * configure.in (AC_INIT): Use dllmain.c instead of defunct - oldnames.c - * configure: Regenerate. - -Fri Dec 5 15:57:36 1997 Mumit Khan - - * Update to 971205 snapshot from Colin Peters. Lots of changes. - Files renamed and include hierarchy loses directories named - nonansi. - - * include/dos.h: from Jan-Jaap. - -Thu Dec 4 21:48:13 1997 Mumit Khan - - Changes to conform to FSF tree. - - * crt1.c: Renamed from mcrt0.c. - * dllcrt1.c: Renamed from dllcrt0.c. - * Makefile.in: Update above. Also renamed libmoldnames.a to - libmoldname.a. - -Mon Dec 1 16:51:30 1997 Mumit Khan - - * crtdll.def: Export all functions but the ones with funny names. - * moldnames.def: Add fdopen since fileno is already there. - * include/nonansi/dos.h: New file from Jan-Jaap. - * include/errno.h: Add extern decl + various additions from JJ. - * include/stdio.h: Likewise. - * include/stdlib.h: Likewise. - * include/nonansi/io.h: Likewise. - * include/nonansi/process.h: Likewise. - * include/sys/types.h: Likewise. - -Tue Nov 4 14:51:01 1997 Mumit Khan - - * include/time.h (CLK_TCK): Renamed from CLK_TICK. - (CLK_TICK): Delete. - * include/stdlib.h (free): Fix prototype to return void, not void*. - * include/nonansi/process.h: Add P_* and WAIT_* defs. - - * dllcrt0.c: Delete now-unneeded '.section .idata$3' asm hack. - * mcrt0.c: Likewise. - - * Makefile.in (LIBS): Delete moldnames.dll from target libs. - (libmoldnames.a): Add explicit rule to create it. - -Fri Aug 15 18:23:43 1997 Rob Savoye - - New directory for the minimalist cygwin environment. - - * crtglob.c: New file. Turn on file globbing support. - * crt_noglob.c: New file. Turn off file globbing support. - * ctype_old.c: New file. Wrappers for functions that don't - have an underscore. - * dirent.c: New file. Directory routines readdir, opendir, closedir. - * dllcrt0.c: New file. Initialization code to use crtdll.dll. - * dllmain.c: New file. A stub DllMain function. - * hugeval.c: New file. A gross hack to define HUGE_VAL. - * init.c: New file. Common code to initialize standard file - handles and command line arguments. - * main.c: New file. A main for programs that only call WinMain. - * mcrt0.c: New file. Default crt0 for mingw32. - * oldnames.c: New File. Wrappers for functions that don't - have an underscore. - * string_old.c: New File. - * include/{assert.h,ctype.h,errno.h,float.h,limits.h,locale.h - math.h,nonansi,setjmp.h,signal.h,stdarg.h,stddef.h,stdio.h,stdlib.h - string.h,tchar.h,time.h,wchar.h}: New header files for mingw. - * include/sys/types.h: New header file for mingw. - * include/nonansi/{alloc.h,conio.h,dir.h,direct.h,dirent.h - fcntl.h,io.h,malloc.h,mem.h,memory.h,process.h,share.h,unistd.h - utime.h,values.h,varargs.h}: New header files for mingw. - * include/nonansi/sys/{fcntl.h,locking.h,stat.h,time.h - timeb.h,unistd.h}: New header files for mingw. - * Makefile.in,configure.in: Build and configure support. - * configure: Generated from autoconf 2.12 with Cygnus patches. diff --git a/winsup/mingw/Makefile.in b/winsup/mingw/Makefile.in deleted file mode 100644 index 78fb18f4a..000000000 --- a/winsup/mingw/Makefile.in +++ /dev/null @@ -1,390 +0,0 @@ -# Makefile.in for the winsup/mingw directory. -# Copyright (c) 1995, 1996, 1997, 1998 Cygnus Solutions - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# This makefile requires GNU make. - -PACKAGE = mingw-runtime -VERSION = 1.3 -CYGRELEASE = 1 - -VPATH = @srcdir@ -srcdir = @srcdir@ -objdir = . - -host_alias = @host_alias@ -build_alias = @build_alias@ -target_alias = @target_alias@ -prefix = @prefix@ - -program_transform_name = @program_transform_name@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -libdir = @libdir@ -ifeq ($(target_alias),$(host_alias)) -ifeq ($(build_alias),$(host_alias)) -tooldir:=$(exec_prefix) -else -tooldir:=$(exec_prefix)/$(target_alias) -endif -else -tooldir:=$(exec_prefix)/$(target_alias) -endif -datadir = @datadir@ -infodir = @infodir@ -includedir = @includedir@ -ifneq (,$(findstring cygwin,$(target_alias))) -inst_bindir:=$(tooldir)/bin -inst_includedir:=$(tooldir)/include/mingw -inst_libdir:=$(tooldir)/lib/mingw -else -inst_bindir:=$(bindir) -inst_includedir:=$(includedir) -inst_libdir:=$(libdir) -endif - -# The Mingw headers are installed under a subdirectory of -# $(tooldir)/include when configuring in Cygwin. -HEADER_SUBDIR = @HEADER_SUBDIR@ - -SHELL = /bin/sh - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -mkinstalldirs = $(SHELL) @MKINSTALLDIRS@ - -CC = @CC@ -# FIXME: Which is it, CC or CC_FOR_TARGET? -CC_FOR_TARGET = $(CC) -AS_FOR_TARGET = $(AS) -CFLAGS = @CFLAGS@ -CXXFLAGS = @CXXFLAGS@ - -# compiling with Cygwin? -MNO_CYGWIN = @MNO_CYGWIN@ -ifdef MNO_CYGWIN - subdirforlib=/mingw -else - libdir= -endif - -# Either crtdll (CRT_ID 1) or msvcrt (CRT_ID 2). -RUNTIME = @RUNTIME@ -CRT_ID = @CRT_ID@ - -# Needed for threading dll. -THREAD_DLL = @THREAD_DLL@ -THREAD_DLL_VERSION = 10 -THREAD_DLL_NAME = $(THREAD_DLL)$(THREAD_DLL_VERSION).dll - -# Various libraries. -LIBM_A=@LIBM_A@ - -INCLUDES = -I$(srcdir)/include -I$(srcdir)/../w32api/include \ - -I$(srcdir)/../include \ - -nostdinc -nostdinc++ -ALL_CFLAGS = $(CFLAGS) $(INCLUDES) $(MNO_CYGWIN) -ALL_CXXFLAGS = $(CXXFLAGS) $(INCLUDES) $(MNO_CYGWIN) - -AS = @AS@ -AR = @AR@ -LD = @LD@ -AR_FLAGS = rcv -RANLIB = @RANLIB@ -DLLTOOL = @DLLTOOL@ -DLLTOOLFLAGS = -DLLTOOL_FOR_TARGET = $(DLLTOOL) -DLLTOOL_FLAGS = --as $(AS_FOR_TARGET) -DLLWRAP = @DLLWRAP@ -DLLWRAP_FOR_TARGET = $(DLLWRAP) -DLLWRAP_FLAGS = --dlltool $(DLLTOOL) --as $(AS) --driver-name $(CC) -TAR = tar - -SUBDIRS := @SUBDIRS@ - -FLAGS_TO_PASS:=\ - AS="$(AS)" \ - CC="$(CC)" \ - CFLAGS="$(CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_CONFIG)" \ - CXXFLAGS="$(CXXFLAGS) $(CFLAGS_COMMON) $(CFLAGS_CONFIG)" \ - EXE_LDFLAGS="$(EXE_LDFLAGS)" \ - AR="$(AR)" \ - RANLIB="$(RANLIB)" \ - LD="$(LD)" \ - DLLTOOL="$(DLLTOOL)" \ - exec_prefix="$(exec_prefix)" \ - bindir="$(bindir)" \ - libdir="$(libdir)" \ - tooldir="$(tooldir)" \ - datadir="$(datadir)" \ - infodir="$(infodir)" \ - includedir="$(includedir)" \ - inst_bindir="$(inst_bindir)" \ - inst_includedir="$(inst_includedir)" \ - inst_libdir="$(inst_libdir)" \ - prefix="$(prefix)" \ - target_alias="$(target_alias)" - -CRT0S = crt1.o dllcrt1.o crt2.o dllcrt2.o CRT_noglob.o crtmt.o crtst.o -MINGW_OBJS = CRTglob.o CRTfmode.o CRTinit.o dirent.o dllmain.o gccmain.o \ - main.o crtst.o mthr_stub.o -MOLD_OBJS = ctype_old.o string_old.o - -LIBS = libcrtdll.a libmsvcrt.a libmsvcrt20.a libmsvcrt40.a libmingw32.a \ - libcoldname.a libmoldname.a $(LIBM_A) libmingwthrd.a - -DLLS = $(THREAD_DLL_NAME) - -SRCDIST_FILES = CRT_noglob.c CRTfmode.c CRTglob.c CRTinit.c ChangeLog \ -Makefile.in README TODO config.guess config.sub configure configure.in \ -crt1.c crtdll.def crtmt.c crtst.c ctype_old.c dirent.c dllcrt1.c dllmain.c \ -gccmain.c init.c install-sh jamfile main.c mkinstalldirs moldname-crtdll.def \ -moldname-msvcrt.def moldname.def moldname.def.in msvcrt.def msvcrt20.def \ -msvcrt40.def mthr.c mthr_init.c mthr_stub.c readme.txt string_old.c - -all_dlls_host = @all_dlls_host@ -install_dlls_host = @install_dlls_host@ - -all: $(CRT0S) $(LIBS) $(all_dlls_host) - @$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS) - -all_dlls_host: $(DLLS) - -install_dlls_host: - for i in $(DLLS); do \ - $(INSTALL_PROGRAM) $$i $(inst_bindir)/$$i ; \ - done - -_libm_dummy.o: - rm -f _libm_dummy.c - echo "static int __mingw_libm_dummy;" > _libm_dummy.c - $(CC) -c $(ALL_CFLAGS) _libm_dummy.c - rm -f _libm_dummy.c - -libm.a: _libm_dummy.o - $(AR) rc $@ _libm_dummy.o - $(RANLIB) $@ - -libmingwthrd.a: crtmt.o mingwthrd.def - $(DLLTOOL) $(DLLTOOL_FLAGS) --dllname $(THREAD_DLL_NAME) \ - --def mingwthrd.def --output-lib $@ - $(AR) $(ARFLAGS) $@ crtmt.o - $(RANLIB) $@ - -# Using dllwrap would be so much easier, but Cygnus top-level configure -# Makefile.in etc don't pass the right variables yet. -xx_$(THREAD_DLL_NAME) xx_mingwthrd.def: mthr.o mthr_init.o - $(DLLWRAP) $(DLLWRAP_FLAGS) -o $(THREAD_DLL_NAME) \ - --output-def mingwthrd.def \ - mthr.o mthr_init.o - -DLL_OFILES = mthr.o mthr_init.o -DLL_CC_STUFF = -B./ -mdll $(MNO_CYGWIN) -Wl,--image-base,0x6FBC0000 \ - -Wl,--entry,_DllMainCRTStartup@12 \ - $(DLL_OFILES) -DLL_DLLTOOL_STUFF = --as=$(AS) --dllname $(THREAD_DLL_NAME) \ - --def mingwthrd.def \ - --base-file mingwthrd.base --output-exp mingwthrd.exp - -$(THREAD_DLL_NAME) mingwthrd.def: $(DLL_OFILES) Makefile - $(DLLTOOL) --as $(AS) --output-def mingwthrd.def $(DLL_OFILES) - $(CC) -Wl,--base-file=mingwthrd.base $(DLL_CC_STUFF) \ - -o mingwthrd_dummy.exe - $(DLLTOOL) $(DLL_DLLTOOL_STUFF) - $(CC) -Wl,--base-file=mingwthrd.base mingwthrd.exp $(DLL_CC_STUFF) \ - -o mingwthrd_dummy.exe - $(DLLTOOL) $(DLL_DLLTOOL_STUFF) - $(CC) mingwthrd.exp -o $(THREAD_DLL_NAME) $(DLL_CC_STUFF) - rm -f mingwthrd_dummy.exe - -libmingw32.a: $(MINGW_OBJS) - $(AR) rc $@ $(MINGW_OBJS) - $(RANLIB) $@ - -$(srcdir)/moldname-crtdll.def: moldname.def.in - $(CC) -DRUNTIME=crtdll \ - -D__FILENAME__=moldname-crtdll.def \ - -D__CRTDLL__ -c -E -P \ - -xc-header $? > $@ - -$(srcdir)/moldname-msvcrt.def: moldname.def.in - $(CC) -DRUNTIME=msvcrt \ - -D__FILENAME__=moldname-msvcrt.def \ - -D__MSVCRT__ -c -E -P \ - -xc-header $? > $@ - -libcoldname.a: $(srcdir)/moldname-crtdll.def $(MOLD_OBJS) - $(DLLTOOL) --as $(AS) -k -U \ - --dllname crtdll.dll \ - --def $(srcdir)/moldname-crtdll.def \ - --output-lib $@ - $(AR) rc $@ $(MOLD_OBJS) - $(RANLIB) $@ - -libmoldname.a: $(srcdir)/moldname-msvcrt.def $(MOLD_OBJS) - $(DLLTOOL) --as $(AS) -k -U \ - --dllname msvcrt.dll \ - --def $(srcdir)/moldname-msvcrt.def \ - --output-lib $@ - $(AR) rc $@ $(MOLD_OBJS) - $(RANLIB) $@ - -# The special rules are necessary. -crt1.o dllcrt1.o: - $(CC) -c -D__CRTDLL__ -U__MSVCRT__ $(ALL_CFLAGS) $< -o $@ - -crt2.o dllcrt2.o: - $(CC) -c -D__MSVCRT__ -U__CRTDLL__ $(ALL_CFLAGS) $< -o $@ - -clean: - -rm -f *.o *.a *~ core a.out mingwthrd.def mingwthrd.base mingwthrd.exp - -rm -f $(THREAD_DLL_NAME) mingwthrd_dummy.exe - @$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS) - -distclean: - @$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS) - -rm -f *.o *.a *~ core a.out mingwthrd.def mingwthrd.base mingwthrd.exp - -rm -f $(THREAD_DLL_NAME) - -rm -f config.cache config.status config.log - -rm -f Makefile - -ifdef SNAPDATE - distdir=$(PACKAGE)-$(VERSION)-$(SNAPDATE) -else - ifneq (,$(findstring cygwin, $(target_alias))) - distdir=$(PACKAGE)-$(VERSION)-$(CYGRELEASE) - else - distdir=$(PACKAGE)-$(VERSION) - endif -endif - -dist: srcdist bindist - -srcdist: - rm -rf $(distdir) - mkdir $(distdir) - chmod 755 $(distdir) - for i in $(SRCDIST_FILES); do \ - cp -p $(srcdir)/$$i $(distdir)/$$i ; \ - done - for i in $(SUBDIRS); do \ - (cd $$i; $(MAKE) distdir=../$(distdir) dist); \ - done -#FIXME this needs to be done with SUBDIRS and Makefiles. - mkdir $(distdir)/include - mkdir $(distdir)/include/sys - cp $(srcdir)/include/*.h $(distdir)/include/ - cp $(srcdir)/include/sys/*.h $(distdir)/include/sys/ -#end FIXME - rm -f $(distdir)-src.tar.gz - $(TAR) czf $(distdir)-src.tar.gz $(distdir) - - -bindist: - rm -rf $(distdir) - mkdir $(distdir) - chmod 755 $(distdir) - $(MAKE) install prefix=$(shell pwd)/$(distdir) - rm -f $(distdir).tar.gz - cd $(distdir); \ - $(TAR) czf ../$(distdir).tar.gz * - -snapshot: - make dist SNAPDATE=$(shell date '+%Y%m%d') - -info: - -info-html: - -install-info: info - -install-dirs: - $(mkinstalldirs) $(inst_bindir) - $(mkinstalldirs) $(inst_includedir) - $(mkinstalldirs) $(inst_libdir) - -install: all install-dirs $(install_dlls_host) - for i in $(LIBS); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ - done - for i in $(CRT0S); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ - done - for sub in . sys ; do \ - dstdir=$(inst_includedir)/$$sub ; \ - $(mkinstalldirs) $$dstdir ; \ - for i in $(srcdir)/include/$$sub/*.h ; do \ - $(INSTALL_DATA) $$i $$dstdir/`basename $$i` ; \ - done ; \ - done - @$(MAKE) subdirs DO=$@ $(FLAGS_TO_PASS) - -subdirs: $(SUBDIRS) - @true - -# The . is here because SUBDIRS may be empty - -. $(SUBDIRS): force - @if [ -d ./$@ ]; then \ - echo "Making $(DO) in $@..." ; \ - if (rootme=`pwd`/ ; export rootme ; \ - rootsrc=`cd $(srcdir); pwd`/ ; export rootsrc ; \ - cd ./$@; \ - $(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \ - else exit 1 ; fi ; \ - else true ; fi ; \ - -force: - -# -# Dependancies -# -libcrtdll.a: $(srcdir)/crtdll.def -libmsvcrt.a: $(srcdir)/msvcrt.def -libmsvcrt20.a: $(srcdir)/msvcrt20.def -libmsvcrt40.a: $(srcdir)/msvcrt40.def -CRT_noglob.o: $(srcdir)/CRT_noglob.c -CRTfmode.o: $(srcdir)/CRTfmode.c -CRTglob.o: $(srcdir)/CRTglob.c -CRTinit.o: $(srcdir)/CRTinit.c -crt1.o: $(srcdir)/crt1.c $(srcdir)/init.c -crt2.o: $(srcdir)/crt1.c $(srcdir)/init.c -crtmt.o: $(srcdir)/crtmt.c -crtst.o: $(srcdir)/crtst.c -ctype_old.o: $(srcdir)/ctype_old.c -dllcrt1.o: $(srcdir)/dllcrt1.c -dllcrt2.o: $(srcdir)/dllcrt1.c -dirent.o: $(srcdir)/dirent.c -dllmain.o: $(srcdir)/dllmain.c -main.o: $(srcdir)/main.c -oldnames.o: $(srcdir)/oldnames.c -string_old.o: $(srcdir)/string_old.c - -Makefile: Makefile.in config.status configure - $(SHELL) config.status - -config.status: configure - $(SHELL) config.status --recheck - -.SUFFIXES: .y $(SUFFIXES) .cc .def .a - -lib%.a:%.def - $(DLLTOOL) --as=$(AS) -k --dllname $*.dll --output-lib lib$*.a --def $< - -.c.o: - $(CC) -c $(ALL_CFLAGS) $< -o $@ - diff --git a/winsup/mingw/README b/winsup/mingw/README deleted file mode 100644 index 936819172..000000000 --- a/winsup/mingw/README +++ /dev/null @@ -1,10 +0,0 @@ - Free Win32 runtime and import library definitions - - Maintained by MinGW Developers - Send bug reports and questions to MinGW-users@lists.sourceforge.net - URL: http://www.mingw.org - -A historical readme.txt exists and is distributed for your edification. The -references within may or may not be correct. Please do not rely on them. See -http://www.mingw.org for a list of valid references. - diff --git a/winsup/mingw/TODO b/winsup/mingw/TODO deleted file mode 100644 index 60f6bc2af..000000000 --- a/winsup/mingw/TODO +++ /dev/null @@ -1 +0,0 @@ -Finish the README. diff --git a/winsup/mingw/config.guess b/winsup/mingw/config.guess deleted file mode 100755 index 5432d5898..000000000 --- a/winsup/mingw/config.guess +++ /dev/null @@ -1,1342 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 -# Free Software Foundation, Inc. - -version='2000-11-16' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Written by Per Bothner . -# Please send patches to . -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit system type (host/target name). -# -# Only a few systems have been added to this list; please add others -# (but try to keep the structure clean). -# - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of this system. - -Operation modes: - -h, --help print this help, then exit - -V, --version print version number, then exit" - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case "$1" in - --version | --vers* | -V ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - exec >&2 - echo "$me: invalid option $1" - echo "$help" - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - - -dummy=dummy-$$ -trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15 - -# Use $HOST_CC if defined. $CC may point to a cross-compiler -if test x"$CC_FOR_BUILD" = x; then - if test x"$HOST_CC" != x; then - CC_FOR_BUILD="$HOST_CC" - else - if test x"$CC" != x; then - CC_FOR_BUILD="$CC" - else - echo 'int dummy(){}' >$dummy.c - for c in cc c89 gcc; do - ($c $dummy.c -c) >/dev/null 2>&1 - if test $? = 0; then - CC_FOR_BUILD="$c"; break - fi - done - rm -f $dummy.c $dummy.o - if test x"$CC_FOR_BUILD" = x; then - CC_FOR_BUILD=no_compiler_found - fi - fi - fi -fi - - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 8/24/94.) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # Netbsd (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # Determine the machine/vendor (is the vendor relevant). - case "${UNAME_MACHINE}" in - amiga) machine=m68k-unknown ;; - arm32) machine=arm-unknown ;; - atari*) machine=m68k-atari ;; - sun3*) machine=m68k-sun ;; - mac68k) machine=m68k-apple ;; - macppc) machine=powerpc-apple ;; - hp3[0-9][05]) machine=m68k-hp ;; - ibmrt|romp-ibm) machine=romp-ibm ;; - *) machine=${UNAME_MACHINE}-unknown ;; - esac - # The Operating System including object format. - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - # The OS release - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - cat <$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `./$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - esac - fi - rm -f $dummy.s $dummy - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - arc64:OpenBSD:*:*) - echo mips64el-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hkmips:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - atari*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - sun3*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy \ - && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i?86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:4) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` - if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=4.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - case "${HPUX_REV}" in - 11.[0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - esac ;; - esac - fi ;; - esac - if [ "${HP_ARCH}" = "" ]; then - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy - fi ;; - esac - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i?86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - hppa*:OpenBSD:*:*) - echo hppa-unknown-openbsd - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*X-MP:*:*:*) - echo xmp-cray-unicos - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} - exit 0 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - exit 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY-2:*:*:*) - echo cray2-cray-unicos - exit 0 ;; - F300:UNIX_System_V:*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - F301:UNIX_System_V:*:*) - echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - i?86:BSD/386:*:* | i?86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i386-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - *:Linux:*:*) - - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - ld_supported_emulations=`cd /; ld --help 2>&1 \ - | sed -ne '/supported emulations:/!d - s/[ ][ ]*/ /g - s/.*supported emulations: *// - s/ .*// - p'` - case "$ld_supported_emulations" in - *ia64) - echo "${UNAME_MACHINE}-unknown-linux" - exit 0 - ;; - i?86linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 - ;; - elf_i?86) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - i?86coff) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 - ;; - sparclinux) - echo "${UNAME_MACHINE}-unknown-linux-gnuaout" - exit 0 - ;; - elf32_sparc) - echo "${UNAME_MACHINE}-unknown-linux-gnu" - exit 0 - ;; - armlinux) - echo "${UNAME_MACHINE}-unknown-linux-gnuaout" - exit 0 - ;; - elf32arm*) - echo "${UNAME_MACHINE}-unknown-linux-gnuoldld" - exit 0 - ;; - armelf_linux*) - echo "${UNAME_MACHINE}-unknown-linux-gnu" - exit 0 - ;; - m68klinux) - echo "${UNAME_MACHINE}-unknown-linux-gnuaout" - exit 0 - ;; - elf32ppc | elf32ppclinux) - # Determine Lib Version - cat >$dummy.c < -#if defined(__GLIBC__) -extern char __libc_version[]; -extern char __libc_release[]; -#endif -main(argc, argv) - int argc; - char *argv[]; -{ -#if defined(__GLIBC__) - printf("%s %s\n", __libc_version, __libc_release); -#else - printf("unkown\n"); -#endif - return 0; -} -EOF - LIBC="" - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null - if test "$?" = 0 ; then - ./$dummy | grep 1\.99 > /dev/null - if test "$?" = 0 ; then - LIBC="libc1" - fi - fi - rm -f $dummy.c $dummy - echo powerpc-unknown-linux-gnu${LIBC} - exit 0 - ;; - shelf_linux) - echo "${UNAME_MACHINE}-unknown-linux-gnu" - exit 0 - ;; - esac - - if test "${UNAME_MACHINE}" = "alpha" ; then - cat <$dummy.s - .data - \$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main - main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - LIBC="" - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `./$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - esac - - objdump --private-headers $dummy | \ - grep ld.so.1 > /dev/null - if test "$?" = 0 ; then - LIBC="libc1" - fi - fi - rm -f $dummy.s $dummy - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 - elif test "${UNAME_MACHINE}" = "mips" ; then - cat >$dummy.c < /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif -#ifdef __MIPSEB__ - printf ("%s-unknown-linux-gnu\n", argv[1]); -#endif -#ifdef __MIPSEL__ - printf ("%sel-unknown-linux-gnu\n", argv[1]); -#endif - return 0; -} -EOF - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - elif test "${UNAME_MACHINE}" = "s390"; then - echo s390-ibm-linux && exit 0 - elif test "${UNAME_MACHINE}" = "x86_64"; then - echo x86_64-unknown-linux-gnu && exit 0 - elif test "${UNAME_MACHINE}" = "parisc" -o "${UNAME_MACHINE}" = "hppa"; then - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) - echo hppa1.1-unknown-linux-gnu - ;; - PA8*) - echo hppa2.0-unknown-linux-gnu - ;; - *) - echo hppa-unknown-linux-gnu - ;; - esac - exit 0 - else - # Either a pre-BFD a.out linker (linux-gnuoldld) - # or one that does not give us useful --help. - # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. - # If ld does not provide *any* "supported emulations:" - # that means it is gnuoldld. - test -z "$ld_supported_emulations" \ - && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 - - case "${UNAME_MACHINE}" in - i?86) - VENDOR=pc; - ;; - *) - VENDOR=unknown; - ;; - esac - # Determine whether the default compiler is a.out or elf - cat >$dummy.c < -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif -#ifdef __ELF__ -# ifdef __GLIBC__ -# if __GLIBC__ >= 2 - printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -#else - printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); -#endif - return 0; -} -EOF - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - fi ;; -# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions -# are messed up and put the nodename in both sysname and nodename. - i?86:DYNIX/ptx:4*:*) - echo i386-sequent-sysv4 - exit 0 ;; - i?86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i?86:*:5:7*) - # Fixed at (any) Pentium or better - UNAME_MACHINE=i586 - if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then - echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} - fi - exit 0 ;; - i?86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - i?86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - if test "${UNAME_MACHINE}" = "x86pc"; then - UNAME_MACHINE=pc - fi - echo `uname -p`-${UNAME_MACHINE}-nto-qnx - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-[KW]:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -#if !defined (ultrix) - printf ("vax-dec-bsd\n"); exit (0); -#else - printf ("vax-dec-ultrix\n"); exit (0); -#endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0 -rm -f $dummy.c $dummy - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess version = $version - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "version='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/winsup/mingw/config.sub b/winsup/mingw/config.sub deleted file mode 100755 index 3cccc5acd..000000000 --- a/winsup/mingw/config.sub +++ /dev/null @@ -1,1332 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script, version 1.1. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 -# Free Software Foundation, Inc. - -version='2000-11-15' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Please send patches to . -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -V, --version print version number, then exit" - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case "$1" in - --version | --vers* | -V ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - exec >&2 - echo "$me: invalid option $1" - echo "$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | storm-chaos*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ - | arme[lb] | armv[2345] | armv[345][lb] | pyramid | mn10200 | mn10300 | tron | a29k \ - | 580 | i960 | h8300 \ - | x86 | ppcbe | mipsbe | mipsle | shbe | shle | armbe | armle \ - | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ - | hppa64 \ - | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ - | alphaev6[78] \ - | we32k | ns16k | clipper | i370 | sh | sh[34] \ - | powerpc | powerpcle \ - | 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \ - | mips64orion | mips64orionel | mipstx39 | mipstx39el \ - | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ - | mips64vr5000 | miprs64vr5000el | mcore \ - | sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \ - | thumb | d10v | d30v | fr30 | avr) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl) - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i[234567]86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - # FIXME: clean up the formatting here. - vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ - | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ - | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ - | xmp-* | ymp-* \ - | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \ - | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ - | hppa2.0n-* | hppa64-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ - | alphaev6[78]-* \ - | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ - | clipper-* | orion-* \ - | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ - | sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ - | mipstx39-* | mipstx39el-* | mcore-* \ - | f301-* | armv*-* | s390-* | sv1-* | t3e-* \ - | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ - | thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \ - | bs2000-* | tic54x-* | c54x-* | x86_64-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | ymp) - basic_machine=ymp-cray - os=-unicos - ;; - cray2) - basic_machine=cray2-cray - os=-unicos - ;; - [ctj]90-cray) - basic_machine=c90-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i[34567]86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i[34567]86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i[34567]86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i[34567]86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - i386-go32 | go32) - basic_machine=i386-unknown - os=-go32 - ;; - i386-mingw32 | mingw32) - basic_machine=i386-unknown - os=-mingw32 - ;; - i[34567]86-pw32 | pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mipsel*-linux*) - basic_machine=mipsel-unknown - os=-linux-gnu - ;; - mips*-linux*) - basic_machine=mips-unknown - os=-linux-gnu - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - msdos) - basic_machine=i386-unknown - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon) - basic_machine=i686-pc - ;; - pentiumii | pentium2) - basic_machine=i686-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sparclite-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=t3e-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xmp) - basic_machine=xmp-cray - os=-unicos - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - mips) - if [ x$os = x-linux-gnu ]; then - basic_machine=mips-unknown - else - basic_machine=mips-mips - fi - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh3 | sh4) - basic_machine=sh-unknown - ;; - sparc | sparcv9) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - c4x*) - basic_machine=c4x-none - os=-coff - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* | -storm-chaos*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i[34567]86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto*) - os=-nto-qnx - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -*MiNT) - os=-mint - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f301-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -vxsim* | -vxworks*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -*MiNT) - vendor=atari - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "version='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/winsup/mingw/configure b/winsup/mingw/configure deleted file mode 100755 index 15708528e..000000000 --- a/winsup/mingw/configure +++ /dev/null @@ -1,2166 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=dllmain.c - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - - - - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:555: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:576: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -if test $host != $build; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:602: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_CC"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:634: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="gcc" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - CC="gcc" -fi -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:670: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:719: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:743: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi - if test "$ac_test_CXXFLAGS" != set; then - CXXFLAGS='$(CFLAGS)' - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - - -case "$with_cross_host" in - ""|*cygwin*) all_dlls_host='all_dlls_host' - install_dlls_host='install_dlls_host';; -esac - - - -# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:784: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -AR="$ac_cv_prog_AR" -if test -n "$AR"; then - echo "$ac_t""$AR" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_AR"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:816: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AR="ar" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" -fi -fi -AR="$ac_cv_prog_AR" -if test -n "$AR"; then - echo "$ac_t""$AR" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - AR="ar" -fi -fi - - - -# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:853: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AS="${ac_tool_prefix}as" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -AS="$ac_cv_prog_AS" -if test -n "$AS"; then - echo "$ac_t""$AS" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_AS"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "as", so it can be a program name with args. -set dummy as; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:885: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AS="as" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" -fi -fi -AS="$ac_cv_prog_AS" -if test -n "$AS"; then - echo "$ac_t""$AS" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - AS="as" -fi -fi - - -# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:921: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_RANLIB"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:953: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB="ranlib" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - RANLIB="ranlib" -fi -fi - - -# Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args. -set dummy ${ac_tool_prefix}ld; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:989: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$LD"; then - ac_cv_prog_LD="$LD" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_LD="${ac_tool_prefix}ld" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -LD="$ac_cv_prog_LD" -if test -n "$LD"; then - echo "$ac_t""$LD" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_LD"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "ld", so it can be a program name with args. -set dummy ld; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1021: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$LD"; then - ac_cv_prog_LD="$LD" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_LD="ld" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_LD" && ac_cv_prog_LD="ld" -fi -fi -LD="$ac_cv_prog_LD" -if test -n "$LD"; then - echo "$ac_t""$LD" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - LD="ld" -fi -fi - - -# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1057: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -DLLTOOL="$ac_cv_prog_DLLTOOL" -if test -n "$DLLTOOL"; then - echo "$ac_t""$DLLTOOL" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_DLLTOOL"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1089: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_DLLTOOL="dlltool" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_DLLTOOL" && ac_cv_prog_DLLTOOL="dlltool" -fi -fi -DLLTOOL="$ac_cv_prog_DLLTOOL" -if test -n "$DLLTOOL"; then - echo "$ac_t""$DLLTOOL" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - DLLTOOL="dlltool" -fi -fi - - -# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1125: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_DLLWRAP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$DLLWRAP"; then - ac_cv_prog_DLLWRAP="$DLLWRAP" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_DLLWRAP="${ac_tool_prefix}dlltool" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -DLLWRAP="$ac_cv_prog_DLLWRAP" -if test -n "$DLLWRAP"; then - echo "$ac_t""$DLLWRAP" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_DLLWRAP"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1157: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_DLLWRAP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$DLLWRAP"; then - ac_cv_prog_DLLWRAP="$DLLWRAP" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_DLLWRAP="dlltool" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_DLLWRAP" && ac_cv_prog_DLLWRAP="dlltool" -fi -fi -DLLWRAP="$ac_cv_prog_DLLWRAP" -if test -n "$DLLWRAP"; then - echo "$ac_t""$DLLWRAP" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - DLLWRAP="dlltool" -fi -fi - - -# Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. -set dummy ${ac_tool_prefix}windres; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1193: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$WINDRES"; then - ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_WINDRES="${ac_tool_prefix}windres" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -WINDRES="$ac_cv_prog_WINDRES" -if test -n "$WINDRES"; then - echo "$ac_t""$WINDRES" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_WINDRES"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "windres", so it can be a program name with args. -set dummy windres; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1225: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$WINDRES"; then - ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_WINDRES="windres" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_WINDRES" && ac_cv_prog_WINDRES="windres" -fi -fi -WINDRES="$ac_cv_prog_WINDRES" -if test -n "$WINDRES"; then - echo "$ac_t""$WINDRES" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - WINDRES="windres" -fi -fi - - - -echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1260: checking how to run the C preprocessor" >&5 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then -if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - # This must be in double quotes, not single quotes, because CPP may get - # substituted into the Makefile and "${CC-cc}" will confuse make. - CPP="${CC-cc} -E" - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1281: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -E -traditional-cpp" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1298: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -nologo -E" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1315: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP=/lib/cpp -fi -rm -f conftest* -fi -rm -f conftest* -fi -rm -f conftest* - ac_cv_prog_CPP="$CPP" -fi - CPP="$ac_cv_prog_CPP" -else - ac_cv_prog_CPP="$CPP" -fi -echo "$ac_t""$CPP" 1>&6 - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:1342: checking for working alloca.h" >&5 -if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -int main() { -char *p = alloca(2 * sizeof(int)); -; return 0; } -EOF -if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - ac_cv_header_alloca_h=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_header_alloca_h=no -fi -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_header_alloca_h" 1>&6 -if test $ac_cv_header_alloca_h = yes; then - cat >> confdefs.h <<\EOF -#define HAVE_ALLOCA_H 1 -EOF - -fi - -echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:1375: checking for alloca" >&5 -if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -# define alloca _alloca -# else -# if HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif -# endif -# endif -#endif - -int main() { -char *p = (char *) alloca(1); -; return 0; } -EOF -if { (eval echo configure:1408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - ac_cv_func_alloca_works=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_func_alloca_works=no -fi -rm -f conftest* -fi - -echo "$ac_t""$ac_cv_func_alloca_works" 1>&6 -if test $ac_cv_func_alloca_works = yes; then - cat >> confdefs.h <<\EOF -#define HAVE_ALLOCA 1 -EOF - -fi - -if test $ac_cv_func_alloca_works = no; then - # The SVR3 libPW and SVR4 libucb both contain incompatible functions - # that cause trouble. Some versions do not even contain alloca or - # contain a buggy version. If you still want to use their alloca, - # use ar to extract alloca.o from them instead of compiling alloca.c. - ALLOCA=alloca.${ac_objext} - cat >> confdefs.h <<\EOF -#define C_ALLOCA 1 -EOF - - -echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:1440: checking whether alloca needs Cray hooks" >&5 -if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <&5 | - egrep "webecray" >/dev/null 2>&1; then - rm -rf conftest* - ac_cv_os_cray=yes -else - rm -rf conftest* - ac_cv_os_cray=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_os_cray" 1>&6 -if test $ac_cv_os_cray = yes; then -for ac_func in _getb67 GETB67 getb67; do - echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1470: checking for $ac_func" >&5 -if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -$ac_func(); -#endif - -; return 0; } -EOF -if { (eval echo configure:1498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_$ac_func=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_$ac_func=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then - echo "$ac_t""yes" 1>&6 - cat >> confdefs.h <&6 -fi - -done -fi - -echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:1525: checking stack direction for C alloca" >&5 -if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_stack_direction=0 -else - cat > conftest.$ac_ext < addr) ? 1 : -1; -} -main () -{ - exit (find_stack_direction() < 0); -} -EOF -if { (eval echo configure:1552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null -then - ac_cv_c_stack_direction=1 -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - ac_cv_c_stack_direction=-1 -fi -rm -fr conftest* -fi - -fi - -echo "$ac_t""$ac_cv_c_stack_direction" 1>&6 -cat >> confdefs.h <&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:1602: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:1623: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1641: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - - -configdirs="" -SUBDIRS="" -HEADER_SUBDIR="" - -case "$target_os" in -*cygwin*) - MNO_CYGWIN=-mno-cygwin - configdirs="$configdirs" - # FIXME MinGW versions of libm.a and libgmon.a needed for -mno-cygwin - # Do not build libm.a when building under Cygwin winsup. Otherwise, it'll - # overwrite Cygwin's one. Likewise for libgmon.a. - LIBM_A= - LIBGMON_A= - # Install mingw headers in mingw subdirectory. - HEADER_SUBDIR="mingw" - ;; -*) - # Build it for MSVCRT by default. - MNO_CYGWIN= - LIBM_A=libm.a - LIBGMON_A=libgmon.a - SUBDIRS="profile" - configdirs="$configdirs profile" - ;; -esac - -# THREAD_DLL used to be set within the above case and was mingwc for CRTDLL. -# I can find no reason to do this. -# -# FIXME: In the future I would like to change the dll name to mingwthrd to -# to match the libmingwthrd.a name. -THREAD_DLL=mingwm - -if test -n "$configdirs"; then - subdirs="$configdirs" - -fi - -MKINSTALLDIRS=$ac_aux_dir/mkinstalldirs - - - - - - - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1723: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@CC@%$CC%g -s%@all_dlls_host@%$all_dlls_host%g -s%@install_dlls_host@%$install_dlls_host%g -s%@AR@%$AR%g -s%@AS@%$AS%g -s%@RANLIB@%$RANLIB%g -s%@LD@%$LD%g -s%@DLLTOOL@%$DLLTOOL%g -s%@DLLWRAP@%$DLLWRAP%g -s%@WINDRES@%$WINDRES%g -s%@CPP@%$CPP%g -s%@ALLOCA@%$ALLOCA%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@subdirs@%$subdirs%g -s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g -s%@MNO_CYGWIN@%$MNO_CYGWIN%g -s%@THREAD_DLL@%$THREAD_DLL%g -s%@LIBM_A@%$LIBM_A%g -s%@LIBGMON_A@%$LIBGMON_A%g -s%@SUBDIRS@%$SUBDIRS%g -s%@HEADER_SUBDIR@%$HEADER_SUBDIR%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - -if test "$no_recursion" != yes; then - - # Remove --cache-file and --srcdir arguments so they do not pile up. - ac_sub_configure_args= - ac_prev= - for ac_arg in $ac_configure_args; do - if test -n "$ac_prev"; then - ac_prev= - continue - fi - case "$ac_arg" in - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - ;; - *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; - esac - done - - for ac_config_dir in $configdirs; do - - # Do not complain, so a configure script can configure whichever - # parts of a large source tree are present. - if test ! -d $srcdir/$ac_config_dir; then - continue - fi - - echo configuring in $ac_config_dir - - case "$srcdir" in - .) ;; - *) - if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; - else - { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; } - fi - ;; - esac - - ac_popdir=`pwd` - cd $ac_config_dir - - # A "../" for each directory in /$ac_config_dir. - ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'` - - case "$srcdir" in - .) # No --srcdir option. We are building in place. - ac_sub_srcdir=$srcdir ;; - /*) # Absolute path. - ac_sub_srcdir=$srcdir/$ac_config_dir ;; - *) # Relative path. - ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;; - esac - - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_sub_srcdir/configure; then - ac_sub_configure=$ac_sub_srcdir/configure - elif test -f $ac_sub_srcdir/configure.in; then - ac_sub_configure=$ac_configure - else - echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2 - ac_sub_configure= - fi - - # The recursion is here. - if test -n "$ac_sub_configure"; then - - # Make the cache file name correct relative to the subdirectory. - case "$cache_file" in - /*) ac_sub_cache_file=$cache_file ;; - *) # Relative path. - ac_sub_cache_file="$ac_dots$cache_file" ;; - esac - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir" - # The eval makes quoting arguments work. - if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir - then : - else - { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; } - fi - fi - - cd $ac_popdir - done -fi - - diff --git a/winsup/mingw/configure.in b/winsup/mingw/configure.in deleted file mode 100644 index 3e98517e7..000000000 --- a/winsup/mingw/configure.in +++ /dev/null @@ -1,140 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. - -dnl This file is part of winsup/mingw -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -AC_PREREQ(2.12) -AC_INIT(dllmain.c) - -dnl FIXME: We temporarily define our own version of AC_PROG_CC. This is -dnl copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -dnl are probably using a cross compiler, which will not be able to fully -dnl link an executable. This should really be fixed in autoconf -dnl itself. - -AC_DEFUN(LIB_AC_PROG_CC, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_TOOL(CC, gcc, gcc) -if test -z "$CC"; then - AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -AC_PROG_CC_GNU - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -dnl Check whether -g works, even if CFLAGS is set, in case the package -dnl plays around with CFLAGS (such as to build both debugging and -dnl normal versions of a library), tasteless as that idea is. - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - AC_PROG_CC_G - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi - if test "$ac_test_CXXFLAGS" != set; then - CXXFLAGS='$(CFLAGS)' - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi -]) - -LIB_AC_PROG_CC - -case "$with_cross_host" in - ""|*cygwin*) all_dlls_host='all_dlls_host' - install_dlls_host='install_dlls_host';; -esac -AC_SUBST(all_dlls_host) -AC_SUBST(install_dlls_host) - -AC_CHECK_TOOL(AR, ar, ar) - -AC_SUBST(AR) -AC_CHECK_TOOL(AS, as, as) -AC_SUBST(AS) -AC_CHECK_TOOL(RANLIB, ranlib, ranlib) -AC_SUBST(RANLIB) -AC_CHECK_TOOL(LD, ld, ld) -AC_SUBST(LD) -AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool) -AC_SUBST(DLLTOOL) -AC_CHECK_TOOL(DLLWRAP, dlltool, dlltool) -AC_SUBST(DLLWRAP) -AC_CHECK_TOOL(WINDRES, windres, windres) -AC_SUBST(WINDRES) - -AC_ALLOCA - -AC_CANONICAL_SYSTEM - -configdirs="" -SUBDIRS="" -HEADER_SUBDIR="" - -case "$target_os" in -*cygwin*) - MNO_CYGWIN=-mno-cygwin - configdirs="$configdirs" - # FIXME MinGW versions of libm.a and libgmon.a needed for -mno-cygwin - # Do not build libm.a when building under Cygwin winsup. Otherwise, it'll - # overwrite Cygwin's one. Likewise for libgmon.a. - LIBM_A= - LIBGMON_A= - # Install mingw headers in mingw subdirectory. - HEADER_SUBDIR="mingw" - ;; -*) - # Build it for MSVCRT by default. - MNO_CYGWIN= - LIBM_A=libm.a - LIBGMON_A=libgmon.a - SUBDIRS="profile" - configdirs="$configdirs profile" - ;; -esac - -# THREAD_DLL used to be set within the above case and was mingwc for CRTDLL. -# I can find no reason to do this. -# -# FIXME: In the future I would like to change the dll name to mingwthrd to -# to match the libmingwthrd.a name. -THREAD_DLL=mingwm - -if test -n "$configdirs"; then - AC_CONFIG_SUBDIRS($configdirs) -fi - -MKINSTALLDIRS=$ac_aux_dir/mkinstalldirs -AC_SUBST(MKINSTALLDIRS) -AC_SUBST(MNO_CYGWIN) -AC_SUBST(THREAD_DLL) -AC_SUBST(LIBM_A) -AC_SUBST(LIBGMON_A) -AC_SUBST(SUBDIRS) -AC_SUBST(HEADER_SUBDIR) - -AC_PROG_INSTALL -AC_OUTPUT(Makefile) - diff --git a/winsup/mingw/crt1.c b/winsup/mingw/crt1.c deleted file mode 100644 index f91f1da28..000000000 --- a/winsup/mingw/crt1.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * crt1.c - * - * Source code for the startup proceedures used by all programs. This code - * is compiled to make crt1.o, which should be located in the library path. - * - * This code is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * Maintained by Mumit Khan - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -/* NOTE: The code for initializing the _argv, _argc, and environ variables - * has been moved to a separate .c file which is included in both - * crt1.c and dllcrt1.c. This means changes in the code don't have to - * be manually synchronized, but it does lead to this not-generally- - * a-good-idea use of include. */ -#include "init.c" - -extern int main (int, char **, char **); - -/* - * Must have the correct app type for MSVCRT. - */ - -#ifdef __MSVCRT__ -#define __UNKNOWN_APP 0 -#define __CONSOLE_APP 1 -#define __GUI_APP 2 -__MINGW_IMPORT void __set_app_type(int); -#endif /* __MSVCRT__ */ - -/* - * Setup the default file handles to have the _CRT_fmode mode, as well as - * any new files created by the user. - */ -extern unsigned int _CRT_fmode; - -static void -_mingw32_init_fmode () -{ - /* Don't set the file mode if the user hasn't set any value for it. */ - if (_CRT_fmode) - { - _fmode = _CRT_fmode; - - /* - * This overrides the default file mode settings for stdin, - * stdout and stderr. At first I thought you would have to - * test with isatty, but it seems that the DOS console at - * least is smart enough to handle _O_BINARY stdout and - * still display correctly. - */ - if (stdin) - { - _setmode (_fileno (stdin), _CRT_fmode); - } - if (stdout) - { - _setmode (_fileno (stdout), _CRT_fmode); - } - if (stderr) - { - _setmode (_fileno (stderr), _CRT_fmode); - } - } -} - -/* This function will be called when a trap occurs. Thanks to Jacob - Navia for his contribution. */ -static CALLBACK long -_gnu_exception_handler (EXCEPTION_POINTERS * exception_data) -{ - void (*old_handler) (int); - long action = EXCEPTION_CONTINUE_SEARCH; - int reset_fpu = 0; - - switch (exception_data->ExceptionRecord->ExceptionCode) - { - case EXCEPTION_ACCESS_VIOLATION: - /* test if the user has set SIGSEGV */ - old_handler = signal (SIGSEGV, SIG_DFL); - if (old_handler == SIG_IGN) - { - /* this is undefined if the signal was raised by anything other - than raise (). */ - signal (SIGSEGV, SIG_IGN); - action = EXCEPTION_CONTINUE_EXECUTION; - } - else if (old_handler != SIG_DFL) - { - /* This means 'old' is a user defined function. Call it */ - (*old_handler) (SIGSEGV); - action = EXCEPTION_CONTINUE_EXECUTION; - } - break; - - case EXCEPTION_FLT_INVALID_OPERATION: - case EXCEPTION_FLT_DIVIDE_BY_ZERO: - case EXCEPTION_FLT_DENORMAL_OPERAND: - case EXCEPTION_FLT_OVERFLOW: - case EXCEPTION_FLT_UNDERFLOW: - case EXCEPTION_FLT_INEXACT_RESULT: - reset_fpu = 1; - /* fall through. */ - - case EXCEPTION_INT_DIVIDE_BY_ZERO: - /* test if the user has set SIGFPE */ - old_handler = signal (SIGFPE, SIG_DFL); - if (old_handler == SIG_IGN) - { - signal (SIGFPE, SIG_IGN); - if (reset_fpu) - _fpreset (); - action = EXCEPTION_CONTINUE_EXECUTION; - } - else if (old_handler != SIG_DFL) - { - /* This means 'old' is a user defined function. Call it */ - (*old_handler) (SIGFPE); - action = EXCEPTION_CONTINUE_EXECUTION; - } - break; - - default: - break; - } - return action; -} - -/* - * The function mainCRTStartup is the entry point for all console programs. - */ -static int -__mingw_CRTStartup () -{ - int nRet; - - /* - * Set up the top-level exception handler so that signal handling - * works as expected. The mapping between ANSI/POSIX signals and - * Win32 SE is not 1-to-1, so caveat emptore. - * - */ - SetUnhandledExceptionFilter (_gnu_exception_handler); - - /* - * Initialize floating point unit. - */ - _fpreset (); /* Supplied by the runtime library. */ - - /* - * Set up __argc, __argv and _environ. - */ - _mingw32_init_mainargs (); - - /* - * Sets the default file mode for stdin, stdout and stderr, as well - * as files later opened by the user, to _CRT_fmode. - * NOTE: DLLs don't do this because that would be rude! - */ - _mingw32_init_fmode (); - - /* - * Call the main function. If the user does not supply one - * the one in the 'libmingw32.a' library will be linked in, and - * that one calls WinMain. See main.c in the 'lib' dir - * for more details. - */ - nRet = main (_argc, _argv, environ); - - /* - * Perform exit processing for the C library. This means - * flushing output and calling 'atexit' registered functions. - */ - _cexit (); - - ExitProcess (nRet); - - return 0; -} - -/* - * The function mainCRTStartup is the entry point for all console programs. - */ -int -mainCRTStartup () -{ -#ifdef __MSVCRT__ - __set_app_type (__CONSOLE_APP); -#endif - __mingw_CRTStartup (); - return 0; -} - -/* - * For now the GUI startup function is the same as the console one. - * This simply gets rid of the annoying warning about not being able - * to find WinMainCRTStartup when linking GUI applications. - */ -int -WinMainCRTStartup () -{ -#ifdef __MSVCRT__ - __set_app_type (__GUI_APP); -#endif - __mingw_CRTStartup (); -} - diff --git a/winsup/mingw/crtdll.def b/winsup/mingw/crtdll.def deleted file mode 100644 index 00ff624c8..000000000 --- a/winsup/mingw/crtdll.def +++ /dev/null @@ -1,704 +0,0 @@ -; -; crtdll.def -; -; Exports from crtdll.dll from Windows 95 SYSTEM directory. Hopefully this -; should also work with the crtdll provided with Windows NT. -; -; Contributors: -; Created by Colin Peters -; -; THIS SOFTWARE IS NOT COPYRIGHTED -; -; This source code is offered for use in the public domain. You may -; use, modify or distribute it freely. -; -; This code is distributed in the hope that it will be useful but -; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY -; DISCLAMED. This includes but is not limited to warrenties of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -; -; $Revision$ -; $Author$ -; $Date$ -; -; These three functions appear to be name mangled in some way, so GCC is -; probably not going to be able to use them in any case. -; -; ??2@YAPAXI@Z -; ??3@YAXPAX@Z -; ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z -; -; These are functions for which I have not yet written prototypes or -; otherwise set up (they are still included below though unlike those -; first three). -; -; _CIacos -; _CIasin -; _CIatan -; _CIatan2 -; _CIcos -; _CIcosh -; _CIexp -; _CIfmod -; _CIlog -; _CIlog10 -; _CIpow -; _CIsin -; _CIsinh -; _CIsqrt -; _CItan -; _CItanh -; __dllonexit -; __mb_cur_max_dll -; __threadhandle -; __threadid -; _abnormal_termination -; _acmdln_dll -; _aexit_rtn_dll -; _amsg_exit -; _commit -; _commode_dll -; _cpumode_dll -; _ctype -; _expand -; _fcloseall -; _filbuf -; _fileinfo_dll -; _flsbuf -; _flushall -; _fmode_dll -; _fpieee_flt -; _fsopen -; _ftol -; _getdiskfree -; _getdllprocaddr -; _getdrive -; _getdrives -; _getsystime -; _initterm -; _ismbbalnum -; _ismbbalpha -; _ismbbgraph -; _ismbbkalnum -; _ismbbkana -; _ismbbkpunct -; _ismbblead -; _ismbbprint -; _ismbbpunct -; _ismbbtrail -; _ismbcalpha -; _ismbcdigit -; _ismbchira -; _ismbckata -; _ismbcl0 -; _ismbcl1 -; _ismbcl2 -; _ismbclegal -; _ismbclower -; _ismbcprint -; _ismbcspace -; _ismbcsymbol -; _ismbcupper -; _ismbslead -; _ismbstrail -; _lfind -; _loaddll -; _lrotl -; _lrotr -; _lsearch -; _makepath -; _matherr -; _mbbtombc -; _mbbtype -; _mbccpy -; _mbcjistojms -; _mbcjmstojis -; _mbclen -; _mbctohira -; _mbctokata -; _mbctolower -; _mbctombb -; _mbctoupper -; _mbctype -; _mbsbtype -; _mbscat -; _mbscmp -; _mbscpy -; _mbscspn -; _mbsdec -; _mbsdup -; _mbsicmp -; _mbsinc -; _mbslen -; _mbslwr -; _mbsnbcat -; _mbsnbcmp -; _mbsnbcnt -; _mbsnbcpy -; _mbsnbicmp -; _mbsnbset -; _mbsnccnt -; _mbsncmp -; _mbsncpy -; _mbsnextc -; _mbsnicmp -; _mbsninc -; _mbsnset -; _mbspbrk -; _mbsrchr -; _mbsrev -; _mbsset -; _mbsspn -; _mbsspnp -; _mbsstr -; _mbstrlen -; _mbsupr -; _onexit -; _osversion_dll -; _pctype_dll -; _purecall -; _pwctype_dll -; _rmtmp -; _rotl -; _rotr -; _setsystime -; _snprintf -; _snwprintf -; _splitpath -; _strdate -; _strdec -; _strinc -; _strncnt -; _strnextc -; _strninc -; _strspnp -; _strtime -; _tempnam -; _ultoa -; _unloaddll -; _vsnprintf -; _vsnwprintf -; _wtoi -; _wtol -; -EXPORTS -_CIacos -_CIasin -_CIatan -_CIatan2 -_CIcos -_CIcosh -_CIexp -_CIfmod -_CIlog -_CIlog10 -_CIpow -_CIsin -_CIsinh -_CIsqrt -_CItan -_CItanh -_HUGE_dll DATA -_XcptFilter -__GetMainArgs -__argc_dll DATA -__argv_dll DATA -__dllonexit -__doserrno -__fpecode -__isascii -__iscsym -__iscsymf -__mb_cur_max_dll DATA -__pxcptinfoptrs -__threadhandle -__threadid -__toascii -_abnormal_termination -_access -_acmdln_dll DATA -_aexit_rtn_dll DATA -_amsg_exit -_assert -_basemajor_dll DATA -_baseminor_dll DATA -_baseversion_dll DATA -_beep -_beginthread -_c_exit -_cabs -_cexit -_cgets -_chdir -_chdrive -_chgsign -_chmod -_chsize -_clearfp -_close -_commit -_commode_dll DATA -_control87 -_controlfp -_copysign -_cprintf -_cpumode_dll DATA -_cputs -_creat -_cscanf -_ctype -_cwait -_daylight_dll DATA -_dup -_dup2 -_ecvt -_endthread -_environ_dll DATA -_eof -_errno -_except_handler2 -_execl -_execle -_execlp -_execlpe -_execv -_execve -_execvp -_execvpe -_exit -_expand -_fcloseall -_fcvt -_fdopen -_fgetchar -_fgetwchar -_filbuf -_fileinfo_dll DATA -_filelength -_fileno -_findclose -_findfirst -_findnext -_finite -_flsbuf -_flushall -_fmode_dll DATA -_fpclass -_fpieee_flt -_fpreset -_fputchar -_fputwchar -_fsopen -_fstat -_ftime -_ftol -_fullpath -_futime -_gcvt -_get_osfhandle -_getch -_getche -_getcwd -_getdcwd -_getdiskfree -_getdllprocaddr -_getdrive -_getdrives -_getpid -_getsystime -_getw -_global_unwind2 -_heapchk -_heapmin -_heapset -_heapwalk -_hypot -_initterm -_iob DATA -_isatty -_isctype -_ismbbalnum -_ismbbalpha -_ismbbgraph -_ismbbkalnum -_ismbbkana -_ismbbkpunct -_ismbblead -_ismbbprint -_ismbbpunct -_ismbbtrail -_ismbcalpha -_ismbcdigit -_ismbchira -_ismbckata -_ismbcl0 -_ismbcl1 -_ismbcl2 -_ismbclegal -_ismbclower -_ismbcprint -_ismbcspace -_ismbcsymbol -_ismbcupper -_ismbslead -_ismbstrail -_isnan -_itoa -_j0 -_j1 -_jn -_kbhit -_lfind -_loaddll -_local_unwind2 -_locking -_logb -_lrotl -_lrotr -_lsearch -_lseek -_ltoa -_makepath -_matherr -_mbbtombc -_mbbtype -_mbccpy -_mbcjistojms -_mbcjmstojis -_mbclen -_mbctohira -_mbctokata -_mbctolower -_mbctombb -_mbctoupper -_mbctype -_mbsbtype -_mbscat -_mbschr -_mbscmp -_mbscpy -_mbscspn -_mbsdec -_mbsdup -_mbsicmp -_mbsinc -_mbslen -_mbslwr -_mbsnbcat -_mbsnbcmp -_mbsnbcnt -_mbsnbcpy -_mbsnbicmp -_mbsnbset -_mbsncat -_mbsnccnt -_mbsncmp -_mbsncpy -_mbsnextc -_mbsnicmp -_mbsninc -_mbsnset -_mbspbrk -_mbsrchr -_mbsrev -_mbsset -_mbsspn -_mbsspnp -_mbsstr -_mbstok -_mbstrlen -_mbsupr -_memccpy -_memicmp -_mkdir -_mktemp -_msize -_nextafter -_onexit -_open -_open_osfhandle -_osmajor_dll DATA -_osminor_dll DATA -_osmode_dll DATA -_osver_dll DATA -_osversion_dll DATA -_pclose -_pctype_dll DATA -_pgmptr_dll DATA -_pipe -_popen -_purecall -_putch -_putenv -_putw -_pwctype_dll DATA -_read -_rmdir -_rmtmp -_rotl -_rotr -_scalb -_searchenv -_seterrormode -_setjmp -_setmode -_setsystime -_sleep -_snprintf -_snwprintf -_sopen -_spawnl -_spawnle -_spawnlp -_spawnlpe -_spawnv -_spawnve -_spawnvp -_spawnvpe -_splitpath -_stat -_statusfp -_strcmpi -_strdate -_strdec -_strdup -_strerror -_stricmp -_stricoll -_strinc -_strlwr -_strncnt -_strnextc -_strnicmp -_strninc -_strnset -_strrev -_strset -_strspnp -_strtime -_strupr -_swab -_sys_errlist DATA -_sys_nerr_dll DATA -_tell -_tempnam -_timezone_dll DATA -_tolower -_toupper -_tzname DATA -_tzset -_ultoa -_umask -_ungetch -_unlink -_unloaddll -_utime -_vsnprintf -_vsnwprintf -_wcsdup -_wcsicmp -_wcsicoll -_wcslwr -_wcsnicmp -_wcsnset -_wcsrev -_wcsset -_wcsupr -_winmajor_dll DATA -_winminor_dll DATA -_winver_dll DATA -_write -_wtoi -_wtol -_y0 -_y1 -_yn -abort -abs -acos -asctime -asin -atan -atan2 -atexit -atof -atoi -atol -bsearch -calloc -ceil -clearerr -clock -cos -cosh -ctime -difftime -div -exit -exp -fabs -fclose -feof -ferror -fflush -fgetc -fgetpos -fgets -fgetwc -floor -fmod -fopen -fprintf -fputc -fputs -fputwc -fread -free -freopen -frexp -fscanf -fseek -fsetpos -ftell -fwprintf -fwrite -fwscanf -getc -getchar -getenv -gets -gmtime -is_wctype -isalnum -isalpha -iscntrl -isdigit -isgraph -isleadbyte -islower -isprint -ispunct -isspace -isupper -iswalnum -iswalpha -iswascii -iswcntrl -iswctype -iswdigit -iswgraph -iswlower -iswprint -iswpunct -iswspace -iswupper -iswxdigit -isxdigit -labs -ldexp -ldiv -localeconv -localtime -log -log10 -longjmp -malloc -mblen -mbstowcs -mbtowc -memchr -memcmp -memcpy -memmove -memset -mktime -modf -perror -pow -printf -putc -putchar -puts -qsort -raise -rand -realloc -remove -rename -rewind -scanf -setbuf -setlocale -setvbuf -signal -sin -sinh -sprintf -sqrt -srand -sscanf -strcat -strchr -strcmp -strcoll -strcpy -strcspn -strerror -strftime -strlen -strncat -strncmp -strncpy -strpbrk -strrchr -strspn -strstr -strtod -strtok -strtol -strtoul -strxfrm -swprintf -swscanf -system -tan -tanh -time -tmpfile -tmpnam -tolower -toupper -towlower -towupper -ungetc -ungetwc -vfprintf -vfwprintf -vprintf -vsprintf -vswprintf -vwprintf -wcscat -wcschr -wcscmp -wcscoll -wcscpy -wcscspn -wcsftime -wcslen -wcsncat -wcsncmp -wcsncpy -wcspbrk -wcsrchr -wcsspn -wcsstr -wcstod -wcstok -wcstol -wcstombs -wcstoul -wcsxfrm -wctomb -wprintf -wscanf diff --git a/winsup/mingw/crtmt.c b/winsup/mingw/crtmt.c deleted file mode 100644 index 116d850f0..000000000 --- a/winsup/mingw/crtmt.c +++ /dev/null @@ -1,14 +0,0 @@ -/* - * crtmt.c - * - * This object file defines _CRT_MT to have a value of 1, which will - * turn on MT support in GCC runtime. This is only linked in when - * you specify -mthreads when linking with gcc. The Mingw support - * library, libmingw32.a, contains the complement, crtst.o, which - * sets this variable to 0. - * - * Mumit Khan - * - */ - -int _CRT_MT = 1; diff --git a/winsup/mingw/crtst.c b/winsup/mingw/crtst.c deleted file mode 100644 index 4835b0963..000000000 --- a/winsup/mingw/crtst.c +++ /dev/null @@ -1,12 +0,0 @@ -/* - * crtst.c - * - * This object file defines _CRT_MT to have a value of 0, which will - * turn off MT support in GCC runtime. This is linked by default unless - * you specify -mthreads when linking with gcc. - * - * Mumit Khan - * - */ - -int _CRT_MT = 0; diff --git a/winsup/mingw/ctype_old.c b/winsup/mingw/ctype_old.c deleted file mode 100644 index 07eaec1d8..000000000 --- a/winsup/mingw/ctype_old.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * ctype_old.c - * - * Oldnames from ANSI header ctype.h - * - * Some wrapper functions for those old name functions whose appropriate - * equivalents are not simply underscore prefixed. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#include - -int -isascii (int c) -{ - return __isascii(c); -} - -int -toascii (int c) -{ - return __toascii(c); -} - -int -iscsymf (int c) -{ - return __iscsymf(c); -} - -int -iscsym (int c) -{ - return __iscsym(c); -} diff --git a/winsup/mingw/dirent.c b/winsup/mingw/dirent.c deleted file mode 100644 index e3885f0ea..000000000 --- a/winsup/mingw/dirent.c +++ /dev/null @@ -1,316 +0,0 @@ -/* - * dirent.c - * - * Derived from DIRLIB.C by Matt J. Weinstein - * This note appears in the DIRLIB.H - * DIRLIB.H by M. J. Weinstein Released to public domain 1-Jan-89 - * - * Updated by Jeremy Bettis - * Significantly revised and rewinddir, seekdir and telldir added by Colin - * Peters - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#include -#include -#include -#include -#include - -#include - -#define WIN32_LEAN_AND_MEAN -#include /* for GetFileAttributes */ - -#define SUFFIX "*" -#define SLASH "\\" - -/* - * opendir - * - * Returns a pointer to a DIR structure appropriately filled in to begin - * searching a directory. - */ -DIR * -opendir (const char *szPath) -{ - DIR *nd; - unsigned int rc; - - errno = 0; - - if (!szPath) - { - errno = EFAULT; - return (DIR *) 0; - } - - if (szPath[0] == '\0') - { - errno = ENOTDIR; - return (DIR *) 0; - } - - /* Attempt to determine if the given path really is a directory. */ - rc = GetFileAttributes(szPath); - if (rc == -1) - { - /* call GetLastError for more error info */ - errno = ENOENT; - return (DIR *) 0; - } - if (!(rc & FILE_ATTRIBUTE_DIRECTORY)) - { - /* Error, entry exists but not a directory. */ - errno = ENOTDIR; - return (DIR *) 0; - } - - /* Allocate enough space to store DIR structure and the complete - * directory path given. */ - nd = (DIR *) malloc (sizeof (DIR) + strlen (szPath) + strlen (SLASH) + - strlen (SUFFIX)); - - if (!nd) - { - /* Error, out of memory. */ - errno = ENOMEM; - return (DIR *) 0; - } - - /* Create the search expression. */ - strcpy (nd->dd_name, szPath); - - /* Add on a slash if the path does not end with one. */ - if (nd->dd_name[0] != '\0' && - nd->dd_name[strlen (nd->dd_name) - 1] != '/' && - nd->dd_name[strlen (nd->dd_name) - 1] != '\\') - { - strcat (nd->dd_name, SLASH); - } - - /* Add on the search pattern */ - strcat (nd->dd_name, SUFFIX); - - /* Initialize handle to -1 so that a premature closedir doesn't try - * to call _findclose on it. */ - nd->dd_handle = -1; - - /* Initialize the status. */ - nd->dd_stat = 0; - - /* Initialize the dirent structure. ino and reclen are invalid under - * Win32, and name simply points at the appropriate part of the - * findfirst_t structure. */ - nd->dd_dir.d_ino = 0; - nd->dd_dir.d_reclen = 0; - nd->dd_dir.d_namlen = 0; - nd->dd_dir.d_name = nd->dd_dta.name; - - return nd; -} - - -/* - * readdir - * - * Return a pointer to a dirent structure filled with the information on the - * next entry in the directory. - */ -struct dirent * -readdir (DIR * dirp) -{ - errno = 0; - - /* Check for valid DIR struct. */ - if (!dirp) - { - errno = EFAULT; - return (struct dirent *) 0; - } - - if (dirp->dd_dir.d_name != dirp->dd_dta.name) - { - /* The structure does not seem to be set up correctly. */ - errno = EINVAL; - return (struct dirent *) 0; - } - - if (dirp->dd_stat < 0) - { - /* We have already returned all files in the directory - * (or the structure has an invalid dd_stat). */ - return (struct dirent *) 0; - } - else if (dirp->dd_stat == 0) - { - /* We haven't started the search yet. */ - /* Start the search */ - dirp->dd_handle = _findfirst (dirp->dd_name, &(dirp->dd_dta)); - - if (dirp->dd_handle == -1) - { - /* Whoops! Seems there are no files in that - * directory. */ - dirp->dd_stat = -1; - } - else - { - dirp->dd_stat = 1; - } - } - else - { - /* Get the next search entry. */ - if (_findnext (dirp->dd_handle, &(dirp->dd_dta))) - { - /* We are off the end or otherwise error. */ - _findclose (dirp->dd_handle); - dirp->dd_handle = -1; - dirp->dd_stat = -1; - } - else - { - /* Update the status to indicate the correct - * number. */ - dirp->dd_stat++; - } - } - - if (dirp->dd_stat > 0) - { - /* Successfully got an entry. Everything about the file is - * already appropriately filled in except the length of the - * file name. */ - dirp->dd_dir.d_namlen = strlen (dirp->dd_dir.d_name); - return &dirp->dd_dir; - } - - return (struct dirent *) 0; -} - - -/* - * closedir - * - * Frees up resources allocated by opendir. - */ -int -closedir (DIR * dirp) -{ - int rc; - - errno = 0; - rc = 0; - - if (!dirp) - { - errno = EFAULT; - return -1; - } - - if (dirp->dd_handle != -1) - { - rc = _findclose (dirp->dd_handle); - } - - /* Delete the dir structure. */ - free (dirp); - - return rc; -} - -/* - * rewinddir - * - * Return to the beginning of the directory "stream". We simply call findclose - * and then reset things like an opendir. - */ -void -rewinddir (DIR * dirp) -{ - errno = 0; - - if (!dirp) - { - errno = EFAULT; - return; - } - - if (dirp->dd_handle != -1) - { - _findclose (dirp->dd_handle); - } - - dirp->dd_handle = -1; - dirp->dd_stat = 0; -} - -/* - * telldir - * - * Returns the "position" in the "directory stream" which can be used with - * seekdir to go back to an old entry. We simply return the value in stat. - */ -long -telldir (DIR * dirp) -{ - errno = 0; - - if (!dirp) - { - errno = EFAULT; - return -1; - } - return dirp->dd_stat; -} - -/* - * seekdir - * - * Seek to an entry previously returned by telldir. We rewind the directory - * and call readdir repeatedly until either dd_stat is the position number - * or -1 (off the end). This is not perfect, in that the directory may - * have changed while we weren't looking. But that is probably the case with - * any such system. - */ -void -seekdir (DIR * dirp, long lPos) -{ - errno = 0; - - if (!dirp) - { - errno = EFAULT; - return; - } - - if (lPos < -1) - { - /* Seeking to an invalid position. */ - errno = EINVAL; - return; - } - else if (lPos == -1) - { - /* Seek past end. */ - if (dirp->dd_handle != -1) - { - _findclose (dirp->dd_handle); - } - dirp->dd_handle = -1; - dirp->dd_stat = -1; - } - else - { - /* Rewind and read forward to the appropriate index. */ - rewinddir (dirp); - - while ((dirp->dd_stat < lPos) && readdir (dirp)) - ; - } -} diff --git a/winsup/mingw/dllcrt1.c b/winsup/mingw/dllcrt1.c deleted file mode 100644 index a0055d8b0..000000000 --- a/winsup/mingw/dllcrt1.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * dllcrt1.c - * - * Initialization code for DLLs. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * DLL support adapted from Gunther Ebert - * Maintained by Mumit Khan - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#include -#include -#include -#include - -/* Unlike normal crt1, I don't initialize the FPU, because the process - * should have done that already. I also don't set the file handle modes, - * because that would be rude. */ - -#ifdef __GNUC__ -extern void __main (); -extern void __do_global_dtors (); -#endif - -extern BOOL WINAPI DllMain (HANDLE, DWORD, LPVOID); - -BOOL WINAPI -DllMainCRTStartup (HANDLE hDll, DWORD dwReason, LPVOID lpReserved) -{ - BOOL bRet; - - if (dwReason == DLL_PROCESS_ATTACH) - { -#ifdef __GNUC__ - /* From libgcc.a, calls global class constructors. */ - __main (); -#endif - } - - /* - * Call the user-supplied DllMain subroutine - * NOTE: DllMain is optional, so libmingw32.a includes a stub - * which will be used if the user does not supply one. - */ - bRet = DllMain (hDll, dwReason, lpReserved); - -#ifdef __GNUC__ - if (dwReason == DLL_PROCESS_DETACH) - { - /* From libgcc.a, calls global class destructors. */ - __do_global_dtors (); - } -#endif - - return bRet; -} - -/* - * For the moment a dummy atexit. Atexit causes problems in DLLs, especially - * if they are dynamically loaded. For now atexit inside a DLL does nothing. - * NOTE: We need this even if the DLL author never calls atexit because - * the global constructor function __do_global_ctors called from __main - * will attempt to register __do_global_dtors using atexit. - * Thanks to Andrey A. Smirnov for pointing this one out. - */ -int -atexit (void (*pfn) ()) -{ - return 0; -} - diff --git a/winsup/mingw/dllmain.c b/winsup/mingw/dllmain.c deleted file mode 100644 index 40c4f4f37..000000000 --- a/winsup/mingw/dllmain.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * dllmain.c - * - * A stub DllMain function which will be called by DLLs which do not - * have a user supplied DllMain. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#include - -BOOL WINAPI -DllMain (HANDLE hDll, DWORD dwReason, LPVOID lpReserved) -{ - return TRUE; -} - diff --git a/winsup/mingw/gccmain.c b/winsup/mingw/gccmain.c deleted file mode 100644 index 5c438e98a..000000000 --- a/winsup/mingw/gccmain.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * gccmain.c - * - * A separate version of __main, __do_global_ctors and __do_global_dtors for - * Mingw32 for use with Cygwin32 b19. Hopefully this object file will only - * be linked if the libgcc.a doesn't include __main, __do_global_dtors and - * __do_global_ctors. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Code supplied by Stan Cox - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -/* Needed for the atexit prototype. */ -#include - -typedef void (*func_ptr) (void); -extern func_ptr __CTOR_LIST__[]; -extern func_ptr __DTOR_LIST__[]; - -void -__do_global_dtors (void) -{ - static func_ptr *p = __DTOR_LIST__ + 1; - - /* - * Call each destructor in the destructor list until a null pointer - * is encountered. - */ - while (*p) - { - (*(p)) (); - p++; - } -} - -void -__do_global_ctors (void) -{ - unsigned long nptrs = (unsigned long) __CTOR_LIST__[0]; - unsigned i; - - /* - * If the first entry in the constructor list is -1 then the list - * is terminated with a null entry. Otherwise the first entry was - * the number of pointers in the list. - */ - if (nptrs == -1) - { - for (nptrs = 0; __CTOR_LIST__[nptrs + 1] != 0; nptrs++) - ; - } - - /* - * Go through the list backwards calling constructors. - */ - for (i = nptrs; i >= 1; i--) - { - __CTOR_LIST__[i] (); - } - - /* - * Register the destructors for processing on exit. - */ - atexit (__do_global_dtors); -} - -static int initialized = 0; - -void -__main (void) -{ - if (!initialized) - { - initialized = 1; - __do_global_ctors (); - } -} - diff --git a/winsup/mingw/include/_mingw.h b/winsup/mingw/include/_mingw.h deleted file mode 100644 index 0af4ce9b5..000000000 --- a/winsup/mingw/include/_mingw.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * _mingw.h - * - * Mingw specific macros included by ALL include files. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Mumit Khan - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __MINGW_H -#define __MINGW_H - -/* These are defined by the user (or the compiler) - to specify how identifiers are imported from a DLL. - - __DECLSPEC_SUPPORTED Defined if dllimport attribute is supported. - __MINGW_IMPORT The attribute definition to specify imported - variables/functions. - __MINGW32_VERSION Runtime version. - __MINGW32_MAJOR_VERSION Runtime major version. - __MINGW32_MINOR_VERSION Runtime minor version. - __MINGW32_BUILD_DATE Runtime build date. - - Other macros: - - __int64 define to be long long. Using a typedef can - tweak bugs in the C++ parser. - - All headers should include this first, and then use __DECLSPEC_SUPPORTED - to choose between the old ``__imp__name'' style or __MINGW_IMPORT - style declarations. */ - -#ifndef __GNUC__ -# define __MINGW_IMPORT __declspec(dllimport) -# define __DECLSPEC_SUPPORTED -#else /* __GNUC__ */ -# ifdef __declspec - /* note the extern at the end. This is needed to work around GCC's - limitations in handling dllimport attribute. */ -# define __MINGW_IMPORT __attribute__((dllimport)) extern -# define __DECLSPEC_SUPPORTED -# else -# undef __DECLSPEC_SUPPORTED -# undef __MINGW_IMPORT -# endif -# undef __int64 -# define __int64 long long -#endif /* __GNUC__ */ - -#define __MINGW32_VERSION 1.3 -#define __MINGW32_MAJOR_VERSION 1 -#define __MINGW32_MINOR_VERSION 3 - -#endif /* __MINGW_H */ - diff --git a/winsup/mingw/include/assert.h b/winsup/mingw/include/assert.h deleted file mode 100644 index 07a7d1ffe..000000000 --- a/winsup/mingw/include/assert.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * assert.h - * - * Define the assert macro for debug output. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _ASSERT_H_ -#define _ASSERT_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef NDEBUG - -/* - * If not debugging, assert does nothing. - */ -#define assert(x) ((void)0) - -#else /* debugging enabled */ - -/* - * CRTDLL nicely supplies a function which does the actual output and - * call to abort. - */ -void _assert (const char*, const char*, int) -#ifdef __GNUC__ - __attribute__ ((noreturn)) -#endif - ; - -/* - * Definition of the assert macro. - */ -#define assert(e) ((e) ? (void)0 : _assert(#e, __FILE__, __LINE__)) -#endif /* NDEBUG */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _ASSERT_H_ */ - diff --git a/winsup/mingw/include/conio.h b/winsup/mingw/include/conio.h deleted file mode 100644 index 4e8d55ab6..000000000 --- a/winsup/mingw/include/conio.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * conio.h - * - * Low level console I/O functions. Pretty please try to use the ANSI - * standard ones if you are writing new code. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _CONIO_H_ -#define _CONIO_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - - -char* _cgets (char*); -int _cprintf (const char*, ...); -int _cputs (const char*); -int _cscanf (char*, ...); - -int _getch (void); -int _getche (void); -int _kbhit (void); -int _putch (int); -int _ungetch (int); - - -#ifndef _NO_OLDNAMES - -int getch (void); -int getche (void); -int kbhit (void); -int putch (int); -int ungetch (int); - -#endif /* Not _NO_OLDNAMES */ - - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _CONIO_H_ */ - -#endif /* Not __STRICT_ANSI__ */ diff --git a/winsup/mingw/include/ctype.h b/winsup/mingw/include/ctype.h deleted file mode 100644 index bc7c60db1..000000000 --- a/winsup/mingw/include/ctype.h +++ /dev/null @@ -1,232 +0,0 @@ -/* - * ctype.h - * - * Functions for testing character types and converting characters. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _CTYPE_H_ -#define _CTYPE_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define __need_wchar_t -#define __need_wint_t -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ - - -/* - * The following flags are used to tell iswctype and _isctype what character - * types you are looking for. - */ -#define _UPPER 0x0001 -#define _LOWER 0x0002 -#define _DIGIT 0x0004 -#define _SPACE 0x0008 /* HT LF VT FF CR SP */ -#define _PUNCT 0x0010 -#define _CONTROL 0x0020 -#define _BLANK 0x0040 /* this is SP only, not SP and HT as in C99 */ -#define _HEX 0x0080 -#define _LEADBYTE 0x8000 - -#define _ALPHA 0x0103 - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -int isalnum(int); -int isalpha(int); -int iscntrl(int); -int isdigit(int); -int isgraph(int); -int islower(int); -int isprint(int); -int ispunct(int); -int isspace(int); -int isupper(int); -int isxdigit(int); - -#ifndef __STRICT_ANSI__ -int _isctype (int, int); -#endif - -/* These are the ANSI versions, with correct checking of argument */ -int tolower(int); -int toupper(int); - -/* - * NOTE: The above are not old name type wrappers, but functions exported - * explicitly by MSVCRT/CRTDLL. However, underscored versions are also - * exported. - */ -#ifndef __STRICT_ANSI__ -/* - * These are the cheap non-std versions: The return values are undefined - * if the argument is not ASCII char or is not of appropriate case - */ -int _tolower(int); -int _toupper(int); -#endif - -/* Also defined in stdlib.h */ -#ifndef MB_CUR_MAX -# ifdef __MSVCRT__ -# define MB_CUR_MAX __mb_cur_max - __MINGW_IMPORT int __mb_cur_max; -# else /* not __MSVCRT */ -# define MB_CUR_MAX __mb_cur_max_dll - __MINGW_IMPORT int __mb_cur_max_dll; -# endif /* not __MSVCRT */ -#endif /* MB_CUR_MAX */ - -__MINGW_IMPORT unsigned short _ctype[]; -#ifdef __MSVCRT__ -__MINGW_IMPORT unsigned short* _pctype; -#else /* CRTDLL */ -__MINGW_IMPORT unsigned short* _pctype_dll; -#define _pctype _pctype_dll -#endif - -/* - * Use inlines here rather than macros, because macros will upset - * C++ usage (eg, ::isalnum), and so usually get undefined - * - * According to standard for SB chars, these function are defined only - * for input values representable by unsigned char or EOF. - * Thus, there is no range test. - * This reproduces behaviour of MSVCRT.dll lib implemention for SB chars. - * - * If no MB char support is needed, these can be simplified even - * more by command line define -DMB_CUR_MAX=1. The compiler will then - * optimise away the constant condition. - */ - - -#if ! (defined (__NO_CTYPE_INLINES) || defined (__STRICT_ANSI__ )) -/* use simple lookup if SB locale, else _isctype() */ -#define __ISCTYPE(c, mask) (MB_CUR_MAX == 1 ? (_pctype[c] & mask) : _isctype(c, mask)) -extern __inline__ int isalnum(int c) {return __ISCTYPE(c, (_ALPHA|_DIGIT));} -extern __inline__ int isalpha(int c) {return __ISCTYPE(c, _ALPHA);} -extern __inline__ int iscntrl(int c) {return __ISCTYPE(c, _CONTROL);} -extern __inline__ int isdigit(int c) {return __ISCTYPE(c, _DIGIT);} -extern __inline__ int isgraph(int c) {return __ISCTYPE(c, (_PUNCT|_ALPHA|_DIGIT));} -extern __inline__ int islower(int c) {return __ISCTYPE(c, _LOWER);} -extern __inline__ int isprint(int c) {return __ISCTYPE(c, (_BLANK|_PUNCT|_ALPHA|_DIGIT));} -extern __inline__ int ispunct(int c) {return __ISCTYPE(c, _PUNCT);} -extern __inline__ int isspace(int c) {return __ISCTYPE(c, _SPACE);} -extern __inline__ int isupper(int c) {return __ISCTYPE(c, _UPPER);} -extern __inline__ int isxdigit(int c) {return __ISCTYPE(c, _HEX);} - -/* these reproduce behaviour of lib underscored versions */ -extern __inline__ int _tolower(int c) {return ( c -'A'+'a');} -extern __inline__ int _toupper(int c) {return ( c -'a'+'A');} - -/* TODO? Is it worth inlining ANSI tolower, toupper? Probably only - if we only want C-locale. */ - -#endif /* _NO_CTYPE_INLINES */ - -/* Wide character equivalents */ - -#ifndef WEOF -#define WEOF (wchar_t)(0xFFFF) -#endif - -#ifndef _WCTYPE_T_DEFINED -typedef wchar_t wctype_t; -#define _WCTYPE_T_DEFINED -#endif - -int iswalnum(wint_t); -int iswalpha(wint_t); -int iswascii(wint_t); -int iswcntrl(wint_t); -int iswctype(wint_t, wctype_t); -int is_wctype(wint_t, wctype_t); /* Obsolete! */ -int iswdigit(wint_t); -int iswgraph(wint_t); -int iswlower(wint_t); -int iswprint(wint_t); -int iswpunct(wint_t); -int iswspace(wint_t); -int iswupper(wint_t); -int iswxdigit(wint_t); - -wchar_t towlower(wchar_t); -wchar_t towupper(wchar_t); - -int isleadbyte (int); - -/* Also in wctype.h */ -#if ! (defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) -#define __WCTYPE_INLINES_DEFINED -extern __inline__ int iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));} -extern __inline__ int iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));} -extern __inline__ int iswascii(wint_t wc) {return (((unsigned)wc & 0x7F) ==0);} -extern __inline__ int iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));} -extern __inline__ int iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));} -extern __inline__ int iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));} -extern __inline__ int iswlower(wint_t wc) {return (iswctype(wc,_LOWER));} -extern __inline__ int iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));} -extern __inline__ int iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));} -extern __inline__ int iswspace(wint_t wc) {return (iswctype(wc,_SPACE));} -extern __inline__ int iswupper(wint_t wc) {return (iswctype(wc,_UPPER));} -extern __inline__ int iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));} -extern __inline__ int isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);} -#endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */ - -#ifndef __STRICT_ANSI__ -int __isascii (int); -int __toascii (int); -int __iscsymf (int); /* Valid first character in C symbol */ -int __iscsym (int); /* Valid character in C symbol (after first) */ - -#ifndef __NO_CTYPE_INLINES -extern __inline__ int __isascii(int c) {return (((unsigned)c & ~0x7F) == 0);} -extern __inline__ int __toascii(int c) {return (c & 0x7F);} -extern __inline__ int __iscsymf(int c) {return (isalpha(c) || (c == '_'));} -extern __inline__ int __iscsym(int c) {return (isalnum(c) || (c == '_'));} -#endif /* __NO_CTYPE_INLINES */ - -#ifndef _NO_OLDNAMES -int isascii (int); -int toascii (int); -int iscsymf (int); -int iscsym (int); -#endif /* Not _NO_OLDNAMES */ - -#endif /* Not __STRICT_ANSI__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _CTYPE_H_ */ - diff --git a/winsup/mingw/include/dir.h b/winsup/mingw/include/dir.h deleted file mode 100644 index d759a0a61..000000000 --- a/winsup/mingw/include/dir.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * dir.h - * - * This file OBSOLESCENT and only provided for backward compatibility. - * Please use io.h instead. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * Mumit Khan - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#include - diff --git a/winsup/mingw/include/direct.h b/winsup/mingw/include/direct.h deleted file mode 100644 index cbd8e9fe1..000000000 --- a/winsup/mingw/include/direct.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * direct.h - * - * Functions for manipulating paths and directories (included from io.h) - * plus functions for setting the current drive. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _DIRECT_H_ -#define _DIRECT_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define __need_wchar_t -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ - -#include - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _DISKFREE_T_DEFINED -/* needed by _getdiskfree (also in dos.h) */ -struct _diskfree_t { - unsigned total_clusters; - unsigned avail_clusters; - unsigned sectors_per_cluster; - unsigned bytes_per_sector; -}; -#define _DISKFREE_T_DEFINED -#endif - -/* - * You really shouldn't be using these. Use the Win32 API functions instead. - * However, it does make it easier to port older code. - */ -int _getdrive (void); -unsigned long _getdrives(void); -int _chdrive (int); -char* _getdcwd (int, char*, int); -unsigned _getdiskfree (unsigned, struct _diskfree_t *); - -#ifndef _NO_OLDNAMES -# define diskfree_t _diskfree_t -#endif - -#ifndef _WDIRECT_DEFINED -/* wide character versions. Also in wchar.h */ -#ifdef __MSVCRT__ -int _wchdir(const wchar_t*); -wchar_t* _wgetcwd(wchar_t*, int); -wchar_t* _wgetdcwd(int, wchar_t*, int); -int _wmkdir(const wchar_t*); -int _wrmdir(const wchar_t*); -#endif /* __MSVCRT__ */ -#define _WDIRECT_DEFINED -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _DIRECT_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/dirent.h b/winsup/mingw/include/dirent.h deleted file mode 100644 index 92ec6b587..000000000 --- a/winsup/mingw/include/dirent.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * DIRENT.H (formerly DIRLIB.H) - * - * by M. J. Weinstein Released to public domain 1-Jan-89 - * - * Because I have heard that this feature (opendir, readdir, closedir) - * it so useful for programmers coming from UNIX or attempting to port - * UNIX code, and because it is reasonably light weight, I have included - * it in the Mingw32 package. I have also added an implementation of - * rewinddir, seekdir and telldir. - * - Colin Peters - * - * This code is distributed in the hope that is will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includeds but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _DIRENT_H_ -#define _DIRENT_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#include - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -struct dirent -{ - long d_ino; /* Always zero. */ - unsigned short d_reclen; /* Always zero. */ - unsigned short d_namlen; /* Length of name in d_name. */ - char* d_name; /* File name. */ - /* NOTE: The name in the dirent structure points to the name in the - * finddata_t structure in the DIR. */ -}; - -/* - * This is an internal data structure. Good programmers will not use it - * except as an argument to one of the functions below. - */ -typedef struct -{ - /* disk transfer area for this dir */ - struct _finddata_t dd_dta; - - /* dirent struct to return from dir (NOTE: this makes this thread - * safe as long as only one thread uses a particular DIR struct at - * a time) */ - struct dirent dd_dir; - - /* _findnext handle */ - long dd_handle; - - /* - * Status of search: - * 0 = not started yet (next entry to read is first entry) - * -1 = off the end - * positive = 0 based index of next entry - */ - short dd_stat; - - /* given path for dir with search pattern (struct is extended) */ - char dd_name[1]; -} DIR; - - -DIR* opendir (const char*); -struct dirent* readdir (DIR*); -int closedir (DIR*); -void rewinddir (DIR*); -long telldir (DIR*); -void seekdir (DIR*, long); - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _DIRENT_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/dos.h b/winsup/mingw/include/dos.h deleted file mode 100644 index d0d7892af..000000000 --- a/winsup/mingw/include/dos.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * dos.h - * - * DOS-specific functions and structures. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by J.J. van der Heijden - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _DOS_H_ -#define _DOS_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define __need_wchar_t -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ - -/* For DOS file attributes */ -#include - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef __MSVCRT__ /* these are in CRTDLL, but not MSVCRT */ -#ifndef __DECLSPEC_SUPPORTED -extern unsigned int *__imp__basemajor_dll; -extern unsigned int *__imp__baseminor_dll; -extern unsigned int *__imp__baseversion_dll; -extern unsigned int *__imp__osmajor_dll; -extern unsigned int *__imp__osminor_dll; -extern unsigned int *__imp__osmode_dll; - -#define _basemajor (*__imp__basemajor_dll) -#define _baseminor (*__imp__baseminor_dll) -#define _baseversion (*__imp__baseversion_dll) -#define _osmajor (*__imp__osmajor_dll) -#define _osminor (*__imp__osminor_dll) -#define _osmode (*__imp__osmode_dll) - -#else /* __DECLSPEC_SUPPORTED */ - -__MINGW_IMPORT unsigned int _basemajor_dll; -__MINGW_IMPORT unsigned int _baseminor_dll; -__MINGW_IMPORT unsigned int _baseversion_dll; -__MINGW_IMPORT unsigned int _osmajor_dll; -__MINGW_IMPORT unsigned int _osminor_dll; -__MINGW_IMPORT unsigned int _osmode_dll; - -#define _basemajor _basemajor_dll -#define _baseminor _baseminor_dll -#define _baseversion _baseversion_dll -#define _osmajor _osmajor_dll -#define _osminor _osminor_dll -#define _osmode _osmode_dll - -#endif /* __DECLSPEC_SUPPORTED */ -#endif /* ! __MSVCRT__ */ - -#ifndef _DISKFREE_T_DEFINED -/* needed by _getdiskfree (also in direct.h) */ -struct _diskfree_t { - unsigned total_clusters; - unsigned avail_clusters; - unsigned sectors_per_cluster; - unsigned bytes_per_sector; -}; -#define _DISKFREE_T_DEFINED -#endif - -unsigned _getdiskfree (unsigned, struct _diskfree_t *); - -#ifndef _NO_OLDNAMES -# define diskfree_t _diskfree_t -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _DOS_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/errno.h b/winsup/mingw/include/errno.h deleted file mode 100644 index fdeb8e375..000000000 --- a/winsup/mingw/include/errno.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * errno.h - * - * Error numbers and access to error reporting. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _ERRNO_H_ -#define _ERRNO_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* - * Error numbers. - * TODO: Can't be sure of some of these assignments, I guessed from the - * names given by strerror and the defines in the Cygnus errno.h. A lot - * of the names from the Cygnus errno.h are not represented, and a few - * of the descriptions returned by strerror do not obviously match - * their error naming. - */ -#define EPERM 1 /* Operation not permitted */ -#define ENOFILE 2 /* No such file or directory */ -#define ENOENT 2 -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Interrupted function call */ -#define EIO 5 /* Input/output error */ -#define ENXIO 6 /* No such device or address */ -#define E2BIG 7 /* Arg list too long */ -#define ENOEXEC 8 /* Exec format error */ -#define EBADF 9 /* Bad file descriptor */ -#define ECHILD 10 /* No child processes */ -#define EAGAIN 11 /* Resource temporarily unavailable */ -#define ENOMEM 12 /* Not enough space */ -#define EACCES 13 /* Permission denied */ -#define EFAULT 14 /* Bad address */ -/* 15 - Unknown Error */ -#define EBUSY 16 /* strerror reports "Resource device" */ -#define EEXIST 17 /* File exists */ -#define EXDEV 18 /* Improper link (cross-device link?) */ -#define ENODEV 19 /* No such device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* Too many open files in system */ -#define EMFILE 24 /* Too many open files */ -#define ENOTTY 25 /* Inappropriate I/O control operation */ -/* 26 - Unknown Error */ -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Invalid seek (seek on a pipe?) */ -#define EROFS 30 /* Read-only file system */ -#define EMLINK 31 /* Too many links */ -#define EPIPE 32 /* Broken pipe */ -#define EDOM 33 /* Domain error (math functions) */ -#define ERANGE 34 /* Result too large (possibly too small) */ -/* 35 - Unknown Error */ -#define EDEADLOCK 36 /* Resource deadlock avoided (non-Cyg) */ -#define EDEADLK 36 -/* 37 - Unknown Error */ -#define ENAMETOOLONG 38 /* Filename too long (91 in Cyg?) */ -#define ENOLCK 39 /* No locks available (46 in Cyg?) */ -#define ENOSYS 40 /* Function not implemented (88 in Cyg?) */ -#define ENOTEMPTY 41 /* Directory not empty (90 in Cyg?) */ -#define EILSEQ 42 /* Illegal byte sequence */ - -/* - * NOTE: ENAMETOOLONG and ENOTEMPTY conflict with definitions in the - * sockets.h header provided with windows32api-0.1.2. - * You should go and put an #if 0 ... #endif around the whole block - * of errors (look at the comment above them). - */ - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Definitions of errno. For _doserrno, sys_nerr and * sys_errlist, see - * stdlib.h. - */ -#ifdef _UWIN -#undef errno -extern int errno; -#else -int* _errno(void); -#define errno (*_errno()) -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _ERRNO_H_ */ diff --git a/winsup/mingw/include/excpt.h b/winsup/mingw/include/excpt.h deleted file mode 100644 index 0947b2291..000000000 --- a/winsup/mingw/include/excpt.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * excpt.h - * - * Support for operating system level structured exception handling. - * - * NOTE: This is very preliminary stuff. I am also pretty sure it is - * completely Intel specific. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * Based on code by Mikey - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _EXCPT_H_ -#define _EXCPT_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#ifndef __STRICT_ANSI__ - -#include - -/* - * NOTE: The constants structs and typedefs below should be defined in the - * Win32 API headers. - */ -#define EH_NONCONTINUABLE 0x01 -#define EH_UNWINDING 0x02 -#define EH_EXIT_UNWIND 0x04 -#define EH_STACK_INVALID 0x08 -#define EH_NESTED_CALL 0x10 - -#ifndef RC_INVOKED - -typedef enum { - ExceptionContinueExecution, - ExceptionContinueSearch, - ExceptionNestedException, - ExceptionCollidedUnwind -} EXCEPTION_DISPOSITION; - - -/* - * End of stuff that should be in the Win32 API files. - */ - - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The type of function that is expected as an exception handler to be - * installed with _try1. - */ -typedef EXCEPTION_DISPOSITION (*PEXCEPTION_HANDLER) - (struct _EXCEPTION_RECORD*, void*, struct _CONTEXT*, void*); - -/* - * This is not entirely necessary, but it is the structure installed by - * the _try1 primitive below. - */ -typedef struct _EXCEPTION_REGISTRATION -{ - struct _EXCEPTION_REGISTRATION* prev; - PEXCEPTION_HANDLER handler; -} EXCEPTION_REGISTRATION, *PEXCEPTION_REGISTRATION; - -typedef EXCEPTION_REGISTRATION EXCEPTION_REGISTRATION_RECORD; -typedef PEXCEPTION_REGISTRATION PEXCEPTION_REGISTRATION_RECORD; - -/* - * A macro which installs the supplied exception handler. - * Push the pointer to the new handler onto the stack, - * then push the pointer to the old registration structure (at fs:0) - * onto the stack, then put a pointer to the new registration - * structure (i.e. the current stack pointer) at fs:0. - */ -#define __try1(pHandler) \ - __asm__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : "g" (pHandler)); - -/* - * A macro which (despite its name) *removes* an installed - * exception handler. Should be used only in conjunction with the above - * install routine __try1. - * Move the pointer to the old reg. struct (at the current stack - * position) to fs:0, replacing the pointer we installed above, - * then add 8 to the stack pointer to get rid of the space we - * used when we pushed on our new reg. struct above. Notice that - * the stack must be in the exact state at this point that it was - * after we did _try1 or this will smash things. - */ -#define __except1 \ - __asm__ ("movl (%%esp),%%eax;movl %%eax,%%fs:0;addl $8,%%esp;" \ - : : : "%eax"); - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not strict ANSI */ - -#endif /* _EXCPT_H_ not defined */ diff --git a/winsup/mingw/include/fcntl.h b/winsup/mingw/include/fcntl.h deleted file mode 100644 index 61ed94604..000000000 --- a/winsup/mingw/include/fcntl.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * fcntl.h - * - * Access constants for _open. Note that the permissions constants are - * in sys/stat.h (ick). - * - * This code is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _FCNTL_H_ -#define _FCNTL_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* - * It appears that fcntl.h should include io.h for compatibility... - */ -#include - -/* Specifiy one of these flags to define the access mode. */ -#define _O_RDONLY 0 -#define _O_WRONLY 1 -#define _O_RDWR 2 - -/* Mask for access mode bits in the _open flags. */ -#define _O_ACCMODE (_O_RDONLY|_O_WRONLY|_O_RDWR) - -#define _O_APPEND 0x0008 /* Writes will add to the end of the file. */ - -#define _O_RANDOM 0x0010 -#define _O_SEQUENTIAL 0x0020 -#define _O_TEMPORARY 0x0040 /* Make the file dissappear after closing. - * WARNING: Even if not created by _open! */ -#define _O_NOINHERIT 0x0080 - -#define _O_CREAT 0x0100 /* Create the file if it does not exist. */ -#define _O_TRUNC 0x0200 /* Truncate the file if it does exist. */ -#define _O_EXCL 0x0400 /* Open only if the file does not exist. */ - -/* NOTE: Text is the default even if the given _O_TEXT bit is not on. */ -#define _O_TEXT 0x4000 /* CR-LF in file becomes LF in memory. */ -#define _O_BINARY 0x8000 /* Input and output is not translated. */ -#define _O_RAW _O_BINARY - -#ifndef _NO_OLDNAMES - -/* POSIX/Non-ANSI names for increased portability */ -#define O_RDONLY _O_RDONLY -#define O_WRONLY _O_WRONLY -#define O_RDWR _O_RDWR -#define O_ACCMODE _O_ACCMODE -#define O_APPEND _O_APPEND -#define O_CREAT _O_CREAT -#define O_TRUNC _O_TRUNC -#define O_EXCL _O_EXCL -#define O_TEXT _O_TEXT -#define O_BINARY _O_BINARY -#define O_TEMPORARY _O_TEMPORARY -#define O_NOINHERIT _O_NOINHERIT -#define O_SEQENTIAL _O_SEQUENTIAL -#define O_RANDOM _O_RANDOM - -#endif /* Not _NO_OLDNAMES */ - - -#ifndef RC_INVOKED - -/* - * This variable determines the default file mode. - * TODO: Which flags work? - */ -#ifndef __DECLSPEC_SUPPORTED - -#ifdef __MSVCRT__ -extern unsigned int* __imp__fmode; -#define _fmode (*__imp__fmode) -#else -/* CRTDLL */ -extern unsigned int* __imp__fmode_dll; -#define _fmode (*__imp__fmode_dll) -#endif - -#else /* __DECLSPEC_SUPPORTED */ - -#ifdef __MSVCRT__ -__MINGW_IMPORT unsigned int _fmode; -#else /* ! __MSVCRT__ */ -__MINGW_IMPORT unsigned int _fmode_dll; -#define _fmode _fmode_dll -#endif /* ! __MSVCRT__ */ - -#endif /* __DECLSPEC_SUPPORTED */ - - -#ifdef __cplusplus -extern "C" { -#endif - -int _setmode (int, int); - -#ifndef _NO_OLDNAMES -int setmode (int, int); -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _FCNTL_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/float.h b/winsup/mingw/include/float.h deleted file mode 100644 index 709f3699e..000000000 --- a/winsup/mingw/include/float.h +++ /dev/null @@ -1,224 +0,0 @@ -/* - * float.h - * - * Constants related to floating point arithmetic. - * - * Also included here are some non-ANSI bits for accessing the floating - * point controller. - * - * NOTE: GCC provides float.h, and it is probably more accurate than this, - * but it doesn't include the non-standard stuff for accessing the - * fp controller. (TODO: Move those bits elsewhere?) Thus it is - * probably not a good idea to use the GCC supplied version instead - * of this header. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _FLOAT_H_ -#define _FLOAT_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define FLT_ROUNDS 1 -#define FLT_GUARD 1 -#define FLT_NORMALIZE 1 - -/* - * The characteristics of float. - */ - -/* The radix for floating point representation. */ -#define FLT_RADIX 2 - -/* Decimal digits of precision. */ -#define FLT_DIG 6 - -/* Smallest number such that 1+x != 1 */ -#define FLT_EPSILON 1.19209290e-07F - -/* The number of base FLT_RADIX digits in the mantissa. */ -#define FLT_MANT_DIG 24 - -/* The maximum floating point number. */ -#define FLT_MAX 3.40282347e+38F - -/* Maximum n such that FLT_RADIX^n - 1 is representable. */ -#define FLT_MAX_EXP 128 - -/* Maximum n such that 10^n is representable. */ -#define FLT_MAX_10_EXP 38 - -/* Minimum normalized floating-point number. */ -#define FLT_MIN 1.17549435e-38F - -/* Minimum n such that FLT_RADIX^n is a normalized number. */ -#define FLT_MIN_EXP (-125) - -/* Minimum n such that 10^n is a normalized number. */ -#define FLT_MIN_10_EXP (-37) - - -/* - * The characteristics of double. - */ -#define DBL_DIG 15 -#define DBL_EPSILON 1.1102230246251568e-16 -#define DBL_MANT_DIG 53 -#define DBL_MAX 1.7976931348623157e+308 -#define DBL_MAX_EXP 1024 -#define DBL_MAX_10_EXP 308 -#define DBL_MIN 2.2250738585072014e-308 -#define DBL_MIN_EXP (-1021) -#define DBL_MIN_10_EXP (-307) - - -/* - * The characteristics of long double. - * NOTE: long double is the same as double. - */ -#define LDBL_DIG 15 -#define LDBL_EPSILON 1.1102230246251568e-16L -#define LDBL_MANT_DIG 53 -#define LDBL_MAX 1.7976931348623157e+308L -#define LDBL_MAX_EXP 1024 -#define LDBL_MAX_10_EXP 308 -#define LDBL_MIN 2.2250738585072014e-308L -#define LDBL_MIN_EXP (-1021) -#define LDBL_MIN_10_EXP (-307) - - -/* - * Functions and definitions for controlling the FPU. - */ -#ifndef __STRICT_ANSI__ - -/* TODO: These constants are only valid for x86 machines */ - -/* Control word masks for unMask */ -#define _MCW_EM 0x0008001F /* Error masks */ -#define _MCW_IC 0x00040000 /* Infinity */ -#define _MCW_RC 0x00000300 /* Rounding */ -#define _MCW_PC 0x00030000 /* Precision */ - -/* Control word values for unNew (use with related unMask above) */ -#define _EM_INVALID 0x00000010 -#define _EM_DENORMAL 0x00080000 -#define _EM_ZERODIVIDE 0x00000008 -#define _EM_OVERFLOW 0x00000004 -#define _EM_UNDERFLOW 0x00000002 -#define _EM_INEXACT 0x00000001 -#define _IC_AFFINE 0x00040000 -#define _IC_PROJECTIVE 0x00000000 -#define _RC_CHOP 0x00000300 -#define _RC_UP 0x00000200 -#define _RC_DOWN 0x00000100 -#define _RC_NEAR 0x00000000 -#define _PC_24 0x00020000 -#define _PC_53 0x00010000 -#define _PC_64 0x00000000 - -/* These are also defined in Mingw math.h, needed to work around - GCC build issues. */ -/* Return values for fpclass. */ -#ifndef __MINGW_FPCLASS_DEFINED -#define __MINGW_FPCLASS_DEFINED 1 -#define _FPCLASS_SNAN 0x0001 /* Signaling "Not a Number" */ -#define _FPCLASS_QNAN 0x0002 /* Quiet "Not a Number" */ -#define _FPCLASS_NINF 0x0004 /* Negative Infinity */ -#define _FPCLASS_NN 0x0008 /* Negative Normal */ -#define _FPCLASS_ND 0x0010 /* Negative Denormal */ -#define _FPCLASS_NZ 0x0020 /* Negative Zero */ -#define _FPCLASS_PZ 0x0040 /* Positive Zero */ -#define _FPCLASS_PD 0x0080 /* Positive Denormal */ -#define _FPCLASS_PN 0x0100 /* Positive Normal */ -#define _FPCLASS_PINF 0x0200 /* Positive Infinity */ -#endif /* __MINGW_FPCLASS_DEFINED */ - -/* invalid subconditions (_SW_INVALID also set) */ -#define _SW_UNEMULATED 0x0040 /* unemulated instruction */ -#define _SW_SQRTNEG 0x0080 /* square root of a neg number */ -#define _SW_STACKOVERFLOW 0x0200 /* FP stack overflow */ -#define _SW_STACKUNDERFLOW 0x0400 /* FP stack underflow */ - -/* Floating point error signals and return codes */ -#define _FPE_INVALID 0x81 -#define _FPE_DENORMAL 0x82 -#define _FPE_ZERODIVIDE 0x83 -#define _FPE_OVERFLOW 0x84 -#define _FPE_UNDERFLOW 0x85 -#define _FPE_INEXACT 0x86 -#define _FPE_UNEMULATED 0x87 -#define _FPE_SQRTNEG 0x88 -#define _FPE_STACKOVERFLOW 0x8a -#define _FPE_STACKUNDERFLOW 0x8b -#define _FPE_EXPLICITGEN 0x8c /* raise( SIGFPE ); */ - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -/* Set the FPU control word as cw = (cw & ~unMask) | (unNew & unMask), - * i.e. change the bits in unMask to have the values they have in unNew, - * leaving other bits unchanged. */ -unsigned int _controlfp (unsigned int unNew, unsigned int unMask); -unsigned int _control87 (unsigned int unNew, unsigned int unMask); - - -unsigned int _clearfp (void); /* Clear the FPU status word */ -unsigned int _statusfp (void); /* Report the FPU status word */ -#define _clear87 _clearfp -#define _status87 _statusfp - -void _fpreset (void); /* Reset the FPU */ -void fpreset (void); - -/* Global 'variable' for the current floating point error code. */ -int * __fpecode(void); -#define _fpecode (*(__fpecode())) - -/* - * IEEE recommended functions - */ - -double _chgsign (double); -double _copysign (double, double); -double _logb (double); -double _nextafter (double, double); -double _scalb (double, long); - -int _finite (double); -int _fpclass (double); -int _isnan (double); - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not __STRICT_ANSI__ */ - -#endif /* _FLOAT_H_ */ - diff --git a/winsup/mingw/include/io.h b/winsup/mingw/include/io.h deleted file mode 100644 index ea86ffa0c..000000000 --- a/winsup/mingw/include/io.h +++ /dev/null @@ -1,296 +0,0 @@ -/* - * io.h - * - * System level I/O functions and types. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _IO_H_ -#define _IO_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* We need the definition of FILE anyway... */ -#include - -/* MSVC's io.h contains the stuff from dir.h, so I will too. - * NOTE: This also defines off_t, the file offset type, through - * an inclusion of sys/types.h */ -#ifndef __STRICT_ANSI__ - -#include /* To get time_t. */ - -/* - * Attributes of files as returned by _findfirst et al. - */ -#define _A_NORMAL 0x00000000 -#define _A_RDONLY 0x00000001 -#define _A_HIDDEN 0x00000002 -#define _A_SYSTEM 0x00000004 -#define _A_VOLID 0x00000008 -#define _A_SUBDIR 0x00000010 -#define _A_ARCH 0x00000020 - - -#ifndef RC_INVOKED - -#ifndef _FSIZE_T_DEFINED -typedef unsigned long _fsize_t; -#define _FSIZE_T_DEFINED -#endif - -/* - * The following structure is filled in by _findfirst or _findnext when - * they succeed in finding a match. - */ -struct _finddata_t -{ - unsigned attrib; /* Attributes, see constants above. */ - time_t time_create; - time_t time_access; /* always midnight local time */ - time_t time_write; - _fsize_t size; - char name[FILENAME_MAX]; /* may include spaces. */ -}; - -struct _finddatai64_t { - unsigned attrib; - time_t time_create; - time_t time_access; - time_t time_write; - __int64 size; - char name[FILENAME_MAX]; -}; - - -#ifndef _WFINDDATA_T_DEFINED -struct _wfinddata_t { - unsigned attrib; - time_t time_create; /* -1 for FAT file systems */ - time_t time_access; /* -1 for FAT file systems */ - time_t time_write; - _fsize_t size; - wchar_t name[FILENAME_MAX]; /* may include spaces. */ -}; -struct _wfinddatai64_t { - unsigned attrib; - time_t time_create; - time_t time_access; - time_t time_write; - __int64 size; - wchar_t name[FILENAME_MAX]; -}; - -#define _WFINDDATA_T_DEFINED -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Functions for searching for files. _findfirst returns -1 if no match - * is found. Otherwise it returns a handle to be used in _findnext and - * _findclose calls. _findnext also returns -1 if no match could be found, - * and 0 if a match was found. Call _findclose when you are finished. - */ -int _findfirst (const char*, struct _finddata_t*); -int _findnext (int, struct _finddata_t*); -int _findclose (int); - -int _chdir (const char*); -char* _getcwd (char*, int); -int _mkdir (const char*); -char* _mktemp (char*); -int _rmdir (const char*); - - -#ifdef __MSVCRT__ -__int64 _filelengthi64(int); -long _findfirsti64(const char*, struct _finddatai64_t*); -int _findnexti64(long, struct _finddatai64_t*); -__int64 _lseeki64(int, __int64, int); -__int64 _telli64(int); -#endif /* __MSVCRT__ */ - - -#ifndef _NO_OLDNAMES - -#ifndef _UWIN -int chdir (const char*); -char* getcwd (char*, int); -int mkdir (const char*); -char* mktemp (char*); -int rmdir (const char*); -#endif /* _UWIN */ - -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not __STRICT_ANSI__ */ - -/* TODO: Maximum number of open handles has not been tested, I just set - * it the same as FOPEN_MAX. */ -#define HANDLE_MAX FOPEN_MAX - - -/* Some defines for _access nAccessMode (MS doesn't define them, but - * it doesn't seem to hurt to add them). */ -#define F_OK 0 /* Check for file existence */ -#define X_OK 1 /* Check for execute permission. */ -#define W_OK 2 /* Check for write permission */ -#define R_OK 4 /* Check for read permission */ - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -int _access (const char*, int); -int _chsize (int, long); -int _close (int); -int _commit(int); - -/* NOTE: The only significant bit in unPermissions appears to be bit 7 (0x80), - * the "owner write permission" bit (on FAT). */ -int _creat (const char*, unsigned); - -int _dup (int); -int _dup2 (int, int); -long _filelength (int); -int _fileno (FILE*); -long _get_osfhandle (int); -int _isatty (int); - -/* In a very odd turn of events this function is excluded from those - * files which define _STREAM_COMPAT. This is required in order to - * build GNU libio because of a conflict with _eof in streambuf.h - * line 107. Actually I might just be able to change the name of - * the enum member in streambuf.h... we'll see. TODO */ -#ifndef _STREAM_COMPAT -int _eof (int); -#endif - -/* LK_... locking commands defined in sys/locking.h. */ -int _locking (int, int, long); - -long _lseek (int, long, int); - -/* Optional third argument is unsigned unPermissions. */ -int _open (const char*, int, ...); - -int _open_osfhandle (long, int); -int _pipe (int *, unsigned int, int); -int _read (int, void*, unsigned int); - -/* SH_... flags for nShFlags defined in share.h - * Optional fourth argument is unsigned unPermissions */ -int _sopen (const char*, int, int, ...); - -long _tell (int); -/* Should umask be in sys/stat.h and/or sys/types.h instead? */ -int _umask (int); -int _unlink (const char*); -int _write (int, const void*, unsigned int); - -/* Wide character versions. Also declared in wchar.h. */ -/* Not in crtdll.dll */ -#if !defined (_WIO_DEFINED) -#if defined (__MSVCRT__) -int _waccess(const wchar_t*, int); -int _wchmod(const wchar_t*, int); -int _wcreat(const wchar_t*, int); -long _wfindfirst(wchar_t*, struct _wfinddata_t*); -int _wfindnext(long, struct _wfinddata_t *); -int _wunlink(const wchar_t*); -int _wopen(const wchar_t*, int, ...); -int _wsopen(const wchar_t*, int, int, ...); -wchar_t * _wmktemp(wchar_t*); -long _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*); -int _wfindnexti64(long, struct _wfinddatai64_t*); -#endif /* defined (__MSVCRT__) */ -#define _WIO_DEFINED -#endif /* _WIO_DEFINED */ - -#ifndef _NO_OLDNAMES -/* - * Non-underscored versions of non-ANSI functions to improve portability. - * These functions live in libmoldname.a. - */ - -#ifndef _UWIN -int access (const char*, int); -int chsize (int, long ); -int close (int); -int creat (const char*, int); -int dup (int); -int dup2 (int, int); -int eof (int); -long filelength (int); -int fileno (FILE*); -int isatty (int); -long lseek (int, long, int); -int open (const char*, int, ...); -int read (int, void*, unsigned int); -int sopen (const char*, int, int, ...); -long tell (int); -int umask (int); -int unlink (const char*); -int write (int, const void*, unsigned int); -#endif /* _UWIN */ - -/* Wide character versions. Also declared in wchar.h. */ -/* Where do these live? Not in libmoldname.a nor in libmsvcrt.a */ -#if 0 -int waccess(const wchar_t *, int); -int wchmod(const wchar_t *, int); -int wcreat(const wchar_t *, int); -long wfindfirst(wchar_t *, struct _wfinddata_t *); -int wfindnext(long, struct _wfinddata_t *); -int wunlink(const wchar_t *); -int wrename(const wchar_t *, const wchar_t *); -int wopen(const wchar_t *, int, ...); -int wsopen(const wchar_t *, int, int, ...); -wchar_t * wmktemp(wchar_t *); -#endif - -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* _IO_H_ not defined */ - -#endif /* Not strict ANSI */ - diff --git a/winsup/mingw/include/limits.h b/winsup/mingw/include/limits.h deleted file mode 100644 index a1901fc9d..000000000 --- a/winsup/mingw/include/limits.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * limits.h - * - * Defines constants for the sizes of integral types. - * - * NOTE: GCC should supply a version of this header and it should be safe to - * use that version instead of this one (maybe safer). - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _LIMITS_H_ -#define _LIMITS_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* - * File system limits - * - * TODO: NAME_MAX and OPEN_MAX are file system limits or not? Are they the - * same as FILENAME_MAX and FOPEN_MAX from stdio.h? - * NOTE: Apparently the actual size of PATH_MAX is 260, but a space is - * required for the NUL. TODO: Test? - */ -#define PATH_MAX (259) - -/* - * Characteristics of the char data type. - * - * TODO: Is MB_LEN_MAX correct? - */ -#define CHAR_BIT 8 -#define MB_LEN_MAX 2 - -#define SCHAR_MIN (-128) -#define SCHAR_MAX 127 - -#define UCHAR_MAX 255 - -/* TODO: Is this safe? I think it might just be testing the preprocessor, - * not the compiler itself... */ -#if ('\x80' < 0) -#define CHAR_MIN SCHAR_MIN -#define CHAR_MAX SCHAR_MAX -#else -#define CHAR_MIN 0 -#define CHAR_MAX UCHAR_MAX -#endif - -/* - * Maximum and minimum values for ints. - */ -#define INT_MAX 2147483647 -#define INT_MIN (-INT_MAX-1) - -#define UINT_MAX 0xffffffff - -/* - * Maximum and minimum values for shorts. - */ -#define SHRT_MAX 32767 -#define SHRT_MIN (-SHRT_MAX-1) - -#define USHRT_MAX 0xffff - -/* - * Maximum and minimum values for longs and unsigned longs. - * - * TODO: This is not correct for Alphas, which have 64 bit longs. - */ -#define LONG_MAX 2147483647L - -#define LONG_MIN (-LONG_MAX-1) - -#define ULONG_MAX 0xffffffffUL - - -/* - * The GNU C compiler also allows 'long long int' - */ -#if !defined(__STRICT_ANSI__) && defined(__GNUC__) - -#define LONG_LONG_MAX 9223372036854775807LL -#define LONG_LONG_MIN (-LONG_LONG_MAX-1) - -#define ULONG_LONG_MAX (2ULL * LONG_LONG_MAX + 1) - -/* ISO C9x macro names */ -#define LLONG_MAX LONG_LONG_MAX -#define LLONG_MIN LONG_LONG_MIN -#define ULLONG_MAX ULONG_LONG_MAX - -#endif /* Not Strict ANSI and GNU C compiler */ - - -#endif /* not _LIMITS_H_ */ diff --git a/winsup/mingw/include/locale.h b/winsup/mingw/include/locale.h deleted file mode 100644 index 06db31a3d..000000000 --- a/winsup/mingw/include/locale.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * locale.h - * - * Functions and types for localization (ie. changing the appearance of - * output based on the standards of a certain country). - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _LOCALE_H_ -#define _LOCALE_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* - * NOTE: I have tried to test this, but I am limited by my knowledge of - * locale issues. The structure does not bomb if you look at the - * values, and 'decimal_point' even seems to be correct. But the - * rest of the values are, by default, not particularly useful - * (read meaningless and not related to the international settings - * of the system). - */ - -#define LC_ALL 0 -#define LC_COLLATE 1 -#define LC_CTYPE 2 -#define LC_MONETARY 3 -#define LC_NUMERIC 4 -#define LC_TIME 5 -#define LC_MIN LC_ALL -#define LC_MAX LC_TIME - -#ifndef RC_INVOKED - -/* - * The structure returned by 'localeconv'. - */ -struct lconv -{ - char* decimal_point; - char* thousands_sep; - char* grouping; - char* int_curr_symbol; - char* currency_symbol; - char* mon_decimal_point; - char* mon_thousands_sep; - char* mon_grouping; - char* positive_sign; - char* negative_sign; - char int_frac_digits; - char frac_digits; - char p_cs_precedes; - char p_sep_by_space; - char n_cs_precedes; - char n_sep_by_space; - char p_sign_posn; - char n_sign_posn; -}; - -#ifdef __cplusplus -extern "C" { -#endif - -char* setlocale (int, const char*); -struct lconv* localeconv (void); - -#ifndef _WLOCALE_DEFINED /* also declared in wchar.h */ -# define __need_wchar_t -# include - wchar_t* _wsetlocale(int, const wchar_t*); -# define _WLOCALE_DEFINED -#endif /* ndef _WLOCALE_DEFINED */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _LOCALE_H_ */ - diff --git a/winsup/mingw/include/malloc.h b/winsup/mingw/include/malloc.h deleted file mode 100644 index 9c412404b..000000000 --- a/winsup/mingw/include/malloc.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * malloc.h - * - * Support for programs which want to use malloc.h to get memory management - * functions. Unless you absolutely need some of these functions and they are - * not in the ANSI headers you should use the ANSI standard header files - * instead. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _MALLOC_H_ -#define _MALLOC_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#include - -#ifndef RC_INVOKED - -/* - * The structure used to walk through the heap with _heapwalk. - */ -typedef struct _heapinfo -{ - int* _pentry; - size_t _size; - int _useflag; -} _HEAPINFO; - -/* Values for _heapinfo.useflag */ -#define _USEDENTRY 0 -#define _FREEENTRY 1 - -#ifdef __cplusplus -extern "C" { -#endif -/* - The _heap* memory allocation functions are supported on NT - but not W9x. On latter, they always set errno to ENOSYS. -*/ -int _heapwalk (_HEAPINFO*); - -#ifndef _NO_OLDNAMES -int heapwalk (_HEAPINFO*); -#endif /* Not _NO_OLDNAMES */ - -int _heapchk (void); /* Verify heap integrety. */ -int _heapmin (void); /* Return unused heap to the OS. */ -int _heapset (unsigned int); - -size_t _msize (void*); -size_t _get_sbh_threshold (void); -int _set_sbh_threshold (size_t); -void * _expand (void*, size_t); - -#ifdef __cplusplus -} -#endif - -#endif /* RC_INVOKED */ - -#endif /* Not _MALLOC_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/math.h b/winsup/mingw/include/math.h deleted file mode 100644 index 3fcaa1e50..000000000 --- a/winsup/mingw/include/math.h +++ /dev/null @@ -1,218 +0,0 @@ -/* - * math.h - * - * Mathematical functions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _MATH_H_ -#define _MATH_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* - * Types for the _exception structure. - */ - -#define _DOMAIN 1 /* domain error in argument */ -#define _SING 2 /* singularity */ -#define _OVERFLOW 3 /* range overflow */ -#define _UNDERFLOW 4 /* range underflow */ -#define _TLOSS 5 /* total loss of precision */ -#define _PLOSS 6 /* partial loss of precision */ - -/* - * Exception types with non-ANSI names for compatibility. - */ - -#ifndef __STRICT_ANSI__ - -/* These are also defined in Mingw float.h; needed here as well to work - around GCC build issues. */ -#ifndef __MINGW_FPCLASS_DEFINED -#define __MINGW_FPCLASS_DEFINED 1 -#define _FPCLASS_SNAN 0x0001 /* Signaling "Not a Number" */ -#define _FPCLASS_QNAN 0x0002 /* Quiet "Not a Number" */ -#define _FPCLASS_NINF 0x0004 /* Negative Infinity */ -#define _FPCLASS_NN 0x0008 /* Negative Normal */ -#define _FPCLASS_ND 0x0010 /* Negative Denormal */ -#define _FPCLASS_NZ 0x0020 /* Negative Zero */ -#define _FPCLASS_PZ 0x0040 /* Positive Zero */ -#define _FPCLASS_PD 0x0080 /* Positive Denormal */ -#define _FPCLASS_PN 0x0100 /* Positive Normal */ -#define _FPCLASS_PINF 0x0200 /* Positive Infinity */ -#endif /* __MINGW_FPCLASS_DEFINED */ - -#ifndef _NO_OLDNAMES - -#define DOMAIN _DOMAIN -#define SING _SING -#define OVERFLOW _OVERFLOW -#define UNDERFLOW _UNDERFLOW -#define TLOSS _TLOSS -#define PLOSS _PLOSS - -#endif /* Not _NO_OLDNAMES */ -#endif /* Not __STRICT_ANSI__ */ - - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * HUGE_VAL is returned by strtod when the value would overflow the - * representation of 'double'. There are other uses as well. - * - * __imp__HUGE is a pointer to the actual variable _HUGE in - * MSVCRT.DLL. If we used _HUGE directly we would get a pointer - * to a thunk function. - * - * NOTE: The CRTDLL version uses _HUGE_dll instead. - */ - -#ifndef __DECLSPEC_SUPPORTED - -#ifdef __MSVCRT__ -extern double* __imp__HUGE; -#define HUGE_VAL (*__imp__HUGE) -#else -/* CRTDLL */ -extern double* __imp__HUGE_dll; -#define HUGE_VAL (*__imp__HUGE_dll) -#endif - -#else /* __DECLSPEC_SUPPORTED */ - -#ifdef __MSVCRT__ -__MINGW_IMPORT double _HUGE; -#define HUGE_VAL _HUGE -#else -/* CRTDLL */ -__MINGW_IMPORT double _HUGE_dll; -#define HUGE_VAL _HUGE_dll -#endif - -#endif /* __DECLSPEC_SUPPORTED */ - -struct _exception -{ - int type; - char *name; - double arg1; - double arg2; - double retval; -}; - - -double sin (double); -double cos (double); -double tan (double); -double sinh (double); -double cosh (double); -double tanh (double); -double asin (double); -double acos (double); -double atan (double); -double atan2 (double, double); -double exp (double); -double log (double); -double log10 (double); -double pow (double, double); -double sqrt (double); -double ceil (double); -double floor (double); -double fabs (double); -double ldexp (double, int); -double frexp (double, int*); -double modf (double, double*); -double fmod (double, double); - - -#ifndef __STRICT_ANSI__ - -/* Complex number (for cabs) */ -struct _complex -{ - double x; /* Real part */ - double y; /* Imaginary part */ -}; - -double _cabs (struct _complex); -double _hypot (double, double); -double _j0 (double); -double _j1 (double); -double _jn (int, double); -double _y0 (double); -double _y1 (double); -double _yn (int, double); -int _matherr (struct _exception *); - -/* These are also declared in Mingw float.h; needed here as well to work - around GCC build issues. */ -/* BEGIN FLOAT.H COPY */ -/* - * IEEE recommended functions - */ - -double _chgsign (double); -double _copysign (double, double); -double _logb (double); -double _nextafter (double, double); -double _scalb (double, long); - -int _finite (double); -int _fpclass (double); -int _isnan (double); - -/* END FLOAT.H COPY */ - -#ifndef _NO_OLDNAMES - -/* - * Non-underscored versions of non-ANSI functions. These reside in - * liboldnames.a. Provided for extra portability. - */ -double cabs (struct _complex); -double hypot (double, double); -double j0 (double); -double j1 (double); -double jn (int, double); -double y0 (double); -double y1 (double); -double yn (int, double); - -#endif /* Not _NO_OLDNAMES */ - -#endif /* Not __STRICT_ANSI__ */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _MATH_H_ */ - diff --git a/winsup/mingw/include/mem.h b/winsup/mingw/include/mem.h deleted file mode 100644 index 20c8fa4a5..000000000 --- a/winsup/mingw/include/mem.h +++ /dev/null @@ -1,8 +0,0 @@ -/* - * This file is part of the Mingw32 package. - * - * mem.h maps to string.h - */ -#ifndef __STRICT_ANSI__ -#include -#endif diff --git a/winsup/mingw/include/memory.h b/winsup/mingw/include/memory.h deleted file mode 100644 index e0c91d635..000000000 --- a/winsup/mingw/include/memory.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * This file is part of the Mingw32 package. - * - * memory.h maps to the standard string.h header. - */ -#ifndef __STRICT_ANSI__ -#include -#endif - diff --git a/winsup/mingw/include/process.h b/winsup/mingw/include/process.h deleted file mode 100644 index adf19e8cd..000000000 --- a/winsup/mingw/include/process.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - * process.h - * - * Function calls for spawning child processes. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _PROCESS_H_ -#define _PROCESS_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* Includes a definition of _pid_t and pid_t */ -#include - -/* - * Constants for cwait actions. - * Obsolete for Win32. - */ -#define _WAIT_CHILD 0 -#define _WAIT_GRANDCHILD 1 - -#ifndef _NO_OLDNAMES -#define WAIT_CHILD _WAIT_CHILD -#define WAIT_GRANDCHILD _WAIT_GRANDCHILD -#endif /* Not _NO_OLDNAMES */ - -/* - * Mode constants for spawn functions. - */ -#define _P_WAIT 0 -#define _P_NOWAIT 1 -#define _P_OVERLAY 2 -#define _OLD_P_OVERLAY _P_OVERLAY -#define _P_NOWAITO 3 -#define _P_DETACH 4 - -#ifndef _NO_OLDNAMES -#define P_WAIT _P_WAIT -#define P_NOWAIT _P_NOWAIT -#define P_OVERLAY _P_OVERLAY -#define OLD_P_OVERLAY _OLD_P_OVERLAY -#define P_NOWAITO _P_NOWAITO -#define P_DETACH _P_DETACH -#endif /* Not _NO_OLDNAMES */ - - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -void _cexit(void); -void _c_exit(void); - -int _cwait (int*, _pid_t, int); - -_pid_t _getpid(void); - -int _execl (const char*, const char*, ...); -int _execle (const char*, const char*, ...); -int _execlp (const char*, const char*, ...); -int _execlpe (const char*, const char*, ...); -int _execv (const char*, char* const*); -int _execve (const char*, char* const*, char* const*); -int _execvp (const char*, char* const*); -int _execvpe (const char*, char* const*, char* const*); - -int _spawnl (int, const char*, const char*, ...); -int _spawnle (int, const char*, const char*, ...); -int _spawnlp (int, const char*, const char*, ...); -int _spawnlpe (int, const char*, const char*, ...); -int _spawnv (int, const char*, char* const*); -int _spawnve (int, const char*, char* const*, char* const*); -int _spawnvp (int, const char*, char* const*); -int _spawnvpe (int, const char*, char* const*, char* const*); - -/* - * The functions _beginthreadex and _endthreadex are not provided by CRTDLL. - * They are provided by MSVCRT. - * - * NOTE: Apparently _endthread calls CloseHandle on the handle of the thread, - * making for race conditions if you are not careful. Basically you have to - * make sure that no-one is going to do *anything* with the thread handle - * after the thread calls _endthread or returns from the thread function. - * - * NOTE: No old names for these functions. Use the underscore. - */ -unsigned long - _beginthread (void (*)(void *), unsigned, void*); -void _endthread (void); - -#ifdef __MSVCRT__ -unsigned long - _beginthreadex (void *, unsigned, unsigned (__stdcall *) (void *), - void*, unsigned, unsigned*); -void _endthreadex (unsigned); -#endif - - -#ifndef _NO_OLDNAMES -/* - * Functions without the leading underscore, for portability. These functions - * live in liboldnames.a. - */ -int cwait (int*, pid_t, int); -pid_t getpid (void); -int execl (const char*, const char*, ...); -int execle (const char*, const char*, ...); -int execlp (const char*, const char*, ...); -int execlpe (const char*, const char*, ...); -int execv (const char*, char* const*); -int execve (const char*, char* const*, char* const*); -int execvp (const char*, char* const*); -int execvpe (const char*, char* const*, char* const*); -int spawnl (int, const char*, const char*, ...); -int spawnle (int, const char*, const char*, ...); -int spawnlp (int, const char*, const char*, ...); -int spawnlpe (int, const char*, const char*, ...); -int spawnv (int, const char*, char* const*); -int spawnve (int, const char*, char* const*, char* const*); -int spawnvp (int, const char*, char* const*); -int spawnvpe (int, const char*, char* const*, char* const*); -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* _PROCESS_H_ not defined */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/setjmp.h b/winsup/mingw/include/setjmp.h deleted file mode 100644 index 89f045f60..000000000 --- a/winsup/mingw/include/setjmp.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * setjmp.h - * - * Declarations supporting setjmp and longjump, a method for avoiding - * the normal function call return sequence. (Bleah!) - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _SETJMP_H_ -#define _SETJMP_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The buffer used by setjmp to store the information used by longjmp - * to perform it's evil goto-like work. The size of this buffer was - * determined through experimentation; it's contents are a mystery. - * NOTE: This was determined on an i386 (actually a Pentium). The - * contents could be different on an Alpha or something else. - */ -#define _JBLEN 16 -#define _JBTYPE int -typedef _JBTYPE jmp_buf[_JBLEN]; - -/* - * The function provided by CRTDLL which appears to do the actual work - * of setjmp. - */ -int _setjmp (jmp_buf); - -#define setjmp(x) _setjmp(x) - -/* - * Return to the last setjmp call and act as if setjmp had returned - * nVal (which had better be non-zero!). - */ -void longjmp (jmp_buf, int); - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _SETJMP_H_ */ - diff --git a/winsup/mingw/include/share.h b/winsup/mingw/include/share.h deleted file mode 100644 index 7c4b1c6b0..000000000 --- a/winsup/mingw/include/share.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * share.h - * - * Constants for file sharing functions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _SHARE_H_ -#define _SHARE_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define SH_COMPAT 0x00 /* Compatibility */ -#define SH_DENYRW 0x10 /* Deny read/write */ -#define SH_DENYWR 0x20 /* Deny write */ -#define SH_DENYRD 0x30 /* Deny read */ -#define SH_DENYNO 0x40 /* Deny nothing */ - -#endif /* Not _SHARE_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/signal.h b/winsup/mingw/include/signal.h deleted file mode 100644 index 4298accb7..000000000 --- a/winsup/mingw/include/signal.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * signal.h - * - * A way to set handlers for exceptional conditions (also known as signals). - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _SIGNAL_H_ -#define _SIGNAL_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* - * The actual signal values. Using other values with signal - * produces a SIG_ERR return value. - * - * NOTE: SIGINT is produced when the user presses Ctrl-C. - * SIGILL has not been tested. - * SIGFPE doesn't seem to work? - * SIGSEGV does not catch writing to a NULL pointer (that shuts down - * your app; can you say "segmentation violation core dump"?). - * SIGTERM comes from what kind of termination request exactly? - * SIGBREAK is indeed produced by pressing Ctrl-Break. - * SIGABRT is produced by calling abort. - * TODO: The above results may be related to not installing an appropriate - * structured exception handling frame. Results may be better if I ever - * manage to get the SEH stuff down. - */ -#define SIGINT 2 /* Interactive attention */ -#define SIGILL 4 /* Illegal instruction */ -#define SIGFPE 8 /* Floating point error */ -#define SIGSEGV 11 /* Segmentation violation */ -#define SIGTERM 15 /* Termination request */ -#define SIGBREAK 21 /* Control-break */ -#define SIGABRT 22 /* Abnormal termination (abort) */ - -#define NSIG 23 /* maximum signal number + 1 */ - -#ifndef RC_INVOKED - -#ifndef _SIG_ATOMIC_T_DEFINED -typedef int sig_atomic_t; -#define _SIG_ATOMIC_T_DEFINED -#endif - -/* - * The prototypes (below) are the easy part. The hard part is figuring - * out what signals are available and what numbers they are assigned - * along with appropriate values of SIG_DFL and SIG_IGN. - */ - -/* - * A pointer to a signal handler function. A signal handler takes a - * single int, which is the signal it handles. - */ -typedef void (*__p_sig_fn_t)(int); - -/* - * These are special values of signal handler pointers which are - * used to send a signal to the default handler (SIG_DFL), ignore - * the signal (SIG_IGN), or indicate an error return (SIG_ERR). - */ -#define SIG_DFL ((__p_sig_fn_t) 0) -#define SIG_IGN ((__p_sig_fn_t) 1) -#define SIG_ERR ((__p_sig_fn_t) -1) - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Call signal to set the signal handler for signal sig to the - * function pointed to by handler. Returns a pointer to the - * previous handler, or SIG_ERR if an error occurs. Initially - * unhandled signals defined above will return SIG_DFL. - */ -__p_sig_fn_t signal(int, __p_sig_fn_t); - -/* - * Raise the signal indicated by sig. Returns non-zero on success. - */ -int raise (int); - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _SIGNAL_H_ */ - diff --git a/winsup/mingw/include/stdarg.h b/winsup/mingw/include/stdarg.h deleted file mode 100644 index 20169a1fc..000000000 --- a/winsup/mingw/include/stdarg.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * stdarg.h - * - * Provides facilities for stepping through a list of function arguments of - * an unknown number and type. - * - * NOTE: Gcc should provide stdarg.h, and I believe their version will work - * with crtdll. If necessary I think you can replace this with the GCC - * stdarg.h. - * - * Note that the type used in va_arg is supposed to match the actual type - * *after default promotions*. Thus, va_arg (..., short) is not valid. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _STDARG_H_ -#define _STDARG_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* - * Don't do any of this stuff for the resource compiler. - */ -#ifndef RC_INVOKED - -/* - * I was told that Win NT likes this. - */ -#ifndef _VA_LIST_DEFINED -#define _VA_LIST_DEFINED -#endif - -#ifndef _VA_LIST -#define _VA_LIST -#if defined __GNUC__ && __GNUC__ >= 3 -typedef __builtin_va_list va_list; -#else -typedef char* va_list; -#endif -#endif - -/* - * Amount of space required in an argument list (ie. the stack) for an - * argument of type t. - */ -#define __va_argsiz(t) \ - (((sizeof(t) + sizeof(int) - 1) / sizeof(int)) * sizeof(int)) - - -/* - * Start variable argument list processing by setting AP to point to the - * argument after pN. - */ -#ifdef __GNUC__ -/* - * In GNU the stack is not necessarily arranged very neatly in order to - * pack shorts and such into a smaller argument list. Fortunately a - * neatly arranged version is available through the use of __builtin_next_arg. - */ -#define va_start(ap, pN) \ - ((ap) = ((va_list) __builtin_next_arg(pN))) -#else -/* - * For a simple minded compiler this should work (it works in GNU too for - * vararg lists that don't follow shorts and such). - */ -#define va_start(ap, pN) \ - ((ap) = ((va_list) (&pN) + __va_argsiz(pN))) -#endif - - -/* - * End processing of variable argument list. In this case we do nothing. - */ -#define va_end(ap) ((void)0) - - -/* - * Increment ap to the next argument in the list while returing a - * pointer to what ap pointed to first, which is of type t. - * - * We cast to void* and then to t* because this avoids a warning about - * increasing the alignment requirement. - */ - -#define va_arg(ap, t) \ - (((ap) = (ap) + __va_argsiz(t)), \ - *((t*) (void*) ((ap) - __va_argsiz(t)))) - -#endif /* Not RC_INVOKED */ - -#endif /* not _STDARG_H_ */ diff --git a/winsup/mingw/include/stddef.h b/winsup/mingw/include/stddef.h deleted file mode 100644 index 7bdc2cfd0..000000000 --- a/winsup/mingw/include/stddef.h +++ /dev/null @@ -1,373 +0,0 @@ -/* - * stddef.h - * - * Standard type definitions provided by the C library. - * - * NOTE: This is typically supplied by GCC, but there's a small gotcha - - * GCC's version doesn't guard typedefs via RC_INVOKED. This is - * GCC's version, with the guard macro. Since we install this in - * the tool include directory, it gets picked up before GCC's - * internal include directory, and we're safe. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#if (!defined(_STDDEF_H) && !defined(_STDDEF_H_) && !defined(_ANSI_STDDEF_H) \ - && !defined(__STDDEF_H__)) \ - || defined(__need_wchar_t) || defined(__need_size_t) \ - || defined(__need_ptrdiff_t) || defined(__need_NULL) \ - || defined(__need_wint_t) - -/* Any one of these symbols __need_* means that GNU libc - wants us just to define one data type. So don't define - the symbols that indicate this file's entire job has been done. */ -#if (!defined(__need_wchar_t) && !defined(__need_size_t) \ - && !defined(__need_ptrdiff_t) && !defined(__need_NULL) \ - && !defined(__need_wint_t)) -#define _STDDEF_H -#define _STDDEF_H_ -/* snaroff@next.com says the NeXT needs this. */ -#define _ANSI_STDDEF_H -/* Irix 5.1 needs this. */ -#define __STDDEF_H__ -#endif - -#ifndef RC_INVOKED - -#ifndef __sys_stdtypes_h -/* This avoids lossage on SunOS but only if stdtypes.h comes first. - There's no way to win with the other order! Sun lossage. */ - -/* On 4.3bsd-net2, make sure ansi.h is included, so we have - one less case to deal with in the following. */ -#if defined (__BSD_NET2__) || defined (____386BSD____) || defined (__FreeBSD__) || defined(__NetBSD__) -#include -#endif - -/* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are - defined if the corresponding type is *not* defined. - FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_ */ -#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) -#if !defined(_SIZE_T_) && !defined(_BSD_SIZE_T_) -#define _SIZE_T -#endif -#if !defined(_PTRDIFF_T_) && !defined(_BSD_PTRDIFF_T_) -#define _PTRDIFF_T -#endif -/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ - instead of _WCHAR_T_. */ -#if !defined(_WCHAR_T_) && !defined(_BSD_WCHAR_T_) -#ifndef _BSD_WCHAR_T_ -#define _WCHAR_T -#endif -#endif -/* Undef _FOO_T_ if we are supposed to define foo_t. */ -#if defined (__need_ptrdiff_t) || defined (_STDDEF_H_) -#undef _PTRDIFF_T_ -#undef _BSD_PTRDIFF_T_ -#endif -#if defined (__need_size_t) || defined (_STDDEF_H_) -#undef _SIZE_T_ -#undef _BSD_SIZE_T_ -#endif -#if defined (__need_wchar_t) || defined (_STDDEF_H_) -#undef _WCHAR_T_ -#undef _BSD_WCHAR_T_ -#endif -#endif /* defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) */ - -/* Sequent's header files use _PTRDIFF_T_ in some conflicting way. - Just ignore it. */ -#if defined (__sequent__) && defined (_PTRDIFF_T_) -#undef _PTRDIFF_T_ -#endif - -/* On VxWorks, may have defined macros like - _TYPE_size_t which will typedef size_t. fixincludes patched the - vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is - not defined, and so that defining this macro defines _GCC_SIZE_T. - If we find that the macros are still defined at this point, we must - invoke them so that the type is defined as expected. */ -#if defined (_TYPE_ptrdiff_t) && (defined (__need_ptrdiff_t) || defined (_STDDEF_H_)) -_TYPE_ptrdiff_t; -#undef _TYPE_ptrdiff_t -#endif -#if defined (_TYPE_size_t) && (defined (__need_size_t) || defined (_STDDEF_H_)) -_TYPE_size_t; -#undef _TYPE_size_t -#endif -#if defined (_TYPE_wchar_t) && (defined (__need_wchar_t) || defined (_STDDEF_H_)) -_TYPE_wchar_t; -#undef _TYPE_wchar_t -#endif - -/* In case nobody has defined these types, but we aren't running under - GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE__TYPE__, and - __WCHAR_TYPE__ have reasonable values. This can happen if the - parts of GCC is compiled by an older compiler, that actually - include gstddef.h, such as collect2. */ - -/* Signed type of difference of two pointers. */ - -/* Define this type if we are doing the whole job, - or if we want this type in particular. */ -#if defined (_STDDEF_H) || defined (__need_ptrdiff_t) -#ifndef _PTRDIFF_T /* in case has defined it. */ -#ifndef _T_PTRDIFF_ -#ifndef _T_PTRDIFF -#ifndef __PTRDIFF_T -#ifndef _PTRDIFF_T_ -#ifndef _BSD_PTRDIFF_T_ -#ifndef ___int_ptrdiff_t_h -#ifndef _GCC_PTRDIFF_T -#define _PTRDIFF_T -#define _T_PTRDIFF_ -#define _T_PTRDIFF -#define __PTRDIFF_T -#define _PTRDIFF_T_ -#define _BSD_PTRDIFF_T_ -#define ___int_ptrdiff_t_h -#define _GCC_PTRDIFF_T -#ifndef __PTRDIFF_TYPE__ -#define __PTRDIFF_TYPE__ long int -#endif -typedef __PTRDIFF_TYPE__ ptrdiff_t; -#endif /* _GCC_PTRDIFF_T */ -#endif /* ___int_ptrdiff_t_h */ -#endif /* _BSD_PTRDIFF_T_ */ -#endif /* _PTRDIFF_T_ */ -#endif /* __PTRDIFF_T */ -#endif /* _T_PTRDIFF */ -#endif /* _T_PTRDIFF_ */ -#endif /* _PTRDIFF_T */ - -/* If this symbol has done its job, get rid of it. */ -#undef __need_ptrdiff_t - -#endif /* _STDDEF_H or __need_ptrdiff_t. */ - -/* Unsigned type of `sizeof' something. */ - -/* Define this type if we are doing the whole job, - or if we want this type in particular. */ -#if defined (_STDDEF_H) || defined (__need_size_t) -#ifndef __size_t__ /* BeOS */ -#ifndef _SIZE_T /* in case has defined it. */ -#ifndef _SYS_SIZE_T_H -#ifndef _T_SIZE_ -#ifndef _T_SIZE -#ifndef __SIZE_T -#ifndef _SIZE_T_ -#ifndef _BSD_SIZE_T_ -#ifndef _SIZE_T_DEFINED_ -#ifndef _SIZE_T_DEFINED -#ifndef ___int_size_t_h -#ifndef _GCC_SIZE_T -#ifndef _SIZET_ -#ifndef __size_t -#define __size_t__ /* BeOS */ -#define _SIZE_T -#define _SYS_SIZE_T_H -#define _T_SIZE_ -#define _T_SIZE -#define __SIZE_T -#define _SIZE_T_ -#define _BSD_SIZE_T_ -#define _SIZE_T_DEFINED_ -#define _SIZE_T_DEFINED -#define ___int_size_t_h -#define _GCC_SIZE_T -#define _SIZET_ -#define __size_t -#ifndef __SIZE_TYPE__ -#define __SIZE_TYPE__ long unsigned int -#endif -#if !(defined (__GNUG__) && defined (size_t)) -typedef __SIZE_TYPE__ size_t; -#ifdef __BEOS__ -typedef long ssize_t; -#endif /* __BEOS__ */ -#endif /* !(defined (__GNUG__) && defined (size_t)) */ -#endif /* __size_t */ -#endif /* _SIZET_ */ -#endif /* _GCC_SIZE_T */ -#endif /* ___int_size_t_h */ -#endif /* _SIZE_T_DEFINED */ -#endif /* _SIZE_T_DEFINED_ */ -#endif /* _BSD_SIZE_T_ */ -#endif /* _SIZE_T_ */ -#endif /* __SIZE_T */ -#endif /* _T_SIZE */ -#endif /* _T_SIZE_ */ -#endif /* _SYS_SIZE_T_H */ -#endif /* _SIZE_T */ -#endif /* __size_t__ */ -#undef __need_size_t -#endif /* _STDDEF_H or __need_size_t. */ - -/* Wide character type. - Locale-writers should change this as necessary to - be big enough to hold unique values not between 0 and 127, - and not (wchar_t) -1, for each defined multibyte character. */ - -/* Define this type if we are doing the whole job, - or if we want this type in particular. */ -#if defined (_STDDEF_H) || defined (__need_wchar_t) -#ifndef __wchar_t__ /* BeOS */ -#ifndef _WCHAR_T -#ifndef _T_WCHAR_ -#ifndef _T_WCHAR -#ifndef __WCHAR_T -#ifndef _WCHAR_T_ -#ifndef _BSD_WCHAR_T_ -#ifndef _WCHAR_T_DEFINED_ -#ifndef _WCHAR_T_DEFINED -#ifndef _WCHAR_T_H -#ifndef ___int_wchar_t_h -#ifndef __INT_WCHAR_T_H -#ifndef _GCC_WCHAR_T -#define __wchar_t__ /* BeOS */ -#define _WCHAR_T -#define _T_WCHAR_ -#define _T_WCHAR -#define __WCHAR_T -#define _WCHAR_T_ -#define _BSD_WCHAR_T_ -#define _WCHAR_T_DEFINED_ -#define _WCHAR_T_DEFINED -#define _WCHAR_T_H -#define ___int_wchar_t_h -#define __INT_WCHAR_T_H -#define _GCC_WCHAR_T - -/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_ - instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other - symbols in the _FOO_T_ family, stays defined even after its - corresponding type is defined). If we define wchar_t, then we - must undef _WCHAR_T_; for BSD/386 1.1 (and perhaps others), if - we undef _WCHAR_T_, then we must also define rune_t, since - headers like runetype.h assume that if machine/ansi.h is included, - and _BSD_WCHAR_T_ is not defined, then rune_t is available. - machine/ansi.h says, "Note that _WCHAR_T_ and _RUNE_T_ must be of - the same type." */ -#ifdef _BSD_WCHAR_T_ -#undef _BSD_WCHAR_T_ -#ifdef _BSD_RUNE_T_ -#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE) -typedef _BSD_RUNE_T_ rune_t; -#endif -#endif -#endif - -#ifndef __WCHAR_TYPE__ -#ifdef __BEOS__ -#define __WCHAR_TYPE__ unsigned char -#else -#define __WCHAR_TYPE__ int -#endif -#endif -#ifndef __cplusplus -typedef __WCHAR_TYPE__ wchar_t; -#endif -#endif -#endif -#endif -#endif -#endif -#endif -#endif -#endif -#endif -#endif -#endif -#endif -#endif /* __wchar_t__ */ -#undef __need_wchar_t -#endif /* _STDDEF_H or __need_wchar_t. */ - -#if defined (_STDDEF_H) || defined (__need_wint_t) -#ifndef _WINT_T -#define _WINT_T - -#ifndef __WINT_TYPE__ -#define __WINT_TYPE__ unsigned int -#endif -typedef __WINT_TYPE__ wint_t; -#endif -#undef __need_wint_t -#endif - -/* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc. - are already defined. */ -/* BSD/OS 3.1 requires the MACHINE_ANSI_H check here. FreeBSD 2.x apparently - does not, even though there is a check for MACHINE_ANSI_H above. */ -#if defined(_ANSI_H_) || (defined(__bsdi__) && defined(_MACHINE_ANSI_H_)) -/* The references to _GCC_PTRDIFF_T_, _GCC_SIZE_T_, and _GCC_WCHAR_T_ - are probably typos and should be removed before 2.8 is released. */ -#ifdef _GCC_PTRDIFF_T_ -#undef _PTRDIFF_T_ -#undef _BSD_PTRDIFF_T_ -#endif -#ifdef _GCC_SIZE_T_ -#undef _SIZE_T_ -#undef _BSD_SIZE_T_ -#endif -#ifdef _GCC_WCHAR_T_ -#undef _WCHAR_T_ -#undef _BSD_WCHAR_T_ -#endif -/* The following ones are the real ones. */ -#ifdef _GCC_PTRDIFF_T -#undef _PTRDIFF_T_ -#undef _BSD_PTRDIFF_T_ -#endif -#ifdef _GCC_SIZE_T -#undef _SIZE_T_ -#undef _BSD_SIZE_T_ -#endif -#ifdef _GCC_WCHAR_T -#undef _WCHAR_T_ -#undef _BSD_WCHAR_T_ -#endif -#endif /* _ANSI_H_ || ( __bsdi__ && _MACHINE_ANSI_H_ ) */ - -#endif /* __sys_stdtypes_h */ - -#endif /* RC_INVOKED */ - -/* A null pointer constant. */ - -#if defined (_STDDEF_H) || defined (__need_NULL) -#undef NULL /* in case has defined it. */ -#ifdef __GNUG__ -#define NULL __null -#else /* G++ */ -#define NULL ((void *)0) -#endif /* G++ */ -#endif /* NULL not defined and or need NULL. */ -#undef __need_NULL - -#ifdef _STDDEF_H - -/* Offset of member MEMBER in a struct of type TYPE. */ - -#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) - -#endif /* _STDDEF_H was defined this time */ - -#endif /* !_STDDEF_H && !_STDDEF_H_ && !_ANSI_STDDEF_H && !__STDDEF_H__ - || __need_XXX was not defined before */ diff --git a/winsup/mingw/include/stdint.h b/winsup/mingw/include/stdint.h deleted file mode 100644 index c3a79c5bb..000000000 --- a/winsup/mingw/include/stdint.h +++ /dev/null @@ -1,184 +0,0 @@ -/* ISO C9x 7.18 Integer types - * Based on ISO/IEC SC22/WG14 9899 Committee draft (SC22 N2794) - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * Contributor: Danny Smith - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Date: 2000-12-02 - */ - - -#ifndef _STDINT_H -#define _STDINT_H - -/* 7.18.1.1 Exact-width integer types */ -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef short int16_t; -typedef unsigned short uint16_t; -typedef int int32_t; -typedef unsigned uint32_t; -typedef long long int64_t; -typedef unsigned long long uint64_t; - -/* 7.18.1.2 Minimum-width integer types */ -typedef signed char int_least8_t; -typedef unsigned char uint_least8_t; -typedef short int_least16_t; -typedef unsigned short uint_least16_t; -typedef int int_least32_t; -typedef unsigned uint_least32_t; -typedef long long int_least64_t; -typedef unsigned long long uint_least64_t; - -/* 7.18.1.3 Fastest minimum-width integer types - * Not actually guaranteed to be fastest for all purposes - * Here we use the exact-width types for 8 and 16-bit ints. - */ -typedef char int_fast8_t; -typedef unsigned char uint_fast8_t; -typedef short int_fast16_t; -typedef unsigned short uint_fast16_t; -typedef int int_fast32_t; -typedef unsigned int uint_fast32_t; -typedef long long int_fast64_t; -typedef unsigned long long uint_fast64_t; - -/* 7.18.1.4 Integer types capable of holding object pointers */ -typedef int intptr_t; -typedef unsigned uintptr_t; - -/* 7.18.1.5 Greatest-width integer types */ -typedef long long intmax_t; -typedef unsigned long long uintmax_t; - -/* 7.18.2 Limits of specified-width integer types */ -#if !defined ( __cplusplus) || defined (__STDC_LIMIT_MACROS) - -/* 7.18.2.1 Limits of exact-width integer types */ -#define INT8_MIN (-128) -#define INT16_MIN (-32768) -#define INT32_MIN (-2147483647 - 1) -#define INT64_MIN (-9223372036854775807LL - 1) - -#define INT8_MAX 127 -#define INT16_MAX 32767 -#define INT32_MAX 2147483647 -#define INT64_MAX 9223372036854775807LL - -#define UINT8_MAX 0xff /* 255U */ -#define UINT16_MAX 0xffff /* 65535U */ -#define UINT32_MAX 0xffffffff /* 4294967295U */ -#define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */ - -/* 7.18.2.2 Limits of minimum-width integer types */ -#define INT_LEAST8_MIN INT8_MIN -#define INT_LEAST16_MIN INT16_MIN -#define INT_LEAST32_MIN INT32_MIN -#define INT_LEAST64_MIN INT64_MIN - -#define INT_LEAST8_MAX INT8_MAX -#define INT_LEAST16_MAX INT16_MAX -#define INT_LEAST32_MAX INT32_MAX -#define INT_LEAST64_MAX INT64_MAX - -#define UINT_LEAST8_MAX UINT8_MAX -#define UINT_LEAST16_MAX UINT16_MAX -#define UINT_LEAST32_MAX UINT32_MAX -#define UINT_LEAST64_MAX UINT64_MAX - -/* 7.18.2.3 Limits of fastest minimum-width integer types */ -#define INT_FAST8_MIN INT8_MIN -#define INT_FAST16_MIN INT16_MIN -#define INT_FAST32_MIN INT32_MIN -#define INT_FAST64_MIN INT64_MIN - -#define INT_FAST8_MAX INT8_MAX -#define INT_FAST16_MAX INT16_MAX -#define INT_FAST32_MAX INT32_MAX -#define INT_FAST64_MAX INT64_MAX - -#define UINT_FAST8_MAX UINT8_MAX -#define UINT_FAST16_MAX UINT16_MAX -#define UINT_FAST32_MAX UINT32_MAX -#define UINT_FAST64_MAX UINT64_MAX - -/* 7.18.2.4 Limits of integer types capable of holding - object pointers */ -#define INTPTR_MIN INT32_MIN -#define INTPTR_MAX INT32_MAX -#define UINTPTR_MAX UINT32_MAX - -/* 7.18.2.5 Limits of greatest-width integer types */ -#define INTMAX_MIN INT64_MIN -#define INTMAX_MAX INT64_MAX -#define UINTMAX_MAX UINT64_MAX - -/* 7.18.3 Limits of other integer types */ -#define PTRDIFF_MIN INT32_MIN -#define PTRDIFF_MAX INT32_MAX - -#define SIG_ATOMIC_MIN INT32_MIN -#define SIG_ATOMIC_MAX INT32_MAX - -#define SIZE_MAX UINT32_MAX - -#ifndef WCHAR_MIN /* also in wchar.h */ -#define WCHAR_MIN 0 -#define WCHAR_MAX ((wchar_t)-1) /* UINT16_MAX */ -#endif - -/* - * wint_t is unsigned int in __MINGW32__, - * but unsigned short in MS runtime - */ -#define WINT_MIN 0 -#define WINT_MAX UINT32_MAX - -#endif /* !defined ( __cplusplus) || defined __STDC_LIMIT_MACROS */ - - -/* 7.18.4 Macros for integer constants */ -#if !defined ( __cplusplus) || defined (__STDC_CONSTANT_MACROS) - -/* 7.18.4.1 Macros for minimum-width integer constants - - Accoding to Douglas Gwyn : - "This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC - 9899:1999 as initially published, the expansion was required - to be an integer constant of precisely matching type, which - is impossible to accomplish for the shorter types on most - platforms, because C99 provides no standard way to designate - an integer constant with width less than that of type int. - TC1 changed this to require just an integer constant - *expression* with *promoted* type." - - The trick used here is from Clive D W Feather. -*/ - -#define INT8_C(val) (INT_LEAST8_MAX-INT_LEAST8_MAX+(val)) -#define INT16_C(val) (INT_LEAST16_MAX-INT_LEAST16_MAX+(val)) -#define INT32_C(val) (INT_LEAST32_MAX-INT_LEAST32_MAX+(val)) -#define INT64_C(val) (INT_LEAST64_MAX-INT_LEAST64_MAX+(val)) - -#define UINT8_C(val) (UINT_LEAST8_MAX-UINT_LEAST8_MAX+(val)) -#define UINT16_C(val) (UINT_LEAST16_MAX-UINT_LEAST16_MAX+(val)) -#define UINT32_C(val) (UINT_LEAST32_MAX-UINT_LEAST32_MAX+(val)) -#define UINT64_C(val) (UINT_LEAST64_MAX-UINT_LEAST64_MAX+(val)) - -/* 7.18.4.2 Macros for greatest-width integer constants */ -#define INTMAX_C(val) (INTMAX_MAX-INTMAX_MAX+(val)) -#define UINTMAX_C(val) (UINTMAX_MAX-UINTMAX_MAX+(val)) - -#endif /* !defined ( __cplusplus) || defined __STDC_CONSTANT_MACROS */ - -#endif \ No newline at end of file diff --git a/winsup/mingw/include/stdio.h b/winsup/mingw/include/stdio.h deleted file mode 100644 index 4a7d09fcf..000000000 --- a/winsup/mingw/include/stdio.h +++ /dev/null @@ -1,394 +0,0 @@ -/* - * stdio.h - * - * Definitions of types and prototypes of functions for standard input and - * output. - * - * NOTE: The file manipulation functions provided by Microsoft seem to - * work with either slash (/) or backslash (\) as the path separator. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _STDIO_H_ -#define _STDIO_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define __need_size_t -#define __need_NULL -#define __need_wchar_t -#define __need_wint_t -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ - - -/* Flags for the iobuf structure */ -#define _IOREAD 1 -#define _IOWRT 2 -#define _IORW 0x0080 /* opened as "r+w" */ - - -/* - * The three standard file pointers provided by the run time library. - * NOTE: These will go to the bit-bucket silently in GUI applications! - */ -#define STDIN_FILENO 0 -#define STDOUT_FILENO 1 -#define STDERR_FILENO 2 - -/* Returned by various functions on end of file condition or error. */ -#define EOF (-1) - -/* - * The maximum length of a file name. You should use GetVolumeInformation - * instead of this constant. But hey, this works. - * - * NOTE: This is used in the structure _finddata_t (see io.h) so changing it - * is probably not a good idea. - */ -#define FILENAME_MAX (260) - -/* - * The maximum number of files that may be open at once. I have set this to - * a conservative number. The actual value may be higher. - */ -#define FOPEN_MAX (20) - -/* After creating this many names, tmpnam and tmpfile return NULL */ -#define TMP_MAX 32767 -/* - * Tmpnam, tmpfile and, sometimes, _tempnam try to create - * temp files in the root directory of the current drive - * (not in pwd, as suggested by some older MS doc's). - * Redefining these macros does not effect the CRT functions. - */ -#define _P_tmpdir "\\" -#define _wP_tmpdir L"\\" - -/* - * The maximum size of name (including NUL) that will be put in the user - * supplied buffer caName for tmpnam. - * Inferred from the size of the static buffer returned by tmpnam - * when passed a NULL argument. May actually be smaller. - */ -#define L_tmpnam (16) - -#define _IOFBF 0x0000 -#define _IOLBF 0x0040 -#define _IONBF 0x0004 - -/* - * The buffer size as used by setbuf such that it is equivalent to - * (void) setvbuf(fileSetBuffer, caBuffer, _IOFBF, BUFSIZ). - */ -#define BUFSIZ 512 - -/* Constants for nOrigin indicating the position relative to which fseek - * sets the file position. Enclosed in ifdefs because io.h could also - * define them. (Though not anymore since io.h includes this file now.) */ -#ifndef SEEK_SET -#define SEEK_SET (0) -#endif - -#ifndef SEEK_CUR -#define SEEK_CUR (1) -#endif - -#ifndef SEEK_END -#define SEEK_END (2) -#endif - - -#ifndef RC_INVOKED - -/* - * I used to include stdarg.h at this point, in order to allow for the - * functions later on in the file which use va_list. That conflicts with - * using stdio.h and varargs.h in the same file, so I do the typedef myself. - */ -#ifndef _VA_LIST -#define _VA_LIST -#if defined __GNUC__ && __GNUC__ >= 3 -typedef __builtin_va_list va_list; -#else -typedef char* va_list; -#endif -#endif -/* - * The structure underlying the FILE type. - * - * I still believe that nobody in their right mind should make use of the - * internals of this structure. Provided by Pedro A. Aranda Gutiirrez - * . - */ -#ifndef _FILE_DEFINED -#define _FILE_DEFINED -typedef struct _iobuf -{ - char* _ptr; - int _cnt; - char* _base; - int _flag; - int _file; - int _charbuf; - int _bufsiz; - char* _tmpfname; -} FILE; -#endif /* Not _FILE_DEFINED */ - - -/* - * The standard file handles - */ -#ifndef __DECLSPEC_SUPPORTED - -extern FILE (*__imp__iob)[]; /* A pointer to an array of FILE */ - -#define _iob (*__imp__iob) /* An array of FILE */ - -#else /* __DECLSPEC_SUPPORTED */ - -__MINGW_IMPORT FILE _iob[]; /* An array of FILE imported from DLL. */ - -#endif /* __DECLSPEC_SUPPORTED */ - -#define stdin (&_iob[STDIN_FILENO]) -#define stdout (&_iob[STDOUT_FILENO]) -#define stderr (&_iob[STDERR_FILENO]) - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * File Operations - */ -FILE* fopen (const char*, const char*); -FILE* freopen (const char*, const char*, FILE*); -int fflush (FILE*); -int fclose (FILE*); -/* MS puts remove & rename (but not wide versions) in io.h also */ -int remove (const char*); -int rename (const char*, const char*); -FILE* tmpfile (void); -char* tmpnam (char*); -char* _tempnam (const char*, const char*); - -#ifndef NO_OLDNAMES -char* tempnam (const char*, const char*); -#endif - -int setvbuf (FILE*, char*, int, size_t); - -void setbuf (FILE*, char*); - -/* - * Formatted Output - */ - -int fprintf (FILE*, const char*, ...); -int printf (const char*, ...); -int sprintf (char*, const char*, ...); -int _snprintf (char*, size_t, const char*, ...); -int vfprintf (FILE*, const char*, va_list); -int vprintf (const char*, va_list); -int vsprintf (char*, const char*, va_list); -int _vsnprintf (char*, size_t, const char*, va_list); - - -/* - * Formatted Input - */ - -int fscanf (FILE*, const char*, ...); -int scanf (const char*, ...); -int sscanf (const char*, const char*, ...); -/* - * Character Input and Output Functions - */ - -int fgetc (FILE*); -char* fgets (char*, int, FILE*); -int fputc (int, FILE*); -int fputs (const char*, FILE*); -int getc (FILE*); -int getchar (void); -char* gets (char*); -int putc (int, FILE*); -int putchar (int); -int puts (const char*); -int ungetc (int, FILE*); - -/* - * Direct Input and Output Functions - */ - -size_t fread (void*, size_t, size_t, FILE*); -size_t fwrite (const void*, size_t, size_t, FILE*); - -/* - * File Positioning Functions - */ - -int fseek (FILE*, long, int); -long ftell (FILE*); -void rewind (FILE*); - -/* - * An opaque data type used for storing file positions... The contents of - * this type are unknown, but we (the compiler) need to know the size - * because the programmer using fgetpos and fsetpos will be setting aside - * storage for fpos_t structres. Actually I tested using a byte array and - * it is fairly evident that the fpos_t type is a long (in CRTDLL.DLL). - * Perhaps an unsigned long? TODO? It's definitely a 64-bit number in - * MSVCRT however, and for now `long long' will do. - */ -#ifdef __MSVCRT__ -typedef long long fpos_t; -#else -typedef long fpos_t; -#endif - -int fgetpos (FILE*, fpos_t*); -int fsetpos (FILE*, const fpos_t*); - -/* - * Error Functions - */ - -void clearerr (FILE*); -int feof (FILE*); -int ferror (FILE*); -void perror (const char*); - - -#ifndef __STRICT_ANSI__ -/* - * Pipes - */ -FILE* _popen (const char*, const char*); -int _pclose (FILE*); - -#ifndef NO_OLDNAMES -FILE* popen (const char*, const char*); -int pclose (FILE*); -#endif - -/* - * Other Non ANSI functions - */ -int _flushall(void); -int _fgetchar (void); -int _fputchar (int); -FILE* _fdopen (int, const char*); -int _fileno (FILE*); - -#ifndef _NO_OLDNAMES -int fgetchar (void); -int fputchar (int); -FILE* fdopen (int, const char*); -int fileno (FILE*); -#endif /* Not _NO_OLDNAMES */ - -#endif /* Not __STRICT_ANSI__ */ - -/* Wide versions */ - -#ifndef _WSTDIO_DEFINED -/* also in wchar.h - keep in sync */ -int fwprintf (FILE*, const wchar_t*, ...); -int wprintf (const wchar_t*, ...); -int swprintf (wchar_t*, const wchar_t*, ...); -int vfwprintf (FILE*, const wchar_t*, va_list); -int vwprintf (const wchar_t*, va_list); -int vswprintf (wchar_t*, const wchar_t*, va_list); -int fwscanf (FILE*, const wchar_t*, ...); -int wscanf (const wchar_t*, ...); -int swscanf (const wchar_t*, const wchar_t*, ...); -wint_t fgetwc (FILE*); -wint_t fputwc (wchar_t, FILE*); -wint_t ungetwc (wchar_t, FILE*); -#ifdef __MSVCRT__ -wchar_t* fgetws (wchar_t*, int, FILE*); -int fputws (const wchar_t*, FILE*); -wint_t getwc (FILE*); -wint_t getwchar (void); -wchar_t* _getws (wchar_t*); -wint_t putwc (wint_t, FILE*); -int _putws (const wchar_t*); -wint_t putwchar (wint_t); -FILE* _wfopen (const wchar_t*, const wchar_t*); -FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*); -FILE* _wfsopen(const wchar_t*, const wchar_t*, int); -wchar_t* _wtmpnam (wchar_t*); -wchar_t* _wtempnam (const wchar_t*, const wchar_t*); -int _wrename(const wchar_t*, const wchar_t*); -int _wremove (const wchar_t*); -void _wperror(const wchar_t*); -FILE* _wpopen(const wchar_t*, const wchar_t*); -#endif /* __MSVCRT__ */ -#define _WSTDIO_DEFINED -#endif /* _WSTDIO_DEFINED */ - -#ifndef __STRICT_ANSI__ -#ifdef __MSVCRT__ -#ifndef NO_OLDNAMES -#if 0 -FILE* wpopen (const wchar_t*, const wchar_t*); -#else /* Always true */ -/* - * The above prototypeing is not possible unless the wpopen export is added - * to moldnames, which can't be done unless we make separate moldnames.def - * files for every supported runtime. For the time being we use a define - * instead. Pedro's modified dlltool should take care of this I think. - */ -#define wpopen _wpopen -#endif /* Always true */ -#endif /* not NO_OLDNAMES */ -#endif /* MSVCRT runtime */ - -/* - * Other Non ANSI wide functions - */ -wint_t _fgetwchar(void); -wint_t _fputwchar(wint_t); -int _getw (FILE*); -int _putw (int, FILE*); - -#ifndef _NO_OLDNAMES -wint_t fgetwchar(void); -wint_t fputwchar(wint_t); -int getw (FILE*); -int putw (int, FILE*); -#endif /* Not _NO_OLDNAMES */ - -#endif /* __STRICT_ANSI */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* _STDIO_H_ */ diff --git a/winsup/mingw/include/stdlib.h b/winsup/mingw/include/stdlib.h deleted file mode 100644 index 153e6483c..000000000 --- a/winsup/mingw/include/stdlib.h +++ /dev/null @@ -1,421 +0,0 @@ -/* - * stdlib.h - * - * Definitions for common types, variables, and functions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _STDLIB_H_ -#define _STDLIB_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - - -#define __need_size_t -#define __need_wchar_t -#define __need_NULL -#ifndef RC_INVOKED -#include -#endif /* RC_INVOKED */ - -/* - * RAND_MAX is the maximum value that may be returned by rand. - * The minimum is zero. - */ -#define RAND_MAX 0x7FFF - -/* - * These values may be used as exit status codes. - */ -#define EXIT_SUCCESS 0 -#define EXIT_FAILURE 1 - -/* - * Definitions for path name functions. - * NOTE: All of these values have simply been chosen to be conservatively high. - * Remember that with long file names we can no longer depend on - * extensions being short. - */ -#ifndef __STRICT_ANSI__ - -#ifndef MAX_PATH -#define MAX_PATH (260) -#endif - -#define _MAX_PATH MAX_PATH -#define _MAX_DRIVE (3) -#define _MAX_DIR 256 -#define _MAX_FNAME 256 -#define _MAX_EXT 256 - -#endif /* Not __STRICT_ANSI__ */ - - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This seems like a convenient place to declare these variables, which - * give programs using WinMain (or main for that matter) access to main-ish - * argc and argv. environ is a pointer to a table of environment variables. - * NOTE: Strings in _argv and environ are ANSI strings. - */ -extern int _argc; -extern char** _argv; - -/* imports from runtime dll of the above variables */ -#ifdef __MSVCRT__ - -extern int* __p___argc(void); -extern char*** __p___argv(void); -extern wchar_t*** __p___wargv(void); - -#define __argc (*__p___argc()) -#define __argv (*__p___argv()) -#define __wargv (*__p___wargv()) - -#else /* !MSVCRT */ - -#ifndef __DECLSPEC_SUPPORTED - -extern int* __imp___argc_dll; -extern char*** __imp___argv_dll; -#define __argc (*__imp___argc_dll) -#define __argv (*__imp___argv_dll) - -#else /* __DECLSPEC_SUPPORTED */ - -__MINGW_IMPORT int __argc_dll; -__MINGW_IMPORT char** __argv_dll; -#define __argc __argc_dll -#define __argv __argv_dll - -#endif /* __DECLSPEC_SUPPORTED */ - -#endif /* __MSVCRT */ - -/* - * Also defined in ctype.h. - */ - -#ifndef MB_CUR_MAX -# ifdef __MSVCRT__ -# define MB_CUR_MAX __mb_cur_max - __MINGW_IMPORT int __mb_cur_max; -# else /* not __MSVCRT */ -# define MB_CUR_MAX __mb_cur_max_dll - __MINGW_IMPORT int __mb_cur_max_dll; -# endif /* not __MSVCRT */ -#endif /* MB_CUR_MAX */ - -/* - * MS likes to declare errno in stdlib.h as well. - */ - -#ifdef _UWIN -#undef errno -extern int errno; -#else -int* _errno(void); -#define errno (*_errno()) -#endif -int* __doserrno(void); -#define _doserrno (*__doserrno()) - -/* - * Use environ from the DLL, not as a global. - */ - -#ifdef __MSVCRT__ - extern char *** __p__environ(void); - extern wchar_t *** __p__wenviron(void); -# define _environ (*__p__environ()) -# define _wenviron (*__p__wenviron()) -#else /* ! __MSVCRT__ */ -# ifndef __DECLSPEC_SUPPORTED - extern char *** __imp__environ_dll; -# define _environ (*__imp__environ_dll) -# else /* __DECLSPEC_SUPPORTED */ - __MINGW_IMPORT char ** _environ_dll; -# define _environ _environ_dll -# endif /* __DECLSPEC_SUPPORTED */ -#endif /* ! __MSVCRT__ */ - -#define environ _environ - -#ifdef __MSVCRT__ -/* One of the MSVCRTxx libraries */ - -#ifndef __DECLSPEC_SUPPORTED - extern int* __imp__sys_nerr; -# define sys_nerr (*__imp__sys_nerr) -#else /* __DECLSPEC_SUPPORTED */ - __MINGW_IMPORT int _sys_nerr; -# ifndef _UWIN -# define sys_nerr _sys_nerr -# endif /* _UWIN */ -#endif /* __DECLSPEC_SUPPORTED */ - -#else /* ! __MSVCRT__ */ - -/* CRTDLL run time library */ - -#ifndef __DECLSPEC_SUPPORTED - extern int* __imp__sys_nerr_dll; -# define sys_nerr (*__imp__sys_nerr_dll) -#else /* __DECLSPEC_SUPPORTED */ - __MINGW_IMPORT int _sys_nerr_dll; -# define sys_nerr _sys_nerr_dll -#endif /* __DECLSPEC_SUPPORTED */ - -#endif /* ! __MSVCRT__ */ - -#ifndef __DECLSPEC_SUPPORTED -extern char*** __imp__sys_errlist; -#define sys_errlist (*__imp__sys_errlist) -#else /* __DECLSPEC_SUPPORTED */ -__MINGW_IMPORT char* _sys_errlist[]; -#ifndef _UWIN -#define sys_errlist _sys_errlist -#endif /* _UWIN */ -#endif /* __DECLSPEC_SUPPORTED */ - -/* - * OS version and such constants. - */ -#ifndef __STRICT_ANSI__ - -#ifdef __MSVCRT__ -/* msvcrtxx.dll */ - -extern unsigned int* __p__osver(void); -extern unsigned int* __p__winver(void); -extern unsigned int* __p__winmajor(void); -extern unsigned int* __p__winminor(void); - -#define _osver (*__p__osver()) -#define _winver (*__p__winver()) -#define _winmajor (*__p__winmajor()) -#define _winminor (*__p__winminor()) - -#else -/* Not msvcrtxx.dll, thus crtdll.dll */ - -#ifndef __DECLSPEC_SUPPORTED - -extern unsigned int* _imp___osver_dll; -extern unsigned int* _imp___winver_dll; -extern unsigned int* _imp___winmajor_dll; -extern unsigned int* _imp___winminor_dll; - -#define _osver (*_imp___osver_dll) -#define _winver (*_imp___winver_dll) -#define _winmajor (*_imp___winmajor_dll) -#define _winminor (*_imp___winminor_dll) - -#else /* __DECLSPEC_SUPPORTED */ - -__MINGW_IMPORT unsigned int _osver_dll; -__MINGW_IMPORT unsigned int _winver_dll; -__MINGW_IMPORT unsigned int _winmajor_dll; -__MINGW_IMPORT unsigned int _winminor_dll; - -#define _osver _osver_dll -#define _winver _winver_dll -#define _winmajor _winmajor_dll -#define _winminor _winminor_dll - -#endif /* __DECLSPEC_SUPPORTED */ - -#endif - -#if defined __MSVCRT__ -/* although the _pgmptr is exported as DATA, - * be safe and use the access function __p__pgmptr() to get it. */ -char** __p__pgmptr(void); -#define _pgmptr (*__p__pgmptr()) -wchar_t** __p__wpgmptr(void); -#define _wpgmptr (*__p__wpgmptr()) -#else /* ! __MSVCRT__ */ -# ifndef __DECLSPEC_SUPPORTED - extern char** __imp__pgmptr_dll; -# define _pgmptr (*__imp__pgmptr_dll) -# else /* __DECLSPEC_SUPPORTED */ - __MINGW_IMPORT char* _pgmptr_dll; -# define _pgmptr _pgmptr_dll -# endif /* __DECLSPEC_SUPPORTED */ -/* no wide version in CRTDLL */ -#endif /* __MSVCRT__ */ - -#endif /* Not __STRICT_ANSI__ */ - -#ifdef __GNUC__ -#define _ATTRIB_NORETURN __attribute__ ((noreturn)) -#else /* Not __GNUC__ */ -#define _ATTRIB_NORETURN -#endif /* __GNUC__ */ - -double atof (const char*); -int atoi (const char*); -long atol (const char*); -int _wtoi (const wchar_t *); -long _wtol (const wchar_t *); - -double strtod (const char*, char**); -double wcstod (const wchar_t*, wchar_t**); -long strtol (const char*, char**, int); -long wcstol (const wchar_t*, wchar_t**, int); - -unsigned long strtoul (const char*, char**, int); -unsigned long wcstoul (const wchar_t*, wchar_t**, int); - -size_t wcstombs (char*, const wchar_t*, size_t); -int wctomb (char*, wchar_t); - -int mblen (const char*, size_t); -size_t mbstowcs (wchar_t*, const char*, size_t); -int mbtowc (wchar_t*, const char*, size_t); - -int rand (void); -void srand (unsigned int); - -void* calloc (size_t, size_t); -void* malloc (size_t); -void* realloc (void*, size_t); -void free (void*); - -void abort (void) _ATTRIB_NORETURN; -void exit (int) _ATTRIB_NORETURN; -int atexit (void (*)(void)); - -int system (const char*); -char* getenv (const char*); - -void* bsearch (const void*, const void*, size_t, size_t, - int (*)(const void*, const void*)); -void qsort (const void*, size_t, size_t, - int (*)(const void*, const void*)); - -int abs (int); -long labs (long); - -/* - * div_t and ldiv_t are structures used to return the results of div and - * ldiv. - * - * NOTE: div and ldiv appear not to work correctly unless - * -fno-pcc-struct-return is specified. This is included in the - * mingw32 specs file. - */ -typedef struct { int quot, rem; } div_t; -typedef struct { long quot, rem; } ldiv_t; - -div_t div (int, int); -ldiv_t ldiv (long, long); - - -#ifndef __STRICT_ANSI__ - -/* - * NOTE: Officially the three following functions are obsolete. The Win32 API - * functions SetErrorMode, Beep and Sleep are their replacements. - */ -void _beep (unsigned int, unsigned int); -void _seterrormode (int); -void _sleep (unsigned long); - -void _exit (int) _ATTRIB_NORETURN; - -/* _onexit is MS extension. Use atexit for portability. */ -typedef int (* _onexit_t)(void); -_onexit_t _onexit( _onexit_t ); - -int _putenv (const char*); -void _searchenv (const char*, const char*, char*); - - -char* _ecvt (double, int, int*, int*); -char* _fcvt (double, int, int*, int*); -char* _gcvt (double, int, char*); - -void _makepath (char*, const char*, const char*, const char*, const char*); -void _splitpath (const char*, char*, char*, char*, char*); -char* _fullpath (char*, const char*, size_t); - - -char* _itoa (int, char*, int); -char* _ltoa (long, char*, int); -char* _ultoa(unsigned long, char*, int); -wchar_t* _itow (int, wchar_t*, int); -wchar_t* _ltow (long, wchar_t*, int); -wchar_t* _ultow (unsigned long, wchar_t*, int); - -#ifdef __MSVCRT__ -__int64 _atoi64(const char *); -char* _i64toa(__int64, char *, int); -char* _ui64toa(unsigned __int64, char *, int); -__int64 _wtoi64(const wchar_t *); -wchar_t* _i64tow(__int64, wchar_t *, int); -wchar_t* _ui64tow(unsigned __int64, wchar_t *, int); - -wchar_t* _wgetenv(const wchar_t*); -int _wputenv(const wchar_t*); -void _wsearchenv(const wchar_t*, const wchar_t*, wchar_t*); -void _wmakepath(wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*); -void _wsplitpath (const wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*); -wchar_t* _wfullpath (wchar_t*, const wchar_t*, size_t); -#endif - -#ifndef _NO_OLDNAMES - -int putenv (const char*); -void searchenv (const char*, const char*, char*); - -char* itoa (int, char*, int); -char* ltoa (long, char*, int); - -#ifndef _UWIN -char* ecvt (double, int, int*, int*); -char* fcvt (double, int, int*, int*); -char* gcvt (double, int, char*); -#endif /* _UWIN */ -#endif /* Not _NO_OLDNAMES */ - -#endif /* Not __STRICT_ANSI__ */ - -/* - * Undefine the no return attribute used in some function definitions - */ -#undef _ATTRIB_NORETURN - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _STDLIB_H_ */ - diff --git a/winsup/mingw/include/string.h b/winsup/mingw/include/string.h deleted file mode 100644 index 038487b0c..000000000 --- a/winsup/mingw/include/string.h +++ /dev/null @@ -1,206 +0,0 @@ -/* - * string.h - * - * Definitions for memory and string functions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _STRING_H_ -#define _STRING_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* - * Define size_t, wchar_t and NULL - */ -#define __need_size_t -#define __need_wchar_t -#define __need_NULL -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Prototypes of the ANSI Standard C library string functions. - */ -void* memchr (const void*, int, size_t); -int memcmp (const void*, const void*, size_t); -void* memcpy (void*, const void*, size_t); -void* memmove (void*, const void*, size_t); -void* memset (void*, int, size_t); -char* strcat (char*, const char*); -char* strchr (const char*, int); -int strcmp (const char*, const char*); -int strcoll (const char*, const char*); /* Compare using locale */ -char* strcpy (char*, const char*); -size_t strcspn (const char*, const char*); -char* strerror (int); /* NOTE: NOT an old name wrapper. */ -char* _strerror (const char *); -size_t strlen (const char*); -char* strncat (char*, const char*, size_t); -int strncmp (const char*, const char*, size_t); -char* strncpy (char*, const char*, size_t); -char* strpbrk (const char*, const char*); -char* strrchr (const char*, int); -size_t strspn (const char*, const char*); -char* strstr (const char*, const char*); -char* strtok (char*, const char*); -size_t strxfrm (char*, const char*, size_t); - -#ifndef __STRICT_ANSI__ -/* - * Extra non-ANSI functions provided by the CRTDLL library - */ -void* _memccpy (void*, const void*, int, size_t); -int _memicmp (const void*, const void*, size_t); -char* _strdup (const char*); -int _strcmpi (const char*, const char*); -int _stricmp (const char*, const char*); -int _stricoll (const char*, const char*); -char* _strlwr (char*); -int _strnicmp (const char*, const char*, size_t); -char* _strnset (char*, int, size_t); -char* _strrev (char*); -char* _strset (char*, int); -char* _strupr (char*); -void _swab (const char*, char*, size_t); - -/* - * Multi-byte character functions - */ -unsigned char* _mbschr (unsigned char*, unsigned char*); -unsigned char* _mbsncat (unsigned char*, const unsigned char*, size_t); -unsigned char* _mbstok (unsigned char*, unsigned char*); - -#ifdef __MSVCRT__ -int _strncoll(const char*, const char*, size_t); -int _strnicoll(const char*, const char*, size_t); -#endif - -#endif /* Not __STRICT_ANSI__ */ - -/* - * Unicode versions of the standard calls. - */ -wchar_t* wcscat (wchar_t*, const wchar_t*); -wchar_t* wcschr (const wchar_t*, wchar_t); -int wcscmp (const wchar_t*, const wchar_t*); -int wcscoll (const wchar_t*, const wchar_t*); -wchar_t* wcscpy (wchar_t*, const wchar_t*); -size_t wcscspn (const wchar_t*, const wchar_t*); -/* Note: No wcserror in CRTDLL. */ -size_t wcslen (const wchar_t*); -wchar_t* wcsncat (wchar_t*, const wchar_t*, size_t); -int wcsncmp(const wchar_t*, const wchar_t*, size_t); -wchar_t* wcsncpy(wchar_t*, const wchar_t*, size_t); -wchar_t* wcspbrk(const wchar_t*, const wchar_t*); -wchar_t* wcsrchr(const wchar_t*, wchar_t); -size_t wcsspn(const wchar_t*, const wchar_t*); -wchar_t* wcsstr(const wchar_t*, const wchar_t*); -wchar_t* wcstok(wchar_t*, const wchar_t*); -size_t wcsxfrm(wchar_t*, const wchar_t*, size_t); - -#ifndef __STRICT_ANSI__ -/* - * Unicode versions of non-ANSI functions provided by CRTDLL. - */ - -/* NOTE: _wcscmpi not provided by CRTDLL, this define is for portability */ -#define _wcscmpi _wcsicmp - -wchar_t* _wcsdup (wchar_t*); -int _wcsicmp (const wchar_t*, const wchar_t*); -int _wcsicoll (const wchar_t*, const wchar_t*); -wchar_t* _wcslwr (wchar_t*); -int _wcsnicmp (const wchar_t*, const wchar_t*, size_t); -wchar_t* _wcsnset (wchar_t*, wchar_t, size_t); -wchar_t* _wcsrev (wchar_t*); -wchar_t* _wcsset (wchar_t*, wchar_t); -wchar_t* _wcsupr (wchar_t*); - -#ifdef __MSVCRT__ -int _wcsncoll(const wchar_t*, const wchar_t*, size_t); -int _wcsnicoll(const wchar_t*, const wchar_t*, size_t); -#endif - - -#endif /* Not __STRICT_ANSI__ */ - - -#ifndef __STRICT_ANSI__ -#ifndef _NO_OLDNAMES - -/* - * Non-underscored versions of non-ANSI functions. They live in liboldnames.a - * and provide a little extra portability. Also a few extra UNIX-isms like - * strcasecmp. - */ - -void* memccpy (void*, const void*, int, size_t); -int memicmp (const void*, const void*, size_t); -char* strdup (const char*); -int strcmpi (const char*, const char*); -int stricmp (const char*, const char*); -int strcasecmp (const char*, const char*); -int stricoll (const char*, const char*); -char* strlwr (char*); -int strnicmp (const char*, const char*, size_t); -int strncasecmp (const char*, const char*, size_t); -char* strnset (char*, int, size_t); -char* strrev (char*); -char* strset (char*, int); -char* strupr (char*); -#ifndef _UWIN -void swab (const char*, char*, size_t); -#endif /* _UWIN */ - -/* NOTE: There is no _wcscmpi, but this is for compatibility. */ -int wcscmpi (const wchar_t*, const wchar_t*); -wchar_t* wcsdup (wchar_t*); -int wcsicmp (const wchar_t*, const wchar_t*); -int wcsicoll (const wchar_t*, const wchar_t*); -wchar_t* wcslwr (wchar_t*); -int wcsnicmp (const wchar_t*, const wchar_t*, size_t); -wchar_t* wcsnset (wchar_t*, wchar_t, size_t); -wchar_t* wcsrev (wchar_t*); -wchar_t* wcsset (wchar_t*, wchar_t); -wchar_t* wcsupr (wchar_t*); - -#endif /* Not _NO_OLDNAMES */ -#endif /* Not strict ANSI */ - - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _STRING_H_ */ - diff --git a/winsup/mingw/include/strings.h b/winsup/mingw/include/strings.h deleted file mode 100644 index 2a777c2d7..000000000 --- a/winsup/mingw/include/strings.h +++ /dev/null @@ -1,12 +0,0 @@ -/* - File: strings.h - Copyright: Public Domain - - This file is provided because non ANSI fuctions are described in string.h - that belong in strings.h. These functions are provided for in the OLDNAME - libraries. -*/ -#if !defined(_STRINGS_H_) -# define _STRINGS_H_ 1 -# include -#endif diff --git a/winsup/mingw/include/sys/fcntl.h b/winsup/mingw/include/sys/fcntl.h deleted file mode 100644 index b343f272f..000000000 --- a/winsup/mingw/include/sys/fcntl.h +++ /dev/null @@ -1,8 +0,0 @@ -/* - * This file is part of the Mingw32 package. - * - * This fcntl.h maps to the root fcntl.h - */ -#ifndef __STRICT_ANSI__ -#include -#endif diff --git a/winsup/mingw/include/sys/file.h b/winsup/mingw/include/sys/file.h deleted file mode 100644 index 96c49e117..000000000 --- a/winsup/mingw/include/sys/file.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * This file is part of the Mingw32 package. - * - * This file.h maps to the root fcntl.h - * TODO? - */ -#ifndef __STRICT_ANSI__ -#include -#endif diff --git a/winsup/mingw/include/sys/locking.h b/winsup/mingw/include/sys/locking.h deleted file mode 100644 index 48e08e2c1..000000000 --- a/winsup/mingw/include/sys/locking.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * locking.h - * - * Constants for the mode parameter of the locking function. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _LOCKING_H_ -#define _LOCKING_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define _LK_UNLCK 0 /* Unlock */ -#define _LK_LOCK 1 /* Lock */ -#define _LK_NBLCK 2 /* Non-blocking lock */ -#define _LK_RLCK 3 /* Lock for read only */ -#define _LK_NBRLCK 4 /* Non-blocking lock for read only */ - -#ifndef NO_OLDNAMES -#define LK_UNLCK _LK_UNLCK -#define LK_LOCK _LK_LOCK -#define LK_NBLCK _LK_NBLCK -#define LK_RLCK _LK_RLCK -#define LK_NBRLCK _LK_NBRLCK -#endif /* Not NO_OLDNAMES */ - -#endif /* Not _LOCKING_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/sys/stat.h b/winsup/mingw/include/sys/stat.h deleted file mode 100644 index 1620b0684..000000000 --- a/winsup/mingw/include/sys/stat.h +++ /dev/null @@ -1,190 +0,0 @@ -/* - * stat.h - * - * Symbolic constants for opening and creating files, also stat, fstat and - * chmod functions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _STAT_H_ -#define _STAT_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define __need_size_t -#define __need_wchar_t -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ - -#include - -/* - * Constants for the stat st_mode member. - */ -#define _S_IFIFO 0x1000 /* FIFO */ -#define _S_IFCHR 0x2000 /* Character */ -#define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */ -#define _S_IFDIR 0x4000 /* Directory */ -#define _S_IFREG 0x8000 /* Regular */ - -#define _S_IFMT 0xF000 /* File type mask */ - -#define _S_IEXEC 0x0040 -#define _S_IWRITE 0x0080 -#define _S_IREAD 0x0100 - -#define _S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC) -#define _S_IXUSR _S_IEXEC -#define _S_IWUSR _S_IWRITE -#define _S_IRUSR _S_IREAD - -#define _S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR) -#define _S_ISFIFO(m) (((m) & _S_IFMT) == _S_IFIFO) -#define _S_ISCHR(m) (((m) & _S_IFMT) == _S_IFCHR) -#define _S_ISBLK(m) (((m) & _S_IFMT) == _S_IFBLK) -#define _S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG) - -#ifndef _NO_OLDNAMES - -#define S_IFIFO _S_IFIFO -#define S_IFCHR _S_IFCHR -#define S_IFBLK _S_IFBLK -#define S_IFDIR _S_IFDIR -#define S_IFREG _S_IFREG -#define S_IFMT _S_IFMT -#define S_IEXEC _S_IEXEC -#define S_IWRITE _S_IWRITE -#define S_IREAD _S_IREAD -#define S_IRWXU _S_IRWXU -#define S_IXUSR _S_IXUSR -#define S_IWUSR _S_IWUSR -#define S_IRUSR _S_IRUSR - -#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) -#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) -#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) -#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) - -#endif /* Not _NO_OLDNAMES */ - -#ifndef RC_INVOKED - -#ifndef _STAT_DEFINED -/* - * The structure manipulated and returned by stat and fstat. - * - * NOTE: If called on a directory the values in the time fields are not only - * invalid, they will cause localtime et. al. to return NULL. And calling - * asctime with a NULL pointer causes an Invalid Page Fault. So watch it! - */ -struct _stat -{ - _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */ - _ino_t st_ino; /* Always zero ? */ - _mode_t st_mode; /* See above constants */ - short st_nlink; /* Number of links. */ - short st_uid; /* User: Maybe significant on NT ? */ - short st_gid; /* Group: Ditto */ - _dev_t st_rdev; /* Seems useless (not even filled in) */ - _off_t st_size; /* File size in bytes */ - time_t st_atime; /* Accessed date (always 00:00 hrs local - * on FAT) */ - time_t st_mtime; /* Modified time */ - time_t st_ctime; /* Creation time */ -}; - -struct stat -{ - _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */ - _ino_t st_ino; /* Always zero ? */ - _mode_t st_mode; /* See above constants */ - short st_nlink; /* Number of links. */ - short st_uid; /* User: Maybe significant on NT ? */ - short st_gid; /* Group: Ditto */ - _dev_t st_rdev; /* Seems useless (not even filled in) */ - _off_t st_size; /* File size in bytes */ - time_t st_atime; /* Accessed date (always 00:00 hrs local - * on FAT) */ - time_t st_mtime; /* Modified time */ - time_t st_ctime; /* Creation time */ -}; -#if defined (__MSVCRT__) -struct _stati64 { - _dev_t st_dev; - _ino_t st_ino; - unsigned short st_mode; - short st_nlink; - short st_uid; - short st_gid; - _dev_t st_rdev; - __int64 st_size; - time_t st_atime; - time_t st_mtime; - time_t st_ctime; -}; -#endif /* __MSVCRT__ */ -#define _STAT_DEFINED -#endif /* _STAT_DEFINED */ - -#ifdef __cplusplus -extern "C" { -#endif - -int _fstat (int, struct _stat*); -int _chmod (const char*, int); -int _stat (const char*, struct _stat*); - -#if defined (__MSVCRT__) -int _fstati64(int, struct _stati64 *); -int _stati64(const char *, struct _stati64 *); -#if !defined ( _WSTAT_DEFINED) /* also declared in wchar.h */ -int _wstat(const wchar_t*, struct _stat*); -int _wstati64 (const wchar_t*, struct _stati64*); -#define _WSTAT_DEFINED -#endif /* _WSTAT_DEFIND */ -#endif /* __MSVCRT__ */ - -#ifndef _NO_OLDNAMES - -/* These functions live in liboldnames.a. */ -int fstat (int, struct stat*); -int chmod (const char*, int); -int stat (const char*, struct stat*); - -#endif /* Not _NO_OLDNAMES */ - - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _STAT_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/sys/time.h b/winsup/mingw/include/sys/time.h deleted file mode 100644 index 39d85f67b..000000000 --- a/winsup/mingw/include/sys/time.h +++ /dev/null @@ -1,3 +0,0 @@ - -#include - diff --git a/winsup/mingw/include/sys/timeb.h b/winsup/mingw/include/sys/timeb.h deleted file mode 100644 index 201116275..000000000 --- a/winsup/mingw/include/sys/timeb.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * timeb.h - * - * Support for the UNIX System V ftime system call. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _TIMEB_H_ -#define _TIMEB_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#ifndef RC_INVOKED - -/* - * TODO: Structure not tested. - */ -struct _timeb -{ - long time; - short millitm; - short timezone; - short dstflag; -}; - -#ifndef _NO_OLDNAMES -/* - * TODO: Structure not tested. - */ -struct timeb -{ - long time; - short millitm; - short timezone; - short dstflag; -}; -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -/* TODO: Not tested. */ -void _ftime (struct _timeb*); - -#ifndef _NO_OLDNAMES -void ftime (struct timeb*); -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _TIMEB_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/sys/types.h b/winsup/mingw/include/sys/types.h deleted file mode 100644 index 76c3d8dc3..000000000 --- a/winsup/mingw/include/sys/types.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - * types.h - * - * The definition of constants, data types and global variables. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * Lots of types supplied by Pedro A. Aranda - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _TYPES_H_ -#define _TYPES_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define __need_wchar_t -#define __need_size_t -#define __need_ptrdiff_t -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ - -#ifndef RC_INVOKED - -#ifndef _TIME_T_DEFINED -typedef long time_t; -#define _TIME_T_DEFINED -#endif - - -#ifndef __STRICT_ANSI__ - -#ifndef _OFF_T_ -#define _OFF_T_ -typedef long _off_t; - -#ifndef _NO_OLDNAMES -typedef _off_t off_t; -#endif -#endif /* Not _OFF_T_ */ - - -#ifndef _DEV_T_ -#define _DEV_T_ -#ifdef __MSVCRT__ -typedef unsigned int _dev_t; -#else -typedef short _dev_t; -#endif - -#ifndef _NO_OLDNAMES -typedef _dev_t dev_t; -#endif -#endif /* Not _DEV_T_ */ - - -#ifndef _INO_T_ -#define _INO_T_ -typedef short _ino_t; - -#ifndef _NO_OLDNAMES -typedef _ino_t ino_t; -#endif -#endif /* Not _INO_T_ */ - - -#ifndef _PID_T_ -#define _PID_T_ -typedef int _pid_t; - -#ifndef _NO_OLDNAMES -typedef _pid_t pid_t; -#endif -#endif /* Not _PID_T_ */ - - -#ifndef _MODE_T_ -#define _MODE_T_ -typedef unsigned short _mode_t; - -#ifndef _NO_OLDNAMES -typedef _mode_t mode_t; -#endif -#endif /* Not _MODE_T_ */ - - -#ifndef _SIGSET_T_ -#define _SIGSET_T_ -typedef int _sigset_t; - -#ifndef _NO_OLDNAMES -typedef _sigset_t sigset_t; -#endif -#endif /* Not _SIGSET_T_ */ - -#endif /* Not __STRICT_ANSI__ */ - -#endif /* Not RC_INVOKED */ - -#endif /* Not _TYPES_H_ */ diff --git a/winsup/mingw/include/sys/unistd.h b/winsup/mingw/include/sys/unistd.h deleted file mode 100644 index ed122d9dd..000000000 --- a/winsup/mingw/include/sys/unistd.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * This file is part of the Mingw32 package. - * - * unistd.h maps (roughly) to io.h - */ -#ifndef __STRICT_ANSI__ -#include -#endif - diff --git a/winsup/mingw/include/sys/utime.h b/winsup/mingw/include/sys/utime.h deleted file mode 100644 index 7c907f32a..000000000 --- a/winsup/mingw/include/sys/utime.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * utime.h - * - * Support for the utime function. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _UTIME_H_ -#define _UTIME_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define __need_wchar_t -#define __need_size_t -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ -#include - -#ifndef RC_INVOKED - -/* - * Structure used by _utime function. - */ -struct _utimbuf -{ - time_t actime; /* Access time */ - time_t modtime; /* Modification time */ -}; - - -#ifndef _NO_OLDNAMES -/* NOTE: Must be the same as _utimbuf above. */ -struct utimbuf -{ - time_t actime; - time_t modtime; -}; -#endif /* Not _NO_OLDNAMES */ - - -#ifdef __cplusplus -extern "C" { -#endif - -int _utime (const char*, struct _utimbuf*); -int _futime (int, struct _utimbuf*); - -/* The wide character version, only available for MSVCRT versions of the - * C runtime library. */ -#ifdef __MSVCRT__ -int _wutime (const wchar_t*, struct _utimbuf*); -#endif /* MSVCRT runtime */ -#ifndef _NO_OLDNAMES -int utime (const char*, struct utimbuf*); -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _UTIME_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/tchar.h b/winsup/mingw/include/tchar.h deleted file mode 100644 index 0e4676675..000000000 --- a/winsup/mingw/include/tchar.h +++ /dev/null @@ -1,367 +0,0 @@ -/* - * tchar.h - * - * Unicode mapping layer for the standard C library. By including this - * file and using the 't' names for string functions - * (eg. _tprintf) you can make code which can be easily adapted to both - * Unicode and non-unicode environments. In a unicode enabled compile define - * _UNICODE before including tchar.h, otherwise the standard non-unicode - * library functions will be used. - * - * Note that you still need to include string.h or stdlib.h etc. to define - * the appropriate functions. Also note that there are several defines - * included for non-ANSI functions which are commonly available (but using - * the convention of prepending an underscore to non-ANSI library function - * names). - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _TCHAR_H_ -#define _TCHAR_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* - * NOTE: This tests _UNICODE, which is different from the UNICODE define - * used to differentiate Win32 API calls. - */ -#ifdef _UNICODE - - -/* - * Use TCHAR instead of char or wchar_t. It will be appropriately translated - * if _UNICODE is correctly defined (or not). - */ -#ifndef _TCHAR_DEFINED -#ifndef RC_INVOKED -typedef wchar_t TCHAR; -typedef wchar_t _TCHAR; -#endif /* Not RC_INVOKED */ -#define _TCHAR_DEFINED -#endif - - -/* - * __TEXT is a private macro whose specific use is to force the expansion of a - * macro passed as an argument to the macros _T or _TEXT. DO NOT use this - * macro within your programs. It's name and function could change without - * notice. - */ -#define __TEXT(x) L##x - -/* for porting from other Windows compilers */ -#if 0 // no wide startup module -#define _tmain wmain -#define _tWinMain wWinMain -#define _tenviron _wenviron -#define __targv __wargv -#endif - -/* - * Unicode functions - */ -#define _tprintf wprintf -#define _ftprintf fwprintf -#define _stprintf swprintf -#define _sntprintf _snwprintf -#define _vtprintf vwprintf -#define _vftprintf vfwprintf -#define _vstprintf vswprintf -#define _vsntprintf _vsnwprintf -#define _tscanf wscanf -#define _ftscanf fwscanf -#define _stscanf swscanf -#define _fgettc fgetwc -#define _fgettchar _fgetwchar -#define _fgetts fgetws -#define _fputtc fputwc -#define _fputtchar _fputwchar -#define _fputts fputws -#define _gettc getwc -#define _getts getws -#define _puttc putwc -#define _putts putws -#define _ungettc ungetwc -#define _tcstod wcstod -#define _tcstol wcstol -#define _tcstoul wcstoul -#define _itot _itow -#define _ltot _ltow -#define _ultot _ultow -#define _ttoi _wtoi -#define _ttol _wtol -#define _tcscat wcscat -#define _tcschr wcschr -#define _tcscmp wcscmp -#define _tcscpy wcscpy -#define _tcscspn wcscspn -#define _tcslen wcslen -#define _tcsncat wcsncat -#define _tcsncmp wcsncmp -#define _tcsncpy wcsncpy -#define _tcspbrk wcspbrk -#define _tcsrchr wcsrchr -#define _tcsspn wcsspn -#define _tcsstr wcsstr -#define _tcstok wcstok -#define _tcsdup _wcsdup -#define _tcsicmp _wcsicmp -#define _tcsnicmp _wcsnicmp -#define _tcsnset _wcsnset -#define _tcsrev _wcsrev -#define _tcsset _wcsset -#define _tcslwr _wcslwr -#define _tcsupr _wcsupr -#define _tcsxfrm wcsxfrm -#define _tcscoll wcscoll -#define _tcsicoll _wcsicoll -#define _istalpha iswalpha -#define _istupper iswupper -#define _istlower iswlower -#define _istdigit iswdigit -#define _istxdigit iswxdigit -#define _istspace iswspace -#define _istpunct iswpunct -#define _istalnum iswalnum -#define _istprint iswprint -#define _istgraph iswgraph -#define _istcntrl iswcntrl -#define _istascii iswascii -#define _totupper towupper -#define _totlower towlower -#define _tcsftime wcsftime -/* Macro functions */ -#define _tcsdec _wcsdec -#define _tcsinc _wcsinc -#define _tcsnbcnt _wcsncnt -#define _tcsnccnt _wcsncnt -#define _tcsnextc _wcsnextc -#define _tcsninc _wcsninc -#define _tcsspnp _wcsspnp -#define _wcsdec(_wcs1, _wcs2) ((_wcs1)>=(_wcs2) ? NULL : (_wcs2)-1) -#define _wcsinc(_wcs) ((_wcs)+1) -#define _wcsnextc(_wcs) ((unsigned int) *(_wcs)) -#define _wcsninc(_wcs, _inc) (((_wcs)+(_inc))) -#define _wcsncnt(_wcs, _cnt) ((wcslen(_wcs)>_cnt) ? _count : wcslen(_wcs)) -#define _wcsspnp(_wcs1, _wcs2) ((*((_wcs1)+wcsspn(_wcs1,_wcs2))) ? ((_wcs1)+wcsspn(_wcs1,_wcs2)) : NULL) - -#if 1 // defined __MSVCRT__ -/* - * These wide functions not in crtdll.dll. - * Define macros anyway so that _wfoo rather than _tfoo is undefined - */ -#define _ttoi64 _wtoi64 -#define _i64tot _i64tow -#define _ui64tot _ui64tow -#define _tasctime _wasctime -#define _tctime _wctime -#define _tstrdate _wstrdate -#define _tstrtime _wstrtime -#define _tutime _wutime -#define _tcsnccoll _wcsncoll -#define _tcsncoll _wcsncoll -#define _tcsncicoll _wcsnicoll -#define _tcsnicoll _wcsnicoll -#define _taccess _waccess -#define _tchmod _wchmod -#define _tcreat _wcreat -#define _tfindfirst _wfindfirst -#define _tfindnext _wfindnext -#define _tfopen _wfopen -#define _tgetenv _wgetenv -#define _tmktemp _wmktemp -#define _topen _wopen -#define _tremove _wremove -#define _trename _wrename -#define _tsopen _wsopen -#define _tsetlocale _wsetlocale -#define _tunlink _wunlink -#define _tfinddata_t _wfinddata_t -#define _tfindfirsti64 _wfindfirsti64 -#define _tfindnexti64 _wfindnexti64 -#define _tfinddatai64_t _wfinddatai64_t -#endif /* __MSVCRT__ */ - -#else /* Not _UNICODE */ - -/* - * TCHAR, the type you should use instead of char. - */ -#ifndef _TCHAR_DEFINED -#ifndef RC_INVOKED -typedef char TCHAR; -typedef char _TCHAR; -#endif -#define _TCHAR_DEFINED -#endif - -/* - * __TEXT is a private macro whose specific use is to force the expansion of a - * macro passed as an argument to the macros _T or _TEXT. DO NOT use this - * macro within your programs. It's name and function could change without - * notice. - */ -#define __TEXT(x) x - -/* for porting from other Windows compilers */ -#define _tmain main -#define _tWinMain WinMain -#define _tenviron _environ -#define __targv __argv - -/* - * Non-unicode (standard) functions - */ - -#define _tprintf printf -#define _ftprintf fprintf -#define _stprintf sprintf -#define _sntprintf _snprintf -#define _vtprintf vprintf -#define _vftprintf vfprintf -#define _vstprintf vsprintf -#define _vsntprintf _vsnprintf -#define _tscanf scanf -#define _ftscanf fscanf -#define _stscanf sscanf -#define _fgettc fgetc -#define _fgettchar _fgetchar -#define _fgetts fgets -#define _fputtc fputc -#define _fputtchar _fputchar -#define _fputts fputs -#define _tfopen fopen -#define _tgetenv getenv -#define _gettc getc -#define _getts gets -#define _puttc putc -#define _putts puts -#define _ungettc ungetc -#define _tcstod strtod -#define _tcstol strtol -#define _tcstoul strtoul -#define _itot _itoa -#define _ltot _ltoa -#define _ultot _ultoa -#define _ttoi atoi -#define _ttol atol -#define _tcscat strcat -#define _tcschr strchr -#define _tcscmp strcmp -#define _tcscpy strcpy -#define _tcscspn strcspn -#define _tcslen strlen -#define _tcsncat strncat -#define _tcsncmp strncmp -#define _tcsncpy strncpy -#define _tcspbrk strpbrk -#define _tcsrchr strrchr -#define _tcsspn strspn -#define _tcsstr strstr -#define _tcstok strtok -#define _tcsdup _strdup -#define _tcsicmp _stricmp -#define _tcsnicmp _strnicmp -#define _tcsnset _strnset -#define _tcsrev _strrev -#define _tcsset _strset -#define _tcslwr _strlwr -#define _tcsupr _strupr -#define _tcsxfrm strxfrm -#define _tcscoll strcoll -#define _tcsicoll _stricoll -#define _istalpha isalpha -#define _istupper isupper -#define _istlower islower -#define _istdigit isdigit -#define _istxdigit isxdigit -#define _istspace isspace -#define _istpunct ispunct -#define _istalnum isalnum -#define _istprint isprint -#define _istgraph isgraph -#define _istcntrl iscntrl -#define _istascii isascii -#define _totupper toupper -#define _totlower tolower -#define _tasctime asctime -#define _tctime ctime -#define _tstrdate _strdate -#define _tstrtime _strtime -#define _tutime _utime -#define _tcsftime strftime -/* Macro functions */ -#define _tcsdec _strdec -#define _tcsinc _strinc -#define _tcsnbcnt _strncnt -#define _tcsnccnt _strncnt -#define _tcsnextc _strnextc -#define _tcsninc _strninc -#define _tcsspnp _strspnp -#define _strdec(_str1, _str2) ((_str1)>=(_str2) ? NULL : (_str2)-1) -#define _strinc(_str) ((_str)+1) -#define _strnextc(_str) ((unsigned int) *(_str)) -#define _strninc(_str, _inc) (((_str)+(_inc))) -#define _strncnt(_str, _cnt) ((strlen(_str)>_cnt) ? _count : strlen(_str)) -#define _strspnp(_str1, _str2) ((*((_str1)+strspn(_str1,_str2))) ? ((_str1)+strspn(_str1,_str2)) : NULL) - -#define _tchmod _chmod -#define _tcreat _creat -#define _tfindfirst _findfirst -#define _tfindnext _findnext -#define _tmktemp _mktemp -#define _topen _open -#define _taccess _access -#define _tremove remove -#define _trename rename -#define _tsopen _sopen -#define _tsetlocale setlocale -#define _tunlink _unlink -#define _tfinddata_t _finddata_t - - -#if 1 // defined __MSVCRT__ -/* Not in crtdll.dll. Define macros anyway? */ -#define _ttoi64 _atoi64 -#define _i64tot _i64toa -#define _ui64tot _ui64toa -#define _tcsnccoll _strncoll -#define _tcsncoll _strncoll -#define _tcsncicoll _strnicoll -#define _tcsnicoll _strnicoll -#define _tfindfirsti64 _findfirsti64 -#define _tfindnexti64 _findnexti64 -#define _tfinddatai64_t _finddatai64_t -#endif /* __MSVCRT__ */ - -#endif /* Not _UNICODE */ - -/* - * UNICODE a constant string when _UNICODE is defined else returns the string - * unmodified. Also defined in w32api/winnt.h. - */ -#define _TEXT(x) __TEXT(x) -#define _T(x) __TEXT(x) - -#endif /* Not _TCHAR_H_ */ - diff --git a/winsup/mingw/include/time.h b/winsup/mingw/include/time.h deleted file mode 100644 index 6e9d1e4a0..000000000 --- a/winsup/mingw/include/time.h +++ /dev/null @@ -1,219 +0,0 @@ -/* - * time.h - * - * Date and time functions and types. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _TIME_H_ -#define _TIME_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define __need_wchar_t -#define __need_size_t -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ - -/* - * Need a definition of time_t. - */ -#include - -/* - * Number of clock ticks per second. A clock tick is the unit by which - * processor time is measured and is returned by 'clock'. - */ -#define CLOCKS_PER_SEC ((clock_t)1000) -#define CLK_TCK CLOCKS_PER_SEC - - -#ifndef RC_INVOKED - -/* - * A type for storing the current time and date. This is the number of - * seconds since midnight Jan 1, 1970. - * NOTE: Normally this is defined by the above include of sys/types.h - */ -#ifndef _TIME_T_DEFINED -typedef long time_t; -#define _TIME_T_DEFINED -#endif - -/* - * A type for measuring processor time (in clock ticks). - */ -#ifndef _CLOCK_T_DEFINED -typedef long clock_t; -#define _CLOCK_T_DEFINED -#endif - - -/* - * A structure for storing all kinds of useful information about the - * current (or another) time. - */ -struct tm -{ - int tm_sec; /* Seconds: 0-59 (K&R says 0-61?) */ - int tm_min; /* Minutes: 0-59 */ - int tm_hour; /* Hours since midnight: 0-23 */ - int tm_mday; /* Day of the month: 1-31 */ - int tm_mon; /* Months *since* january: 0-11 */ - int tm_year; /* Years since 1900 */ - int tm_wday; /* Days since Sunday (0-6) */ - int tm_yday; /* Days since Jan. 1: 0-365 */ - int tm_isdst; /* +1 Daylight Savings Time, 0 No DST, - * -1 don't know */ -}; - -#ifdef __cplusplus -extern "C" { -#endif - -clock_t clock (void); -time_t time (time_t*); -double difftime (time_t, time_t); -time_t mktime (struct tm*); - -/* - * These functions write to and return pointers to static buffers that may - * be overwritten by other function calls. Yikes! - * - * NOTE: localtime, and perhaps the others of the four functions grouped - * below may return NULL if their argument is not 'acceptable'. Also note - * that calling asctime with a NULL pointer will produce an Invalid Page - * Fault and crap out your program. Guess how I know. Hint: stat called on - * a directory gives 'invalid' times in st_atime etc... - */ -char* asctime (const struct tm*); -char* ctime (const time_t*); -struct tm* gmtime (const time_t*); -struct tm* localtime (const time_t*); - - -size_t strftime (char*, size_t, const char*, const struct tm*); - -size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*); - -#ifndef __STRICT_ANSI__ -extern void _tzset (void); - -#ifndef _NO_OLDNAMES -extern void tzset (void); -#endif - -size_t strftime(char*, size_t, const char*, const struct tm*); -char* _strdate(char*); -char* _strtime(char*); - -#endif /* Not __STRICT_ANSI__ */ - -/* - * _daylight: non zero if daylight savings time is used. - * _timezone: difference in seconds between GMT and local time. - * _tzname: standard/daylight savings time zone names (an array with two - * elements). - */ -#ifdef __MSVCRT__ - -/* These are for compatibility with pre-VC 5.0 suppied MSVCRT. */ -extern int* __p__daylight (void); -extern long* __p__timezone (void); -extern char** __p__tzname (void); - -__MINGW_IMPORT int _daylight; -__MINGW_IMPORT long _timezone; -__MINGW_IMPORT char *_tzname[2]; - -#else /* not __MSVCRT (ie. crtdll) */ - -#ifndef __DECLSPEC_SUPPORTED - -extern int* __imp__daylight_dll; -extern long* __imp__timezone_dll; -extern char** __imp__tzname; - -#define _daylight (*__imp__daylight_dll) -#define _timezone (*__imp__timezone_dll) -#define _tzname (__imp__tzname) - -#else /* __DECLSPEC_SUPPORTED */ - -__MINGW_IMPORT int _daylight_dll; -__MINGW_IMPORT long _timezone_dll; -__MINGW_IMPORT char* _tzname[2]; - -#define _daylight _daylight_dll -#define _timezone _timezone_dll - -#endif /* __DECLSPEC_SUPPORTED */ - -#endif /* not __MSVCRT__ */ - -#ifndef _NO_OLDNAMES - -#ifdef __MSVCRT__ - -/* These go in the oldnames import library for MSVCRT. */ -__MINGW_IMPORT int daylight; -__MINGW_IMPORT long timezone; -__MINGW_IMPORT char *tzname[2]; - -#ifndef _WTIME_DEFINED - -/* wide function prototypes, also declared in wchar.h */ - -wchar_t * _wasctime(const struct tm*); -wchar_t * _wctime(const time_t*); -wchar_t* _wstrdate(wchar_t*); -wchar_t* _wstrtime(wchar_t*); - -#define _WTIME_DEFINED -#endif /* _WTIME_DEFINED */ - - -#else /* not __MSVCRT__ */ - -/* CRTDLL is royally messed up when it comes to these macros. - TODO: import and alias these via oldnames import library instead - of macros. */ - -#define daylight _daylight -/* NOTE: timezone not defined because it would conflict with sys/timeb.h. - Also, tzname used to a be macro, but now it's in moldname. */ -__MINGW_IMPORT char *tzname[2]; - -#endif /* not __MSVCRT__ */ - -#endif /* Not _NO_OLDNAMES */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _TIME_H_ */ - diff --git a/winsup/mingw/include/unistd.h b/winsup/mingw/include/unistd.h deleted file mode 100644 index 8f51f7661..000000000 --- a/winsup/mingw/include/unistd.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * This file is part of the Mingw32 package. - * - * unistd.h maps (roughly) to io.h - */ - -#ifndef __STRICT_ANSI__ -#include -#endif - diff --git a/winsup/mingw/include/values.h b/winsup/mingw/include/values.h deleted file mode 100644 index 10e16a281..000000000 --- a/winsup/mingw/include/values.h +++ /dev/null @@ -1,4 +0,0 @@ -/* - * TODO: Nothing here yet. Should provide UNIX compatibility constants - * comparible to those in limits.h and float.h. - */ diff --git a/winsup/mingw/include/varargs.h b/winsup/mingw/include/varargs.h deleted file mode 100644 index f81c864bc..000000000 --- a/winsup/mingw/include/varargs.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * varargs.h - * - * Old, non-ANSI facilities for stepping through a list of function - * arguments of an unknown number and type. - * TODO: Has not been tested. Essentially it copies the GCC version. - * - * NOTE: I believe GCC supplies a version of this header as well (in - * addition to stdarg.h and others). The GCC version is more - * complex, to deal with many alternate systems, but it is - * probably more trustworthy overall. It would probably be - * better to use the GCC version. - * - * NOTE: These are incompatible with the versions in stdarg.h and should - * NOT be mixed! All new code should use the ANSI compatible versions. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef __STRICT_ANSI__ - -#ifndef _VARARGS_H_ -#define _VARARGS_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -/* - * I was told that Win NT likes this. - */ -#ifndef _VA_LIST_DEFINED -#define _VA_LIST_DEFINED -#endif - -#ifndef RC_INVOKED - -#ifndef _VA_LIST -#define _VA_LIST -#if defined __GNUC__ && __GNUC__ >= 3 -typedef __builtin_va_list va_list; -#else -typedef char* va_list; -#endif -#endif - -/* - * Amount of space required in an argument list (ie. the stack) for an - * argument of type t. - */ -#define __va_argsiz(t) \ - (((sizeof(t) + sizeof(int) - 1) / sizeof(int)) * sizeof(int)) - -#define va_alist __builtin_va_alist - -/* - * Used in old style argument lists IIRC. The ellipsis forces the compiler - * to realize this is a vararg function. - */ -#define va_dcl int __builtin_va_alist; ... - -#define va_start(ap) \ - ((ap) = ((va_list) &__builtin_va_alist)) -#define va_end(ap) ((void)0) - - -/* - * Increment ap to the next argument in the list while returing a - * pointer to what ap pointed to first, which is of type t. - * - * We cast to void* and then to t* because this avoids a warning about - * increasing the alignment requirement. - */ - -#define va_arg(ap, t) \ - (((ap) = (ap) + __va_argsiz(t)), \ - *((t*) (void*) ((ap) - __va_argsiz(t)))) - - -#endif /* Not RC_INVOKED */ - -#endif /* Not _VARARGS_H_ */ - -#endif /* Not __STRICT_ANSI__ */ - diff --git a/winsup/mingw/include/wchar.h b/winsup/mingw/include/wchar.h deleted file mode 100644 index eaeb4d080..000000000 --- a/winsup/mingw/include/wchar.h +++ /dev/null @@ -1,281 +0,0 @@ -/* - * wchar.h - * - * Defines of all functions for supporting wide characters. Actually it - * just includes all those headers, which is not a good thing to do from a - * processing time point of view, but it does mean that everything will be - * in sync. - * - * This file is part of the Mingw32 package. - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _WCHAR_H_ -#define _WCHAR_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#include -#include -#include -#include -#include -#include - -#define __need_size_t -#define __need_wint_t -#define __need_wchar_t -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ - -#define WCHAR_MIN 0 -#define WCHAR_MAX ((wchar_t)-1) - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef __STRICT_ANSI__ - -#ifndef _FSIZE_T_DEFINED -typedef unsigned long _fsize_t; -#define _FSIZE_T_DEFINED -#endif - -#ifndef _WFINDDATA_T_DEFINED -struct _wfinddata_t { - unsigned attrib; - time_t time_create; /* -1 for FAT file systems */ - time_t time_access; /* -1 for FAT file systems */ - time_t time_write; - _fsize_t size; - wchar_t name[FILENAME_MAX]; /* may include spaces. */ -}; -struct _wfinddatai64_t { - unsigned attrib; - time_t time_create; - time_t time_access; - time_t time_write; - __int64 size; - wchar_t name[FILENAME_MAX]; -}; -#define _WFINDDATA_T_DEFINED -#endif - -/* Wide character versions. Also defined in io.h. */ -/* CHECK: I believe these only exist in MSVCRT, and not in CRTDLL. Also - applies to other wide character versions? */ -#if !defined (_WIO_DEFINED) -#if defined (__MSVCRT__) -int _waccess(const wchar_t*, int); -int _wchmod(const wchar_t*, int); -int _wcreat(const wchar_t*, int); -long _wfindfirst(wchar_t*, struct _wfinddata_t *); -int _wfindnext(long, struct _wfinddata_t *); -int _wunlink(const wchar_t*); -int _wopen(const wchar_t*, int, ...); -int _wsopen(const wchar_t*, int, int, ...); -wchar_t * _wmktemp(wchar_t*); -long _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*); -int _wfindnexti64(long, struct _wfinddatai64_t*); -#endif /* defined (__MSVCRT__) */ -#define _WIO_DEFINED -#endif /* _WIO_DEFINED */ - -#ifndef _WSTDIO_DEFINED -/* also in stdio.h - keep in sync */ -int fwprintf (FILE*, const wchar_t*, ...); -int wprintf (const wchar_t*, ...); -int swprintf (wchar_t*, const wchar_t*, ...); -int vfwprintf (FILE*, const wchar_t*, va_list); -int vwprintf (const wchar_t*, va_list); -int vswprintf (wchar_t*, const wchar_t*, va_list); -int fwscanf (FILE*, const wchar_t*, ...); -int wscanf (const wchar_t*, ...); -int swscanf (const wchar_t*, const wchar_t*, ...); -wint_t fgetwc (FILE*); -wint_t fputwc (wchar_t, FILE*); -wint_t ungetwc (wchar_t, FILE*); - -#ifdef __MSVCRT__ -wchar_t* fgetws (wchar_t*, int, FILE*); -int fputws (const wchar_t*, FILE*); -wint_t getwc (FILE*); -wint_t getwchar (void); -wchar_t* _getws (wchar_t*); -wint_t putwc (wint_t, FILE*); -int _putws (const wchar_t*); -wint_t putwchar (wint_t); - -FILE* _wfopen (const wchar_t*, const wchar_t*); -FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*); -FILE* _wfsopen(const wchar_t*, const wchar_t*, int); -wchar_t* _wtmpnam (wchar_t*); -wchar_t* _wtempnam (const wchar_t*, const wchar_t*); -int _wrename(const wchar_t*, const wchar_t*); -int _wremove (const wchar_t*) - -FILE* _wpopen(const wchar_t*, const wchar_t*) -void _wperror(const wchar_t*); -#endif /* __MSVCRT__ */ -#define _WSTDIO_DEFINED -#endif /* _WSTDIO_DEFINED */ - -#ifndef _WDIRECT_DEFINED -/* Also in direct.h */ -#ifdef __MSVCRT__ -int _wchdir(const wchar_t*); -wchar_t* _wgetcwd(wchar_t*, int); -wchar_t* _wgetdcwd(int, wchar_t*, int); -int _wmkdir(const wchar_t*); -int _wrmdir(const wchar_t*); -#endif /* __MSVCRT__ */ -#define _WDIRECT_DEFINED -#endif /* _WDIRECT_DEFINED */ - -#ifndef _STAT_DEFINED -/* - * The structure manipulated and returned by stat and fstat. - * - * NOTE: If called on a directory the values in the time fields are not only - * invalid, they will cause localtime et. al. to return NULL. And calling - * asctime with a NULL pointer causes an Invalid Page Fault. So watch it! - */ -struct _stat -{ - _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */ - _ino_t st_ino; /* Always zero ? */ - _mode_t st_mode; /* See above constants */ - short st_nlink; /* Number of links. */ - short st_uid; /* User: Maybe significant on NT ? */ - short st_gid; /* Group: Ditto */ - _dev_t st_rdev; /* Seems useless (not even filled in) */ - _off_t st_size; /* File size in bytes */ - time_t st_atime; /* Accessed date (always 00:00 hrs local - * on FAT) */ - time_t st_mtime; /* Modified time */ - time_t st_ctime; /* Creation time */ -}; - -struct stat -{ - _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */ - _ino_t st_ino; /* Always zero ? */ - _mode_t st_mode; /* See above constants */ - short st_nlink; /* Number of links. */ - short st_uid; /* User: Maybe significant on NT ? */ - short st_gid; /* Group: Ditto */ - _dev_t st_rdev; /* Seems useless (not even filled in) */ - _off_t st_size; /* File size in bytes */ - time_t st_atime; /* Accessed date (always 00:00 hrs local - * on FAT) */ - time_t st_mtime; /* Modified time */ - time_t st_ctime; /* Creation time */ -}; -#if defined (__MSVCRT__) -struct _stati64 { - _dev_t st_dev; - _ino_t st_ino; - unsigned short st_mode; - short st_nlink; - short st_uid; - short st_gid; - _dev_t st_rdev; - __int64 st_size; - time_t st_atime; - time_t st_mtime; - time_t st_ctime; - }; -#endif /* __MSVCRT__ */ -#define _STAT_DEFINED -#endif /* _STAT_DEFINED */ - -#if !defined ( _WSTAT_DEFINED) -/* also declared in sys/stat.h */ -#if defined __MSVCRT__ -int _wstat(const wchar_t*, struct _stat*); -int _wstati64 (const wchar_t*, struct _stati64*); -#endif /* __MSVCRT__ */ -#define _WSTAT_DEFINED -#endif /* ! _WSTAT_DEFIND */ - -#ifndef _WTIME_DEFINED -#ifdef __MSVCRT__ -/* wide function prototypes, also declared in time.h */ -wchar_t * _wasctime(const struct tm*); -wchar_t * _wctime(const time_t*); -wchar_t* _wstrdate(wchar_t*); -wchar_t* _wstrtime(wchar_t*); -#endif /* __MSVCRT__ */ -size_t wcsftime(wchar_t*, size_t, const wchar_t*, const struct tm*); -#define _WTIME_DEFINED -#endif /* _WTIME_DEFINED */ - -#ifndef _WLOCALE_DEFINED /* also declared in locale.h */ -wchar_t* _wsetlocale(int, const wchar_t*); -#define _WLOCALE_DEFINED -#endif - - -#ifndef _NO_OLDNAMES - -/* Wide character versions. Also declared in io.h. */ -/* CHECK: Are these in the oldnames??? NO! */ -#if (0) -int waccess(const wchar_t *, int); -int wchmod(const wchar_t *, int); -int wcreat(const wchar_t *, int); -long wfindfirst(wchar_t *, struct _wfinddata_t *); -int wfindnext(long, struct _wfinddata_t *); -int wunlink(const wchar_t *); -int wrename(const wchar_t *, const wchar_t *); -int wremove (const wchar_t *); -int wopen(const wchar_t *, int, ...); -int wsopen(const wchar_t *, int, int, ...); -wchar_t * wmktemp(wchar_t *); -#endif -#endif /* _NO_OLDNAMES */ - -#endif /* not __STRICT_ANSI__ */ - -/* These are resolved by -lmsvcp60 */ -/* If you don't have msvcp60.dll in your windows system directory, you can - easily obtain it with a search from your favorite search engine. */ -typedef int mbstate_t; -typedef wchar_t _Wint_t; - -wint_t btowc(int); -size_t mbrlen(const char *, size_t, mbstate_t *); -size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *); -size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *); - -size_t wcrtomb(char *, wchar_t, mbstate_t *); -size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *); -int wctob(wint_t); - -#ifdef __cplusplus -} /* end of extern "C" */ -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* not _WCHAR_H_ */ - diff --git a/winsup/mingw/include/wctype.h b/winsup/mingw/include/wctype.h deleted file mode 100644 index 1fb00fb3c..000000000 --- a/winsup/mingw/include/wctype.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * wctype.h - * - * Functions for testing wide character types and converting characters. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Mumit Khan - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef _WCTYPE_H_ -#define _WCTYPE_H_ - -/* All the headers include this file. */ -#include <_mingw.h> - -#define __need_wchar_t -#define __need_wint_t -#ifndef RC_INVOKED -#include -#endif /* Not RC_INVOKED */ - -/* - * The following flags are used to tell iswctype and _isctype what character - * types you are looking for. - */ -#define _UPPER 0x0001 -#define _LOWER 0x0002 -#define _DIGIT 0x0004 -#define _SPACE 0x0008 -#define _PUNCT 0x0010 -#define _CONTROL 0x0020 -#define _BLANK 0x0040 -#define _HEX 0x0080 -#define _LEADBYTE 0x8000 - -#define _ALPHA 0x0103 - -#ifndef RC_INVOKED - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef WEOF -#define WEOF (wchar_t)(0xFFFF) -#endif - -#ifndef _WCTYPE_T_DEFINED -typedef wchar_t wctype_t; -#define _WCTYPE_T_DEFINED -#endif - -/* Wide character equivalents - also in ctype.h */ -int iswalnum(wint_t); -int iswalpha(wint_t); -int iswascii(wint_t); -int iswcntrl(wint_t); -int iswctype(wint_t, wctype_t); -int is_wctype(wint_t, wctype_t); /* Obsolete! */ -int iswdigit(wint_t); -int iswgraph(wint_t); -int iswlower(wint_t); -int iswprint(wint_t); -int iswpunct(wint_t); -int iswspace(wint_t); -int iswupper(wint_t); -int iswxdigit(wint_t); - -wchar_t towlower(wchar_t); -wchar_t towupper(wchar_t); - -int isleadbyte (int); - -/* Also in ctype.h */ - -__MINGW_IMPORT unsigned short _ctype[]; -#ifdef __MSVCRT__ -__MINGW_IMPORT unsigned short* _pctype; -#else -__MINGW_IMPORT unsigned short* _pctype_dll; -#define _pctype _pctype_dll -#endif - -#if !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) -#define __WCTYPE_INLINES_DEFINED -extern inline int iswalnum(wint_t wc) {return (iswctype(wc,_ALPHA|_DIGIT));} -extern inline int iswalpha(wint_t wc) {return (iswctype(wc,_ALPHA));} -extern inline int iswascii(wint_t wc) {return (((unsigned)wc & 0x7F) ==0);} -extern inline int iswcntrl(wint_t wc) {return (iswctype(wc,_CONTROL));} -extern inline int iswdigit(wint_t wc) {return (iswctype(wc,_DIGIT));} -extern inline int iswgraph(wint_t wc) {return (iswctype(wc,_PUNCT|_ALPHA|_DIGIT));} -extern inline int iswlower(wint_t wc) {return (iswctype(wc,_LOWER));} -extern inline int iswprint(wint_t wc) {return (iswctype(wc,_BLANK|_PUNCT|_ALPHA|_DIGIT));} -extern inline int iswpunct(wint_t wc) {return (iswctype(wc,_PUNCT));} -extern inline int iswspace(wint_t wc) {return (iswctype(wc,_SPACE));} -extern inline int iswupper(wint_t wc) {return (iswctype(wc,_UPPER));} -extern inline int iswxdigit(wint_t wc) {return (iswctype(wc,_HEX));} -extern inline int isleadbyte(int c) {return (_pctype[(unsigned char)(c)] & _LEADBYTE);} -#endif /* !(defined(__NO_CTYPE_INLINES) || defined(__WCTYPE_INLINES_DEFINED)) */ - - -typedef wchar_t wctrans_t; -wint_t towctrans(wint_t, wctrans_t); -wctrans_t wctrans(const char*); -wctype_t wctype(const char*); - -#ifdef __cplusplus -} -#endif - -#endif /* Not RC_INVOKED */ - -#endif /* Not _WCTYPE_H_ */ - diff --git a/winsup/mingw/init.c b/winsup/mingw/init.c deleted file mode 100644 index 8fa4652fa..000000000 --- a/winsup/mingw/init.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * init.c - * - * Code to initialize standard file handles and command line arguments. - * This file is #included in both crt1.c and dllcrt1.c. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * Maintained by Mumit Khan - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -/* - * Access to a standard 'main'-like argument count and list. Also included - * is a table of environment variables. - */ -int _argc = 0; -char **_argv = 0; - -/* NOTE: Thanks to Pedro A. Aranda Gutiirrez for pointing - * this out to me. GetMainArgs (used below) takes a fourth argument - * which is an int that controls the globbing of the command line. If - * _CRT_glob is non-zero the command line will be globbed (e.g. *.* - * expanded to be all files in the startup directory). In the mingw32 - * library a _CRT_glob variable is defined as being -1, enabling - * this command line globbing by default. To turn it off and do all - * command line processing yourself (and possibly escape bogons in - * MS's globbing code) include a line in one of your source modules - * defining _CRT_glob and setting it to zero, like this: - * int _CRT_glob = 0; - */ -extern int _CRT_glob; - -#ifdef __MSVCRT__ -typedef struct { - int newmode; -} _startupinfo; -extern void __getmainargs (int *, char ***, char ***, int, _startupinfo *); -#else -extern void __GetMainArgs (int *, char ***, char ***, int); -#endif - -/* - * Initialize the _argc, _argv and environ variables. - */ -static void -_mingw32_init_mainargs () -{ - /* The environ variable is provided directly in stdlib.h through - * a dll function call. */ - char **dummy_environ; -#ifdef __MSVCRT__ - _startupinfo start_info; - start_info.newmode = 0; -#endif - - /* - * Microsoft's runtime provides a function for doing just that. - */ -#ifdef __MSVCRT__ - (void) __getmainargs (&_argc, &_argv, &dummy_environ, _CRT_glob, - &start_info); -#else - /* CRTDLL version */ - (void) __GetMainArgs (&_argc, &_argv, &dummy_environ, _CRT_glob); -#endif -} - diff --git a/winsup/mingw/install-sh b/winsup/mingw/install-sh deleted file mode 100755 index 9344e52bc..000000000 --- a/winsup/mingw/install-sh +++ /dev/null @@ -1,253 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile - ([ -f $dstdir/$dstfile ] && - $doit $mvcmd $dstdir/$dstfile $dstdir/$dstfile.$$ ); - exec $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/winsup/mingw/jamfile b/winsup/mingw/jamfile deleted file mode 100644 index 1769d952d..000000000 --- a/winsup/mingw/jamfile +++ /dev/null @@ -1,72 +0,0 @@ -# -# Jamfile for building various libraries and object files for the -# Minimalist GNU-Win32 package. -# -# $Revision$ -# $Author$ -# $Date$ -# - -# Change this line if you have installed Mingw32 in another directory. -# -LOCATE_TARGET = /mingw32/lib ; - -RUNTIME default = crtdll ; - -# Build the mingw32 library which contains startup code and extra support -# routines. -# -Library libmingw32.a : - CRTglob.c - CRTfmode.c - CRTinit.c - dirent.c - dllmain.c - gccmain.c - main.c - ; - - -# Build the startup object files for normal applications and for DLLs. -# The crt2 and dllcrt2 versions are for MSVCRTxx.DLL runtimes. crt1 and -# dllcrt1 are for the CRTDLL.DLL runtime. -# -Object crt1.o : crt1.c ; -Object crt2.o : crt1.c ; - -CCFLAGS on crt2.o += -D__MSVCRT__ ; - -Object dllcrt1.o : dllcrt1.c ; -Object dllcrt2.o : dllcrt1.c ; - -CCFLAGS on dllcrt2.o += -D__MSVCRT__ ; - -DEPENDS all : crt1.o dllcrt1.o crt2.o dllcrt2.o ; - - -# Build an object file which contains a single global variable initialized -# so that globbing will not be performed on the command line. -# -Object CRT_noglob.o : CRT_noglob.c ; -LOCATE on CRT_noglob.o = $(LOCATE_TARGET) ; - -DEPENDS all : CRT_noglob.o ; - - -# Build a special import library which contains mostly the imports defined -# in moldname.def, but with their leading underscores stripped off, plus the -# extra code in the C modules included. -# -ImportLib libmoldname.a : moldname.def ctype_old.c string_old.c ; - -DLLNAME on libmoldname.a = $(RUNTIME).dll ; -DLLTOOLFLAGS on libmoldname.a += -U ; - - -# Build import libraries for the various runtimes. -# -ImportLib libcrtdll.a : crtdll.def ; -ImportLib libmsvcrt.a : msvcrt.def ; -ImportLib libmsvcrt20.a : msvcrt20.def ; -ImportLib libmsvcrt40.a : msvcrt40.def ; - diff --git a/winsup/mingw/main.c b/winsup/mingw/main.c deleted file mode 100644 index ea1dcd85e..000000000 --- a/winsup/mingw/main.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * main.c - * - * Extra startup code for applications which do not have a main function - * of their own (but do have a WinMain). Generally these are GUI - * applications, but they don't *have* to be. - * - * This file is part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * Maintained by Mumit Khan - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#include -#include -#include - -#define ISSPACE(a) (a == ' ' || a == '\t') - -extern int PASCAL WinMain (HINSTANCE hInst, HINSTANCE hPrevInst, - LPSTR szCmdLine, int nShow); - -int -main (int argc, char *argv[], char *environ[]) -{ - char *szCmd; - STARTUPINFO startinfo; - int nRet; - - /* Get the command line passed to the process. */ - szCmd = GetCommandLineA (); - GetStartupInfoA (&startinfo); - - /* Strip off the name of the application and any leading - * whitespace. */ - if (szCmd) - { - while (ISSPACE (*szCmd)) - { - szCmd++; - } - - /* On my system I always get the app name enclosed - * in quotes... */ - if (*szCmd == '\"') - { - do - { - szCmd++; - } - while (*szCmd != '\"' && *szCmd != '\0'); - - if (*szCmd == '\"') - { - szCmd++; - } - } - else - { - /* If no quotes then assume first token is program - * name. */ - while (!ISSPACE (*szCmd) && *szCmd != '\0') - { - szCmd++; - } - } - - while (ISSPACE (*szCmd)) - { - szCmd++; - } - } - - nRet = WinMain (GetModuleHandle (NULL), NULL, szCmd, - (startinfo.dwFlags & STARTF_USESHOWWINDOW) ? - startinfo.wShowWindow : SW_SHOWDEFAULT); - - return nRet; -} - diff --git a/winsup/mingw/mkinstalldirs b/winsup/mingw/mkinstalldirs deleted file mode 100755 index cc8783edc..000000000 --- a/winsup/mingw/mkinstalldirs +++ /dev/null @@ -1,36 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Last modified: 1994-03-25 -# Public domain - -errstatus=0 - -for file in ${1+"$@"} ; do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d in ${1+"$@"} ; do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" 1>&2 - mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$? - fi - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# mkinstalldirs ends here diff --git a/winsup/mingw/moldname-crtdll.def b/winsup/mingw/moldname-crtdll.def deleted file mode 100644 index 3ead24436..000000000 --- a/winsup/mingw/moldname-crtdll.def +++ /dev/null @@ -1,135 +0,0 @@ -; -; moldname-crtdll.def -; -; Exports from the runtime except that these exports are actually preceeded -; by a underscore in the actual DLL. These correspond to functions which -; are non-ANSI and were prefixed with an underscore to avoid name space -; clutter. However many, in fact most programs still use a few of these -; functions without the underscore. This .def file is specially processed -; to make those non-underscored name function calls call the equivalent -; underscored functions. -; -; Contributors: -; Created by Colin Peters -; Maintained by Mumit Khan -; -; THIS SOFTWARE IS NOT COPYRIGHTED -; -; This source code is offered for use in the public domain. You may -; use, modify or distribute it freely. -; -; This code is distributed in the hope that it will be useful but -; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY -; DISCLAMED. This includes but is not limited to warrenties of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -; -EXPORTS -access -beep -cabs -chdir -chmod -chsize -close -creat -cwait - -dup -dup2 -ecvt -eof -execl -execle -execlp -execlpe -execv -execve -execvp -execvpe -fcvt -fdopen -fgetchar -fgetwchar -filelength -fileno -fpreset -fputchar -fputwchar -fstat -ftime -gcvt -getch -getche -getcwd -getpid -getw -heapwalk -hypot -isatty -itoa -j0 -j1 -jn -kbhit -lseek -ltoa -memccpy -memicmp -mkdir -mktemp -open -pclose -popen -putch -putenv -putw -read -rmdir -searchenv -seterrormode -setmode -sleep -sopen -spawnl -spawnle -spawnlp -spawnlpe -spawnv -spawnve -spawnvp -spawnvpe -stat -strcmpi -strdup -stricmp -stricoll -strlwr -strnicmp -strnset -strrev -strset -strupr -swab -tell -tempnam - -; export tzname for both. See -tzname DATA -tzset -umask -ungetch -unlink -utime -wcsdup -wcsicmp -wcsicoll -wcslwr -wcsnicmp -wcsnset -wcsrev -wcsset -wcsupr -write -y0 -y1 -yn diff --git a/winsup/mingw/moldname-msvcrt.def b/winsup/mingw/moldname-msvcrt.def deleted file mode 100644 index 0e0d39c31..000000000 --- a/winsup/mingw/moldname-msvcrt.def +++ /dev/null @@ -1,139 +0,0 @@ -; -; moldname-msvcrt.def -; -; Exports from the runtime except that these exports are actually preceeded -; by a underscore in the actual DLL. These correspond to functions which -; are non-ANSI and were prefixed with an underscore to avoid name space -; clutter. However many, in fact most programs still use a few of these -; functions without the underscore. This .def file is specially processed -; to make those non-underscored name function calls call the equivalent -; underscored functions. -; -; Contributors: -; Created by Colin Peters -; Maintained by Mumit Khan -; -; THIS SOFTWARE IS NOT COPYRIGHTED -; -; This source code is offered for use in the public domain. You may -; use, modify or distribute it freely. -; -; This code is distributed in the hope that it will be useful but -; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY -; DISCLAMED. This includes but is not limited to warrenties of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -; -EXPORTS -access -beep -cabs -chdir -chmod -chsize -close -creat -cwait - -daylight DATA - -dup -dup2 -ecvt -eof -execl -execle -execlp -execlpe -execv -execve -execvp -execvpe -fcvt -fdopen -fgetchar -fgetwchar -filelength -fileno -fpreset -fputchar -fputwchar -fstat -ftime -gcvt -getch -getche -getcwd -getpid -getw -heapwalk -hypot -isatty -itoa -j0 -j1 -jn -kbhit -lseek -ltoa -memccpy -memicmp -mkdir -mktemp -open -pclose -popen -putch -putenv -putw -read -rmdir -searchenv -seterrormode -setmode -sleep -sopen -spawnl -spawnle -spawnlp -spawnlpe -spawnv -spawnve -spawnvp -spawnvpe -stat -strcmpi -strdup -stricmp -stricoll -strlwr -strnicmp -strnset -strrev -strset -strupr -swab -tell -tempnam - -timezone DATA - -; export tzname for both. See -tzname DATA -tzset -umask -ungetch -unlink -utime -wcsdup -wcsicmp -wcsicoll -wcslwr -wcsnicmp -wcsnset -wcsrev -wcsset -wcsupr -write -y0 -y1 -yn diff --git a/winsup/mingw/moldname.def b/winsup/mingw/moldname.def deleted file mode 100644 index 369439b5c..000000000 --- a/winsup/mingw/moldname.def +++ /dev/null @@ -1,137 +0,0 @@ -; -; moldname.def -; -; Exports from the runtime except that these exports are actually preceeded -; by a underscore in the actual DLL. These correspond to functions which -; are non-ANSI and were prefixed with an underscore to avoid name space -; clutter. However many, in fact most programs still use a few of these -; functions without the underscore. This .def file is specially processed -; to make those non-underscored name function calls call the equivalent -; underscored functions. -; -; NOTE: All the names currently included are available from both msvcrt and -; crtdll. This may change in the future and require a new .def to be -; created. -; -; Contributors: -; Created by Colin Peters -; -; THIS SOFTWARE IS NOT COPYRIGHTED -; -; This source code is offered for use in the public domain. You may -; use, modify or distribute it freely. -; -; This code is distributed in the hope that it will be useful but -; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY -; DISCLAMED. This includes but is not limited to warrenties of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -; -; $Revision$ -; $Author$ -; $Date$ -; -EXPORTS -access -beep -cabs -chdir -chmod -chsize -close -creat -cwait -dup -dup2 -ecvt -eof -execl -execle -execlp -execlpe -execv -execve -execvp -execvpe -fcvt -fdopen -fgetchar -fgetwchar -filelength -fileno -fputchar -fputwchar -fstat -ftime -gcvt -getch -getche -getcwd -getpid -getw -heapwalk -hypot -isatty -itoa -j0 -j1 -jn -kbhit -lseek -ltoa -memccpy -memicmp -mkdir -mktemp -open -pclose -popen -putch -putenv -putw -read -rmdir -searchenv -seterrormode -setmode -sleep -sopen -spawnl -spawnle -spawnlp -spawnlpe -spawnv -spawnve -spawnvp -spawnvpe -stat -strcmpi -strdup -stricmp -stricoll -strlwr -strnicmp -strnset -strrev -strset -strupr -swab -tell -tempnam -tzset -umask -ungetch -unlink -utime -wcsdup -wcsicmp -wcsicoll -wcslwr -wcsnicmp -wcsnset -wcsrev -wcsset -wcsupr -write -y0 -y1 -yn diff --git a/winsup/mingw/moldname.def.in b/winsup/mingw/moldname.def.in deleted file mode 100644 index 7e90cb374..000000000 --- a/winsup/mingw/moldname.def.in +++ /dev/null @@ -1,139 +0,0 @@ -; -; __FILENAME__ -; -; Exports from the runtime except that these exports are actually preceeded -; by a underscore in the actual DLL. These correspond to functions which -; are non-ANSI and were prefixed with an underscore to avoid name space -; clutter. However many, in fact most programs still use a few of these -; functions without the underscore. This .def file is specially processed -; to make those non-underscored name function calls call the equivalent -; underscored functions. -; -; Contributors: -; Created by Colin Peters -; Maintained by Mumit Khan -; -; THIS SOFTWARE IS NOT COPYRIGHTED -; -; This source code is offered for use in the public domain. You may -; use, modify or distribute it freely. -; -; This code is distributed in the hope that it will be useful but -; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY -; DISCLAMED. This includes but is not limited to warrenties of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -; -EXPORTS -access -beep -cabs -chdir -chmod -chsize -close -creat -cwait -#if (__MSVCRT__) -daylight DATA -#endif -dup -dup2 -ecvt -eof -execl -execle -execlp -execlpe -execv -execve -execvp -execvpe -fcvt -fdopen -fgetchar -fgetwchar -filelength -fileno -fpreset -fputchar -fputwchar -fstat -ftime -gcvt -getch -getche -getcwd -getpid -getw -heapwalk -hypot -isatty -itoa -j0 -j1 -jn -kbhit -lseek -ltoa -memccpy -memicmp -mkdir -mktemp -open -pclose -popen -putch -putenv -putw -read -rmdir -searchenv -seterrormode -setmode -sleep -sopen -spawnl -spawnle -spawnlp -spawnlpe -spawnv -spawnve -spawnvp -spawnvpe -stat -strcmpi -strdup -stricmp -stricoll -strlwr -strnicmp -strnset -strrev -strset -strupr -swab -tell -tempnam -#if (__MSVCRT__) -timezone DATA -#endif -; export tzname for both. See -tzname DATA -tzset -umask -ungetch -unlink -utime -wcsdup -wcsicmp -wcsicoll -wcslwr -wcsnicmp -wcsnset -wcsrev -wcsset -wcsupr -write -y0 -y1 -yn diff --git a/winsup/mingw/msvcrt.def b/winsup/mingw/msvcrt.def deleted file mode 100644 index 8a1b87210..000000000 --- a/winsup/mingw/msvcrt.def +++ /dev/null @@ -1,737 +0,0 @@ -; -; msvcrt.def -; -; Exports from msvcrt.dll. Msvcrt.dll appears to be distributed with -; Internet Explorer 4.0, and may be more common in the future, but -; right now it seems like a risky choice. There are differences, although -; they seem to be minor overall, between the exports from msvcrt and msvcrt20. -; However, for most purposes the two sets are interchangable. -; -; NOTE: All exports, except for what appeared to be C++ mangled names, -; are included. Not all functions have prototypes in the headers -; (and some aren't functions at all). -; -; Contributors: -; Created by Colin Peters -; -; THIS SOFTWARE IS NOT COPYRIGHTED -; -; This source code is offered for use in the public domain. You may -; use, modify or distribute it freely. -; -; This code is distributed in the hope that it will be useful but -; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY -; DISCLAMED. This includes but is not limited to warrenties of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -; -; $Revision$ -; $Author$ -; $Date$ -; -EXPORTS -_CIacos -_CIasin -_CIatan -_CIatan2 -_CIcos -_CIcosh -_CIexp -_CIfmod -_CIlog -_CIlog10 -_CIpow -_CIsin -_CIsinh -_CIsqrt -_CItan -_CItanh -_CxxThrowException -_EH_prolog -_Getdays -_Getmonths -_Gettnames -_HUGE DATA -_Strftime -_XcptFilter -__CxxFrameHandler -__CxxLongjmpUnwind -__RTCastToVoid -__RTDynamicCast -__RTtypeid -__STRINGTOLD -__argc DATA -__argv DATA -__badioinfo -__crtCompareStringA -__crtGetLocaleInfoW -__crtLCMapStringA -__dllonexit -__doserrno -__fpecode -__getmainargs -__initenv DATA -__isascii -__iscsym -__iscsymf -__lc_codepage -__lc_handle -__lconv_init -__mb_cur_max DATA -__p___argc -__p___argv -__p___initenv -__p___mb_cur_max -__p___wargv -__p___winitenv -__p__acmdln -__p__amblksiz -__p__commode -__p__daylight -__p__dstbias -__p__environ -__p__fileinfo -__p__fmode -__p__iob -__p__mbctype -__p__osver -__p__pctype -__p__pgmptr -__p__pwctype -__p__timezone -__p__tzname -__p__wcmdln -__p__wenviron -__p__winmajor -__p__winminor -__p__winver -__p__wpgmptr -__pioinfo -__pxcptinfoptrs -__set_app_type -__setlc_active -__setusermatherr -__threadhandle -__threadid -__toascii -__unDName -__unguarded_readlc_active -__wargv DATA -__wgetmainargs -__winitenv DATA -_abnormal_termination -_access -_acmdln DATA -_adj_fdiv_m16i -_adj_fdiv_m32 -_adj_fdiv_m32i -_adj_fdiv_m64 -_adj_fdiv_r -_adj_fdivr_m16i -_adj_fdivr_m32 -_adj_fdivr_m32i -_adj_fdivr_m64 -_adj_fpatan -_adj_fprem -_adj_fprem1 -_adj_fptan -_adjust_fdiv DATA -_aexit_rtn DATA -_amsg_exit -_assert -_atodbl -_atoi64 -_atoldbl -_beep -_beginthread -_beginthreadex -_c_exit -_cabs -_callnewh -_cexit -_cgets -_chdir -_chdrive -_chgsign -_chmod -_chsize -_clearfp -_close -_commit -_commode DATA -_control87 -_controlfp -_copysign -_cprintf -_cputs -_creat -_cscanf -_ctype DATA -_cwait -_daylight DATA -_dstbias -_dup -_dup2 -_ecvt -_endthread -_endthreadex -_environ DATA -_eof -_errno -_except_handler2 -_except_handler3 -_execl -_execle -_execlp -_execlpe -_execv -_execve -_execvp -_execvpe -_exit -_expand -_fcloseall -_fcvt -_fdopen -_fgetchar -_fgetwchar -_filbuf -_fileinfo DATA -_filelength -_filelengthi64 -_fileno -_findclose -_findfirst -_findfirsti64 -_findnext -_findnexti64 -_finite -_flsbuf -_flushall -_fmode DATA -_fpclass -_fpieee_flt -_fpreset -_fputchar -_fputwchar -_fsopen -_fstat -_fstati64 -_ftime -_ftol -_fullpath -_futime -_gcvt -_get_osfhandle -_get_sbh_threshold -_getch -_getche -_getcwd -_getdcwd -_getdiskfree -_getdllprocaddr -_getdrive -_getdrives -_getmaxstdio -_getmbcp -_getpid -_getsystime -_getw -_getws -_global_unwind2 -_heapadd -_heapchk -_heapmin -_heapset -_heapused -_heapwalk -_hypot -_i64toa -_i64tow -_initterm -_inp -_inpd -_inpw -_iob DATA -_isatty -_isctype -_ismbbalnum -_ismbbalpha -_ismbbgraph -_ismbbkalnum -_ismbbkana -_ismbbkprint -_ismbbkpunct -_ismbblead -_ismbbprint -_ismbbpunct -_ismbbtrail -_ismbcalnum -_ismbcalpha -_ismbcdigit -_ismbcgraph -_ismbchira -_ismbckata -_ismbcl0 -_ismbcl1 -_ismbcl2 -_ismbclegal -_ismbclower -_ismbcprint -_ismbcpunct -_ismbcspace -_ismbcsymbol -_ismbcupper -_ismbslead -_ismbstrail -_isnan -_itoa -_itow -_j0 -_j1 -_jn -_kbhit -_lfind -_loaddll -_local_unwind2 -_lock -_locking -_logb -_longjmpex -_lrotl -_lrotr -_lsearch -_lseek -_lseeki64 -_ltoa -_ltow -_makepath -_mbbtombc -_mbbtype -_mbccpy -_mbcjistojms -_mbcjmstojis -_mbclen -_mbctohira -_mbctokata -_mbctolower -_mbctombb -_mbctoupper -_mbctype DATA -_mbsbtype -_mbscat -_mbschr -_mbscmp -_mbscoll -_mbscpy -_mbscspn -_mbsdec -_mbsdup -_mbsicmp -_mbsicoll -_mbsinc -_mbslen -_mbslwr -_mbsnbcat -_mbsnbcmp -_mbsnbcnt -_mbsnbcoll -_mbsnbcpy -_mbsnbicmp -_mbsnbicoll -_mbsnbset -_mbsncat -_mbsnccnt -_mbsncmp -_mbsncoll -_mbsncpy -_mbsnextc -_mbsnicmp -_mbsnicoll -_mbsninc -_mbsnset -_mbspbrk -_mbsrchr -_mbsrev -_mbsset -_mbsspn -_mbsspnp -_mbsstr -_mbstok -_mbstrlen -_mbsupr -_memccpy -_memicmp -_mkdir -_mktemp -_msize -_nextafter -_onexit -_open -_open_osfhandle -_osver DATA -_outp -_outpd -_outpw -_pclose -_pctype DATA -_pgmptr DATA -_pipe -_popen -_purecall -_putch -_putenv -_putw -_putws -_pwctype DATA -_read -_rmdir -_rmtmp -_rotl -_rotr -_safe_fdiv -_safe_fdivr -_safe_fprem -_safe_fprem1 -_scalb -_searchenv -_seh_longjmp_unwind -_set_error_mode -_set_sbh_threshold -_seterrormode -_setjmp -_setjmp3 -_setmaxstdio -_setmbcp -_setmode -_setsystime -_sleep -_snprintf -_snwprintf -_sopen -_spawnl -_spawnle -_spawnlp -_spawnlpe -_spawnv -_spawnve -_spawnvp -_spawnvpe -_splitpath -_stat -_stati64 -_statusfp -_strcmpi -_strdate -_strdup -_strerror -_stricmp -_stricoll -_strlwr -_strncoll -_strnicmp -_strnicoll -_strnset -_strrev -_strset -_strtime -_strupr -_swab -_sys_errlist DATA -_sys_nerr DATA -_tell -_telli64 -_tempnam -_timezone DATA -_tolower -_toupper -_tzname DATA -_tzset -_ui64toa -_ui64tow -_ultoa -_ultow -_umask -_ungetch -_unlink -_unloaddll -_unlock -_utime -_vsnprintf -_vsnwprintf -_waccess -_wasctime -_wchdir -_wchmod -_wcmdln DATA -_wcreat -_wcsdup -_wcsicmp -_wcsicoll -_wcslwr -_wcsncoll -_wcsnicmp -_wcsnicoll -_wcsnset -_wcsrev -_wcsset -_wcsupr -_wctime -_wenviron DATA -_wexecl -_wexecle -_wexeclp -_wexeclpe -_wexecv -_wexecve -_wexecvp -_wexecvpe -_wfdopen -_wfindfirst -_wfindfirsti64 -_wfindnext -_wfindnexti64 -_wfopen -_wfreopen -_wfsopen -_wfullpath -_wgetcwd -_wgetdcwd -_wgetenv -_winmajor DATA -_winminor DATA -_winver DATA -_wmakepath -_wmkdir -_wmktemp -_wopen -_wperror -_wpgmptr DATA -_wpopen -_wputenv -_wremove -_wrename -_write -_wrmdir -_wsearchenv -_wsetlocale -_wsopen -_wspawnl -_wspawnle -_wspawnlp -_wspawnlpe -_wspawnv -_wspawnve -_wspawnvp -_wspawnvpe -_wsplitpath -_wstat -_wstati64 -_wstrdate -_wstrtime -_wsystem -_wtempnam -_wtmpnam -_wtoi -_wtoi64 -_wtol -_wunlink -_wutime -_y0 -_y1 -_yn -abort -abs -acos -asctime -asin -atan -atan2 -atexit -atof -atoi -atol -bsearch -calloc -ceil -clearerr -clock -cos -cosh -ctime -difftime -div -exit -exp -fabs -fclose -feof -ferror -fflush -fgetc -fgetpos -fgets -fgetwc -fgetws -floor -fmod -fopen -fprintf -fputc -fputs -fputwc -fputws -fread -free -freopen -frexp -fscanf -fseek -fsetpos -ftell -fwprintf -fwrite -fwscanf -getc -getchar -getenv -gets -getwc -getwchar -gmtime -is_wctype -isalnum -isalpha -iscntrl -isdigit -isgraph -isleadbyte -islower -isprint -ispunct -isspace -isupper -iswalnum -iswalpha -iswascii -iswcntrl -iswctype -iswdigit -iswgraph -iswlower -iswprint -iswpunct -iswspace -iswupper -iswxdigit -isxdigit -labs -ldexp -ldiv -localeconv -localtime -log -log10 -longjmp -malloc -mblen -mbstowcs -mbtowc -memchr -memcmp -memcpy -memmove -memset -mktime -modf -perror -pow -printf -putc -putchar -puts -putwc -putwchar -qsort -raise -rand -realloc -remove -rename -rewind -scanf -setbuf -setlocale -setvbuf -signal -sin -sinh -sprintf -sqrt -srand -sscanf -strcat -strchr -strcmp -strcoll -strcpy -strcspn -strerror -strftime -strlen -strncat -strncmp -strncpy -strpbrk -strrchr -strspn -strstr -strtod -strtok -strtol -strtoul -strxfrm -swprintf -swscanf -system -tan -tanh -time -tmpfile -tmpnam -tolower -toupper -towlower -towupper -ungetc -ungetwc -vfprintf -vfwprintf -vprintf -vsprintf -vswprintf -vwprintf -wcscat -wcschr -wcscmp -wcscoll -wcscpy -wcscspn -wcsftime -wcslen -wcsncat -wcsncmp -wcsncpy -wcspbrk -wcsrchr -wcsspn -wcsstr -wcstod -wcstok -wcstol -wcstombs -wcstoul -wcsxfrm -wctomb -wprintf -wscanf - diff --git a/winsup/mingw/msvcrt20.def b/winsup/mingw/msvcrt20.def deleted file mode 100644 index 2f27ea04b..000000000 --- a/winsup/mingw/msvcrt20.def +++ /dev/null @@ -1,719 +0,0 @@ -; -; msvcrt20.def -; -; Exports from msvcrt20.dll. I am hoping that msvcrt20.dll will be reasonably -; common on user systems (if not ubiquitous) so that, effectively, it can -; be considered part of the OS. Apparently it was included with the Windows 95 -; distribution, so it should be present there at least. -; -; NOTE: All exports, except for what appeared to be C++ mangled names, -; are included. Not all functions have prototypes in the headers -; (and some aren't functions at all). -; -; Contributors: -; Created by Colin Peters -; -; THIS SOFTWARE IS NOT COPYRIGHTED -; -; This source code is offered for use in the public domain. You may -; use, modify or distribute it freely. -; -; This code is distributed in the hope that it will be useful but -; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY -; DISCLAMED. This includes but is not limited to warrenties of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -; -; $Revision$ -; $Author$ -; $Date$ -; -EXPORTS -_CIacos -_CIasin -_CIatan -_CIatan2 -_CIcos -_CIcosh -_CIexp -_CIfmod -_CIlog -_CIlog10 -_CIpow -_CIsin -_CIsinh -_CIsqrt -_CItan -_CItanh -_CxxThrowException -_HUGE -_XcptFilter -__CxxFrameHandler -__CxxLongjmpUnwind -__STRINGTOLD -__argc -__argv -__dllonexit -__doserrno -__fpecode -__getmainargs -__initenv -__isascii -__iscsym -__iscsymf -__lconv_init -__mb_cur_max -__p___argc -__p___argv -__p___initenv -__p___mb_cur_max -__p___wargv -__p___winitenv -__p__acmdln -__p__amblksiz -__p__commode -__p__daylight -__p__environ -__p__fmode -__p__iob -__p__mbctype -__p__osver -__p__pctype -__p__pgmptr -__p__pwctype -__p__timezone -__p__tzname -__p__wcmdln -__p__wenviron -__p__winmajor -__p__winminor -__p__winver -__p__wpgmptr -__pxcptinfoptrs -__threadhandle -__threadid -__toascii -__wargv -__wgetmainargs -__winitenv -_abnormal_termination -_access -_acmdln -_adj_fdiv_m16i -_adj_fdiv_m32 -_adj_fdiv_m32i -_adj_fdiv_m64 -_adj_fdiv_r -_adj_fdivr_m16i -_adj_fdivr_m32 -_adj_fdivr_m32i -_adj_fdivr_m64 -_adj_fpatan -_adj_fprem -_adj_fprem1 -_adj_fptan -_adjust_fdiv -_aexit_rtn -_amsg_exit -_assert -_atodbl -_atoldbl -_beep -_beginthread -_beginthreadex -_c_exit -_cabs -_cexit -_cgets -_chdir -_chdrive -_chgsign -_chmod -_chsize -_clearfp -_close -_commit -_commode -_control87 -_controlfp -_copysign -_cprintf -_cputs -_creat -_cscanf -_ctype -_cwait -_daylight -_dup -_dup2 -_ecvt -_endthread -_endthreadex -_environ -_eof -_errno -_except_handler2 -_except_handler3 -_execl -_execle -_execlp -_execlpe -_execv -_execve -_execvp -_execvpe -_exit -_expand -_fcloseall -_fcvt -_fdopen -_fgetchar -_fgetwchar -_filbuf -_fileinfo -_filelength -_fileno -_findclose -_findfirst -_findnext -_finite -_flsbuf -_flushall -_fmode -_fpclass -_fpieee_flt -_fpreset -_fputchar -_fputwchar -_fsopen -_fstat -_ftime -_ftol -_fullpath -_futime -_gcvt -_get_osfhandle -_getch -_getche -_getcwd -_getdcwd -_getdiskfree -_getdllprocaddr -_getdrive -_getdrives -_getmbcp -_getpid -_getsystime -_getw -_getws -_global_unwind2 -_heapadd -_heapchk -_heapmin -_heapset -_heapused -_heapwalk -_hypot -_initterm -_iob -_isatty -_isctype -_ismbbalnum -_ismbbalpha -_ismbbgraph -_ismbbkalnum -_ismbbkana -_ismbbkprint -_ismbbkpunct -_ismbblead -_ismbbprint -_ismbbpunct -_ismbbtrail -_ismbcalnum -_ismbcalpha -_ismbcdigit -_ismbcgraph -_ismbchira -_ismbckata -_ismbcl0 -_ismbcl1 -_ismbcl2 -_ismbclegal -_ismbclower -_ismbcprint -_ismbcpunct -_ismbcspace -_ismbcsymbol -_ismbcupper -_ismbslead -_ismbstrail -_isnan -_itoa -_itow -_j0 -_j1 -_jn -_kbhit -_lfind -_loaddll -_local_unwind2 -_locking -_logb -_longjmpex -_lrotl -_lrotr -_lsearch -_lseek -_ltoa -_ltow -_makepath -_matherr -_mbbtombc -_mbbtype -_mbccpy -_mbcjistojms -_mbcjmstojis -_mbclen -_mbctohira -_mbctokata -_mbctolower -_mbctombb -_mbctoupper -_mbctype -_mbsbtype -_mbscat -_mbschr -_mbscmp -_mbscoll -_mbscpy -_mbscspn -_mbsdec -_mbsdup -_mbsicmp -_mbsicoll -_mbsinc -_mbslen -_mbslwr -_mbsnbcat -_mbsnbcmp -_mbsnbcnt -_mbsnbcoll -_mbsnbcpy -_mbsnbicmp -_mbsnbicoll -_mbsnbset -_mbsncat -_mbsnccnt -_mbsncmp -_mbsncoll -_mbsncpy -_mbsnextc -_mbsnicmp -_mbsnicoll -_mbsninc -_mbsnset -_mbspbrk -_mbsrchr -_mbsrev -_mbsset -_mbsspn -_mbsspnp -_mbsstr -_mbstok -_mbstrlen -_mbsupr -_memccpy -_memicmp -_mkdir -_mktemp -_msize -_mtlock -_mtunlock -_nextafter -_onexit -_open -_open_osfhandle -_osver -_pclose -_pctype -_pgmptr -_pipe -_popen -_purecall -_putch -_putenv -_putw -_putws -_pwctype -_read -_rmdir -_rmtmp -_rotl -_rotr -_safe_fdiv -_safe_fdivr -_safe_fprem -_safe_fprem1 -_scalb -_searchenv -__seh_longjmp_unwind@4 -_seterrormode -_setjmp -_setjmp3 -_setmbcp -_setmode -_setsystime -_sleep -_snprintf -_snwprintf -_sopen -_spawnl -_spawnle -_spawnlp -_spawnlpe -_spawnv -_spawnve -_spawnvp -_spawnvpe -_splitpath -_stat -_statusfp -_strcmpi -_strdate -_strdup -_strerror -_stricmp -_stricoll -_strlwr -_strncoll -_strnicmp -_strnicoll -_strnset -_strrev -_strset -_strtime -_strupr -_swab -_sys_errlist -_sys_nerr -_tccpy -_tclen -_tcschr -_tcsclen -_tcscmp -_tcscspn -_tcsdec -_tcsicmp -_tcsinc -_tcslwr -_tcsnbcnt -_tcsncat -_tcsnccat -_tcsnccmp -_tcsnccnt -_tcsnccpy -_tcsncicmp -_tcsncmp -_tcsncpy -_tcsncset -_tcsnextc -_tcsnicmp -_tcsninc -_tcsnset -_tcspbrk -_tcsrchr -_tcsrev -_tcsset -_tcsspn -_tcsspnp -_tcsstr -_tcstok -_tcsupr -_tell -_tempnam -_timezone -_tolower -_toupper -_tzname -_tzset -_ultoa -_ultow -_umask -_ungetch -_unlink -_unloaddll -_utime -_vsnprintf -_vsnwprintf -_waccess -_wasctime -_wchdir -_wchmod -_wcmdln -_wcreat -_wcsdup -_wcsicmp -_wcsicoll -_wcslwr -_wcsncoll -_wcsnicmp -_wcsnicoll -_wcsnset -_wcsrev -_wcsset -_wcsupr -_wctime -_wenviron -_wexecl -_wexecle -_wexeclp -_wexeclpe -_wexecv -_wexecve -_wexecvp -_wexecvpe -_wfdopen -_wfindfirst -_wfindnext -_wfopen -_wfreopen -_wfsopen -_wfullpath -_wgetcwd -_wgetdcwd -_wgetenv -_winmajor -_winminor -_winver -_wmakepath -_wmkdir -_wmktemp -_wopen -_wperror -_wpgmptr -_wpopen -_wputenv -_wremove -_wrename -_write -_wrmdir -_wsearchenv -_wsetlocale -_wsopen -_wspawnl -_wspawnle -_wspawnlp -_wspawnlpe -_wspawnv -_wspawnve -_wspawnvp -_wspawnvpe -_wsplitpath -_wstat -_wstrdate -_wstrtime -_wsystem -_wtempnam -_wtmpnam -_wtoi -_wtol -_wunlink -_wutime -_y0 -_y1 -_yn -abort -abs -acos -asctime -asin -atan -atan2 -atexit -atof -atoi -atol -bsearch -calloc -ceil -clearerr -clock -cos -cosh -ctime -difftime -div -exit -exp -fabs -fclose -feof -ferror -fflush -fgetc -fgetpos -fgets -fgetwc -fgetws -floor -fmod -fopen -fprintf -fputc -fputs -fputwc -fputws -fread -free -freopen -frexp -fscanf -fseek -fsetpos -ftell -fwprintf -fwrite -fwscanf -getc -getchar -getenv -gets -getwc -getwchar -gmtime -is_wctype -isalnum -isalpha -iscntrl -isdigit -isgraph -isleadbyte -islower -isprint -ispunct -isspace -isupper -iswalnum -iswalpha -iswascii -iswcntrl -iswctype -iswdigit -iswgraph -iswlower -iswprint -iswpunct -iswspace -iswupper -iswxdigit -isxdigit -labs -ldexp -ldiv -localeconv -localtime -log -log10 -longjmp -malloc -mblen -mbstowcs -mbtowc -memchr -memcmp -memcpy -memmove -memset -mktime -modf -perror -pow -printf -putc -putchar -puts -putwc -putwchar -qsort -raise -rand -realloc -remove -rename -rewind -scanf -setbuf -setlocale -setvbuf -signal -sin -sinh -sprintf -sqrt -srand -sscanf -strcat -strchr -strcmp -strcoll -strcpy -strcspn -strerror -strftime -strlen -strncat -strncmp -strncpy -strpbrk -strrchr -strspn -strstr -strtod -strtok -strtol -strtoul -strxfrm -swprintf -swscanf -system -tan -tanh -time -tmpfile -tmpnam -tolower -toupper -towlower -towupper -ungetc -ungetwc -vfprintf -vfwprintf -vprintf -vsprintf -vswprintf -vwprintf -wcscat -wcschr -wcscmp -wcscoll -wcscpy -wcscspn -wcsftime -wcslen -wcsncat -wcsncmp -wcsncpy -wcspbrk -wcsrchr -wcsspn -wcsstr -wcstod -wcstok -wcstol -wcstombs -wcstoul -wcsxfrm -wctomb -wprintf -wscanf - diff --git a/winsup/mingw/msvcrt40.def b/winsup/mingw/msvcrt40.def deleted file mode 100644 index 7b1d2e84e..000000000 --- a/winsup/mingw/msvcrt40.def +++ /dev/null @@ -1,676 +0,0 @@ -EXPORTS -$I10_OUTPUT -_CIacos -_CIasin -_CIatan -_CIatan2 -_CIcos -_CIcosh -_CIexp -_CIfmod -_CIlog -_CIlog10 -_CIpow -_CIsin -_CIsinh -_CIsqrt -_CItan -_CItanh -_CxxThrowException -_EH_prolog -_HUGE -_XcptFilter -__CxxFrameHandler -__CxxLongjmpUnwind -__RTCastToVoid -__RTDynamicCast -__RTtypeid -__STRINGTOLD -__argc -__argv -__dllonexit -__doserrno -__fpecode -__getmainargs -__initenv -__isascii -__iscsym -__iscsymf -__lconv_init -__mb_cur_max -__p___argc -__p___argv -__p___initenv -__p___mb_cur_max -__p___wargv -__p___winitenv -__p__acmdln -__p__amblksiz -__p__commode -__p__daylight -__p__environ -__p__fmode -__p__iob -__p__mbctype -__p__osver -__p__pctype -__p__pgmptr -__p__pwctype -__p__timezone -__p__tzname -__p__wcmdln -__p__wenviron -__p__winmajor -__p__winminor -__p__winver -__p__wpgmptr -__pxcptinfoptrs -__set_app_type -__setusermatherr -__threadhandle -__threadid -__toascii -__unDName -__wargv -__wgetmainargs -__winitenv -_abnormal_termination -_access -_acmdln -_adj_fdiv_m16i -_adj_fdiv_m32 -_adj_fdiv_m32i -_adj_fdiv_m64 -_adj_fdiv_r -_adj_fdivr_m16i -_adj_fdivr_m32 -_adj_fdivr_m32i -_adj_fdivr_m64 -_adj_fpatan -_adj_fprem -_adj_fprem1 -_adj_fptan -_adjust_fdiv -_aexit_rtn -_amsg_exit -_assert -_atodbl -_atoldbl -_beep -_beginthread -_beginthreadex -_c_exit -_cabs -_cexit -_cgets -_chdir -_chdrive -_chgsign -_chmod -_chsize -_clearfp -_close -_commit -_commode -_control87 -_controlfp -_copysign -_cprintf -_cputs -_creat -_cscanf -_ctype -_cwait -_daylight -_dup -_dup2 -_ecvt -_endthread -_endthreadex -_environ -_eof -_errno -_except_handler2 -_except_handler3 -_execl -_execle -_execlp -_execlpe -_execv -_execve -_execvp -_execvpe -_exit -_expand -_fcloseall -_fcvt -_fdopen -_fgetchar -_fgetwchar -_filbuf -_fileinfo -_filelength -_filelengthi64 -_fileno -_findclose -_findfirst -_findfirsti64 -_findnext -_findnexti64 -_finite -_flsbuf -_flushall -_fmode -_fpclass -_fpieee_flt -_fpreset -_fputchar -_fputwchar -_fsopen -_fstat -_fstati64 -_ftime -_ftol -_fullpath -_futime -_gcvt -_get_osfhandle -_getch -_getche -_getcwd -_getdcwd -_getdiskfree -_getdllprocaddr -_getdrive -_getdrives -_getmbcp -_getpid -_getsystime -_getw -_getws -_global_unwind2 -_heapadd -_heapchk -_heapmin -_heapset -_heapused -_heapwalk -_hypot -_initterm -_iob -_isatty -_isctype -_ismbbalnum -_ismbbalpha -_ismbbgraph -_ismbbkalnum -_ismbbkana -_ismbbkprint -_ismbbkpunct -_ismbblead -_ismbbprint -_ismbbpunct -_ismbbtrail -_ismbcalnum -_ismbcalpha -_ismbcdigit -_ismbcgraph -_ismbchira -_ismbckata -_ismbcl0 -_ismbcl1 -_ismbcl2 -_ismbclegal -_ismbclower -_ismbcprint -_ismbcpunct -_ismbcspace -_ismbcsymbol -_ismbcupper -_ismbslead -_ismbstrail -_isnan -_itoa -_itow -_j0 -_j1 -_jn -_kbhit -_lfind -_loaddll -_local_unwind2 -_locking -_logb -_longjmpex -_lrotl -_lrotr -_lsearch -_lseek -_lseeki64 -_ltoa -_ltow -_makepath -_mbbtombc -_mbbtype -_mbccpy -_mbcjistojms -_mbcjmstojis -_mbclen -_mbctohira -_mbctokata -_mbctolower -_mbctombb -_mbctoupper -_mbctype -_mbsbtype -_mbscat -_mbschr -_mbscmp -_mbscoll -_mbscpy -_mbscspn -_mbsdec -_mbsdup -_mbsicmp -_mbsicoll -_mbsinc -_mbslen -_mbslwr -_mbsnbcat -_mbsnbcmp -_mbsnbcnt -_mbsnbcoll -_mbsnbcpy -_mbsnbicmp -_mbsnbicoll -_mbsnbset -_mbsncat -_mbsnccnt -_mbsncmp -_mbsncoll -_mbsncpy -_mbsnextc -_mbsnicmp -_mbsnicoll -_mbsninc -_mbsnset -_mbspbrk -_mbsrchr -_mbsrev -_mbsset -_mbsspn -_mbsspnp -_mbsstr -_mbstok -_mbstrlen -_mbsupr -_memccpy -_memicmp -_mkdir -_mktemp -_msize -_mtlock -_mtunlock -_nextafter -_onexit -_open -_open_osfhandle -_osver -_pclose -_pctype -_pgmptr -_pipe -_popen -_purecall -_putch -_putenv -_putw -_putws -_pwctype -_read -_rmdir -_rmtmp -_rotl -_rotr -_safe_fdiv -_safe_fdivr -_safe_fprem -_safe_fprem1 -_scalb -_searchenv -_seh_longjmp_unwind -_set_error_mode -_seterrormode -_setjmp -_setjmp3 -_setmaxstdio -_setmbcp -_setmode -_setsystime -_sleep -_snprintf -_snwprintf -_sopen -_spawnl -_spawnle -_spawnlp -_spawnlpe -_spawnv -_spawnve -_spawnvp -_spawnvpe -_splitpath -_stat -_stati64 -_statusfp -_strcmpi -_strdate -_strdup -_strerror -_stricmp -_stricoll -_strlwr -_strncoll -_strnicmp -_strnicoll -_strnset -_strrev -_strset -_strtime -_strupr -_swab -_sys_errlist -_sys_nerr -_tell -_telli64 -_tempnam -_timezone -_tolower -_toupper -_tzname -_tzset -_ultoa -_ultow -_umask -_ungetch -_unlink -_unloaddll -_utime -_vsnprintf -_vsnwprintf -_waccess -_wasctime -_wchdir -_wchmod -_wcmdln -_wcreat -_wcsdup -_wcsicmp -_wcsicoll -_wcslwr -_wcsncoll -_wcsnicmp -_wcsnicoll -_wcsnset -_wcsrev -_wcsset -_wcsupr -_wctime -_wenviron -_wexecl -_wexecle -_wexeclp -_wexeclpe -_wexecv -_wexecve -_wexecvp -_wexecvpe -_wfdopen -_wfindfirst -_wfindfirsti64 -_wfindnext -_wfindnexti64 -_wfopen -_wfreopen -_wfsopen -_wfullpath -_wgetcwd -_wgetdcwd -_wgetenv -_winmajor -_winminor -_winver -_wmakepath -_wmkdir -_wmktemp -_wopen -_wperror -_wpgmptr -_wpopen -_wputenv -_wremove -_wrename -_write -_wrmdir -_wsearchenv -_wsetlocale -_wsopen -_wspawnl -_wspawnle -_wspawnlp -_wspawnlpe -_wspawnv -_wspawnve -_wspawnvp -_wspawnvpe -_wsplitpath -_wstat -_wstati64 -_wstrdate -_wstrtime -_wsystem -_wtempnam -_wtmpnam -_wtoi -_wtol -_wunlink -_wutime -_y0 -_y1 -_yn -abort -abs -acos -asctime -asin -atan -atan2 -atexit -atof -atoi -atol -bsearch -calloc -ceil -clearerr -clock -cos -cosh -ctime -difftime -div -exit -exp -fabs -fclose -feof -ferror -fflush -fgetc -fgetpos -fgets -fgetwc -fgetws -floor -fmod -fopen -fprintf -fputc -fputs -fputwc -fputws -fread -free -freopen -frexp -fscanf -fseek -fsetpos -ftell -fwprintf -fwrite -fwscanf -getc -getchar -getenv -gets -getwc -getwchar -gmtime -is_wctype -isalnum -isalpha -iscntrl -isdigit -isgraph -isleadbyte -islower -isprint -ispunct -isspace -isupper -iswalnum -iswalpha -iswascii -iswcntrl -iswctype -iswdigit -iswgraph -iswlower -iswprint -iswpunct -iswspace -iswupper -iswxdigit -isxdigit -labs -ldexp -ldiv -localeconv -localtime -log -log10 -longjmp -malloc -mblen -mbstowcs -mbtowc -memchr -memcmp -memcpy -memmove -memset -mktime -modf -perror -pow -printf -putc -putchar -puts -putwc -putwchar -qsort -raise -rand -realloc -remove -rename -rewind -scanf -setbuf -setlocale -setvbuf -signal -sin -sinh -sprintf -sqrt -srand -sscanf -strcat -strchr -strcmp -strcoll -strcpy -strcspn -strerror -strftime -strlen -strncat -strncmp -strncpy -strpbrk -strrchr -strspn -strstr -strtod -strtok -strtol -strtoul -strxfrm -swprintf -swscanf -system -tan -tanh -time -tmpfile -tmpnam -tolower -toupper -towlower -towupper -ungetc -ungetwc -vfprintf -vfwprintf -vprintf -vsprintf -vswprintf -vwprintf -wcscat -wcschr -wcscmp -wcscoll -wcscpy -wcscspn -wcsftime -wcslen -wcsncat -wcsncmp -wcsncpy -wcspbrk -wcsrchr -wcsspn -wcsstr -wcstod -wcstok -wcstol -wcstombs -wcstoul -wcsxfrm -wctomb -wprintf -wscanf - diff --git a/winsup/mingw/mthr.c b/winsup/mingw/mthr.c deleted file mode 100644 index f28236432..000000000 --- a/winsup/mingw/mthr.c +++ /dev/null @@ -1,197 +0,0 @@ -/* - * mthr.c - * - * Implement Mingw thread-support DLL . - * - * This file is used iff the following conditions are met: - * - gcc uses -mthreads option - * - user code uses C++ exceptions - * - * The sole job of the Mingw thread support DLL (MingwThr) is to catch - * all the dying threads and clean up the data allocated in the TLSs - * for exception contexts during C++ EH. Posix threads have key dtors, - * but win32 TLS keys do not, hence the magic. Without this, there's at - * least `6 * sizeof (void*)' bytes leaks for each catch/throw in each - * thread. The only public interface is __mingwthr_key_dtor(). - * - * Created by Mumit Khan - * - */ - -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN -#include - -/* To protect the thread/key association data structure modifications. */ -CRITICAL_SECTION __mingwthr_cs; - -typedef struct __mingwthr_key __mingwthr_key_t; - -/* The list of threads active with key/dtor pairs. */ -struct __mingwthr_key { - DWORD key; - void (*dtor) (void *); - __mingwthr_key_t *next; -}; - - -static __mingwthr_key_t *key_dtor_list; - -/* - * __mingwthr_key_add: - * - * Add key/dtor association for this thread. If the thread entry does not - * exist, create a new one and add to the head of the threads list; add - * the new assoc at the head of the keys list. - * - */ - -static int -___mingwthr_add_key_dtor ( DWORD key, void (*dtor) (void *)) -{ - __mingwthr_key_t *new_key; - - new_key = (__mingwthr_key_t *) calloc (1, sizeof (__mingwthr_key_t)); - if (new_key == NULL) - return -1; - - new_key->key = key; - new_key->dtor = dtor; - - EnterCriticalSection (&__mingwthr_cs); - - new_key->next = key_dtor_list; - key_dtor_list = new_key; - - LeaveCriticalSection (&__mingwthr_cs); - -#ifdef DEBUG - printf ("%s: allocating: (%ld, %x)\n", - __FUNCTION__, key, dtor); -#endif - - return 0; -} - -static int -___mingwthr_remove_key_dtor ( DWORD key ) -{ - __mingwthr_key_t *prev_key; - __mingwthr_key_t *cur_key; - - EnterCriticalSection (&__mingwthr_cs); - - prev_key = NULL; - cur_key = key_dtor_list; - - while( cur_key != NULL ) - { - if( cur_key->key == key ) - { -// take key/dtor out of list - if( prev_key == NULL ) - { - key_dtor_list = cur_key->next; - } - else - { - prev_key->next = cur_key->next; - } - -#ifdef DEBUG - printf ("%s: removing: (%ld)\n", - __FUNCTION__, key ); -#endif - - free( cur_key ); - break; - } - - prev_key = cur_key; - cur_key = cur_key->next; - } - - LeaveCriticalSection (&__mingwthr_cs); - - return 0; -} - -/* - * __mingwthr_run_key_dtors (void): - * - * Callback from DllMain when thread detaches to clean up the key - * storage. - * - * Note that this does not delete the key itself, but just runs - * the dtor if the current value are both non-NULL. Note that the - * keys with NULL dtors are not added by __mingwthr_key_dtor, the - * only public interface, so we don't need to check. - * - */ - -void -__mingwthr_run_key_dtors (void) -{ - __mingwthr_key_t *keyp; - -#ifdef DEBUG - printf ("%s: Entering Thread id %ld\n", __FUNCTION__, GetCurrentThreadId() ); -#endif - - EnterCriticalSection (&__mingwthr_cs); - - for (keyp = key_dtor_list; keyp; ) - { - LPVOID value = TlsGetValue (keyp->key); - if (GetLastError () == ERROR_SUCCESS) - { -#ifdef DEBUG - printf (" (%ld, %x)\n", keyp->key, keyp->dtor); -#endif - if (value) - (*keyp->dtor) (value); - } -#ifdef DEBUG - else - { - printf (" TlsGetValue FAILED (%ld, %x)\n", - keyp->key, keyp->dtor); - } -#endif - keyp = keyp->next; - } - - LeaveCriticalSection (&__mingwthr_cs); - -#ifdef DEBUG - printf ("%s: Exiting Thread id %ld\n", __FUNCTION__, GetCurrentThreadId() ); -#endif -} - -/* - * __mingwthr_register_key_dtor (DWORD key, void (*dtor) (void *)) - * - * Public interface called by C++ exception handling mechanism in - * libgcc (cf: __gthread_key_create). - * - */ - -__declspec(dllexport) -int -__mingwthr_key_dtor (DWORD key, void (*dtor) (void *)) -{ - if (dtor) - { - return ___mingwthr_add_key_dtor (key, dtor); - } - - return 0; -} - -__declspec(dllexport) -int -__mingwthr_remove_key_dtor (DWORD key ) -{ - return ___mingwthr_remove_key_dtor ( key ); -} diff --git a/winsup/mingw/mthr_init.c b/winsup/mingw/mthr_init.c deleted file mode 100644 index 5c8c8bbe8..000000000 --- a/winsup/mingw/mthr_init.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * mthr_init.c - * - * Do the thread-support DLL initialization. - * - * This file is used iff the following conditions are met: - * - gcc uses -mthreads option - * - user code uses C++ exceptions - * - * The sole job of the Mingw thread support DLL (MingwThr) is to catch - * all the dying threads and clean up the data allocated in the TLSs - * for exception contexts during C++ EH. Posix threads have key dtors, - * but win32 TLS keys do not, hence the magic. Without this, there's at - * least `24 * sizeof (void*)' bytes leaks for each catch/throw in each - * thread. - * - * See mthr.c for all the magic. - * - * Created by Mumit Khan - * - */ - -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN -#include - -BOOL APIENTRY DllMain (HANDLE hDllHandle, DWORD reason, - LPVOID reserved /* Not used. */ ); - -/* - *---------------------------------------------------------------------- - * - * DllMain -- - * - * This routine is called by the Mingw32, Cygwin32 or VC++ C run - * time library init code, or the Borland DllEntryPoint routine. It - * is responsible for initializing various dynamically loaded - * libraries. - * - * Results: - * TRUE on sucess, FALSE on failure. - * - * Side effects: - * - *---------------------------------------------------------------------- - */ -BOOL APIENTRY -DllMain (HANDLE hDllHandle /* Library instance handle. */, - DWORD reason /* Reason this function is being called. */, - LPVOID reserved /* Not used. */) -{ - - extern CRITICAL_SECTION __mingwthr_cs; - extern void __mingwthr_run_key_dtors( void ); - -#ifdef DEBUG - printf ("%s: reason %d\n", __FUNCTION__, reason ); -#endif - - switch (reason) - { - case DLL_PROCESS_ATTACH: - InitializeCriticalSection (&__mingwthr_cs); - break; - - case DLL_PROCESS_DETACH: - __mingwthr_run_key_dtors(); - DeleteCriticalSection (&__mingwthr_cs); - break; - - case DLL_THREAD_ATTACH: - break; - - case DLL_THREAD_DETACH: - __mingwthr_run_key_dtors(); - break; - } - return TRUE; -} diff --git a/winsup/mingw/mthr_stub.c b/winsup/mingw/mthr_stub.c deleted file mode 100644 index cb926c16c..000000000 --- a/winsup/mingw/mthr_stub.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * mthr_stub.c - * - * Implement Mingw thread-support stubs for single-threaded C++ apps. - * - * This file is used by if gcc is built with --enable-threads=win32 and - * iff gcc does *NOT* use -mthreads option. - * - * The -mthreads implementation is in mthr.c. - * - * Created by Mumit Khan - * - */ - -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN -#include - -/* - * __mingwthr_register_key_dtor (DWORD key, void (*dtor) (void *)) - * - * Public interface called by C++ exception handling mechanism in - * libgcc (cf: __gthread_key_create). - * - * THIS SHOULD NEVER BE CALLED! - * - */ - -int -__mingwthr_key_dtor (DWORD key, void (*dtor) (void *)) -{ - assert (0); - /* NOTREACHED */ - return 0; -} - - -int -__mingwthr_remove_key_dtor (DWORD key ) -{ - assert (0); - /* NOTREACHED */ - return 0; -} diff --git a/winsup/mingw/profile/Makefile.in b/winsup/mingw/profile/Makefile.in deleted file mode 100644 index d8825269f..000000000 --- a/winsup/mingw/profile/Makefile.in +++ /dev/null @@ -1,127 +0,0 @@ -# -# mingw/profile/Makefile.in: This file is part of Mingw runtime. -# -# This makefile requires GNU make. - -VPATH = @srcdir@ -srcdir = @srcdir@ -objdir = . - -target_alias = @target_alias@ -prefix = @prefix@ - -program_transform_name = @program_transform_name@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -libdir = @libdir@ -tooldir = $(exec_prefix)/$(target_alias) -datadir = @datadir@ -infodir = @infodir@ -includedir = @includedir@ - -SHELL = /bin/sh - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -mkinstalldirs = $(SHELL) $(srcdir)/../mkinstalldirs -DISTFILES = Makefile.in configure configure.in gcrt0.c gmon.c gmon.h mcount.c \ -profil.c profil.h profile.h - -CC = @CC@ -# FIXME: Which is it, CC or CC_FOR_TARGET? -CC_FOR_TARGET = $(CC) -AS_FOR_TARGET = $(AS) -CFLAGS = @CFLAGS@ -CXXFLAGS = @CXXFLAGS@ - -# compiling with Cygwin? -MNO_CYGWIN = @MNO_CYGWIN@ - -# Either crtdll (CRT_ID 1) or msvcrt (CRT_ID 2). -RUNTIME = @RUNTIME@ -CRT_ID = @CRT_ID@ - -# Needed for threading dll. -THREAD_DLL = @THREAD_DLL@ -THREAD_DLL_VERSION = 10 -THREAD_DLL_NAME = $(THREAD_DLL)$(THREAD_DLL_VERSION).dll - -INCLUDES = -I$(srcdir) -I$(srcdir)/../include \ - -I$(srcdir)/../../w32api/include \ - -nostdinc -nostdinc++ -ALL_CFLAGS = $(CFLAGS) $(INCLUDES) $(MNO_CYGWIN) -ALL_CXXFLAGS = $(CXXFLAGS) $(INCLUDES) $(MNO_CYGWIN) - -AS = @AS@ -AR = @AR@ -LD = @LD@ -AR_FLAGS = rcv -RANLIB = @RANLIB@ -DLLTOOL = @DLLTOOL@ -DLLTOOLFLAGS = -DLLTOOL_FOR_TARGET = $(DLLTOOL) -DLLTOOL_FLAGS = --as $(AS_FOR_TARGET) - -LIBGMON_A = @LIBGMON_A@ -LIBGMON_OBJS = gmon.o mcount.o profil.o -CRT0S = gcrt1.o gcrt2.o - -LIBS = $(LIBGMON_A) -DLLS = - -all: $(LIBGMON_A) - -$(LIBGMON_A): $(LIBGMON_OBJS) $(CRT0S) - $(AR) $(ARFLAGS) $@ $(LIBGMON_OBJS) - $(RANLIB) $@ - -gcrt1.o: gcrt0.c - $(CC) -U__MSVCRT__ -c -o $@ $(CPPFLAGS) $(CFLAGS) $? - -gcrt2.o: gcrt0.c - $(CC) -D__MSVCRT__ -c -o $@ $(CPPFLAGS) $(CFLAGS) $? - -Makefile: Makefile.in config.status configure - $(SHELL) config.status - -config.status: configure - $(SHELL) config.status --recheck - -info: - -info-html: - -install-info: info - -install: all - $(mkinstalldirs) $(tooldir)/lib - for i in $(LIBS); do \ - $(INSTALL_DATA) $$i $(tooldir)/lib/$$i ; \ - done - for i in $(CRT0S); do \ - $(INSTALL_DATA) $$i $(tooldir)/lib/$$i ; \ - done - for sub in . ; do \ - $(mkinstalldirs) $(tooldir)/include/$$sub ; \ - for i in $(srcdir)/$$sub/*.h ; do \ - $(INSTALL_DATA) $$i $(tooldir)/include/$$sub/`basename $$i` ; \ - done ; \ - done - -clean: - -rm -f $(LIBGMON_OBJS) $(CRT0S) $(LIBGMON_A) - -distclean: - -rm -f *.o *.a *~ core a.out - -rm -f config.cache config.status config.log - -rm -f Makefile -.c.o: - $(CC) -c $(ALL_CPPFLAGS) $(ALL_CFLAGS) $< -o $@ - -dist: - mkdir $(distdir)/profile - chmod 755 $(distdir)/profile - @for i in $(DISTFILES); do\ - cp -p $(srcdir)/$$i $(distdir)/profile/$$i ; \ - done diff --git a/winsup/mingw/profile/configure b/winsup/mingw/profile/configure deleted file mode 100755 index cc3dcfeac..000000000 --- a/winsup/mingw/profile/configure +++ /dev/null @@ -1,1037 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=gcrt0.c - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -CC=${CC-cc} - -AS=${AS-as} - -AR=${AR-ar} - -LD=${LD-ld} - -RANLIB=${RANLIB-ranlib} - -DLLTOOL=${DLLTOOL-dlltool} - -DLLWRAP=${DLLWRAP-dllwrap} - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:587: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:608: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:626: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - - -case "$target_os" in -*mingw32crt*) - CRT_ID=1 - MNO_CYGWIN= - RUNTIME=crtdll - THREAD_DLL=mingwc - LIBM_A=libm.a - LIBGMON_A=libgmon.a - ;; -*cygwin*) - CRT_ID=2 - MNO_CYGWIN=-mno-cygwin - RUNTIME=msvcrt - THREAD_DLL=mingwc - # Do not build libm.a when building under Cygwin winsup. Otherwise, it'll - # overwrite Cygwin's one. Likewise for libgmon.a. - LIBM_A= - LIBGMON_A= - ;; -*) - # Build it for MSVCRT by default. - CRT_ID=2 - MNO_CYGWIN= - RUNTIME=msvcrt - THREAD_DLL=mingwm - LIBM_A=libm.a - LIBGMON_A=libgmon.a - ;; -esac - - - - - - - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:698: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@CC@%$CC%g -s%@AS@%$AS%g -s%@AR@%$AR%g -s%@LD@%$LD%g -s%@RANLIB@%$RANLIB%g -s%@DLLTOOL@%$DLLTOOL%g -s%@DLLWRAP@%$DLLWRAP%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@CRT_ID@%$CRT_ID%g -s%@RUNTIME@%$RUNTIME%g -s%@MNO_CYGWIN@%$MNO_CYGWIN%g -s%@THREAD_DLL@%$THREAD_DLL%g -s%@LIBM_A@%$LIBM_A%g -s%@LIBGMON_A@%$LIBGMON_A%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - - diff --git a/winsup/mingw/profile/configure.in b/winsup/mingw/profile/configure.in deleted file mode 100644 index 4f41536b9..000000000 --- a/winsup/mingw/profile/configure.in +++ /dev/null @@ -1,77 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. - -dnl This file is part of Mingw runtime. -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -AC_PREREQ(2.13) -AC_INIT(gcrt0.c) - -CC=${CC-cc} -AC_SUBST(CC) -AS=${AS-as} -AC_SUBST(AS) -AR=${AR-ar} -AC_SUBST(AR) -LD=${LD-ld} -AC_SUBST(LD) -RANLIB=${RANLIB-ranlib} -AC_SUBST(RANLIB) -DLLTOOL=${DLLTOOL-dlltool} -AC_SUBST(DLLTOOL) -DLLWRAP=${DLLWRAP-dllwrap} -AC_SUBST(DLLWRAP) -AC_CANONICAL_SYSTEM - -case "$target_os" in -*mingw32crt*) - CRT_ID=1 - MNO_CYGWIN= - RUNTIME=crtdll - THREAD_DLL=mingwc - LIBM_A=libm.a - LIBGMON_A=libgmon.a - ;; -*cygwin*) - CRT_ID=2 - MNO_CYGWIN=-mno-cygwin - RUNTIME=msvcrt - THREAD_DLL=mingwc - # Do not build libm.a when building under Cygwin winsup. Otherwise, it'll - # overwrite Cygwin's one. Likewise for libgmon.a. - LIBM_A= - LIBGMON_A= - ;; -*) - # Build it for MSVCRT by default. - CRT_ID=2 - MNO_CYGWIN= - RUNTIME=msvcrt - THREAD_DLL=mingwm - LIBM_A=libm.a - LIBGMON_A=libgmon.a - ;; -esac - -AC_SUBST(CRT_ID) -AC_SUBST(RUNTIME) -AC_SUBST(MNO_CYGWIN) -AC_SUBST(THREAD_DLL) -AC_SUBST(LIBM_A) -AC_SUBST(LIBGMON_A) - -AC_PROG_INSTALL -AC_OUTPUT(Makefile) - diff --git a/winsup/mingw/profile/gcrt0.c b/winsup/mingw/profile/gcrt0.c deleted file mode 100644 index 20f3c7ced..000000000 --- a/winsup/mingw/profile/gcrt0.c +++ /dev/null @@ -1,52 +0,0 @@ -/* gcrt0.c - - Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -/* - * This file is taken from Cygwin distribution. Please keep it in sync. - * The differences should be within __MINGW32__ guard. - */ - -#include -#include - -#ifdef __MINGW32__ -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; -typedef unsigned long u_long; -#endif - -extern u_char etext asm ("etext"); -extern u_char eprol asm ("__eprol"); -extern void _mcleanup (void); -extern void monstartup (u_long, u_long); -void _monstartup (void) __attribute__((__constructor__)); - -/* startup initialization for -pg support */ - -void -_monstartup (void) -{ - static int called; - - /* Guard against multiple calls that may happen if DLLs are linked - with profile option set as well. Addede side benefit is that it - makes profiling backward compatible (GCC used to emit a call to - _monstartup when compiling main with profiling enabled). */ - if (called++) - return; - - monstartup ((u_long) &eprol, (u_long) &etext); - atexit (&_mcleanup); -} - -asm (".text"); -asm ("__eprol:"); - diff --git a/winsup/mingw/profile/gmon.c b/winsup/mingw/profile/gmon.c deleted file mode 100644 index b68f31818..000000000 --- a/winsup/mingw/profile/gmon.c +++ /dev/null @@ -1,289 +0,0 @@ -/*- - * Copyright (c) 1983, 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if !defined(lint) && defined(LIBC_SCCS) -static char rcsid[] = "$OpenBSD: gmon.c,v 1.8 1997/07/23 21:11:27 kstailey Exp $"; -#endif - -/* - * This file is taken from Cygwin distribution. Please keep it in sync. - * The differences should be within __MINGW32__ guard. - */ - -#include -#include -#include -#ifndef __MINGW32__ -#include -#include -#endif -#include -#include - -#include - -/* XXX needed? */ -//extern char *minbrk __asm ("minbrk"); - -#ifdef __MINGW32__ -#define bzero(ptr,size) memset (ptr, 0, size); -#endif - -struct gmonparam _gmonparam = { GMON_PROF_OFF }; - -static int s_scale; -/* see profil(2) where this is describe (incorrectly) */ -#define SCALE_1_TO_1 0x10000L - -#define ERR(s) write(2, s, sizeof(s)) - -void moncontrol __P((int)); - -static void * -fake_sbrk(int size) -{ - return malloc(size); -} - -void -monstartup(lowpc, highpc) - u_long lowpc; - u_long highpc; -{ - register int o; - char *cp; - struct gmonparam *p = &_gmonparam; - - /* - * round lowpc and highpc to multiples of the density we're using - * so the rest of the scaling (here and in gprof) stays in ints. - */ - p->lowpc = ROUNDDOWN(lowpc, HISTFRACTION * sizeof(HISTCOUNTER)); - p->highpc = ROUNDUP(highpc, HISTFRACTION * sizeof(HISTCOUNTER)); - p->textsize = p->highpc - p->lowpc; - p->kcountsize = p->textsize / HISTFRACTION; - p->hashfraction = HASHFRACTION; - p->fromssize = p->textsize / p->hashfraction; - p->tolimit = p->textsize * ARCDENSITY / 100; - if (p->tolimit < MINARCS) - p->tolimit = MINARCS; - else if (p->tolimit > MAXARCS) - p->tolimit = MAXARCS; - p->tossize = p->tolimit * sizeof(struct tostruct); - - cp = fake_sbrk(p->kcountsize + p->fromssize + p->tossize); - if (cp == (char *)-1) { - ERR("monstartup: out of memory\n"); - return; - } - - /* zero out cp as value will be added there */ - bzero(cp, p->kcountsize + p->fromssize + p->tossize); - - p->tos = (struct tostruct *)cp; - cp += p->tossize; - p->kcount = (u_short *)cp; - cp += p->kcountsize; - p->froms = (u_short *)cp; - - /* XXX minbrk needed? */ - //minbrk = fake_sbrk(0); - p->tos[0].link = 0; - - o = p->highpc - p->lowpc; - if (p->kcountsize < o) { -#ifndef notdef - s_scale = ((float)p->kcountsize / o ) * SCALE_1_TO_1; -#else /* avoid floating point */ - int quot = o / p->kcountsize; - - if (quot >= 0x10000) - s_scale = 1; - else if (quot >= 0x100) - s_scale = 0x10000 / quot; - else if (o >= 0x800000) - s_scale = 0x1000000 / (o / (p->kcountsize >> 8)); - else - s_scale = 0x1000000 / ((o << 8) / p->kcountsize); -#endif - } else - s_scale = SCALE_1_TO_1; - - moncontrol(1); -} - -void -_mcleanup() -{ - int fd; - int hz; - int fromindex; - int endfrom; - u_long frompc; - int toindex; - struct rawarc rawarc; - struct gmonparam *p = &_gmonparam; - struct gmonhdr gmonhdr, *hdr; - char *proffile; -#ifdef DEBUG - int log, len; - char dbuf[200]; -#endif - - if (p->state == GMON_PROF_ERROR) - ERR("_mcleanup: tos overflow\n"); - - hz = PROF_HZ; - moncontrol(0); - -#ifdef nope - if ((profdir = getenv("PROFDIR")) != NULL) { - extern char *__progname; - char *s, *t, *limit; - pid_t pid; - long divisor; - - /* If PROFDIR contains a null value, no profiling - output is produced */ - if (*profdir == '\0') { - return; - } - - limit = buf + sizeof buf - 1 - 10 - 1 - - strlen(__progname) - 1; - t = buf; - s = profdir; - while((*t = *s) != '\0' && t < limit) { - t++; - s++; - } - *t++ = '/'; - - /* - * Copy and convert pid from a pid_t to a string. For - * best performance, divisor should be initialized to - * the largest power of 10 less than PID_MAX. - */ - pid = getpid(); - divisor=10000; - while (divisor > pid) divisor /= 10; /* skip leading zeros */ - do { - *t++ = (pid/divisor) + '0'; - pid %= divisor; - } while (divisor /= 10); - *t++ = '.'; - - s = __progname; - while ((*t++ = *s++) != '\0') - ; - - proffile = buf; - } else { - proffile = "gmon.out"; - } -#else - proffile = "gmon.out"; -#endif - - fd = open(proffile , O_CREAT|O_TRUNC|O_WRONLY|O_BINARY, 0666); - if (fd < 0) { - perror( proffile ); - return; - } -#ifdef DEBUG - log = open("gmon.log", O_CREAT|O_TRUNC|O_WRONLY, 0664); - if (log < 0) { - perror("mcount: gmon.log"); - return; - } - len = sprintf(dbuf, "[mcleanup1] kcount 0x%x ssiz %d\n", - p->kcount, p->kcountsize); - write(log, dbuf, len); -#endif - hdr = (struct gmonhdr *)&gmonhdr; - hdr->lpc = p->lowpc; - hdr->hpc = p->highpc; - hdr->ncnt = p->kcountsize + sizeof(gmonhdr); - hdr->version = GMONVERSION; - hdr->profrate = hz; - write(fd, (char *)hdr, sizeof *hdr); - write(fd, p->kcount, p->kcountsize); - endfrom = p->fromssize / sizeof(*p->froms); - for (fromindex = 0; fromindex < endfrom; fromindex++) { - if (p->froms[fromindex] == 0) - continue; - - frompc = p->lowpc; - frompc += fromindex * p->hashfraction * sizeof(*p->froms); - for (toindex = p->froms[fromindex]; toindex != 0; - toindex = p->tos[toindex].link) { -#ifdef DEBUG - len = sprintf(dbuf, - "[mcleanup2] frompc 0x%x selfpc 0x%x count %d\n" , - frompc, p->tos[toindex].selfpc, - p->tos[toindex].count); - write(log, dbuf, len); -#endif - rawarc.raw_frompc = frompc; - rawarc.raw_selfpc = p->tos[toindex].selfpc; - rawarc.raw_count = p->tos[toindex].count; - write(fd, &rawarc, sizeof rawarc); - } - } - close(fd); -} - -/* - * Control profiling - * profiling is what mcount checks to see if - * all the data structures are ready. - */ -void -moncontrol(mode) - int mode; -{ - struct gmonparam *p = &_gmonparam; - - if (mode) { - /* start */ - profil((char *)p->kcount, p->kcountsize, p->lowpc, - s_scale); - p->state = GMON_PROF_ON; - } else { - /* stop */ - profil((char *)0, 0, 0, 0); - p->state = GMON_PROF_OFF; - } -} - - diff --git a/winsup/mingw/profile/gmon.h b/winsup/mingw/profile/gmon.h deleted file mode 100644 index 1f01bf418..000000000 --- a/winsup/mingw/profile/gmon.h +++ /dev/null @@ -1,181 +0,0 @@ -/* $OpenBSD: gmon.h,v 1.3 1996/04/21 22:31:46 deraadt Exp $ */ -/* $NetBSD: gmon.h,v 1.5 1996/04/09 20:55:30 cgd Exp $ */ - -/*- - * Copyright (c) 1982, 1986, 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)gmon.h 8.2 (Berkeley) 1/4/94 - */ - -/* - * This file is taken from Cygwin distribution. Please keep it in sync. - * The differences should be within __MINGW32__ guard. - */ - -#ifndef _SYS_GMON_H_ -#define _SYS_GMON_H_ - -#ifndef __P -#define __P(x) x -#endif - -#include - -#ifdef __MINGW32__ -#ifndef _BSDTYPES_DEFINED -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; -typedef unsigned long u_long; -#define _BSDTYPES_DEFINED -#endif /* _BSDTYPES_DEFINED */ -#endif /* __MINGW32__*/ - -/* - * Structure prepended to gmon.out profiling data file. - */ -struct gmonhdr { - u_long lpc; /* base pc address of sample buffer */ - u_long hpc; /* max pc address of sampled buffer */ - int ncnt; /* size of sample buffer (plus this header) */ - int version; /* version number */ - int profrate; /* profiling clock rate */ - int spare[3]; /* reserved */ -}; -#define GMONVERSION 0x00051879 - -/* - * histogram counters are unsigned shorts (according to the kernel). - */ -#define HISTCOUNTER unsigned short - -/* - * fraction of text space to allocate for histogram counters here, 1/2 - */ -#define HISTFRACTION 2 - -/* - * Fraction of text space to allocate for from hash buckets. - * The value of HASHFRACTION is based on the minimum number of bytes - * of separation between two subroutine call points in the object code. - * Given MIN_SUBR_SEPARATION bytes of separation the value of - * HASHFRACTION is calculated as: - * - * HASHFRACTION = MIN_SUBR_SEPARATION / (2 * sizeof(short) - 1); - * - * For example, on the VAX, the shortest two call sequence is: - * - * calls $0,(r0) - * calls $0,(r0) - * - * which is separated by only three bytes, thus HASHFRACTION is - * calculated as: - * - * HASHFRACTION = 3 / (2 * 2 - 1) = 1 - * - * Note that the division above rounds down, thus if MIN_SUBR_FRACTION - * is less than three, this algorithm will not work! - * - * In practice, however, call instructions are rarely at a minimal - * distance. Hence, we will define HASHFRACTION to be 2 across all - * architectures. This saves a reasonable amount of space for - * profiling data structures without (in practice) sacrificing - * any granularity. - */ -#define HASHFRACTION 2 - -/* - * percent of text space to allocate for tostructs with a minimum. - */ -#define ARCDENSITY 2 -#define MINARCS 50 -#define MAXARCS ((1 << (8 * sizeof(HISTCOUNTER))) - 2) - -struct tostruct { - u_long selfpc; - long count; - u_short link; - u_short pad; -}; - -/* - * a raw arc, with pointers to the calling site and - * the called site and a count. - */ -struct rawarc { - u_long raw_frompc; - u_long raw_selfpc; - long raw_count; -}; - -/* - * general rounding functions. - */ -#define ROUNDDOWN(x,y) (((x)/(y))*(y)) -#define ROUNDUP(x,y) ((((x)+(y)-1)/(y))*(y)) - -/* - * The profiling data structures are housed in this structure. - */ -struct gmonparam { - int state; - u_short *kcount; - u_long kcountsize; - u_short *froms; - u_long fromssize; - struct tostruct *tos; - u_long tossize; - long tolimit; - u_long lowpc; - u_long highpc; - u_long textsize; - u_long hashfraction; -}; -extern struct gmonparam _gmonparam; - -/* - * Possible states of profiling. - */ -#define GMON_PROF_ON 0 -#define GMON_PROF_BUSY 1 -#define GMON_PROF_ERROR 2 -#define GMON_PROF_OFF 3 - -/* - * Sysctl definitions for extracting profiling information from the kernel. - */ -#define GPROF_STATE 0 /* int: profiling enabling variable */ -#define GPROF_COUNT 1 /* struct: profile tick count buffer */ -#define GPROF_FROMS 2 /* struct: from location hash bucket */ -#define GPROF_TOS 3 /* struct: destination/count structure */ -#define GPROF_GMONPARAM 4 /* struct: profiling parameters (see above) */ -#endif /* !_SYS_GMONH_ */ diff --git a/winsup/mingw/profile/mcount.c b/winsup/mingw/profile/mcount.c deleted file mode 100644 index 296f8c891..000000000 --- a/winsup/mingw/profile/mcount.c +++ /dev/null @@ -1,180 +0,0 @@ -/*- - * Copyright (c) 1983, 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#if !defined(lint) && !defined(_KERNEL) && defined(LIBC_SCCS) -static char rcsid[] = "$OpenBSD: mcount.c,v 1.6 1997/07/23 21:11:27 kstailey Exp $"; -#endif - -/* - * This file is taken from Cygwin distribution. Please keep it in sync. - * The differences should be within __MINGW32__ guard. - */ - -#ifndef __MINGW32__ -#include -#endif -#include -#include - -/* - * mcount is called on entry to each function compiled with the profiling - * switch set. _mcount(), which is declared in a machine-dependent way - * with _MCOUNT_DECL, does the actual work and is either inlined into a - * C routine or called by an assembly stub. In any case, this magic is - * taken care of by the MCOUNT definition in . - * - * _mcount updates data structures that represent traversals of the - * program's call graph edges. frompc and selfpc are the return - * address and function address that represents the given call graph edge. - * - * Note: the original BSD code used the same variable (frompcindex) for - * both frompcindex and frompc. Any reasonable, modern compiler will - * perform this optimization. - */ -//_MCOUNT_DECL __P((u_long frompc, u_long selfpc)); -_MCOUNT_DECL(frompc, selfpc) /* _mcount; may be static, inline, etc */ - register u_long frompc, selfpc; -{ - register u_short *frompcindex; - register struct tostruct *top, *prevtop; - register struct gmonparam *p; - register long toindex; - - p = &_gmonparam; - /* - * check that we are profiling - * and that we aren't recursively invoked. - */ - if (p->state != GMON_PROF_ON) - return; - p->state = GMON_PROF_BUSY; - /* - * check that frompcindex is a reasonable pc value. - * for example: signal catchers get called from the stack, - * not from text space. too bad. - */ - frompc -= p->lowpc; - if (frompc > p->textsize) - goto done; - -#if (HASHFRACTION & (HASHFRACTION - 1)) == 0 - if (p->hashfraction == HASHFRACTION) - frompcindex = - &p->froms[frompc / (HASHFRACTION * sizeof(*p->froms))]; - else -#endif - frompcindex = - &p->froms[frompc / (p->hashfraction * sizeof(*p->froms))]; - toindex = *frompcindex; - if (toindex == 0) { - /* - * first time traversing this arc - */ - toindex = ++p->tos[0].link; - if (toindex >= p->tolimit) - /* halt further profiling */ - goto overflow; - - *frompcindex = toindex; - top = &p->tos[toindex]; - top->selfpc = selfpc; - top->count = 1; - top->link = 0; - goto done; - } - top = &p->tos[toindex]; - if (top->selfpc == selfpc) { - /* - * arc at front of chain; usual case. - */ - top->count++; - goto done; - } - /* - * have to go looking down chain for it. - * top points to what we are looking at, - * prevtop points to previous top. - * we know it is not at the head of the chain. - */ - for (; /* goto done */; ) { - if (top->link == 0) { - /* - * top is end of the chain and none of the chain - * had top->selfpc == selfpc. - * so we allocate a new tostruct - * and link it to the head of the chain. - */ - toindex = ++p->tos[0].link; - if (toindex >= p->tolimit) - goto overflow; - - top = &p->tos[toindex]; - top->selfpc = selfpc; - top->count = 1; - top->link = *frompcindex; - *frompcindex = toindex; - goto done; - } - /* - * otherwise, check the next arc on the chain. - */ - prevtop = top; - top = &p->tos[top->link]; - if (top->selfpc == selfpc) { - /* - * there it is. - * increment its count - * move it to the head of the chain. - */ - top->count++; - toindex = prevtop->link; - prevtop->link = top->link; - top->link = *frompcindex; - *frompcindex = toindex; - goto done; - } - } -done: - p->state = GMON_PROF_ON; - return; -overflow: - p->state = GMON_PROF_ERROR; - return; -} - -/* - * Actual definition of mcount function. Defined in , - * which is included by - */ -MCOUNT - diff --git a/winsup/mingw/profile/profil.c b/winsup/mingw/profile/profil.c deleted file mode 100644 index dae59d7fd..000000000 --- a/winsup/mingw/profile/profil.c +++ /dev/null @@ -1,185 +0,0 @@ -/* profil.c -- win32 profil.c equivalent - - Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. - - This file is part of Cygwin. - - This software is a copyrighted work licensed under the terms of the - Cygwin license. Please consult the file "CYGWIN_LICENSE" for - details. */ - -/* - * This file is taken from Cygwin distribution. Please keep it in sync. - * The differences should be within __MINGW32__ guard. - */ - -#include -#include -#include -#include -#include - -#include - -#define SLEEPTIME (1000 / PROF_HZ) - -/* global profinfo for profil() call */ -static struct profinfo prof; - -/* Get the pc for thread THR */ - -static u_long -get_thrpc (HANDLE thr) -{ - CONTEXT ctx; - u_long pc; - int res; - - res = SuspendThread (thr); - if (res == -1) - return (u_long) - 1; - ctx.ContextFlags = CONTEXT_CONTROL | CONTEXT_INTEGER; - pc = (u_long) - 1; - if (GetThreadContext (thr, &ctx)) - pc = ctx.Eip; - ResumeThread (thr); - return pc; -} - -/* Display cell of profile buffer */ -#if 0 -static void -print_prof (struct profinfo *p) -{ - printf ("profthr %x\ttarget thr %x\n", p->profthr, p->targthr); - printf ("pc: %x - %x\n", p->lowpc, p->highpc); - printf ("scale: %x\n", p->scale); - return; -} -#endif - -/* Everytime we wake up use the main thread pc to hash into the cell in the - profile buffer ARG. */ - -static DWORD CALLBACK -profthr_func (LPVOID arg) -{ - struct profinfo *p = (struct profinfo *) arg; - u_long pc, idx; - - for (;;) - { - pc = (u_long) get_thrpc (p->targthr); - if (pc >= p->lowpc && pc < p->highpc) - { - idx = PROFIDX (pc, p->lowpc, p->scale); - p->counter[idx]++; - } -#if 0 - print_prof (p); -#endif - Sleep (SLEEPTIME); - } - return 0; -} - -/* Stop profiling to the profiling buffer pointed to by P. */ - -static int -profile_off (struct profinfo *p) -{ - if (p->profthr) - { - TerminateThread (p->profthr, 0); - CloseHandle (p->profthr); - } - if (p->targthr) - CloseHandle (p->targthr); - return 0; -} - -/* Create a timer thread and pass it a pointer P to the profiling buffer. */ - -static int -profile_on (struct profinfo *p) -{ - DWORD thrid; - - /* get handle for this thread */ - if (!DuplicateHandle (GetCurrentProcess (), GetCurrentThread (), - GetCurrentProcess (), &p->targthr, 0, FALSE, - DUPLICATE_SAME_ACCESS)) - { - errno = ESRCH; - return -1; - } - - p->profthr = CreateThread (0, 0, profthr_func, (void *) p, 0, &thrid); - - /* Set profiler thread priority to highest to be sure that it gets the - processor as soon it request it (i.e. when the Sleep terminate) to get - the next data out of the profile. */ - - SetThreadPriority (p->profthr, THREAD_PRIORITY_TIME_CRITICAL); - - if (!p->profthr) - { - CloseHandle (p->targthr); - p->targthr = 0; - errno = EAGAIN; - return -1; - } - return 0; -} - -/* - * start or stop profiling - * - * profiling goes into the SAMPLES buffer of size SIZE (which is treated - * as an array of u_shorts of size size/2) - * - * each bin represents a range of pc addresses from OFFSET. The number - * of pc addresses in a bin depends on SCALE. (A scale of 65536 maps - * each bin to two addresses, A scale of 32768 maps each bin to 4 addresses, - * a scale of 1 maps each bin to 128k addreses). Scale may be 1 - 65536, - * or zero to turn off profiling - */ -int -profile_ctl (struct profinfo * p, char *samples, size_t size, - u_long offset, u_int scale) -{ - u_long maxbin; - - if (scale > 65536) - { - errno = EINVAL; - return -1; - } - - profile_off (p); - if (scale) - { - memset (samples, 0, size); - memset (p, 0, sizeof *p); - maxbin = size >> 1; - prof.counter = (u_short *) samples; - prof.lowpc = offset; - prof.highpc = PROFADDR (maxbin, offset, scale); - prof.scale = scale; - - return profile_on (p); - } - return 0; -} - -/* Equivalent to unix profil() - Every SLEEPTIME interval, the user's program counter (PC) is examined: - offset is subtracted and the result is multiplied by scale. - The word pointed to by this address is incremented. Buf is unused. */ - -int -profil (char *samples, size_t size, u_long offset, u_int scale) -{ - return profile_ctl (&prof, samples, size, offset, scale); -} - diff --git a/winsup/mingw/profile/profil.h b/winsup/mingw/profile/profil.h deleted file mode 100644 index 9245dd25a..000000000 --- a/winsup/mingw/profile/profil.h +++ /dev/null @@ -1,51 +0,0 @@ -/* profil.h: gprof profiling header file - - Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -/* - * This file is taken from Cygwin distribution. Please keep it in sync. - * The differences should be within __MINGW32__ guard. - */ - -/* profiling frequency. (No larger than 1000) */ -#define PROF_HZ 100 - -/* convert an addr to an index */ -#define PROFIDX(pc, base, scale) \ - ({ \ - size_t i = (pc - base) / 2; \ - if (sizeof (unsigned long long int) > sizeof (size_t)) \ - i = (unsigned long long int) i * scale / 65536; \ - else \ - i = i / 65536 * scale + i % 65536 * scale / 65536; \ - i; \ - }) - -/* convert an index into an address */ -#define PROFADDR(idx, base, scale) \ - ((base) \ - + ((((unsigned long long)(idx) << 16) \ - / (unsigned long long)(scale)) << 1)) - -/* convert a bin size into a scale */ -#define PROFSCALE(range, bins) (((bins) << 16) / ((range) >> 1)) - -typedef void *_WINHANDLE; - -struct profinfo { - _WINHANDLE targthr; /* thread to profile */ - _WINHANDLE profthr; /* profiling thread */ - u_short *counter; /* profiling counters */ - u_long lowpc, highpc; /* range to be profiled */ - u_int scale; /* scale value of bins */ -}; - -int profile_ctl(struct profinfo *, char *, size_t, u_long, u_int); -int profil(char *, size_t, u_long, u_int); - diff --git a/winsup/mingw/profile/profile.h b/winsup/mingw/profile/profile.h deleted file mode 100644 index d578657f8..000000000 --- a/winsup/mingw/profile/profile.h +++ /dev/null @@ -1,63 +0,0 @@ -/* $NetBSD: profile.h,v 1.6 1995/03/28 18:17:08 jtc Exp $ */ - -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)profile.h 8.1 (Berkeley) 6/11/93 - */ - -/* - * This file is taken from Cygwin distribution. Please keep it in sync. - * The differences should be within __MINGW32__ guard. - */ - -#define _MCOUNT_DECL static inline void _mcount - -#define MCOUNT \ -void \ -mcount() \ -{ \ - int selfpc, frompcindex; \ - /* \ - * find the return address for mcount, \ - * and the return address for mcount's caller. \ - * \ - * selfpc = pc pushed by mcount call \ - */ \ - __asm("movl 4(%%ebp),%0" : "=r" (selfpc)); \ - /* \ - * frompcindex = pc pushed by call into self. \ - */ \ - __asm("movl (%%ebp),%0;movl 4(%0),%0" : "=r" (frompcindex)); \ - _mcount(frompcindex, selfpc); \ -} - diff --git a/winsup/mingw/readme.txt b/winsup/mingw/readme.txt deleted file mode 100644 index 4b680df48..000000000 --- a/winsup/mingw/readme.txt +++ /dev/null @@ -1,685 +0,0 @@ - Minimalist GNU-Win32 Readme - version 0.1.3 - March 20, 1997 - Colin Peters - - -0. Introduction - -Mingw32 is short for the Minimalist GNU-Win32 package, and it is a -package which allows you to use GCC (as supplied by Cygnus in their GNU- -Win32 or Cygwin32 package) the GNU compiler, on Win32 platforms like -Windows 95 or NT, to compile "native" programs. - -In this case "native" means programs which don't require extra DLLs like -the cygwin DLL. Mingw32 programs use CRTDLL.DLL to provide their C run -time library functions, and CRTDLL.DLL is supplied with all current -Win32 platforms. Thus the programs are light weight and easy to -distribute, they also do not automatically fall under the GNU Public -License as programs written with the GPL version of Cygwin32 do. - - -0.1 Archive Contents - -Mingw32 version 0.1.3 is distributed in two files, mingw32_013.tar.gz -and mingsrc013.tar.gz. The first file contains the following components: - - - Import libraries for building programs which use the - CRTDLL.DLL C run time library supplied with Win32 platforms. - - - crt0.o and dllcrt0.o, two "startup code" object files that - perform program or DLL initialization without using - CRTDLL.DLL (instead of CYGWIN.DLL). - - - specs, a configuration file for GCC which defines appropriate - options for creating executables which use the CRTDLL.DLL C - run time library. - - - Include files with appropriate type and macro definitions, - and function prototypes for use with CRTDLL.DLL. - -The source distribution (mingsrc013.tar.gz) contains the .def files and -source files used to create the various import libraries and object -files in the above list. - - -0.2 Usage Notes - -Unlike some previous releases of Mingw32 the current version defaults to -building console applications, the same way that GCC normally does when -installed from the Cygnus distribution. The Mingw32 specs file also -introduces two command line arguments to GCC which can be used to -conveniently specify a console or GUI type build. When building console -programs "-console" can be used on the GCC command line, while GUI -programs can be built by specifying "-windows" (I tried defining -gui, -and it works, but produces an annoying warning about -gui not being -supported (?)). For example: - - gcc -o hellogui.exe hellogui.c -luser32 -windows - -Although using different "crt0" files for GUI and console applications -has been suggested I have left the system more-or-less as it was in -0.1.1: crt0 sets up for and calls main, and if you don't supply a main -there is one in libmingw32.a, which in turn calls WinMain (actually -WinMain@16). This allows either main or WinMain entry points in console -or GUI applications, but if you don't supply main or WinMain, or don't -prototype WinMain as __stdcall__ you will get a linker error about an -"unresolved reference to WinMain@16." This is unfortunately cryptic, but -otherwise the system works quite well. - -An important note if you want to rebuild from the sources of Mingw32 or -otherwise use the special version of Jam made for Mingw32: you need to -have a version of "rm", the UNIX equivalent of del, somewhere in your -path to use the current Jambase (which is built into the Jam -executable). The version that comes with the Cygnus files is perfectly -adequate. - - -0.3 Fixes and Improvements - -Numerous small bug fixes have been made in the header files. - -Floating point initialization, originally added in version 0.1.2, has -been modified to use the _fpreset function from CRTDLL.DLL instead of -cryptic and possibly less portable assembly code. - -A new DLL-building option has been added to the specs file so that the -following link line will appropriately link in dllcrt0.o instead of the -normal crt0.o, and set the entry point correctly: - - gcc -dll -o dll.dll dll.o -Wl,dll.exp - -A bug that would cause the wrong include files to be included in dual -installations of Cygwin32 and Mingw32 has been fixed (I hope) in the -Mingw32 specs file. - -Alongside this release is a new release of Jam specially built for use -with Mingw32. It should be available from the same place you got this -file. This release of Jam includes rules for building DLLs, including -resources in your executables and creating import libraries. I also -intend to distribute a small set of example files showing how to do all -of these things with Mingw32 and Jam. - -In the "coming soon" category I have a version of the GNU Standard C++ -library ported to Mingw32. This means you can use iostreams, complex -numbers and all those neat STL (Standard Template Library) things -without needing the Cygwin DLL. I hope to put this port up for -downloading soon (along with the source of course). - - - -1. Installing - -1.1 Download and Unpack GNU-Win32 Beta 17.1 - -Because of the enormous size of the beta 17.1 release from Cygnus this -process will require about 85 MB or more of free disk space. The first -step, after downloading the Mingw32 package, is to download the GCC -binary distribution, all.tar.gz, from Cygnus (or a mirror), which is -about 10 MB. (Of course, if you just want the Cygwin32 install and are -not actually interested in adding on Mingw32 you don't need the Mingw32 -package at all.) - -Just to be safe, and if you have the 10 MB to spare, you should probably -copy the all.tar.gz file to a reasonably safe place at this point. This -will save you from the pain of downloading it again if something goes -wrong later. - -To complete this step you need a gzip program (or just gunzip) and a tar -program. You can use the ones supplied by Cygnus (although some people -seem to have trouble with them, especially if you try to use pipes) or -one of the other ports available from your favorite freeware/shareware -software site. - -First un-gzip the file with a command line like: - gunzip all.tar.gz -or - gzip -d all.tar.gz - -This will produce a all.tar file and erase the all.tar.gz file (there -are options for gzip if you want to keep the original around). The tar -file is about 40 MB. - -Make a directory for the cygnus stuff, such as C:\cygnus for example. -Move the tar file there (e.g. move \tmp\all.tar \cygnus). Don’t copy it -unless you like waiting and wasting 40 MB of disk space. - -Unpack the tar file into your new directory with a command line like: - tar xvf all.tar - -Run from the new directory (now containing the tar file). This is the -step where disk space usage reaches its peak, since the tar extraction -does not delete the all.tar file, and the amount of space taken by the -extracted files plus the tar file itself is well in excess of 80 MB -(mainly because, on my system at least, the files which are symbolic -links in the tar archive are copied as they are expanded onto the FAT -filesystem, so for example, a symbolic link to cygwin.dll, a 3 MB file, -takes an extra 3 MB, since the file is simply duplicated in the new -location). I could not actually do this on my laptop and had to extract -the tar file from a mounted network drive! - -NOTE: From here on I will refer to files as if you had installed in -C:\cygnus. If you installed somewhere else then just replace C:\cygnus -with the appropriate path wherever it occurs. - - -1.2 Setup Cygwin32 - -This step is not 100% necessary, but it helps at this point to determine -if you’ve gotten this far without any major problems. Also, if you -intend to use both Cygwin32 and Mingw32 you will have to do some of -these steps eventually. - -GCC and the other programs in the compiler suite all require cygwin.dll -to run. There are two copies of this file: one in C:\cygnus\H-i386- -cygwin32\bin (this might be a symbolic link), and one in C:\cygnus\H- -i386-cygwin32\i386-cygwin32\lib (the original). Since this DLL is -required by all Cygwin32 programs it makes sense to put one copy of it -in your C:\Windows\System directory (or equivalent) and remove the extra -copies. This will also save you headaches when the next release comes -along and you have to make sure that everything is using the latest -release of the DLL. - -After doing that run the cygwin32.bat batch file included with this -distribution, or otherwise perform the following settings: - - PATH=%PATH%;C:\cygnus\H-i386-cygwin32\bin - SET GCC_EXEC_PREFIX=C:\cygnus\H-i386-cygwin32\lib\gcc-lib\i386- - cygwin32\cygnus-2.7.2-961023 - SET LIBRARY_PATH=/cygnus/H-i386-cygwin32/lib/gcc-lib/i386- - cygwin32/cygnus-2.7.2-961023:/cygnus/H-i386-cygwin32/i386- - cygwin32/lib:/cygnus/H-i386-cygwin32/lib - SET C_INCLUDE_PATH=/cygnus/H-i386-cygwin32/lib/gcc-lib/i386- - cygwin32/cygnus-2.7.2-961023/include:/cygnus/H-i386- - cygwin32/i386-cygwin32/include:/cygnus/include - SET CPLUS_INCLUDE_PATH=%C_INCLUDE_PATH% - -NOTE: You may need to increase the amount of environment space available -at the command prompt to get these extremely long environment variables -set. You can do this under Windows 95 by modifying the properties of the -command prompt shortcut you use under the "Program" tab, adding a -/e:#### argument to the command line COMMAND.COM, where #### is the -number of bytes to set aside for the environment. - -NOTE: Under Windows 95 changes made in your autoexec.bat file will not -show up in new DOS boxes unless you reboot your machine. - -Now write and compile a small test hello world program like this: - -#include - -int -main () -{ - printf ("Hello, world!\n"); - return 0; -} - -Then compile it like this (assuming your file is called hello.c): - - gcc -o hello.exe hello.c - -The compile should proceed without problems and you should be able to -run the hello program at the end. It should print "Hello, world!" -(without the quotes) to the console and then return to the command -prompt. - -If you wanted a full Cygwin32 install you now have it. With this setup -(say, by adding those lines above to your autoexec.bat or global -settings) you can port a great deal of UNIX code to run under Win32 -systems. No more steps are necessary. - -If you are a minimalist or otherwise want to save disk space you should -continue from here. Also if you intend to use the Minimalist GNU-Win32 -files to compile programs which don't use the Cygwin32 API you will need -to do some of the things mentioned below. - -If the compile didn't work for some reason check very carefully that you -followed the instructions above correctly and then check whether one or -more of the files in the download got corrupted. If neither of these -seems to be the case then your system is not behaving like my system. -Try looking at the troubleshooting section later in this file, and if -none of that helps then you can email me (colin@bird.fu.is.saga- -u.ac.jp), though I can't promise I'll be a lot of help. - - -1.3 Separating the Win32 API Files - -Mingw32 and Cygwin32 share the same set of Win32 API include files and -import libraries as included in the GCC distribution from Cygnus. In -order to use the Win32 API with a dual setup or with Mingw32 alone you -will have to separate those files from the bulk of the Cygwin32 API -files. - -Make a new directory to serve as the root for the Win32 API files. I put -mine under C:\cygnus and called it win32, but you can put it where you -like and just replace later references to C:\cygnus\win32 with your own -root directory. - -Move the following from C:\cygnus\H-i386-cygwin32\i386-cygwin32\include -to a new C:\cygnus\win32\include directory: - -windows.h, winadvapi.h, winbase.h, wincon.h, windef.h, windowsx.h, -winerror.h, wingdi.h, winkernel.h, winnt.h, wintypes.h, winuser.h, -winversion.h, commdlg.h, ddeml.h and the Windows32 sub-directory and all -its contents. - -Move the following files from C:\cygnus\H-i386-cygwin32\i386- -cygwin32\lib to a new C:\cygnus\win32\lib directory: - -libadvapi32.a, libcomctl32.a, libcomdlg32.a, libctl3d32.a, libgdi32.a, -libglaux.a, libglu32.a, libimm32.a, libkernel32.a, liblz32.a, -libmapi32.a, libmfcuia32.a, libmgmtapi.a, libmpr.a, libmsacm32.a, -libnddeapi.a, libnetapi32.a, libodbc32.a, libodbccp32.a, libole32.a, -liboleaut32.a, liboledlg.a, libolepro32.a, libopengl32.a, libpenwin32.a, -libpkpd32.a, librasapi32.a, librpcdce4.a, librpcndr.a, librpcns4.a, -librpcrt4.a, libscrnsave.a, libshell32.a, libsnmp.a, libsvrapi.a, -libtapi32.a, libth32.a, libthunk32.a, liburl.a libuser32.a, libvdmdbg.a, -libversion.a, libvfw32.a, libwin32spl.a, libwinmm.a, libwinserve.a, -libwinspool.a, libwinstrm.a, libwow32.a, libwsock32.a, libwst.a. - -That list is quite excessive for most basic Windows programming, which -will only require kernel32, user32, gdi32, shell32 and possibly a couple -of others like the common control and dialog libraries or advapi32. You -may not need the ODBC support, or OLE, or Pen Windows, TAPI and on and -on. Still, if you have the space and intend to use the Win32 API you -might as well keep the ones you’re not sure you’ll ever use around. - -The lists above can also act as lists of files you can safely delete if -you are never going to use the Win32 API in your programs except that -libkernel32.a is still required even if you don’t use the Win32 API -yourself. Note that this means that libkernel32.a must be on the library -path as well, even if you don’t use the Win32 API. (Actually this -appears to be an artifact of the specs file supplied with Cygwin32. If -you like, and feel up to it, you can play around with the specs file and -remove the reference to kernel32.) - -Here are the variable settings you need to make to allow GCC to find the -Win32 API files in their new positions: - - SET LIBRARY_PATH=%LIBRARY_PATH%:/cygnus/win32/lib - SET C_INCLUDE_PATH=%C_INCLUDE_PATH%:/cygnus/win32/include - SET CPLUS_INCLUDE_PATH=%CPLUS_INCLUDE_PATH%:/cygnus/win32/include - -The file win32-api.bat performs these settings. Run it after you run -cygwin32.bat (or mingw32.bat below). - -At this point you should be able to compile programs that use the Win32 -API, just as you could before. You might want to do a simple test -compile to find out, for example this code: - -#include - -int STDCALL -WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow) -{ - MessageBox (NULL, "Test message", "Test", MB_OK); - return 0; -} - -Should compile with the following command line: - gcc -o test.exe test.c -lkernel32 -luser32 -Wl,--subsystem,windows - -It will produce a warning at link time about not finding -_WinMainCRTStartup, but this is harmless. - -If you have trouble check the troubleshooting section later in this -file. - - -1.4 Specs - -The file C:\cygnus\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\cygnus- -2.7.2-961023\specs includes a set of options and defaults for GCC, -including such things as which libraries are automatically linked into -executables and such. A different specs file is required depending on -whether you use Cygwin32 or Mingw32. - -To avoid GCC accidentally using the wrong specs file move specs to -C:\cygnus\H-i386-cygwin32\i386-cygwin32\lib. - -You can verify what specs file is being used by attempting a compile -with the -v option to gcc. Note that if no specs file is mentioned the -compiler will default to Cygwin32 behavior. - - -1.5 The Mingw32 Files - -Now we can install the Mingw32 files and start making programs which -don’t use cygwin.dll or the Cygwin32 API. I install my copy under a -separate directory called C:\mingw32, but you could put them wherever -you like (e.g. C:\cygnus\mingw32). Again simply replace references to -C:\mingw32 with the directory where you perform your installation. - -After making the install directory copy mingw32_012.tgz to that -directory and run a command like this: - gunzip -d mingw32_012.tgz - -in that directory, followed by: - tar xvf mingw32_012.tar - -This will unpack the required files. Then you can use the following -environment variable settings (as included in mingw32.bat) to setup for -compiles using Mingw32: - - PATH=%PATH%;C:\cygnus\H-i386-cygwin32\bin - SET GCC_EXEC_PREFIX=C:\cygnus\H-i386-cygwin32\lib\gcc-lib\i386- - cygwin32\cygnus-2.7.2-961023\ - SET LIBRARY_PATH=/mingw32/lib - SET C_INCLUDE_PATH=/mingw32/include:/mingw32/include/nonansi - SET CPLUS_INCLUDE_PATH=%C_INCLUDE_PATH% - -The mingw32.bat file can be used the same way as the cygwin32.bat file. -Depending on which one you run you will be able to do Mingw32 compiles -or Cygwin32 compiles. Note that whichever one you use you must follow it -with an invocation of win32-api.bat so that libkernel32.a will be in the -library path. - -Setup is now complete, you have complete working Mingw32 and Cygwin32 -compiles available along with the bash shell, tons of UNIX-like -utilities. - -If you had trouble with any of the steps above then the next section is -for you. - - - -2. Troubleshooting Setup Problems - -If you ran into trouble at any stage in the section 1 here are a few -general guidelines as well as some solutions to common problems. - -2.1 Winzip, gunzip or tar Complains of Errors - -Winzip may complain that it could not create a file with garbage -characters in it's name. Gunzip, gzip or tar may complain about -formatting errors. Usually this means that the downloaded file is -corrupted. As of this writing this problem was most commonly caused when -downloading the files from Geocities using Netscape Navigator for -Windows 95 or NT. A combination of a badly set MIME type at Geocities -and a bug in Netscape will corrupt files saved with "Save Link As" (and -clicking on the links would display the files as garbage text). At this -time the only solutions are to use another browser (IE, or Netscape for -UNIX or Apple systems) or to download from the Japanese mirror -(http://www.fu.is.saga-u.ac.jp/~colin/gcc.html). Hopefully Geocities -will eventually fix their problem. - - -2.2 Compile and Link Time Problems: General Steps - -First, evaluate that your environment variables are what you expect them -to be by running the SET command with no arguments (if you are using the -bash shell then the output of env might also be illuminating). Do this -immediately before you attempt a compile in the same window as the -compile. - -Secondly include the '-v' option on the gcc command line. This will give -you far more information on what happens during the compile, especially -important are which specs file is being used and what include file -directories are being read, as well as the arguments to cpp and ld. - -If you send me email about a problem the output of these two general -steps will be very helpful in making a diagnosis. - - -2.3 Cannot exec 'cpp' - -On compiling you get an error message like this: - - GCC.EXE: installation problem, cannot exec `cpp': No such file - or directory - GCC.EXE: Internal compiler error: program cpp got fatal signal 127 - -This means more or less what it says. The program cpp is the C -preprocessor (it strips comments and interprets all those lines -beginning in '#') and running it is the first step in compiling a C or -C++ program. The problem here is that GCC.EXE cannot find CPP.EXE. -Normally CPP.EXE is in the directory C:\cygnus\H-i386-cygwin32\lib\gcc- -lib\i386-cygwin32\cygnus-2.7.2-961023\. If the file is there then -probably the GCC_EXEC_PREFIX environment variable is not correctly set. - - -2.4 Can't Find Include Files - -You get an error like this: - - hello.c:2: No include path in which to find stdio.h - -This, again, means what it says (more or less). The compiler cannot find -the file stdio.h which is #included in the source file hello.c at line -2. Of course the particular file names may differ in your case. If this -is not simply a case of including a really non-existent file or -misspelling the file name then probably your C_INCLUDE_PATH or -CPLUS_INCLUDE_PATH environment variable is wrong. (If not, see "But the -environment variables are right" below.) - - -2.5 Can't Find Libraries - -At link time you get an error like this: - - ld: cannot open -lkernel32: No such file or directory - -This one is a bit cryptic, mainly because the name of the file that -can't be opened is not "-lkernel32" but "libkernel32.a". "-lname" is the -ld command line syntax for linking the library named "libname.a". So -basically this error is saying it can't find libkernel32.a (or whatever -library matches the error you got). If you weren't trying to manually -link in a library that doesn't exist or was misspelled (by accidentally -including the 'lib' or '.a' on the command line for example) then -probably your LIBRARY_PATH environment variable is wrong. (If not, see -"But the environment variables are right" below.) - - -2.6 But the Environment Variables are Right! - -You had one of the problems with not finding include files or libraries -but the environment variables all seem to be pointing at the right -places and the files are all there. - -If you installed on a drive other than C: drive this may be your -problem. The Cygwin DLL, and thus all the basic compiler tools, -automatically map C: drive to (UNIX-style) '/'. Thus /cygnus is actually -C:\cygnus. There are a few ways to fix this (without reinstalling on C: -drive): - - - Map your actual install directory to /cygnus using mount - (mount.exe is included with the Cygnus distribution). Simply - type "mount D:\mydir /cygnus" (assuming you installed in the - directory \mydir on D: drive). Similar tricks can be used for - other directories which you may have installed on other drives. - - - Change the mount of C: to / to the actual install drive. This is - possible by using the registry editor (regedit) included with - Windows. Start the editor and go to the key (or folder) "My - Computer\HKEY_CURRENT_USER\Software\Cygnus Support\CYGWIN.DLL - setup\b15.0\mounts". Under this key there are several numbered - keys. One of them will have the variables "native" set to "c:" and - "unix" set to "/". Change the value of "native" to whatever drive - you did your install on and everything should be fixed. NOTE: You - should probably do this after a fresh boot with no Cygnus based - programs running. - - -2.7 Unresolved References to _impure_ptr and/or _ctype_ etc. - -At link time your code produces unresolved references to _impure_ptr, -_ctype_ and/or _errno, among others. - -This is the result of using the Cygwin header files but linking against -the Mingw32 libraries. I have hopefully managed to fix the bug that used -to cause this problem on any dual installation, but perhaps I haven't. -To check you can run gcc with the -v option and see if the list of -directories searched for include files contains any include directories -with Cygwin headers in them. If everything is working correctly you -should only see the directories on your C_INCLUDE_PATH in this list. - -If you have this problem then you may have to modify the Mingw32 specs -file, specifically the part that says: - -*cpp: -%{posix:-D_POSIX_SOURCE} -iprefix /mingw32/include/ - -These are options that get passed to the C preprocessor by gcc. Consult -the documentation for cpp and try options other than -iprefix. You may -have to use -nostdinc and/or -nostdinc++ plus -I options to get the -correct behavior. - - -2.8 My Program Doesn't Print Any Output OR My Windows Program Creates - A Console Window - -Your console application runs, but doesn't print any output, or your GUI -application runs fine, but always creates an extra console window when -run from Explorer or by double clicking on an icon. - -These are basically two sides of the same coin. You have created a GUI -(or console) application when you meant to create a console (or GUI) -application. By default gcc creates console applications. If you make a -windows GUI application with a WinMain and all that you will still get a -console application if you don't tell gcc what to do at link time. The -relevant options are "-windows" "-Wl,--subsystem,windows" or "-Wl,-- -subsystem,console". The first two, if used on a gcc link line, will -create a proper GUI application. The last will make sure you are making -a console application. - - - -3. Optimizing and Reducing Disk Space Usage - -There are still vast amounts of disk space used by the Cygwin32 -installation on your hard-drive, and much of it can be removed while -still maintaining a fully functional compiler system. The following -sections point out which files you actually need for certain tasks, so -that you won’t delete them. - - -3.1 Bare Minimum - -For C only, Mingw32 compiles which don’t use the Win32 API, and if you -don’t want to produce DLLs or do debugging with any of the GNU tools the -list of files required is as follows: - -In C:\cygnus\H-i386-cygwin32\bin: - ar.exe, as.exe, gcc.exe, ld.exe - -In C:\cygnus\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\cygnus-2.7.2- -961023: - cc1.exe, cpp.exe, libgcc.a - -In C:\cygnus\win32\lib: - libkernel32.a - -Plus all the files in C:\mingw32\lib and C:\mingw32\include and their -subdirectories. - - -3.2 C++ Support - -To add C++ Support to the above the following extra files are required: - -In C:\cygnus\H-i386-cygwin32\lib\gcc-lib\i386-cygwin32\cygnus-2.7.2- -961023: - cc1plus.exe - -Note that this does not include support for the standard C++ libraries -(only the C run time libraries) or for iostreams. That support is still -only available with the Cygwin32 API. - - -3.3 Extra Utilities of Extreme Usefulness - -Even if you do not use the bash shell or UNIX utilities in general some -of the utilities in C:\cygnus\H-i386-cygwin32\bin are extremely useful -for debugging and probably shouldn’t be deleted if you intend to do any -actual programming using the system. - -These include: - dlltool.exe, gdb.exe, nm.exe, and strip.exe. - - -3.4 Jam - -Jam is a make replacement program that I use pretty much exclusively, -which is why you don't find any Makefile, makefile, makefile.mk or all -that in the stuff that I do. You do find jamfiles and the occaisional -mk.bat file. The executable of Jam is only 80 KB and the program is -incredibly useful, so I would encourage you do download the special -Mingw32 version and check it out. The Mingw32 version has built in rules -for adding resources, building DLLs and import libraries as well as -normal C and C++ files. The source code is, of course, freely available. - -The actual point of this section though, is to point out that to use Jam -you need not only the Jam executable but also rm.exe from the Cygwin -distribution. You also might want to download rcl.exe and res2coff.exe -as these are the helper programs Jam expects to use for resource script -handling. - - -4. Legalities - -All of the code in the Mingw32 package is available as public domain -source. You may use and modify the code as you like. Of course I -encourage you to write software which is free, either public domain or -under the GNU Public License for example, but that is up to you. Linking -with the libraries included with Mingw32 similarly does not impose any -licensing restrictions on your code or binaries. - -The library libgcc.a, which is linked into all code produced with GCC, -is under a special version of the LGPL (as far as I know, you should -check for yourself) which allows the distribution of programs which are -simply linked with unmodified versions of libgcc.a with no licensing -restrictions. - -Thus, using Mingw32, you should be able to produce code with no -licensing restrictions imposed by use of the compiler or libraries. The -Cygwin32 API, and the GNU libraries are another matter and you should -consult their license agreements. - -Again I must stress that I am not a lawyer and the above statements only -reflect my personal understanding of the situation. You would be well -advised to consult the actual text of the appropriate copyright notices -and license agreements if you have any concerns. - - -5. Support - -First of all, the Mingw32 code is supplied AS IS with NO WARRANTY either -EXPRESS or IMPLIED. - -There is also no support staff standing by to take your calls. There -are, however, a few people, including myself, using Mingw32 who might be -able to help you. If you have problems you can email me at -colin@bird.fu.is.saga-u.ac.jp and I will try to get back to you. No -guarantees, but I will do my best. - - -6. Suggestions and Contributions - -If you find a bug in the Mingw32 files themselves then feel free to -report it, or even better to supply a fix, by emailing me at -colin@bird.fu.is.saga-u.ac.jp. Any fixes I receive will probably go into -the next release, and if they seem high-priority I may put the patched -files on my web page until I can make a complete release. Please note -that if you supply code it must be in the public domain or I cannot -include it in Mingw32. Please attach an appropriate legal message to the -code or otherwise make sure that there are no copyright issues. Of -course if you just suggest a possible method for solving a problem or -point out a bug then there should be no need for all that. - -Note that the Win32 API header files are not actually part of the -Mingw32 package. I know there are many bugs and omissions, and I try to -keep informed about them, so I do appreciate mail pointing them out. -However I can’t fix these problems at the source. You should send email -to Scott Christley (the author of the GPL windows32-api) or possibly to -Cygnus. Sending email to me might get me to mention it on my homepage or -fix it in my personal copy of the header files, but that’s about it -(sorry). - -Aside from bug reports, suggestions for improvements, testing of the -header files and otherwise praise or criticism is all welcome in my -inbox. - -Good luck, -Colin Peters (colin@bird.fu.is.saga-u.ac.jp) - diff --git a/winsup/mingw/samples/dirent/jamfile b/winsup/mingw/samples/dirent/jamfile deleted file mode 100644 index 4bfdc2461..000000000 --- a/winsup/mingw/samples/dirent/jamfile +++ /dev/null @@ -1,3 +0,0 @@ - -Main test.exe : test.c ; - diff --git a/winsup/mingw/samples/dirent/test.c b/winsup/mingw/samples/dirent/test.c deleted file mode 100644 index bb4629fea..000000000 --- a/winsup/mingw/samples/dirent/test.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * A test which demonstrates the use of opendir and related functions - * declared in dirent.h. - */ - -#include -#include -#include - -#include - -int -main (int argc, char* argv[]) -{ - int i; - struct dirent* de; - DIR* dir; - long lPos; - - if (argc == 2) - { - printf ("Opening directory \"%s\"\n", argv[1]); - dir = opendir(argv[1]); - } - else - { - printf ("Opening \".\"\n"); - dir = opendir("."); - } - - if (!dir) - { - printf ("Directory open failed!\n"); - if (errno) - { - printf ("Error : %s\n", strerror(errno)); - } - return 1; - } - - i = 0; - lPos = -1; - - while (de = readdir (dir)) - { - i++; - printf ("%d : \"%s\" (tell %ld)\n", i, de->d_name, - telldir(dir)); - - if (i == 3) - { - printf ("We will seek here later.\n"); - lPos = telldir (dir); - } - } - - printf ("Rewind directory.\n"); - rewinddir (dir); - - if (de = readdir (dir)) - { - printf ("First entry : \"%s\"\n", de->d_name); - } - else - { - printf ("Empty directory.\n"); - } - - if (lPos != -1) - { - printf ("Seeking to fourth entry.\n"); - seekdir (dir, lPos); - - if (de = readdir (dir)) - { - printf ("Fourth entry : \"%s\"\n", de->d_name); - } - else - { - printf ("No fourth entry.\n"); - } - } - else - { - printf ("Seek position is past end of directory.\n"); - } - - printf ("Closing directory.\n"); - closedir (dir); -} - diff --git a/winsup/mingw/samples/dlltest/dll.c b/winsup/mingw/samples/dlltest/dll.c deleted file mode 100644 index ba00fab3e..000000000 --- a/winsup/mingw/samples/dlltest/dll.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Source code of the functions inside our test DLL. Note that DllMain is - * not required (it will be provided by the stub in libmingw32.a). - */ - -#if 0 -#include -#endif - -int Add (int x, int y) -{ - printf ("In add!\nx = %d\ny = %d\n", x, y); - return (x + y); -} - - -double __attribute__((stdcall)) Sub (double x, double y) -{ - printf ("In sub!\nx = %f\ny = %f\n", x, y); - return (x - y); -} - diff --git a/winsup/mingw/samples/dlltest/dll.def b/winsup/mingw/samples/dlltest/dll.def deleted file mode 100644 index 4572319b3..000000000 --- a/winsup/mingw/samples/dlltest/dll.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS -Add -Sub@16 diff --git a/winsup/mingw/samples/dlltest/dll.h b/winsup/mingw/samples/dlltest/dll.h deleted file mode 100644 index 35faa4c32..000000000 --- a/winsup/mingw/samples/dlltest/dll.h +++ /dev/null @@ -1,4 +0,0 @@ - -int Add (int x, int y); -double __attribute__((stdcall)) Sub (double x, double y); - diff --git a/winsup/mingw/samples/dlltest/exe.c b/winsup/mingw/samples/dlltest/exe.c deleted file mode 100644 index 06a580a67..000000000 --- a/winsup/mingw/samples/dlltest/exe.c +++ /dev/null @@ -1,23 +0,0 @@ -#include - -#include "dll.h" - -int main() -{ - int i, j, k; - double dk; - - i = 10; - j = 13; - - k = Add(i, j); - - printf ("%d + %d = %d\n", i, j, k); - - dk = Sub(i, j); - - printf ("%d - %d = %f\n", i, j, dk); - - return 0; -} - diff --git a/winsup/mingw/samples/dlltest/exe.exp b/winsup/mingw/samples/dlltest/exe.exp deleted file mode 100644 index 584b5306b..000000000 --- a/winsup/mingw/samples/dlltest/exe.exp +++ /dev/null @@ -1,8 +0,0 @@ -In add! -x = 10 -y = 13 -10 + 13 = 23 -In sub! -x = 10 -y = 13 -10 - 13 = -3 diff --git a/winsup/mingw/samples/dlltest/expexe.c b/winsup/mingw/samples/dlltest/expexe.c deleted file mode 100644 index 10a8f08b1..000000000 --- a/winsup/mingw/samples/dlltest/expexe.c +++ /dev/null @@ -1,17 +0,0 @@ - -#include - -int -ExportedFromExe () -{ - printf ("This output produced by ExportedFromExe.\n"); - return 0; -} - -int main() -{ - printf ("Hello, world\n"); - - return 0; -} - diff --git a/winsup/mingw/samples/dlltest/expexe.def b/winsup/mingw/samples/dlltest/expexe.def deleted file mode 100644 index fa0aa2856..000000000 --- a/winsup/mingw/samples/dlltest/expexe.def +++ /dev/null @@ -1,2 +0,0 @@ -EXPORTS -ExportedFromExe diff --git a/winsup/mingw/samples/dlltest/jamfile b/winsup/mingw/samples/dlltest/jamfile deleted file mode 100644 index 5278d0379..000000000 --- a/winsup/mingw/samples/dlltest/jamfile +++ /dev/null @@ -1,46 +0,0 @@ - -# This option is required to successfully return doubles via STDCALL as in -# Sub function in dll.c. -CCFLAGS = -mno-fp-ret-in-387 ; - -Main exe.exe : exe.c ; - -LinkLibraries exe.exe : libdll.a ; - -DEPENDS exe.exe : dll.dll ; - -LINKFLAGS on exe.exe = $(LINKFLAGS) -L. ; - - -Main loaddll.exe : loaddll.c ; - -DEPENDS loaddll.exe : dll.dll ; - - -Dll dll.dll : dll.c ; - -ImportLib libdll.a : dll.def ; - - -Main expexe.exe : expexe.c ; - -# Force the executable to include the expexe.def file. -Exports expexe.exe : expexe.def ; - -Main loadexe.exe : loadexe.c ; - -DEPENDS loadexe.exe : expexe.exe ; - - -Main silly.exe : silly.cpp ; - -LinkLibraries silly.exe : libsilly.a ; - -DEPENDS silly.exe : silly.dll ; - -LINKFLAGS on silly.exe += -L. ; - -Dll silly.dll : sillydll.cpp ; - -ImportLib libsilly.a : silly.def ; - diff --git a/winsup/mingw/samples/dlltest/loaddll.c b/winsup/mingw/samples/dlltest/loaddll.c deleted file mode 100644 index bbb34a3c9..000000000 --- a/winsup/mingw/samples/dlltest/loaddll.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * This version attempts to load dll.dll dynamically, get the address of the - * Add function, and then call it. - */ - -#include -#include - -int (*Add)(int x, int y); - -int main() -{ - HINSTANCE hDll; - int i, j, k; - - hDll = LoadLibrary ("dll.dll"); - if (!hDll) - { - printf ("Error %d loading dll.\n", GetLastError()); - exit (-1); - } - - if (!(Add = GetProcAddress (hDll, "Add"))) - { - printf ("Error %d getting Add function.\n", GetLastError()); - exit (-1); - } - - i = 10; - j = 13; - - k = Add(i, j); - - printf ("i %d, j %d, k %d\n", i, j, k); - - FreeLibrary (hDll); - - return 0; -} - diff --git a/winsup/mingw/samples/dlltest/loadexe.c b/winsup/mingw/samples/dlltest/loadexe.c deleted file mode 100644 index c5a84dc01..000000000 --- a/winsup/mingw/samples/dlltest/loadexe.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * This program attempts to load expexe.exe dynamically, get the address of the - * ExportedFromExe function, and then call it. - * - * This example DOES NOT WORK! I don't know exactly what can be done, but - * it simply seems that LoadLibrary refuses to load executables. - */ - -#include -#include - -int (*ExportedFromExe)(); - -int main() -{ - HINSTANCE hDll; - int i, j, k; - - hDll = LoadLibrary ("expexe.exe"); - if (!hDll) - { - printf ("Error %d loading exe.\n", GetLastError()); - exit (-1); - } - - if (!(ExportedFromExe = GetProcAddress (hDll, "ExportedFromExe"))) - { - printf ("Error %d getting ExportedFromExe function.\n", - GetLastError()); - exit (-1); - } - else - { - ExportedFromExe (); - } - - /* NOTE: Unlike a DLL the exe doesn't have an entry point which - * initializes global objects and adds __do_global_dtors to - * the atexit list. Thus it should be safe(?) to free the - * library. Of course, this also makes it unsafe to use - * executables at all in this manner. - */ - FreeLibrary (hDll); - - return 0; -} - diff --git a/winsup/mingw/samples/dlltest/readme.txt b/winsup/mingw/samples/dlltest/readme.txt deleted file mode 100644 index a46dd23a5..000000000 --- a/winsup/mingw/samples/dlltest/readme.txt +++ /dev/null @@ -1,39 +0,0 @@ -This directory contains two examples of building DLLs. The exe.c and dll.c -files are used to build a very simple example DLL with a function that -adds two numbers together (and prints some text at the same time). The -exe.c program links to the DLL and prints the results of the function -call. - -The C++ example "silly" is more interesting because it involves a DLL which -contains the code for a C++ class. The CSilly class has all of its code in -the sillydll.cpp source file, which is used to build the silly.dll. The -silly.cpp source code builds the main silly.exe executable which makes a -dynamic instance of the object and calls its member functions. - -The C++ silly.def file was generated by doing a nm of sillydll.o after it -was generated and then getting the symbol names from that. Removing the -leading underscore produces the appropriate name to include in the EXPORTS -section. Notice there are a few weird functions. - -Since there are now several different versions of the GNU compiler capable -of doing this, and they each seem to have different requirements for exports -for classes, it has gotten kind of messy. The silly.def file here is for -use with the native Mingw32 build of the EGCS version of GCC. The silly.def.old -file was the def file I used when I was using Jan-Jaap's Mingw32 native port -of GCC. The Cygnus version is different again, if I recall correctly, but I -don't have it hanging around anymore. - -The jamfile builds all the components from the raw sources. - -The expected output of exe.exe and silly.exe are in the files exe.exp -and silly.exp. - - -The source code in this directory is in the PUBLIC DOMAIN and can be -used or abused as you see fit. There is NO WARRANTY for this code, -including (but not limited to) implied warranties of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. - - -Colin Peters - diff --git a/winsup/mingw/samples/dlltest/silly.cpp b/winsup/mingw/samples/dlltest/silly.cpp deleted file mode 100644 index 70f5af5c7..000000000 --- a/winsup/mingw/samples/dlltest/silly.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// -// C++ test of a dll which contains a C++ class. -// - -#include -#include - -// Interface of class. -#include "silly.h" - -#ifdef DERIVED_TEST -// Here is a derived class too. -class CMoreSilly : public CSilly -{ - public: - CMoreSilly (char* szNewName) : CSilly (szNewName) {}; - ~CMoreSilly (); - - WhatsYourName(); -}; - -CMoreSilly:: -~CMoreSilly () -{ - printf ("In CMoreSilly \"%s\" destructor!\n", szName); -} - -CMoreSilly:: -WhatsYourName () -{ - printf ("I'm more silly and my name is \"%s\"\n", szName); -} -#endif - -int -main () -{ - CSilly* psilly = new CSilly("silly"); - - psilly->WhatsYourName(); - psilly->Poke(); // Poke him, he should say "Ouch!" - psilly->Stab(4); // Stab him four times he should say "Ugh!!!!" - - delete psilly; - -#ifdef DERIVED_TEST - psilly = new CMoreSilly("more silly"); - psilly->WhatsYourName(); - psilly->Stab(5); - delete psilly; -#endif - - return 0; -} - diff --git a/winsup/mingw/samples/dlltest/silly.def b/winsup/mingw/samples/dlltest/silly.def deleted file mode 100644 index 6733e5df7..000000000 --- a/winsup/mingw/samples/dlltest/silly.def +++ /dev/null @@ -1,11 +0,0 @@ -EXPORTS -DllMain@12 -Poke__6CSilly -Stab__6CSillyi -WhatsYourName__6CSilly -_$_6CSilly -__6CSilly -__6CSillyPc -__tf6CSilly -__ti6CSilly -_vt$6CSilly diff --git a/winsup/mingw/samples/dlltest/silly.exp b/winsup/mingw/samples/dlltest/silly.exp deleted file mode 100644 index 386e81c1c..000000000 --- a/winsup/mingw/samples/dlltest/silly.exp +++ /dev/null @@ -1,8 +0,0 @@ -I'm silly. -Ouch! -Ugh!!!! -In CSilly destructor. -I'm more silly and my name is "more silly" -Ugh!!!!! -In CMoreSilly "more silly" destructor! -In CSilly destructor. diff --git a/winsup/mingw/samples/dlltest/silly.h b/winsup/mingw/samples/dlltest/silly.h deleted file mode 100644 index 007b0f5d7..000000000 --- a/winsup/mingw/samples/dlltest/silly.h +++ /dev/null @@ -1,27 +0,0 @@ - -#define DERIVED_TEST 1 - -class CSilly -{ - protected: - char* szName; - - public: - CSilly(); - CSilly(char* szName); -#ifdef DERIVED_TEST - virtual ~CSilly(); -#else - ~CSilly(); -#endif - - Poke (); - Stab (int nTimes); -#ifdef DERIVED_TEST - virtual WhatsYourName (); -#else - WhatsYourName (); -#endif - -}; - diff --git a/winsup/mingw/samples/dlltest/sillydll.cpp b/winsup/mingw/samples/dlltest/sillydll.cpp deleted file mode 100644 index bd5ccea30..000000000 --- a/winsup/mingw/samples/dlltest/sillydll.cpp +++ /dev/null @@ -1,107 +0,0 @@ - -#include -#include -#include -#include - - -#if 0 -#define STREAMS_VERSION -#endif - -#if defined(STREAMS_VERSION) -#include -#endif - -#include "silly.h" - -extern "C" -BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved) -{ - return TRUE; -} - -CSilly:: -CSilly() -{ - szName = NULL; -} - -CSilly:: -CSilly(char* new_szName) -{ - szName = new char[strlen(new_szName)+1]; - - if (szName) - { - strcpy (szName, new_szName); - } -} - -CSilly:: -~CSilly() -{ - printf ("In CSilly destructor.\n"); - if (szName) - { - delete szName; - } -} - -CSilly:: -Poke () -{ -#ifndef STREAMS_VERSION - printf ("Ouch!\n"); -#else - cout << "Ouch!" << endl; -#endif -} - -CSilly:: -Stab (int nTimes) -{ -#ifndef STREAMS_VERSION - printf ("Ugh"); -#else - cout << "Ugh"; -#endif - - int i; - for (i = 0; i < nTimes; i++) - { -#ifndef STREAMS_VERSION - putchar('!'); -#else - cout << '!' ; -#endif - } - -#ifndef STREAMS_VERSION - putchar('\n'); -#else - cout << endl; -#endif -} - -CSilly:: -WhatsYourName () -{ - if (szName) - { -#ifndef STREAMS_VERSION - printf ("I'm %s.\n", szName); -#else - cout << "I'm " << szName << "." << endl; -#endif - } - else - { -#ifndef STREAMS_VERSION - printf ("I have no name.\n"); -#else - cout << "I have no name." << endl; -#endif - } -} - diff --git a/winsup/mingw/samples/filehand/filehand.c b/winsup/mingw/samples/filehand/filehand.c deleted file mode 100644 index 24e048c52..000000000 --- a/winsup/mingw/samples/filehand/filehand.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * An example showing how you can obtain the UNIX-ish file number from a - * FILE* and in turn how you can get the Win32 HANDLE of the file from - * the file number. - * - * This code is in the PUBLIC DOMAIN and has NO WARRANTY. - * - * Colin Peters - */ - -#include -#include -#include - -int -main (int argc, char* argv[]) -{ - char* szFileName; - FILE* fileIn; - int fnIn; - HANDLE hFileIn; - char caBuf[81]; - int nRead; - - if (argc >= 2) - { - szFileName = argv[1]; - } - else - { - szFileName = "junk.txt"; - } - - fileIn = fopen (szFileName, "r"); - - if (!fileIn) - { - printf ("Could not open %s for reading\n", szFileName); - exit(1); - } - - fnIn = fileno (fileIn); - hFileIn = (HANDLE) _get_osfhandle (fnIn); - - printf ("OS file handle %d\n", (int) hFileIn); - - ReadFile (hFileIn, caBuf, 80, &nRead, NULL); - - printf ("Read %d bytes using ReadFile.\n", nRead); - - caBuf[nRead] = '\0'; - - printf ("\"%s\"\n", caBuf); - - fclose (fileIn); -} - diff --git a/winsup/mingw/samples/filehand/jamfile b/winsup/mingw/samples/filehand/jamfile deleted file mode 100644 index 6f29c3758..000000000 --- a/winsup/mingw/samples/filehand/jamfile +++ /dev/null @@ -1,3 +0,0 @@ - -Main filehand.exe : filehand.c ; - diff --git a/winsup/mingw/samples/filehand/junk.txt b/winsup/mingw/samples/filehand/junk.txt deleted file mode 100644 index f933c546e..000000000 --- a/winsup/mingw/samples/filehand/junk.txt +++ /dev/null @@ -1 +0,0 @@ -This is a test file. diff --git a/winsup/mingw/samples/fixargv/fixargv.c b/winsup/mingw/samples/fixargv/fixargv.c deleted file mode 100644 index 50c24cd06..000000000 --- a/winsup/mingw/samples/fixargv/fixargv.c +++ /dev/null @@ -1,290 +0,0 @@ -/* - * fixargv.c - * - * A special function which "fixes" an argv array by replacing arguments - * that need quoting with quoted versions. - * - * NOTE: In order to be reasonably consistent there is some misuse of the - * const keyword here-- which leads to compilation warnings. These - * should be ok to ignore. - * - * This is a sample distributed as part of the Mingw32 package. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#include -#include "fixargv.h" - -/* - * This takes a single string and fixes it, enclosing it in quotes if it - * contains any spaces and/or escaping the quotes it contains. - */ -char* -fix_arg (const char* szArg) -{ - int nQuoteAll; /* Does the whole arg need quoting? */ - int nBkSlRun; /* How may backslashes in a row? */ - char* sz; - char* szNew; - size_t sizeLen; - - nQuoteAll = 0; - nBkSlRun = 0; - sz = szArg; - sizeLen = 1; - - /* First we figure out how much bigger the new string has to be - * than the old one. */ - while (*sz != '\0') - { - /* - * Arguments containing whitespace of wildcards will be - * quoted to preserve tokenization and/or those special - * characters (i.e. wildcarding will NOT be done at the - * other end-- they will get the * and ? characters as is). - * TODO: Is this the best way? Do we want to enable wildcards? - * If so, when? - */ - if (!nQuoteAll && - (*sz == ' ' || *sz == '\t' || *sz == '*' || *sz == '?')) - { - nQuoteAll = 1; - } - else if (*sz == '\\') - { - nBkSlRun++; - } - else - { - if (*sz == '\"') - { - sizeLen += nBkSlRun + 1; - } - nBkSlRun = 0; - } - - sizeLen++; - sz++; - } - - if (nQuoteAll) - { - sizeLen += 2; - } - - /* - * Make a new string big enough. - */ - szNew = (char*) malloc (sizeLen); - if (!szNew) - { - return NULL; - } - sz = szNew; - - /* First enclosing quote for fully quoted args. */ - if (nQuoteAll) - { - *sz = '\"'; - sz++; - } - - /* - * Go through the string putting backslashes in front of quotes, - * and doubling all backslashes immediately in front of quotes. - */ - nBkSlRun = 0; - while (*szArg != '\0') - { - if (*szArg == '\\') - { - nBkSlRun++; - } - else - { - if (*szArg == '\"') - { - while (nBkSlRun > 0) - { - *sz = '\\'; - sz++; - nBkSlRun--; - } - *sz = '\\'; - sz++; - } - nBkSlRun = 0; - } - - *sz = *szArg; - sz++; - szArg++; - } - - /* Closing quote for fully quoted args. */ - if (nQuoteAll) - { - *sz = '\"'; - sz++; - } - - *sz = '\0'; - return szNew; -} - -/* - * Takes argc and argv and returns a new argv with escaped members. Pass - * this fixed argv (along with the old one) to free_fixed_argv after - * you finish with it. Pass in an argc of -1 and make sure the argv vector - * ends with a null pointer to have fix_argv count the arguments for you. - */ -char* const* -fix_argv (int argc, char* const* szaArgv) -{ - char** szaNew; - char* sz; - int i; - - if (!szaArgv) - { - return NULL; - } - - /* - * Count the arguments if asked. - */ - if (argc == -1) - { - for (i = 0; szaArgv[i]; i++) - ; - - argc = i; - } - - /* - * If there are no args or only one arg then do no escaping. - */ - if (argc < 2) - { - return szaArgv; - } - - for (i = 1, szaNew = NULL; i < argc; i++) - { - sz = szaArgv[i]; - - /* - * If an argument needs fixing, then fix it. - */ - if (strpbrk (sz, "\" \t*?")) - { - /* - * If we haven't created a new argv list already - * then make one. - */ - if (!szaNew) - { - szaNew = (char**) malloc ((argc + 1) * - sizeof (char*)); - if (!szaNew) - { - return NULL; - } - - /* - * Copy previous args from old to new. - */ - memcpy (szaNew, szaArgv, sizeof(char*) * i); - } - - /* - * Now do the fixing. - */ - szaNew[i] = fix_arg (sz); - if (!szaNew[i]) - { - /* Fixing failed, free up and return error. */ - free_fixed_argv (szaNew, szaArgv); - return NULL; - } - } - else if (szaNew) - { - szaNew[i] = sz; - } - } - - if (szaNew) - { - /* If we have created a new argv list then we might as well - * terminate it nicely. (And we depend on it in - * free_fixed_argv.) */ - szaNew[argc] = NULL; - } - else - { - /* If we didn't create a new argv list then return the - * original. */ - return szaArgv; - } - - return szaNew; -} - -void -free_fixed_argv (char* const* szaFixed, char* const* szaOld) -{ - char* const* sza; - - /* - * Check for error conditions. Also note that if no corrections - * were required the fixed argv will actually be the same as - * the old one, and we don't need to do anything. - */ - if (!szaFixed || !szaOld || szaFixed == szaOld) - { - return; - } - - /* - * Go through all members of the argv list. If any of the - * members in the fixed list are different from the old - * list we free those members. - * NOTE: The first member is never modified, so we don't need to - * check. - */ - sza = szaFixed + 1; - szaOld++; - while (*sza) - { - if (*sza != *szaOld) - { - free (*sza); - } - sza++; - szaOld++; - } - - /* - * Now we can free the array of char pointers itself. - */ - free (szaFixed); -} - diff --git a/winsup/mingw/samples/fixargv/fixargv.h b/winsup/mingw/samples/fixargv/fixargv.h deleted file mode 100644 index 0e6222660..000000000 --- a/winsup/mingw/samples/fixargv/fixargv.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * fixargv.h - * - * Prototypes of utility functions for 'properly' escaping argv vectors. - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#ifndef _FIXARGV_H_ -#define _FIXARGV_H_ - -char* fix_arg (const char* szArg); -char* const* fix_argv (int argc, char* const* szaArgv); -void free_fixed_argv (char* const* szaFixed, char* const* szaOld); - -#endif diff --git a/winsup/mingw/samples/fixargv/readme.txt b/winsup/mingw/samples/fixargv/readme.txt deleted file mode 100644 index 14048f534..000000000 --- a/winsup/mingw/samples/fixargv/readme.txt +++ /dev/null @@ -1,85 +0,0 @@ - -This code is a utility function I was considering adding to Mingw32. The -Microsoft versions of argc, argv construction use quotes and backslashes -to allow the user to pass arguments containing spaces (or quotes) to -programs they invoke. The rules are - - - Arguments containing spaces must be enclosed in quotes. - - A quote can be passed by preceeding it with a backslash. - - Backslashes immediately preceeding a quote must be doubled to avoid - escaping the quote. - -Thus an argument like: - - -D="Foo Bar\\" - -needs to be mangled as: - - "-D\"Foo Bar\\\\\"" - -in order to get to the program as what was intended above. - -The fix_argv set of functions is meant to be used with spawnv and the -like to allow a program to set up an argv array for the spawned program -and have that array duplicated *exactly* in the spawned program, no -matter what it contains (it also quotes 'globbing' characters like * -and ?, so it does not matter if the destination has globbing turned on -or not; it might be a reasonable extension to allow a flag to allow -globbing characters to pass through unmolested, but they would still -be quoted if the string contained whitespace). - -The reason for writing this came up because of problems with arguments -like -DBLAH="Foo Bar" to GCC (define BLAH as a preprocessor constant -being the string "Foo Bar", including the quotes). Because GCC simply -passes the argument directly to CPP (the preprocessor) it had to be -escaped *twice*: - - "-DBLAH=\"\\\"Foo Bar\\\"\"" - -This would reach GCC as - - -DBLAH="\"Foo Bar\"" - -And that would reach CPP as the desired - - -DBLAH="Foo Bar" - -One level of quoting and escaping is to be expected (although MS's -standard is, arguably, not very good), but forcing the user to know -how many different programs the argument is going to pass through, -and perform double quoting and escaping, seems unreasonable. If -GCC and friends all used fix_argv (they use their own version of -it now) then the original argument could be - - "-DBLAH=\"Foo Bar\"" - -And that would work fine, no matter how many different tools it -passed through. - -The only basic limitation with this code is that it assumes that all -the spawned programs use Microsoft-type escaping when interpreting -their command line. Most programs on Win32 machines do (anything -compiled with Mingw32 will). - -For now, this code has been relegated to 'sample' status. If you want -to use it, feel free (it is public domain after all). - -Colin. - -P.S. Just out of interest you might try writing your own little program - to look at the interaction of wildcards and quotes. Use the glob.exe - program in ../globbing and see what it does with - - glob "foo*.txt" - - even if there are files foo.txt and foobar.txt in the same directory. - - Note that - - del "My *.txt" - - works (i.e. it deletes all files starting with My). This could - not be done unless del does globbing *after* processing escapes and - quotes, which is not the way it seems to work normally (again see - the glob example). - diff --git a/winsup/mingw/samples/fmode/all.c b/winsup/mingw/samples/fmode/all.c deleted file mode 100644 index 52f93d1c1..000000000 --- a/winsup/mingw/samples/fmode/all.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * A sample program demonstrating how to use _CRT_fmode to change the default - * file opening mode to binary AND change stdin, stdout and stderr. Redirect - * stdout to a file from the command line to see the difference. - * - * Also try directing a file into stdin. If you type into stdin you will get - * \r\n at the end of every line... unlike UNIX. But at least if you - * redirect a file in you will get exactly the characters in the file as input. - * - * THIS CODE IS IN THE PUBLIC DOMAIN. - * - * Colin Peters - */ - -#include -#include - -unsigned int _CRT_fmode = _O_BINARY; - -main () -{ - char* sz = "This is line one.\nThis is line two.\n"; - FILE* fp; - int c; - - printf (sz); - - /* Note how this fopen does NOT indicate "wb" to open the file in - * binary mode. */ - fp = fopen ("all.out", "w"); - - fprintf (fp, sz); - - fclose (fp); - - if (_isatty (_fileno(stdin))) - { - fprintf (stderr, "Waiting for input, press Ctrl-Z to finish.\n"); - } - - while ((c = fgetc(stdin)) != EOF) - { - printf ("\'%c\' %02X\n", (char) c, c); - } -} - diff --git a/winsup/mingw/samples/fmode/jamfile b/winsup/mingw/samples/fmode/jamfile deleted file mode 100644 index 2c7f7d32f..000000000 --- a/winsup/mingw/samples/fmode/jamfile +++ /dev/null @@ -1,5 +0,0 @@ - -Main test.exe : test.c ; - -Main all.exe : all.c ; - diff --git a/winsup/mingw/samples/fmode/readme.txt b/winsup/mingw/samples/fmode/readme.txt deleted file mode 100644 index 873b853d3..000000000 --- a/winsup/mingw/samples/fmode/readme.txt +++ /dev/null @@ -1,5 +0,0 @@ - -These two demos show how _fmode and _CRT_fmode can be used to modify the -default file opening mode (text vs. binary) and/or the mode of the standard -file handles. - diff --git a/winsup/mingw/samples/fmode/test.c b/winsup/mingw/samples/fmode/test.c deleted file mode 100644 index f19e7e0ec..000000000 --- a/winsup/mingw/samples/fmode/test.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * A sample program demonstrating how to use fmode to change the default - * file opening mode to binary. NOTE: Does not change stdin, stdout or - * stderr. - * - * THIS CODE IS IN THE PUBLIC DOMAIN. - * - * Colin Peters - */ - -#include -#include /* Required to get _fmode and _O_BINARY */ - -main () -{ - char* sz = "This is line one.\nThis is line two.\n"; - FILE* fp; - - _fmode = _O_BINARY; - - printf (sz); - - /* Note how this fopen does NOT indicate "wb" to open the file in - * binary mode. */ - fp = fopen ("test.out", "w"); - - fprintf (fp, sz); - - fclose (fp); -} - diff --git a/winsup/mingw/samples/globbing/glob.c b/winsup/mingw/samples/globbing/glob.c deleted file mode 100644 index 6bf8acaee..000000000 --- a/winsup/mingw/samples/globbing/glob.c +++ /dev/null @@ -1,20 +0,0 @@ - -#include -#include -#include - -int -main (int argc, char* argv[]) -{ - int i; - - printf ("Command line (via GetCommandLine) \"%s\"\n", - GetCommandLine()); - - for (i = 0; i < argc; i++) - { - printf ("Argv[%d] \"%s\"\n", i, argv[i]); - } - - return 0; -} diff --git a/winsup/mingw/samples/globbing/jamfile b/winsup/mingw/samples/globbing/jamfile deleted file mode 100644 index ff3a585d6..000000000 --- a/winsup/mingw/samples/globbing/jamfile +++ /dev/null @@ -1,11 +0,0 @@ - -Object glob.o : glob.c ; - -MainFromObjects glob.exe : glob.o ; - -Main noglob.exe : noglob.c ; - -LIBDIR = \\mingw32\\lib\\ ; - -MainFromObjects CRTnoglob.exe : glob.o $(LIBDIR)CRT_noglob.o ; - diff --git a/winsup/mingw/samples/globbing/noglob.c b/winsup/mingw/samples/globbing/noglob.c deleted file mode 100644 index 8bc4c82a3..000000000 --- a/winsup/mingw/samples/globbing/noglob.c +++ /dev/null @@ -1,22 +0,0 @@ - -#include -#include -#include - -/* This line turns off automatic command line globbing. */ -int _CRT_glob = 0; - -int -main (int argc, char* argv[]) -{ - int i; - - printf ("Command line (via GetCommandLine) \"%s\"\n", - GetCommandLine()); - for (i = 0; i < argc; i++) - { - printf ("Argv[%d] \"%s\"\n", i, argv[i]); - } - - return 0; -} diff --git a/winsup/mingw/samples/globbing/readme.txt b/winsup/mingw/samples/globbing/readme.txt deleted file mode 100644 index 5e20de826..000000000 --- a/winsup/mingw/samples/globbing/readme.txt +++ /dev/null @@ -1,14 +0,0 @@ - -This directory contains samples which demonstrate default (globbing on) -behavior, how to turn the globbing off with the _CRT_glob variable, and -how to turn it off with the CRT_noglob object file. - -Run jam and then run glob, noglob and CRTnoglob with an argument like -*.* to see the difference. - -The code in this directory is in the PUBLIC DOMAIN. It has NO WARRANTY, -including, but not restricted to, warranties of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. - -Colin Peters . - diff --git a/winsup/mingw/samples/print/jamfile b/winsup/mingw/samples/print/jamfile deleted file mode 100644 index f5395339d..000000000 --- a/winsup/mingw/samples/print/jamfile +++ /dev/null @@ -1,9 +0,0 @@ -# -# A simple example which prints a message on a selected printer. This won't -# work right unless you make PRINTDLG a packed structure! -# - -Main prntest.exe : prntest.c ; - -Gui prntest.exe ; - diff --git a/winsup/mingw/samples/print/prntest.c b/winsup/mingw/samples/print/prntest.c deleted file mode 100644 index 801d1d885..000000000 --- a/winsup/mingw/samples/print/prntest.c +++ /dev/null @@ -1,65 +0,0 @@ - -#include -#include -#include -#include - -main () -{ - PRINTDLG pd; - DOCINFO di; - char* szMessage; - - memset (&pd, 0, sizeof(PRINTDLG)); - memset (&di, 0, sizeof(DOCINFO)); - - di.cbSize = sizeof(DOCINFO); - di.lpszDocName = "Test"; - - pd.lStructSize = sizeof(PRINTDLG); - pd.Flags = PD_PAGENUMS | PD_RETURNDC; - pd.nFromPage = 1; - pd.nToPage = 1; - pd.nMinPage = 1; - pd.nMaxPage = 1; - - szMessage = 0; - - if (PrintDlg (&pd)) - { - if (pd.hDC) - { - if (StartDoc (pd.hDC, &di) != SP_ERROR) - { - StartPage (pd.hDC); - - TextOut (pd.hDC, 0, 0, "Hello, printer!", 15); - - EndPage (pd.hDC); - - EndDoc (pd.hDC); - - szMessage = "Printed."; - } - else - { - szMessage = "Could not start document."; - } - } - else - { - szMessage = "Could not create device context."; - } - } - else - { - szMessage = "Canceled or printer could not be setup."; - } - - if (szMessage) - { - MessageBox (NULL, szMessage, "Print Test", MB_OK); - } - - return 0; -} diff --git a/winsup/mingw/samples/seh/eh3.c b/winsup/mingw/samples/seh/eh3.c deleted file mode 100644 index e00201904..000000000 --- a/winsup/mingw/samples/seh/eh3.c +++ /dev/null @@ -1,112 +0,0 @@ -int -__except_handler3( - struct _EXCEPTION_RECORD* pExceptionRecord, - struct EXCEPTION_REGISTRATION* pRegistrationFrame, - struct _CONTEXT* pContextRecord, - void* pDispatcherContext - ) -{ - LONG filterFuncRet; - LONG trylevel; - EXCEPTION_POINTERS exceptPtrs; - PSCOPETABLE pScopeTable; - - - CLD // Clear the direction flag (make no assumptions!) - - // if neither the EXCEPTION_UNWINDING nor EXCEPTION_EXIT_UNWIND bit - // is set... This is true the first time through the handler (the - // non-unwinding case) - - if ( ! (pExceptionRecord->ExceptionFlags - & (EXCEPTION_UNWINDING | EXCEPTION_EXIT_UNWIND) - ) ) - { - // Build the EXCEPTION_POINTERS structure on the stack - exceptPtrs.ExceptionRecord = pExceptionRecord; - exceptPtrs.ContextRecord = pContextRecord; - - // Put the pointer to the EXCEPTION_POINTERS 4 bytes below the - // establisher frame. See ASM code for GetExceptionInformation - *(PDWORD)((PBYTE)pRegistrationFrame - 4) = &exceptPtrs; - - // Get initial "trylevel" value - trylevel = pRegistrationFrame->trylevel - - // Get a pointer to the scopetable array - scopeTable = pRegistrationFrame->scopetable; - -search_for_handler: - if ( pRegistrationFrame->trylevel != TRYLEVEL_NONE ) - { - if ( pRegistrationFrame->scopetable[trylevel].lpfnFilter ) - { - - PUSH EBP // Save this frame EBP - - // !!!Very Important!!! Switch to original EBP. This is - // what allows all locals in the frame to have the same - // value as before the exception occurred. - - EBP = &pRegistrationFrame->_ebp - - // Call the filter function - filterFuncRet = scopetable[trylevel].lpfnFilter(); - - POP EBP // Restore handler frame EBP - - if ( filterFuncRet != EXCEPTION_CONTINUE_SEARCH ) - { - if ( filterFuncRet < 0 ) // EXCEPTION_CONTINUE_EXECUTION - return ExceptionContinueExecution; - - // If we get here, EXCEPTION_EXECUTE_HANDLER was specified - scopetable == pRegistrationFrame->scopetable - - // Does the actual OS cleanup of registration frames - // Causes this function to recurse - __global_unwind2( pRegistrationFrame ); - - - // Once we get here, everything is all cleaned up, except - // for the last frame, where we'll continue execution - EBP = &pRegistrationFrame->_ebp - - __local_unwind2( pRegistrationFrame, trylevel ); - - // NLG == "non-local-goto" (setjmp/longjmp stuff) - __NLG_Notify( 1 ); // EAX == scopetable->lpfnHandler - - // Set the current trylevel to whatever SCOPETABLE entry - // was being used when a handler was found - pRegistrationFrame->trylevel = scopetable->previousTryLevel; - - // Call the _except {} block. Never returns. - pRegistrationFrame->scopetable[trylevel].lpfnHandler(); - } - } - - scopeTable = pRegistrationFrame->scopetable; - trylevel = scopeTable->previousTryLevel - - goto search_for_handler; - } - else // trylevel == TRYLEVEL_NONE - { - retvalue == DISPOSITION_CONTINUE_SEARCH; - } - } - else // EXCEPTION_UNWINDING or EXCEPTION_EXIT_UNWIND flags are set - { - PUSH EBP // Save EBP - - EBP = pRegistrationFrame->_ebp // Set EBP for __local_unwind2 - - __local_unwind2( pRegistrationFrame, TRYLEVEL_NONE ) - - POP EBP // Restore EBP - - retvalue == DISPOSITION_CONTINUE_SEARCH; - } -} - diff --git a/winsup/mingw/samples/seh/exutil.c b/winsup/mingw/samples/seh/exutil.c deleted file mode 100644 index 9d98d8350..000000000 --- a/winsup/mingw/samples/seh/exutil.c +++ /dev/null @@ -1,68 +0,0 @@ - -#include -#include -#include -#include - -#include "exutil.h" - -void -WalkExceptionHandlers () -{ - PEXCEPTION_REGISTRATION_RECORD p; - int i; - - __asm__("movl %%fs:0,%%eax;movl %%eax,%0" : "=g" (p) : : "%eax"); - - i = 0; - while (p != (PEXCEPTION_REGISTRATION_RECORD) -1 && p) - { - printf ("Registration %d at %08x : ", i, p); - printf ("Handler = %08x ", p->handler); - printf ("Next Registration = %08x\n", p->prev); - p = p->prev; - i++; - } - printf ("End of exception handler list.\n"); - fflush (stdout); -} - -void -DumpExceptionRecord (struct _EXCEPTION_RECORD* pExRec) -{ - printf ("Exception: Code = %08x Flags %08x", pExRec->ExceptionCode, - pExRec->ExceptionFlags); - - if (pExRec->ExceptionFlags) - { - printf (" ( "); - if (pExRec->ExceptionFlags & EH_NONCONTINUABLE) - { - printf ("EH_NONCONTINUABLE "); - } - if (pExRec->ExceptionFlags & EH_UNWINDING) - { - printf ("EH_UNWINDING "); - } - if (pExRec->ExceptionFlags & EH_EXIT_UNWIND) - { - printf ("EH_EXIT_UNWIND "); - } - if (pExRec->ExceptionFlags & EH_STACK_INVALID) - { - printf ("EH_STACK_INVALID "); - } - if (pExRec->ExceptionFlags & EH_NESTED_CALL) - { - printf ("EH_NESTED_CALL "); - } - printf (")\n"); - } - else - { - printf ("\n"); - } - - fflush(stdout); -} - diff --git a/winsup/mingw/samples/seh/exutil.def b/winsup/mingw/samples/seh/exutil.def deleted file mode 100644 index bf20cc14f..000000000 --- a/winsup/mingw/samples/seh/exutil.def +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - WalkExceptionHandlers - DumpExceptionRecord diff --git a/winsup/mingw/samples/seh/exutil.h b/winsup/mingw/samples/seh/exutil.h deleted file mode 100644 index 79937f745..000000000 --- a/winsup/mingw/samples/seh/exutil.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Definitions of some internal stuff for exception handling, including - * a version of the all-important EXCEPTION_REGISTRATION_RECORD. - */ - -#ifndef _EXUTIL_H_ -#define _EXUTIL_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -void WalkExceptionHandlers (); -void DumpExceptionRecord (struct _EXCEPTION_RECORD* pExRec); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/winsup/mingw/samples/seh/jamfile b/winsup/mingw/samples/seh/jamfile deleted file mode 100644 index 72b51b790..000000000 --- a/winsup/mingw/samples/seh/jamfile +++ /dev/null @@ -1,13 +0,0 @@ - -Dll exutil.dll : exutil.c ; - -ImportLib libexutil.a : exutil.def ; - -Main sehtest.exe : sehtest.c ; - -Main sehfix.exe : sehfix.c ; - -Main sehsub.exe : sehsub.c ; - -LinkLibraries sehtest.exe sehfix.exe sehsub.exe : libexutil.a ; - diff --git a/winsup/mingw/samples/seh/sehfix.c b/winsup/mingw/samples/seh/sehfix.c deleted file mode 100644 index 1a414e649..000000000 --- a/winsup/mingw/samples/seh/sehfix.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * sehfix.c - * - * A test program involving an exception handler that fixes the exception - * causing condition. - * - * In this code we install an exception handler my_handler and then a piece - * of inline assembly attempts to write at the address marked in eax, after - * setting eax to 10. This should produce an exception. The handler then - * changes the eax register of the exception context to be the address of - * a static variable and restarts the code. This should allow everything - * to continue. - */ - -#include -#include - -#include "exutil.h" - -int x; - -EXCEPTION_DISPOSITION -my_handler ( - struct _EXCEPTION_RECORD* pExceptionRec, - void* pEstablisherFrame, - struct _CONTEXT* pContextRecord, - void* pDispatcherContext - ) -{ - printf ("In my exception handler!\n"); - DumpExceptionRecord (pExceptionRec); - pContextRecord->Eax = (DWORD) &x; - return ExceptionContinueExecution; -} - -main () -{ - x = 2; - - printf ("x = %d\n", x); - - WalkExceptionHandlers(); - - __try1(my_handler) - - WalkExceptionHandlers(); - - /* This assembly code should produce an exception. */ - __asm__("movl $10,%%eax;movl $1,(%%eax);" : : : "%eax"); - - __except1 - - WalkExceptionHandlers(); - - printf ("x = %d\n", x); - - printf ("Finished!\n"); -} - - diff --git a/winsup/mingw/samples/seh/sehsub.c b/winsup/mingw/samples/seh/sehsub.c deleted file mode 100644 index d2442850a..000000000 --- a/winsup/mingw/samples/seh/sehsub.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * sehsub.c - * - * In an attempt to see what might be going on inside CRTDLL, this program - * walks the exception list after creating a new thread with _beginthread. - * - * It turns out that _beginthread DOES install an exception handler, as - * expected, but this handler is NOT exported by CRTDLL (it is certainly - * not _except_handler2 or _XcptFilter)... an odd and unpleasant turn of - * events. - */ - -#include -#include -#include - -#include "exutil.h" - -extern void* __imp__except_handler3; - -unsigned -my_thread (void * p) -{ - printf ("In my thread.\n"); - WalkExceptionHandlers(); - return 0; -} - -main () -{ - unsigned long h; - unsigned id; - printf ("In main.\n"); - WalkExceptionHandlers(); - - printf ("Except_handler3 %08x\n", __imp__except_handler3); - h = _beginthreadex (NULL, 0, my_thread, NULL, 0, &id); - - WaitForSingleObject ((HANDLE) h, INFINITE); - CloseHandle ((HANDLE) h); - return; -} - diff --git a/winsup/mingw/samples/seh/sehtest.c b/winsup/mingw/samples/seh/sehtest.c deleted file mode 100644 index b7ac3357e..000000000 --- a/winsup/mingw/samples/seh/sehtest.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * This file tests some of the basics of structured exception handling as - * implemented in excpt.h and the Windows API header files. - * - * The program installs two exception handlers, then attempts to write to - * a pointer to an invalid address. This causes an exception which passes - * through the exception handlers and on to the default system exception - * handler. That handler brings up the dialog box all Windows users know - * and love, and then the program is terminated. - * - * You might note that after the initial run up through our exception frames - * we get a second run up through them with the exception code - * STATUS_INVALID_DISPOSITION and the code EH_UNWINDING. This seems normal - * except that the code got changed from the previous STATUS_ACCESS_VIOLATION. - * I don't understand that bit particularly. - */ - -#include -#include - -#include "exutil.h" - -EXCEPTION_DISPOSITION -my_handler ( - struct _EXCEPTION_RECORD* pExceptionRec, - void* pEstablisherFrame, - struct _CONTEXT* pContextRecord, - void* pDispatcherContext - ) -{ - printf ("In my exception handler!\n"); - DumpExceptionRecord (pExceptionRec); - return ExceptionContinueSearch; -} - -EXCEPTION_DISPOSITION -my_handler2 ( - struct _EXCEPTION_RECORD* pExceptionRec, - void* pEstablisherFrame, - struct _CONTEXT* pContextRecord, - void* pDispatcherContext - ) -{ - printf ("In top exception handler!\n"); - DumpExceptionRecord (pExceptionRec); - return ExceptionContinueSearch; -} - -main () -{ - char* x; - - printf ("my_handler2 = %08x\n", my_handler2); - printf ("my_handler = %08x\n", my_handler); - - WalkExceptionHandlers(); - - __try1(my_handler2) - x = (char*) 10; - - WalkExceptionHandlers(); - - __try1(my_handler) - - WalkExceptionHandlers(); - - *x = 1; - __except1 - __except1 - printf ("Finished!\n"); -} - diff --git a/winsup/mingw/samples/simpledll/dll.c b/winsup/mingw/samples/simpledll/dll.c deleted file mode 100644 index 7f743bfcd..000000000 --- a/winsup/mingw/samples/simpledll/dll.c +++ /dev/null @@ -1,33 +0,0 @@ - -#include - -BOOL WINAPI -DllMain (HANDLE hDll, DWORD dwReason, LPVOID lpReserved) -{ - switch (dwReason) - { - case DLL_PROCESS_ATTACH: - printf ("DLL Attached.\n"); - break; - - case DLL_PROCESS_DETACH: - printf ("DLL Detached.\n"); - break; - - case DLL_THREAD_ATTACH: - printf ("DLL Thread Attached.\n"); - break; - - case DLL_THREAD_DETACH: - printf ("DLL Thread Detached.\n"); - break; - } - return TRUE; -} - -void -Test () -{ - printf ("Test Function called!\n"); -} - diff --git a/winsup/mingw/samples/simpledll/dll.cpp b/winsup/mingw/samples/simpledll/dll.cpp deleted file mode 100644 index 0c0240685..000000000 --- a/winsup/mingw/samples/simpledll/dll.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// This is a C++ version of the code in dll.c. NOTE that you need to put -// extern "C" { ... } around DllMain or it will not be called when your -// Dll starts up! (It will get name mangled as a C++ function and the C -// default version in libmingw32.a will get called instead.) -// - -#include - -#include - -extern "C" { - -BOOL WINAPI -DllMain (HANDLE hDll, DWORD dwReason, LPVOID lpReserved) -{ - switch (dwReason) - { - case DLL_PROCESS_ATTACH: - cout << "Dll Attached" << endl ; - break; - - case DLL_PROCESS_DETACH: - cout << "Dll Detached" << endl ; - break; - - case DLL_THREAD_ATTACH: - printf ("DLL Thread Attached.\n"); - break; - - case DLL_THREAD_DETACH: - printf ("DLL Thread Detached.\n"); - break; - } - return TRUE; -} - -void -Test () -{ - printf ("Test Function called!\n"); -} - -}; diff --git a/winsup/mingw/samples/simpledll/dll.def b/winsup/mingw/samples/simpledll/dll.def deleted file mode 100644 index 0a623d6b5..000000000 --- a/winsup/mingw/samples/simpledll/dll.def +++ /dev/null @@ -1,2 +0,0 @@ -EXPORTS -Test diff --git a/winsup/mingw/samples/simpledll/exe.c b/winsup/mingw/samples/simpledll/exe.c deleted file mode 100644 index cc44202ee..000000000 --- a/winsup/mingw/samples/simpledll/exe.c +++ /dev/null @@ -1,13 +0,0 @@ -#include - -extern void Test(); - -int main() -{ - printf ("Program started.\n"); - Test (); - printf ("Program ends.\n"); - - return 0; -} - diff --git a/winsup/mingw/samples/simpledll/jamfile b/winsup/mingw/samples/simpledll/jamfile deleted file mode 100644 index 30704e68d..000000000 --- a/winsup/mingw/samples/simpledll/jamfile +++ /dev/null @@ -1,14 +0,0 @@ - -Dll dll.dll : dll.c ; - -ImportLib libdll.a : dll.def ; - - -Main exe.exe : exe.c ; - -LinkLibraries exe.exe : libdll.a ; - -DEPENDS exe.exe : dll.dll ; - -LINKFLAGS on exe.exe = $(LINKFLAGS) -L. ; - diff --git a/winsup/mingw/samples/simpledll/makedll.bat b/winsup/mingw/samples/simpledll/makedll.bat deleted file mode 100644 index c7f9b2ae8..000000000 --- a/winsup/mingw/samples/simpledll/makedll.bat +++ /dev/null @@ -1,23 +0,0 @@ -rem *** Create the import library for the dll *** -dlltool --dllname dll.dll --def dll.def --output-lib libdll.a - -rem *** Compile the dll *** -gcc -c -o dll.o dll.c - -rem *** Link the dll *** -gcc -s -mdll -o dll.dll -Wl,--base-file,dll.b dll.o -dlltool --dllname dll.dll --base-file dll.b --output-exp dll.e --def dll.def -gcc -s -mdll -o dll.dll -Wl,--base-file,dll.b dll.o -Wl,dll.e -dlltool --dllname dll.dll --base-file dll.b --output-exp dll.e --def dll.def -gcc -s -mdll -o dll.dll dll.o -Wl,dll.e - -rem *** Delete temporary files from dll linking *** -del dll.b -del dll.e - -rem *** Compile exe, which uses dll. *** -gcc -c -o exe.o exe.c - -rem *** Link exe.exe, which uses dll.dll *** -gcc -s -L. -o exe.exe exe.o libdll.a - diff --git a/winsup/mingw/samples/test/jamfile b/winsup/mingw/samples/test/jamfile deleted file mode 100644 index 332ac04b8..000000000 --- a/winsup/mingw/samples/test/jamfile +++ /dev/null @@ -1,9 +0,0 @@ -# -# A very simple example with which you can test your compiler/jam setup. -# Also an interesting example of a hybrid console/GUI application. -# - -Main test.exe : test.c ; - -GuiLibs test.exe ; - diff --git a/winsup/mingw/samples/test/test.c b/winsup/mingw/samples/test/test.c deleted file mode 100644 index af8884c9c..000000000 --- a/winsup/mingw/samples/test/test.c +++ /dev/null @@ -1,20 +0,0 @@ -/* - * This source code is in the PUBLIC DOMAIN and has NO WARRANTY. - * - * Colin Peters , April 15, 1997. - */ - -#include -#include - -int STDCALL -WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow) -{ - char text[80]; - - printf ("Enter message box text:"); - fgets(text, 80, stdin); - MessageBox (NULL, text, "Test", MB_OK); - printf ("\nHello after message box.\n"); - return 0; -} diff --git a/winsup/mingw/samples/wintest/jamfile b/winsup/mingw/samples/wintest/jamfile deleted file mode 100644 index 8102fa067..000000000 --- a/winsup/mingw/samples/wintest/jamfile +++ /dev/null @@ -1,8 +0,0 @@ -# -# A example of Win32 GUI programming in C. -# - -Main test.exe : test.c ; - -Gui test.exe ; - diff --git a/winsup/mingw/samples/wintest/test.c b/winsup/mingw/samples/wintest/test.c deleted file mode 100644 index 961496fc1..000000000 --- a/winsup/mingw/samples/wintest/test.c +++ /dev/null @@ -1,212 +0,0 @@ -/* - * A basic example of Win32 programming in C. - * - * This source code is in the PUBLIC DOMAIN and has NO WARRANTY. - * - * Colin Peters - */ - -#include -#include - -/* - * This is the window function for the main window. Whenever a message is - * dispatched using DispatchMessage (or sent with SendMessage) this function - * gets called with the contents of the message. - */ -LRESULT CALLBACK -MainWndProc (HWND hwnd, UINT nMsg, WPARAM wParam, LPARAM lParam) -{ - /* The window handle for the "Click Me" button. */ - static HWND hwndButton = 0; - static int cx, cy; /* Height and width of our button. */ - - HDC hdc; /* A device context used for drawing */ - PAINTSTRUCT ps; /* Also used during window drawing */ - RECT rc; /* A rectangle used during drawing */ - - /* - * Perform processing based on what kind of message we got. - */ - switch (nMsg) - { - case WM_CREATE: - { - /* The window is being created. Create our button - * window now. */ - TEXTMETRIC tm; - - /* First we use the system fixed font size to choose - * a nice button size. */ - hdc = GetDC (hwnd); - SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT)); - GetTextMetrics (hdc, &tm); - cx = tm.tmAveCharWidth * 30; - cy = (tm.tmHeight + tm.tmExternalLeading) * 2; - ReleaseDC (hwnd, hdc); - - /* Now create the button */ - hwndButton = CreateWindow ( - "button", /* Builtin button class */ - "Click Here", - WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, - 0, 0, cx, cy, - hwnd, /* Parent is this window. */ - (HMENU) 1, /* Control ID: 1 */ - ((LPCREATESTRUCT) lParam)->hInstance, - NULL - ); - - return 0; - break; - } - - case WM_DESTROY: - /* The window is being destroyed, close the application - * (the child button gets destroyed automatically). */ - PostQuitMessage (0); - return 0; - break; - - case WM_PAINT: - /* The window needs to be painted (redrawn). */ - hdc = BeginPaint (hwnd, &ps); - GetClientRect (hwnd, &rc); - - /* Draw "Hello, World" in the middle of the upper - * half of the window. */ - rc.bottom = rc.bottom / 2; - DrawText (hdc, "Hello, World", -1, &rc, - DT_SINGLELINE | DT_CENTER | DT_VCENTER); - - EndPaint (hwnd, &ps); - return 0; - break; - - case WM_SIZE: - /* The window size is changing. If the button exists - * then place it in the center of the bottom half of - * the window. */ - if (hwndButton && - (wParam == SIZEFULLSCREEN || - wParam == SIZENORMAL) - ) - { - rc.left = (LOWORD(lParam) - cx) / 2; - rc.top = HIWORD(lParam) * 3 / 4 - cy / 2; - MoveWindow ( - hwndButton, - rc.left, rc.top, cx, cy, TRUE); - } - break; - - case WM_COMMAND: - /* Check the control ID, notification code and - * control handle to see if this is a button click - * message from our child button. */ - if (LOWORD(wParam) == 1 && - HIWORD(wParam) == BN_CLICKED && - (HWND) lParam == hwndButton) - { - /* Our button was clicked. Close the window. */ - DestroyWindow (hwnd); - } - return 0; - break; - } - - /* If we don't handle a message completely we hand it to the system - * provided default window function. */ - return DefWindowProc (hwnd, nMsg, wParam, lParam); -} - - -int STDCALL -WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow) -{ - HWND hwndMain; /* Handle for the main window. */ - MSG msg; /* A Win32 message structure. */ - WNDCLASSEX wndclass; /* A window class structure. */ - char* szMainWndClass = "WinTestWin"; - /* The name of the main window class */ - - /* - * First we create a window class for our main window. - */ - - /* Initialize the entire structure to zero. */ - memset (&wndclass, 0, sizeof(WNDCLASSEX)); - - /* This class is called WinTestWin */ - wndclass.lpszClassName = szMainWndClass; - - /* cbSize gives the size of the structure for extensibility. */ - wndclass.cbSize = sizeof(WNDCLASSEX); - - /* All windows of this class redraw when resized. */ - wndclass.style = CS_HREDRAW | CS_VREDRAW; - - /* All windows of this class use the MainWndProc window function. */ - wndclass.lpfnWndProc = MainWndProc; - - /* This class is used with the current program instance. */ - wndclass.hInstance = hInst; - - /* Use standard application icon and arrow cursor provided by the OS */ - wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION); - wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION); - wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); - - /* Color the background white */ - wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); - - /* - * Now register the window class for use. - */ - RegisterClassEx (&wndclass); - - /* - * Create our main window using that window class. - */ - hwndMain = CreateWindow ( - szMainWndClass, /* Class name */ - "Hello", /* Caption */ - WS_OVERLAPPEDWINDOW, /* Style */ - CW_USEDEFAULT, /* Initial x (use default) */ - CW_USEDEFAULT, /* Initial y (use default) */ - CW_USEDEFAULT, /* Initial x size (use default) */ - CW_USEDEFAULT, /* Initial y size (use default) */ - NULL, /* No parent window */ - NULL, /* No menu */ - hInst, /* This program instance */ - NULL /* Creation parameters */ - ); - - /* - * Display the window which we just created (using the nShow - * passed by the OS, which allows for start minimized and that - * sort of thing). - */ - ShowWindow (hwndMain, nShow); - UpdateWindow (hwndMain); - - /* - * The main message loop. All messages being sent to the windows - * of the application (or at least the primary thread) are retrieved - * by the GetMessage call, then translated (mainly for keyboard - * messages) and dispatched to the appropriate window procedure. - * This is the simplest kind of message loop. More complex loops - * are required for idle processing or handling modeless dialog - * boxes. When one of the windows calls PostQuitMessage GetMessage - * will return zero and the wParam of the message will be filled - * with the argument to PostQuitMessage. The loop will end and - * the application will close. - */ - while (GetMessage (&msg, NULL, 0, 0)) - { - TranslateMessage (&msg); - DispatchMessage (&msg); - } - return msg.wParam; -} - diff --git a/winsup/mingw/string_old.c b/winsup/mingw/string_old.c deleted file mode 100644 index c1baeb47e..000000000 --- a/winsup/mingw/string_old.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * string_old.c - * - * Oldnames from ANSI header string.h - * - * Some wrapper functions for those old name functions whose appropriate - * equivalents are not simply underscore prefixed. - * - * Contributors: - * Created by Colin Peters - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAMED. This includes but is not limited to warrenties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * $Revision$ - * $Author$ - * $Date$ - * - */ - -#include - -int -strcasecmp (const char *sz1, const char *sz2) -{ - return _stricmp (sz1, sz2); -} - -int -strncasecmp (const char *sz1, const char *sz2, size_t sizeMaxCompare) -{ - return _strnicmp (sz1, sz2, sizeMaxCompare); -} - -int -wcscmpi (const wchar_t * ws1, const wchar_t * ws2) -{ - return _wcsicmp (ws1, ws2); -} - diff --git a/winsup/subauth/ChangeLog b/winsup/subauth/ChangeLog deleted file mode 100644 index 385d6cc11..000000000 --- a/winsup/subauth/ChangeLog +++ /dev/null @@ -1,21 +0,0 @@ -2001-10-12 Christopher Faylor - - * Makefile.in: Comment out install for now. - -2001-10-12 Christopher Faylor - - * Makefile.in: Accomodate changes to w32api_include macro. - -Sun May 20 00:24:36 2001 Christopher Faylor - - * Makefile.in: Use 'rm -f' when cleaning. - -Fri May 4 15:06:00 Corinna Vinschen - - Initial release of the Cygwin subauthentication DLL. - * ChangeLog: New file. - * Makefile.in: Ditto. - * configure: Ditto. Generated from configure.in. - * configure.in: Ditto. - * cygsuba.c: Ditto. - * cygsuba.din: Ditto. diff --git a/winsup/subauth/Makefile.in b/winsup/subauth/Makefile.in deleted file mode 100644 index ae64de496..000000000 --- a/winsup/subauth/Makefile.in +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright (c) 2001, Red Hat, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# A copy of the GNU General Public License can be found at -# http://www.gnu.org/ -# -# Written by Corinna Vinschen -# -# Makefile for Cygwin subauthentication DLL. - -SHELL := @SHELL@ - -srcdir := @srcdir@ -VPATH := @srcdir@ -prefix := @prefix@ -exec_prefix := @exec_prefix@ - -bindir := @bindir@ -etcdir := $(exec_prefix)/etc - -program_transform_name := @program_transform_name@ - -INSTALL := @INSTALL@ -INSTALL_PROGRAM := @INSTALL_PROGRAM@ -INSTALL_DATA := @INSTALL_DATA@ - -CC := @CC@ -CC_FOR_TARGET := $(CC) - -CFLAGS := @CFLAGS@ -nostdinc - -include $(srcdir)/../Makefile.common - -WIN32_COMMON := -mno-cygwin -WIN32_INCLUDES := -I. -I$(srcdir) $(w32api_include) -WIN32_CFLAGS := $(CFLAGS) $(WIN32_COMMON) $(WIN32_INCLUDES) -WIN32_LDFLAGS := $(CFLAGS) $(WIN32_COMMON) -L$(mingw_build) -nostdlib -Wl,-shared - -STARTFILE := $(mingw_build)/dllcrt2.o -LIBS := -lmingw32 -lkernel32 - -DLL := cygsuba.dll -DEF_FILE:= cygsuba.def - -OBJ = cygsuba.o - -.SUFFIXES: -.NOEXPORT: - -all: Makefile $(DLL) - -$(DEF_FILE): cygsuba.din config.status - $(SHELL) config.status - -$(DLL): $(OBJ) $(DEF_FILE) -ifdef VERBOSE - $(CC) -s $(WIN32_LDFLAGS) -o $@ $(DEF_FILE) $(STARTFILE) $(OBJ) $(LIBS) -else - @echo $(CC) .. -o $@ $(OBJ) - @$(CC) -s $(WIN32_LDFLAGS) -o $@ $(DEF_FILE) $(STARTFILE) $(OBJ) $(LIBS) -endif - -.PHONY: all install clean realclean - -realclean: clean - rm -f Makefile config.cache - -clean: - rm -f *.o *.dll - -install: all - # $(SHELL) $(updir1)/mkinstalldirs $(bindir) - # for i in $(PROGS) ; do \ - # n=`echo $$i | sed '$(program_transform_name)'`; \ - # $(INSTALL_PROGRAM) $$i $(bindir)/$$n; \ - # done || exit 0 - -%.o: %.c -ifdef VERBOSE - $(CC) $(WIN32_CFLAGS) -c -o $@ $< -else - @echo $(CC) -c $(CFLAGS) ... $(&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=Makefile.in - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - - - - - - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:578: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:599: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:617: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - - -# Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:643: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:673: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:722: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:746: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - -if test $host != $build; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -# Extract the first word of "${ac_tool_prefix}g++", so it can be a program name with args. -set dummy ${ac_tool_prefix}g++; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:782: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CXX="${ac_tool_prefix}g++" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CXX="$ac_cv_prog_CXX" -if test -n "$CXX"; then - echo "$ac_t""$CXX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_CXX"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "g++", so it can be a program name with args. -set dummy g++; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:814: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CXX="g++" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CXX" && ac_cv_prog_CXX="g++" -fi -fi -CXX="$ac_cv_prog_CXX" -if test -n "$CXX"; then - echo "$ac_t""$CXX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - CXX="g++" -fi -fi - -if test -z "$CXX"; then - # Extract the first word of "c++", so it can be a program name with args. -set dummy c++; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:850: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CXX="c++" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CXX="$ac_cv_prog_CXX" -if test -n "$CXX"; then - echo "$ac_t""$CXX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -CXXFLAGS='$(CFLAGS)' - - -if test "$program_transform_name" = s,x,x,; then - program_transform_name= -else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed -s,\\,\\\\,g; s,\$,$$,g -EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed -fi -test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},; $program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" - -# sed with no file args requires a program. -test "$program_transform_name" = "" && program_transform_name="s,x,x," - - -if test "x$cross_compiling" = "xyes"; then - if test "x$program_transform_name" = "xs,x,x,"; then - program_transform_name="" - fi - if test "x$program_transform_name" = "x"; then - program_transform_name="s,^,$host-," - else - program_transform_name="$program_transform_name -e s,^,$host-," - fi -fi - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:925: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile cygsuba.def:cygsuba.din" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@CC@%$CC%g -s%@CXX@%$CXX%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/winsup/subauth/configure.in b/winsup/subauth/configure.in deleted file mode 100644 index 7e76ea7b7..000000000 --- a/winsup/subauth/configure.in +++ /dev/null @@ -1,91 +0,0 @@ -dnl Copyright (c) 2001, Red Hat, Inc. -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl A copy of the GNU General Public License can be found at -dnl http://www.gnu.org/ -dnl -dnl Written by Christopher Faylor -dnl Changed for subauth subdir by Corinna Vinschen - -dnl Autoconf configure script for Cygwin utilities. -dnl -dnl Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.12) - -AC_INIT(Makefile.in) - -dnl FIXME: We temporarily define our own version of AC_PROG_CC. This is -dnl copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -dnl are probably using a cross compiler, which will not be able to fully -dnl link an executable. This should really be fixed in autoconf -dnl itself. - -AC_DEFUN(LIB_AC_PROG_CC, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_PROG(CC, gcc, gcc) -if test -z "$CC"; then - AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -AC_PROG_CC_GNU - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -dnl Check whether -g works, even if CFLAGS is set, in case the package -dnl plays around with CFLAGS (such as to build both debugging and -dnl normal versions of a library), tasteless as that idea is. - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - AC_PROG_CC_G - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi -]) - -AC_DEFUN(LIB_AC_PROG_CXX, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_TOOL(CXX, g++, g++) -if test -z "$CXX"; then - AC_CHECK_PROG(CXX, c++, c++, , , ) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -CXXFLAGS='$(CFLAGS)' -]) - -AC_CANONICAL_SYSTEM - -LIB_AC_PROG_CC -LIB_AC_PROG_CXX - -AC_ARG_PROGRAM - -if test "x$cross_compiling" = "xyes"; then - if test "x$program_transform_name" = "xs,x,x,"; then - program_transform_name="" - fi - if test "x$program_transform_name" = "x"; then - program_transform_name="s,^,$host-," - else - program_transform_name="$program_transform_name -e s,^,$host-," - fi -fi - -AC_PROG_INSTALL - -AC_OUTPUT(Makefile cygsuba.def:cygsuba.din) diff --git a/winsup/subauth/cygsuba.c b/winsup/subauth/cygsuba.c deleted file mode 100644 index d79209fa8..000000000 --- a/winsup/subauth/cygsuba.c +++ /dev/null @@ -1,141 +0,0 @@ -/* cygsuba.c: Minimal subauthentication functionality to support - logon without password. - - Copyright 2001 Red Hat, Inc. - -Written by Corinna Vinschen - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include - -NTSTATUS NTAPI -Msv1_0SubAuthenticationRoutine (NETLOGON_LOGON_INFO_CLASS logon_level, - VOID *logon_inf, - ULONG flags, - USER_ALL_INFORMATION *usr_inf, - ULONG *which, - ULONG *usr_flags, - BOOLEAN *auth, - LARGE_INTEGER *logoff, - LARGE_INTEGER *kickoff) -{ - ULONG valid_account = USER_NORMAL_ACCOUNT; - if (!(flags & MSV1_0_PASSTHRU)) - valid_account |= USER_TEMP_DUPLICATE_ACCOUNT; - - *which = *usr_flags = 0; - - /* Not a Network logon? - TODO: How do I manage an interactive logon using a subauthentication - package??? The logon_level "interactive" is available but I never - got it working. I assume that's the reason I don't get a legal - logon session so that I can connect to network drives. */ - if (logon_level != NetlogonNetworkInformation) - { - *auth = TRUE; - return STATUS_INVALID_INFO_CLASS; - } - - /* Account type ok? */ - if (!(usr_inf->UserAccountControl & valid_account)) - { - *auth = FALSE; - return STATUS_NO_SUCH_USER; - } - - /* Guest logon? */ - if (flags & MSV1_0_GUEST_LOGON) - *usr_flags = LOGON_GUEST; - -#if defined (SSHD) - /* The same code could be used to allow the DLL checking for - SSH RSA/DSA keys. For that purpose, SSH would need it's - own implementation with the below field used to transport - the keys which have to be checked. This could be used to - allow secure logon with RSA/DSA instead of passwords. - Of course that needs lots of additions to the code... */ - { - PNETLOGON_NETWORK_INFO nw_inf = (PNETLOGON_NETWORK_INFO) logon_inf; - - /* - nw_inf->LmChallenge.data <=> - MSV1_0_LM20_LOGON::ChallengeToClient - nw_inf->NtChallengeResponse <=> - MSV1_0_LM20_LOGON::CaseSensitiveChallengeResponse - nw_inf->LmChallengeResponse <=> - MSV1_0_LM20_LOGON::CaseInsensitiveChallengeResponse - */ - if (authentication_failed) - { - *auth = (usr_inf->UserAccountControl & USER_ACCOUNT_DISABLED) ? - FALSE : TRUE; - return STATUS_WRONG_PASSWORD; - } - } -#endif - - /* All accounts except for the local admin are checked for being - locked out or disabled or expired. */ - if (usr_inf->UserId != DOMAIN_USER_RID_ADMIN) - { - SYSTEMTIME CurrentTime; - LARGE_INTEGER LogonTime; - - /* Account locked out? */ - if (usr_inf->UserAccountControl & USER_ACCOUNT_AUTO_LOCKED) - { - *auth = (usr_inf->UserAccountControl & USER_ACCOUNT_DISABLED) ? - FALSE : TRUE; - return STATUS_ACCOUNT_LOCKED_OUT; - } - - /* Account disabled? */ - if (usr_inf->UserAccountControl & USER_ACCOUNT_DISABLED) - { - *auth = FALSE; - return STATUS_ACCOUNT_DISABLED; - } - - /* Account expired? */ - GetSystemTime (&CurrentTime); - SystemTimeToFileTime(&CurrentTime, (LPFILETIME) &LogonTime); - if (usr_inf->AccountExpires.QuadPart && - LogonTime.QuadPart >= usr_inf->AccountExpires.QuadPart) - { - *auth = TRUE; - return STATUS_ACCOUNT_EXPIRED; - } - } - - /* Don't force logout. */ - logoff->HighPart = 0x7FFFFFFF; - logoff->LowPart = 0xFFFFFFFF; - kickoff->HighPart = 0x7FFFFFFF; - kickoff->LowPart = 0xFFFFFFFF; - - *auth = TRUE; - return STATUS_SUCCESS; -} - -NTSTATUS NTAPI -Msv1_0SubAuthenticationFilter (NETLOGON_LOGON_INFO_CLASS logon_level, - VOID *logon_inf, - ULONG flags, - USER_ALL_INFORMATION *usr_inf, - ULONG *which, - ULONG *usr_flags, - BOOLEAN *auth, - LARGE_INTEGER *logoff, - LARGE_INTEGER *kickoff) -{ - return Msv1_0SubAuthenticationRoutine (logon_level, logon_inf, flags, - usr_inf, which, usr_flags, - auth, logoff, kickoff); -} diff --git a/winsup/subauth/cygsuba.din b/winsup/subauth/cygsuba.din deleted file mode 100644 index 82ddcfe9b..000000000 --- a/winsup/subauth/cygsuba.din +++ /dev/null @@ -1,5 +0,0 @@ -LIBRARY "cygsuba" - -EXPORTS -Msv1_0SubAuthenticationRoutine = Msv1_0SubAuthenticationRoutine@36 -Msv1_0SubAuthenticationFilter = Msv1_0SubAuthenticationFilter@36 diff --git a/winsup/testsuite/ChangeLog b/winsup/testsuite/ChangeLog deleted file mode 100644 index c5fcd9447..000000000 --- a/winsup/testsuite/ChangeLog +++ /dev/null @@ -1,308 +0,0 @@ -2002-02-27 Christopher Faylor - - * winsup.api/systemcall.c (main): Ensure that stdin is redirected. - -2001-11-18 Egor Duda - - * winsup.api/pthread/condvar3_1.c: Fix debugging output. - -2001-11-15 Egor Duda - - * winsup.api/pthread/: New directory. Ports of pthread functionality - tests from pthreads-win32 project. - * winsup.api/pthread/test.h: Commmon declaraions for pthread tests. - * winsup.api/pthread/cleanup2.c: New test. - * winsup.api/pthread/cleanup3.c: Ditto. - * winsup.api/pthread/condvar1.c: Ditto. - * winsup.api/pthread/condvar2.c: Ditto. - * winsup.api/pthread/condvar2_1.c: Ditto. - * winsup.api/pthread/condvar3.c: Ditto. - * winsup.api/pthread/condvar3_1.c: Ditto. - * winsup.api/pthread/condvar3_2.c: Ditto. - * winsup.api/pthread/condvar3_3.c: Ditto. - * winsup.api/pthread/condvar4.c: Ditto. - * winsup.api/pthread/condvar5.c: Ditto. - * winsup.api/pthread/condvar6.c: Ditto. - * winsup.api/pthread/condvar8.c: Ditto. - * winsup.api/pthread/count1.c: Ditto. - * winsup.api/pthread/create1.c: Ditto. - * winsup.api/pthread/create2.c: Ditto. - * winsup.api/pthread/equal1.c: Ditto. - * winsup.api/pthread/exit1.c: Ditto. - * winsup.api/pthread/exit2.c: Ditto. - * winsup.api/pthread/exit3.c: Ditto. - * winsup.api/pthread/inherit1.c: Ditto. - * winsup.api/pthread/join0.c: Ditto. - * winsup.api/pthread/join1.c: Ditto. - * winsup.api/pthread/join2.c: Ditto. - * winsup.api/pthread/mutex1.c: Ditto. - * winsup.api/pthread/mutex1r.c: Ditto. - * winsup.api/pthread/mutex2.c: Ditto. - * winsup.api/pthread/mutex3.c: Ditto. - * winsup.api/pthread/mutex6r.c: Ditto. - * winsup.api/pthread/once1.c: Ditto. - * winsup.api/pthread/priority1.c: Ditto. - * winsup.api/pthread/priority2.c: Ditto. - * winsup.api/pthread/self1.c: Ditto. - * winsup.api/pthread/self2.c: Ditto. - * winsup.api/pthread/tsd1.c: Ditto. - -2001-11-08 Corinna Vinschen - - * checksignal.c: New testcase. - -2001-11-04 Christopher Faylor - - * Makefile.in: Oops. Revert previous change. Add Makefile/Makefile.in - dependency. - -2001-11-04 Christopher Faylor - - * Makefile.in: Add check target. - -2001-11-02 Egor Duda - - * libltp/lib/forker.c: Include proper header to avoid compiler - warning. - -2001-10-29 Egor Duda - - * winsup.api/ltp/stat03.c: Supress compiler warning. - -2001-10-29 Egor Duda - - * winsup.api/signal-into-win32-api.c: Supress compiler warning. - -Mon Oct 8 14:15:00 2001 Corinna Vinschen - - * winsup.api/mmaptest01.c: Add several tests on mmaps. Use libltp. - * winsup.api/winsup.exp: Link all tests agains libltp. - -Fri Oct 5 11:15:55 2001 Christopher Faylor - - * winsup.api/nullgetcwd.c: New file. Check that NULL first argument to - getcwd works. - -Thu Oct 4 22:47:51 2001 Christopher Faylor - - * winsup.api/systemcall.c (main): Change some messages for clarity. - -Thu Oct 4 22:19:39 2001 Christopher Faylor - - * winsup.api/systemcall.c: New file. Check for system call problems. - -2001-09-20 Egor Duda - - * libltp/lib/get_high_address.c (get_high_address): Get inaccessible - address more robustly. - * winsup.api/ltp/stat06.c (high_address_setup): Use generic function - from ltp library to obtain inaccessible address. - -2001-09-15 Egor Duda - - * winsup.api/ltp/sbrk01.c (main): Force output at startup to - make sure that stdio file buffer get allocated. - * winsup.api/ltp/stat06.c (high_address_setup): On cygwin, area - after sbrk(0) may be available, use 0xffff0000 as "high address". - * winsup.api/ltp/symlink01.c: Perform all tests. Mark those tests that - don't work on cygwin with '-1'. Close open files so that temporary - directory can be deleted on exit. - * winsup.api/ltp/vfork01.c: New test. - -2001-09-13 Egor Duda - - * winsup.api/winsup.exp: Run only selected test if environment - variable CYGWIN_TESTSUITE_TESTS is set. Use its value as regular - expression to filter test names. - * winsup.api/ltp/symlink01.c (creat_path_max): Provide explicit - buffer to getcwd to conform to standards and avoid memory leak. - (do_chdir): Ditto. - -2001-09-13 Egor Duda - - * libltp/lib/tst_sig.c: Pass SIGSEGV to application to consider - whether it's expected or not. - * winsup.api/known_bugs.tcl: lseek10 is known to fail because mknod - is not implemented. - * winsup.api/ltp/rename02.c: Fix formatting. - * libltp/lib/libtestsuite.c: New file. - * winsup.api/signal-into-win32-api.c: New test. - * winsup.api/ltp/access04.c: Ditto. - * winsup.api/ltp/access05.c: Ditto. - * winsup.api/ltp/alarm07.c: Ditto. - * winsup.api/ltp/chdir04.c: Ditto. - * winsup.api/ltp/chmod01.c: Ditto. - * winsup.api/ltp/close01.c: Ditto. - * winsup.api/ltp/close02.c: Ditto. - * winsup.api/ltp/creat01.c: Ditto. - * winsup.api/ltp/creat03.c: Ditto. - * winsup.api/ltp/exit01.c: Ditto. - * winsup.api/ltp/exit02.c: Ditto. - * winsup.api/ltp/fchdir01.c: Ditto. - * winsup.api/ltp/fchdir02.c: Ditto. - * winsup.api/ltp/fork02.c: Ditto. - * winsup.api/ltp/fork03.c: Ditto. - * winsup.api/ltp/fork06.c: Ditto. - * winsup.api/ltp/fork07.c: Ditto. - * winsup.api/ltp/fork09.c: Ditto. - * winsup.api/ltp/fork10.c: Ditto. - * winsup.api/ltp/fork11.c: Ditto. - * winsup.api/ltp/fstat02.c: Ditto. - * winsup.api/ltp/fstat03.c: Ditto. - * winsup.api/ltp/fstat04.c: Ditto. - * winsup.api/ltp/ftruncate01.c: Ditto. - * winsup.api/ltp/ftruncate02.c: Ditto. - * winsup.api/ltp/ftruncate03.c: Ditto. - * winsup.api/ltp/getgid02.c: Ditto. - * winsup.api/ltp/getgid03.c: Ditto. - * winsup.api/ltp/getpgid01.c: Ditto. - * winsup.api/ltp/getpgid02.c: Ditto. - * winsup.api/ltp/getpid02.c: Ditto. - * winsup.api/ltp/getppid02.c: Ditto. - * winsup.api/ltp/getuid02.c: Ditto. - * winsup.api/ltp/getuid03.c: Ditto. - * winsup.api/ltp/kill01.c: Ditto. - * winsup.api/ltp/kill02.c: Ditto. - * winsup.api/ltp/kill03.c: Ditto. - * winsup.api/ltp/kill04.c: Ditto. - * winsup.api/ltp/lseek06.c: Ditto. - * winsup.api/ltp/lseek07.c: Ditto. - * winsup.api/ltp/lseek08.c: Ditto. - * winsup.api/ltp/lseek09.c: Ditto. - * winsup.api/ltp/lseek10.c: Ditto. - * winsup.api/ltp/mmap02.c: Ditto. - * winsup.api/ltp/mmap03.c: Ditto. - * winsup.api/ltp/mmap04.c: Ditto. - * winsup.api/ltp/mmap05.c: Ditto. - * winsup.api/ltp/mmap06.c: Ditto. - * winsup.api/ltp/mmap07.c: Ditto. - * winsup.api/ltp/mmap08.c: Ditto. - * winsup.api/ltp/munmap01.c: Ditto. - * winsup.api/ltp/munmap02.c: Ditto. - * winsup.api/ltp/open02.c: Ditto. - * winsup.api/ltp/pipe01.c: Ditto. - * winsup.api/ltp/pipe08.c: Ditto. - * winsup.api/ltp/pipe09.c: Ditto. - * winsup.api/ltp/pipe10.c: Ditto. - * winsup.api/ltp/pipe11.c: Ditto. - * winsup.api/ltp/poll01.c: Ditto. - * winsup.api/ltp/read04.c: Ditto. - * winsup.api/ltp/readlink01.c: Ditto. - * winsup.api/ltp/readlink03.c: Ditto. - * winsup.api/ltp/rename01.c: Ditto. - * winsup.api/ltp/rename08.c: Ditto. - * winsup.api/ltp/rename10.c: Ditto. - * winsup.api/ltp/rmdir01.c: Ditto. - * winsup.api/ltp/stat01.c: Ditto. - * winsup.api/ltp/stat02.c: Ditto. - * winsup.api/ltp/stat03.c: Ditto. - * winsup.api/ltp/symlink03.c: Ditto. - * winsup.api/ltp/symlink04.c: Ditto. - * winsup.api/ltp/symlink05.c: Ditto. - * winsup.api/ltp/sync02.c: Ditto. - * winsup.api/ltp/time02.c: Ditto. - * winsup.api/ltp/times02.c: Ditto. - * winsup.api/ltp/times03.c: Ditto. - * winsup.api/ltp/truncate01.c: Ditto. - * winsup.api/ltp/truncate02.c: Ditto. - * winsup.api/ltp/umask02.c: Ditto. - * winsup.api/ltp/umask03.c: Ditto. - * winsup.api/ltp/wait401.c: Ditto. - * winsup.api/ltp/wait402.c: Ditto. - * winsup.api/ltp/write02.c: Ditto. - * winsup.api/ltp/write03.c: Ditto. - -2001-09-09 Egor Duda - - * winsup.api/ltp/dup03.c: New test. - * winsup.api/ltp/lseek03.c: Ditto. - * winsup.api/ltp/mmap001.c: Ditto. - * winsup.api/ltp/read01.c: Ditto. - * winsup.api/ltp/readdir01.c: Ditto. - * winsup.api/ltp/rmdir05.c: Ditto. - * winsup.api/ltp/sbrk01.c: Ditto. - * winsup.api/ltp/select02.c: Ditto. - * winsup.api/ltp/select03.c: Ditto. - * winsup.api/ltp/signal03.c: Ditto. - * winsup.api/ltp/stat06.c: Ditto. - * winsup.api/ltp/unlink08.c: Ditto. - * winsup.api/known_bugs.tcl: Update to reflect new test's known - failures. - * winsup.api/winsup.exp: Don't delete executable in case of - unexpected pass, as well as in case of unexpected failure. - * README: Update paragraph about expected failures. - -2001-05-21 Corinna Vinschen - - * winsup.api/mmaptest01.c: Add log output. - * winsup.api/mmaptest02.c: Write log output to stdout. - * winsup.api/mmaptest03.c: Ditto. - -2001-05-15 Corinna Vinschen - - * winsup.api/winsup.exp: Force linking all tests against binmode.o. - -2001-04-27 Corinna Vinschen - - * winsup.api/mmaptest04.c: Take care for binmode explicitely. - -2001-04-19 Corinna Vinschen - - * winsup.api/mmaptest02.c: New test. - * winsup.api/mmaptest03.c: Ditto. - * winsup.api/mmaptest04.c: Ditto. - -2001-04-03 Corinna Vinschen - - * winsup.api/mmaptest01.c: New test. - -2001-03-10 Egor Duda - - * winsup.api/ltp/access01.c: Avoid compilation error if X_OK - isn't declared as a constant. - -2001-03-09 Egor Duda - - * config/default.exp: Remove unneeded debugging output. - * Makefile.in: Use correct path to find dejagnu in local tree. - -2000-09-06 Egor Duda - - Add 'const' qualifiers where needed to avoid compiler warnings. - * libltp/lib/tst_sig.c (tst_sig): Don't attempt to cleanup on - fatal errors. - * libltp/lib/parse_opts.c (parse_opts): Initialize allocated - string to prevent heap corruption. - -2000-09-04 Egor Duda - - * Makefile.in: Always add libltp headers directory to headers - search path. - -2000-09-02 Egor Duda - - * moved here everything from cygwin/testsuite/ - * configure.in: New file - * configure: New file, generated from configure.in - with autoconf 2.13 - * Makefile.in: New file - * libltp/: New directory. Contains a support library - and headers for tests in winsup.api/ltp/ - * config/default.exp: Print value of CYGWIN environment - variable when test completed - * winsup.api/samples/xf-sample-fail.c renamed to - winsup.api/samples/sample-fail.c - * winsup.api/samples/xf-sample-miscompile.c renamed to - winsup.api/samples/sample-miscompile.c - * winsup.api/known_bugs.tcl: New file. - * winsup.api/winsup.exp: Xfail test if its name is in - list from known_bugs.tcl - * winsup.api/winsup.exp: Don't stop if compiled test executable - can't be deleted - * winsup.api/winsup.exp: If in verbose mode, write test output - to .log - * winsup.api/ltp/: New directory. Contains cygwin port of testsuite - from Linux Testing Project - * winsup.api/sigchld.c: New file. Test if process recieves SIGCHLD - signal when its child terminates. - * winsup.api/waitpid.c: New file. Test if waitpid function works diff --git a/winsup/testsuite/Makefile.in b/winsup/testsuite/Makefile.in deleted file mode 100644 index a620519e6..000000000 --- a/winsup/testsuite/Makefile.in +++ /dev/null @@ -1,189 +0,0 @@ -# Makefile.in for Cygwin's testsuite. -# Copyright 2000 Red Hat, Inc. -# -# This file is part of Cygwin. -# -# This software is a copyrighted work licensed under the terms of the -# Cygwin license. Please consult the file "CYGWIN_LICENSE" for -# details. - -# This makefile requires GNU make. - -SHELL:=@SHELL@ -srcdir:=@srcdir@ -objdir:=. -libltp_srcdir=$(srcdir)/libltp - -VPATH:=$(srcdir):$(libltp_srcdir)/lib - -target_alias:=@target_alias@ -build_alias:=@build_alias@ -host_alias:=@host_alias@ -prefix:=@prefix@ - -program_transform_name:=@program_transform_name@ -exec_prefix:=@exec_prefix@ -bindir:=@bindir@ -libdir:=@libdir@ -ifeq ($(target_alias),$(host_alias)) -ifeq ($(build_alias),$(host_alias)) -tooldir:=$(exec_prefix) -else -tooldir:=$(exec_prefix)/$(target_alias) -endif -else -tooldir:=$(exec_prefix)/$(target_alias) -endif -datadir:=@datadir@ -infodir:=@infodir@ -includedir:=@includedir@ - -TESTSUP_INCLUDES:=-I$(libltp_srcdir)/include - -INSTALL:=@INSTALL@ -INSTALL_PROGRAM:=@INSTALL_PROGRAM@ - -# -# --enable options from configure -# - -CC:=@CC@ -# FIXME: Which is it, CC or CC_FOR_TARGET? -CC_FOR_TARGET:=$(CC) -#CFLAGS:=@CFLAGS@ -MD -Wno-write-strings $(TESTSUP_INCLUDES) -ifneq (,$(CFLAGS)) - override CFLAGS+= -MD $(TESTSUP_INCLUDES) -else - CFLAGS:=@CFLAGS@ -MD $(TESTSUP_INCLUDES) -endif -CXXFLAGS:=@CXXFLAGS@ - -AR:=@AR@ -AR_FLAGS:=qv -RANLIB:=@RANLIB@ -LD:=@LD@ -DLLTOOL:=@DLLTOOL@ -WINDRES:=@WINDRES@ -AS:=@AS@ - -# -# Include common definitions for winsup directory -# -include $(srcdir)/../Makefile.common - -INSTALL_DATA:=$(SHELL) $(updir1)/install-sh -c - -# Setup the testing framework, if you have one -EXPECT = `if [ -f $${rootme}/../../expect/expect$(EXEEXT) ] ; then \ - echo $${rootme}/../../expect/expect$(EXEEXT) ; \ - else echo expect ; fi` - -RUNTEST = `if [ -f $${srcdir}/../../dejagnu/runtest ] ; then \ - echo $${srcdir}/../../dejagnu/runtest ; \ - else echo runtest; fi` -RUNTESTFLAGS = - -ifdef VERBOSE - RUNTESTFLAGS = -v -endif - -RUNTIME=$(cygwin_build)/new-cygwin1.dll $(cygwin_build)/new-libcygwin.a $(cygwin_build)/cygrun.exe - -TESTSUP_LIB_NAME:=libltp.a -TESTSUP_OFILES:=${sort ${addsuffix .o,${basename ${notdir ${wildcard $(libltp_srcdir)/lib/*.c}}}}} - -.PHONY: all force dll_ofiles install all_target install_target all_host install_host - -.SUFFIXES: -.SUFFIXES: .c .cc .def .a .o .d - -all_host=@all_host@ -install_host=@install_host@ - -all: $(TESTSUP_LIB_NAME) - -force: - -install: - -install_host: - -clean: - -rm -f *.o *.dll *.a *.exp junk *.bak *.base *.exe testsuite/* - -maintainer-clean realclean: clean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -rm -fr configure - -# Rule to build libltp.a - -$(TESTSUP_LIB_NAME): $(TESTSUP_OFILES) - $(AR) rcv temp.a $(TESTSUP_OFILES) - mv temp.a $(TESTSUP_LIB_NAME) - -$(RUNTIME) : $(cygwin_build)/Makefile - @$(MAKE) --no-print-dir -C $(@D) $(@F) - -# Rule to make stub library used by "make check" - -# - -# These targets are for the dejagnu testsuites. The file site.exp -# contains global variables that all the testsuites will use. - -# Set to $(target_alias)/ for cross. -target_subdir = @target_subdir@ - -site.exp: ./config.status Makefile - @echo "Making a new config file..." - -@rm -f ./tmp? - @touch site.exp - -@mv site.exp site.bak - @echo "## these variables are automatically generated by make ##" > ./tmp0 - @echo "# Do not edit here. If you wish to override these values" >> ./tmp0 - @echo "# add them to the last section" >> ./tmp0 - @echo "set rootme \"`pwd`\"" >> ./tmp0 - @echo "set runtime_root \"\$$rootme/../cygwin\"" >> ./tmp0 - @echo "set srcdir \"`cd ${srcdir}; pwd`\"" >> ./tmp0 - @echo "set host_triplet $(host_canonical)" >> ./tmp0 - @echo "set build_triplet $(build_canonical)" >> ./tmp0 - @echo "set target_triplet $(target)" >> ./tmp0 - @echo "set target_alias $(target_alias)" >> ./tmp0 - @echo "set CC \"$(CC)\"" >> ./tmp0 -# CFLAGS is set even though it's empty to show we reserve the right to set it. - @echo "set CFLAGS \"\"" >> ./tmp0 - echo "set tmpdir $(objdir)/testsuite" >> ./tmp0 - @echo "set ltp_includes \"$(libltp_srcdir)/include\"" >> ./tmp0 - @echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0 - @cat ./tmp0 > site.exp - @cat site.bak | sed \ - -e '1,/^## All variables above are.*##/ d' >> site.exp - -@rm -f ./tmp? - -testsuite/site.exp: site.exp - if [ -d testsuite ]; then \ - true; \ - else \ - mkdir testsuite; \ - fi - rm -rf testsuite/site.exp - cp site.exp testsuite/site.exp - -# Note: we set the PATH so that we can pick up new-cygwin1.dll - -check: $(TESTSUP_LIB_NAME) $(RUNTIME) testsuite/site.exp - -rootme=`pwd`; export rootme; \ - srcdir=`cd ${srcdir}; pwd` ; export srcdir ; \ - cd testsuite; \ - EXPECT=${EXPECT} ; export EXPECT ; \ - if [ -f $${rootme}/../expect/expect ] ; then \ - TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; pwd` ; \ - export TCL_LIBRARY ; fi ; \ - PATH=$${rootme}/../cygwin:$${PATH} ;\ - $(RUNTEST) --tool winsup $(RUNTESTFLAGS) - -Makefile: Makefile.in $(srcdir)/configure.in config.status - $(SHELL) config.status -# - diff --git a/winsup/testsuite/README b/winsup/testsuite/README deleted file mode 100644 index 346111e9a..000000000 --- a/winsup/testsuite/README +++ /dev/null @@ -1,35 +0,0 @@ -1999-12-23 DJ Delorie - -Here are some notes about adding and using this testsuite. - -First, all the programs are linked with new-libcygwin.a, which is just -like libcygwin.a, except that it wants new-cygwin1.dll, not -cygwin1.dll. The testsuite adds the winsup build directory to the -PATH so that new-cygwin1.dll can be found by windows during testing. - -Because we'll probably run into complaints about using two DLLs, we -run cygrun.exe for each test. All this does is run the test with -CreateProcess() so that we don't attempt to do the special code for -when a cygwin program calls another cygwin program, as this might be a -"multiple cygwins" problem. - -Any test that needs to test command line args or redirection needs to -run such a child program itself, as the testsuite will not do any -arguments or redirection for it. Same for fork, signals, etc. - -The testsuite/winsup.api subdirectory is for testing the API to -cygwin1.dll ONLY. Create other subdirs under testsuite/ for other -classes of testing. - -Tests in winsup.api/*.c or winsup.api/*/*.c (only one subdirectory -level is allowed) either compile, run, and exit(0) or they fail. -Either abort or exit with a non-zero code to indicate failure. Don't -print anything to the screen if you can avoid it (except for failure -reasons, of course). One .c file per test, no compile options are -allowed (we're testing the api, not the compiler). - -Tests whose filename is mentioned in known-bugs.tcl will be *expected* -to fail, and will "fail" if they compile, run, and return zero. - -"make check" will only work if you run it *on* an NT machine. -Cross-checking is not supported. diff --git a/winsup/testsuite/config/default.exp b/winsup/testsuite/config/default.exp deleted file mode 100644 index 695808fc9..000000000 --- a/winsup/testsuite/config/default.exp +++ /dev/null @@ -1,13 +0,0 @@ -proc winsup_version {} { - global env - global rootme - clone_output "\n[exec grep ^%%% $rootme/../cygwin/new-cygwin1.dll]\n" - if { [info exists env(CYGWIN)] } { - clone_output "CYGWIN=$env(CYGWIN)\n" - } else { - clone_output "CYGWIN=\n" - } -} - -proc winsup_exit {} { -} diff --git a/winsup/testsuite/configure b/winsup/testsuite/configure deleted file mode 100644 index c57fde2cc..000000000 --- a/winsup/testsuite/configure +++ /dev/null @@ -1,1193 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=Makefile.in - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -# Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:529: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:559: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - if test -z "$CC"; then - case "`uname -s`" in - *win32* | *WIN32*) - # Extract the first word of "cl", so it can be a program name with args. -set dummy cl; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:610: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="cl" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - ;; - esac - fi - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:642: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -cat > conftest.$ac_ext << EOF - -#line 653 "configure" -#include "confdefs.h" - -main(){return(0);} -EOF -if { (eval echo configure:658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - ac_cv_prog_cc_works=yes - # If we can't run a trivial program, we are probably using a cross compiler. - if (./conftest; exit) 2>/dev/null; then - ac_cv_prog_cc_cross=no - else - ac_cv_prog_cc_cross=yes - fi -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_prog_cc_works=no -fi -rm -fr conftest* -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 -if test $ac_cv_prog_cc_works = no; then - { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } -fi -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:684: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 -echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 -cross_compiling=$ac_cv_prog_cc_cross - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:689: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -else - GCC= -fi - -ac_test_CFLAGS="${CFLAGS+set}" -ac_save_CFLAGS="$CFLAGS" -CFLAGS= -echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:717: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi - -echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:749: checking how to run the C preprocessor" >&5 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then -if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - # This must be in double quotes, not single quotes, because CPP may get - # substituted into the Makefile and "${CC-cc}" will confuse make. - CPP="${CC-cc} -E" - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:770: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -E -traditional-cpp" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:787: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -nologo -E" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:804: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : -else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP=/lib/cpp -fi -rm -f conftest* -fi -rm -f conftest* -fi -rm -f conftest* - ac_cv_prog_CPP="$CPP" -fi - CPP="$ac_cv_prog_CPP" -else - ac_cv_prog_CPP="$CPP" -fi -echo "$ac_t""$CPP" 1>&6 - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:854: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:875: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -if test $host != $build; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:901: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" -fi -fi -AR="$ac_cv_prog_AR" -if test -n "$AR"; then - echo "$ac_t""$AR" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@CC@%$CC%g -s%@CPP@%$CPP%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@AR@%$AR%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/winsup/testsuite/configure.in b/winsup/testsuite/configure.in deleted file mode 100755 index 6d198437d..000000000 --- a/winsup/testsuite/configure.in +++ /dev/null @@ -1,19 +0,0 @@ -dnl Autoconf configure script for Cygwin's testsuite. -dnl Copyright 2000 Red Hat, Inc. -dnl -dnl This file is part of Cygwin. -dnl -dnl This software is a copyrighted work licensed under the terms of the -dnl Cygwin license. Please consult the file "CYGWIN_LICENSE" for -dnl details. -dnl -dnl Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.12) -AC_INIT(Makefile.in) - -AC_PROG_CC -AC_PROG_CPP -AC_CHECK_TOOL(AR,ar) - -AC_OUTPUT(Makefile) diff --git a/winsup/testsuite/libltp/include/dataascii.h b/winsup/testsuite/libltp/include/dataascii.h deleted file mode 100644 index cd75245e4..000000000 --- a/winsup/testsuite/libltp/include/dataascii.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#ifndef _DATAASCII_H_ -#define _DATAASCII_H_ - -/*********************************************************************** - * int dataasciigen(listofchars, buffer, size, offset) - * - * This function fills buffer with ascii characters. - * The ascii characters are obtained from listofchars or the CHARS array - * if listofchars is NULL. - * Each char is selected by an index. The index is the remainder - * of count divided by the array size. - * This method allows more than one process to write to a location - * in a file without corrupting it for another process' point of view. - * - * The return value will be the number of character written in buffer - * (size). - * - ***********************************************************************/ -int dataasciigen(char *, char *, int, int); - -/*********************************************************************** - * int dataasciichk(listofchars, buffer, size, count, errmsg) - * - * This function checks the contents of a buffer produced by - * dataasciigen. - * - * return values: - * >= 0 : error at character count - * < 0 : no error - ***********************************************************************/ - -int dataasciichk(char *, char *, int, int, char**); - -#endif diff --git a/winsup/testsuite/libltp/include/databin.h b/winsup/testsuite/libltp/include/databin.h deleted file mode 100644 index b71fbc0c1..000000000 --- a/winsup/testsuite/libltp/include/databin.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef _DATABIN_H_ -#define _DATABIN_H_ - -/******************************************************************************* -* NAME -* databingen - fill a buffer with a data pattern -* -* SYNOPSIS -* (void) databingen(mode, buffer, bsize, offset) -* int mode; -* char *buffer; -* int bsize; -* int offset; -* -* DESCRIPTION -* datagen fills the buffer pointed to by 'buffer' with 'bsize' bytes -* of data of the form indicated by 'mode'. -* All modes (expect r -random) are file offset based. -* This allows more than process to do writing to the file without -* corrupting it if the same modes were used. -* They data modes to choose from, these are: -* -* 'a' - writes an alternating bit pattern (i.e. 0x5555555...) -* -* 'c' - writes a checkerboard pattern (i.e. 0xff00ff00ff00...) -* -* 'C' - writes counting pattern (i.e. 0 - 07, 0 - 07, ...); -* -* 'o' - writes all bits set (i.e. 0xffffffffffffff...) -* -* 'z' - writes all bits cleared (i.e. 0x000000000...); -* -* 'r' - writes random integers -* -* RETURN VALUE -* None -* -*******************************************************************************/ - -void databingen( int mode, unsigned char *buffer, int bsize, int offset ); - -void databinchedk( int mode, unsigned char *buffer, int bsize, int offset, char **errmsg); - -#endif diff --git a/winsup/testsuite/libltp/include/file_lock.h b/winsup/testsuite/libltp/include/file_lock.h deleted file mode 100644 index 8c9a94835..000000000 --- a/winsup/testsuite/libltp/include/file_lock.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#ifndef _FILE_LOCK_H_ -#define _FILE_LOCK_H_ - -extern char Fl_syscall_str[128]; - -int file_lock( int , int, char ** ); -int record_lock( int , int , int , int , char ** ); - -#endif /* _FILE_LOCK_H_ */ diff --git a/winsup/testsuite/libltp/include/forker.h b/winsup/testsuite/libltp/include/forker.h deleted file mode 100644 index effd5d66e..000000000 --- a/winsup/testsuite/libltp/include/forker.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#ifndef _FORKER_H_ -#define _FORKER_H_ - -#define FORKER_MAX_PIDS 4098 - -extern int Forker_pids[FORKER_MAX_PIDS]; /* holds pids of forked processes */ -extern int Forker_npids; /* number of entries in Forker_pids */ - -/* - * This function will fork and the parent will exit zero and - * the child will return. This will orphan the returning process - * putting it in the background. - */ -int background( char * ); - -/* - * Forker will fork ncopies-1 copies of self. - * - * arg 1: Number of copies of the process to be running after return. - * This value minus one is the number of forks performed. - * arg 2: mode: 0 - all children are first generation descendents. - * 1 - each subsequent child is a descendent of another - * descendent, resulting in only one direct descendent of the - * parent and each other child is a child of another child in - * relation to the parent. - * arg 3: prefix: string to preceed any error messages. A value of NULL - * results in no error messages on failure. - * returns: returns to parent the number of children forked. - */ -int forker( int , int , char * ); - -#endif /* _FORKER_H_ */ diff --git a/winsup/testsuite/libltp/include/open_flags.h b/winsup/testsuite/libltp/include/open_flags.h deleted file mode 100644 index 87fe6ff1d..000000000 --- a/winsup/testsuite/libltp/include/open_flags.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#ifndef _OPEN_FLAGS_H_ -#define _OPEN_FLAGS_H_ - -/*********************************************************************** - * This function attempts to convert open flag bits into human readable - * symbols (i.e. O_TRUNC). If there are more than one symbol, - * the string will be placed as a separator between symbols. - * Commonly used separators would be a comma "," or pipe "|". - * If is one and not all bits can be converted to - * symbols, the "UNKNOWN" symbol will be added to return string. - * - * Return Value - * openflags2symbols will return the indentified symbols. - * If no symbols are recognized the return value will be a empty - * string or the "UNKNOWN" symbol. - * - * Limitations - * Currently (05/96) all known symbols are coded into openflags2symbols. - * If new open flags are added this code will have to updated - * to know about them or they will not be recognized. - * - * The Open_symbols must be large enough to hold all possible symbols - * for a given system. - * - ***********************************************************************/ -char *openflags2symbols( int, char *, int ); - -/*********************************************************************** - * This function will take a string of comma separated open flags symbols - * and translate them into an open flag bitmask. - * If any symbol is not valid, -1 is returned. On this error condition - * the badname pointer is updated if not NULL. badname will point - * to the beginning location of where the invalid symbol was found. - * string will be returned unchanged. - * - * A signal received while parsing string could cause the string to - * contain a NULL character in the middle of it. - * - ***********************************************************************/ -int parse_open_flags( char *, char ** ); - -#endif diff --git a/winsup/testsuite/libltp/include/pattern.h b/winsup/testsuite/libltp/include/pattern.h deleted file mode 100644 index 74f841cae..000000000 --- a/winsup/testsuite/libltp/include/pattern.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#ifndef _PATTERN_H_ -#define _PATTERN_H_ - -/* - * pattern_check(buf, buflen, pat, patlen, patshift) - * - * Check a buffer of length buflen against repeated occurrances of - * a pattern whose length is patlen. Patshift can be used to rotate - * the pattern by patshift bytes to the left. - * - * Patshift may be greater than patlen, the pattern will be rotated by - * (patshift % patshift) bytes. - * - * pattern_check returns -1 if the buffer does not contain repeated - * occurrances of the indicated pattern (shifted by patshift). - * - * The algorithm used to check the buffer relies on the fact that buf is - * supposed to be repeated copies of pattern. The basic algorithm is - * to validate the first patlen bytes of buf against the pat argument - * passed in - then validate the next patlen bytes against the 1st patlen - * bytes - the next (2*patlen) bytes against the 1st (2*pathen) bytes, and - * so on. This algorithm only works when the assumption of a buffer full - * of repeated copies of a pattern holds, and gives MUCH better results - * then walking the buffer byte by byte. - * - * Performance wise, It appears to be about 5% slower than doing a straight - * memcmp of 2 buffers, but the big win is that it does not require a - * 2nd comparison buffer, only the pattern. - */ -int pattern_check( char * , int , char * , int , int ); - -/* - * pattern_fill(buf, buflen, pat, patlen, patshift) - * - * Fill a buffer of length buflen with repeated occurrances of - * a pattern whose length is patlen. Patshift can be used to rotate - * the pattern by patshift bytes to the left. - * - * Patshift may be greater than patlen, the pattern will be rotated by - * (patshift % patlen) bytes. - * - * If buflen is not a multiple of patlen, a partial pattern will be written - * in the last part of the buffer. This implies that a buffer which is - * shorter than the pattern length will receive only a partial pattern ... - * - * pattern_fill always returns 0 - no validation of arguments is done. - * - * The algorithm used to fill the buffer relies on the fact that buf is - * supposed to be repeated copies of pattern. The basic algorithm is - * to fill the first patlen bytes of buf with the pat argument - * passed in - then copy the next patlen bytes with the 1st patlen - * bytes - the next (2*patlen) bytes with the 1st (2*pathen) bytes, and - * so on. This algorithm only works when the assumption of a buffer full - * of repeated copies of a pattern holds, and gives MUCH better results - * then filling the buffer 1 byte at a time. - */ -int pattern_fill( char * , int , char * , int , int ); - -#endif diff --git a/winsup/testsuite/libltp/include/random_range.h b/winsup/testsuite/libltp/include/random_range.h deleted file mode 100644 index d3e1cceb8..000000000 --- a/winsup/testsuite/libltp/include/random_range.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#ifndef _RANDOM_RANGE_H_ -#define _RANDOM_RANGE_H_ - -int parse_ranges ( char *, int, int, int, int (*)(), char **, char ** ); -int range_min ( char *, int ); -int range_max ( char *, int ); -int range_mult ( char *, int ); -long random_range ( int, int, int, char ** ); -long random_rangel ( long, long, long, char ** ); -long long random_rangell ( long long, long long, long long, char ** ); -void random_range_seed( long ); -long random_bit ( long ); - -#endif diff --git a/winsup/testsuite/libltp/include/rmobj.h b/winsup/testsuite/libltp/include/rmobj.h deleted file mode 100644 index 4808ca258..000000000 --- a/winsup/testsuite/libltp/include/rmobj.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef _RMOBJ_H_ -#define _RMOBJ_H_ - -/* - * rmobj() - Remove the specified object. If the specified object is a - * directory, recursively remove everything inside of it. If - * there are any problems, set errmsg (if it is not NULL) and - * return -1. Otherwise return 0. - */ -int rmobj( char *object , char **errmesg ); - -#endif diff --git a/winsup/testsuite/libltp/include/search_path.h b/winsup/testsuite/libltp/include/search_path.h deleted file mode 100644 index 131311b44..000000000 --- a/winsup/testsuite/libltp/include/search_path.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ - -/* $Id$ */ - - -int search_path(char *cmd, char *res_path, int access_mode, int fullpath); diff --git a/winsup/testsuite/libltp/include/str_to_bytes.h b/winsup/testsuite/libltp/include/str_to_bytes.h deleted file mode 100644 index 100d37df5..000000000 --- a/winsup/testsuite/libltp/include/str_to_bytes.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#ifndef _STR_TO_BYTES_ -#define _STR_TO_BYTES_ - -int str_to_bytes ( char * ); -long str_to_lbytes ( char * ); -long long str_to_llbytes( char * ); - -#endif diff --git a/winsup/testsuite/libltp/include/string_to_tokens.h b/winsup/testsuite/libltp/include/string_to_tokens.h deleted file mode 100644 index 9c0935ec5..000000000 --- a/winsup/testsuite/libltp/include/string_to_tokens.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#ifndef _STRING_TO_TOKENS_H_ -#define _STRING_TO_TOKENS_H_ - -/* - * string_to_tokens() - * - * This function parses the string 'arg_string', placing pointers to - * the 'separator' separated tokens into the elements of 'arg_array'. - * The array is terminated with a null pointer. - * - * NOTE: This function uses strtok() to parse 'arg_string', and thus - * physically alters 'arg_string' by placing null characters where the - * separators originally were. - */ -int string_to_tokens(char *, char **, int, char *); - -#endif diff --git a/winsup/testsuite/libltp/include/test.h b/winsup/testsuite/libltp/include/test.h deleted file mode 100644 index acfdfdf1b..000000000 --- a/winsup/testsuite/libltp/include/test.h +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ - -/* $Id$ */ - -#ifndef __TEST_H__ -#define __TEST_H__ - -#include -#include -#include - -#define TPASS 0 /* Test passed flag */ -#define TFAIL 1 /* Test failed flag */ -#define TBROK 2 /* Test broken flag */ -#define TWARN 4 /* Test warning flag */ -#define TRETR 8 /* Test retire flag */ -#define TINFO 16 /* Test information flag */ -#define TCONF 32 /* Test not appropriate for configuration flag */ - -/* - * To determine if you are on a Umk or Unicos system, - * use sysconf(_SC_CRAY_SYSTEM). But since _SC_CRAY_SYSTEM - * is not defined until 90, it will be define here if not already - * defined. - * if ( sysconf(_SC_CRAY_SYSTEM) == 1 ) - * on UMK - * else # returned 0 or -1 - * on Unicos - * This is only being done on CRAY systems. - */ -#ifdef CRAY -#ifndef _SC_CRAY_SYSTEM -#define _SC_CRAY_SYSTEM 140 -#endif /* ! _SC_CRAY_SYSTEM */ -#endif /* CRAY */ - -/* - * Ensure that NUMSIGS is defined. - * It should be defined in signal.h or sys/signal.h on - * UNICOS/mk and IRIX systems. On UNICOS systems, - * it is not defined, thus it is being set to UNICOS's NSIG. - * Note: IRIX's NSIG (signals are 1-(NSIG-1)) - * is not same meaning as UNICOS/UMK's NSIG (signals 1-NSIG) - */ -#ifndef NUMSIGS -#define NUMSIGS NSIG -#endif - - -/* defines for unexpected signal setup routine (set_usig.c) */ -#define FORK 1 /* SIGCLD is to be ignored */ -#define NOFORK 0 /* SIGCLD is to be caught */ -#define DEF_HANDLER 0 /* tells set_usig() to use default signal handler */ - -/* - * The following defines are used to control tst_res and t_result reporting. - */ - -#define TOUTPUT "TOUTPUT" /* The name of the environment variable */ - /* that can be set to one of the following */ - /* strings to control tst_res output */ - /* If not set, TOUT_VERBOSE_S is assumed */ - -#define TOUT_VERBOSE_S "VERBOSE" /* All test cases reported */ -#define TOUT_CONDENSE_S "CONDENSE" /* ranges are used where identical messages*/ - /* occur for sequential test cases */ -#define TOUT_NOPASS_S "NOPASS" /* No pass test cases are reported */ -#define TOUT_DISCARD_S "DISCARD" /* No output is reported */ - -#define TST_NOBUF "TST_NOBUF" /* The name of the environment variable */ - /* that can be set to control whether or not */ - /* tst_res will buffer output into 4096 byte */ - /* blocks of output */ - /* If not set, buffer is done. If set, no */ - /* internal buffering will be done in tst_res */ - /* t_result does not have internal buffering */ - -/* - * The following defines are used to control tst_tmpdir, tst_wildcard and t_mkchdir - */ - -#define TDIRECTORY "TDIRECTORY" /* The name of the environment variable */ - /* that if is set, the value (directory) */ - /* is used by all tests as their working */ - /* directory. tst_rmdir and t_rmdir will */ - /* not attempt to clean up. */ - /* This environment variable should only */ - /* be set when doing system testing since */ - /* tests will collide and break and fail */ - /* because of setting it. */ - -#define TEMPDIR "/tmp" /* This is the default temporary directory. */ - /* The environment variable TMPDIR is */ - /* used prior to this valid by tempnam(3). */ - /* To control the base location of the */ - /* temporary directory, set the TMPDIR */ - /* environment variable to desired path */ - -/* - * The following contains support for error message passing. - * See test_error.c for details. - */ -#define TST_ERR_MESG_SIZE 1023 /* max size of error message */ -#define TST_ERR_FILE_SIZE 511 /* max size of module name used by compiler */ -#define TST_ERR_FUNC_SIZE 127 /* max size of func name */ - -typedef struct { - int te_line; /* line where last error was reported. Use */ - /* "__LINE__" and let compiler do the rest */ - int te_level; /* If set, will prevent current stored */ - /* error to not be overwritten */ - char te_func[TST_ERR_FUNC_SIZE+1]; /* name of function of last error */ - /* Name of function or NULL */ - char te_file[TST_ERR_FILE_SIZE+1]; /* module of last error. Use */ - /* "__FILE__" and let compiler do the rest */ - char te_mesg[TST_ERR_MESG_SIZE+1]; /* string of last error */ - -} _TST_ERROR; - -extern _TST_ERROR Tst_error; /* defined in test_error.c */ -#if __STDC__ -extern void tst_set_error(char *file, int line, char *func, char *fmt, ...); -#else -extern void tst_set_error(); -#endif -extern void tst_clear_error(); - - -/* - * The following define contains the name of an environmental variable - * that can be used to specify the number of iterations. - * It is supported in parse_opts.c and USC_setup.c. - */ -#define USC_ITERATION_ENV "USC_ITERATIONS" - -/* - * The following define contains the name of an environmental variable - * that can be used to specify to iteration until desired time - * in floating point seconds has gone by. - * Supported in USC_setup.c. - */ -#define USC_LOOP_WALLTIME "USC_LOOP_WALLTIME" - -/* - * The following define contains the name of an environmental variable - * that can be used to specify that no functional checks are wanted. - * It is supported in parse_opts.c and USC_setup.c. - */ -#define USC_NO_FUNC_CHECK "USC_NO_FUNC_CHECK" - -/* - * The following define contains the name of an environmental variable - * that can be used to specify the delay between each loop iteration. - * The value is in seconds (fractional numbers are allowed). - * It is supported in parse_opts.c. - */ -#define USC_LOOP_DELAY "USC_LOOP_DELAY" - -/* - * The following prototypes are needed to remove compile errors - * on IRIX systems when compiled with -n32 and -64. - */ -extern void tst_res(int ttype, char *fname, const char *arg_fmt, ...); -extern void tst_resm(int ttype, const char *arg_fmt, ...); -extern void tst_brk(int ttype, char *fname, void (*func)(), - const char *arg_fmt, ...); -extern void tst_brkloop(int ttype, char *fname, void (*func)(), - const char *arg_fmt, ...); -extern void tst_brkm(int ttype, void (*func)(), const char *arg_fmt, ...); -extern void tst_brkloopm(int ttype, void (*func)(), const char *arg_fmt, ...); - -extern int tst_environ(); -extern void tst_exit(); -extern void tst_flush(); - -/* prototypes for the t_res.c functions */ -extern void t_result(char *tcid, int tnum, int ttype, char *tmesg); -extern void tt_exit(); -extern int t_environ(); -extern void t_breakum(char *tcid, int total, int typ, char *msg, void (*fnc)()); - -extern void tst_sig(int fork_flag, void (*handler)(), void (*cleanup)()); -extern void tst_tmpdir(); -extern void tst_rmdir(); - -#endif /* end of __TEST_H__ */ diff --git a/winsup/testsuite/libltp/include/tlibio.h b/winsup/testsuite/libltp/include/tlibio.h deleted file mode 100644 index ac0d5705c..000000000 --- a/winsup/testsuite/libltp/include/tlibio.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ - -#define LIO_IO_SYNC 00001 /* read/write */ -#define LIO_IO_ASYNC 00002 /* reada/writea/aio_write/aio_read */ -#define LIO_IO_SLISTIO 00004 /* single stride sync listio */ -#define LIO_IO_ALISTIO 00010 /* single stride async listio */ -#define LIO_IO_SYNCV 00020 /* single-buffer readv/writev */ -#define LIO_IO_SYNCP 00040 /* pread/pwrite */ - -#ifdef sgi -#define LIO_IO_ATYPES 00077 /* all io types */ -#define LIO_IO_TYPES 00061 /* all io types, non-async */ -#endif /* sgi */ -#ifdef linux -#define LIO_IO_TYPES 00021 /* all io types */ -#endif /* linux */ -#ifdef CRAY -#define LIO_IO_TYPES 00017 /* all io types */ -#endif /* CRAY */ - -#define LIO_WAIT_NONE 00010000 /* return asap -- use with care */ -#define LIO_WAIT_ACTIVE 00020000 /* spin looking at iosw fields, or EINPROGRESS */ -#define LIO_WAIT_RECALL 00040000 /* call recall(2)/aio_suspend(3) */ -#define LIO_WAIT_SIGPAUSE 00100000 /* call pause */ -#define LIO_WAIT_SIGACTIVE 00200000 /* spin waiting for signal */ -#ifdef sgi -#define LIO_WAIT_CBSUSPEND 00400000 /* aio_suspend waiting for callback */ -#define LIO_WAIT_SIGSUSPEND 01000000 /* aio_suspend waiting for signal */ -#define LIO_WAIT_ATYPES 01760000 /* all async wait types, except nowait */ -#define LIO_WAIT_TYPES 00020000 /* all sync wait types (sorta) */ -#endif /* sgi */ -#ifdef linux -#define LIO_WAIT_TYPES 00300000 /* all wait types, except nowait */ -#endif /* linux */ -#ifdef CRAY -#define LIO_WAIT_TYPES 00360000 /* all wait types, except nowait */ -#endif /* CRAY */ - -/* meta wait io */ -/* 00 000 0000 */ - -#ifdef sgi -/* all callback wait types */ -#define LIO_WAIT_CBTYPES (LIO_WAIT_CBSUSPEND) -/* all signal wait types */ -#define LIO_WAIT_SIGTYPES (LIO_WAIT_SIGPAUSE|LIO_WAIT_SIGACTIVE|LIO_WAIT_SIGSUSPEND) -/* all aio_{read,write} or lio_listio */ -#define LIO_IO_ASYNC_TYPES (LIO_IO_ASYNC|LIO_IO_SLISTIO|LIO_IO_ALISTIO) -#endif /* sgi */ -#ifdef linux -/* all signal wait types */ -#define LIO_WAIT_SIGTYPES (LIO_WAIT_SIGPAUSE) -#endif /* linux */ -#ifdef CRAY -/* all signal wait types */ -#define LIO_WAIT_SIGTYPES (LIO_WAIT_SIGPAUSE|LIO_WAIT_SIGACTIVE) -#endif /* CRAY */ - -/* - * This bit provides a way to randomly pick an io type and wait method. - * lio_read_buffer() and lio_write_buffer() functions will call - * lio_random_methods() with the given method. - */ -#define LIO_RANDOM 010000000 - -/* - * This bit provides a way for the programmer to use async i/o with - * signals and to use their own signal handler. By default, - * the signal will only be given to the system call if the wait - * method is LIO_WAIT_SIGPAUSE or LIO_WAIT_SIGACTIVE. - * Whenever these wait methods are used, libio signal handler - * will be used. - */ -#define LIO_USE_SIGNAL 020000000 - -/* - * prototypes/structures for functions in the libio.c module. See comments - * in that module, or man page entries for information on the individual - * functions. - */ - -int stride_bounds(int offset, int stride, int nstrides, - int bytes_per_stride, int *min_byte, int *max_byte); - -int lio_set_debug(int level); -int lio_parse_io_arg1(char *string); -void lio_help1(char *prefex); -int lio_parse_io_arg2(char *string, char **badtoken); -void lio_help2(char *prefex); -int lio_write_buffer(int fd, int method, char *buffer, int size, - int sig, char **errmsg, long wrd); - -int lio_read_buffer(int fd, int method, char *buffer, int size, - int sig, char **errmsg, long wrd); -int lio_random_methods(long mask); - -#if CRAY -#include -int lio_wait4asyncio(int method, int fd, struct iosw **statptr); -int lio_check_asyncio(char *io_type, int size, struct iosw *status); -#endif /* CRAY */ -#ifdef sgi -#include -int lio_wait4asyncio(int method, int fd, aiocb_t *aiocbp); -int lio_check_asyncio(char *io_type, int size, aiocb_t *aiocbp, int method); -#endif /* sgi */ - -/* - * Define the structure that contains the infomation that is used - * by the parsing and help functions. - */ -struct lio_info_type { - char *token; - int bits; - char *desc; -}; - - diff --git a/winsup/testsuite/libltp/include/usctest.h b/winsup/testsuite/libltp/include/usctest.h deleted file mode 100644 index 232e67a98..000000000 --- a/winsup/testsuite/libltp/include/usctest.h +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ - -/* $Id$ */ - -/********************************************************** - * - * IRIX/Linux Feature Test and Evaluation - Silicon Graphics, Inc. - * - * FUNCTION NAME : usctest.h - * - * FUNCTION TITLE : System Call Test Macros - * - * SYNOPSIS: - * See DESCRIPTION below. - * - * AUTHOR : William Roske - * - * INITIAL RELEASE : UNICOS 7.0 - * - * DESCRIPTION - * TEST(SCALL) - calls a system call - * TEST_VOID(SCALL) - same as TEST() but for syscalls with no return value. - * TEST_CLEANUP - print the log of errno return counts if STD_ERRNO_LOG - * is set. - * TEST_PAUSEF(HAND) - Pause for SIGUSR1 if the pause flag is set. - * Use "hand" as the interrupt handling function - * TEST_PAUSE - Pause for SIGUSR1 if the pause flag is set. - * Use internal function to do nothing on signal and go on. - * TEST_LOOPING(COUNTER) - Conditional to check if test should - * loop. Evaluates to TRUE (1) or FALSE (0). - * TEST_ERROR_LOG(eno) - log that this errno was received, - * if STD_ERRNO_LOG is set. - * TEST_EXP_ENOS(array) - set the bits in TEST_VALID_ENO array at - * positions specified in integer "array" - * - * RETURN VALUE - * TEST(SCALL) - Global Variables set: - * int TEST_RETURN=return code from SCALL - * int TEST_ERRNO=value of errno at return from SCALL - * TEST_VOID(SCALL) - Global Variables set: - * int TEST_ERRNO=value of errno at return from SCALL - * TEST_CLEANUP - None. - * TEST_PAUSEF(HAND) - None. - * TEST_PAUSE - None. - * TEST_LOOPING(COUNTER) - True if COUNTER < STD_LOOP_COUNT or - * STD_INFINITE is set. - * TEST_ERROR_LOG(eno) - None - * TEST_EXP_ENOS(array) - None - * - * KNOWN BUGS - * If you use the TEST_PAUSE or TEST_LOOPING macros, you must - * link in parse_opts.o, which contains the code for those functions. - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#ifndef __USCTEST_H__ -#define __USCTEST_H__ 1 - -#ifndef _SC_CLK_TCK -#include -#endif - -#include - -/* - * Ensure that PATH_MAX is defined - */ -#ifndef PATH_MAX -#ifdef MAXPATHLEN -#define PATH_MAX MAXPATHLEN -#else -#define PATH_MAX 1024 -#endif -#endif - -#ifndef CRAY -#ifndef BSIZE -#define BSIZE BBSIZE -#endif -#endif - -/*********************************************************************** - * Define option_t structure type. - * Entries in this struct are used by the parse_opts routine - * to indicate valid options and return option arguments - ***********************************************************************/ -typedef struct { - char *option; /* Valid option string (one option only) like "a:" */ - int *flag; /* pointer to location to set true if option given */ - char **arg; /* pointer to location to place argument, if needed */ -} option_t; - -/*********************************************************************** - * The following globals are defined in parse_opts.c but must be - * externed here because they are used in the macros defined below. - ***********************************************************************/ -extern int STD_FUNCTIONAL_TEST, /* turned off by -f to not do functional test */ - STD_TIMING_ON, /* turned on by -t to print timing stats */ - STD_PAUSE, /* turned on by -p to pause before loop */ - STD_INFINITE, /* turned on by -c0 to loop forever */ - STD_LOOP_COUNT, /* changed by -cn to set loop count to n */ - STD_ERRNO_LOG, /* turned on by -e to log errnos returned */ - STD_ERRNO_LIST[], /* counts of errnos returned. indexed by errno */ - STD_COPIES, - STD_argind; - -extern float STD_LOOP_DURATION, /* wall clock time to iterate */ - STD_LOOP_DELAY; /* delay time after each iteration */ - -#define USC_MAX_ERRNO 2000 - -/********************************************************************** - * Prototype for parse_opts routine - **********************************************************************/ -extern const char *parse_opts(int ac, char **av, option_t *user_optarr, void (*uhf)()); - - -/* - * define a structure - */ -struct usc_errno_t { - int flag; -}; - -/*********************************************************************** - **** - **** - **** - **********************************************************************/ -#ifdef _USC_LIB_ - -extern int TEST_RETURN; -extern int TEST_ERRNO; - -#else -/*********************************************************************** - * Global array of bit masks to indicate errnos that are expected. - * Bits set by TEST_EXP_ENOS() macro and used by TEST_CLEANUP() macro. - ***********************************************************************/ -struct usc_errno_t TEST_VALID_ENO[USC_MAX_ERRNO]; - -/*********************************************************************** - * Globals for returning the return code and errno from the system call - * test macros. - ***********************************************************************/ -int TEST_RETURN; -int TEST_ERRNO; - -/*********************************************************************** - * temporary variables for determining max and min times in TEST macro - ***********************************************************************/ -long btime, etime, tmptime; - -#endif /* _USC_LIB_ */ - -/*********************************************************************** - * structure for timing accumulator and counters - ***********************************************************************/ -struct tblock { - long tb_max; - long tb_min; - long tb_total; - long tb_count; -}; - -/*********************************************************************** - * The following globals are externed here so that they are accessable - * in the macros that follow. - ***********************************************************************/ -extern struct tblock tblock; -extern void STD_go(); -extern int (*_TMP_FUNC)(void); -extern void STD_opts_help(); - - -/*********************************************************************** - * TEST: calls a system call - * - * parameters: - * SCALL = system call and parameters to execute - * - ***********************************************************************/ -#define TEST(SCALL) TEST_RETURN = (unsigned) SCALL; TEST_ERRNO=errno; - -/*********************************************************************** - * TEST_VOID: calls a system call - * - * parameters: - * SCALL = system call and parameters to execute - * - * Note: This is IDENTICAL to the TEST() macro except that it is intended - * for use with syscalls returning no values (void syscall()). The - * Typecasting nothing (void) into an unsigned integer causes compilation - * errors. - * - ***********************************************************************/ -#define TEST_VOID(SCALL) SCALL; TEST_ERRNO=errno; - -/*********************************************************************** - * TEST_CLEANUP: print system call timing stats and errno log entries - * to stdout if STD_TIMING_ON and STD_ERRNO_LOG are set, respectively. - * Do NOT print ANY information if no system calls logged. - * - * parameters: - * none - * - ***********************************************************************/ -#define TEST_CLEANUP \ -if ( STD_ERRNO_LOG ) { \ - for (tmptime=0; tmptime--> - * --> - * - * The maximum length of this record is defined by the WLOG_REC_MAX_SIZE - * record. Note that the 2-byte record length forces this to be - * <= 64k bytes. - * - * Note that there is lots of bit-masking done here. The w_pathlen, - * w_hostlen, and w_patternlen fields MUST have enough bits to hold - * WLOG_MAX_PATH, WLOG_MAX_HOST, and WLOG_MAX_PATTERN bytes respectivly. - */ - -struct wlog_rec_disk { -#ifdef CRAY - uint w_offset : 44; /* file offset */ - uint w_extra0 : 20; /* EXTRA BITS IN WORD 0 */ -#else - uint w_offset : 32; /* file offset */ - uint w_extra0 : 32; /* EXTRA BITS IN WORD 0 */ -#endif - - uint w_nbytes : 32; /* # bytes written */ - uint w_oflags : 32; /* low-order open() flags */ - - uint w_pid : 17; /* pid doing the write */ - uint w_pathlen : 7; /* length of file path */ - uint w_patternlen: 6; /* length of pattern */ - uint w_hostlen : 4; /* length of host */ - uint w_done : 1; /* 1 if io confirmed done */ - uint w_async : 1; /* 1 if async write (writea) */ - uint w_extra2 : 28; /* EXTRA BITS IN WORD 2 */ -}; - -/* - * write log file datatype. wlog_open() initializes this structure - * which is then passed around to the various wlog_xxx routines. - */ - -struct wlog_file { - int w_afd; /* append fd */ - int w_rfd; /* random-access fd */ - char w_file[1024]; /* name of the write_log */ -}; - -/* - * return value defines for the user-supplied function to - * wlog_scan_backward(). - */ - -#define WLOG_STOP_SCAN 0 -#define WLOG_CONTINUE_SCAN 1 - -/* - * wlog prototypes - */ - -#if __STDC__ -extern int wlog_open(struct wlog_file *wfile, int trunc, int mode); -extern int wlog_close(struct wlog_file *wfile); -extern int wlog_record_write(struct wlog_file *wfile, - struct wlog_rec *wrec, long offset); -extern int wlog_scan_backward(struct wlog_file *wfile, int nrecs, - int (*func)(struct wlog_rec *rec), - long data); -#else -int wlog_open(); -int wlog_close(); -int wlog_record_write(); -int wlog_scan_backward(); -#endif - -extern char Wlog_Error_String[]; - -#endif /* _WRITE_LOG_H_ */ - diff --git a/winsup/testsuite/libltp/lib/dataascii.c b/winsup/testsuite/libltp/lib/dataascii.c deleted file mode 100644 index 5bc201852..000000000 --- a/winsup/testsuite/libltp/lib/dataascii.c +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#include -#include -#include "dataascii.h" - -#define CHARS "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghjiklmnopqrstuvwxyz\n" -#define CHARS_SIZE sizeof(CHARS) - -#ifdef UNIT_TEST -#include /* malloc */ -#endif - -static char Errmsg[80]; - -int -dataasciigen(listofchars, buffer, bsize, offset) -char *listofchars; /* a null terminated list of characters */ -char *buffer; -int bsize; -int offset; -{ - int cnt; - int total; - int ind; /* index into CHARS array */ - char *chr; - int chars_size; - const char *charlist; - - chr=buffer; - total=offset+bsize; - - if ( listofchars == NULL ) { - charlist=CHARS; - chars_size=CHARS_SIZE; - } - else { - charlist=listofchars; - chars_size=strlen(listofchars); - } - - for(cnt=offset; cnt -#include -#include /* memset */ -#include /* rand */ -#include "databin.h" - -#if UNIT_TEST -#include -#endif - -static char Errmsg[80]; - -void -databingen (mode, buffer, bsize, offset) -int mode; /* either a, c, r, o, z or C */ -unsigned char *buffer; /* buffer pointer */ -int bsize; /* size of buffer */ -int offset; /* offset into the file where buffer starts */ -{ -int ind; - - switch (mode) - { - default: - case 'a': /* alternating bit pattern */ - memset(buffer,0x55,bsize); - break; - - case 'c': /* checkerboard pattern */ - memset(buffer,0xf0,bsize); - break; - - case 'C': /* */ - for (ind=0;ind< bsize;ind++) { - buffer[ind] = ((offset+ind)%8 & 0177); - } - break; - - case 'o': - memset(buffer,0xff,bsize); - break; - - case 'z': - memset(buffer,0x0,bsize); - break; - - case 'r': /* random */ - for (ind=0;ind< bsize;ind++) { - buffer[ind] = (rand () & 0177) | 0100; - } - } -} - -/*********************************************************************** - * - * return values: - * >= 0 : error at byte offset into the file, offset+buffer[0-(bsize-1)] - * < 0 : no error - ***********************************************************************/ -int -databinchk(mode, buffer, bsize, offset, errmsg) -int mode; /* either a, c, r, z, o, or C */ -unsigned char *buffer; /* buffer pointer */ -int bsize; /* size of buffer */ -int offset; /* offset into the file where buffer starts */ -char **errmsg; -{ - int cnt; - unsigned char *chr; - int total; - long expbits; - long actbits; - - chr=buffer; - total=bsize; - - if ( errmsg != NULL ) { - *errmsg = Errmsg; - } - - switch (mode) - { - default: - case 'a': /* alternating bit pattern */ - expbits=0x55; - break; - - case 'c': /* checkerboard pattern */ - expbits=0xf0; - break; - - case 'C': /* counting pattern */ - for (cnt=0;cnt< bsize;cnt++) { - expbits = ((offset+cnt)%8 & 0177); - - if ( buffer[cnt] != expbits ) { - sprintf(Errmsg, - "data mismatch at offset %d, exp:%#lo, act:%#o", - offset+cnt, expbits, buffer[cnt]); - return offset+cnt; - } - } - sprintf(Errmsg, "all %d bytes match desired pattern", bsize); - return -1; - - case 'o': - expbits=0xff; - break; - - case 'z': - expbits=0; - break; - - case 'r': - return -1; /* no check can be done for random */ - } - - for (cnt=0; cnt< word-offset in file (same #) >< pid > - -1234567890123456789012345678901234567890123456789012345678901234 -________________________________________________________________ -< pid >< offset in file of this word >< pid > - - -8 bits to a bytes == character - NBPW 8 -************/ - -#include -#include -#ifdef UNIT_TEST -#include -#include -#endif - -static char Errmsg[80]; - -#define LOWER16BITS(X) (X & 0177777) -#define LOWER32BITS(X) (X & 0xffffffff) - -/*** -#define HIGHBITS(WRD, bits) ( (-1 << (64-bits)) & WRD) -#define LOWBITS(WRD, bits) ( (-1 >> (64-bits)) & WRD) -****/ - -#define NBPBYTE 8 /* number bits per byte */ - -#ifndef DEBUG -#define DEBUG 0 -#endif - -/*********************************************************************** - * - * - * 1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 15 bytes - * 1234567890123456789012345678901234567890123456789012345678901234 bits - * ________________________________________________________________ 1 word - * < pid >< offset in file of this word >< pid > - * - * the words are put together where offset zero is the start. - * thus, offset 16 is the start of the second full word - * Thus, offset 8 is in middle of word 1 - ***********************************************************************/ -int -datapidgen(pid, buffer, bsize, offset) -int pid; -char *buffer; -int bsize; -int offset; -{ -#if CRAY - - int cnt; - int tmp; - char *chr; - long *wptr; - long word; - int woff; /* file offset for the word */ - int boff; /* buffer offset or index */ - int num_full_words; - - num_full_words = bsize/NBPW; - boff = 0; - - if ( cnt=(offset % NBPW) ) { /* partial word */ - - woff = offset - cnt; -#if DEBUG -printf("partial at beginning, cnt = %d, woff = %d\n", cnt, woff); -#endif - - word = ((LOWER16BITS(pid) << 48) | (LOWER32BITS(woff) << 16) | LOWER16BITS(pid)); - - chr = (char *)&word; - - for (tmp=0; tmp minus one copies - * of the current process. There are two modes in how the forks - * will be done. Mode 0 (default) will have all new processes - * be childern of the parent process. Using Mode 1, - * the parent process will have one child and that child will - * fork the next process, if necessary, and on and on. - * The forker function will return the number of successful - * forks. This value will be different for the parent and each child. - * Using mode 0, the parent will get the total number of successful - * forks. Using mode 1, the newest child will get the total number - * of forks. The parent will get a return value of 1. - * - * The forker function also updates the global variables - * Forker_pids[] and Forker_npids. The Forker_pids array will - * be updated to contain the pid of each new process. The - * Forker_npids variable contains the number of entries - * in Forker_pids. Note, not all processes will have - * access to all pids via Forker_pids. If using mode 0, only the - * parent process and the last process will have all information. - * If using mode 1, only the last child process will have all information. - * - * If the prefix parameter is not NULL and the fork system call fails, - * a error message will be printed to stderr. The error message - * the be preceeded with prefix string. If prefix is NULL, - * no error message is printed. - * - * SPECIAL REQUIREMENTS - * None. - * - * UPDATE HISTORY - * This should contain the description, author, and date of any - * "interesting" modifications (i.e. info should helpful in - * maintaining/enhancing this module). - * username description - * ---------------------------------------------------------------- - * rrl This functions will first written during - * the SFS testing days, 1993. - * - * BUGS/LIMITATIONS - * The child pids are stored in the fixed array, Forker_pids. - * The array only has space for 4098 pids. Only the first - * 4098 pids will be stored in the array. - * - **************************************************************/ - -#include -#include -#include /* fork, getpid, sleep */ -#include -#include -#include "forker.h" - -extern int errno; - -int Forker_pids[FORKER_MAX_PIDS]; /* holds pids of forked processes */ -int Forker_npids=0; /* number of entries in Forker_pids */ - -/*********************************************************************** - * - * This function will fork and the parent will exit zero and - * the child will return. This will orphan the returning process - * putting it in the background. - * - * Return Value - * 0 : if fork did not fail - * !0 : if fork failed, the return value will be the errno. - ***********************************************************************/ -int -background(prefix) -char *prefix; -{ - switch (fork()) { - case -1: - if ( prefix != NULL ) - fprintf(stderr, "%s: In %s background(), fork() failed, errno:%d %s\n", - prefix, __FILE__, errno, strerror(errno)); - exit(errno); - - case 0: /* child process */ - break; - - default: - exit(0); - } - - return 0; - -} /* end of background */ - -/*********************************************************************** - * Forker will fork ncopies-1 copies of self. - * - ***********************************************************************/ -int -forker(ncopies, mode, prefix) -int ncopies; -int mode; /* 0 - all childern of parent, 1 - only 1 direct child */ -char *prefix; /* if ! NULL, an message will be printed to stderr */ - /* if fork fails. The prefix (program name) will */ - /* preceed the message */ -{ - int cnt; - int pid; - static int ind = 0; - - Forker_pids[ind]=0; - - for ( cnt=1; cnt < ncopies; cnt++ ) { - - switch ( mode ) { - case 1 : /* only 1 direct child */ - if ( (pid = fork()) == -1 ) { - if ( prefix != NULL ) - fprintf(stderr, "%s: %s,forker(): fork() failed, errno:%d %s\n", - prefix, __FILE__, errno, strerror(errno)); - return 0; - } - Forker_npids++; - - switch (pid ) { - case 0: /* child - continues the forking */ - - if ( Forker_npids < FORKER_MAX_PIDS ) - Forker_pids[Forker_npids-1]=getpid(); - break; - - default: /* parent - stop the forking */ - if ( Forker_npids < FORKER_MAX_PIDS ) - Forker_pids[Forker_npids-1]=pid; - return cnt-1; - } - - break; - - default : /* all new processes are childern of parent */ - if ( (pid = fork()) == -1 ) { - if ( prefix != NULL ) - fprintf(stderr, "%s: %s,forker(): fork() failed, errno:%d %s\n", - prefix, __FILE__, errno, strerror(errno)); - return cnt-1; - } - Forker_npids++; - - switch (pid ) { - case 0: /* child - stops the forking */ - if ( Forker_npids < FORKER_MAX_PIDS ) - Forker_pids[Forker_npids-1]=getpid(); - return cnt; - - default: /* parent - continues the forking */ - if ( Forker_npids < FORKER_MAX_PIDS ) - Forker_pids[Forker_npids-1]=pid; - break; - } - break; - } - } - - if ( Forker_npids < FORKER_MAX_PIDS ) - Forker_pids[Forker_npids]=0; - return cnt-1; - -} /* end of forker */ - - -#if UNIT_TEST - -/* - * The following is a unit test main for the background and forker - * functions. - */ - -int -main(argc, argv) -int argc; -char **argv; -{ - int ncopies=1; - int mode=0; - int ret; - int ind; - - if ( argc == 1 ) { - printf("Usage: %s ncopies [mode]\n", argv[0]); - exit(1); - } - - if ( sscanf(argv[1], "%i", &ncopies) != 1 ) { - printf("%s: ncopies argument must be integer\n", argv[0]); - exit(1); - } - - if ( argc == 3 ) - if ( sscanf(argv[2], "%i", &mode) != 1 ) { - printf("%s: mode argument must be integer\n", argv[0]); - exit(1); - } - - printf("Starting Pid = %d\n", getpid()); - ret=background(argv[0]); - printf("After background() ret:%d, pid = %d\n", ret, getpid()); - - ret=forker(ncopies, mode, argv[0]); - - printf("forker(%d, %d, %s) ret:%d, pid = %d, sleeping 30 seconds.\n", - ncopies, mode, argv[0], ret, getpid()); - - printf("%d My version of Forker_pids[], Forker_npids = %d\n", - getpid(), Forker_npids); - - for (ind=0; ind -#ifdef __CYGWIN__ -#include -#endif - -char * -get_high_address() -{ -#ifdef __CYGWIN__ - return VirtualAlloc (NULL, 4096, MEM_COMMIT, PAGE_NOACCESS) + 2048; -#else - return (char *)sbrk(0) + 16384; -#endif -} diff --git a/winsup/testsuite/libltp/lib/libtestsuite.c b/winsup/testsuite/libltp/lib/libtestsuite.c deleted file mode 100644 index e974c871e..000000000 --- a/winsup/testsuite/libltp/lib/libtestsuite.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * libtestsuite.c - * - * DESCRIPTION - * file containing generic routines which are used by some of the LTP - * testsuite tests. Currently, the following routines are present in - * this library: - * - * my_getpwnam(), do_file_setup() - * - */ -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -struct passwd * -my_getpwnam(char *name) -{ - struct passwd *saved_pwent; - struct passwd *pwent; - - if ((pwent = getpwnam(name)) == NULL) { - perror("getpwnam"); - tst_brkm(TBROK, NULL, "getpwnam() failed"); - } - saved_pwent = (struct passwd *)malloc(sizeof(struct passwd)); - - *saved_pwent = *pwent; - - return(saved_pwent); -} - -void -do_file_setup(char *fname) -{ - int fd; - - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_resm(TBROK, "open(%s, O_RDWR|O_CREAT,0700) Failed, " - "errno=%d : %s", fname, errno, strerror(errno)); - } - - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed on file create, errno=%d : " - "%s", fname, errno, strerror(errno)); - } -} diff --git a/winsup/testsuite/libltp/lib/open_flags.c b/winsup/testsuite/libltp/lib/open_flags.c deleted file mode 100644 index 3105955d4..000000000 --- a/winsup/testsuite/libltp/lib/open_flags.c +++ /dev/null @@ -1,330 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -/************************************************************** - * - * OS Testing - Silicon Graphics, Inc. - * - * FUNCTION NAME : parse_open_flags - * openflags2symbols - * - * FUNCTION TITLE : converts open flag symbols into bitmask - * converts open flag bitmask into symbols - * - * SYNOPSIS: - * int parse_open_flags(symbols, badname) - * char *symbols; - * char **badname; - * - * char *openflags2symbols(openflags, sep, mode) - * int openflags; - * char *sep; - * int mode; - * - * AUTHOR : Richard Logan - * - * CO-PILOT(s) : Dean Roehrich - * - * INITIAL RELEASE : UNICOS 8.0 - * - * DESIGN DESCRIPTION - * The parse_open_flags function can be used to convert - * a list of comma separated open(2) flag symbols (i.e. O_TRUNC) - * into the bitmask that can be used by open(2). - * If a symbol is unknown and is not NULL, - * will updated to point that symbol in . - * Parse_open_flags will return -1 on this error. - * Otherwise parse_open_flags will return the open flag bitmask. - * If parse_open_flags returns, will left unchanged. - * - * The openflags2symbols function attempts to convert open flag - * bits into human readable symbols (i.e. O_TRUNC). If there - * are more than one symbol, the string will be placed as - * a separator between symbols. Commonly used separators would - * be a comma "," or pipe "|". If is one and not all - * bits can be converted to symbols, the "UNKNOWN" - * symbol will be added to return string. - * Openflags2symbols will return the indentified symbols. - * If no symbols are recognized the return value will be a empty - * string or the "UNKNOWN" symbol. - * - * SPECIAL REQUIREMENTS - * None. - * - * UPDATE HISTORY - * This should contain the description, author, and date of any - * "interesting" modifications (i.e. info should helpful in - * maintaining/enhancing this module). - * username description - * ---------------------------------------------------------------- - * rrl This code was first created during the beginning - * of the SFS testing days. I think that was in 1993. - * This code was updated in 05/96. - * (05/96) openflags2symbols was written. - * - * BUGS/LIMITATIONS - * Currently (05/96) all known symbols are coded into openflags2symbols. - * If new open flags are added this code will have to updated - * to know about them or they will not be recognized. - * - **************************************************************/ - -#include -#include -#include -#include -#include /* strcat */ -#include "open_flags.h" - -#define UNKNOWN_SYMBOL "UNKNOWN" - -static char Open_symbols[512]; /* space for openflags2symbols return value */ - -struct open_flag_t { - const char *symbol; - int flag; -}; - -static struct open_flag_t Open_flags[] = { - { "O_RDONLY", O_RDONLY }, - { "O_WRONLY", O_WRONLY }, - { "O_RDWR", O_RDWR }, - { "O_SYNC", O_SYNC }, - { "O_CREAT", O_CREAT }, - { "O_TRUNC", O_TRUNC }, - { "O_EXCL", O_EXCL }, - { "O_APPEND", O_APPEND }, - { "O_NONBLOCK", O_NONBLOCK }, -#if O_NOCTTY - { "O_NOCTTY", O_NOCTTY }, -#endif -#if O_DSYNC - { "O_DSYNC", O_DSYNC }, -#endif -#if O_RSYNC - { "O_RSYNC", O_RSYNC }, -#endif -#if O_ASYNC - { "O_ASYNC", O_ASYNC }, -#endif -#if O_PTYIGN - { "O_PTYIGN", O_PTYIGN }, -#endif -#if O_NDELAY - { "O_NDELAY", O_NDELAY }, -#endif -#if O_RAW - { "O_RAW", O_RAW }, -#endif -#ifdef O_SSD - { "O_SSD", O_SSD }, -#endif -#if O_BIG - { "O_BIG", O_BIG }, -#endif -#if O_PLACE - { "O_PLACE", O_PLACE }, -#endif -#if O_RESTART - { "O_RESTART", O_RESTART }, -#endif -#if O_SFSXOP - { "O_SFSXOP", O_SFSXOP }, -#endif -#if O_SFS_DEFER_TM - { "O_SFS_DEFER_TM", O_SFS_DEFER_TM }, -#endif -#if O_WELLFORMED - { "O_WELLFORMED", O_WELLFORMED }, -#endif -#if O_LDRAW - { "O_LDRAW", O_LDRAW }, -#endif -#if O_T3D - { "O_T3D", O_T3D }, -#endif /* O_T3D */ -#if O_PARALLEL - { "O_PARALLEL", O_PARALLEL }, - { "O_FSA", O_PARALLEL|O_WELLFORMED|O_RAW }, /* short cut */ -#endif /* O_PARALLEL */ -#ifdef O_LARGEFILE - { "O_LARGEFILE", O_LARGEFILE }, -#endif -#ifdef O_DIRECT - { "O_DIRECT", O_DIRECT }, -#endif -#ifdef O_PRIV - { "O_PRIV", O_PRIV }, -#endif - -}; - -int -parse_open_flags(char *string, char **badname) -{ - int bits = 0; - char *name; - char *cc; - char savecc; - int found; - int ind; - - name=string; - cc=name; - - while ( 1 ) { - - for(; ((*cc != ',') && (*cc != '\0')); cc++); - savecc = *cc; - *cc = '\0'; - - found = 0; - - for(ind=0; ind < sizeof(Open_flags)/sizeof(struct open_flag_t); ind++) { - if ( strcmp(name, Open_flags[ind].symbol) == 0 ) { - bits |= Open_flags[ind].flag; - found=1; - break; - } - } - - *cc = savecc; /* restore string */ - - if ( found == 0 ) { /* invalid name */ - if ( badname != NULL ) - *badname = name; - return -1; - } - - if ( savecc == '\0' ) - break; - - name = ++cc; - - } /* end while */ - - return bits; - -} /* end of parse_open_flags */ - - -char * -openflags2symbols(int openflags, char *sep, int mode) -{ - int ind; - int size; - int bits = openflags; - int havesome=0; - - Open_symbols[0]='\0'; - - size=sizeof(Open_flags)/sizeof(struct open_flag_t); - - /* - * Deal with special case of O_RDONLY. If O_WRONLY nor O_RDWR - * bits are not set, assume O_RDONLY. - */ - - if ( (bits & (O_WRONLY | O_RDWR)) == 0 ) { - strcat(Open_symbols, "O_RDONLY"); - havesome=1; - } - - /* - * Loop through all but O_RDONLY elments of Open_flags - */ - for(ind=1; ind < size; ind++) { - - if ( (bits & Open_flags[ind].flag) == Open_flags[ind].flag ) { - if ( havesome ) - strcat(Open_symbols, sep); - - strcat(Open_symbols, Open_flags[ind].symbol); - havesome++; - - /* remove flag bits from bits */ - bits = bits & (~Open_flags[ind].flag); - } - } - - /* - * If not all bits were identified and mode was equal to 1, - * added UNKNOWN_SYMBOL to return string - */ - if ( bits && mode == 1 ) { /* not all bits were identified */ - if ( havesome ) - strcat(Open_symbols, sep); - strcat(Open_symbols, UNKNOWN_SYMBOL); - } - - return Open_symbols; - -} /* end of openflags2symbols */ - - -#ifdef UNIT_TEST - -/* - * The following code provides a UNIT test main for - * parse_open_flags and openflags2symbols functions. - */ - -int -main(argc, argv) -int argc; -char **argv; -{ - int bits; - int ret; - char *err; - - if (argc == 1 ) { - printf("Usage: %s openflagsbits\n\t%s symbols\n", argv[0], argv[0]); - exit(1); - } - - if ( sscanf(argv[1], "%i", &bits) == 1 ) { - printf("openflags2symbols(%#o, \",\", 1) returned %s\n", - bits, openflags2symbols(bits, ",", 1)); - - } else { - ret=parse_open_flags(argv[1], &err); - if ( ret == -1 ) - printf("parse_open_flags(%s, &err) returned -1, err = %s\n", - argv[0], err); - else - printf("parse_open_flags(%s, &err) returned %#o\n", argv[0], ret); - } - - exit(0); -} - -#endif /* end of UNIT_TEST */ diff --git a/winsup/testsuite/libltp/lib/parse_opts.c b/winsup/testsuite/libltp/lib/parse_opts.c deleted file mode 100644 index c40181395..000000000 --- a/winsup/testsuite/libltp/lib/parse_opts.c +++ /dev/null @@ -1,878 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ - -/* $Id$ */ - -/********************************************************** - * - * OS Testing - Silicon Graphics, Inc. - * - * FUNCTION NAME : parse_opts - * - * FUNCTION TITLE : parse standard & user options for system call tests - * - * SYNOPSIS: - * #include "usctest.h" - * - * char *parse_opts(ac, av, user_optarr, uhf) - * int ac; - * char **av; - * option_t user_optarr[]; - * void (*uhf)(); - * - * AUTHOR : William Roske/Richard Logan - * - * INITIAL RELEASE : UNICOS 7.0 - * - * DESCRIPTION - * The parse_opts library routine takes that argc and argv parameters - * recevied by main() and an array of structures defining user options. - * It parses the command line setting flag and argument locations - * associated with the options. It uses getopt to do the actual cmd line - * parsing. uhf() is a function to print user define help - * - * This module contains the functions usc_global_setup_hook and - * usc_test_looping, which are called by marcos defined in usctest.h. - * - * RETURN VALUE - * parse_opts returns a pointer to an error message if an error occurs. - * This pointer is (char *)NULL if parsing is successful. - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef __CYGWIN__ -#include -#endif - - -#if UNIT_TEST -#include -#endif /* UNIT_TEST */ - -#include "test.h" -#define _USC_LIB_ 1 /* indicates we are the library to the usctest.h include */ -#include "usctest.h" - -#ifndef USC_COPIES -#define USC_COPIES "USC_COPIES" -#endif - -#ifndef UNIT_TEST -#define UNIT_TEST 0 -#endif - -#ifndef DEBUG -#define DEBUG 0 -#endif - -/* The timing information block. */ -struct tblock tblock={0,((long) -1)>>1,0,0}; - - -/* Define flags and args for standard options */ -int STD_FUNCTIONAL_TEST=1, /* flag indicating to do functional testing code */ - STD_TIMING_ON=0, /* flag indicating to print timing stats */ - STD_PAUSE=0, /* flag indicating to pause before actual start, */ - /* for contention mode */ - STD_INFINITE=0, /* flag indciating to loop forever */ - STD_LOOP_COUNT=1, /* number of iterations */ - STD_COPIES=1, /* number of copies */ - STD_ERRNO_LOG=0; /* flag indicating to do errno logging */ - -float STD_LOOP_DURATION=0.0, /* duration value in fractional seconds */ - STD_LOOP_DELAY=0.0; /* loop delay value in fractional seconds */ - - -char **STD_opt_arr = NULL; /* array of option strings */ -int STD_nopts=0, /* number of elements in STD_opt_arr */ - STD_argind=1; /* argv index to next argv element */ - /* (first argument) */ - /* To getopt users, it is like optind */ - -/* - * The following variables are to support system testing additions. - */ -static int STD_TP_barrier=0; /* flag to do barrier in TEST_PAUSE */ - /* 2 - wait_barrier(), 3 - set_barrier(), * - barrier() */ -static int STD_LP_barrier=0; /* flag to do barrier in TEST_LOOPING */ - /* 2 - wait_barrier(), 3 - set_barrier(), * - barrier() */ -static int STD_TP_shmem_sz=0; /* shmalloc this many words per pe in TEST_PAUSE */ -static int STD_LD_shmem=0; /* flag to do shmem_puts and shmem_gets during delay */ -static int STD_LP_shmem=0; /* flag to do shmem_puts and gets during TEST_LOOPING */ -static int STD_LD_recfun=0; /* do recressive function calls in loop delay */ -static int STD_LP_recfun=0; /* do recressive function calls in TEST_LOOPING */ -static int STD_TP_sbrk=0; /* do sbrk in TEST_PAUSE */ -static int STD_LP_sbrk=0; /* do sbrk in TEST_LOOPING */ -static char *STD_start_break=0; /* original sbrk size */ -static int Debug=0; - -struct std_option_t { - const char *optstr; - const char *help; - char *flag; - char **arg; -} std_options[] = { - { "c:", " -c n Run n copies concurrently\n", NULL, NULL}, - { "e" , " -e Turn on errno logging\n", NULL, NULL}, - { "f" , " -f Turn off functional testing\n", NULL, NULL}, - { "h" , " -h Show this help screen\n", NULL, NULL}, - { "i:", " -i n Execute test n times\n", NULL, NULL}, - { "I:", " -I x Execute test for x seconds\n", NULL, NULL}, - { "p" , " -p Pause for SIGUSR1 before starting\n", NULL, NULL}, - { "P:", " -P x Pause for x seconds between iterations\n", NULL, NULL}, - { "t" , " -t Turn on syscall timing\n", NULL, NULL}, - {NULL, NULL, NULL, NULL}}; - -void print_help(void (*user_help)()); - -/* - * Structure for usc_recressive_func argument - */ -struct usc_bigstack_t { - char space[4096]; -}; - -static struct usc_bigstack_t *STD_bigstack=NULL; - -/* - * Counter of errnos returned (-e option). Indexed by errno. - * Make the array USC_MAX_ERRNO long. That is the first Fortran - * Lib errno. No syscall should return an errno that high. - */ -int STD_ERRNO_LIST[USC_MAX_ERRNO]; - -/* define the string length for Mesg and Mesg2 strings */ -#define STRLEN 2048 - -static char Mesg2[STRLEN]; /* holds possible return string */ -static void usc_recressive_func(); - -/* - * Define bits for options that might have env variable default - */ -#define OPT_iteration 01 -#define OPT_nofunccheck 02 -#define OPT_duration 04 -#define OPT_delay 010 -#define OPT_copies 020 - - -/********************************************************************** - * parse_opts: - **********************************************************************/ -const char * -parse_opts(int ac, char **av, option_t *user_optarr, void (*uhf)()) -{ - int found; /* flag to indicate that an option specified was */ - /* found in the user's list */ - int k; /* scratch integer for returns and short time usage */ - float ftmp; /* tmp float for parsing env variables */ - char *ptr; /* used in getting env variables */ - int options=0; /* no options specified */ - int optstrlen, i; - char *optionstr; - int opt; /* return of getopt */ - - /* - * If not the first time this function is called, release the old STD_opt_arr - * vector. - */ - - if ( STD_opt_arr != NULL ) { - free(STD_opt_arr); - STD_opt_arr=NULL; - } - /* Calculate how much space we need for the option string */ - optstrlen = 0; - for (i = 0; std_options[i].optstr; ++i) - optstrlen += strlen(std_options[i].optstr); - if (user_optarr) - for (i = 0; user_optarr[i].option; ++i) { - if (strlen(user_optarr[i].option) > 2) - return "parse_opts: ERROR - Only short options are allowed"; - optstrlen += strlen(user_optarr[i].option); - } - optstrlen += 1; - - /* Create the option string for getopt */ - optionstr = (char *)malloc(optstrlen); - if (!optionstr) - return "parse_opts: ERROR - Could not allocate memory for optionstr"; - - optionstr[0] = '\0'; - - for (i = 0; std_options[i].optstr; ++i) - strcat(optionstr, std_options[i].optstr); - if (user_optarr) - for (i = 0; user_optarr[i].option; ++i) - /* only add the option if it wasn't there already */ - if (strchr(optionstr, user_optarr[i].option[0]) == NULL) - strcat(optionstr, user_optarr[i].option); - -#if DEBUG > 1 - printf("STD_nopts = %d\n", STD_nopts); -#endif - - /* - * Loop through av parsing options. - */ - while ( (opt = getopt(ac, av, optionstr)) > 0) { - - STD_argind = optind; -#if DEBUG > 0 - printf("parse_opts: getopt returned '%c'\n", opt); -#endif - - switch (opt) { - case '?': /* Unknown option */ - return "Unknown option"; - break; - case ':': /* Missing Arg */ - return "Missing argument"; - break; - case 'i': /* Iterations */ - options |= OPT_iteration; - STD_LOOP_COUNT = atoi(optarg); - if (STD_LOOP_COUNT == 0) STD_INFINITE = 1; - break; - case 'P': /* Delay between iterations */ - options |= OPT_delay; - STD_LOOP_DELAY = atof(optarg); - break; - case 'I': /* Time duration */ - options |= OPT_duration; - STD_LOOP_DURATION = atof(optarg); - if ( STD_LOOP_DURATION == 0.0 ) STD_INFINITE=1; - break; - case 'c': /* Copies */ - options |= OPT_copies; - STD_COPIES = atoi(optarg); - break; - case 'f': /* Functional testing */ - STD_FUNCTIONAL_TEST = 0; - break; - case 'p': /* Pause for SIGUSR1 */ - STD_PAUSE = 1; - break; - case 't': /* syscall timing */ - STD_TIMING_ON = 1; - break; - case 'e': /* errno loggin */ - STD_ERRNO_LOG = 1; - break; - case 'h': /* Help */ - print_help(uhf); - exit(0); - break; - default: - - /* Check all the user specified options */ - found=0; - for(i = 0; user_optarr[i].option; ++i) { - - if (opt == user_optarr[i].option[0]) { - /* Yup, This is a user option, set the flag and look for argument */ - if ( user_optarr[i].flag ) { - *user_optarr[i].flag=1; - } - found++; - - /* save the argument at the user's location */ - if ( user_optarr[i].option[strlen(user_optarr[i].option)-1] == ':' ) { - *user_optarr[i].arg=optarg; - } - break; /* option found - break out of the for loop */ - } - } - /* This condition "should never happen". SO CHECK FOR IT!!!! */ - if ( ! found ) { - sprintf(Mesg2, - "parse_opts: ERROR - option:\"%c\" NOT FOUND... INTERNAL ERROR", opt); - return(Mesg2); - } - } - - } /* end of while */ - - STD_argind = optind; - - /* - * Turn on debug - */ - if ( (ptr=getenv("USC_DEBUG")) != NULL ) { - Debug=1; - printf("env USC_DEBUG is defined, turning on debug\n"); - } - if ( (ptr=getenv("USC_VERBOSE")) != NULL ) { - Debug=1; - printf("env USC_VERBOSE is defined, turning on debug\n"); - } - - /* - * If the USC_ITERATION_ENV environmental variable is set to - * a number, use that number as iteration count (same as -c option). - * The -c option with arg will be used even if this env var is set. - */ - if ( !(options & OPT_iteration) && (ptr=getenv(USC_ITERATION_ENV)) != NULL ) { - if ( sscanf(ptr, "%i", &k) == 1) { - if ( k == 0 ) { /* if arg is 0, set infinite loop flag */ - STD_INFINITE=1; - if ( Debug ) - printf("Using env %s, set STD_INFINITE to 1\n", - USC_ITERATION_ENV); - } else { /* else, set the loop count to the arguement */ - STD_LOOP_COUNT=k; - if ( Debug ) - printf("Using env %s, set STD_LOOP_COUNT to %d\n", - USC_ITERATION_ENV, k); - } - } - } - - /* - * If the USC_NO_FUNC_CHECK environmental variable is set, we'll - * unset the STD_FUNCTIONAL_TEST variable. - */ - if ( !(options & OPT_nofunccheck) && (ptr=getenv(USC_NO_FUNC_CHECK)) != NULL ) { - STD_FUNCTIONAL_TEST=0; /* Turn off functional testing */ - if ( Debug ) - printf("Using env %s, set STD_FUNCTIONAL_TEST to 0\n", - USC_NO_FUNC_CHECK); - } - - /* - * If the USC_LOOP_WALLTIME environmental variable is set, - * use that number as duration (same as -I option). - * The -I option with arg will be used even if this env var is set. - */ - - if ( !(options & OPT_duration) && (ptr=getenv(USC_LOOP_WALLTIME)) != NULL ) { - if ( sscanf(ptr, "%f", &ftmp) == 1 && ftmp >= 0.0 ) { - STD_LOOP_DURATION=ftmp; - if ( Debug ) - printf("Using env %s, set STD_LOOP_DURATION to %f\n", - USC_LOOP_WALLTIME, ftmp); - if ( STD_LOOP_DURATION == 0.0 ) { /* if arg is 0, set infinite loop flag */ - STD_INFINITE=1; - if ( Debug ) - printf("Using env %s, set STD_INFINITE to 1\n", USC_LOOP_WALLTIME); - } - } - } - if ( !(options & OPT_duration) && (ptr=getenv("USC_DURATION")) != NULL ) { - if ( sscanf(ptr, "%f", &ftmp) == 1 && ftmp >= 0.0 ) { - STD_LOOP_DURATION=ftmp; - if ( Debug ) - printf("Using env USC_DURATION, set STD_LOOP_DURATION to %f\n", ftmp); - if ( STD_LOOP_DURATION == 0.0 ) { /* if arg is 0, set infinite loop flag */ - STD_INFINITE=1; - if ( Debug ) - printf("Using env USC_DURATION, set STD_INFINITE to 1\n"); - } - } - } - /* - * If the USC_LOOP_DELAY environmental variable is set, - * use that number as delay in factional seconds (same as -P option). - * The -P option with arg will be used even if this env var is set. - */ - if ( !(options & OPT_delay) && (ptr=getenv(USC_LOOP_DELAY)) != NULL ) { - if ( sscanf(ptr, "%f", &ftmp) == 1 && ftmp >= 0.0 ) { - STD_LOOP_DELAY=ftmp; - if ( Debug ) - printf("Using env %s, set STD_LOOP_DELAY = %f\n", - USC_LOOP_DELAY, ftmp); - } - } - - /* - * If the USC_COPIES environmental variable is set, - * use that number as copies (same as -c option). - * The -c option with arg will be used even if this env var is set. - */ - if ( !(options & OPT_copies) && (ptr=getenv(USC_COPIES)) != NULL ) { - if ( sscanf(ptr, "%d", &STD_COPIES) == 1 && STD_COPIES >= 0 ) { - if ( Debug ) - printf("Using env %s, set STD_COPIES = %d\n", - USC_COPIES, STD_COPIES); - } - } - - /* - * The following are special system testing envs to turn on special - * hooks in the code. - */ - if ( (ptr=getenv("USC_TP_BARRIER")) != NULL ) { - if ( sscanf(ptr, "%i", &k) == 1 && k >= 0 ) { - STD_TP_barrier=k; - } - else - STD_TP_barrier=1; - if ( Debug ) - printf("using env USC_TP_BARRIER, Set STD_TP_barrier to %d\n", - STD_TP_barrier); - } - - if ( (ptr=getenv("USC_LP_BARRIER")) != NULL ) { - if ( sscanf(ptr, "%i", &k) == 1 && k >= 0 ) { - STD_LP_barrier=k; - } - else - STD_LP_barrier=1; - if ( Debug ) - printf("using env USC_LP_BARRIER, Set STD_LP_barrier to %d\n", - STD_LP_barrier); - } - - if ( (ptr=getenv("USC_TP_SHMEM")) != NULL ) { - if ( sscanf(ptr, "%i", &k) == 1 && k >= 0 ) { - STD_TP_shmem_sz=k; - if ( Debug ) - printf("Using env USC_TP_SHMEM, Set STD_TP_shmem_sz to %d\n", - STD_TP_shmem_sz); - } - } - - if ( (ptr=getenv("USC_LP_SHMEM")) != NULL ) { - if ( sscanf(ptr, "%i", &k) == 1 && k >= 0 ) { - STD_LP_shmem=k; - if ( Debug ) - printf("Using env USC_LP_SHMEM, Set STD_LP_shmem to %d\n", - STD_LP_shmem); - } - } - - if ( (ptr=getenv("USC_LD_SHMEM")) != NULL ) { - if ( sscanf(ptr, "%i", &k) == 1 && k >= 0 ) { - STD_LD_shmem=k; - if ( Debug ) - printf("Using env USC_LD_SHMEM, Set STD_LD_shmem to %d\n", - STD_LD_shmem); - } - } - - if ( (ptr=getenv("USC_TP_SBRK")) != NULL ) { - if ( sscanf(ptr, "%i", &k) == 1 && k >= 0 ) { - STD_TP_sbrk=k; - if ( Debug ) - printf("Using env USC_TP_SBRK, Set STD_TP_sbrk to %d\n", - STD_TP_sbrk); - } - } - - if ( (ptr=getenv("USC_LP_SBRK")) != NULL ) { - if ( sscanf(ptr, "%i", &k) == 1 && k >= 0 ) { - STD_LP_sbrk=k; - if ( Debug ) - printf("Using env USC_LP_SBRK, Set STD_LP_sbrk to %d\n", - STD_LP_sbrk); - } - } - - if ( (ptr=getenv("USC_LP_RECFUN")) != NULL ) { - if ( sscanf(ptr, "%i", &k) == 1 && k >= 0 ) { - STD_LP_recfun=k; - if ( STD_bigstack != (struct usc_bigstack_t *)NULL ) - STD_bigstack=(struct usc_bigstack_t *) - malloc(sizeof(struct usc_bigstack_t)); - if ( Debug ) - printf("Using env USC_LP_RECFUN, Set STD_LP_recfun to %d\n", - STD_LP_recfun); - } - } - - if ( (ptr=getenv("USC_LD_RECFUN")) != NULL ) { - if ( sscanf(ptr, "%i", &k) == 1 && k >= 0 ) { - STD_LD_recfun=k; - if ( STD_bigstack != (struct usc_bigstack_t *)NULL ) - STD_bigstack=(struct usc_bigstack_t *) - malloc(sizeof(struct usc_bigstack_t)); - if ( Debug ) - printf("Using env USC_LD_RECFUN, Set STD_LD_recfun to %d\n", - STD_LD_recfun); - } - } - -#if UNIT_TEST - printf("The following variables after option and env parsing:\n"); - printf("STD_FUNCTIONAL_TEST = %d\n", STD_FUNCTIONAL_TEST); - printf("STD_LOOP_DURATION = %f\n", STD_LOOP_DURATION); - printf("STD_LOOP_DELAY = %f\n", STD_LOOP_DELAY); - printf("STD_COPIES = %d\n", STD_COPIES); - printf("STD_LOOP_COUNT = %d\n", STD_LOOP_COUNT); - printf("STD_INFINITE = %d\n", STD_INFINITE); - printf("STD_TIMING_ON = %d\n", STD_TIMING_ON); - printf("STD_ERRNO_LOG = %d\n", STD_ERRNO_LOG); - printf("STD_PAUSE = %d\n", STD_PAUSE); -#endif - - return((char *) NULL); - -} /* end of parse_opts */ - -/********************************************************************* - * print_help() - print help message and user help message - *********************************************************************/ -void print_help(void (*user_help)()) -{ - STD_opts_help(); - - if (user_help) user_help(); -} - -/********************************************************************* - * STD_opts_help() - return a help string for the STD_OPTIONS. - *********************************************************************/ -void -STD_opts_help() -{ - int i; - - for(i = 0; std_options[i].optstr; ++i) { - if (std_options[i].help) - printf(std_options[i].help); - } -} - -/* - * routine to goto when we get the SIGUSR1 for STD_PAUSE - */ -void STD_go(int sig) -{ - return; -} - -/*********************************************************************** - * This function will do desired end of global setup test - * hooks. - * Currently it will only do a pause waiting for sigusr1 if - * STD_PAUSE is set. - * - ***********************************************************************/ -int -usc_global_setup_hook() -{ - int cnt; - /* temp variable to store old signal action to be restored after pause */ - int (*_TMP_FUNC)(void); - - /* - * Fork STD_COPIES-1 copies. - */ - for(cnt=1;cnt -#include "pattern.h" - -/* - * The routines in this module are used to fill/check a data buffer - * with/against a known pattern. - */ - -int -pattern_check(buf, buflen, pat, patlen, patshift) -char *buf; -int buflen; -char *pat; -int patlen; -int patshift; -{ - int nb, ncmp, nleft; - char *cp; - - if (patlen) - patshift = patshift % patlen; - - cp = buf; - nleft = buflen; - - /* - * The following 2 blocks of code are to compare the first patlen - * bytes of buf. We need 2 checks if patshift is > 0 since we - * must check the last (patlen - patshift) bytes, and then the - * first (patshift) bytes. - */ - - nb = patlen - patshift; - if (nleft < nb) { - return (memcmp(cp, pat + patshift, nleft) ? -1 : 0); - } else { - if (memcmp(cp, pat + patshift, nb)) - return -1; - - nleft -= nb; - cp += nb; - } - - if (patshift > 0) { - nb = patshift; - if (nleft < nb) { - return (memcmp(cp, pat, nleft) ? -1 : 0); - } else { - if (memcmp(cp, pat, nb)) - return -1; - - nleft -= nb; - cp += nb; - } - } - - /* - * Now, verify the rest of the buffer using the algorithm described - * in the function header. - */ - - ncmp = cp - buf; - while (ncmp < buflen) { - nb = (ncmp < nleft) ? ncmp : nleft; - if (memcmp(buf, cp, nb)) - return -1; - - cp += nb; - ncmp += nb; - nleft -= nb; - } - - return 0; -} - -int -pattern_fill(buf, buflen, pat, patlen, patshift) -char *buf; -int buflen; -char *pat; -int patlen; -int patshift; -{ - int trans, ncopied, nleft; - char *cp; - - if (patlen) - patshift = patshift % patlen; - - cp = buf; - nleft = buflen; - - /* - * The following 2 blocks of code are to fill the first patlen - * bytes of buf. We need 2 sections if patshift is > 0 since we - * must first copy the last (patlen - patshift) bytes into buf[0]..., - * and then the first (patshift) bytes of pattern following them. - */ - - trans = patlen - patshift; - if (nleft < trans) { - memcpy(cp, pat + patshift, nleft); - return 0; - } else { - memcpy(cp, pat + patshift, trans); - nleft -= trans; - cp += trans; - } - - if (patshift > 0) { - trans = patshift; - if (nleft < trans) { - memcpy(cp, pat, nleft); - return 0; - } else { - memcpy(cp, pat, trans); - nleft -= trans; - cp += trans; - } - } - - /* - * Now, fill the rest of the buffer using the algorithm described - * in the function header comment. - */ - - ncopied = cp - buf; - while (ncopied < buflen) { - trans = (ncopied < nleft) ? ncopied : nleft; - memcpy(cp, buf, trans); - cp += trans; - ncopied += trans; - nleft -= trans; - } - - return(0); -} diff --git a/winsup/testsuite/libltp/lib/rmobj.c b/winsup/testsuite/libltp/lib/rmobj.c deleted file mode 100644 index 63122c446..000000000 --- a/winsup/testsuite/libltp/lib/rmobj.c +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ - -/* $Id$ */ - -/********************************************************** - * - * OS Testing - Silicon Graphics, Inc. - * - * FUNCTION NAME : rmobj() - * - * FUNCTION TITLE : Remove an object - * - * SYNOPSIS: - * int rmobj(char *obj, char **errmsg) - * - * AUTHOR : Kent Rogers - * - * INITIAL RELEASE : UNICOS 7.0 - * - * USER DESCRIPTION - * This routine will remove the specified object. If the specified - * object is a directory, it will recursively remove the directory - * and everything underneath it. It assumes that it has privilege - * to remove everything that it tries to remove. If rmobj() encounters - * any problems, and errmsg is not NULL, errmsg is set to point to a - * string explaining the error. - * - * DETAILED DESCRIPTION - * Allocate space for the directory and its contents - * Open the directory to get access to what is in it - * Loop through the objects in the directory: - * If the object is not "." or "..": - * Determine the file type by calling lstat() - * If the object is not a directory: - * Remove the object with unlink() - * Else: - * Call rmobj(object) to remove the object's contents - * Determine the link count on object by calling lstat() - * If the link count >= 3: - * Remove the directory with unlink() - * Else - * Remove the directory with rmdir() - * Close the directory and free the pointers - * - * RETURN VALUE - * If there are any problems, rmobj() will set errmsg (if it was not - * NULL) and return -1. Otherwise it will return 0. - * - ************************************************************/ -#include /* for errno */ -#include /* for NULL */ -#include /* for malloc() */ -#include /* for string function */ -#include /* for PATH_MAX */ -#include /* for opendir(), readdir(), closedir(), stat() */ -#include /* for [l]stat() */ -#include /* for opendir(), readdir(), closedir() */ -#include /* for rmdir(), unlink() */ -#include "rmobj.h" - -#define SYSERR strerror(errno) - -int -rmobj(char *obj, char **errmsg) -{ - int ret_val = 0; /* return value from this routine */ - DIR *dir; /* pointer to a directory */ - struct dirent *dir_ent; /* pointer to directory entries */ - char dirobj[PATH_MAX]; /* object inside directory to modify */ - struct stat statbuf; /* used to hold stat information */ - static char err_msg[1024]; /* error message */ - - /* Determine the file type */ - if ( lstat(obj, &statbuf) < 0 ) { - if ( errmsg != NULL ) { - sprintf(err_msg, "lstat(%s) failed; errno=%d: %s", - obj, errno, SYSERR); - *errmsg = err_msg; - } - return -1; - } - - /* Take appropriate action, depending on the file type */ - if ( (statbuf.st_mode & S_IFMT) == S_IFDIR ) { - /* object is a directory */ - - /* Do NOT perform the request if the directory is "/" */ - if ( !strcmp(obj, "/") ) { - if ( errmsg != NULL ) { - sprintf(err_msg, "Cannot remove /"); - *errmsg = err_msg; - } - return -1; - } - - /* Open the directory to get access to what is in it */ - if ( (dir = opendir(obj)) == NULL ) { - if ( rmdir(obj) != 0 ) { - if ( errmsg != NULL ) { - sprintf(err_msg, "rmdir(%s) failed; errno=%d: %s", - obj, errno, SYSERR); - *errmsg = err_msg; - } - return -1; - } else { - return 0; - } - } - - /* Loop through the entries in the directory, removing each one */ - for ( dir_ent = (struct dirent *)readdir(dir); - dir_ent != NULL; - dir_ent = (struct dirent *)readdir(dir)) { - - /* Don't remove "." or ".." */ - if ( !strcmp(dir_ent->d_name, ".") || !strcmp(dir_ent->d_name, "..") ) - continue; - - /* Recursively call this routine to remove the current entry */ - sprintf(dirobj, "%s/%s", obj, dir_ent->d_name); - if ( rmobj(dirobj, errmsg) != 0 ) - ret_val = -1; - } - - /* Close the directory */ - closedir(dir); - - /* If there were problems removing an entry, don't attempt to - remove the directory itself */ - if ( ret_val == -1 ) - return -1; - - /* Get the link count, now that all the entries have been removed */ - if ( lstat(obj, &statbuf) < 0 ) { - if ( errmsg != NULL ) { - sprintf(err_msg, "lstat(%s) failed; errno=%d: %s", - obj, errno, SYSERR); - *errmsg = err_msg; - } - return -1; - } - - /* Remove the directory itself */ - if ( statbuf.st_nlink >= 3 ) { - /* The directory is linked; unlink() must be used */ - if ( unlink(obj) < 0 ) { - if ( errmsg != NULL ) { - sprintf(err_msg, "unlink(%s) failed; errno=%d: %s", - obj, errno, SYSERR); - *errmsg = err_msg; - } - return -1; - } - } else { - /* The directory is not linked; rmdir() can be used */ - if ( rmdir(obj) < 0 ) { - if ( errmsg != NULL ) { - sprintf(err_msg, "rmdir(%s) failed; errno=%d: %s", - obj, errno, SYSERR); - *errmsg = err_msg; - } - return -1; - } - } - } else { - /* object is not a directory; just use unlink() */ - if ( unlink(obj) < 0 ) { - if ( errmsg != NULL ) { - sprintf(err_msg, "unlink(%s) failed; errno=%d: %s", - obj, errno, SYSERR); - *errmsg = err_msg; - } - return -1; - } - } /* if obj is a directory */ - - /* - * Everything must have went ok. - */ - return 0; -} /* rmobj() */ diff --git a/winsup/testsuite/libltp/lib/search_path.c b/winsup/testsuite/libltp/lib/search_path.c deleted file mode 100644 index 6663da507..000000000 --- a/winsup/testsuite/libltp/lib/search_path.c +++ /dev/null @@ -1,249 +0,0 @@ -/* - * (C) COPYRIGHT CRAY RESEARCH, INC. - * UNPUBLISHED PROPRIETARY INFORMATION. - * ALL RIGHTS RESERVED. - */ -/********************************************************** - * - * UNICOS Feature Test and Evaluation - Cray Research, Inc. - * - * FUNCTION NAME : search_path - * - * FUNCTION TITLE : search PATH locations for desired filename - * - * SYNOPSIS: - * int search_path(cmd, res_path, access_mode, fullpath) - * char *cmd; - * char *res_path; - * int access_mode; - * int fullpath; - * - * AUTHOR : Richard Logan - * - * INITIAL RELEASE : UNICOS 7.0 - * - * DESCRIPTION - * Search_path will walk through PATH and attempt to find "cmd". If cmd is - * a full or relative path, it is checked but PATH locations are not scanned. - * search_path will put the resulting path in res_path. It is assumed - * that res_path points to a string that is at least PATH_MAX - * (or MAXPATHLEN on the suns) in size. Access_mode is just as is - * says, the mode to be used on access to determine if cmd can be found. - * If fullpath is set, res_path will contain the full path to cmd. - * If it is not set, res_path may or may not contain the full path to cmd. - * If fullpath is not set, the path in PATH prepended to cmd is used, - * which could be a relative path. If fullpath is set, the current - * directory is prepended to path/cmd before access is called. - * If cmd is found, search_path will return 0. If cmd cannot be - * found, 1 is returned. If an error has occurred, -1 is returned - * and an error mesg is placed in res_path. - * If the length of path/cmd is larger then PATH_MAX, then that path - * location is skipped. - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include - -extern int errno; - -struct stat stbuf; - -#ifndef AS_CMD -#define AS_CMD 0 -#endif - -/* - * Make sure PATH_MAX is defined. Define it to MAXPATHLEN, if set. Otherwise - * set it to 1024. - */ -#ifndef PATH_MAX -#ifndef MAXPATHLEN -#define PATH_MAX 1024 -#else /* MAXPATHLEN */ -#define PATH_MAX MAXPATHLEN -#endif /* MAXPATHLEN */ -#endif /* PATH_MAX */ - - -#if AS_CMD -main(argc, argv) -int argc; -char **argv; -{ - char path[PATH_MAX]; - int ind; - - if (argc <= 1 ) { - printf("missing argument\n"); - exit(1); - } - - for(ind=1;ind < argc; ind++) { - if ( search_path(argv[ind], path, F_OK, 0) < 0 ) { - printf("ERROR: %s\n", path); - } - else { - printf("path of %s is %s\n", argv[ind], path); - } - } - -} - -#endif - -/* - */ -int -search_path(cmd, res_path, access_mode, fullpath) -char *cmd; /* The requested filename */ -char *res_path; /* The resulting path or error mesg */ -int access_mode; /* the mode used by access(2) */ -int fullpath; /* if set, cwd will be prepended to all non-full paths */ -{ - char *cp; /* used to scan PATH for directories */ - int ret; /* return value from access */ - char *pathenv; - char tmppath[PATH_MAX]; - char curpath[PATH_MAX]; - char *path; - int lastpath; - int toolong=0; - -#if DEBUG -printf("search_path: cmd = %s, access_mode = %d, fullpath = %d\n", cmd, access_mode, fullpath); -#endif - - /* - * full or relative path was given - */ - if ( (cmd[0] == '/') || ( (cp=strchr(cmd, '/')) != NULL )) { - if ( access(cmd, access_mode) == 0 ) { - - if ( cmd[0] != '/' ) { /* relative path */ - if ( getcwd(curpath, PATH_MAX) == NULL ) { - strcpy(res_path, curpath); - return -1; - } - if ( (strlen(curpath) + strlen(cmd) + 1) > (size_t)PATH_MAX ) { - sprintf(res_path, "cmd (as relative path) and cwd is longer than %d", - PATH_MAX); - return -1; - } - sprintf(res_path, "%s/%s", curpath, cmd); - } - else - strcpy(res_path, cmd); - return 0; - } - else { - sprintf(res_path, "file %s not found", cmd); - return -1; - } - } - - /* get the PATH variable */ - if ( (pathenv=getenv("PATH")) == NULL) { - /* no path to scan, return */ - sprintf(res_path, "Unable to get PATH env. variable"); - return -1; - } - - /* - * walk through each path in PATH. - * Each path in PATH is placed in tmppath. - * pathenv cannot be modified since it will affect PATH. - * If a signal came in while we have modified the PATH - * memory, we could create a problem for the caller. - */ - - curpath[0]='\0'; - - cp = pathenv; - path = pathenv; - lastpath = 0; - for (;;) { - - if ( lastpath ) - break; - - if ( cp != pathenv ) - path = ++cp; /* already set on first iteration */ - - /* find end of current path */ - - for (; ((*cp != ':') && (*cp != '\0')); cp++); - - /* - * copy path to tmppath so it can be NULL terminated - * and so we do not modify path memory. - */ - strncpy(tmppath, path, (cp-path) ); - tmppath[cp-path]='\0'; -#if DEBUG -printf("search_path: tmppath = %s\n", tmppath); -#endif - - if ( *cp == '\0' ) - lastpath=1; /* this is the last path entry */ - - /* Check lengths so not to overflow res_path */ - if ( strlen(tmppath) + strlen(cmd) + 2 > (size_t)PATH_MAX ) { - toolong++; - continue; - } - - sprintf(res_path, "%s/%s", tmppath, cmd); -#if DEBUG -printf("search_path: res_path = '%s'\n", res_path); -#endif - - - /* if the path is not full at this point, prepend the current - * path to get the full path. - * Note: this could not be wise to do when under a protected - * directory. - */ - - if ( fullpath && res_path[0] != '/' ) { /* not a full path */ - if ( curpath[0] == '\0' ) { - if ( getcwd(curpath, PATH_MAX) == NULL ) { - strcpy(res_path, curpath); - return -1; - } - } - if ( (strlen(curpath) + strlen(res_path) + 2) > (size_t)PATH_MAX ) { - toolong++; - continue; - } - sprintf(tmppath, "%s/%s", curpath, res_path); - strcpy(res_path, tmppath); -#if DEBUG -printf("search_path: full res_path= '%s'\n", res_path); -#endif - - } - - - if ( (ret=access(res_path, access_mode)) == 0 ) { -#if DEBUG -printf("search_path: found res_path = %s\n", res_path); -#endif - return 0; - } - } - - /* return failure */ - if ( toolong ) - sprintf(res_path, - "Unable to find file, %d path/file strings were too long", toolong); - else - strcpy(res_path, "Unable to find file"); - return 1; /* not found */ -} - diff --git a/winsup/testsuite/libltp/lib/str_to_bytes.c b/winsup/testsuite/libltp/lib/str_to_bytes.c deleted file mode 100644 index beecb71b6..000000000 --- a/winsup/testsuite/libltp/lib/str_to_bytes.c +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -#include -#include -#include "str_to_bytes.h" - -/**************************************************************************** - * str_to_bytes(s) - * - * Computes the number of bytes described by string s. s is assumed to be - * a base 10 positive (ie. >= 0) number followed by an optional single - * character multiplier. The following multipliers are supported: - * - * char mult - * ----------------- - * b BSIZE or BBSIZE - * k 1024 bytes - * K 1024 * sizeof(long) - * m 2^20 (1048576) - * M 2^20 (1048576 * sizeof(long) - * g 2^30 (1073741824) - * G 2^30 (1073741824) * sizeof(long) - * - * for instance, "1k" and "1024" would both cause str_to_bytes to return 1024. - * - * Returns -1 if mult is an invalid character, or if the integer portion of - * s is not a positive integer. - * - ****************************************************************************/ - -#if CRAY -#define B_MULT BSIZE /* block size */ -#elif sgi -#define B_MULT BBSIZE /* block size */ -#elif linux -#define B_MULT DEV_BSIZE /* block size */ -#elif __CYGWIN__ -#include -#define B_MULT S_BLKSIZE /* block size */ -#endif - - -#define K_MULT 1024 /* Kilo or 2^10 */ -#define M_MULT 1048576 /* Mega or 2^20 */ -#define G_MULT 1073741824 /* Giga or 2^30 */ -#define T_MULT 1099511627776 /* tera or 2^40 */ - -int -str_to_bytes(s) -char *s; -{ - char mult, junk; - int nconv; - float num; - - nconv = sscanf(s, "%f%c%c", &num, &mult, &junk); - if (nconv == 0 || nconv == 3 ) - return -1; - - if (nconv == 1) - return num; - - switch (mult) { - case 'b': - return (int)(num * (float)B_MULT); - case 'k': - return (int)(num * (float)K_MULT); - case 'K': - return (int)((num * (float)K_MULT) * sizeof(long)); - case 'm': - return (int)(num * (float)M_MULT); - case 'M': - return (int)((num * (float)M_MULT) * sizeof(long)); - case 'g': - return (int)(num * (float)G_MULT); - case 'G': - return (int)((num * (float)G_MULT) * sizeof(long)); - default: - return -1; - } -} - -long -str_to_lbytes(s) -char *s; -{ - char mult, junk; - long nconv; - float num; - - nconv = sscanf(s, "%f%c%c", &num, &mult, &junk); - if (nconv == 0 || nconv == 3 ) - return -1; - - if (nconv == 1) - return (long)num; - - switch (mult) { - case 'b': - return (long)(num * (float)B_MULT); - case 'k': - return (long)(num * (float)K_MULT); - case 'K': - return (long)((num * (float)K_MULT) * sizeof(long)); - case 'm': - return (long)(num * (float)M_MULT); - case 'M': - return (long)((num * (float)M_MULT) * sizeof(long)); - case 'g': - return (long)(num * (float)G_MULT); - case 'G': - return (long)((num * (float)G_MULT) * sizeof(long)); - default: - return -1; - } -} - -/* - * Force 64 bits number when compiled as 32 IRIX binary. - * This allows for a number bigger than 2G. - */ - -long long -str_to_llbytes(s) -char *s; -{ - char mult, junk; - long nconv; - double num; - - nconv = sscanf(s, "%lf%c%c", &num, &mult, &junk); - if (nconv == 0 || nconv == 3 ) - return -1; - - if (nconv == 1) - return (long long)num; - - switch (mult) { - case 'b': - return (long long)(num * (float)B_MULT); - case 'k': - return (long long)(num * (float)K_MULT); - case 'K': - return (long long)((num * (float)K_MULT) * sizeof(long long)); - case 'm': - return (long long)(num * (float)M_MULT); - case 'M': - return (long long)((num * (float)M_MULT) * sizeof(long long)); - case 'g': - return (long long)(num * (float)G_MULT); - case 'G': - return (long long)((num * (float)G_MULT) * sizeof(long long)); - default: - return -1; - } -} - -#ifdef UNIT_TEST - -main(int argc, char **argv) -{ - int ind; - - if (argc == 1 ) { - fprintf(stderr, "missing str_to_bytes() parameteres\n"); - exit(1); - } - - for (ind=1; ind -#include /* for string functions */ -#include "string_to_tokens.h" - -int -string_to_tokens(char *arg_string, char *arg_array[], int array_size, char *separator) -{ - int num_toks = 0; /* number of tokens found */ - char *strtok(); - - if ( arg_array == NULL || array_size <= 1 || separator == NULL ) - return -1; - - /* - * Use strtok() to parse 'arg_string', placing pointers to the - * individual tokens into the elements of 'arg_array'. - */ - if ( (arg_array[num_toks] = strtok(arg_string, separator)) == NULL ) { - return 0; - } - - for (num_toks=1;num_toks -#include -#include /* for I/O functions, BUFSIZ */ -#include /* for getenv() */ -#include /* for varargs stuff */ -#include /* for access() */ -#include "test.h" /* for output display mode & result type */ - /* defines */ - -/* - * Define some useful macros. - */ -#define VERBOSE 1 /* flag values for the T_mode variable */ -#define CONDENSE 2 -#define NOPASS 3 -#define DISCARD 4 - -#define MAXMESG 80 /* max length of internal messages */ -#define USERMESG 2048 /* max length of user message */ -#define TRUE 1 -#define FALSE 0 - -/* - * EXPAND_VAR_ARGS - Expand the variable portion (arg_fmt) of a result - * message into the specified string. - */ -#define EXPAND_VAR_ARGS(arg_fmt, str) { \ - va_list ap; /* varargs mechanism */ \ - \ - if ( arg_fmt != NULL ) { \ - if ( Expand_varargs == TRUE ) { \ - va_start(ap, arg_fmt); \ - vsprintf(str, arg_fmt, ap); \ - va_end(ap); \ - Expand_varargs = FALSE; \ - } else { \ - strcpy(str, arg_fmt); \ - } \ - } else { \ - str[0] = '\0'; \ - } \ -} /* EXPAND_VAR_ARGS() */ - -/* - * Define local function prototypes. - */ -static void check_env(); -static void tst_condense(int tnum, int ttype, char *tmesg); -static void tst_print(char *tcid, int tnum, int trange, int ttype, const char *tmesg); -static void cat_file(char *filename); - - -/* - * Define some static/global variables. - */ -static FILE *T_out = NULL; /* tst_res() output file descriptor */ -static char *File; /* file whose contents is part of result */ -static int T_exitval = 0; /* exit value used by tst_exit() */ -static int T_mode = VERBOSE; /* flag indicating print mode: VERBOSE, */ - /* CONDENSE, NOPASS, DISCARD */ - -static int Expand_varargs = TRUE; /* if TRUE, expand varargs stuff */ -static char Warn_mesg[MAXMESG]; /* holds warning messages */ - -/* - * These are used for condensing output when NOT in verbose mode. - */ -static int Buffered = FALSE; /* TRUE if condensed output is currently */ - /* buffered (i.e. not yet printed) */ -static char *Last_tcid; /* previous test case id */ -static int Last_num; /* previous test case number */ -static int Last_type; /* previous test result type */ -static char *Last_mesg; /* previous test result message */ - - -/* - * These globals may be externed by the test. - */ -int Tst_count = 0; /* current count of test cases executed; NOTE: */ - /* Tst_count may be externed by other programs */ -int Tst_lptotal = 0; /* tst_brkloop() external */ -int Tst_lpstart = 0; /* tst_brkloop() external */ -int Tst_range = 1; /* for specifying multiple results */ -int Tst_nobuf = 1; /* this is a no-op; buffering is never done, but */ - /* this will stay for compatibility reasons */ - -/* - * These globals must be defined in the test. - */ -extern char *TCID; /* Test case identifier from the test source */ -extern int TST_TOTAL; /* Total number of test cases from the test */ - /* source */ - -/* - * This global is used by the temp. dir. maintenance functions, - * tst_tmpdir()/tst_rmdir(), tst_wildcard()/tst_tr_rmdir(). It is the - * name of the directory created (if any). It is defined here, so that - * it only has to be declared once and can then be referenced from more - * than one module. Also, since the temp. dir. maintenance functions - * rely on the tst_res.c package this seemed like a reasonable place. - */ -char *TESTDIR = NULL; - -/* - * tst_res() - Main result reporting function. Handle test information - * appropriately depending on output display mode. Call - * tst_condense() or tst_print() to actually print results. - * All result functions (tst_resm(), tst_brk(), etc.) - * eventually get here to print the results. - */ -void -tst_res(int ttype, char *fname, const char *arg_fmt, ...) -{ - int i; - char tmesg[USERMESG]; /* expanded message */ - -#if DEBUG - printf("IN tst_res; Tst_count = %d; Tst_range = %d\n", - Tst_count, Tst_range); fflush(stdout); -#endif - - /* - * Expand the arg_fmt string into tmesg, if necessary. - */ - EXPAND_VAR_ARGS(arg_fmt, tmesg); - - /* - * Save the test result type by ORing ttype into the current exit - * value (used by tst_exit()). - */ - T_exitval |= ttype; - - /* - * Unless T_out has already been set by tst_environ(), make tst_res() - * output go to standard output. - */ - if ( T_out == NULL ) - T_out = stdout; - - /* - * Check TOUTPUT environment variable (if first time) and set T_mode - * flag. - */ - check_env(); - - /* - * A negative or NULL range is invalid. - */ - if ( Tst_range <= 0 ) { - Tst_range = 1; - tst_print(TCID, 0, 1, TWARN, - "tst_res(): Tst_range must be positive"); - } - - /* - * If a filename was specified, set 'File' if it exists. - */ - if ( fname != NULL && access(fname, F_OK) == 0 ) - File = fname; - - /* - * Set the test case number and print the results, depending on the - * display type. - */ - if ( ttype == TWARN || ttype == TINFO ) { - /* - * Handle WARN and INFO results (test case number is 0). - */ - if ( Tst_range > 1 ) { - tst_print(TCID, 0, 1, TWARN, - "tst_res(): Range not valid for TINFO or TWARN types"); - } - tst_print(TCID, 0, 1, ttype, tmesg); - } else { - /* - * Handle all other types of results other than WARN and INFO. - */ - if ( Tst_count < 0 ) - tst_print(TCID, 0, 1, TWARN, - "tst_res(): Tst_count < 0 is not valid"); - - /* - * Process each display type. - */ - switch ( T_mode ) { - case DISCARD: - /* do not print any results */ - break; - - case NOPASS: /* passing result types are filtered by tst_print() */ - case CONDENSE: - tst_condense(Tst_count + 1, ttype, tmesg); - break; - - default: /* VERBOSE */ - for ( i = 1 ; i <= Tst_range ; i++ ) - tst_print(TCID, Tst_count + i, Tst_range, ttype, tmesg); - break; - } /* end switch() */ - - /* - * Increment Tst_count. - */ - Tst_count += Tst_range; - } /* if ( ttype == TWARN || ttype == TINFO ) */ - - /* - * Reset some values. - */ - Tst_range = 1; - Expand_varargs = TRUE; -} /* tst_res() */ - - -/* - * tst_condense() - Handle test cases in CONDENSE or NOPASS mode (i.e. - * buffer the current result and print the last result - * if different than the current). If a file was - * specified, print the current result and do not - * buffer it. - */ -static void -tst_condense(int tnum, int ttype, char *tmesg) -{ - char *file; - -#if DEBUG - printf("IN tst_condense: tcid = %s, tnum = %d, ttype = %d, tmesg = %s\n", - TCID, tnum, ttype, tmesg); - fflush(stdout); -#endif - - /* - * If this result is the same as the previous result, return. - */ - if ( Buffered == TRUE ) { - if ( strcmp(Last_tcid, TCID) == 0 && Last_type == ttype && - strcmp(Last_mesg, tmesg) == 0 && File == NULL ) - return; - - /* - * This result is different from the previous result. First, - * print the previous result. - */ - file = File; - File = NULL; - tst_print(Last_tcid, Last_num, tnum - Last_num, Last_type, - Last_mesg); - free(Last_tcid); - free(Last_mesg); - File = file; - } /* if ( Buffered == TRUE ) */ - - /* - * If a file was specified, print the current result since we have no - * way of retaining the file contents for comparing with future - * results. Otherwise, buffer the current result info for next time. - */ - if ( File != NULL ) { - tst_print(TCID, tnum, Tst_range, ttype, tmesg); - Buffered = FALSE; - } else { - Last_tcid = (char *)malloc(strlen(TCID) + 1); - strcpy(Last_tcid, TCID); - Last_num = tnum; - Last_type = ttype; - Last_mesg = (char *)malloc(strlen(tmesg) + 1); - strcpy(Last_mesg, tmesg); - Buffered = TRUE; - } -} /* tst_condense() */ - - -/* - * tst_flush() - Print any messages pending because of CONDENSE mode, - * and flush T_out. - */ -void -tst_flush() -{ -#if DEBUG - printf("IN tst_flush\n"); - fflush(stdout); -#endif - - /* - * Print out last line if in CONDENSE or NOPASS mode. - */ - if ( Buffered == TRUE && (T_mode == CONDENSE || T_mode == NOPASS) ) { - tst_print(Last_tcid, Last_num, Tst_count - Last_num + 1, - Last_type, Last_mesg); - Buffered = FALSE; - } - fflush(T_out); -} /* tst_flush() */ - - -/* - * tst_print() - Actually print a line or range of lines to the output - * stream. - */ -static void -tst_print(char *tcid, int tnum, int trange, int ttype, const char *tmesg) -{ - char type[5]; - -#if DEBUG - printf("IN tst_print: tnum = %d, trange = %d, ttype = %d, tmesg = %s\n", - tnum, trange, ttype, tmesg); - fflush(stdout); -#endif - - /* - * Save the test result type by ORing ttype into the current exit - * value (used by tst_exit()). This is already done in tst_res(), but - * is also done here to catch internal warnings. For internal warnings, - * tst_print() is called directly with a case of TWARN. - */ - T_exitval |= ttype; - - /* - * If output mode is DISCARD, or if the output mode is NOPASS and - * this result is not one of FAIL, BROK, or WARN, just return. This - * check is necessary even though we check for DISCARD mode inside of - * tst_res(), since occasionally we get to this point without going - * through tst_res() (e.g. internal TWARN messages). - */ - if ( T_mode == DISCARD || (T_mode == NOPASS && ttype != TFAIL && - ttype != TBROK && ttype != TWARN) ) - return; - - /* - * Fill in the type string according to ttype. - */ - switch ( ttype ) { - case TPASS: - strcpy(type, "PASS"); - break; - case TFAIL: - strcpy(type, "FAIL"); - break; - case TBROK: - strcpy(type, "BROK"); - break; - case TRETR: - strcpy(type, "RETR"); - break; - case TCONF: - strcpy(type, "CONF"); - break; - case TWARN: - strcpy(type, "WARN"); - break; - case TINFO: - strcpy(type, "INFO"); - break; - default: - strcpy(type, "????"); - break; - } /* switch ( ttype ) */ - - /* - * Build the result line and print it. - */ - if ( T_mode == VERBOSE ) { - fprintf(T_out, "%-8s %4d %s : %s\n", tcid, tnum, type, tmesg); - } else { - /* condense results if a range is specified */ - if ( trange > 1 ) - fprintf(T_out, "%-8s %4d-%-4d %s : %s\n", - tcid, tnum, tnum + trange - 1, type, tmesg); - else - fprintf(T_out, "%-8s %4d %s : %s\n", - tcid, tnum, type, tmesg); - } - - /* - * If tst_res() was called with a file, append file contents to the - * end of last printed result. - */ - if ( File != NULL ) - cat_file(File); - File = NULL; -} /* tst_print() */ - - -/* - * check_env() - Check the value of the environment variable TOUTPUT and - * set the global variable T_mode. The TOUTPUT environment - * variable should be set to "VERBOSE", "CONDENSE", - * "NOPASS", or "DISCARD". If TOUTPUT does not exist or - * is not set to a valid value, the default is "VERBOSE". - */ -static void -check_env() -{ - static int first_time = 1; - char *value; /* value of TOUTPUT environment variable */ - -#if DEBUG - printf("IN check_env\n"); - fflush(stdout); -#endif - - if ( !first_time ) - return; - - first_time = 0; - - if ( (value = getenv(TOUTPUT)) == NULL ) { - /* TOUTPUT not defined, use default */ - T_mode = VERBOSE; - } else if ( strcmp(value, TOUT_CONDENSE_S) == 0 ) { - T_mode = CONDENSE; - } else if ( strcmp(value, TOUT_NOPASS_S) == 0 ) { - T_mode = NOPASS; - } else if ( strcmp(value, TOUT_DISCARD_S) == 0 ) { - T_mode = DISCARD; - } else { - /* default */ - T_mode = VERBOSE; - } - - return; -} /* check_env() */ - - -/* - * tst_exit() - Call exit() with the value T_exitval, set up by - * tst_res(). T_exitval has a bit set for most of the - * result types that were seen (including TPASS, TFAIL, - * TBROK, TWARN, TCONF). Also, print the last result (if - * necessary) before exiting. - */ -void -tst_exit() -{ -#if DEBUG - printf("IN tst_exit\n"); fflush(stdout); - fflush(stdout); -#endif - - /* - * Call tst_flush() flush any ouput in the buffer or the last - * result not printed because of CONDENSE mode. - */ - tst_flush(); - - /* - * Mask out TRETR, TINFO, and TCONF results from the exit status. - */ - exit(T_exitval & ~(TRETR | TINFO | TCONF)); -} /* tst_exit() */ - - -/* - * tst_environ() - Preserve the tst_res() output location, despite any - * changes to stdout. - */ -int -tst_environ() -{ - FILE *fdopen(); - - if ( (T_out = fdopen(dup(fileno(stdout)), "w")) == NULL ) - return(-1); - else - return(0); -} /* tst_environ() */ - - -/* - * tst_brk() - Fail or break current test case, and break the remaining - * tests cases. - */ -void -tst_brk(int ttype, char *fname, void (*func)(), const char *arg_fmt, ...) -{ - char tmesg[USERMESG]; /* expanded message */ - -#if DEBUG - printf("IN tst_brk\n"); fflush(stdout); - fflush(stdout); -#endif - - /* - * Expand the arg_fmt string into tmesg, if necessary. - */ - EXPAND_VAR_ARGS(arg_fmt, tmesg); - - /* - * Only FAIL, BROK, CONF, and RETR are supported by tst_brk(). - */ - if ( ttype != TFAIL && ttype != TBROK && ttype != TCONF && - ttype != TRETR ) { - sprintf(Warn_mesg, "tst_brk(): Invalid Type: %d. Using TBROK", - ttype); - tst_print(TCID, 0, 1, TWARN, Warn_mesg); - ttype = TBROK; - } - - /* - * Print the first result, if necessary. - */ - if ( Tst_count < TST_TOTAL ) - tst_res(ttype, fname, tmesg); - - /* - * Determine the number of results left to report. - */ - Tst_range = TST_TOTAL - Tst_count; - - /* - * Print the rest of the results, if necessary. - */ - if ( Tst_range > 0 ) { - if ( ttype == TCONF ) - tst_res(ttype, NULL, - "Remaining cases not appropriate for configuration"); - else if ( ttype == TRETR ) - tst_res(ttype, NULL, "Remaining cases retired"); - else - tst_res(TBROK, NULL, "Remaining cases broken"); - } else { - Tst_range = 1; - Expand_varargs = TRUE; - } /* if ( Tst_range > 0 ) */ - - /* - * If no cleanup function was specified, just return to the caller. - * Otherwise call the specified function. If specified function - * returns, call tst_exit(). - */ - if ( func != NULL ) { - (*func)(); - tst_exit(); - } - - return; -} /* tst_brk() */ - - -/* - * tst_brkloop() - Fail or break current test case, and break the - * remaining test cases within test case loop. - */ -void -tst_brkloop(int ttype, char *fname, void (*func)(), const char *arg_fmt, ...) -{ - char tmesg[USERMESG]; /* expanded message */ - -#if DEBUG - printf("IN tst_brkloop\n"); fflush(stdout); - fflush(stdout); -#endif - - /* - * Expand the arg_fmt string into tmesg. - */ - EXPAND_VAR_ARGS(arg_fmt, tmesg); - - /* - * Verify that Tst_lpstart & Tst_lptotal are valid. - */ - if ( Tst_lpstart < 0 || Tst_lptotal < 0 ) { - tst_print(TCID, 0, 1, TWARN, - "tst_brkloop(): Tst_lpstart & Tst_lptotal must both be assigned non-negative values"); - Expand_varargs = TRUE; - return; - } - - /* - * Only FAIL, BROK, CONF, and RETR are supported by tst_brkloop(). - */ - if ( ttype != TFAIL && ttype != TBROK && ttype != TCONF && - ttype != TRETR ) { - sprintf(Warn_mesg, - "tst_brkloop(): Invalid Type: %d. Using TBROK", - ttype); - tst_print(TCID, 0, 1, TWARN, Warn_mesg); - ttype = TBROK; - } - - /* - * Print the first result, if necessary. - */ - if ( Tst_count < Tst_lpstart + Tst_lptotal ) - tst_res(ttype, fname, tmesg); - - /* - * Determine the number of results left to report. - */ - Tst_range = Tst_lptotal + Tst_lpstart - Tst_count; - - /* - * Print the rest of the results, if necessary. - */ - if ( Tst_range > 0 ) { - if ( ttype == TCONF ) - tst_res(ttype, NULL, - "Remaining cases in loop not appropriate for configuration"); - else if ( ttype == TRETR ) - tst_res(ttype, NULL, "Remaining cases in loop retired"); - else - tst_res(TBROK, NULL, "Remaining cases in loop broken"); - } else { - Tst_range = 1; - Expand_varargs = TRUE; - } /* if ( Tst_range > 0 ) */ - - /* - * If a cleanup function was specified, call it. - */ - if ( func != NULL ) - (*func)(); -} /* tst_brkloop() */ - - -/* - * tst_resm() - Interface to tst_res(), with no filename. - */ -void -tst_resm(int ttype, const char *arg_fmt, ...) -{ - char tmesg[USERMESG]; /* expanded message */ - -#if DEBUG - printf("IN tst_resm\n"); fflush(stdout); - fflush(stdout); -#endif - - /* - * Expand the arg_fmt string into tmesg. - */ - EXPAND_VAR_ARGS(arg_fmt, tmesg); - - /* - * Call tst_res with a null filename argument. - */ - tst_res(ttype, NULL, tmesg); -} /* tst_resm() */ - - -/* - * tst_brkm() - Interface to tst_brk(), with no filename. - */ -void -tst_brkm(int ttype, void (*func)(), const char *arg_fmt, ...) -{ - char tmesg[USERMESG]; /* expanded message */ - -#if DEBUG - printf("IN tst_brkm\n"); fflush(stdout); - fflush(stdout); -#endif - - /* - * Expand the arg_fmt string into tmesg. - */ - EXPAND_VAR_ARGS(arg_fmt, tmesg); - - /* - * Call tst_brk with a null filename argument. - */ - tst_brk(ttype, NULL, func, tmesg); -} /* tst_brkm() */ - - -/* - * tst_brkloopm() - Interface to tst_brkloop(), with no filename. - */ -void -tst_brkloopm(int ttype, void (*func)(), const char *arg_fmt, ...) -{ - char tmesg[USERMESG]; /* expanded message */ - -#if DEBUG - printf("IN tst_brkloopm\n"); - fflush(stdout); -#endif - - /* - * Expand the arg_fmt string into tmesg. - */ - EXPAND_VAR_ARGS(arg_fmt, tmesg); - - /* - * Call tst_brkloop with a null filename argument. - */ - tst_brkloop(ttype, NULL, func, tmesg); -} /* tst_brkloopm() */ - - -/* - * cat_file() - Print the contents of a file to standard out. - */ -static void -cat_file(char *filename) -{ - FILE *fp; /* file pointer */ - int b_read; /* number of bytes read with read() */ - int b_written; /* number of bytes written with write() */ - char buffer[BUFSIZ]; /* read/write buffer; BUFSIZ defined in */ - /* stdio.h */ - -#if DEBUG - printf("IN cat_file\n"); fflush(stdout); -#endif - - /* - * Open the file for reading. - */ - if ( (fp = fopen(filename, "r")) == NULL ) { - sprintf(Warn_mesg, - "tst_res(): fopen(%s, \"r\") failed; errno = %d: %s", - filename, errno, strerror(errno)); - tst_print(TCID, 0, 1, TWARN, Warn_mesg); - return; - } /* if ( fopen(filename, "r") == -1 ) */ - - /* - * While something to read, continue to read blocks. - * From fread(3) man page: - * If an error occurs, or the end-of-file is reached, the return - * value is zero. - */ - errno = 0; - while ( (b_read = fread((void *)buffer, 1, BUFSIZ, fp)) != (size_t)0 ) { - /* - * Write what was read to the result output stream. - */ - if ( (b_written = fwrite((void *)buffer, 1, b_read, T_out)) != - b_read ) { - sprintf(Warn_mesg, - "tst_res(): While trying to cat \"%s\", fwrite() wrote only %d of %d bytes", - filename, b_written, b_read); - tst_print(TCID, 0, 1, TWARN, Warn_mesg); - break; - } /* if ( b_written != b_read ) */ - } /* while ( fread() != 0 ) */ - - /* - * Check for an fread() error. - */ - if ( !feof(fp) ) { - sprintf(Warn_mesg, - "tst_res(): While trying to cat \"%s\", fread() failed, errno = %d: %s", - filename, errno, strerror(errno)); - tst_print(TCID, 0, 1, TWARN, Warn_mesg); - } /* if ( !feof() ) */ - - /* - * Close the file. - */ - if ( fclose(fp) == EOF ) { - sprintf(Warn_mesg, - "tst_res(): While trying to cat \"%s\", fclose() failed, errno = %d: %s", - filename, errno, strerror(errno)); - tst_print(TCID, 0, 1, TWARN, Warn_mesg); - } /* if ( fclose(fp) == EOF ) */ -} /* cat_file() */ - - - -#ifdef UNIT_TEST -/**************************************************************************** - * Unit test code: Takes input from stdin and can make the following - * calls: tst_res(), tst_resm(), tst_brk(), tst_brkm(), - * tst_flush_buf(), tst_exit(). - ****************************************************************************/ -int TST_TOTAL = 10; -char *TCID = "TESTTCID"; - -#define RES "tst_res.c UNIT TEST message; ttype = %d; contents of \"%s\":" -#define RESM "tst_res.c UNIT TEST message; ttype = %d" - -main() -{ - int ttype; - int range; - char *chrptr; - char chr; - char fname[MAXMESG]; - - printf("UNIT TEST of tst_res.c. Options for ttype:\n\ - -1 : call tst_exit()\n\ - -2 : call tst_flush()\n\ - -3 : call tst_brk()\n\ - -4 : call tst_brkloop()\n\ - -5 : call tst_res() with a range\n\ - 0 : call tst_res(TPASS, ...)\n\ - 1 : call tst_res(TFAIL, ...)\n\ - 2 : call tst_res(TBROK, ...)\n\ - 4 : call tst_res(TWARN, ...)\n\ - 8 : call tst_res(TRETR, ...)\n\ - 16 : call tst_res(TINFO, ...)\n\ - 32 : call tst_res(TCONF, ...)\n\n"); - - while ( 1 ) { - printf("Enter ttype (-5,-4,-3,-2,-1,0,1,2,4,8,16,32): "); - (void) scanf("%d%c", &ttype, &chr); - - - switch ( ttype ) { - case -1: - tst_exit(); - break; - - case -2: - tst_flush(); - break; - - case -3: - printf("Enter the current type (1=FAIL, 2=BROK, 8=RETR, 32=CONF): "); - (void) scanf("%d%c", &ttype, &chr); - printf("Enter file name ( for none): "); - gets(fname); - if ( strcmp(fname, "") == 0 ) - tst_brkm(ttype, tst_exit, RESM, ttype); - else - tst_brk(ttype, fname, tst_exit, RES, ttype, fname); - break; - - case -4: - printf("Enter the size of the loop: "); - (void) scanf("%d%c", &range, &chr); - Tst_lpstart = Tst_count; - Tst_lptotal = range; - printf("Enter the current type (1=FAIL, 2=BROK, 8=RETR, 32=CONF): "); - (void) scanf("%d%c", &ttype, &chr); - printf("Enter file name ( for none): "); - gets(fname); - if ( strcmp(fname, "") == 0 ) - tst_brkloopm(ttype, NULL, RESM, ttype); - else - tst_brkloop(ttype, fname, NULL, RES, ttype, fname); - break; - - case -5: - printf("Enter the size of the range: "); - (void) scanf("%d%c", &Tst_range, &chr); - printf("Enter the current type (0,1,2,4,8,16,32): "); - (void) scanf("%d%c", &ttype, &chr); - /* fall through to tst_res() call */ - - default: - printf("Enter file name ( for none): "); - gets(fname); - if ( strcmp(fname, "") == 0 ) - tst_resm(ttype, RESM, ttype); - else - tst_res(ttype, fname, RES, ttype, fname); - break; - } /* switch() */ - } /* while() */ -} -#endif /* UNIT_TEST */ diff --git a/winsup/testsuite/libltp/lib/tst_sig.c b/winsup/testsuite/libltp/lib/tst_sig.c deleted file mode 100644 index f5b64b666..000000000 --- a/winsup/testsuite/libltp/lib/tst_sig.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ - -/* $Id$ */ - -/***************************************************************************** - OS Testing - Silicon Graphics, Inc. - - FUNCTION IDENTIFIER : tst_sig Set up for unexpected signals. - - AUTHOR : David D. Fenner - - CO-PILOT : Bill Roske - - DATE STARTED : 06/06/90 - - This module may be linked with c-modules requiring unexpected - signal handling. The parameters to tst_sig are as follows: - - fork_flag - set to FORK or NOFORK depending upon whether the - calling program executes a fork() system call. It - is normally the case that the calling program treats - SIGCLD as an expected signal if fork() is being used. - - handler - a pointer to the unexpected signal handler to - be executed after an unexpected signal has been - detected. If handler is set to DEF_HANDLER, a - default handler is used. This routine should be - declared as function returning an int. - - cleanup - a pointer to a cleanup routine to be executed - by the unexpected signal handler before tst_exit is - called. This parameter is set to NULL if no cleanup - routine is required. An external variable, T_cleanup - is set so that other user-defined handlers have - access to the cleanup routine. This routine should be - declared as returning type void. - -***************************************************************************/ - -#ifndef CRAY -#define _BSD_SIGNALS 1 /* Specify that we are using BSD signal interface */ -#endif - -#include -#include -#include -#include "test.h" - -#define MAXMESG 150 /* size of mesg string sent to tst_res */ - -void (*T_cleanup)(); /* pointer to cleanup function */ - -extern int errno; -static void def_handler(); /* default signal handler */ - -/**************************************************************************** - * tst_sig() : set-up to catch unexpected signals. fork_flag is set to NOFORK - * if SIGCLD is to be an "unexpected signal", otherwise it is set to - * FORK. cleanup points to a cleanup routine to be executed before - * tst_exit is called (cleanup is set to NULL if no cleanup is desired). - * handler is a pointer to the signal handling routine (if handler is - * set to NULL, a default handler is used). - ***************************************************************************/ - -void -tst_sig(int fork_flag, void (*handler)(), void (*cleanup)()) -{ - char mesg[MAXMESG]; /* message buffer for tst_res */ - int sig; - - /* - * save T_cleanup and handler function pointers - */ - T_cleanup = cleanup; /* used by default handler */ - - if (handler == DEF_HANDLER) { - /* use default handler */ - handler = def_handler; - } - - /* - * now loop through all signals and set the handlers - */ - - for (sig = 1; sig < NSIG; sig++) { - /* - * SIGKILL is never unexpected. - * SIGCLD is only unexpected when - * no forking is being done. - * SIGINFO is used for file quotas and should be expected - */ - - switch (sig) { - case SIGKILL: - case SIGSTOP: - case SIGCONT: -#ifdef CRAY - case SIGINFO: - case SIGRECOVERY: /* allow chkpnt/restart */ -#endif /* CRAY */ - -#ifdef SIGSWAP - case SIGSWAP: -#endif /* SIGSWAP */ - -#ifdef SIGCKPT - case SIGCKPT: -#endif -#ifdef SIGRESTART - case SIGRESTART: -#endif - /* - * pthread-private signals SIGPTINTR and SIGPTRESCHED. - * Setting a handler for these signals is disallowed when - * the binary is linked against libpthread. - */ -#ifdef SIGPTINTR - case SIGPTINTR: -#endif /* SIGPTINTR */ -#ifdef SIGPTRESCHED - case SIGPTRESCHED: -#endif /* SIGPTRESCHED */ -#ifdef __CYGWIN__ - case SIGILL: - case SIGTRAP: - case SIGABRT: - case SIGEMT: - case SIGFPE: - case SIGBUS: -#endif - break; - - case SIGCLD: - if ( fork_flag == FORK ) - continue; - - default: - if (signal(sig, handler) == SIG_ERR) { - (void) sprintf(mesg, - "signal() failed for signal %d. error:%d %s.", - sig, errno, strerror(errno)); - tst_resm(TWARN, mesg); - } - break; - } -#ifdef __sgi - /* On irix (07/96), signal() fails when signo is 33 or higher */ - if ( sig+1 >= 33 ) - break; -#endif /* __sgi */ - - } /* endfor */ -} - - - -/**************************************************************************** - * def_handler() : default signal handler that is invoked when - * an unexpected signal is caught. - ***************************************************************************/ - -static void -def_handler(int sig) -{ - char mesg[MAXMESG]; /* holds tst_res message */ - - /* first reset trap for this signal (except SIGCLD - its weird) */ - if ((sig != SIGCLD) && (sig != SIGSTOP) && (sig != SIGCONT)) { - if (signal(sig, def_handler) == SIG_ERR) { - (void) sprintf(mesg, - "def_handler: signal() failed for signal %d. error:%d %s.", - sig, errno, strerror(errno)); - tst_resm(TWARN, mesg); - } - } - - (void) sprintf(mesg, "Unexpected signal %d received.", sig); - - /* - * Break remaining test cases, do any cleanup, then exit - */ - tst_brkm(TBROK, 0, mesg); - - /* now cleanup and exit */ - if (T_cleanup) { - (*T_cleanup)(); - } - - tst_exit(); -} diff --git a/winsup/testsuite/libltp/lib/tst_tmpdir.c b/winsup/testsuite/libltp/lib/tst_tmpdir.c deleted file mode 100644 index ef1e2cd70..000000000 --- a/winsup/testsuite/libltp/lib/tst_tmpdir.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ - -/* $Id$ */ - -/********************************************************** - * - * OS Testing - Silicon Graphics, Inc. - * - * FUNCTION NAME : tst_tmpdir, tst_rmdir - * - * FUNCTION TITLE : Create/remove a testing temp dir - * - * SYNOPSIS: - * void tst_tmpdir(); - * void tst_rmdir(); - * - * AUTHOR : Dave Fenner - * - * INITIAL RELEASE : UNICOS 8.0 - * - * DESCRIPTION - * tst_tmpdir() is used to create a unique, temporary testing - * directory, and make it the current working directory. - * tst_rmdir() is used to remove the directory created by - * tst_tmpdir(). - * - * Setting the env variable "TDIRECTORY" will override the creation - * of a new temp dir. The directory specified by TDIRECTORY will - * be used as the temporary directory, and no removal will be done - * in tst_rmdir(). - * - * RETURN VALUE - * Neither tst_tmpdir() or tst_rmdir() has a return value. - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ -#include -#include -#include /* for getenv() */ -#include /* for string functions */ -#include /* for sysconf(), getcwd(), rmdir() */ -#include /* for mkdir() */ -#include /* for mkdir() */ -#include "test.h" -#include "rmobj.h" - -/* - * Define some useful macros. - */ -#define PREFIX_SIZE 4 -#define STRING_SIZE 256 -#define DIR_MODE 0777 /* mode of tmp dir that will be created */ - -#ifndef PATH_MAX -#ifdef MAXPATHLEN -#define PATH_MAX MAXPATHLEN -#else -#define PATH_MAX 1024 -#endif -#endif - -/* - * Define function prototypes. - */ -static void tmpdir_cleanup(); - -/* - * Define global variables. - */ -extern char *TCID; /* defined/initialized in main() */ -extern int TST_TOTAL; /* defined/initialized in main() */ -extern char *TESTDIR; /* the directory created; defined in */ - /* tst_res.c */ - -/* - * tst_tmpdir() - Create a unique temporary directory and chdir() to it. - * It expects the caller to have defined/initialized the - * TCID/TST_TOTAL global variables. The TESTDIR global - * variable will be set to the directory that gets used - * as the testing directory. - * - * NOTE: This function must be called BEFORE any activity - * that would require CLEANUP. If tst_tmpdir() fails, it - * cleans up afer itself and calls tst_exit() (i.e. does - * not return). - */ -#undef FN_NAME -#define FN_NAME "tst_tmpdir()" - -void -tst_tmpdir() -{ - char prefix[PREFIX_SIZE]; /* first three characters from TCID */ - int no_cleanup = 0; /* !0 means TDIRECTORY env var was set */ - - /* - * If the TDIRECTORY env variable is not set, a temp dir will be - * created. - */ - if ( (TESTDIR = getenv(TDIRECTORY)) == NULL ) { - /* - * Create a unique name based on the first three characters of the - * TCID. The last byte in "prefix" is for the null. - */ - strncpy(prefix, TCID, PREFIX_SIZE - 1); - prefix[PREFIX_SIZE-1] = '\0'; - if ( (TESTDIR = tempnam(TEMPDIR, prefix)) == NULL ) - tst_brkm(TBROK, tmpdir_cleanup, "%s: tempnam(%s, %s) failed", - FN_NAME, TEMPDIR, prefix); - - /* - * Create the temporary directory. - */ - if ( mkdir(TESTDIR, DIR_MODE) == -1 ) - tst_brkm(TBROK, tmpdir_cleanup, - "%s: mkdir(%s, %#o) failed; errno = %d: %s", - FN_NAME, TESTDIR, DIR_MODE, errno, strerror(errno)); - - /* - * Change the group on this temporary directory to be that of the - * gid of the person running the tests. - */ - if ( chown(TESTDIR, -1, getgid()) == -1 ) - tst_brkm(TBROK, tmpdir_cleanup, - "chown(%s, -1, %d) failed; errno = %d: %s", - TESTDIR, getgid(), errno, strerror(errno)); - } else { - /* - * The TDIRECTORY env. variable is set, so no temp dir is created. - * Also, no clean up will be done via tst_rmdir(). - */ - no_cleanup++; -#if UNIT_TEST - printf("TDIRECTORY env var is set\n"); -#endif - } - -#if UNIT_TEST - printf("TESTDIR = %s\n", TESTDIR); -#endif - - /* - * Change to the temporary directory. If the chdir() fails, issue - * TBROK messages for all test cases, attempt to remove the - * directory (if it was created), and exit. If the removal also - * fails, also issue a TWARN message. - */ - if ( chdir(TESTDIR) == -1 ) { - tst_brkm(TBROK, NULL, "%s: chdir(%s) failed; errno = %d: %s", - FN_NAME, TESTDIR, errno, strerror(errno) ); - - /* Try to remove the directory */ - if ( !no_cleanup && rmdir(TESTDIR) == -1 ) - tst_resm(TWARN, "%s: rmdir(%s) failed; errno = %d: %s", - FN_NAME, TESTDIR, errno, strerror(errno) ); - - tmpdir_cleanup(); - } - -#if UNIT_TEST - printf("CWD is %s\n", getcwd((char *)NULL, PATH_MAX)); -#endif - - /* - * If we made through all this stuff, return. - */ - return; -} /* tst_tmpdir() */ - - -/* - * - * tst_rmdir() - Recursively remove the temporary directory created by - * tst_tmpdir(). This function is intended ONLY as a - * companion to tst_tmpdir(). If the TDIRECTORY - * environment variable is set, no cleanup will be - * attempted. - */ -#undef FN_NAME -#define FN_NAME "tst_rmdir()" - -void -tst_rmdir() -{ - char *errmsg; - char *tdirectory; - char current_dir[PATH_MAX]; /* current working directory */ - char parent_dir[PATH_MAX]; /* directory above TESTDIR */ - char *basename; /* basename of the TESTDIR */ - - /* - * If the TDIRECTORY env variable is set, this indicates that no - * temp dir was created by tst_tmpdir(). Thus no cleanup will be - * necessary. - */ - if ( (tdirectory = getenv(TDIRECTORY)) != NULL ) { -#if UNIT_TEST - printf("\"TDIRECORY\" env variable is set; no cleanup was performed\n"); -#endif - return; - } - - /* - * Check that TESTDIR is not NULL. - */ - if ( TESTDIR == NULL ) { - tst_resm(TWARN, "%s: TESTDIR was NULL; no removal attempted", - FN_NAME); - return; - } - - /* - * Check that the value of TESTDIR is not "*" or "/". These could - * have disastrous effects in a test run by root. - */ - if ( strcmp(TESTDIR, "/") == 0 ) { - tst_resm(TWARN, - "%s: Recursive remove of root directory not attempted", - FN_NAME); - return; - } - - if ( strchr(TESTDIR, '*') != NULL ) { - tst_resm(TWARN, "%s: Recursive remove of '*' not attempted", - FN_NAME); - return; - } - - /* - * Get the directory name of TESTDIR. If TESTDIR is a relative path, - * get full path. - */ - if ( TESTDIR[0] != '/' ) { - if ( getcwd(current_dir,PATH_MAX) == NULL ) - strcpy(parent_dir, TESTDIR); - else - sprintf(parent_dir, "%s/%s", current_dir, TESTDIR); - } else { - strcpy(parent_dir, TESTDIR); - } - if ( (basename = strrchr(parent_dir, '/')) != NULL ) { - *basename='\0'; /* terminate at end of parent_dir */ - } - - /* - * Change directory to parent_dir (The dir above TESTDIR). - */ - if ( chdir(parent_dir) != 0 ) - tst_resm(TWARN, - "%s: chdir(%s) failed; errno = %d: %s\nAttempting to remove temp dir anyway", - FN_NAME, parent_dir, errno, strerror(errno)); - - /* - * Attempt to remove the "TESTDIR" directory, using rmobj(). - */ - if ( rmobj(TESTDIR, &errmsg) == -1 ) - tst_resm(TWARN, "%s: rmobj(%s) failed: %s", - FN_NAME, TESTDIR, errmsg); - - return; -} /* tst_rmdir() */ - - -/* - * tmpdir_cleanup() - This function is used when tst_tmpdir() - * encounters an error, and must cleanup and exit. - * It prints a warning message via tst_resm(), and - * then calls tst_exit(). - */ -#undef FN_NAME -#define FN_NAME "tst_tmpdir()" - -static void -tmpdir_cleanup() -{ - /* - * Print a warning message and call tst_exit() to exit the test. - */ - tst_resm(TWARN, "%s: No user cleanup function called before exiting", - FN_NAME); - tst_exit(); -} /* tmpdir_cleanup() */ - - -#ifdef UNIT_TEST -/**************************************************************************** - * Unit test code: Takes input from stdin and can make the following - * calls: tst_tmpdir(), tst_rmdir(). - ****************************************************************************/ -int TST_TOTAL = 10; -char *TCID = "TESTTCID"; - -main() -{ - int option; - char *chrptr; - - printf("UNIT TEST of tst_tmpdir.c. Options to try:\n\ - -1 : call tst_exit()\n\ - 0 : call tst_tmpdir()\n\ - 1 : call tst_rmdir()\n\n"); - - while ( 1 ) { - printf("Enter options (-1, 0, 1): "); - (void) scanf("%d%c", &option, &chrptr); - - switch ( option ) { - case -1: - tst_exit(); - break; - - case 0: - tst_tmpdir(); - break; - - case 1: - tst_rmdir(); - break; - } /* switch() */ - } /* while() */ -} -#endif /* UNIT_TEST */ diff --git a/winsup/testsuite/libltp/lib/write_log.c b/winsup/testsuite/libltp/lib/write_log.c deleted file mode 100644 index 316dfe79b..000000000 --- a/winsup/testsuite/libltp/lib/write_log.c +++ /dev/null @@ -1,468 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -/* - * This module contains code for logging writes to files, and for - * perusing the resultant logfile. The main intent of all this is - * to provide a 'write history' of a file which can be examined to - * judge the state of a file (ie. whether it is corrupted or not) based - * on the write activity. - * - * The main abstractions available to the user are the wlog_file, and - * the wlog_rec. A wlog_file is a handle encapsulating a write logfile. - * It is initialized with the wlog_open() function. This handle is - * then passed to the various wlog_xxx() functions to provide transparent - * access to the write logfile. - * - * The wlog_rec datatype is a structure which contains all the information - * about a file write. Examples include the file name, offset, length, - * pattern, etc. In addition there is a bit which is cleared/set based - * on whether or not the write has been confirmed as complete. This - * allows the write logfile to contain information on writes which have - * been initiated, but not yet completed (as in async io). - * - * There is also a function to scan a write logfile in reverse order. - * - * NOTE: For target file analysis based on a write logfile, the - * assumption is made that the file being written to is - * locked from simultaneous access, so that the order of - * write completion is predictable. This is an issue when - * more than 1 process is trying to write data to the same - * target file simultaneously. - * - * The history file created is a collection of variable length records - * described by scruct wlog_rec_disk in write_log.h. See that module for - * the layout of the data on disk. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "write_log.h" - -#ifndef BSIZE -#ifdef linux -#define BSIZE DEV_BSIZE -#else -#ifdef __CYGWIN__ -#define BSIZE S_BLKSIZE -#else -#define BSIZE BBSIZE -#endif -#endif -#endif - -#ifndef PATH_MAX -#define PATH_MAX 255 -/*#define PATH_MAX pathconf("/", _PC_PATH_MAX)*/ -#endif - -char Wlog_Error_String[256]; - -#if __STDC__ -static int wlog_rec_pack(struct wlog_rec *wrec, char *buf, int flag); -static int wlog_rec_unpack(struct wlog_rec *wrec, char *buf); -#else -static int wlog_rec_pack(); -static int wlog_rec_unpack(); -#endif - -/* - * Initialize a write logfile. wfile is a wlog_file structure that has - * the w_file field filled in. The rest of the information in the - * structure is initialized by the routine. - * - * The trunc flag is used to indicate whether or not the logfile should - * be truncated if it currently exists. If it is non-zero, the file will - * be truncated, otherwise it will be appended to. - * - * The mode argument is the [absolute] mode which the file will be - * given if it does not exist. This mode is not affected by your process - * umask. - */ - -int -wlog_open(wfile, trunc, mode) -struct wlog_file *wfile; -int trunc; -int mode; -{ - int omask, oflags; - - if (trunc) - trunc = O_TRUNC; - - omask = umask(0); - - /* - * Open 1 file descriptor as O_APPEND - */ - - oflags = O_WRONLY | O_APPEND | O_CREAT | trunc; - wfile->w_afd = - open(wfile->w_file, oflags, mode); - umask(omask); - - if (wfile->w_afd == -1) { - sprintf(Wlog_Error_String, - "Could not open write_log - open(%s, %#o, %#o) failed: %s\n", - wfile->w_file, oflags, mode, strerror(errno)); - return -1; - } - - /* - * Open the next fd as a random access descriptor - */ - - oflags = O_RDWR; - if ((wfile->w_rfd = open(wfile->w_file, oflags)) == -1) { - sprintf(Wlog_Error_String, - "Could not open write log - open(%s, %#o) failed: %s\n", - wfile->w_file, oflags, strerror(errno)); - close(wfile->w_afd); - wfile->w_afd = -1; - return -1; - } - - return 0; -} - -/* - * Release all resources associated with a wlog_file structure allocated - * with the wlog_open() call. - */ - -int -wlog_close(wfile) -struct wlog_file *wfile; -{ - close(wfile->w_afd); - close(wfile->w_rfd); - return 0; -} - -/* - * Write a wlog_rec structure to a write logfile. Offset is used to - * control where the record will be written. If offset is < 0, the - * record will be appended to the end of the logfile. Otherwise, the - * record which exists at the indicated offset will be overlayed. This - * is so that we can record writes which are outstanding (with the w_done - * bit in wrec cleared), but not completed, and then later update the - * logfile when the write request completes (as with async io). When - * offset is >= 0, only the fixed length portion of the record is - * rewritten. See text in write_log.h for details on the format of an - * on-disk record. - * - * The return value of the function is the byte offset in the logfile - * where the record begins. - * - * Note: It is the callers responsibility to make sure that the offset - * parameter 'points' to a valid record location when a record is to be - * overlayed. This is guarenteed by saving the return value of a previous - * call to wlog_record_write() which wrote the record to be overlayed. - * - * Note2: The on-disk version of the wlog_rec is MUCH different than - * the user version. Don't expect to od the logfile and see data formatted - * as it is in the wlog_rec structure. Considerable data packing takes - * place before the record is written. - */ - -int -wlog_record_write(wfile, wrec, offset) -struct wlog_file *wfile; -struct wlog_rec *wrec; -long offset; -{ - int reclen; - char wbuf[WLOG_REC_MAX_SIZE + 2]; - - /* - * If offset is -1, we append the record at the end of file - * - * Otherwise, we overlay wrec at the file offset indicated and assume - * that the caller passed us the correct offset. We do not record the - * fname in this case. - */ - - reclen = wlog_rec_pack(wrec, wbuf, (offset < 0)); - - if (offset < 0) { - /* - * Since we're writing a complete new record, we must also tack - * its length onto the end so that wlog_scan_backward() will work. - * Length is asumed to fit into 2 bytes. - */ - - wbuf[reclen] = reclen / 256; - wbuf[reclen+1] = reclen % 256; - reclen += 2; - - write(wfile->w_afd, wbuf, reclen); - offset = lseek(wfile->w_afd, 0, SEEK_CUR) - reclen; - } else { - lseek(wfile->w_rfd, offset, SEEK_SET); - write(wfile->w_rfd, wbuf, reclen); - } - - return offset; -} - -/* - * Function to scan a logfile in reverse order. Wfile is a valid - * wlog_file structure initialized by wlog_open(). nrecs is the number - * of records to scan (all records are scanned if nrecs is 0). func is - * a user-supplied function to call for each record found. The function - * will be passed a single parameter - a wlog_rec structure . - */ - -int -wlog_scan_backward(wfile, nrecs, func, data) -struct wlog_file *wfile; -int nrecs; -int (*func)(); -long data; -{ - int fd, leftover, nbytes, offset, recnum, reclen, rval; - char buf[BSIZE*32], *bufend, *cp, *bufstart; - char albuf[WLOG_REC_MAX_SIZE]; - struct wlog_rec wrec; - - fd = wfile->w_rfd; - - /* - * Move to EOF. offset will always hold the current file offset - */ - - lseek(fd, 0, SEEK_END); - offset = lseek(fd, 0, SEEK_CUR); - - bufend = buf + sizeof(buf); - bufstart = buf; - - recnum = 0; - leftover = 0; - while ((!nrecs || recnum < nrecs) && offset > 0) { - /* - * Check for beginning of file - if there aren't enough bytes - * remaining to fill buf, adjust bufstart. - */ - - if (offset + leftover < sizeof(buf)) { - bufstart = bufend - (offset + leftover); - offset = 0; - } else { - offset -= sizeof(buf) - leftover; - } - - /* - * Move to the proper file offset, and read into buf - */ - - lseek(fd, offset, SEEK_SET); - nbytes = read(fd, bufstart, bufend - bufstart - leftover); - - if (nbytes == -1) { - sprintf(Wlog_Error_String, - "Could not read history file at offset %d - read(%d, %#o, %d) failed: %s\n", - offset, fd, (int)bufstart, - bufend - bufstart - leftover, strerror(errno)); - return -1; - } - - cp = bufend; - leftover = 0; - - while (cp >= bufstart) { - - /* - * If cp-bufstart is not large enough to hold a piece - * of record length information, copy remainder to end - * of buf and continue reading the file. - */ - - if (cp - bufstart < 2) { - leftover = cp - bufstart; - memcpy(bufend - leftover, bufstart, leftover); - break; - } - - /* - * Extract the record length. We must do it this way - * instead of casting cp to an int because cp might - * not be word aligned. - */ - - reclen = (*(cp-2) * 256) + *(cp -1); - - /* - * If cp-bufstart isn't large enough to hold a - * complete record, plus the length information, copy - * the leftover bytes to the end of buf and continue - * reading. - */ - - if (cp - bufstart < reclen + 2) { - leftover = cp - bufstart; - memcpy(bufend - leftover, bufstart, leftover); - break; - } - - /* - * Adjust cp to point at the start of the record. - * Copy the record into wbuf so that it is word - * aligned and pass the record to the user supplied - * function. - */ - - cp -= reclen + 2; - memcpy(albuf, cp, reclen); - - wlog_rec_unpack(&wrec, albuf); - - /* - * Call the user supplied function - - * stop if instructed to. - */ - - if ((rval = (*func)(&wrec, data)) == WLOG_STOP_SCAN) { - break; - } - - recnum++; - - if (nrecs && recnum >= nrecs) - break; - } - } - - return 0; -} - -/* - * The following 2 routines are used to pack and unpack the user - * visible wlog_rec structure to/from a character buffer which is - * stored or read from the write logfile. Any changes to either of - * these routines must be reflected in the other. - */ - -static int -wlog_rec_pack(wrec, buf, flag) -struct wlog_rec *wrec; -char *buf; -int flag; -{ - char *file, *host, *pattern; - struct wlog_rec_disk *wrecd; - - wrecd = (struct wlog_rec_disk *)buf; - - wrecd->w_pid = (uint)wrec->w_pid; - wrecd->w_offset = (uint)wrec->w_offset; - wrecd->w_nbytes = (uint)wrec->w_nbytes; - wrecd->w_oflags = (uint)wrec->w_oflags; - wrecd->w_done = (uint)wrec->w_done; - wrecd->w_async = (uint)wrec->w_async; - - wrecd->w_pathlen = (wrec->w_pathlen > 0) ? (uint)wrec->w_pathlen : 0; - wrecd->w_hostlen = (wrec->w_hostlen > 0) ? (uint)wrec->w_hostlen : 0; - wrecd->w_patternlen = (wrec->w_patternlen > 0) ? (uint)wrec->w_patternlen : 0; - - /* - * If flag is true, we should also pack the variable length parts - * of the wlog_rec. By default, we only pack the fixed length - * parts. - */ - - if (flag) { - file = buf + sizeof(struct wlog_rec_disk); - host = file + wrecd->w_pathlen; - pattern = host + wrecd->w_hostlen; - - if (wrecd->w_pathlen > 0) - memcpy(file, wrec->w_path, wrecd->w_pathlen); - - if (wrecd->w_hostlen > 0) - memcpy(host, wrec->w_host, wrecd->w_hostlen); - - if (wrecd->w_patternlen > 0) - memcpy(pattern, wrec->w_pattern, wrecd->w_patternlen); - - return (sizeof(struct wlog_rec_disk) + - wrecd->w_pathlen + wrecd->w_hostlen + wrecd->w_patternlen); - } else { - return sizeof(struct wlog_rec_disk); - } -} - -static int -wlog_rec_unpack(wrec, buf) -struct wlog_rec *wrec; -char *buf; -{ - char *file, *host, *pattern; - struct wlog_rec_disk *wrecd; - - bzero((char *)wrec, sizeof(struct wlog_rec)); - wrecd = (struct wlog_rec_disk *)buf; - - wrec->w_pid = wrecd->w_pid; - wrec->w_offset = wrecd->w_offset; - wrec->w_nbytes = wrecd->w_nbytes; - wrec->w_oflags = wrecd->w_oflags; - wrec->w_hostlen = wrecd->w_hostlen; - wrec->w_pathlen = wrecd->w_pathlen; - wrec->w_patternlen = wrecd->w_patternlen; - wrec->w_done = wrecd->w_done; - wrec->w_async = wrecd->w_async; - - if (wrec->w_pathlen > 0) { - file = buf + sizeof(struct wlog_rec_disk); - memcpy(wrec->w_path, file, wrec->w_pathlen); - } - - if (wrec->w_hostlen > 0) { - host = buf + sizeof(struct wlog_rec_disk) + wrec->w_pathlen; - memcpy(wrec->w_host, host, wrec->w_hostlen); - } - - if (wrec->w_patternlen > 0) { - pattern = buf + sizeof(struct wlog_rec_disk) + - wrec->w_pathlen + wrec->w_hostlen; - memcpy(wrec->w_pattern, pattern, wrec->w_patternlen); - } - - return 0; -} diff --git a/winsup/testsuite/winsup.api/checksignal.c b/winsup/testsuite/winsup.api/checksignal.c deleted file mode 100644 index a8b5d3927..000000000 --- a/winsup/testsuite/winsup.api/checksignal.c +++ /dev/null @@ -1,79 +0,0 @@ -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -char *TCID = "checksignal"; /* Test program identifier. */ -int TST_TOTAL = 3; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -void -sig_handler (int signo) -{ - errno = EINVAL; -} - -int -main () -{ - int n, ret; - int fds[2]; - char buf[10]; - struct sigaction act; - - Tst_count = 0; - - if (pipe (fds) < 0) - tst_brk (TBROK, NULL, NULL, "Create pipe"); - - /* Reset SA_RESTART flag. */ - while ((ret = sigaction (SIGALRM, NULL, &act)) == EINTR) - ; - if (ret) - tst_brk (TBROK, NULL, NULL, "Get signal action structure"); - act.sa_flags &= ~SA_RESTART; - while ((ret = sigaction (SIGALRM, &act, NULL)) == EINTR) - ; - if (ret) - tst_brk (TBROK, NULL, NULL, "Reset SA_RESTART"); - - /* Set signal handler using signal(2) call... */ - if (signal (SIGALRM, sig_handler) < 0) - tst_brk (TBROK, NULL, NULL, "Call signal() to install signal handler"); - /* ...and check if signal(2) sets SA_RESTART again. */ - while ((ret = sigaction (SIGALRM, NULL, &act)) == EINTR) - ; - if (ret) - tst_brk (TBROK, NULL, NULL, "Get signal action structure"); - tst_resm (act.sa_flags & SA_RESTART ? TPASS : TFAIL, - "signal() sets SA_RESTART"); - - /* Reset SA_RESTART flag again. */ - act.sa_handler = sig_handler; - act.sa_flags &= ~SA_RESTART; - while ((ret = sigaction (SIGALRM, &act, NULL)) == EINTR) - ; - if (ret) - tst_brk (TBROK, NULL, NULL, "Reset SA_RESTART"); - - /* Start timer to force a SIGALRM. */ - alarm (1); - - /* Call read(2) to check if the EINTR errno is correctly preserved, - even if the signal handler routine changes errno. */ - n = read(fds[0], buf, 10); - tst_resm (n < 0 && errno == EINTR ? TPASS : TFAIL, - "Set EINTR on interrupted read() call"); - - /* Check if another errno is correctly returned (here EBADF). */ - close (fds[0]); - n = read(fds[0], buf, 10); - tst_resm (n < 0 && errno == EBADF ? TPASS : TFAIL, - "Set EBADF on closed file descriptor"); - - tst_exit (); -} diff --git a/winsup/testsuite/winsup.api/crlf.c b/winsup/testsuite/winsup.api/crlf.c deleted file mode 100644 index 5dbc2227b..000000000 --- a/winsup/testsuite/winsup.api/crlf.c +++ /dev/null @@ -1,527 +0,0 @@ - -typedef enum { - Nop=100000, /* ; do nothing */ - New1, /* ; reset and begin new test */ - Open, /* ; open test file */ - Read, /* [askfor] [get] ; read bytes into buffer */ - Write, /* [expect] [bytestream] ; write to file (expect 0 = ignore)*/ - Compare, /* [bytestream] ; compare buffer to given bytes */ - Verify, /* [bytestream] ; compare file to given bytes */ - Seek, /* [offset] [whence] ; seek in file */ - Tell, /* [offset] ; compare file positions */ - BufSize, /* [size] ; change the stdio buffer size */ - Flush, /* ; flush the stdio stream */ - Text, /* ; switch file to text mode */ - Binary, /* ; switch file to binary mode */ - Rep, /* [count] ; repeat 'R' bytes (used in bytestream) */ - Fill, /* [posn] ; fill 'F' until given byte position */ - Start, /* ; for Seek */ - Current, /* ; for Seek */ - End, /* ; for Seek, or end of byte stream */ - Max } Opcode; - -#define New New1,__LINE__ - -/* Byte streams are just inserted into the command stream, and must - end in an End code. */ - -int commands[] = { -#ifndef __DJGPP__ - New, - Write, 1605, Rep, 1600, 'h', 'e', 'l', 'l', 'o', End, - Tell, 1605, - - Open, - BufSize, 16, - Read, 1605, 1605, - Compare, Rep, 1600, 'h', 'e', 'l', 'l', 'o', End, - Tell, 1605, - Flush, - Tell, 1605, - Seek, 1000, Start, - Tell, 1000, - - New, - Text, - Write, 2, 'x', 10, End, - Verify, 'x', 13, 10, End, - - New, - Binary, - Write, 2, 'x', 10, End, - Verify, 'x', 10, End, - - BufSize, 16, - - New, - Binary, - Write, 0, Fill, 15, 13, 10, 'x', End, - Text, Open, - Read, 17, 17, - Compare, Fill, 15, 10, 'x', End, - Tell, 18, - - New, - Binary, - Write, 0, Fill, 14, 13, 10, 'x', End, - Text, Open, - Read, 16, 16, - Compare, Fill, 14, 10, 'x', End, - Tell, 17, - - New, - Binary, - Write, 0, 13, 10, 'a', 'b', End, - Text, Open, - Read, 2, 2, - Compare, 10, 'a', End, - Tell, 3, - - New, - Binary, - Write, 0, 10, 'a', 'b', End, - Text, Open, - Read, 2, 2, - Compare, 10, 'a', End, - Tell, 2, - - New, - Binary, - Write, 0, 13, 'a', 'b', End, - Text, Open, - Read, 2, 2, - Compare, 13, 'a', End, - Tell, 2, - - New, - Binary, - Write, 0, 13, 13, 10, 'a', End, - Text, Open, - Read, 2, 2, - Compare, 13, 10, End, - Tell, 3, - - New, - Binary, - Write, 0, 13, 10, 'a', 13, End, - Text, Open, - Read, 2, 2, - Compare, 10, 'a', End, - Tell, 3, - - New, - Binary, - Write, 0, 13, 10, 'a', 10, End, - Text, Open, - Read, 2, 2, - Compare, 10, 'a', End, - Tell, 3, - - New, - Binary, - Write, 0, 13, 13, 13, 10, 'a', 10, 10, 10, End, - Text, Open, - Read, 4, 4, - Compare, 13, 13, 10, 'a', End, - Tell, 5, -#endif - - New, - Binary, - Write, 0, 13, 13, 13, 10, 'a', 'b', 13, 10, 13, 10, End, - Text, Open, - Read, 4, 4, - Compare, 13, 13, 10, 'a', End, - Tell, 5, - - }; - -/*==========================================================================*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef O_BINARY -#define O_BINARY 0 -#endif -#ifndef O_TEXT -#define O_TEXT 0 -#endif - -int errors = 0; - -#define num_commands (sizeof(commands)/sizeof(commands[0])) - -int pc; -int askfor, get, expect, count, posn, whence, size; - -typedef struct { - unsigned char *bytes; - int max, count; -} Buffer; - -Buffer rw_buf={0,0,0}, cmp_buf={0,0,0}, vfy_buf={0,0,0}; - -void -expand_buf(Buffer *buf, int len) -{ - if (buf->max < len) - { - buf->max = len+20; - if (buf->bytes) - buf->bytes = (unsigned char *)realloc(buf->bytes, buf->max); - else - buf->bytes = (unsigned char *)malloc(buf->max); - } -} - -void -get_bytestream(Buffer *buf) -{ - int tpc; - int len = 0, rep, byte; - unsigned char *bp; - - for (tpc = pc+1; tpc < num_commands && commands[tpc] != End; tpc++) - { - switch (commands[tpc]) - { - case Rep: - len += commands[tpc+1]; - tpc ++; - break; - case Fill: - if (len < commands[tpc+1]) - len = commands[tpc+1]; - tpc ++; - break; - default: - len ++; - break; - } - } - - expand_buf(buf, len); - - len = 0; - bp = buf->bytes; - - for (tpc = pc+1; tpc < num_commands && commands[tpc] != End; tpc++) - { - switch (commands[tpc]) - { - case Rep: - rep = commands[++tpc]; - byte = 'R'; - while (rep--) *bp++ = byte; - break; - case Fill: - rep = commands[++tpc]; - byte = 'F'; - while (bp-buf->bytes < rep) *bp++ = byte; - break; - default: - *bp++ = commands[tpc]; - break; - } - } - buf->count = bp - buf->bytes; - pc = tpc; -} - -char dataname[] = "crlf.dat"; - -int verbose=0; -void -v(char *fmt, ...) -{ - va_list ap; - if (!verbose) return; - va_start(ap, fmt); - vfprintf(stdout, fmt, ap); - va_end(ap); - printf("\n"); -} - -void -vp(char *fmt, ...) -{ - va_list ap; - if (!verbose) return; - printf("%08x: ", pc); - va_start(ap, fmt); - vfprintf(stdout, fmt, ap); - va_end(ap); - printf("\n"); -} - -void -errorq(int use_errno, char *fmt, ...) -{ - va_list ap; - fprintf(stderr, "crlf: Error at pc=%d: ", pc); - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - fprintf(stderr, "\n"); - if (use_errno) - perror("The error was"); - errors++; -} - -void -error(int use_errno, char *fmt, ...) -{ - va_list ap; - fprintf(stderr, "crlf: Error at pc=%d: ", pc); - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - fprintf(stderr, "\n"); - if (use_errno) - perror("The error was"); - fprintf(stderr, "FAIL\n"); - exit(1); -} - -void -display_buf(char *which, Buffer *buf, int ofs) -{ - int i; - fprintf(stderr, "%s %04x:", which, ofs); - for (i=0; i<8; i++) - if (i+ofs < buf->count) - { - unsigned char b = buf->bytes[i+ofs]; - fprintf(stderr, " %02x", b); - if (isgraph(b)) - fprintf(stderr, " %c ", b); - else - fprintf(stderr, " ", b); - } - fprintf(stderr, "\n"); -} - -void -compare_bufs(char *name, Buffer *actual, Buffer *expected) -{ - int i, got_one=0; - for (i=0; icount && icount; i++) - if (actual->bytes[i] != expected->bytes[i]) - { - errorq(0, "%s: byte mismatch at offset 0x%x", name, i); - got_one = 1; - break; - } - if (!got_one) - { - if (actual->count < expected->count) - errorq(0, "%s: too few bytes (0x%x vs 0x%x)", name, - actual->count, expected->count); - else if (actual->count > expected->count) - errorq(0, "%s: too many bytes (0x%x vs 0x%x)", name, - actual->count, expected->count); - else - return; - } - - i -= 4; - if (i<0) i = 0; - display_buf("Actual ", actual, i); - display_buf("Expected", expected, i); -} - -int -main(int argc, char **argv) -{ - char *readmode = "rb"; - char *writemode = "wb"; - FILE *file = 0; - int i, fd; - struct stat st; - char *str; - - while (argc > 1 && argv[1][0] == '-') - { - if (strcmp(argv[1], "-v") == 0) - verbose++; - argc--; - argv++; - } - - size = 0; - - for (pc=0; pc -#include -#include -#include -#include - -main() -{ - int fd, r, w, l; - char buf[1024]; - char *v; - - fd = open("/dev/zero", O_RDONLY); - if (fd < 0) - { - fprintf(stderr, "Unable to open /dev/zero for reading\n"); - perror("The error was"); - exit(1); - } - - l = read(fd, buf, 1024); - if (l != 1024) - { - fprintf(stderr, "Asked to read 1024 bytes, got %d\n", l); - exit(1); - } - - for (r=0; r<1024; r++) - if (buf[r] != 0) - { - fprintf(stderr, "/dev/zero returned a byte of %02x at offset %d\n", - buf[r], r); - exit(1); - } - - l = lseek(fd, 4096, 0); - if (l != 0) - { - fprintf(stderr, "l == %d\n", l); - exit(1); - } - - l = close(fd); - if (l != 0) - { - fprintf(stderr, "close: returned %d\n", l); - perror("The error was"); - exit(1); - } - - fd = open("/dev/zero", O_WRONLY); - if (fd < 0) - { - fprintf(stderr, "Unable to open /dev/zero for writing\n"); - perror("The error was"); - exit(1); - } - - l = write(fd, buf, 1024); - if (l != 1024) - { - fprintf(stderr, "Asked to write 1024 bytes, got %d\n", l); - exit(1); - } - - l = close(fd); - if (l != 0) - { - fprintf(stderr, "close: returned %d\n", l); - perror("The error was"); - exit(1); - } - - fd = open("/dev/zero", O_RDWR); - v = (char *)mmap(0, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0); - if (v == (char *)-1) - { - fprintf(stderr, "mmap r/w /dev/zero failed\n"); - perror("The error was"); - exit(1); - } - - for (r=0; r<65536; r++) - if (v[r] != 0) - { - fprintf(stderr, "mmap'd r/w /dev/zero has byte %d at offset %d\n", - v[r], r); - exit(1); - } - munmap(v, 65536); - close(fd); - - fd = open("/dev/zero", O_RDONLY); - v = (char *)mmap(0, 65536, PROT_READ, MAP_SHARED, fd, 0); - if (v == (char *)-1) - { - fprintf(stderr, "mmap /dev/zero r/o failed\n"); - perror("The error was"); - exit(1); - } - - for (r=0; r<65536; r++) - if (v[r] != 0) - { - fprintf(stderr, "mmap'd r/o /dev/zero has byte %d at offset %d\n", - v[r], r); - exit(1); - } - munmap(v, 65536); - close(fd); - - exit(0); -} diff --git a/winsup/testsuite/winsup.api/iospeed.c b/winsup/testsuite/winsup.api/iospeed.c deleted file mode 100644 index d286f90bd..000000000 --- a/winsup/testsuite/winsup.api/iospeed.c +++ /dev/null @@ -1,115 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -int verbose = 0; - -void -v(char *fmt, ...) -{ - va_list ap; - if (!verbose) return; - va_start(ap, fmt); - vfprintf(stdout, fmt, ap); - va_end(ap); -} - -#define TSIZE (1024 * 1024 * 16) - -unsigned long start_tic; - -void -start(FILE *f) -{ - fseek(f, 0, SEEK_SET); - start_tic = GetTickCount(); -} - -void -end() -{ - unsigned long end_tic = GetTickCount(); - printf("%6d", end_tic - start_tic); -} - -void -test(int linesz, int cr) -{ - FILE *f = fopen("iospeed.dat", "wb"); - char buf[65536]; - int i, fd; - - memset(buf, 'x', linesz); - buf[linesz-1] = '\n'; - if (cr) - buf[linesz-2] = '\r'; - for (i=0; i 0); - end(); - - start(f); - while (fgets(buf, 64436, f)); - end(); - - f = fopen("iospeed.dat", "rb"); - fd = fileno(f); - - for (i=0; i 0); - end(); - - start(f); - while (fgets(buf, 64436, f)); - end(); - - printf("\n"); -} - -int -main(int argc, char **argv) -{ - if (argc > 1 && strcmp(argv[1],"-v") == 0) - verbose = 1; - - setbuf(stdout, 0); - - printf(" ----- text ----- ---- binary ----\n"); - printf("linesz cr getc fread fgets getc fread fgets\n"); - - test(4, 0); - test(64, 0); - test(4096, 0); - test(4, 1); - test(64, 1); - test(4096, 1); - - remove ("iospeed.dat"); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/known_bugs.tcl b/winsup/testsuite/winsup.api/known_bugs.tcl deleted file mode 100644 index 1856608d9..000000000 --- a/winsup/testsuite/winsup.api/known_bugs.tcl +++ /dev/null @@ -1,8 +0,0 @@ -set xfail_list [list dup03 dup05 \ - fcntl05 fcntl07B fcntl09 fcntl10 \ - fsync01 gethostid01 lseek04 lseek10 mknod01 select03 \ - setgroups01 setregid01 setreuid01 setuid02 \ - ulimit01 unlink06 unlink08 \ - sample-fail sample-miscompile] - - diff --git a/winsup/testsuite/winsup.api/ltp/access01.c b/winsup/testsuite/winsup.api/ltp/access01.c deleted file mode 100644 index e003805a0..000000000 --- a/winsup/testsuite/winsup.api/ltp/access01.c +++ /dev/null @@ -1,302 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : access01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for access(2) using F_OK, - * R_OK, W_OK and X_OK arguments. - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 6 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) access(2) returns 0 for F_OK...(See Description) - * 2.) access(2) returns 0 for R_OK...(See Description) - * 3.) access(2) returns 0 for W_OK...(See Description) - * 4.) access(2) returns 0 for X_OK...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * The libcuts.a and libsys.a libraries must be included in - * the compilation of this test. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the access(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * access(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * Create a temp directory and cd to it. - * Creat a temp file wil read, write and execute permissions. - * - * Test: - * Loop if the proper options are given. - * Execute system call with F_OK on tmp file - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * Execute system call with X_OK on tmp file... - * Execute system call with W_OK on tmp file... - * Execute system call with R_OK on tmp file... - * - * Cleanup: - * Print errno log - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" -void setup(); -void cleanup(); - -char *TCID="access01"; /* Test program identifier. */ -int TST_TOTAL=4; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - - -char Fname[255]; - - -/*********************************************************************** - * Main - ***********************************************************************/ -int main(int ac, char **av) -{ - struct test_case_t { - char *file; - unsigned mode; - const char *string; - int experrno; - } Test_cases[] = { - { Fname, F_OK, "F_OK", 0 }, - { Fname, X_OK, "X_OK", 0 }, - { Fname, W_OK, "W_OK", 0 }, - { Fname, R_OK, "R_OK", 0 }, - }; - - int Ntc = sizeof(Test_cases) / sizeof(struct test_case_t); - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int tc; - - TST_TOTAL=Ntc; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for (tc=0; tc -#include -#include - - -#include -#include "test.h" -#include "usctest.h" - - -void setup(); -void cleanup(); - - -char *get_high_address(); - -char *TCID="access03"; /* Test program identifier. */ -int TST_TOTAL=8; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={EFAULT, 0}; /* List must end with 0 */ - -int main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos. */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * R_OK on low pointer (-1) for path - */ - - - /* Call access(2) */ - TEST(access( (char *)-1,R_OK)); - - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS, - "access((char *)-1,R_OK) failed as expected with errno %d (EFAULT) : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, - "access((char *)-1,R_OK) failed with errno %d : %s but expected %d (EFAULT)", - TEST_ERRNO, strerror(TEST_ERRNO),EFAULT); - } - } - else { - tst_resm(TFAIL, - "access((char *)-1,R_OK) succeeded unexpectedly."); - - } - } - - - /* - * TEST CASE: - * W_OK on low pointer (-1) for path - */ - - - /* Call access(2) */ - TEST(access( (char *)-1,W_OK)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS, - "access((char *)-1,W_OK) failed as expected with errno %d (EFAULT) : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, - "access((char *)-1,W_OK) failed with errno %d : %s but expected %d (EFAULT)", - TEST_ERRNO, strerror(TEST_ERRNO),EFAULT); - } - } - else { - tst_resm(TFAIL, - "access((char *)-1,W_OK) succeeded unexpectedly."); - - } - } - - - /* - * TEST CASE: - * X_OK on low pointer (-1) for path - */ - - - /* Call access(2) */ - TEST(access( (char *)-1,X_OK)); - - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS, - "access((char*)-1,X_OK) failed as expected with errno %d (EFAULT) : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, - "access((char*)-1,X_OK) failed with errno %d : %s but expected %d (EFAULT)", - TEST_ERRNO, strerror(TEST_ERRNO),EFAULT); - } - } - else { - tst_resm(TFAIL, - "access((char*)-1,X_OK) succeeded unexpectedly."); - - } - } - - - /* - * TEST CASE: - * F_OK on low pointer (-1) for path - */ - - - /* Call access(2) */ - TEST(access( (char *)-1,F_OK)); - - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS, - "access((char*)-1,F_OK) failed as expected with errno %d (EFAULT) : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, - "access((char*)-1,F_OK) failed with errno %d : %s but expected %d (EFAULT)", - TEST_ERRNO, strerror(TEST_ERRNO),EFAULT); - } - } - else { - tst_resm(TFAIL, - "access((char*)-1,F_OK) succeeded unexpectedly."); - - } - } - - - /* - * TEST CASE: - * R_OK on high pointer (sbrk(0)+1) for path - */ - - - /* Call access(2) */ - TEST(access(get_high_address(),R_OK)); - - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS, - "access((char*)sbrk(0)+1,R_OK) failed as expected with errno %d (EFAULT) : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, - "access((char*)sbrk(0)+1,R_OK) failed with errno %d : %s but expected %d (EFAULT)", - TEST_ERRNO, strerror(TEST_ERRNO),EFAULT); - } - } - else { - tst_resm(TFAIL, - "access((char*)sbrk(0)+1,R_OK) succeeded unexpectedly."); - - } - } - - - /* - * TEST CASE: - * W_OK on high pointer (sbrk(0)+1) for path - */ - - - /* Call access(2) */ - TEST(access(get_high_address(),W_OK)); - - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS, - "access((char*)sbrk(0)+1,W_OK) failed as expected with errno %d (EFAULT) : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, - "access((char*)sbrk(0)+1,W_OK) failed with errno %d : %s but expected %d (EFAULT)", - TEST_ERRNO, strerror(TEST_ERRNO),EFAULT); - } - } - else { - tst_resm(TFAIL, - "access((char*)sbrk(0)+1,W_OK) succeeded unexpectedly."); - - } - } - - - /* - * TEST CASE: - * X_OK on high pointer (sbrk(0)+1) for path - */ - - - /* Call access(2) */ - TEST(access(get_high_address(),X_OK)); - - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS, - "access(high_address,X_OK) failed as expected with errno %d (EFAULT) : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, - "access(high_address,X_OK) failed with errno %d : %s but expected %d (EFAULT)", - TEST_ERRNO, strerror(TEST_ERRNO),EFAULT); - } - } - else { - tst_resm(TFAIL, - "access(high_address,X_OK) succeeded unexpectedly."); - - } - } - - - /* - * TEST CASE: - * F_OK on high pointer (sbrk(0)+1) for path - */ - - - /* Call access(2) */ - TEST(access(get_high_address(),F_OK)); - - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS, - "access((char*)sbrk(0)+1,F_OK) failed as expected with errno %d (EFAULT) : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, - "access((char*)sbrk(0)+1,F_OK) failed with errno %d : %s but expected %d (EFAULT)", - TEST_ERRNO, strerror(TEST_ERRNO),EFAULT); - } - } - else { - tst_resm(TFAIL, - "access((char*)sbrk(0)+1,F_OK) succeeded unexpectedly."); - - } - } - - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make and change to a temporary directory */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove the temporary directory and exit with - return code appropriate for results */ - tst_rmdir(); - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/access04.c b/winsup/testsuite/winsup.api/ltp/access04.c deleted file mode 100644 index 20fa81187..000000000 --- a/winsup/testsuite/winsup.api/ltp/access04.c +++ /dev/null @@ -1,243 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: access01 - * - * Test Description: - * Verify that access() succeeds to check the existance of a file if - * search access is permitted on the pathname of the specified file. - * - * Expected Result: - * access() should return 0 value and the specified file should exist - * on the file system. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * access01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TESTDIR "testdir" -#define TESTFILE "testdir/testfile" -#define DIR_MODE S_IRWXU | S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH - -char *TCID="access01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* struct buffer for stat(2) */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *)NULL, NULL); - if (msg != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call access(2) to check the existence of a - * file under specified path. - */ - TEST(access(TESTFILE, F_OK)); - - /* check return code of access(2) */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, - "access(%s, F_OK) Failed, errno=%d : %s", - TESTFILE, TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Use stat(2) to cross-check the - * existance of testfile under - * specified path. - */ - if (stat(TESTFILE, &stat_buf) < 0) { - tst_resm(TFAIL, "stat() on %s Failed, errno=%d", - TESTFILE, TEST_ERRNO); - } else { - tst_resm(TPASS, "Functionality of access(%s, " - "F_OK) successful", TESTFILE); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - * - * Create a temporary directory and change directory to it. - * Create a test directory and a file under test directory. - * Modify the mode permissions of testfile. - */ -void -setup() -{ - int fd; /* File handle for testfile */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Check that the test process id is not root/super-user */ - if (geteuid() == 0) { - tst_brkm(TBROK, NULL, "Must be non-root/super for this test!"); - tst_exit(); - } - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a test directory under temporary directory */ - if (mkdir(TESTDIR, DIR_MODE) < 0) { - tst_brkm(TBROK, cleanup, - "mkdir(%s, %#o) Failed, errno=%d : %s", - TESTDIR, DIR_MODE, errno, strerror(errno)); - } - - /* Make sure test directory has search permissions set */ - if (chmod(TESTDIR, DIR_MODE) < 0) { - tst_brkm(TBROK, cleanup, - "chmod(%s, %#o) Failed, errno=%d : %s", - TESTDIR, DIR_MODE, errno, strerror(errno)); - } - - /* Creat a test file under above directory created */ - if ((fd = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d :%s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - } - - /* Close the testfile created above */ - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } - - /* Change the mode permissions on the testfile */ - if (chmod(TESTFILE, 0) < 0) { - tst_brkm(TBROK, cleanup, - "chmod(%s, 0) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } -} - - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* - * Delete the test directory/file and temporary directory - * created in the setup. - */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/access05.c b/winsup/testsuite/winsup.api/ltp/access05.c deleted file mode 100644 index 935b19bd3..000000000 --- a/winsup/testsuite/winsup.api/ltp/access05.c +++ /dev/null @@ -1,425 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: access03 - * - * Test Description: - * Verify that, - * 1. access() fails with -1 return value and sets errno to EACCES - * if the permission bits of the file mode do not permit the - * requested (Read/Write/Execute) access. - * 2. access() fails with -1 return value and sets errno to EINVAL - * if the specified access mode argument is invalid. - * 3. access() fails with -1 return value and sets errno to EFAULT - * if the pathname points outside allocate address space for the - * process. - * 4. access() fails with -1 return value and sets errno to ENOENT - * if the specified file doesn't exist (or pathname is NULL). - * 5. access() fails with -1 return value and sets errno to ENAMETOOLONG - * if the pathname size is > PATH_MAX characters. - * - * Expected Result: - * access() should fail with return value -1 and set expected errno. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * if errno set == expected errno - * Issue sys call fails with expected return value and errno. - * Otherwise, - * Issue sys call fails with unexpected errno. - * Otherwise, - * Issue sys call returns unexpected value. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory(s)/file(s) created. - * - * Usage: - * access03 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * This test should be run by 'non-super-user' only. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define INV_OK -1 -#define TEST_FILE1 "test_file1" -#define TEST_FILE2 "test_file2" -#define TEST_FILE3 "test_file3" -#define TEST_FILE4 "test_file4" - -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH - -int no_setup(); -int setup1(); /* setup() to test access() for EACCES */ -int setup2(); /* setup() to test access() for EACCES */ -int setup3(); /* setup() to test access() for EACCES */ -int setup4(); /* setup() to test access() for EINVAL */ -int longpath_setup(); /* setup function to test access() for ENAMETOOLONG */ - -char Longpathname[PATH_MAX+2]; -char High_address_node[64]; - -struct test_case_t { /* test case structure */ - char *pathname; - int a_mode; - char *desc; - int exp_errno; - int (*setupfunc)(); -} Test_cases[] = { - { TEST_FILE1, R_OK, "Read Access denied on file", EACCES, setup1 }, - { TEST_FILE2, W_OK, "Write Access denied on file", EACCES, setup2 }, - { TEST_FILE3, X_OK, "Execute Access denied on file", EACCES, setup3 }, - { TEST_FILE4, INV_OK, "Access mode invalid", EINVAL, setup4 }, - { High_address_node, R_OK, "Address beyond address space", EFAULT, no_setup }, - { (char *)-1, R_OK, "Negative address", EFAULT, no_setup }, - { "", W_OK, "Pathname is empty", ENOENT, no_setup }, - { Longpathname, R_OK, "Pathname too long", ENAMETOOLONG, longpath_setup }, - { NULL, 0, NULL, 0, no_setup } -}; - -char *TCID="access03"; /* Test program identifier. */ -int TST_TOTAL=8; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={EACCES, EFAULT, EINVAL, ENOENT, ENAMETOOLONG, 0}; - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char *file_name; /* name of the testfile */ - char *test_desc; /* test specific message */ - int access_mode; /* specified access mode for testfile */ - int ind; /* counter for testcase looping */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - for (ind = 0; Test_cases[ind].desc != NULL; ind++) { - file_name = Test_cases[ind].pathname; - access_mode = Test_cases[ind].a_mode; - test_desc = Test_cases[ind].desc; - - if (file_name == High_address_node) { - file_name = (char *)get_high_address(); - } - - /* - * Call access(2) to test different test conditions. - * verify that it fails with -1 return value and - * sets appropriate errno. - */ - TEST(access(file_name, access_mode)); - - if (TEST_RETURN != -1) { - tst_resm(TFAIL, "access() returned %d, " - "expected -1, errno:%d", TEST_RETURN, - Test_cases[ind].exp_errno); - continue; - } - - TEST_ERROR_LOG(TEST_ERRNO); - - /* - * Call a function to verify whether - * the specified file has specified - * access mode. - */ - if (TEST_ERRNO == Test_cases[ind].exp_errno) { - tst_resm(TPASS, "access() fails, %s, errno:%d", - test_desc, TEST_ERRNO); - } else { - tst_resm(TFAIL, "access() fails, %s, errno:%d, " - "expected errno:%d", test_desc, - TEST_ERRNO, Test_cases[ind].exp_errno); - } - } /* Test Case Looping */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - * - * Create a temporary directory and change directory to it. - * Call individual test specific setup functions. - */ -void -setup() -{ - int ind; /* counter for testsetup functions */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Check that the test process id is not root/super-user */ - if (geteuid() == 0) { - tst_brkm(TBROK, NULL, "Must be non-root/super for this test!"); - tst_exit(); - } - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* call individual setup functions */ - for (ind = 0; Test_cases[ind].desc != NULL; ind++) { - Test_cases[ind].setupfunc(); - } -} - -/* - * no_setup() - some test conditions do not need any setup. - * Hence, this function simply returns 0. - */ -int -no_setup() -{ - return 0; -} - -/* - * setup1() - Setup function to test access() for return value -1 - * and errno EACCES when read access denied for specified - * testfile. - * - * Creat/open a testfile and close it. - * Deny read access permissions on testfile. - * This function returns 0. - */ -int -setup1() -{ - int fd1; /* file handle for testfile */ - - /* Creat a test file under above directory created */ - if ((fd1 = open(TEST_FILE1, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d :%s", - TEST_FILE1, FILE_MODE, errno, strerror(errno)); - } - - /* Close the testfile created above */ - if (close(fd1) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", - TEST_FILE1, errno, strerror(errno)); - } - - /* Change mode permissions on testfile */ - if (chmod(TEST_FILE1, 0333) < 0) { - tst_brkm(TBROK, cleanup, "chmod() failed on %s, errno=%d", - TEST_FILE1, errno); - } - - return 0; -} - -/* - * setup2() - Setup function to test access() for return value -1 and - * errno EACCES when write access denied on testfile. - * - * Creat/open a testfile and close it. - * Deny write access permissions on testfile. - * This function returns 0. - */ -int -setup2() -{ - int fd2; /* file handle for testfile */ - - /* Creat a test file under above directory created */ - if ((fd2 = open(TEST_FILE2, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d :%s", - TEST_FILE2, FILE_MODE, errno, strerror(errno)); - } - - /* Close the testfile created above */ - if (close(fd2) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", - TEST_FILE2, errno, strerror(errno)); - } - - /* Change mode permissions on testfile */ - if (chmod(TEST_FILE2, 0555) < 0) { - tst_brkm(TBROK, cleanup, "chmod() failed on %s, errno=%d", - TEST_FILE2, errno); - } - - return 0; -} - -/* - * setup3() - Setup function to test access() for return value -1 and - * errno EACCES when execute access denied on testfile. - * - * Creat/open a testfile and close it. - * Deny search access permissions on testfile. - * This function returns 0. - */ -int -setup3() -{ - int fd3; /* file handle for testfile */ - - /* Creat a test file under above directory created */ - if ((fd3 = open(TEST_FILE3, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d :%s", - TEST_FILE3, FILE_MODE, errno, strerror(errno)); - } - - /* Close the testfile created above */ - if (close(fd3) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", - TEST_FILE3, errno, strerror(errno)); - } - - /* Change mode permissions on testfile */ - if (chmod(TEST_FILE3, 0666) < 0) { - tst_brkm(TBROK, cleanup, "chmod() failed on %s, errno=%d", - TEST_FILE3, errno); - } - - return 0; -} - -/* - * setup4() - Setup function to test access() for return value -1 - * and errno EINVAL when specified access mode argument is - * invalid. - * - * Creat/open a testfile and close it. - * This function returns 0. - */ -int -setup4() -{ - int fd4; /* file handle for testfile */ - - /* Creat a test file under above directory created */ - if ((fd4 = open(TEST_FILE4, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d :%s", - TEST_FILE4, FILE_MODE, errno, strerror(errno)); - } - - /* Close the testfile created above */ - if (close(fd4) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", - TEST_FILE4, errno, strerror(errno)); - } - - return 0; -} - -/* - * longpath_setup() - setup to create a node with a name length exceeding - * the MAX. length of PATH_MAX. - */ -int -longpath_setup() -{ - int ind; - - for (ind = 0; ind <= (PATH_MAX + 1); ind++) { - Longpathname[ind] = 'a'; - } - - return 0; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* - * Delete the test directory/file and temporary directory - * created in the setup. - */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/alarm01.c b/winsup/testsuite/winsup.api/ltp/alarm01.c deleted file mode 100644 index ac754e326..000000000 --- a/winsup/testsuite/winsup.api/ltp/alarm01.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : alarm01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for alarm(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) alarm(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * The libcuts.a and libsys.a libraries must be included in - * the compilation of this test. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the alarm(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * alarm(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="alarm01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call alarm(2) - */ - TEST(alarm(1)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - tst_resm(TFAIL, "alarm(1) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "alarm(1) returned %d", TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - void trapper(); - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - signal(SIGALRM, trapper); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - -void -trapper(sig) -int sig; -{ - signal(SIGALRM, trapper); -} - diff --git a/winsup/testsuite/winsup.api/ltp/alarm02.c b/winsup/testsuite/winsup.api/ltp/alarm02.c deleted file mode 100644 index 7c608da66..000000000 --- a/winsup/testsuite/winsup.api/ltp/alarm02.c +++ /dev/null @@ -1,240 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : alarm02 - * - * TEST TITLE : Boundary Value Test for alarm(2) - * - * PARENT DOCUMENT : almtds02 - * - * TEST CASE TOTAL : 3 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * BINARY LOCATION : CUTS_BIN/rf_tests/sys - * - * SOURCE LOCATION : CUTS_SRC/src/tests/sys - * - * AUTHOR : Billy Jean Horne - * - * CO-PILOT : Kathy Olmsted - * - * DATE STARTED : 06/01/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * Test Case One - A call to alarm() shall not return an error if - * seconds is a -1. - * Test FAILS if a non-zero value is returned. - * Test Case Two - A call to alarm() shall not return an error if - * seconds is the maximum unsigned integer (2**63). - * Test FAILS if a non-zero value is returned. - * Test Case Three - A call to alarm() shall not return an error if - * seconds is the maximum unsigned integer plus 1 ((2**63)+1). - * Test FAILS if a non-zero value is returned. - * - * ENVIRONMENTAL NEEDS - * The libcuts.a and libsys.a libraries must be included in - * the compilation of this test. - * - * DETAILED DESCRIPTION - * - * Setup: - * Define a cleanup function. - * - * Test: - * Loop for each test case. - * Execute alarm (0) system call to clear previous alarm. - * Check return code, if system call failed (return=-1) - * Issue a BROK message and exit the test. - * Call alarm() with boundary values for seconds. - * Verify that returned value is as expected. - * Report results. - * - * Cleanup: - * - */ -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" /* required for usctest */ - -void setup(); -void cleanup(); -void alarm_received(); - - - -char *TCID="alarm02"; /* Test program identifier. */ -int TST_TOTAL=3; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_ * routines */ - -int received_alarm = 0; /* Indicates a SIGALRM was received */ - -/************************************************************ - * Main program - ***********************************************************/ - -int -main(int ac, char **av) -{ - - /* Parameters for usc code */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parameters for alarm test */ - char *buf[] = { "-1", "ULONG_MAX", "ULONG_MAX+1"}; - unsigned long int sec[] = {-1, ULONG_MAX, ULONG_MAX+1}; - int exp[] = {0,0,0}; - int i; - - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - - setup(); - - /*************************************************************** - * check looping state - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - - Tst_count=0; - - for (i=0;i -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - -char *TCID="alarm03"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call alarm(2) - */ - TEST(alarm(100)); - - switch ( fork()) { - case -1: - tst_brkm(TBROK, cleanup, "fork failed, errno:%d %s", - errno, strerror(errno)); - break; - - case 0: - TEST( alarm(0) ); - - if ( TEST_RETURN != 0 ) - tst_resm(TFAIL, - "alarm(100), fork, alarm(0) child's alarm returned %d", - TEST_RETURN); - else if ( STD_FUNCTIONAL_TEST ) - tst_resm(TPASS, - "alarm(100), fork, alarm(0) child's alarm returned %d", - TEST_RETURN); - - exit(0); - break; - - default: - Tst_count++; - TEST( alarm(0) ); - if ( TEST_RETURN <= 0 || TEST_RETURN > 100 ) - tst_resm(TFAIL, - "alarm(100), fork, alarm(0) parent's alarm returned %d", - TEST_RETURN); - - else if ( STD_FUNCTIONAL_TEST ) - tst_resm(TPASS, - "alarm(100), fork, alarm(0) parent's alarm returned %d", - TEST_RETURN); - - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - void trapper(); - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - signal(SIGALRM, trapper); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - -void -trapper(sig) -int sig; -{ - signal(SIGALRM, trapper); -} - diff --git a/winsup/testsuite/winsup.api/ltp/alarm07.c b/winsup/testsuite/winsup.api/ltp/alarm07.c deleted file mode 100644 index 7661ba978..000000000 --- a/winsup/testsuite/winsup.api/ltp/alarm07.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: alarm03 - * - * Test Description: - * Check the functionality of the alarm() when the time input - * parameter is non-zero and the process does a fork. - * - * Expected Result: - * The alarm request should be cleared in the child process. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * - * Usage: - * alarm03 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -char *TCID="alarm03"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int almreceived = 0; /* flag to indicate SIGALRM received or not */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ -void sigproc(int sig); /* signal catching function */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int time_sec = 3; /* time for which alarm is set */ - int sleep_time = 5; /* waiting time for the SIGALRM signal */ - pid_t cpid; /* child process id */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *)NULL, NULL); - if (msg != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call First alarm() with non-zero time parameter - * 'time_sec' to send SIGALRM to the process. - */ - TEST(alarm(time_sec)); - - /* Now, fork a child process */ - cpid = fork(); - if (cpid < 0) { - tst_resm(TFAIL, "fork() fails to create child, " - "errno:%d", errno); - } - - /* Wait for signal SIGALRM to be generated */ - sleep(sleep_time); - - if (STD_FUNCTIONAL_TEST) { - if (cpid == 0) { /* Child process */ - /* - * For child process if almreceived is 0 - * means alarm request is cleared. - */ - if (almreceived == 0) { - tst_resm(TPASS, "Functionality of " - "alarm(%u) successful", - time_sec); - } else { - tst_resm(TFAIL, "alarm request not " - "cleared in child, " - "almreceived:%d", almreceived); - } - } else { /* Parent process */ - /* Wait for child to complete execution */ - wait(0); - } - } else { - tst_resm(TPASS, "call returned %d", TEST_RETURN); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Setup signal handler to catch SIGALRM signal. - */ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Set the signal catching function */ - if (signal(SIGALRM, sigproc) == SIG_ERR) { - tst_brkm(TFAIL, cleanup, - "signal() fails to catch SIGALARM, errno=%d", - errno); - } -} - - -/* - * sigproc(int) - This function defines the action that has to be taken - * when the SIGALRM signal is caught. - * It also sets the variable which is used to check whether the - * alarm system call was successful. - */ -void -sigproc(int sig) -{ - almreceived = almreceived + 1; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/asyncio02.c b/winsup/testsuite/winsup.api/ltp/asyncio02.c deleted file mode 100644 index b7ccb62f5..000000000 --- a/winsup/testsuite/winsup.api/ltp/asyncio02.c +++ /dev/null @@ -1,365 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/************************************************************ - * OS Test - Silicon Graphics, Inc. - * Mendota Heights, Minnesota - * - * TEST IDENTIFIER: aiotcs02: write/close flushes data to the file - * - * PARENT DOCUMENT: aiotds01: kernel i/o - * - * AUTHOR: Barrie Kletscher - * - * CO-PILOT: Dave Baumgartner - * - * TEST ITEMS: - * for each open flags set used: - * 1. Multiple writes to a file work as specified for - * more than BUFSIZ bytes. - * 2. Multiple writes to a file work as specified for - * BUFSIZ bytes. - * 3. Multiple writes to a file work as specified for - * lower than BUFSIZ bytes. - * - * INPUT SPECIFICATIONS: - * Standard parse_opts supported options. - * - * OUTPUT SPECIFICATIONS - * Standard tst_res output format - * - * ENVIRONMENTAL NEEDS: - * This program uses the environment variable TMPDIR for the location - * of the temporary directory. - * - * - * SPECIAL PROCEDURAL REQUIREMENTS: - * The program must be linked with tst_*.o and parse_opts.o. - * - * INTERCASE DEPENDENCIES: - * NONE. - * - * DETAILED DESCRIPTION: - * Attempt to get some memory to work with. - * Call testrun writing (BUFSIZ + 1) bytes - * Call testrun writing BUFSIZ bytes - * Repeated call to testrun() with decreasing write sizes - * less than BUFSIZ - * End - * - * Start testrun() - * Attempt to open a temporary file. - * Write the memory to the file. - * Attempt to close the file which also flushes the buffers. - * Now check to see if the number of bytes written is the - * same as the number of bytes in the file. - * Cleanup - * - * BUGS: - * NONE. - * -************************************************************/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -#define FLAG O_RDWR | O_CREAT | O_TRUNC /* Flags used when opening temp tile */ -#define MODE 0777 /* Mode to open file with */ -#define WRITES 10 /* Number of times buffer is written */ -#define DECR 1000 /* Number of bytes decremented between */ - /* Calls to testrun() */ -#define OK -1 /* Return value from testrun() */ - -#define FNAME1 "aio02.1" -#define FNAME2 "aio02.2" -#define FNAME3 "aio02.3" - -#define ERR_MSG1 "Bytes in file not equal to bytes written." -#define ERR_MSG2 "Bytes in file (%d) not equal to bytes written (%d)." - -char *dp; /* pointer to area of memory */ - -void setup(); -void cleanup(); -int testrun(int flag, int bytes, int ti); - -char *TCID="asyncio02"; /* Test program identifier. */ -int TST_TOTAL=6; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -extern int Tst_nobuf; /* variable used to turn off tst_res buffering */ - -extern int errno; - -int exp_enos[]={0}; /* Array of expected errnos */ -char mesg[150]; -char *filename; /* name of the temporary file */ - -char *Progname; -int Open_flags; - -int Flags[] = { - O_RDWR | O_CREAT | O_TRUNC, - O_RDWR | O_CREAT | O_TRUNC -}; - -int Num_flags; - -/*********************************************************************** - * MAIN - ***********************************************************************/ -int -main(int ac, char **av) -{ - - int i; /* counter */ - int ret_val; /* return value from testrun call */ - int eok; /* everything is ok flag */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int flag_cnt; - - Tst_nobuf=1; - Num_flags = sizeof(Flags)/sizeof(int); - TST_TOTAL= 3 * Num_flags; - - /*************************************************************** - * parse standard options, and exit if there is an error - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for (flag_cnt=0; flag_cnt= 0; i -= DECR) { - if((ret_val = testrun(Flags[flag_cnt],i,3)) != OK) { - char output[80]; /* local output char string */ - - (void)sprintf(output,ERR_MSG2,ret_val,i*WRITES); - tst_resm(TFAIL,output); - } - } - - if ( eok && STD_FUNCTIONAL_TEST ) - tst_resm(TPASS, - "Less than BUFSIZE bytes multiple synchronous writes to a file checks out ok"); - - } - } - cleanup(); - - return 0; -} /* end main() */ - -/*********************************************************** - * - * This function does the actual running of the tests. - * - ***********************************************************/ -int -testrun(int flag, int bytes, int ti) -{ - - void cleanup(); - - int fildes, /* temporary file's descriptor */ - i; /* counter */ - - int ret; - - struct stat buffer; /* buffer of memory required for stat command */ - - /* - * Attempt to open a temporary file. - */ - - if((fildes = open(filename,flag,MODE)) == -1) { - sprintf(mesg, "open failed, errno:%d", errno); - tst_brkm(TBROK, cleanup, mesg); - } - - /* - * Write the memory to the file. - */ - - for(i = 0; i < WRITES; i++) { - TEST( write(fildes,dp,(unsigned)bytes) ); - - if( TEST_RETURN == -1) { - sprintf(mesg, "write failed, errno:%d", errno); - tst_brkm(TBROK, cleanup, mesg); - } - } /* end for() */ - - /* - * Attempt to close the file which also flushes the buffers. - */ - - if(close(fildes) == -1) { - sprintf(mesg, "close failed, errno:%d", errno); - tst_brkm(TBROK, cleanup, mesg); - } - - ret=OK; - if ( STD_FUNCTIONAL_TEST ) { - - /* - * Now check to see if the number of bytes written is the - * same as the number of bytes in the file. - */ - - if(stat(filename,&buffer) == -1) { - sprintf(mesg, "stat failed, errno:%d", errno); - tst_brkm(TBROK, cleanup, mesg); - } - - - if(buffer.st_size != (off_t)(bytes * WRITES)) { - ret=(int)buffer.st_size; - } - } - - if ( unlink(filename) == -1 ) { - sprintf(mesg, "unlink failed, errno:%d", errno); - tst_brkm(TBROK, cleanup, mesg); - } - - return ret; - -} /* end testrun() */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* create a temporary directory and go to it */ - tst_tmpdir(); - - /* Indicate which errnos are expected */ - TEST_EXP_ENOS(exp_enos); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* - * Attempt to get some memory to work with. - */ - - if((dp = (char *)malloc((unsigned)BUFSIZ+1)) == NULL) { - sprintf(mesg, "malloc failed, errno:%d", errno); - tst_brkm(TBROK, cleanup, mesg); - } - - -} /* End setup() */ - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove temporary directory and all files in it. */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/chdir02.c b/winsup/testsuite/winsup.api/ltp/chdir02.c deleted file mode 100644 index b59fd9338..000000000 --- a/winsup/testsuite/winsup.api/ltp/chdir02.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : chdir02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for chdir(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) chdir(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the chdir(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * chdir(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="chdir02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char *dirs[2] = { "/", "/tmp" }; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call chdir(2) - */ - TEST(chdir(dirs[lc%2])); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "chdir(%s) Failed, errno=%d : %s", dirs[lc%2], - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "chdir(%s) returned %d", dirs[lc%2], TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/chdir04.c b/winsup/testsuite/winsup.api/ltp/chdir04.c deleted file mode 100644 index d220bb17f..000000000 --- a/winsup/testsuite/winsup.api/ltp/chdir04.c +++ /dev/null @@ -1,189 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * chdir02.c - * - * DESCRIPTION - * Testcase to test whether chdir(2) sets errno correctly. - * - * ALGORITHM - * 1. Test for ENAMETOOLONG: - * Create a bad directory name with length more than - * - * VFS_MAXNAMELEN (Linux kernel variable), and attempt to - * chdir(2) to it. - * - * 2. Test for ENOENT: - * Attempt to chdir(2) on a non-existent directory - * - * 3. Test for EFAULT: - * Pass an address which lies outside the address space of the - * process, and expect an EFAULT. - * - * USAGE: - * chdir02 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * NONE - */ - -#include -#include -#include -#include -#include - -char *TCID = "chdir02"; -int TST_TOTAL = 3; -extern int Tst_count; - -int exp_enos[] = {ENAMETOOLONG, ENOENT, EFAULT, 0}; - -char bad_dir[] = "abcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyz"; - -char noexist_dir[] = "/tmp/noexistdir"; - -struct test_case_t { - char *dname; - int error; -} TC[] = { - /* - * to test whether chdir() is setting ENAMETOOLONG if the - * directory is more than VFS_MAXNAMELEN - */ - {bad_dir, ENAMETOOLONG}, - - /* - * to test whether chdir() is setting ENOENT if the - * directory is not existing. - */ - {noexist_dir, ENOENT}, - - /* - * to test whether chdir() is setting EFAULT if the - * directory is an invalid address. - */ - {(void *)-1, EFAULT} -}; - -int flag; -#define FAILED 1 - -void setup(void); -void cleanup(void); - -main(int ac, char **av) -{ - int lc; /* loop counter */ - int i; - const char *msg; /* message returned from parse_opts */ - struct stat statbuf; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); - - /* set up the expected errnos */ - TEST_EXP_ENOS(exp_enos); - - /* check looping state if -i option is given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - /* loop through the test cases */ - for (i=0; i - * chmod01 [-c n] [-e] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - * - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define TESTFILE "testfile" - -char *TCID="chmod01"; /* Test program identifier. */ -int TST_TOTAL=8; /* Total number of test conditions */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int Modes[] = {0, 07, 070, 0700, 0777, 02777, 04777, 06777}; - -void setup(); /* setup function for the test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat(2) struct contents */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int ind; /* counter variable for chmod(2) tests */ - int mode; /* file mode permission */ - - TST_TOTAL = sizeof(Modes) / sizeof(int); - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - for (ind = 0; ind < TST_TOTAL; ind++) { - mode = Modes[ind]; - - /* - * Call chmod(2) with different mode permission - * bits to set it for "testfile". - */ - TEST(chmod(TESTFILE, mode)); - - /* check return code of chmod(2) */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, - "chmod(%s, %#o) Failed, errno=%d : %s", - TESTFILE, mode, TEST_ERRNO, - strerror(TEST_ERRNO)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Get the testfile information using - * stat(2). - */ - if (stat(TESTFILE, &stat_buf) < 0) { - tst_brkm(TFAIL, cleanup, "stat(2) of " - "%s failed, errno:%d", - TESTFILE, TEST_ERRNO); - } - stat_buf.st_mode &= ~S_IFREG; - - /* - * Check for expected mode permissions - * on testfile. - */ - if (stat_buf.st_mode == mode) { - tst_resm(TPASS, "Functionality of " - "chmod(%s, %#o) successful", - TESTFILE, mode); - } else { - tst_resm(TFAIL, "%s: Incorrect " - "modes 0%03o, Expected 0%03o", - TESTFILE, stat_buf.st_mode, - mode); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and close it - */ -void -setup() -{ - int fd; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a test file under temporary directory and close it */ - if ((fd = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %o) Failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - } - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } - -} /* End setup() */ - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/chmod02.c b/winsup/testsuite/winsup.api/ltp/chmod02.c deleted file mode 100644 index 41c3485e8..000000000 --- a/winsup/testsuite/winsup.api/ltp/chmod02.c +++ /dev/null @@ -1,260 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : chmod02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for chmod(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 8 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) chmod(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * The libcuts.a and libsys.a libraries must be included in - * the compilation of this test. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the chmod(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * chmod(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="chmod02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -char fname[255]; -char *buf = "file contents\n"; - -int Modes[] = {0, 07, 070, 0700, 0777, 02777, 04777, 06777}; - - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int ind; - int mode; - - TST_TOTAL = sizeof(Modes) / sizeof(int); - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for (ind=0; ind -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="chown01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd, uid, gid; -char *buf = "davef"; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call chown(2) - */ - TEST(chown(fname, uid,gid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "chown(%s, %d,%d) Failed, errno=%d : %s", fname, uid, gid, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "chown(%s, %d,%d) returned %d", fname, uid, gid, TEST_RETURN); - } - } /* end else */ - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* create a temp dir and cd to it. */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* set uid and gid */ - uid=geteuid(); - gid=getegid(); - - sprintf(fname,"t_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } else if (write(fd, &buf, strlen(buf)) == -1) { - tst_brkm(TBROK, cleanup, "write(%s, &buf, strlen(buf)) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } else if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove temp dir and files */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/close01.c b/winsup/testsuite/winsup.api/ltp/close01.c deleted file mode 100644 index 1637c90eb..000000000 --- a/winsup/testsuite/winsup.api/ltp/close01.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * close01.c - * - * DESCRIPTION - * Test that closing a regular file and a pipe works correctly - * - * ALGORITHM - * Creat a file, and dup() a fildes - * Open a pipe - * call close() using the TEST macro - * if the call fails - * issue a FAIL message and continue - * else if STD_FUNCTIONAL_TEST - * attempt to close the file/pipe again - * if there is an error - * issue a PASS message - * else - * issue a FAIL message - * else - * issue a PASS message - * - * - * USAGE: - * close01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include "test.h" -#include "usctest.h" - -void cleanup(void); -void setup(void); - -char *TCID = "close01()"; -int TST_TOTAL = 2; -extern int Tst_count; - -char fname[40] = ""; - -int fild = -1; -int newfd = -1; -int pipefildes[2]; - -struct test_case_t { - int *fd; - char *type; -} TC[] = { - /* file descriptor for a regular file */ - {&newfd, "file"}, - - /* file descriptor for a pipe */ - {&pipefildes[0], "pipe"} -}; - -main(int ac, char **av) -{ - - int i; - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); /* global setup */ - - /* The following loop checks looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - /* set up the file and pipe for the test */ - if ((fild = creat(fname, 0777)) == -1) { - perror (fname); - tst_brkm(TBROK, cleanup, "can't open file %s", fname); - } - - if ((newfd = dup(fild)) == -1) { - tst_brkm(TBROK, cleanup, "can't dup the file des"); - } - - if (pipe(pipefildes) == -1) { - tst_brkm(TBROK, cleanup, "can't open pipe"); - } - - /* loop through the test cases */ - - for (i = 0; i < TST_TOTAL; i++) { - - TEST(close(*TC[i].fd)); - - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "call failed unexpectedly"); - continue; - } - - if (STD_FUNCTIONAL_TEST) { - /* attempt to close the fd again */ - if (close(*TC[i].fd) == -1) { - tst_resm(TPASS, "%s appears closed", - TC[i].type); - } else { - tst_resm(TFAIL, "%s close succeeded on" - "second attempt", TC[i].type); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } - - } - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup(void) -{ - int mypid; - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - umask(0); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - mypid = getpid(); - sprintf(fname, "fname.%d", mypid); -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup(void) -{ - /* - * print timing status if that option was specified. - * print errno log if that option was specified - */ - TEST_CLEANUP; - - if (fild >= 0) - close (fild); - if (newfd >= 0) - close (newfd); - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/close02.c b/winsup/testsuite/winsup.api/ltp/close02.c deleted file mode 100644 index 44f98b250..000000000 --- a/winsup/testsuite/winsup.api/ltp/close02.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * close02.c - * - * DESCRIPTION - * Check that an invalid file descriptor returns EBADF - * - * ALGORITHM - * loop if that option is specified - * call close using the TEST macro and passing in an invalid fd - * if the call succeedes - * issue a FAIL message - * else - * log the errno - * if the errno == EBADF - * issue a PASS message - * else - * issue a FAIL message - * cleanup - * - * USAGE: - * close02 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include "test.h" -#include "usctest.h" - -void cleanup(void); -void setup(void); - -int exp_enos[] = {EBADF, 0}; - -char *TCID = "close02()"; -int TST_TOTAL = 1; -extern int Tst_count; - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); /* global setup */ - - /* set up expected errnos */ - TEST_EXP_ENOS(exp_enos); - - /* The following loop checks looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(close(-1)); - - if (TEST_RETURN != -1) { - tst_resm(TFAIL, "Closed a non existent fildes"); - } else { - TEST_ERROR_LOG(TEST_ERRNO); - - if (TEST_ERRNO != EBADF) { - tst_resm(TFAIL, "close() FAILED to set errno " - "to EBADF on an invalid fd, got %d", - errno); - } else { - tst_resm(TPASS, "call returned EBADF"); - } - } - } - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - umask(0); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup(void) -{ - /* - * print timing status if that option was specified. - * print errno log if that option was specified - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/close08.c b/winsup/testsuite/winsup.api/ltp/close08.c deleted file mode 100644 index 7c9567fdb..000000000 --- a/winsup/testsuite/winsup.api/ltp/close08.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : close08 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for close(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) close(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the close(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * close(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="close08"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - if ((fd=open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, TEST_ERRNO, strerror(TEST_ERRNO)); - } - /* - * Call close(2) - */ - TEST(close(fd)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "close(%s) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "close(%s) returned %d", fname, TEST_RETURN); - } - } - - if (unlink(fname) == -1) { - tst_brkm(TBROK, cleanup, "unlink(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/creat01.c b/winsup/testsuite/winsup.api/ltp/creat01.c deleted file mode 100644 index 7dd016f22..000000000 --- a/winsup/testsuite/winsup.api/ltp/creat01.c +++ /dev/null @@ -1,206 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * creat01.c - * - * DESCRIPTION - * Testcase to check the basic functionality of the creat(2) system call. - * - * ALGORITHM - * 1. creat() a file using 0444 mode, write to the fildes, write - * should return a positive count. - * - * 2. creat() should truncate a file to 0 bytes if it already - * exists, and should not fail. - * - * USAGE: - * creat01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(void); -void cleanup(void); -void functest1(void); -void functest2(void); - -char *TCID = "creat01"; -int TST_TOTAL = 2; -extern int Tst_count; - -char filename[40]; - -#define MODE1 0644 -#define MODE2 0444 - -struct test_case_t { - char *fname; - int mode; - void (*functest)(); -} TC[] = { - /* creat() the file and write to it */ - {filename, MODE1, functest1}, - - /* creat() the same file and check that it is now 0 length */ - {filename, MODE2, functest2} -}; - -main(int ac, char **av) -{ - int i; - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - setup(); /* set "tstdir", and "testfile" variables */ - - /* check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - /* loop through the test cases */ - - for (i=0; i= 0) { - close(TEST_RETURN); - } - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * functest1() - check the functionality of the first test by making sure - * that a write to the file succeeds - */ -void -functest1() -{ - if (write(TEST_RETURN, "A", 1) != 1) { - tst_resm(TFAIL, "write was unsuccessful"); - } else { - tst_resm(TPASS, "file was created and written to successfully"); - } -} - -/* - * functest2() - check the functionality of the second test by making sure - * that the file is now 0 length - */ -void -functest2() -{ - struct stat buf; - - if (stat(filename, &buf) < 0) { - tst_brkm(TBROK, cleanup, "failed to stat test file"); - /*NOTREACHED*/ - } - if (buf.st_size != 0) { - tst_resm(TFAIL, "creat() FAILED to truncate " - "file to zero bytes"); - } else { - tst_resm(TPASS, "creat() truncated existing file to 0 bytes"); - } -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - if (geteuid() == 0) { - tst_brkm(TBROK, tst_exit, "Must not run this as root"); - /*NOTREACHED*/ - } - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - umask(0); - - /* Pause if that option was specified */ - TEST_PAUSE; - - tst_tmpdir(); - - sprintf(filename, "creat01.%d", getpid()); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - unlink(filename); - - /* delete the test directory created in setup() */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/creat03.c b/winsup/testsuite/winsup.api/ltp/creat03.c deleted file mode 100644 index c5e5242bf..000000000 --- a/winsup/testsuite/winsup.api/ltp/creat03.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * creat03.c - * - * DESCRIPTION - * Testcase to check whether the sticky bit cleared. - * - * ALGORITHM - * Creat a new file, fstat.st_mode should have the 01000 bit off - * - * USAGE: - * creat03 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -char *TCID = "creat03"; /* Test program identifier */ -int TST_TOTAL = 1; /* Total number of test cases */ -extern int Tst_count; /* Test case counter */ - -char pfilname[40] = ""; -#define FMODE 0444 - -void setup(void); -void cleanup(void); - -main(int ac, char **av) -{ - struct stat statbuf; - unsigned short filmode; - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); - - /* check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(creat(pfilname, FMODE)); - - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "Cannot creat %s", pfilname); - continue; - /*NOTREACHED*/ - } - - if (STD_FUNCTIONAL_TEST) { - if (fstat(TEST_RETURN, &statbuf) == -1) { - tst_brkm(TBROK, cleanup, "fstat() failed"); - } - filmode = statbuf.st_mode; - tst_resm(TINFO, "Created file has mode = 0%o", filmode); - if ((filmode & S_ISVTX) != 0) { - tst_resm(TFAIL, "save text bit not cleared"); - } else { - tst_resm(TPASS, "save text bit cleared"); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - - if (TEST_RETURN >= 0) { - close(TEST_RETURN); - } - - /* clean up things in case we are looping */ - if (unlink(pfilname) == -1) { - tst_brkm(TBROK, cleanup, "couldn't remove file"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - sprintf(pfilname, "./creat4.%d", getpid()); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at completion or - * premature exit - */ -void -cleanup(void) -{ - TEST_CLEANUP; - - /* remove the tmp dir and all its files */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/creat09.c b/winsup/testsuite/winsup.api/ltp/creat09.c deleted file mode 100644 index 0caa87973..000000000 --- a/winsup/testsuite/winsup.api/ltp/creat09.c +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : creat09 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for creat(2) using 0700 argument. - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) creat(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the creat(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * creat(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="creat09"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - ******************************************* - * Call creat(2) with 0700 argument on fname - ******************************************* - */ - TEST(creat(fname, 0700)); - - /* check return code */ - - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "creat(%s, 0700) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "creat(%s, 0700) returned %d", fname, TEST_RETURN); - } - } - - /* close and remove file, possibly for next loop */ - if (close(TEST_RETURN) == -1) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } else if (unlink(fname) == -1) { - tst_resm(TWARN, "unlink(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/dup01.c b/winsup/testsuite/winsup.api/ltp/dup01.c deleted file mode 100644 index d065f9dc1..000000000 --- a/winsup/testsuite/winsup.api/ltp/dup01.c +++ /dev/null @@ -1,261 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : dup01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for dup(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) dup(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the dup(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * dup(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - -char *TCID="dup01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char Fname[255]; -int Fd; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call dup(2) - */ - TEST( dup(Fd) ); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "dup(%s) Failed, errno=%d : %s", Fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "dup(%s) returned %d", Fname, TEST_RETURN); - } - - /* close the new file so loops do not open too many files */ - if (close(TEST_RETURN) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* - * Initialize Fd in case we get a quick signal - */ - Fd=-1; - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(Fname, "dupfile"); - if ((Fd = open(Fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the open file we've been dup'ing */ - if (Fd != -1) { - if (close(Fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - Fd=-1; - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/dup02.c b/winsup/testsuite/winsup.api/ltp/dup02.c deleted file mode 100644 index 3aac3e9f8..000000000 --- a/winsup/testsuite/winsup.api/ltp/dup02.c +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : dup02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Negative test for dup(2) with bad fd. - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 06/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1-?.) dup(2) returns -1 with errno set to EBADF...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * Standard tst_res formatted output - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Loop through the test cases - * Execute system call - * Check return code, if system call failed (return=-1) - * if doing functional check - * check if errno set correctly, report results - * Otherwise, Issue a FAIL message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - -char *TCID="dup02"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int Fds[] = { -1, 1500 }; - - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int nfds = sizeof(Fds) / sizeof(int); - int ind; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for (ind=0; ind -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - -char *TCID="dup03"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - - -char Fname[255]; -int *Fd = NULL; -int Nfds=0; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call dup(2) - */ - TEST( dup(Fd[0]) ); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_ERRNO == EMFILE ) { - tst_resm(TPASS, "dup(%d) Failed, errno=%d : %s", Fd[0], - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, "dup(%d) Failed, errno=%d %s, expected %d (EMFILE)", - Fd[0], TEST_ERRNO, strerror(TEST_ERRNO), EMFILE); - } - } - } else { - tst_resm(TFAIL, "dup(%d) returned %d, expected -1, errno:%d (EMFILE)", - Fd[0], TEST_RETURN, EMFILE); - - /* close the new file so loops do not open too many files */ - if (close(TEST_RETURN) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - long maxfds; - - /* - * Initialize Fd in case we get a quick signal - */ - maxfds = sysconf(_SC_OPEN_MAX); - if (maxfds < 1) { - tst_brkm(TBROK, cleanup, - "sysconf(_SC_OPEN_MAX) Failed, errno=%d : %s", - errno, strerror(errno)); - } - - Fd = (int *)malloc(maxfds*sizeof(int)); - Fd[0]=-1; - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* - * open the file as many times as it takes to use up all fds - */ - sprintf(Fname, "dupfile"); - for (Nfds=1; Nfds<=maxfds; Nfds++) { - if ((Fd[Nfds-1] = open(Fname,O_RDWR|O_CREAT,0700)) == -1) { - - Nfds--; /* on a open failure, decrement the counter */ - if ( errno == EMFILE ) { - break; - } - else { /* open failed for some other reason */ - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - } - } - - /* - * make sure at least one was open and that all fds were opened. - */ - if ( Nfds == 0 ) { - tst_brkm(TBROK, cleanup, "Unable to open at least one file"); - } - if ( Nfds > maxfds ) { - tst_brkm(TBROK, cleanup, - "Unable to open enough files to use all file descriptors, tried %d", - maxfds); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the open file we've been dup'ing */ - if (Fd) { - for (; Nfds >0 ; Nfds--) { - if (close(Fd[Nfds-1]) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - Fd[Nfds]=-1; - } - free(Fd); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/dup04.c b/winsup/testsuite/winsup.api/ltp/dup04.c deleted file mode 100644 index 85540db35..000000000 --- a/winsup/testsuite/winsup.api/ltp/dup04.c +++ /dev/null @@ -1,297 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : dup04 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for dup(2) of a system pipe descriptor - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 06/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) dup(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the dup(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * dup(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - -char *TCID="dup04"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int Fd[2]; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call dup(2) for read side - */ - TEST( dup(Fd[0]) ); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "dup(%d) read side of syspipe Failed, errno=%d : %s", Fd[0], - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "dup(%d) read side of syspipe returned %d", Fd[0], - TEST_RETURN); - - } - else - Tst_count++; - - /* close the new file so loops do not open too many files */ - if (close(TEST_RETURN) == -1) { - tst_brkm(TBROK, cleanup, "close(%d) Failed, errno=%d : %s", - TEST_RETURN, errno, strerror(errno)); - } - } - - /* - * Call dup(2) for write side - */ - TEST( dup(Fd[1]) ); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "dup(%d) write side of syspipe Failed, errno=%d : %s", Fd[1], - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "dup(%d) write side of syspipe returned %d", Fd[1], - TEST_RETURN); - - } - else - Tst_count++; - - /* close the new file so loops do not open too many files */ - if (close(TEST_RETURN) == -1) { - tst_brkm(TBROK, cleanup, "close(%d) Failed, errno=%d : %s", - TEST_RETURN, errno, strerror(errno)); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* - * Initialize Fd in case we get a quick signal - */ - Fd[0]=-1; - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - if ( pipe(Fd) == -1 ) { - tst_brkm(TBROK, cleanup, "pipe(&Fd) Failed, errno=%d : %s", - errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - int ind; - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the open file we've been dup'ing */ - if (Fd[0] != -1) { - for (ind=0; ind<2; ind++) { - if (close(Fd[ind]) == -1) { - tst_resm(TWARN, "close(%d) Failed, errno=%d : %s", - Fd[ind], errno, strerror(errno)); - } - Fd[ind]=-1; - } - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/dup05.c b/winsup/testsuite/winsup.api/ltp/dup05.c deleted file mode 100644 index 4f889cdcd..000000000 --- a/winsup/testsuite/winsup.api/ltp/dup05.c +++ /dev/null @@ -1,266 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : dup05 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for dup(2) of a named pipe descriptor - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 06/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) dup(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the dup(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * dup(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - -char *TCID="dup05"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char Fname[255]; -int Fd; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call dup(2) - */ - TEST( dup(Fd) ); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "dup(%s) Failed, errno=%d : %s", Fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "dup(%s) returned %d", Fname, TEST_RETURN); - } - - /* close the new file so loops do not open too many files */ - if (close(TEST_RETURN) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* - * Initialize Fd in case we get a quick signal - */ - Fd=-1; - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(Fname, "dupfile"); - if ( mkfifo(Fname, 0777) == -1 ) { - tst_brkm(TBROK, cleanup, - "mkfifo(%s, 0700) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - if ((Fd = open(Fname, O_RDWR, 0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR, 0700) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the open file we've been dup'ing */ - if (Fd != -1) { - if (close(Fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - Fd=-1; - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/execl01.c b/winsup/testsuite/winsup.api/ltp/execl01.c deleted file mode 100644 index b23716a0f..000000000 --- a/winsup/testsuite/winsup.api/ltp/execl01.c +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : execl01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for execl(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 06/01/02 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) execl(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the execl(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * execl(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="execl01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -extern int Tst_nobuf; /* used to turn off buffering in tst_ routines */ - -int exp_enos[]={0, 0}; /* Zero terminated list of expected errnos */ - -int pid; /* process id from fork */ -int status; /* status returned from waitpid */ - - - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - Tst_nobuf=1; /* turn off buffering in tst_ routines */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * fork, then call execl from child - */ - switch(pid=fork()) { - case 0: /* CHILD - Call execl(2) */ - execl("test", "test", NULL); - /* should not get here!! if we do, the parent will fail the Test Case */ - exit(errno); - case -1: /* ERROR!!! exit now!!*/ - tst_brkm(TBROK, cleanup, - "Unable to fork a child process to exec over! Errno:%d,:%s", - errno, strerror(errno)); - break; - default: - waitpid(pid, &status, 0); - if ( WIFEXITED(status) ) { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "execl - properly exec's a simple program.."); - } - } else { - TEST_ERROR_LOG(WEXITSTATUS(status)); - tst_resm(TFAIL, "Child process did not terminate properly, status=%d", status); - } - break; - } /* switch */ - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - /* - * Send out info message that timing and errnolog info is not - * available because of the use of a child process for each exec - */ - if ( STD_TIMING_ON ) - tst_resm(TINFO, "There are NO timing statistics produced by this test.\n\ -This is because the test forks to create a child process which then calls execl.\n\ -The TEST macro is NOT used."); - - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove files and temp dir */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/execle01.c b/winsup/testsuite/winsup.api/ltp/execle01.c deleted file mode 100644 index f29d34f6a..000000000 --- a/winsup/testsuite/winsup.api/ltp/execle01.c +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : execle01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for execle(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 06/01/02 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) execle(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the execle(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * execle(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="execle01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -extern int Tst_nobuf; /* used to turn off buffering in tst_ routines */ - -int exp_enos[]={0, 0}; /* Zero terminated list of expected errnos */ - -int pid; /* process id from fork */ -int status; /* status returned from waitpid */ -extern char **environ; /* pointer to this processes env, to pass along */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - Tst_nobuf=1; /* turn off buffering in tst_ routines */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * fork, then call execle from child - */ - switch(pid=fork()) { - case 0: /* CHILD - Call execle(2) */ - execle("test", "test", 0, environ); - /* should not get here!! if we do, the parent will fail the Test Case */ - exit(errno); - case -1: /* ERROR!!! exit now!!*/ - tst_brkm(TBROK, cleanup, - "Unable to fork a child process to exec over! Errno:%d,:%s", - errno, strerror(errno)); - break; - default: - waitpid(pid, &status, 0); - if ( WIFEXITED(status) ) { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "execle - properly exec's a simple program.."); - } - } else { - TEST_ERROR_LOG(WEXITSTATUS(status)); - tst_resm(TFAIL, "Child process did not terminate properly, status=%d", status); - } - break; - } /* switch */ - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - /* - * Send out info message that timing and errnolog info is not - * available because of the use of a child process for each exec - */ - if ( STD_TIMING_ON ) - tst_resm(TINFO, "There are NO timing statistics produced by this test.\n\ -This is because the test forks to create a child process which then calls execle.\n\ -The TEST macro is NOT used."); - - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove files and temp dir */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/execlp01.c b/winsup/testsuite/winsup.api/ltp/execlp01.c deleted file mode 100644 index 6bf97d4e1..000000000 --- a/winsup/testsuite/winsup.api/ltp/execlp01.c +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : execlp01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for execlp(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 06/01/02 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) execlp(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the execlp(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * execlp(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="execlp01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -extern int Tst_nobuf; /* used to turn off buffering in tst_ routines */ - -int exp_enos[]={0, 0}; /* Zero terminated list of expected errnos */ - -int pid; /* process id from fork */ -int status; /* status returned from waitpid */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - Tst_nobuf=1; /* turn off buffering in tst_ routines */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * fork, then call execlp from child - */ - switch(pid=fork()) { - case 0: /* CHILD - Call execlp(2) */ - execlp("/usr/bin/test", "/usr/bin/test", 0); - /* should not get here!! if we do, the parent will fail the Test Case */ - exit(errno); - case -1: /* ERROR!!! exit now!!*/ - tst_brkm(TBROK, cleanup, - "Unable to fork a child process to exec over! Errno:%d,:%s", - errno, strerror(errno)); - break; - default: - waitpid(pid, &status, 0); - if ( WIFEXITED(status) ) { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "execlp - properly exec's a simple program.."); - } - } else { - TEST_ERROR_LOG(WEXITSTATUS(status)); - tst_resm(TFAIL, "Child process did not terminate properly, status=%d", status); - } - break; - } /* switch */ - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - /* - * Send out info message that timing and errnolog info is not - * available because of the use of a child process for each exec - */ - if ( STD_TIMING_ON ) - tst_resm(TINFO, "There are NO timing statistics produced by this test.\n\ -This is because the test forks to create a child process which then calls execlp.\n\ -The TEST macro is NOT used."); - - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove files and temp dir */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/execv01.c b/winsup/testsuite/winsup.api/ltp/execv01.c deleted file mode 100644 index b833e1c4f..000000000 --- a/winsup/testsuite/winsup.api/ltp/execv01.c +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : execv01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for execv(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 06/01/02 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) execv(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the execv(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * execv(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="execv01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -extern int Tst_nobuf; /* used to turn off buffering in tst_ routines */ - -int exp_enos[]={0, 0}; /* Zero terminated list of expected errnos */ - -int pid; /* process id from fork */ -int status; /* status returned from waitpid */ -char *args[2]={"/usr/bin/test", 0}; /* argument list for execv call */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - Tst_nobuf=1; /* turn off buffering in tst_ routines */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * fork, then call execv from child - */ - switch(pid=fork()) { - case 0: /* CHILD - Call execv(2) */ - execv("/usr/bin/test", args); - /* should not get here!! if we do, the parent will fail the Test Case */ - exit(errno); - case -1: /* ERROR!!! exit now!!*/ - tst_brkm(TBROK, cleanup, - "Unable to fork a child process to exec over! Errno:%d,:%s", - errno, strerror(errno)); - break; - default: - waitpid(pid, &status, 0); - if ( WIFEXITED(status) ) { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "execv - properly exec's a simple program.."); - } - } else { - TEST_ERROR_LOG(WEXITSTATUS(status)); - tst_resm(TFAIL, "Child process did not terminate properly, status=%d", status); - } - break; - } /* switch */ - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - /* - * Send out info message that timing and errnolog info is not - * available because of the use of a child process for each exec - */ - if ( STD_TIMING_ON ) - tst_resm(TINFO, "There are NO timing statistics produced by this test.\n\ -This is because the test forks to create a child process which then calls execv.\n\ -The TEST macro is NOT used."); - - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove files and temp dir */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/execve01.c b/winsup/testsuite/winsup.api/ltp/execve01.c deleted file mode 100644 index 1abe72f23..000000000 --- a/winsup/testsuite/winsup.api/ltp/execve01.c +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : execve01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for execve(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 06/01/02 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) execve(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the execve(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * execve(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="execve01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -extern int Tst_nobuf; /* used to turn off buffering in tst_ routines */ - -int exp_enos[]={0, 0}; /* Zero terminated list of expected errnos */ - -int pid; /* process id from fork */ -int status; /* status returned from waitpid */ -char *args[2]={"/usr/bin/test", 0}; /* argument list for execve call */ -extern char **environ; /* pointer to this processes env, to pass along */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - Tst_nobuf=1; /* turn off buffering in tst_ routines */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * fork, then call execve from child - */ - switch(pid=fork()) { - case 0: /* CHILD - Call execve(2) */ - execve("/usr/bin/test", args, environ); - /* should not get here!! if we do, the parent will fail the Test Case */ - exit(errno); - case -1: /* ERROR!!! exit now!!*/ - tst_brkm(TBROK, cleanup, - "Unable to fork a child process to exec over! Errno:%d,:%s", - errno, strerror(errno)); - break; - default: - waitpid(pid, &status, 0); - if ( WIFEXITED(status) ) { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "execve - properly exec's a simple program.."); - } - } else { - TEST_ERROR_LOG(WEXITSTATUS(status)); - tst_resm(TFAIL, "Child process did not terminate properly, status=%d", status); - } - break; - } /* switch */ - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - /* - * Send out info message that timing and errnolog info is not - * available because of the use of a child process for each exec - */ - if ( STD_TIMING_ON ) - tst_resm(TINFO, "There are NO timing statistics produced by this test.\n\ -This is because the test forks to create a child process which then calls execve.\n\ -The TEST macro is NOT used."); - - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove files and temp dir */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/execvp01.c b/winsup/testsuite/winsup.api/ltp/execvp01.c deleted file mode 100644 index 6f645d68d..000000000 --- a/winsup/testsuite/winsup.api/ltp/execvp01.c +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : execvp01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for execvp(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 06/01/02 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) execvp(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the execvp(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * execvp(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="execvp01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -extern int Tst_nobuf; /* used to turn off buffering in tst_ routines */ - -int exp_enos[]={0, 0}; /* Zero terminated list of expected errnos */ - -int pid; /* process id from fork */ -int status; /* status returned from waitpid */ -char *args[2]={"/usr/bin/test", 0}; /* argument list for execvp call */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - Tst_nobuf=1; /* turn off buffering in tst_ routines */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * fork, then call execvp from child - */ - switch(pid=fork()) { - case 0: /* CHILD - Call execvp(2) */ - execvp("/usr/bin/test", args); - /* should not get here!! if we do, the parent will fail the Test Case */ - exit(errno); - case -1: /* ERROR!!! exit now!!*/ - tst_brkm(TBROK, cleanup, - "Unable to fork a child process to exec over! Errno:%d,:%s", - errno, strerror(errno)); - break; - default: - waitpid(pid, &status, 0); - if ( WIFEXITED(status) ) { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "execvp - properly exec's a simple program.."); - } - } else { - TEST_ERROR_LOG(WEXITSTATUS(status)); - tst_resm(TFAIL, "Child process did not terminate properly, status=%d", status); - } - break; - } /* switch */ - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - /* - * Send out info message that timing and errnolog info is not - * available because of the use of a child process for each exec - */ - if ( STD_TIMING_ON ) - tst_resm(TINFO, "There are NO timing statistics produced by this test.\n\ -This is because the test forks to create a child process which then calls execvp.\n\ -The TEST macro is NOT used."); - - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove files and temp dir */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/exit01.c b/winsup/testsuite/winsup.api/ltp/exit01.c deleted file mode 100644 index 729f49ac6..000000000 --- a/winsup/testsuite/winsup.api/ltp/exit01.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * exit01.c - * - * DESCRIPTION - * Check that exit returns the correct values to the waiting parent - * - * ALGORITHM - * Fork a process that immediately calls exit() with a known - * value. Check for that value in the parent. - * - * USAGE - * exit01 - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void cleanup(void); -void setup(void); - -char *TCID = "exit01"; -int TST_TOTAL = 1; -extern int Tst_count; - -main(int ac, char **av) -{ - int pid, npid, sig, nsig, exno, nexno, status; - int rval = 0; - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSIkNG ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); /* global setup for test */ - - /* check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count = 0; - - sig = 0; - exno = 1; - - if ((pid = fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork failed, errno=%d", - errno, strerror(errno)); - } - - if (pid == 0) { /* parent */ - exit(exno); - } else { - sleep(1); /* let child start */ - npid = wait(&status); - - if (npid != pid) { - tst_resm(TFAIL, "wait error: " - "unexpected pid returned"); - rval = 1; - } - - nsig = status % 256; - - /* - * Check if the core dump bit has been set, bit # 7 - */ - if (nsig >= 128) { - nsig = nsig - 128; - } - - /* - * nsig is the signal number returned by wait - */ - if (nsig != sig) { - tst_resm(TFAIL, "wait error: " - "unexpected signal returned"); - rval = 1; - } - - /* - * nexno is the exit number returned by wait - */ - nexno = status / 256; - if (nexno != exno) { - tst_resm(TFAIL, "wait error: " - "unexpected exit number returned"); - rval = 1; - } - } - - if (rval != 1) { - tst_resm(TPASS, "exit() test PASSED"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - umask(0); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at completion or - * premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/exit02.c b/winsup/testsuite/winsup.api/ltp/exit02.c deleted file mode 100644 index b81ecbcb9..000000000 --- a/winsup/testsuite/winsup.api/ltp/exit02.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * exit02.c - * - * DESCRIPTION - * Check that exit flushes output file buffers and closes files upon - * exitting - * - * ALGORITHM - * Fork a process that creates a file and writes a few bytes, and - * calls exit WITHOUT calling close(). The parent then reads the - * file. If everything that was written is present in the file, then - * the test passes. - * - * USAGE - * exit02 - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void cleanup(void); -void setup(void); - -char *TCID = "exit02"; -int TST_TOTAL = 1; -extern int Tst_count; - -#define READ 0 -#define WRITE 1 -#define MODE 0666 - -char filen[40]; - -main(int ac, char **av) -{ - int pid, npid, sig, nsig, exno, nexno, status; - int filed; - char wbuf[BUFSIZ], rbuf[BUFSIZ]; - int len, rlen; - int rval = 0; - char *strcpy(); - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* - * parse standard options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); /* global setup for test */ - - /* - * The following loop checks looping state if -i option given - */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* - * reset Tst_count in case we are looping. - */ - Tst_count = 0; - - strcpy(wbuf, "abcd"); - len = strlen(wbuf); - - exno = sig = 0; - - if ((pid = fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork failed, error no = %d", - errno, strerror(errno)); - } - - if (pid == 0) { /* child */ - sleep(1); - if ((filed = creat(filen, MODE)) == -1) { - tst_resm(TINFO, "creat error: unable to" - "open output file"); - exit(2); - } - if (write(filed, wbuf, len) != len) { - tst_resm(TINFO, "write error"); - exit(2); - } - close(filed); - exit(exno); - } else { /* parent */ - npid = wait(&status); - - if (npid != pid) { - tst_resm(TFAIL, "wait error: " - "unexpected pid returned"); - rval = 1; - } - - nsig = status % 256; - - /* - * to check if the core dump bit has been - * set, bit # 7 - */ - if (nsig >= 128) - nsig = nsig - 128; - - /* - * nsig is the signal number returned by - * wait - */ - if (nsig != sig) { - tst_resm(TFAIL, "wait error: unexpected " - "signal returned %d", nsig); - rval = 1; - } - - /* - * nexno is the exit number returned by wait - */ - nexno = status / 256; - if (nexno != exno) { - tst_resm(TFAIL, "wait error: unexpected exit " - "number %d", nexno); - rval = 1; - } - - sleep(2); /* let child's exit close opened file */ - - filed = open(filen, O_RDONLY, READ); - if (filed == -1) { - tst_resm(TFAIL, "open error: " - "unable to open input file"); - rval = 1; - } else { - rlen = read(filed, rbuf, len); - if (len != rlen) { - tst_resm(TFAIL, "exit error: file " - "buffer was not flushed"); - rval = 1; - } else if (memcmp(rbuf, wbuf, rlen) != 0) { - tst_resm(TFAIL, "exit error: file " - "buffer was not flushed"); - rval = 1; - } - } - close(filed); - unlink(filen); - } - if (!rval) { - tst_resm(TPASS, "exit() test PASSED"); - } - } - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup() - perform all ONE TIME setup for this test - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - umask(0); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - sprintf(filen, "tfile_%d",getpid()); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at completion or - * premature exit. - */ -void -cleanup(void) -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified - */ - TEST_CLEANUP; - - /* - * Remove tmp dir and all files in it - */ - tst_rmdir(); - - /* - * exit with return code appropriate for results - */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/fchdir01.c b/winsup/testsuite/winsup.api/ltp/fchdir01.c deleted file mode 100644 index 83685d34d..000000000 --- a/winsup/testsuite/winsup.api/ltp/fchdir01.c +++ /dev/null @@ -1,248 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * fchdir01.c - * - * DESCRIPTION - * fchdir01 - create a directory and cd into it. - * - * ALGORITHM - * create a new directory - * open the directory and get a file descriptor - * loop if that option was specified - * fchdir() into the directory - * check the return code - * if failure, issue a FAIL message. - * otherwise, - * if doing functionality testing, call check_functionality() - * if correct, - * issue a PASS message - * otherwise - * issue a FAIL message - * call cleanup - * - * USAGE: - * fchdir01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 03/2001 - Written by Wayne Boyer - * - * RESTRICTIONS - * none - */ - -#include "test.h" -#include "usctest.h" - -#include -#include -#include -#include - -void cleanup(void); -void setup(void); - -char *TCID = "fchdir01"; -int TST_TOTAL = 1; -extern int Tst_count; - -int fd = -1; -char temp_dir_buf [PATH_MAX]; -char* temp_dir; -const char *TEST_DIR = "alpha"; - -#define MODES S_IRWXU - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - void check_functionality(void); - int r_val; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); /* global setup */ - - /* The following loop checks looping state if -i option given */ - - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - /* get the name of the test dirctory */ - if ((temp_dir = (getcwd(temp_dir_buf, sizeof (temp_dir_buf)))) == NULL) { - tst_brkm(TBROK, cleanup, "%s - getcwd() in main() " - "failed", TCID); - } - - /* - * create a new directory and open it - */ - - if ((r_val = mkdir(TEST_DIR, MODES)) == -1){ - tst_brkm(TBROK, cleanup, "%s - mkdir() in main() " - "failed", TCID); - } - - if ((fd = open(TEST_DIR, O_RDONLY)) == -1) { - tst_brkm(TBROK, cleanup, "open of directory failed"); - } - - /* - * Use TEST macro to make the call - */ - - TEST(fchdir(fd)); - - if (TEST_RETURN == -1) { - tst_brkm(TFAIL, cleanup, "%s call failed - errno = %d :" - " %s", TCID, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - if (STD_FUNCTIONAL_TEST) { - check_functionality(); - } else { - tst_resm(TPASS, "call succeeded"); - } - } - - /* - * clean up things in case we are looping - */ - - /* - * NOTE: in case of failure here, we need to use "tst_resm()" - * and not "tst_brkm()". This is because if we get to this - * point, we have already set a PASS or FAIL for the test - * and "tst_brkm()" won't report as we might expect. - */ - - /* chdir back to our temporary work directory */ - if ((r_val = chdir("..")) == -1){ - tst_resm(TBROK, "fchdir failed - errno = %d : %s", - errno, strerror(errno)); - } - - if ((r_val = rmdir(TEST_DIR)) == -1){ - tst_resm(TBROK, "rmdir failed - errno = %d : %s", - errno, strerror(errno)); - } - - /* - * clean up things in case we are looping - */ - /* free(temp_dir); */ - temp_dir = NULL; - } - - cleanup(); - - /*NOTREACHED*/ -} - -/* - * check_functionality() - check that we are in the correct directory. - */ -void -check_functionality(void) -{ - char buf [PATH_MAX]; - char *cwd; - char **bufptr = &cwd; - char *dir; - - /* - * Get the current directory path. - */ - if ((cwd = (getcwd(buf, sizeof (buf)))) == NULL) { - tst_brkm(TBROK, cleanup, "%s - getcwd() in " - "check_functionality() failed", TCID); - } - - /* - * strip off all but the last directory name in the - * current working directory. - */ - do { - if ((dir = strsep(bufptr, "/")) == NULL) { - tst_brkm(TBROK, cleanup, "%s - strsep() in " - "check_functionality() failed", TCID); - } - } while(*bufptr != NULL); - - /* - * Make sure we are in the right place. - */ - if (strcmp(TEST_DIR, dir) == 0) { - tst_resm(TPASS, "%s call succeeded", TCID); - } else { - tst_resm(TFAIL, "%s functionality test failed", TCID); - } -} - -/* - * setup() - performs all the ONE TIME setup for this test. - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* create a test directory and cd into it */ - tst_tmpdir(); -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup(void) -{ - if (fd >= 0) - close (fd); - - /* remove the test directory */ - tst_rmdir(); - - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} - diff --git a/winsup/testsuite/winsup.api/ltp/fchdir02.c b/winsup/testsuite/winsup.api/ltp/fchdir02.c deleted file mode 100644 index c09d905b5..000000000 --- a/winsup/testsuite/winsup.api/ltp/fchdir02.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * fchdir02.c - * - * DESCRIPTION - * fchdir02 - try to cd into a bad directory (bad fd). - * - * CALLS - * fchdir() - * - * ALGORITHM - * loop if that option was specified - * call fchdir() with an invalid file descriptor - * check the errno value - * issue a PASS message if we get EBADF - errno 9 - * otherwise, the tests fails - * issue a FAIL message - * break any remaining tests - * call cleanup - * - * USAGE: - * fchdir02 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 03/2001 - Written by Wayne Boyer - * - * RESTRICTIONS - * none - */ - -#include "test.h" -#include "usctest.h" - -#include -#include -#include - -void cleanup(void); -void setup(void); - -char *TCID = "fchdir02"; -int TST_TOTAL = 1; -extern int Tst_count; - -int exp_enos[] = {9, 0}; /* 0 terminated list of expected errnos */ - -main(int ac, char **av) -{ - const int bad_fd = -5; - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); /* global setup */ - - /* The following loop checks looping state if -i option given */ - - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - /* - * Look for a failure by using an invalid number for fd - */ - - TEST(fchdir(bad_fd)); - - if (TEST_RETURN != -1) { - tst_brkm(TFAIL, cleanup, "call succeeded with bad " - "file descriptor"); - } - - TEST_ERROR_LOG(TEST_ERRNO); - - switch(TEST_ERRNO) { - case EBADF: - tst_resm(TPASS, "expected failure - errno = %d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - break; - default: - tst_brkm(TFAIL, cleanup, "call failed with an " - "unexpected error - %d : %s", TEST_ERRNO, - strerror(TEST_ERRNO)); - } - } - - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all the ONE TIME setup for this test. - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* create a test directory and cd into it */ - tst_tmpdir(); - - /* Set up the expected error numbers for -e option */ - TEST_EXP_ENOS(exp_enos); -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup(void) -{ - /* remove the test directory */ - tst_rmdir(); - - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} - diff --git a/winsup/testsuite/winsup.api/ltp/fchmod01.c b/winsup/testsuite/winsup.api/ltp/fchmod01.c deleted file mode 100644 index ffcf37f66..000000000 --- a/winsup/testsuite/winsup.api/ltp/fchmod01.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fchmod01 - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fchmod(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fchmod(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fchmod(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fchmod01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; -char *buf = "davef"; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call fchmod(2) - */ - TEST(fchmod(fd, 0700)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "fchmod(%s, 0700) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "fchmod(%s, 0700) returned %d", fname, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } else if (write(fd, &buf, strlen(buf)) == -1) { - tst_brkm(TBROK, cleanup, "write(%s, &buf, strlen(buf)) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the open file wev'e been chmoding */ - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/fchown01.c b/winsup/testsuite/winsup.api/ltp/fchown01.c deleted file mode 100644 index 045f84892..000000000 --- a/winsup/testsuite/winsup.api/ltp/fchown01.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fchown01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fchown(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 02/14/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fchown(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fchown(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fchown(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ -#include -#include -#include - -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fchown01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int Fd; /* file descriptor for fchown */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* Call fchown(2) just once */ - TEST(fchown(Fd, geteuid(), getegid())); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, - "fchown(Fd, geteuid(), getegid()) failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* Perform functional verification here */ - tst_resm(TPASS, - "fchown(Fd, geteuid(), getegid()) returned %d", - TEST_RETURN); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - char fname[1024]; - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a tempdir and change to it */ - tst_tmpdir(); - - /* open a file for read/write */ - sprintf(fname, "./tmpfile.%d", getpid()); - if ( (Fd=open(fname, O_RDWR|O_CREAT, 0700)) == -1 ) - tst_brkm(TBROK, cleanup, - "Unable to open %s for read/write. Error:%d, %s", - fname, errno, strerror(errno)); /* this exits */ - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - close(Fd); - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove temp dir and files */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/fcntl02.c b/winsup/testsuite/winsup.api/ltp/fcntl02.c deleted file mode 100644 index 14fc1b61d..000000000 --- a/winsup/testsuite/winsup.api/ltp/fcntl02.c +++ /dev/null @@ -1,244 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fcntl02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fcntl(2) using F_DUPFD argument. - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fcntl(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fcntl(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fcntl(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fcntl02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call fcntl(2) with F_DUPFD argument on fname - */ - TEST(fcntl(fd, F_DUPFD, 0)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "fcntl(%s, F_DUPFD, 0) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "fcntl(%s, F_DUPFD, 0) returned %d", fname, TEST_RETURN); - } - if (close(TEST_RETURN) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the file we've had open */ - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fcntl03.c b/winsup/testsuite/winsup.api/ltp/fcntl03.c deleted file mode 100644 index 93a9b9b1f..000000000 --- a/winsup/testsuite/winsup.api/ltp/fcntl03.c +++ /dev/null @@ -1,240 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fcntl03 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fcntl(2) using F_GETFD argument. - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fcntl(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fcntl(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fcntl(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fcntl03"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call fcntl(2) with F_GETFD argument on fname - */ - TEST(fcntl(fd, F_GETFD, 0)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "fcntl(%s, F_GETFD, 0) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "fcntl(%s, F_GETFD, 0) returned %d", fname, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fcntl04.c b/winsup/testsuite/winsup.api/ltp/fcntl04.c deleted file mode 100644 index d70843071..000000000 --- a/winsup/testsuite/winsup.api/ltp/fcntl04.c +++ /dev/null @@ -1,239 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fcntl04 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fcntl(2) using F_GETFL argument. - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fcntl(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fcntl(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fcntl(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fcntl04"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call fcntl(2) with F_GETFL argument on fname - */ - TEST(fcntl(fd, F_GETFL, 0)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "fcntl(%s, F_GETFL, 0) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "fcntl(%s, F_GETFL, 0) returned %d", fname, TEST_RETURN); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, TEST_ERRNO, strerror(TEST_ERRNO)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fcntl05.c b/winsup/testsuite/winsup.api/ltp/fcntl05.c deleted file mode 100644 index 86f492aa7..000000000 --- a/winsup/testsuite/winsup.api/ltp/fcntl05.c +++ /dev/null @@ -1,249 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fcntl05 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fcntl(2) using F_GETLK argument. - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fcntl(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fcntl(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fcntl(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fcntl05"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; -struct flock flocks; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - flocks.l_type = F_RDLCK; - /* - * Call fcntl(2) with F_GETLK argument on fname - */ - TEST(fcntl(fd, F_GETLK, &flocks)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "fcntl(%s, F_GETLK, &flocks) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "fcntl(%s, F_GETLK, &flocks) returned %d", fname, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - - /* set needed flags in the flocks structure */ - flocks.l_whence=1; - flocks.l_start=0; - flocks.l_len=0; - flocks.l_pid=getpid(); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Close the file we have open */ - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fcntl07.c b/winsup/testsuite/winsup.api/ltp/fcntl07.c deleted file mode 100644 index c48e475ba..000000000 --- a/winsup/testsuite/winsup.api/ltp/fcntl07.c +++ /dev/null @@ -1,426 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fcntl07 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Close-On-Exec functional test - * - * PARENT DOCUMENT : none - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 5 - * - * CPU TYPES : ALL - * - * AUTHOR : Glen Overby - * - * CO-PILOT : William Roske - * - * DATE STARTED : 08/11/93 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) test close-on-exec with a regular file - * 2.) test close-on-exec with a system pipe - * - * INPUT SPECIFICATIONS - * - * Standard arguments accepted by parse_opts(3). - * - * The -t (timing) and -e options apply to the fcntl(.., F_SETFD, ..) - * system call. - * - * -T fd : If this option is given, the program runs as "test_open", - * testing to see if it is open or not and exiting - * accordingly: - * 0 not open (EBADF from fcntl(..., F_GETFD, ...)) - * 3 no error from fcntl - * errno fcntl returned an error other than EBADF - * - * -F name : File to open. Must be an absolute path - * and the file must be writable; - * -n program: path to the 'test_open' program - * - * OUTPUT SPECIFICATIONS - * This test uses the cuts-style test_res format output consisting of: - * - * test-name PASS/FAIL/BROK message - * - * the message will tell what type of test and, if it failed, indicate - * what the failure was. - * - * DURATION - * Terminates - * - * SIGNALS - * None - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * If this test is not called with a full pathname, it must be able - * to find itself on $PATH - * - * INTERCASE DEPENDENCIES - * none - * - * DETAILED DESCRIPTION - * - * Setup: - * Setup signal handling. - * Create and make current a temporary directory. - * Open a regular file for writing - * Create a system pipe - * Create a named pipe and open it for writing - * - * Test: - * Set the file descriptor for close-on-exec - * Fork - * Child execlp's the program "test_open". - * If the exec fails, exit "2" - * Parent waits - * Report results. - * - * Cleanup: - * Close file and pipes - * Remove the temporary directory - * - * BUGS - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" -#include "search_path.h" - -void setup(); -void cleanup(); -void help(); - -char *TCID="fcntl07"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - - - -/* for parse_opts */ -int fflag, Tflag; /* binary flags: opt or not */ -char *fopt, *Topt; /* option arguments */ - -option_t options[] = { - { "F:", &fflag, &fopt }, /* -F filename */ - { "T:", &Tflag, &Topt }, /* -T exec'ed by test: test FD */ - { NULL, NULL, NULL } -}; - -int stat_loc; /* for waitpid() */ - -int file_fd, pipe_fds[2]; - /* file descriptors for a file and a system pipe */ -#define DEFAULT_FILE "DefaultFileName" -char *File1 = DEFAULT_FILE; - -#define DEFAULT_SUBPROG "test_open" -char *openck = DEFAULT_SUBPROG; /* support program name to check for open FD */ -char subprog_path[_POSIX_PATH_MAX]; /* path to exec "openck" with */ -#define STRSIZE 255 - -int *testfds[] = { - &file_fd, &pipe_fds[1], 0 - }; - -char *testfdtypes[] = { - "regular file", - "write side of system pipe", - }; - -int test_open(char *arg); -int do_exec(char *prog, int fd, char *tcd); - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int exec_return; /* return from do_exec */ - int **tcp; /* testcase pointer (pointer to FD) */ - char **tcd; /* testcase description pointer */ - - /*************************************************************** - * parse standard options, and exit if there is an error - ***************************************************************/ - if ( (msg=parse_opts(ac, av, options, &help)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - if(fflag) /* -F option */ - File1 = fopt; - - if(Tflag) { /* -T option */ - exit(test_open(Topt)); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(av[0]); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for(tcp = testfds, tcd = testfdtypes; *tcp; tcp++, tcd++) { - - TEST(fcntl(**tcp, F_SETFD, FD_CLOEXEC)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "fcntl(%s[%d], F_SETFD, FD_CLOEXEC) Failed, errno=%d : %s", - *tcd, **tcp, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /************************************************************* - * only perform functional verification if flag set - * (-f not given) - *************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - - exec_return = do_exec(subprog_path, **tcp, *tcd); - - switch(exec_return) { - case -1: - tst_resm(TBROK, "fork failed. Errno %s [%d]", - strerror(errno), errno); - break; - case 1: - tst_resm(TBROK, "waitpid return was 0%o", stat_loc); - break; - case 2: - tst_resm(TBROK, "exec failed"); /* errno was in child */ - break; - case 0: - tst_resm(TPASS, "%s child exited 0, indicating that the file was closed", - *tcd); - break; - default: - tst_resm(TFAIL, "%s child exited non-zero, %d", *tcd, - exec_return); - break; - } - } - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup(char *path) -{ - search_path(path, subprog_path, X_OK, 1); - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* create a temporary directory and go to it */ - tst_tmpdir(); - - /* set up a regular file */ - if((file_fd=open(File1, O_CREAT|O_RDWR, 0666)) == -1) { - tst_brkm(TBROK, cleanup, "Open of file %s failed errno %d (%s)\n", File1, errno, strerror(errno)); - } - - /* set up a system pipe (write side gets CLOSE-ON-EXEC) */ - pipe(pipe_fds); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close everything */ - close(file_fd); - close(pipe_fds[0]); - close(pipe_fds[1]); - - /* remove temporary directory and all files in it. */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - -/*************************************************************************** - * issue a help message - ***************************************************************************/ -void -help() -{ - printf("-T fd : If this option is given, the program runs as 'test_open'\n"); - printf(" testing to see if it is open or not and exiting accordingly\n"); - printf("-F name : File to open. Must be an absolute path,\n"); - printf(" and the file must be writable\n"); - printf("-n program: path to the 'test_open' program\n"); -} - -/*---------------------------------------------------------------------------*/ -/* Perform an exec, then wait for the child to terminate. - * The child's termination status determines the success of the test - * - * Return codes: - * -1 BROK fork failed - * 1 BROK waitpid returned != exit status - * ???? exit code from child: - * 2 BROK exec failed - * 0 PASS fd was properly closed - * - */ - -int -do_exec(char *prog, int fd, char *tcd) -{ - int pid; - char pidname[STRSIZE]; -#ifdef DEBUG - int rc, status; /* for the fcntl */ -#endif - - /* set up arguments to exec'ed child */ - sprintf(pidname, "%d", fd); - -#ifdef DEBUG - rc = fcntl(fd, F_GETFD, &status); - printf("%s: fd = %d rc = %d status= %d, errno= %d\n", tcd, fd, rc, status, errno); -#endif - - switch(pid=fork()) { - case -1: - return(-1); - case 0: /* child */ - execlp(prog, openck, "-T", pidname, 0); - - /* the ONLY reason to do this is to get the errno printed out */ - fprintf(stderr, "exec(%s, %s, -T, %s) failed. Errno %s [%d]\n", - prog, openck, pidname, strerror(errno), errno); - exit(2); - default: /* parent */ - waitpid(pid, &stat_loc, 0); - if(WIFEXITED(stat_loc)) { - return(WEXITSTATUS(stat_loc)); - } else { - return(1); - } - } -} - -/* - * PROGRAM TITLE : Test if a named file descriptor is open - * This function is called when fcntcs07 is called with the -T option. - * It tests if a file descriptor is open and exits accordingly. - */ -int -test_open(char *arg) -{ - int fd, rc; - int status; - - fd = atoi(arg); - - rc = fcntl(fd, F_GETFD, &status); - -#ifdef DEBUG_T - printf("%s: fd = %d rc = %d status= %d, errno= %d\n", openck, fd, rc, - status, errno); -#endif - - if(rc == -1 && errno == EBADF) { - exit(0); - } - - if(rc != -1) - exit(3); - - exit(errno); - return -1; /* to remove compiler warning on IRIX */ -} diff --git a/winsup/testsuite/winsup.api/ltp/fcntl07B.c b/winsup/testsuite/winsup.api/ltp/fcntl07B.c deleted file mode 100644 index 51b88c278..000000000 --- a/winsup/testsuite/winsup.api/ltp/fcntl07B.c +++ /dev/null @@ -1,427 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fcntl07B - * to see if it is open or not and exiting - * accordingly: - * 0 not open (EBADF from fcntl(..., F_GETFD, ...)) - * 3 no error from fcntl - * errno fcntl returned an error other than EBADF - * - * -F name : File to open. Must be an absolute path - * and the file must be writable; - * -n program: path to the 'test_open' program - * - * OUTPUT SPECIFICATIONS - * This test uses the cuts-style test_res format output consisting of: - * - * test-name PASS/FAIL/BROK message - * - * the message will tell what type of test and, if it failed, indicate - * what the failure was. - * - * DURATION - * Terminates - * - * SIGNALS - * None - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * If this test is not called with a full pathname, it must be able - * to find itself on $PATH - * - * INTERCASE DEPENDENCIES - * none - * - * DETAILED DESCRIPTION - * - * Setup: - * Setup signal handling. - * Create and make current a temporary directory. - * Create a named pipe and open it for writing - * - * Test: - * Set the file descriptor for close-on-exec - * Fork - * Child execlp's the program "test_open". - * If the exec fails, exit "2" - * Parent waits - * Report results. - * - * Cleanup: - * Close file and pipes - * Remove the temporary directory - * - * BUGS - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" -#include "search_path.h" - -void setup(); -void cleanup(); -void help(); - -char *TCID="fcntl07B"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - - -/* for parse_opts */ -int fflag, Tflag; /* binary flags: opt or not */ -char *fopt, *Topt; /* option arguments */ - -option_t options[] = { - { "F:", &fflag, &fopt }, /* -F filename */ - { "T:", &Tflag, &Topt }, /* -T exec'ed by test: test FD */ - { NULL, NULL, NULL } -}; - -int stat_loc; /* for waitpid() */ - -int npipe_fd; - /* file descriptors for a named pipe */ -#define DEFAULT_FILE "DefaultFileName" -char *File1 = DEFAULT_FILE; - -#define DEFAULT_SUBPROG "test_open" -char *openck = DEFAULT_SUBPROG; /* support program name to check for open FD */ -char subprog_path[_POSIX_PATH_MAX]; /* path to exec "openck" with */ -#define STRSIZE 255 -#define FIFONAME "FiFo" - -int *testfds[] = { - &npipe_fd, 0 - }; - -char *testfdtypes[] = { - "named pipe" - }; - -int test_open(char *arg); -int do_exec(char *prog, int fd, char *tcd); - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int exec_return; /* return from do_exec */ - int **tcp; /* testcase pointer (pointer to FD) */ - char **tcd; /* testcase description pointer */ - - /*************************************************************** - * parse standard options, and exit if there is an error - ***************************************************************/ - if ( (msg=parse_opts(ac, av, options, &help)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - if(fflag) /* -F option */ - File1 = fopt; - - if(Tflag) { /* -T option */ - exit(test_open(Topt)); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(av[0]); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for(tcp = testfds, tcd = testfdtypes; *tcp; tcp++, tcd++) { - - TEST(fcntl(**tcp, F_SETFD, FD_CLOEXEC)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "fcntl(%s[%d], F_SETFD, FD_CLOEXEC) Failed, errno=%d : %s", - *tcd, **tcp, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /************************************************************* - * only perform functional verification if flag set - * (-f not given) - *************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - - exec_return = do_exec(subprog_path, **tcp, *tcd); - - switch(exec_return) { - case -1: - tst_resm(TBROK, "fork failed. Errno %s [%d]", - strerror(errno), errno); - break; - case 1: - tst_resm(TBROK, "waitpid return was 0%o", stat_loc); - break; - case 2: - tst_resm(TBROK, "exec failed"); /* errno was in child */ - break; - case 0: - tst_resm(TPASS, "%s child exited 0, indicating that the file was closed", - *tcd); - break; - default: - tst_resm(TFAIL, "%s child exited non-zero, %d", *tcd, - exec_return); - break; - } - } - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup(char *path) -{ - search_path(path, subprog_path, X_OK, 1); - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* create a temporary directory and go to it */ - tst_tmpdir(); - - /* set up a named pipe (write side gets CLOSE-ON-EXEC) */ - if(mkfifo(FIFONAME, 0666) == -1) { - tst_brkm(TBROK, cleanup, "mkfifo of named pipe %s failed errno %d (%s)\n", FIFONAME, errno, strerror(errno)); - } - - if((npipe_fd=open(FIFONAME, O_RDWR, 0666)) == -1) { - tst_brkm(TBROK, cleanup, "Open of named pipe %s failed errno %d (%s)\n", File1, errno, strerror(errno)); - } - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close everything */ - close(npipe_fd); - - /* remove temporary directory and all files in it. */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - -/*************************************************************************** - * issue a help message - ***************************************************************************/ -void -help() -{ - printf("-T fd : If this option is given, the program runs as 'test_open'\n"); - printf(" testing to see if it is open or not and exiting accordingly\n"); - printf("-F name : File to open. Must be an absolute path,\n"); - printf(" and the file must be writable\n"); - printf("-n program: path to the 'test_open' program\n"); - -} - -/*---------------------------------------------------------------------------*/ -/* Perform an exec, then wait for the child to terminate. - * The child's termination status determines the success of the test - * - * Return codes: - * -1 BROK fork failed - * 1 BROK waitpid returned != exit status - * ???? exit code from child: - * 2 BROK exec failed - * 0 PASS fd was properly closed - * - */ - -int -do_exec(char *prog, int fd, char *tcd) -{ - int pid; - char pidname[STRSIZE]; -#ifdef DEBUG - int rc, status; /* for the fcntl */ -#endif - - /* set up arguments to exec'ed child */ - sprintf(pidname, "%d", fd); - -#ifdef DEBUG - rc = fcntl(fd, F_GETFD, &status); - printf("%s: fd = %d rc = %d status= %d, errno= %d\n", tcd, fd, rc, status, errno); -#endif - - switch(pid=fork()) { - case -1: - return(-1); - case 0: /* child */ - execlp(prog, openck, "-T", pidname, 0); - - /* the ONLY reason to do this is to get the errno printed out */ - fprintf(stderr, "exec(%s, %s, -T, %s) failed. Errno %s [%d]\n", - prog, openck, pidname, strerror(errno), errno); - exit(2); - default: /* parent */ - waitpid(pid, &stat_loc, 0); - if(WIFEXITED(stat_loc)) { - return(WEXITSTATUS(stat_loc)); - } else { - return(1); - } - } -} - -/* - * PROGRAM TITLE : Test if a named file descriptor is open - * This function is called when fcntcs07 is called with the -T option. - * It tests if a file descriptor is open and exits accordingly. - */ -int -test_open(char *arg) -{ - int fd, rc; - int status; - - extern char *optarg; - extern int optind; - - fd = atoi(arg); - - rc = fcntl(fd, F_GETFD, &status); - -#ifdef DEBUG_T - printf("%s: fd = %d rc = %d status= %d, errno= %d\n", openck, fd, rc, - status, errno); -#endif - - if(rc == -1 && errno == EBADF) { - exit(0); - } - - if(rc != -1) - exit(3); - - exit(errno); - return -1; /* To remove compiler warning on IRIX */ -} diff --git a/winsup/testsuite/winsup.api/ltp/fcntl08.c b/winsup/testsuite/winsup.api/ltp/fcntl08.c deleted file mode 100644 index c4cbad461..000000000 --- a/winsup/testsuite/winsup.api/ltp/fcntl08.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fcntl08 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fcntl(2) using F_SETFL argument. - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fcntl(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fcntl(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fcntl(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * close file - * remove temp directory - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - -#ifndef O_NDELAY -#define O_NDELAY 0 -#endif - -char *TCID="fcntl08"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -char fname[255]; -int arg, fd; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call fcntl(2) with F_SETFL argument on fname - */ - TEST(fcntl(fd, F_SETFL, arg)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - tst_resm(TFAIL, "fcntl(%s, F_SETFL, %d) Failed, errno=%d : %s", - fname, arg, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "fcntl(%s, F_SETFL, %d) returned %d", - fname, arg, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - - /* set the flags to be used */ -#ifdef CRAY - arg = (O_NDELAY | O_APPEND | O_RAW | O_NONBLOCK); -#else - arg = (O_NDELAY | O_APPEND | O_NONBLOCK); -#endif /* ! CRAY */ - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the file we have open */ - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fcntl09.c b/winsup/testsuite/winsup.api/ltp/fcntl09.c deleted file mode 100644 index f10df71fe..000000000 --- a/winsup/testsuite/winsup.api/ltp/fcntl09.c +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fcntl09 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fcntl(2) using F_SETLK argument. - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fcntl(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fcntl(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fcntl(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fcntl09"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; -struct flock flocks; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - flocks.l_type = F_RDLCK | F_WRLCK; - /* - * Call fcntl(2) with F_SETLK argument on fname - */ - TEST(fcntl(fd, F_SETLK, &flocks)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, - "fcntl(%s, F_SETLK, &flocks) flocks.l_type = F_RDLCK | F_WRLCK Failed, errno=%d : %s", - fname, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, - "fcntl(%s, F_SETLK, &flocks) flocks.l_type = F_RDLCK | F_WRLCK returned %d", - fname, TEST_RETURN); - } - } - - flocks.l_type = F_UNLCK; - /* - * Call fcntl(2) with F_SETLK argument on fname - */ - TEST(fcntl(fd, F_SETLK, &flocks)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, - "fcntl(%s, F_SETLK, &flocks) flocks.l_type = F_UNLCK Failed, errno=%d : %s", - fname, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, - "fcntl(%s, F_SETLK, &flocks) flocks.l_type = F_UNLCK returned %d", - fname, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"./file_%d",getpid()); - if (creat(fname, 02644) == -1) { - tst_brkm(TBROK, cleanup, "creat(%s, 02644) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } else if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } else if ((fd = open(fname,O_RDWR,0700)) == -1) { - tst_brkm(TBROK, cleanup, "open(%s, O_RDWR,0700) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - flocks.l_whence=1; - flocks.l_start=0; - flocks.l_len=0; - flocks.l_pid=getpid(); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } else if (unlink(fname) == -1) { - tst_resm(TWARN, "unlink(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - - } - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fcntl10.c b/winsup/testsuite/winsup.api/ltp/fcntl10.c deleted file mode 100644 index 8b23575b3..000000000 --- a/winsup/testsuite/winsup.api/ltp/fcntl10.c +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fcntl10 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fcntl(2) using F_SETLKW argument. - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fcntl(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fcntl(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fcntl(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fcntl10"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; -struct flock flocks; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - flocks.l_type = F_RDLCK | F_WRLCK; - /* - * Call fcntl(2) with F_SETLKW flocks.l_type = F_UNLCK argument on fname - */ - TEST(fcntl(fd, F_SETLKW, &flocks)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, - "fcntl(%s, F_SETLKW, &flocks) flocks.l_type = F_RDLCK | F_WRLCK Failed, errno=%d : %s", - fname, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, - "fcntl(%s, F_SETLKW, &flocks) flocks.l_type = F_RDLCK | F_WRLCK returned %d", - fname, TEST_RETURN); - } - } - - flocks.l_type = F_UNLCK; - /* - * Call fcntl(2) with F_SETLKW flocks.l_type = F_UNLCK argument on fname - */ - TEST(fcntl(fd, F_SETLKW, &flocks)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, - "fcntl(%s, F_SETLKW, &flocks) flocks.l_type = F_UNLCK Failed, errno=%d : %s", - fname, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, - "fcntl(%s, F_SETLKW, &flocks) flocks.l_type = F_UNLCK returned %d", - fname, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = creat(fname, 02644)) == -1) { - tst_brkm(TBROK, cleanup, "creat(%s, 02644) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } else if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } else if ((fd = open(fname,O_RDWR,0700)) == -1) { - tst_brkm(TBROK, cleanup, "open(%s, O_RDWR,0700) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - - /* set needed fields in the flocks structure */ - flocks.l_whence=1; - flocks.l_start=0; - flocks.l_len=0; - flocks.l_pid=getpid(); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fork01.c b/winsup/testsuite/winsup.api/ltp/fork01.c deleted file mode 100644 index dfd412a5f..000000000 --- a/winsup/testsuite/winsup.api/ltp/fork01.c +++ /dev/null @@ -1,317 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fork01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fork(2) - * - * PARENT DOCUMENT : frktds02 - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Kathy Olmsted - * - * CO-PILOT : Steve Shaw - * - * DATE STARTED : 06/17/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fork returns without error - * 2.) fork returns the pid of the child - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * fork() - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * CHILD: - * determine PID - * write to PID to a file and close the file - * exit - * PARENT: - * wait for child to exit - * read child PID from file - * compare child PID to fork() return code and report - * results - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -#define KIDEXIT 42 -extern void setup(); -extern void cleanup(); - -#define LINE_SZ 20 /* size of the line written/read to the file */ -#define FILENAME "childpid" - - - -char *TCID="fork01"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -/*************************************************************** - * child_pid - the child side of the test - * determine the PID and write to a file - ***************************************************************/ -void child_pid() -{ - - int fildes; - char tmp_line[LINE_SZ]; - - fildes = creat(FILENAME,0700); - sprintf(tmp_line,"%d\n",getpid()); - write(fildes,tmp_line,LINE_SZ); - close(fildes); - -} - -/*************************************************************** - * parent_pid - the parent side of the test - * read the value determined by the child - * compare and report results - ***************************************************************/ -void parent_pid() -{ - - int fildes; - char tmp_line[LINE_SZ]; - pid_t child_id; - - if ((fildes = open(FILENAME,O_RDWR)) == -1) { - tst_brkm(TBROK, cleanup, - "parent open failed. errno: %d (%s)\n", - errno, strerror(errno)); - } - else { - if (read(fildes,tmp_line,LINE_SZ) == 0) { - tst_brkm(TBROK,cleanup, "fork(): parent failed to read PID from file errno: %d (%s)", - errno, strerror(errno)); - } - else { - child_id = atoi(tmp_line); - if (TEST_RETURN != child_id) { - tst_resm(TFAIL,"child reported a pid of %d. parent received %d from fork()", - child_id,TEST_RETURN); - } else { - tst_resm(TPASS,"child pid and fork() return agree: %d",child_id); - } - } - close(fildes); - } -} - -/*************************************************************** - * main() - performs tests - * - ***************************************************************/ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int fails; - int kid_status, wait_status; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - fails = 0; - - /* - * Call fork(2) - */ - TEST(fork()); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - if ( STD_FUNCTIONAL_TEST ) { - tst_resm(TFAIL, "fork() Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - tst_resm(TBROK,"unable to continue"); - } - } - if (TEST_RETURN == 0) { - /* child */ - if ( STD_FUNCTIONAL_TEST ) { - child_pid(); - } - exit(KIDEXIT); - } else { - /* parent */ - if ( STD_FUNCTIONAL_TEST ) { - tst_resm(TPASS, "fork() returned %d", TEST_RETURN); - } - /* wait for the child to complete */ - wait_status = wait(&kid_status); - if ( STD_FUNCTIONAL_TEST ) { - if (wait_status == TEST_RETURN) { - if (kid_status != KIDEXIT << 8) { - tst_resm(TBROK, - "incorrect child status returned on wait(): %d", - kid_status); - fails++; - } - } - else { - tst_resm(TBROK, - "wait() for child status failed with %d errno: %d : %s", - wait_status,errno,strerror(errno)); - fails++; - } - if (fails == 0 ) { - /* verification tests */ - parent_pid(); - } - } /* STD_FUNCTIONAL_TEST */ - } /* TEST_RETURN */ - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void - setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void - cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_rmdir(); - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fork02.c b/winsup/testsuite/winsup.api/ltp/fork02.c deleted file mode 100644 index eaf3b6404..000000000 --- a/winsup/testsuite/winsup.api/ltp/fork02.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * fork02.c - * - * DESCRIPTION - * Test correct operation of fork: - * pid == 0 in child; - * pid > 0 in parent from wait; - * - * ALGORITHM - * Fork one process, check for pid == 0 in child. - * Check for pid > 0 in parent after wait. - * - * USAGE - * fork02 - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(void); -void cleanup(void); - -char *TCID = "fork02"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -main(int ac, char **av) -{ - int pid1, pid2, status; - - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* - * parse standard options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - /* - * perform global setup for the test - */ - setup(); - - /* - * check looping state if -i option is given - */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* - * reset Tst_count in case we are looping. - */ - Tst_count = 0; - - if ((pid1 = fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork() failed"); - } - - if (pid1 == 0) { - tst_resm(TINFO, "Inside child"); - _exit(0); - } else { - tst_resm(TINFO, "Inside parent"); - pid2 = wait(&status); - tst_resm(TINFO, "exit status of wait %d", status); - - if (pid1 == pid2) { - tst_resm(TPASS, "test 1 PASSED"); - } else { - tst_resm(TFAIL, "test 1 FAILED"); - } - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - /* - * capture signals - */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* - * Pause if that option was specified - */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/fork03.c b/winsup/testsuite/winsup.api/ltp/fork03.c deleted file mode 100644 index cda913273..000000000 --- a/winsup/testsuite/winsup.api/ltp/fork03.c +++ /dev/null @@ -1,164 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * fork03.c - * - * DESCRIPTION - * Check that child can use a large text space and do a large - * number of operations. - * - * ALGORITHM - * Fork one process, check for pid == 0 in child. - * Check for pid > 0 in parent after wait. - * - * USAGE - * fork03 - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include "test.h" -#include "usctest.h" - -void setup(void); -void cleanup(void); - -char *TCID = "fork03"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -main(int ac, char **av) -{ - float fl1, fl2; - int i; - int pid1, pid2, status; - - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* - * parse standard options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - /* - * perform global setup for the test - */ - setup(); - - /* - * check looping state if -i option is given - */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* - * reset Tst_count in case we are looping. - */ - Tst_count = 0; - - if ((pid1 = fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork() failed"); - } - - if (pid1 == 0) { /* child */ - /* child uses some cpu cycles */ - for (i = 1; i < 32767; i++) { - fl1 = 0.000001; - fl1 = fl2 = 0.000001; - fl1 = fl1 * 10.0; - fl2 = fl1 / 1.232323; - fl1 = fl2 - fl2; - fl1 = fl2; - } - - /* Pid must always be zero in child */ - - if (pid1 != 0) { - exit(1); - } else { - exit(0); - } - } else { /* parent */ - tst_resm(TINFO, "process id in parent of child from " - "fork : %d", pid1); - pid2 = wait(&status); /* wait for child */ - - if (pid1 != pid2) { - tst_resm(TFAIL, "pids don't match : %d vs %d", - pid1, pid2); - continue; - } - - if ((status >> 8) != 0) { - tst_resm(TFAIL, "child exited with failure"); - continue; - } - - tst_resm(TPASS, "test 1 PASSED"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - /* - * capture signals - */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* - * Pause if that option was specified - */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/fork04.c b/winsup/testsuite/winsup.api/ltp/fork04.c deleted file mode 100644 index 3725d9f0f..000000000 --- a/winsup/testsuite/winsup.api/ltp/fork04.c +++ /dev/null @@ -1,405 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fork04 - * - * TEST TITLE : Child inheritance of Environment Variables after fork() - * - * PARENT DOCUMENT : frktds01 - * - * TEST CASE TOTAL : 3 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Kathy Olmsted - * - * CO-PILOT : Steve Shaw - * - * DATE STARTED : 06/17/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * Test these environment variables correctly inherited by child: - * 1. TERM - * 2. NoTSetzWq - * 3. TESTPROG - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * DETAILED DESCRIPTION - * - * Setup: - * Setup signal handling. - * Make and change to a temporary directory. - * Pause for SIGUSR1 if option specified. - * Add TESTPROG variable to the environment - * - * Test: - * Loop if the proper options are given. - * fork() - * Check return code, if system call failed (return=-1) - * Log the errno - * CHILD: - * open a temp file - * Determine environment values and write to file - * close file containing test values. - * exit. - * PARENT: - * Wait for child to exit. - * Verify exit status - * Open file containing test values. - * For each test case: - * Read the value from the file. - * Determine and report PASS/FAIL result. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Remove the temporary directory and exit. - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ -#include -#include -#include -#include -#include -#include -#include -#include /*Includes signal information. */ -#include -#include "test.h" -#include "usctest.h" - -char *TCID="fork04"; /* Test program identifier. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - - - -#define KIDEXIT 42 /* Known value for child exit status */ -#define MAX_LINE_LENGTH 256 -#define OUTPUT_FILE "env.out" -#define ENV_NOT_SET "getenv() does not find variable set" - -/* list of environment variables to test */ -char *environ_list[] = {"TERM","NoTSetzWq","TESTPROG"}; -#define NUMBER_OF_ENVIRON sizeof(environ_list)/sizeof(char *) -int TST_TOTAL=NUMBER_OF_ENVIRON; /* Total number of test cases. */ - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove the temporary directory and exit with - return code appropriate for results */ - tst_rmdir(); - tst_exit(); - -} /* End cleanup() */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make and change to a temporary directory */ - tst_tmpdir(); - - /* add a variable to the environment */ - putenv("TESTPROG=FRKTCS04"); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * child_environment - the child side of the environment tests - * determine values for the variables and write to a file - ***************************************************************/ -void child_environment() -{ - - int fildes; - int index; - char msg[MAX_LINE_LENGTH]; - char *var; - - fildes = creat(OUTPUT_FILE,0700); - - - for (index=0;index: - * - ***********************************************************************/ -int -cmp_env_strings(char *pstring, char *cstring) -{ - char *penv, *cenv, *pvalue, *cvalue; - - /* - * Break pstring into env and value - */ - penv=pstring; - if ( (pvalue=strchr(pstring, ':')) == NULL ) { - tst_resm(TBROK, - "internal error - parent's env string not in correct format:'%s'", - pstring); - return -1; - } else { - *pvalue='\0'; - pvalue++; - if ( *pvalue == '\0' ) { - tst_resm(TBROK, "internal error - missing parent's env value"); - return -1; - } - } - - /* - * Break cstring into env and value - */ - cenv=cstring; - if ( (cvalue=strchr(cstring, ':')) == NULL ) { - tst_resm(TBROK, - "internal error - parent's env string not in correct format:'%s'", - cstring); - return -1; - } else { - *cvalue='\0'; - cvalue++; - if ( *cvalue == '\0' ) { - tst_resm(TBROK, "internal error - missing child's env value"); - return -1; - } - } - - if ( strcmp(penv, cenv) != 0 ) { - tst_resm(TBROK, "internal error - parent(%s) != child (%s) env", - penv, cenv); - return -1; - } - - if ( strcmp(pvalue, cvalue) != 0 ) { - tst_resm(TFAIL, "Env var %s changed after fork(), parent's %s, child's %s", - penv, pvalue, cvalue); - } else { - tst_resm(TPASS, "Env var %s unchanged after fork(): %s", - penv, cvalue); - } - return 0; - -} - -/*************************************************************** - * parent_environment - the parent side of the environment tests - * determine values for the variables - * read the values determined by the child - * compare values - ***************************************************************/ -void parent_environment() -{ - - int fildes; - char tmp_line[MAX_LINE_LENGTH]; - char parent_value[MAX_LINE_LENGTH]; - int index; - int ret; - char *var; - - if ((fildes = open(OUTPUT_FILE,O_RDWR)) == -1) { - tst_brkm(TBROK, cleanup, - "fork() test. Parent open of temporary file failed. errno %d (%s)\n", - errno, strerror(errno)); - } - for (index=0;index -#include "test.h" -#include "usctest.h" - -char *TCID = "fork06"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -#define NUMFORKS 1000 - -main(int ac, char **av) -{ - int i, pid, status, childpid, succeed, fail; - - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* - * parse standard options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - /* - * perform global setup for the test - */ - setup(); - - /* - * check looping state if -i option is given - */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* - * reset Tst_count in case we are looping. - */ - Tst_count = 0; - - succeed = 0; - fail = 0; - - for (i = 0; i < NUMFORKS; i++) { - if ((pid = fork()) == -1) { - fail++; - continue; - } - - if (pid == 0) { /* child */ - _exit(0); - } - - /* parent */ - childpid = wait(&status); - if (pid != childpid) { - tst_resm(TFAIL, "pid from wait %d", childpid); - } - succeed++; - } - - tst_resm(TINFO, "tries %d", i); - tst_resm(TINFO, "successes %d", succeed); - tst_resm(TINFO, "failures %d", fail); - - if ((wait(&status)) == -1) { - tst_resm(TINFO, "There were no children to wait for"); - } else { - tst_resm(TINFO, "There were children left"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - /* - * capture signals - */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* - * Pause if that option was specified - */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/fork07.c b/winsup/testsuite/winsup.api/ltp/fork07.c deleted file mode 100644 index d8487c13a..000000000 --- a/winsup/testsuite/winsup.api/ltp/fork07.c +++ /dev/null @@ -1,198 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * fork07.c - * - * DESCRIPTION - * Check that all children inherit parent's file descriptor - * - * ALGORITHM - * Parent opens a file, writes to it; forks processes until - * -1 is returned. Each child attempts to read the file then returns. - * - * USAGE - * fork07 - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include "test.h" -#include "usctest.h" - -char *TCID = "fork07"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -char pbuf[10]; -char fnamebuf[40]; - -main(int ac, char **av) -{ - int status, count, forks, pid1; - int ch_r_stat; - FILE *rea, *writ; - - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* - * parse standard options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - /* - * perform global setup for the test - */ - setup(); - - /* - * check looping state if -i option is given - */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* - * reset Tst_count in case we are looping. - */ - Tst_count = 0; - - if ((writ = fopen(fnamebuf, "w")) == NULL) - tst_resm(TFAIL, "failed to fopen file for write"); - if ((rea = fopen(fnamebuf, "r")) == NULL) - tst_resm(TFAIL, "failed to fopen file for read"); - - fprintf(writ,"abcdefghijklmnopqrstuv") ; - fflush(writ); - sleep(1); - - if ((getc(rea)) != 'a') - tst_resm(TFAIL, "getc from read side was confused"); - - forks = 0; - -forkone: - ++forks; - pid1 = -1; - if ( forks >= 1000 || (pid1 = fork()) != 0) { /* parent */ - if (pid1 > 0) { - goto forkone; - } else if (pid1 < 0) { - tst_resm(TINFO, "last child forked"); - } - } else { /* child */ - ch_r_stat = getc(rea); -#ifdef DEBUG - tst_resm(TINFO, "Child got char: %c", ch_r_stat); - tst_resm(TINFO, "integer value of getc in child " - "expected %d got %d", 'b', ch_r_stat); -#endif - if (ch_r_stat != EOF) { /* for error or EOF */ - tst_resm(TPASS, "test passed in child no %d", - forks); - exit(0); - } else { - tst_resm(TFAIL, "Test failed in child no. %d", - forks); - exit(-1); - } - } - - /* parent */ - --forks; - for (count = 0; count <= forks; count++) { - wait(&status); -#ifdef DEBUG - tst_resm(TINFO, " exit status of wait " - " expected 0 got %d", status); -#endif - if (status == 0) { - tst_resm(TPASS, "parent test passed"); - } else { - tst_resm(TFAIL, "parent test failed"); - } - } - tst_resm(TINFO, "Number of processes forked is %d", forks); - } - fclose (writ); - fclose (rea); - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - /* - * capture signals - */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - umask(0); - - /* - * Pause if that option was specified - */ - TEST_PAUSE; - - /* - * make a temp directory and cd to it - */ - tst_tmpdir(); - - strcpy(fnamebuf, "fork07."); - sprintf(pbuf, "%d", getpid()); - strcat(fnamebuf, pbuf); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* - * remove tmp dir and all files in it - */ - unlink(fnamebuf); - tst_rmdir(); - - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/fork09.c b/winsup/testsuite/winsup.api/ltp/fork09.c deleted file mode 100644 index 71a3f1d0b..000000000 --- a/winsup/testsuite/winsup.api/ltp/fork09.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * fork01.c - * - * DESCRIPTION - * Check that child has access to a full set of files. - * - * ALGORITHM - * Parent opens a maximum number of files - * Child closes one and attempts to open another, it should be - * available - * - * USAGE - * fork01 - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include /* for OPEN_MAX */ -#include "test.h" -#include "usctest.h" - -char *TCID = "fork01"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -char filname[40], childfile[40]; -int first; -FILE **fildeses; /* file streams */ -int mypid, nfiles; - -main(int ac, char **av) -{ - int pid, status, dtable, nf; - - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* - * parse standard options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - /* - * perform global setup for the test - */ - setup(); - - fildeses = (FILE**)malloc((OPEN_MAX + 10) * sizeof(FILE *)); - if (fildeses == NULL) { - tst_brkm(TBROK, cleanup, "malloc failed"); - /*NOTREACHED*/ - } - - /* - * check looping state if -i option is given - */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* - * reset Tst_count in case we are looping. - */ - Tst_count = 0; - - mypid = getpid(); - - tst_resm(TINFO, "OPEN_MAX is %d", OPEN_MAX); - - /* establish first free file */ - sprintf(filname, "fork01.%d", mypid); - if ((first = creat(filname, 0660)) == -1) { - tst_brkm(TBROK, cleanup, "Cannot open first file %s, " - "errno = %d", filname, errno); - /*NOTREACHED*/ - } - close(first); - - tst_resm(TINFO, "first file descriptor is %d ", first); - - if (unlink(filname) == -1) { - tst_brkm(TBROK, cleanup, "Cannot unlink file %s, " - "errno = %d", filname, errno); - /*NOTREACHED*/ - } - - /* - * now open all the files for the test - */ - for (nfiles = first; nfiles < OPEN_MAX; nfiles++) { - sprintf(filname, "file%d.%d", nfiles, mypid); - if ((fildeses[nfiles] = fopen(filname, "a")) == NULL) { - tst_brkm(TBROK, cleanup, "Parent: cannot open " - "file %d %s errno = %d", nfiles, - filname, errno); - /*NOTREACHED*/ - } -#ifdef DEBUG - tst_resm(TINFO, "filname: %s", filname); -#endif - } - - tst_resm(TINFO, "Parent reporting %d files open", nfiles - 1); - - if ((pid = fork()) == -1) { - tst_brkm(TBROK, cleanup, "Fork failed"); - /*NOTREACHED*/ - } - - if (pid == 0) { /* child */ - nfiles--; - if (fclose(fildeses[nfiles]) == -1) { - tst_resm(TINFO, "Child could not close file " - "#%d, errno = %d", nfiles, errno); - exit(1); - /*NOTREACHED*/ - } else { - sprintf(childfile, "cfile.%d", getpid()); - if ((fildeses[nfiles] = - fopen(childfile, "a")) == NULL) { - tst_resm(TINFO, "Child could not open " - "file %s, errno = %d", - childfile, errno); - exit(1); - /*NOTREACHED*/ - } else { - tst_resm(TINFO, "Child opened new " - "file #%d", nfiles); - unlink(childfile); - exit(0); - } - } - } else { /* parent */ - wait(&status); - if (status >> 8 != 0) { - tst_resm(TFAIL, "test 1 FAILED"); - } else { - tst_resm(TPASS, "test 1 PASSED"); - } - } - - /* clean up things in case we are looping */ - for (nf = first; nf < nfiles; nf++) { - fclose(fildeses[nf]); - sprintf(filname, "file%d.%d", nf, mypid); - unlink(filname); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - /* - * capture signals - */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - umask(0); - - /* - * Pause if that option was specified - */ - TEST_PAUSE; - - /* - * make a temp directory and cd to it - */ - tst_tmpdir(); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or at premature exit - */ -void -cleanup() -{ - int nf; - - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* - * remove tmp dir and all files in it - */ - tst_rmdir(); - - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/fork10.c b/winsup/testsuite/winsup.api/ltp/fork10.c deleted file mode 100644 index 09de7c06f..000000000 --- a/winsup/testsuite/winsup.api/ltp/fork10.c +++ /dev/null @@ -1,215 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * fork04.c - * - * DESCRIPTION - * Check inheritance of file descriptor by children, they - * should all be refering to the same file. - * - * ALGORITHM - * Child reads several chars and exits. - * Parent forks another child, have the child and parent attempt to use - * that location - * - * USAGE - * fork04 - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include "test.h" -#include "usctest.h" - -char *TCID = "fork04"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -char pidbuf[10]; -char fnamebuf[40]; - -main(int ac, char **av) -{ - int status, pid, fildes; - char parchar[2]; - char chilchar[2]; - long lseek(); - - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* - * parse standard options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - /* - * perform global setup for the test - */ - setup(); - - /* - * check looping state if -i option is given - */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* - * reset Tst_count in case we are looping. - */ - Tst_count = 0; - - if ((fildes = creat(fnamebuf, 0600)) < 0) { - tst_brkm(TBROK, cleanup, "Parent: cannot open %s for " - "write, errno = %d", fnamebuf, errno); - /*NOTREACHED*/ - } - write(fildes, "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n", 27); - close(fildes); - - if ((fildes = open(fnamebuf, 0)) == -1) { - tst_brkm(TBROK, cleanup, "Parent: cannot open %s for " - "reading", fnamebuf); - /*NOTREACHED*/ - } - - if ((pid = fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork() #1 failed"); - /*NOTREACHED*/ - } - - if (pid == 0) { /* child */ - tst_resm(TINFO, "fork child A"); - if (lseek(fildes, 10L, 0) == -1L) { - tst_resm(TFAIL, "bad lseek by child"); - exit(1); - } - exit(0); - } else { /* parent */ - wait(&status); - - /* parent starts second child */ - if ((pid = fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork() #2 failed"); - /*NOTREACHED*/ - } - - if (pid == 0) { /* child */ - if (read(fildes, chilchar, 1) <= 0) { - tst_resm(TFAIL, "Child can't read " - "file"); - exit(1); - } else { - if (chilchar[0] != 'K') { - chilchar[1] = '\n'; - exit(1); - } else { - exit(0); - } - } - } else { /* parent */ - (void)wait(&status); - if (status >> 8 != 0) { - tst_resm(TFAIL, "Bad return from " - "second child"); - continue; - } - /* parent reads */ - if (read(fildes, parchar, 1) <= 0) { - tst_resm(TFAIL, "Parent cannot read " - "file"); - continue; - } else { - write(fildes, parchar, 1); - if (parchar[0] != 'L') { - parchar[1] = '\n'; - tst_resm(TFAIL, "Test failed"); - continue; - } - } - } - } - tst_resm(TPASS, "test 1 PASSED"); - close (fildes); - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - /* - * capture signals - */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - umask(0); - - /* - * Pause if that option was specified - */ - TEST_PAUSE; - - /* - * make a temp directory and cd to it - */ - tst_tmpdir(); - - strcpy(fnamebuf, "fork04."); - sprintf(pidbuf, "%d", getpid()); - strcat(fnamebuf, pidbuf); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* - * remove tmp dir and all files in it - */ - tst_rmdir(); - - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/fork11.c b/winsup/testsuite/winsup.api/ltp/fork11.c deleted file mode 100644 index 1fc200dd1..000000000 --- a/winsup/testsuite/winsup.api/ltp/fork11.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * fork05.c - * - * DESCRIPTION - * Test that parent gets a pid from each child when doing wait - * - * ALGORITHM - * Fork NUMFORKS children that do nothing. - * - * USAGE - * fork05 - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include "test.h" -#include "usctest.h" - -char *TCID = "fork05"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -#define NUMFORKS 100 - -main(int ac, char **av) -{ - int i, pid, cpid, status; - - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* - * parse standard options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - /* - * perform global setup for the test - */ - setup(); - - /* - * check looping state if -i option is given - */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* - * reset Tst_count in case we are looping. - */ - Tst_count = 0; - - for (i=0; i 0) { /* parent */ - cpid = wait(&status); - if (cpid == pid) { - tst_resm(TPASS, "fork #%d passed", i+1); - } else { - tst_resm(TFAIL, "fork #%d failed", i+1); - } - } else { - tst_resm(TFAIL, "fork #%d failed", i+1); - break; - } - } - tst_resm(TINFO, "Number of processes forked = %d", i); - tst_resm(TINFO, "Exit test 1"); - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - /* - * capture signals - */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* - * Pause if that option was specified - */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/fpathconf01.c b/winsup/testsuite/winsup.api/ltp/fpathconf01.c deleted file mode 100644 index bc4f2b2ad..000000000 --- a/winsup/testsuite/winsup.api/ltp/fpathconf01.c +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fpathconf01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fpathconf(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 7 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fpathconf(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fpathconf(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fpathconf(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fpathconf01"; /* Test program identifier. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -#define FILENAME "fpafile01" - -int exp_enos[]={0, 0}; - -int i; - -struct pathconf_args -{ - char *define_tag; - int value; - int defined; /* Some of these are undefined on regular files. - * Cancer does a slightly better job with these already, - * so this is all I'll do to this test. 11/19/98 roehrich - */ -} args[] = { - {"_PC_MAX_CANON", _PC_MAX_CANON, 0}, - {"_PC_MAX_INPUT", _PC_MAX_INPUT, 0}, - {"_PC_VDISABLE", _PC_VDISABLE, 0}, - {"_PC_LINK_MAX", _PC_LINK_MAX, 1}, - {"_PC_NAME_MAX", _PC_NAME_MAX, 1}, - {"_PC_PATH_MAX", _PC_PATH_MAX, 1}, - {"_PC_PIPE_BUF", _PC_PIPE_BUF, 0} -}; - -int TST_TOTAL=((sizeof(args)/sizeof(args[0]))); -int fd; /* temp file for fpathconf */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for (i=0; i -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fstat01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; -struct stat statter; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call fstat(2) - */ - TEST(fstat(fd, &statter)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "fstat(%s, &statter) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "fstat(%s, &statter) returned %d", fname, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fstat02.c b/winsup/testsuite/winsup.api/ltp/fstat02.c deleted file mode 100644 index f15e48e78..000000000 --- a/winsup/testsuite/winsup.api/ltp/fstat02.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: fstat02 - * - * Test Description: - * Verify that, fstat(2) succeeds to get the status of a file and fills - * the stat structure elements though file pointed to by file descriptor - * not opened for reading. - * - * Expected Result: - * fstat() should return value 0 on success and the stat structure elements - * should be filled with specified 'file' information. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * fstat02 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * This test should be run by 'non-super-user' only. - * - */ -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define FILE_MODE 0644 -#define TESTFILE "testfile" -#define FILE_SIZE 1024 -#define BUF_SIZE 256 -#define MASK 0777 - -char *TCID="fstat02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -uid_t User_id; /* user id/group id of test process */ -gid_t Group_id; -int fildes; /* File descriptor of testfile */ - -void setup(); /* Setup function for the test */ -void cleanup(); /* Cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat structure buffer */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - /* - * Call fstat(2) to get the status of - * specified 'file' pointed to by 'fd' - * into stat structure. - */ - TEST(fstat(fildes, &stat_buf)); - - /* check return code of fstat(2) */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, - "fstat on %s Failed, errno=%d : %s", - TESTFILE, TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Verify the data returned by fstat(2) - * aganist the expected data. - */ - if ((stat_buf.st_uid != User_id) || - (stat_buf.st_gid != Group_id) || - (stat_buf.st_size != FILE_SIZE) || - ((stat_buf.st_mode & MASK) != FILE_MODE)) { - tst_resm(TFAIL, "Functionality of fstat(2) on " - "'%s' Failed", TESTFILE); - } else { - tst_resm(TPASS, "Functionality of fstat(2) on " - "'%s' Succcessful", TESTFILE); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * void - * setup() - Performs setup function for the test. - * Creat a temporary directory and chdir to it. - * Creat a temporary file and write some known data into it. - * Get the effective uid/gid of test process. - */ -void -setup() -{ - int i; - char tst_buff[BUF_SIZE]; - int wbytes; - int write_len = 0; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Check that the test process id is not super/root */ - if (geteuid() == 0) { - tst_brkm(TBROK, NULL, "Must be non-super/root for this test!"); - tst_exit(); - } - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - if ((fildes = open(TESTFILE, O_WRONLY|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - } - - /* Fill the test buffer with the known data */ - for (i = 0; i < BUF_SIZE; i++) { - tst_buff[i] = 'a'; - } - - /* Write to the file 1k data from the buffer */ - while (write_len < FILE_SIZE) { - if ((wbytes = write(fildes, tst_buff, sizeof(tst_buff))) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } else { - write_len += wbytes; - } - } - - /* Get the uid/gid of the process */ - User_id = getuid(); - Group_id = getgid(); - -} /* End setup() */ - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Close the test file and remove the test file and temporary directory. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Close the test file */ - if (close(fildes) == -1) { - tst_brkm(TFAIL, NULL, "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fstat03.c b/winsup/testsuite/winsup.api/ltp/fstat03.c deleted file mode 100644 index 1f63cf106..000000000 --- a/winsup/testsuite/winsup.api/ltp/fstat03.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Test Name: fstat03 - * - * Test Description: - * Verify that, fstat(2) returns -1 and sets errno to EBADF if the file - * pointed to by file descriptor is not valid. - * - * Expected Result: - * fstat() should fail with return value -1 and set expected errno. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * if errno set == expected errno - * Issue sys call fails with expected return value and errno. - * Otherwise, - * Issue sys call fails with unexpected errno. - * Otherwise, - * Issue sys call returns unexpected value. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory(s)/file(s) created. - * - * Usage: - * fstat03 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * This test should be executed by 'non-super-user' only. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define TEST_FILE "testfile" - -char *TCID="fstat03"; /* Test program identifier. */ -int TST_TOTAL = 1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={EBADF, 0}; -int fildes; /* testfile descriptor */ - -void setup(); /* Main setup function for the tests */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat structure buffer */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* - * Invoke setup function to create a testfile under temporary - * directory. - */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - /* - * Call fstat(2) to get the status information - * of a closed testfile pointed to by 'fd'. - * verify that fstat fails with -1 return value and - * sets appropriate errno. - */ - TEST(fstat(fildes, &stat_buf)); - - /* Check return code from fstat(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - if (TEST_ERRNO == EBADF) { - tst_resm(TPASS, "fstat() fails with " - "expected error EBADF"); - } else { - tst_resm(TFAIL, "fstat() fails with " - "wrong errno:%d", TEST_ERRNO); - } - } else { - tst_resm(TFAIL, "fstat() returned %d, " - "expected -1, error EBADF"); - } - } /* End for TEST_LOOPING */ - - /* - * Invoke cleanup() to delete the test directory/file(s) created - * in the setup(). - */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * void - * setup(void) - performs all ONE TIME setup for this test. - * Exit the test program on receipt of unexpected signals. - * Create a temporary directory and change directory to it. - * Create a testfile under temporary directory. - * Close the testfile. - */ -void -setup() -{ - /* Capture unexpected signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Make a temp dir and cd to it */ - tst_tmpdir(); - - /* Create a testfile under temporary directory */ - if ((fildes = open(TEST_FILE, O_RDWR|O_CREAT, 0666)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, 0666) failed, errno=%d : %s", - TEST_FILE, errno, strerror(errno)); - } - - if (close(fildes) == -1) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s", - TEST_FILE, errno, strerror(errno)); - } -} /* End of setup */ - -/* - * void - * cleanup() - Performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Print test timing stats and errno log if test executed with options. - * Close the testfile if still opened. - * Remove temporary directory and sub-directories/files under it - * created during setup(). - * Exit the test program with normal exit code. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove files and temporary directory created */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fstat04.c b/winsup/testsuite/winsup.api/ltp/fstat04.c deleted file mode 100644 index 0287fff36..000000000 --- a/winsup/testsuite/winsup.api/ltp/fstat04.c +++ /dev/null @@ -1,245 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: fstat01 - * - * Test Description: - * Verify that, fstat(2) succeeds to get the status of a file pointed by - * file descriptor and fills the stat structure elements. - * - * Expected Result: - * fstat() should return value 0 on success and the stat structure should - * be filled with specified 'file' information. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * fstat01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * This test should be run by 'non-super-user' only. - * - */ -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define FILE_MODE 0644 -#define TESTFILE "testfile" -#define FILE_SIZE 1024 -#define BUF_SIZE 256 -#define MASK 0777 - -char *TCID="fstat01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -uid_t User_id; /* user id/group id of test process */ -gid_t Group_id; -int fildes; /* File descriptor of testfile */ - -void setup(); /* Setup function for the test */ -void cleanup(); /* Cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat structure buffer */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - /* - * Call fstat(2) to get the status of - * specified 'file' pointed to 'fd' - * into stat structure. - */ - TEST(fstat(fildes, &stat_buf)); - - /* check return code of fstat(2) */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, - "fstat on %s Failed, errno=%d : %s", - TESTFILE, TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Verify the data returned by fstat(2) - * aganist the expected data. - */ - if ((stat_buf.st_uid != User_id) || - (stat_buf.st_gid != Group_id) || - (stat_buf.st_size != FILE_SIZE) || - ((stat_buf.st_mode & MASK) != FILE_MODE)) { - tst_resm(TFAIL, "Functionality of fstat(2) on " - "'%s' Failed", TESTFILE); - } else { - tst_resm(TPASS, "Functionality of fstat(2) on " - "'%s' Succcessful", TESTFILE); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * void - * setup() - Performs setup function for the test. - * Creat a temporary directory and chdir to it. - * Creat a test file and write some data into it. - * Get the user/group id info. of test process. - */ -void -setup() -{ - int i; /* counter */ - char tst_buff[BUF_SIZE]; /* data buffer */ - int wbytes; /* no. of bytes written */ - int write_len = 0; /* data length */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Check that the test process id is not super/root */ - if (geteuid() == 0) { - tst_brkm(TBROK, NULL, "Must be non-super/root for this test!"); - tst_exit(); - } - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - if ((fildes = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - } - - /* Fill the test buffer with the known data */ - for (i = 0; i < BUF_SIZE; i++) { - tst_buff[i] = 'a'; - } - - /* Write to the file 1k data from the buffer */ - while (write_len < FILE_SIZE) { - if ((wbytes = write(fildes, tst_buff, sizeof(tst_buff))) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } else { - write_len += wbytes; - } - } - - /* Get the uid/gid of the process */ - User_id = getuid(); - Group_id = getgid(); - -} /* End setup() */ - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Close the testfile opened for reading/writing. - * Delete the testfile and temporary directory. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Close the test file */ - if (close(fildes) == -1) { - tst_brkm(TFAIL, NULL, "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/fsync01.c b/winsup/testsuite/winsup.api/ltp/fsync01.c deleted file mode 100644 index 57ddd5f98..000000000 --- a/winsup/testsuite/winsup.api/ltp/fsync01.c +++ /dev/null @@ -1,248 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : fsync01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for fsync(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) fsync(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the fsync(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * fsync(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="fsync01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; -char *buf = "davef"; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* write sone data to get fsync'd out */ - if (write(fd, &buf, strlen(buf)) == -1) { - tst_brkm(TBROK, cleanup, - "write(%s, &buf, strlen(buf)) Failed, errno=%d : %s", - fname, TEST_ERRNO, strerror(TEST_ERRNO)); - } - /* - * Call fsync(2) - */ - TEST(fsync(fd)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "fsync(%s) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "fsync(%s) returned %d", fname, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the file we have open */ - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/ftruncate01.c b/winsup/testsuite/winsup.api/ltp/ftruncate01.c deleted file mode 100644 index 2d3d797ec..000000000 --- a/winsup/testsuite/winsup.api/ltp/ftruncate01.c +++ /dev/null @@ -1,244 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: ftruncate01 - * - * Test Description: - * Verify that, ftruncate(2) succeeds to truncate a file to a specified - * length if the file indicated by file descriptor opened for writing. - * - * Expected Result: - * ftruncate(2) should return a value 0 and the length of the file after - * truncation should be equal to the length it is truncated to. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * ftruncate01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * This test should be run by 'non-super-user' only. - * - */ - -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TESTFILE "testfile" /* file under test */ -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define BUF_SIZE 256 /* buffer size */ -#define FILE_SIZE 1024 /* test file size */ -#define TRUNC_LEN 256 /* truncation length */ - -char *TCID="ftruncate01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test conditions */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int fildes; /* file descriptor for test file */ - -void setup(); /* setup function for the test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat(2) struct contents */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - off_t file_length; /* test file length */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - /* - * Call ftruncate(2) to truncate a test file to a - * specified length. - */ - TEST(ftruncate(fildes, TRUNC_LEN)); - - /* check return code of ftruncate(2) */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, - "ftruncate() of %s Failed, errno=%d : %s", - TESTFILE, TEST_ERRNO, - strerror(TEST_ERRNO)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Get the testfile information using - * fstat(2). - */ - if (fstat(fildes, &stat_buf) < 0) { - tst_brkm(TFAIL, cleanup, - "stat(2) of %s failed, error:%d", - TESTFILE, errno); - } - stat_buf.st_mode &= ~S_IFREG; - file_length = stat_buf.st_size; - - /* - * Check for expected size of testfile after - * truncate(2) on it. - */ - if (file_length != TRUNC_LEN) { - tst_resm(TFAIL, "%s: Incorrect file size %d, " - "Expected %d", TESTFILE, file_length, - TRUNC_LEN); - } else { - tst_resm(TPASS, "Functionality of ftruncate() " - "on %s successful", TESTFILE); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and write some - * data into it. - */ -void -setup() -{ - int i; /* counter for for loop() */ - int c, c_total = 0; /* bytes to be written to file */ - char tst_buff[BUF_SIZE]; /* buffer to hold data */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Fill the test buffer with the known data */ - for (i = 0; i < BUF_SIZE; i++) { - tst_buff[i] = 'a'; - } - - /* open a file for reading/writing */ - if ((fildes = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %o) Failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - } - - /* Write to the file 1k data from the buffer */ - while (c_total < FILE_SIZE) { - if ((c = write(fildes, tst_buff, sizeof(tst_buff))) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } else { - c_total += c; - } - } -} /* End setup() */ - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Close the temporary file. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - */ - TEST_CLEANUP; - - /* Close the testfile after writing data into it */ - if (close(fildes) == -1) { - tst_brkm(TFAIL, NULL, - "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/ftruncate02.c b/winsup/testsuite/winsup.api/ltp/ftruncate02.c deleted file mode 100644 index 8044c1de5..000000000 --- a/winsup/testsuite/winsup.api/ltp/ftruncate02.c +++ /dev/null @@ -1,314 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: ftruncate02 - * - * Test Description: - * Verify that, ftruncate(2) succeeds to truncate a file to a certain length, - * but the attempt to read past the truncated length will fail. - * - * Expected Result: - * ftruncate(2) should return a value 0 and the attempt to read past the - * truncated length will fail. In case where the file before truncation was - * shorter, the bytes between the old and new should be all zeroes. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * ftruncate02 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * This test should be run by 'non-super-user' only. - * - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TESTFILE "testfile" /* file under test */ -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define BUF_SIZE 256 /* buffer size */ -#define FILE_SIZE 1024 /* test file size */ -#define TRUNC_LEN1 256 /* truncation length */ -#define TRUNC_LEN2 512 /* truncation length */ - -char *TCID="ftruncate02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test conditions */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int fd; /* file descriptor of testfile */ -char tst_buff[BUF_SIZE]; /* buffer to hold testfile contents */ - -void setup(); /* setup function for the test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat(2) struct contents */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - off_t file_length2; /* test file length */ - off_t file_length1; /* test file length */ - int rbytes, i; /* bytes read from testfile */ - int read_len = 0; /* total no. of bytes read from testfile */ - int err_flag = 0; /* error indicator flag */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - /* - * Call ftruncate(2) to truncate a test file to a - * specified length (TRUNC_LEN1). - */ - TEST(ftruncate(fd, TRUNC_LEN1)); - - /* check return code of ftruncate(2) */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "ftruncate of %s to size %d Failed, " - "errno=%d : %s", TESTFILE, TRUNC_LEN1, - TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Get the testfile information using - * fstat(2). - */ - if (fstat(fd, &stat_buf) < 0) { - tst_brkm(TFAIL, cleanup, "fstat(2) of %s failed" - " after 1st truncate, error:%d", - TESTFILE, errno); - } - stat_buf.st_mode &= ~S_IFREG; - file_length1 = stat_buf.st_size; - - /* - * Set the file pointer of testfile to the - * beginning of the file. - */ - if (lseek(fd, 0, SEEK_SET) < 0) { - tst_brkm(TFAIL, cleanup, "lseek(2) on %s failed" - " after 1st ftruncate, error:%d", - TESTFILE, errno); - } - - /* Read the testfile from the beginning. */ - while ((rbytes = read(fd, tst_buff, - sizeof(tst_buff))) > 0) { - read_len += rbytes; - } - - /* - * Execute ftruncate(2) again to truncate - * testfile to a size TRUNC_LEN2. - */ - TEST(ftruncate(fd, TRUNC_LEN2)); - - /* check return code of ftruncate(2) */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "ftruncate of %s to size %d " - "Failed, errno=%d : %s", TESTFILE, - TRUNC_LEN2, TEST_ERRNO, - strerror(TEST_ERRNO)); - continue; - } - - /* - * Get the testfile information using - * fstat(2) - */ - if (fstat(fd, &stat_buf) < 0) { - tst_brkm(TFAIL, cleanup, "fstat(2) of %s failed" - " after 2nd truncate, error:%d", - TESTFILE, errno); - } - stat_buf.st_mode &= ~S_IFREG; - file_length2 = stat_buf.st_size; - - /* - * Set the file pointer of testfile to the - * offset TRUNC_LEN1 of testfile. - */ - if (lseek(fd, TRUNC_LEN1, SEEK_SET) < 0) { - tst_brkm(TFAIL, cleanup, "lseek(2) on %s failed" - " after 2nd ftruncate, error:%d", - TESTFILE, errno); - } - - /* Read the testfile contents till EOF */ - while((rbytes = read(fd, tst_buff, - sizeof(tst_buff))) > 0) { - for (i = 0; i < rbytes; i++) { - if (tst_buff[i] != 0) { - err_flag++; - } - } - } - - /* - * Check for expected size of testfile after - * issuing ftruncate(2) on it. - */ - if ((file_length1 != TRUNC_LEN1) || - (file_length2 != TRUNC_LEN2) || - (read_len != TRUNC_LEN1) || - (err_flag != 0)) { - tst_resm(TFAIL, "Functionality of ftruncate(2) " - "on %s Failed", TESTFILE); - } else { - tst_resm(TPASS, "Functionality of ftruncate(2) " - "on %s successful", TESTFILE); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and write some - * data into it. - */ -void -setup() -{ - int i; /* counter variable */ - int wbytes; /* bytes written to testfile */ - int write_len = 0; /* total no. of bytes written to testfile */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Fill the test buffer with the known data */ - for (i = 0; i < BUF_SIZE; i++) { - tst_buff[i] = 'a'; - } - /* open a file for reading/writing */ - if ((fd = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %o) Failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - } - - /* Write to the file 1k data from the buffer */ - while (write_len < FILE_SIZE) { - if ((wbytes = write(fd, tst_buff, sizeof(tst_buff))) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } else { - write_len += wbytes; - } - } -} /* End setup() */ - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Close the testfile. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - */ - TEST_CLEANUP; - - /* Close the testfile after writing data into it */ - if (close(fd) == -1) { - tst_brkm(TFAIL, NULL, "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/ftruncate03.c b/winsup/testsuite/winsup.api/ltp/ftruncate03.c deleted file mode 100644 index 2e80558e7..000000000 --- a/winsup/testsuite/winsup.api/ltp/ftruncate03.c +++ /dev/null @@ -1,325 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: ftruncate03 - * - * Test Description: - * Verify that, - * 1) ftruncate(2) returns -1 and sets errno to EINVAL if the specified - * truncate length is less than 0. - * 2) ftruncate(2) returns -1 and sets errno to EBADF if the file descriptor - * of the specified file is not valid. - * - * Expected Result: - * ftruncate() should fail with return value -1 and set expected errno. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * if errno set == expected errno - * Issue sys call fails with expected return value and errno. - * Otherwise, - * Issue sys call fails with unexpected errno. - * Otherwise, - * Issue sys call returns unexpected value. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory(s)/file(s) created. - * - * Usage: - * ftruncate03 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * This test should be executed by 'non-super-user' only. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEST_FILE1 "test_file1" /* file under test */ -#define TEST_FILE2 "test_file2" /* file under test */ -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define BUF_SIZE 256 /* buffer size */ -#define FILE_SIZE 1024 /* test file size */ - -int no_setup(); -int setup1(); /* setup function to test chmod for EBADF */ -int setup2(); /* setup function to test chmod for EINVAL */ - -int fd1; /* File descriptor for testfile1 */ -int fd2; /* File descriptor for testfile2 */ - -struct test_case_t { /* test case struct. to hold ref. test cond's*/ - int fd; - char *desc; - int exp_errno; - int len; - int (*setupfunc)(); -} Test_cases[] = { - { 1, "Length argument is -ve", EINVAL, -1, setup1 }, - { 2, "File descriptor is not valid", EBADF, 256, setup2 }, - { 0, NULL, 0, 0, no_setup } -}; - -char *TCID="ftruncate03"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test conditions */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={EINVAL, EBADF, 0}; - -void setup(); /* Main setup function for the test */ -void cleanup(); /* Main cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char *test_desc; /* test specific error message */ - int fildes; /* File descriptor of testfile */ - off_t trunc_len; /* truncate length */ - int ind; - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* - * Perform global setup for test to call individual test specific - * setup functions. - */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - for (ind = 0; Test_cases[ind].desc != NULL; ind++) { - fildes = Test_cases[ind].fd; - test_desc = Test_cases[ind].desc; - trunc_len = Test_cases[ind].len; - - if (fildes == 1) { - fildes = fd1; - } else { - fildes = fd2; - } - - /* - * Call ftruncate(2) to test different test conditions. - * verify that it fails with return code -1 and sets - * appropriate errno. - */ - TEST(ftruncate(fildes, trunc_len)); - - /* check return code of ftruncate(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - if (TEST_ERRNO == Test_cases[ind].exp_errno) { - tst_resm(TPASS, "ftruncate() fails, %s," - " errno=%d", test_desc, - TEST_ERRNO); - } else { - tst_resm(TFAIL, "ftruncate() fails, %s," - " errno=%d, expected errno:%d", - test_desc, TEST_ERRNO, - Test_cases[ind].exp_errno); - } - } else { - tst_resm(TFAIL, "ftruncate() returned %d, " - "expected -1, errno:%d", TEST_RETURN, - Test_cases[ind].exp_errno); - } - } /* End of TEST CASE LOOPING. */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Fill the test buffer with some date used to fill test file(s). - * Call individual test specific setup functions. - */ -void -setup() -{ - int ind; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Check that the test process id is not root/super-user */ - if (geteuid() == 0) { - tst_brkm(TBROK, NULL, "Must be non-root/super for this test!"); - tst_exit(); - } - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* call individual setup functions */ - for (ind = 0; Test_cases[ind].desc != NULL; ind++) { - Test_cases[ind].setupfunc(); - } -} /* End of setup */ - -/* - * int - * setup1() - setup function for a test condition for which ftruncate(2) - * returns -1 and sets errno to EINVAL. - * Create a test file and open it for writing only. - */ -int -setup1() -{ - /* Open the testfile in write-only mode */ - if ((fd1 = open(TEST_FILE1, O_WRONLY|O_CREAT, 0644)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_WRONLY) Failed, errno=%d : %s", - TEST_FILE1, errno, strerror(errno)); - } - return 0; -} /* End setup1() */ - -/* - * int - * setup2() - setup function for a test condition for which ftruncate(2) - * returns -1 and sets errno to EBADF. - * Create a test file and open it for reading/writing, and fill the - * testfile with the contents of test buffer. - * Close the test file. - * - */ -int -setup2() -{ - int c, i, c_total = 0; - char tst_buff[BUF_SIZE]; /* buffer to hold testfile contents */ - - /* Fill the test buffer with the known data */ - for (i = 0; i < BUF_SIZE; i++) { - tst_buff[i] = 'a'; - } - - /* open a testfile for reading/writing */ - if ((fd2 = open(TEST_FILE2, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %o) Failed, errno=%d : %s", - TEST_FILE2, FILE_MODE, errno, strerror(errno)); - } - - /* Write to the file 1k data from the buffer */ - while (c_total < FILE_SIZE) { - if ((c = write(fd2, tst_buff, sizeof(tst_buff))) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TEST_FILE2, errno, strerror(errno)); - } else { - c_total += c; - } - } - - /* Close the testfile after writing data into it */ - if (close(fd2) == -1) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s", - TEST_FILE2, errno, strerror(errno)); - } - return 0; -} /* End of setup2 */ - -/* - * int - * no_setup() - This function just returns 0. - */ -int -no_setup() -{ - return 0; -} - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Close the temporary file. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - */ - TEST_CLEANUP; - - /* Close the testfile after opening it read-only in setup1 */ - if (close(fd1) == -1) { - tst_brkm(TFAIL, NULL, - "close(%s) Failed, errno=%d : %s", - TEST_FILE1, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/getegid01.c b/winsup/testsuite/winsup.api/ltp/getegid01.c deleted file mode 100644 index d2c8a5240..000000000 --- a/winsup/testsuite/winsup.api/ltp/getegid01.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : getegid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for getegid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) getegid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the getegid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * getegid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="getegid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0}; /* must be a 0 terminated list */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - ; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * Get effective group id. - */ - ; - - /* Call getegid(2) */ - TEST(getegid( )); - - /* check return code */ - if ( TEST_RETURN < 0 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "getegid - Get effective group id. failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - continue; /* next loop for MTKERNEL */ - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "getegid - Get effective group id. returned %d", TEST_RETURN); - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/geteuid01.c b/winsup/testsuite/winsup.api/ltp/geteuid01.c deleted file mode 100644 index b4840f52c..000000000 --- a/winsup/testsuite/winsup.api/ltp/geteuid01.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : geteuid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for geteuid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) geteuid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the geteuid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * geteuid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="geteuid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0}; /* must be a 0 terminated list */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - ; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * Get effective user id. - */ - ; - - /* Call geteuid(2) */ - TEST(geteuid( )); - - /* check return code */ - if ( TEST_RETURN < 0 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "geteuid - Get effective user id. failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - continue; /* next loop for MTKERNEL */ - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "geteuid - Get effective user id. returned %d", TEST_RETURN); - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/getgid01.c b/winsup/testsuite/winsup.api/ltp/getgid01.c deleted file mode 100644 index fcde734a0..000000000 --- a/winsup/testsuite/winsup.api/ltp/getgid01.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : getgid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for getgid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) getgid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the getgid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * getgid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="getgid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call getgid(2) - */ - TEST(getgid()); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "getgid() Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "getgid() returned %d", TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/getgid02.c b/winsup/testsuite/winsup.api/ltp/getgid02.c deleted file mode 100644 index 290ef10c5..000000000 --- a/winsup/testsuite/winsup.api/ltp/getgid02.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * getgid02.c - * - * DESCRIPTION - * Testcase to check the basic functionality of getegid(). - * - * ALGORITHM - * call setup - * loop if that option was specified - * Execute getegid() call using TEST macro - * if not expected value - * break remaining tests and cleanup - * if STD_FUNCTIONAL_TEST - * Execute geteuid() call - * Execute getpwduid() call - * if the passwd entry is NULL - * break the remaining tests and cleanup - * else if pwent->pw_gid != TEST_RETURN - * print failure message - * else - * print pass message - * else - * print pass message - * call cleanup - * - * USAGE: - * getgid02 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * none - */ - -#include -#include - -#include "test.h" -#include "usctest.h" - -void cleanup(void); -void setup(void); - -char *TCID= "getgid02"; -int TST_TOTAL = 1; -extern int Tst_count; - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int euid; - struct passwd *pwent; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); /* global setup */ - - /* The following loop checks looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(getegid()); - - if (TEST_RETURN < 0) { - tst_brkm(TBROK, cleanup, "This should never happen"); - } - - if (STD_FUNCTIONAL_TEST) { - euid = geteuid(); - - pwent = getpwuid(euid); - - if (pwent == NULL) { - tst_brkm(TBROK, cleanup, "geteuid() returned " - "unexpected value %d", euid); - } else { - if (pwent->pw_gid != TEST_RETURN) { - tst_resm(TFAIL, "getegid() return value" - " %d unexpected - expected %d", - TEST_RETURN, pwent->pw_gid); - } else { - tst_resm(TPASS, "effective group id %d " - "is correct", TEST_RETURN); - } - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup() -{ - /* - * print timing status if that option was specified. - * print errno log if that option was specified - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/getgid03.c b/winsup/testsuite/winsup.api/ltp/getgid03.c deleted file mode 100644 index 3059b0b36..000000000 --- a/winsup/testsuite/winsup.api/ltp/getgid03.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * getgid01.c - * - * DESCRIPTION - * Testcase to check the basic functionality of getgid(). - * - * ALGORITHM - * call setup - * loop if that option was specified - * Execute getgid() call using TEST macro - * if not expected value - * break remaining tests and cleanup - * if STD_FUNCTIONAL_TEST - * Execute getuid() call - * Execute getpwduid() call - * if the passwd entry is NULL - * break the remaining tests and cleanup - * else if pwent->pw_gid != TEST_RETURN - * print failure message - * else - * print pass message - * else - * print pass message - * call cleanup - * - * USAGE: - * getgid01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * none - */ - -#include -#include - -#include "test.h" -#include "usctest.h" - -void cleanup(void); -void setup(void); - -char *TCID= "getgid01"; -int TST_TOTAL = 1; -extern int Tst_count; - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int uid; - struct passwd *pwent; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); /* global setup */ - - /* The following loop checks looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(getgid()); - - if (TEST_RETURN < 0) { - tst_brkm(TBROK, cleanup, "This should never happen"); - } - - if (STD_FUNCTIONAL_TEST) { - uid = getuid(); - pwent = getpwuid(uid); - - if (pwent == NULL) { - tst_brkm(TBROK, cleanup, "getuid() returned " - "unexpected value %d", uid); - } else { - if (pwent->pw_gid != TEST_RETURN) { - tst_resm(TFAIL, "getgid() return value " - "%d unexpected - expected %d", - TEST_RETURN, pwent->pw_gid); - } else { - tst_resm(TPASS, "group id %d returned " - "correctly", TEST_RETURN); - } - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup() -{ - /* - * print timing status if that option was specified. - * print errno log if that option was specified - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/getgroups01.c b/winsup/testsuite/winsup.api/ltp/getgroups01.c deleted file mode 100644 index 6b935f293..000000000 --- a/winsup/testsuite/winsup.api/ltp/getgroups01.c +++ /dev/null @@ -1,315 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/*********************************************************************** -TEST IDENTIFIER: getgroups01 : Getgroups system call critical test - -PARENT DOCUMENT: ggrtds01: Getgroups system call test design spec - -AUTHOR: Barrie Kletscher - Rewrote : 11-92 by Richard Logan - -CO-PILOT: Dave Baumgartner - -TEST ITEMS: - 1. Check to see if getgroups(-1, gidset) fails and sets errno to EINVAL - 2. Check to see if getgroups(0, gidset) does not return -1 and gidset is - not modified. - 3. Check to see if getgroups(x, gigset) fails and sets errno to EINVAL, - where x is one less then what is returned by getgroups(0, gidset). - 4. Check to see if getgroups() succeeds and gidset contains - group id returned from getgid(). - -INPUT SPECIFICATIONS: - NONE - -OUTPUT SPECIFICATIONS: - Standard tst_res output format - -ENVIRONMENTAL NEEDS: - NONE. - -SPECIAL PROCEDURAL REQUIREMENTS: - None - -INTERCASE DEPENDENCIES: - Test case #3 depends on test case #2. - -DETAILED DESCRIPTION: - Set up the signal handling capabilities. - execute tests - exit - -BUGS: - None known. - -************************************************************/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - -char *TCID="getgroups01"; /* Test program identifier. */ -int TST_TOTAL=4; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -/*********************************************************************** - * MAIN - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *ptr; /* message returned from parse_opts */ - - int i, /* counter */ - group, /* return value from Getgid() call */ - entries; /* number of group entries */ - - gid_t gidset[NGROUPS]; /* storage for all group ids */ - gid_t cmpset[NGROUPS]; - int ret; - int ret2; - int errors = 0; - char msg[500]; - - /*************************************************************** - * parse standard options, and exit if there is an error - ***************************************************************/ - if ( (ptr=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", ptr); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * Check to see if getgroups() fails on erraneous condition. - */ - TEST( getgroups(-1,gidset) ); - - if((ret=TEST_RETURN) != -1) { - sprintf(msg, - "getgroups(-1,gidset) returned %d, expected -1 and errno = EINVAL", - ret); - tst_resm(TFAIL,msg); - errors++; - } - else if ( STD_FUNCTIONAL_TEST ) { - if(errno != EINVAL) { - sprintf(msg, - "getgroups(-1,gidset) returned %d, errno = %d, expected errno %d (EINVAL)", - ret, errno, EINVAL); - tst_resm(TFAIL,msg); - errors++; - } - else { - sprintf(msg, - "getgroups(-1,gidset) returned %d and error = %d (EINVAL) as expected", - ret, errno); - tst_resm(TPASS, msg); - } - } - - /* - * Check that if ngrps is zero that the number of groups is return and - * the the gidset array is not modified. - * This is a POSIX special case. - */ - - memset(gidset, 052, NGROUPS); - memset(cmpset, 052, NGROUPS); - - TEST( getgroups(0,gidset) ); - if((ret=TEST_RETURN) < 0) { - sprintf(msg, - "getgroups(0,gidset) returned %d with errno = %d, expected num gids with no change to gidset", - ret, errno); - tst_resm(TFAIL,msg); - errors++; - } - else if ( STD_FUNCTIONAL_TEST ) { - /* - * check that gidset was unchanged - */ - if ( memcmp(cmpset, gidset, NGROUPS) != 0 ) { - sprintf(msg, - "getgroups(0,gidset) returned %d, the gidset array was modified", - ret); - tst_resm(TFAIL,msg); - errors++; - } - else { - sprintf(msg, - "getgroups(0,gidset) returned %d, the gidset array not was modified", - ret); - tst_resm(TPASS, msg); - } - } - - /* - * Check to see that is -1 is returned and errno is set to EINVAL when - * ngroups is not big enough to hold all groups. - */ - - if ( ret <= 1 ) { - sprintf(msg, "getgroups(0,gidset) returned %d, Unable to test that\nusing ngrps >=1 but less than number of grps", ret); - tst_resm(TCONF, msg); - errors++; - } - else { - TEST( getgroups(ret-1, gidset) ); - if ((ret2 = TEST_RETURN) == -1 ) { - if ( STD_FUNCTIONAL_TEST ) { - if ( errno != EINVAL ) { - sprintf(msg, - "getgroups(%d, gidset) returned -1, but not errno %d (EINVAL) but %d", - ret-1, EINVAL, errno); - tst_resm(TFAIL, msg); - errors++; - } - else { - sprintf(msg, - "getgroups(%d, gidset) returned -1, and errno %d (EINVAL) when %d grps", - ret-1, errno, ret); - tst_resm(TPASS, msg); - } - } - } - else { - sprintf(msg, - "getgroups(%d, gidset) returned %d, expected -1 and errno EINVAL.", - ret-1, ret2); - tst_resm(TFAIL, msg); - errors++; - } - } - - /* - * Check to see if getgroups() succeeds and contains getgid's gid. - */ - - TEST( getgroups(NGROUPS,gidset) ); - if((entries = TEST_RETURN) == -1) { - sprintf(msg, "getgroups(NGROUPS,gidset) returned -1 and errno = %d", errno); - tst_resm(TFAIL, msg); - errors++; - } - else if ( STD_FUNCTIONAL_TEST ) { - - /* - * Check to see if getgroups() contains getgid(). - */ - - group = getgid(); - - for(i = 0; i < entries; i++) - { - if(gidset[i] == group) - { - sprintf(msg, - "getgroups(NGROUPS,gidset) ret %d contains gid %d (from getgid)", - entries, group); - tst_resm(TPASS, msg); - break; - } - } - - if( i == entries ) { - sprintf(msg, - "getgroups(NGROUPS,gidset) ret %d, does not contain gid %d (from getgid)", - entries, group); - tst_resm(TFAIL,msg); - errors++; - } - } - - } - cleanup(); - - return 0; -} /* end main() */ - - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ - diff --git a/winsup/testsuite/winsup.api/ltp/getgroups02.c b/winsup/testsuite/winsup.api/ltp/getgroups02.c deleted file mode 100644 index b517c7617..000000000 --- a/winsup/testsuite/winsup.api/ltp/getgroups02.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : getgroups02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for getgroups(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) getgroups(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the getgroups(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * getgroups(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="getgroups02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -/* define array size for gids */ -#define GID_ARRAY_SIZE 100 - -gid_t gidset[GID_ARRAY_SIZE]; /* array of gids */ - - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call getgroups(2) - */ - TEST(getgroups(GID_ARRAY_SIZE, gidset)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "getgroups() Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "getgroups() returned %d", TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/gethostid01.c b/winsup/testsuite/winsup.api/ltp/gethostid01.c deleted file mode 100644 index 2d4a18755..000000000 --- a/winsup/testsuite/winsup.api/ltp/gethostid01.c +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : gethostid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for gethostid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) gethostid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the gethostid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * gethostid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="gethostid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0}; /* must be a 0 terminated list */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - ; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * Get host name - */ - ; - - /* Call gethostid(2) */ - TEST(gethostid( )); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "gethostid - Get host name failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - continue; /* next loop for MTKERNEL */ - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "gethostid - Get host name returned %d", TEST_RETURN); - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/gethostname01.c b/winsup/testsuite/winsup.api/ltp/gethostname01.c deleted file mode 100644 index 2f94db725..000000000 --- a/winsup/testsuite/winsup.api/ltp/gethostname01.c +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : gethostname01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for gethostname(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) gethostname(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the gethostname(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * gethostname(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - - - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="gethostname01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0}; /* must be a 0 terminated list */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - char hname[100]; /* host name */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * Get host name - */ - ; - - /* Call gethostname(2) */ - TEST(gethostname(hname, sizeof(hname) )); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "gethostname - Get host name failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - continue; /* next loop for MTKERNEL */ - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "gethostname - Get host name returned %d", TEST_RETURN); - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/getpgid01.c b/winsup/testsuite/winsup.api/ltp/getpgid01.c deleted file mode 100644 index d1a39a087..000000000 --- a/winsup/testsuite/winsup.api/ltp/getpgid01.c +++ /dev/null @@ -1,240 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * getpgid01.c - * - * DESCRIPTION - * Testcase to check the basic functionality of getpgid(). - * - * ALGORITHM - * block1: Does getpgid(0), and checks for error. - * block2: Does getpgid(getpid()) and checks for error. - * block3: Does getpgid(getppid()) and checks for error. - * block4: Verifies that getpgid(getpgid(0)) == getpgid(0). - * block5: Does getpgid(1) and checks for error. - * - * USAGE - * getpgid01 - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * Expects that there are no EPERM limitations on getting the - * process group ID from proc 1 (init). - */ - -#include -#include -#include -#include -#include -#include - -void setup(void); -void cleanup(void); - -char *TCID = "getpgid01"; -int TST_TOTAL = 1; -extern int Tst_count; - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned by parse_opts */ - - register int pgid_0, pgid_1; - register int my_pid, my_ppid; - int ex_stat, fail = 0; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); - - /* check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - if ((pgid_0 = fork()) < 0) { - tst_brkm(TBROK, cleanup, "fork() failed"); - } - if (pgid_0 > 0) { /* parent */ - /* - * parent process waits for child to exit, and then - * exits itself. - */ - while ((pgid_0 = wait(&ex_stat)) > 0); - - if (WEXITSTATUS(ex_stat) == 0) { - tst_resm(TINFO, "%s PASSED", TCID); - } else { - tst_resm(TINFO, "%s FAILED", TCID); - } - - /* let the child carry on */ - exit(0); - } - - /* child */ -block1: - tst_resm(TINFO, "Enter block 1"); - fail = 0; - if ((pgid_0 = getpgid(0)) < 0) { - perror("getpgid"); - tst_resm(TFAIL, "getpgid(0) failed"); - fail = 1; - } - - if (fail) { - tst_resm(TINFO, "Test block 1: getpgid(0) FAILED"); - } else { - tst_resm(TPASS, "Test block 1: getpgid(0) PASSED"); - } - tst_resm(TINFO, "Exit block 1"); - -block2: - tst_resm(TINFO, "Enter block 2"); - fail = 0; - - my_pid = getpid(); - if ((pgid_1 = getpgid(my_pid)) < 0) { - perror("getpgid"); - tst_resm(TFAIL, "getpgid(my_pid=%d) failed", my_pid); - tst_exit(); - } - if (pgid_0 != pgid_1) { - tst_resm(TFAIL, "getpgid(my_pid=%d) != getpgid(0) " - "[%d != %d]", my_pid, pgid_1, pgid_0); - fail = 1; - } - if (fail) { - tst_resm(TINFO, "Test block 2: getpgid(getpid()) " - "FAILED"); - } else { - tst_resm(TPASS, "Test blcok 2: getpgid(getpid()) " - "PASSED"); - } - tst_resm(TINFO, "Exit block 2"); - -block3: - tst_resm(TINFO, "Enter block 3"); - fail = 0; - - my_ppid = getppid(); - if ((pgid_1 = getpgid(my_ppid)) < 0) { - perror("getpgid"); - tst_resm(TFAIL, "getpgid(my_ppid=%d) failed", - my_ppid); - tst_exit(); - } - if (pgid_0 != pgid_1) { - tst_resm(TFAIL, "getpgid(my_ppid=%d) != getpgid(0) " - "[%d != %d]", my_ppid, pgid_1, pgid_0); - fail = 1; - } - - if (fail) { - tst_resm(TINFO, "Test block 3: getpgid(getppid()) " - "FAILED"); - } else { - tst_resm(TPASS, "Test block 3: getpgid(getppid()) " - "PASSED"); - } - tst_resm(TINFO, "Exit block 3"); - -block4: - tst_resm(TINFO, "Enter block 4"); - fail = 0; - - if ((pgid_1 = getpgid(pgid_0)) < 0) { - perror("getpgid"); - tst_resm(TFAIL, "getpgid(my_pgid=%d) failed", pgid_0); - tst_exit(); - } - if (pgid_0 != pgid_1) { - tst_resm(TFAIL, "getpgid(my_pgid=%d) != getpgid(0) " - "[%d != %d]", pgid_0, pgid_1, pgid_0); - fail = 1; - } - - if (fail) { - tst_resm(TINFO, "Test block 4: getpgid(1) FAILED"); - } else { - tst_resm(TPASS, "Test block 4: getpgid(1) PASSED"); - } - tst_resm(TINFO, "Exit block 4"); -#ifndef __CYGWIN__ -block5: - tst_resm(TINFO, "Enter block 5"); - fail = 0; - - if (getpgid(1) < 0) { - perror("getpgid"); - tst_resm(TFAIL, "getpgid(1) failed"); - fail = 1; - } - - if (fail) { - tst_resm(TINFO, "Test block 5: getpgid(1) FAILED"); - } else { - tst_resm(TPASS, "Test block 5: getpgid(1) PASSED"); - } - tst_resm(TINFO, "Exit block 5"); -#endif - } - cleanup(); -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} - diff --git a/winsup/testsuite/winsup.api/ltp/getpgid02.c b/winsup/testsuite/winsup.api/ltp/getpgid02.c deleted file mode 100644 index afb80f261..000000000 --- a/winsup/testsuite/winsup.api/ltp/getpgid02.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * getpgid02.c - * - * DESCRIPTION - * Testcase to check the basic functionality of getpgid(). - * - * ALGORITHM - * test 1: Does getpgid(-99) and expects ESRCH. - * test 2: Searches an unused pid and expects ESRCH. - * - * USAGE: - * getpgid02 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * none - */ - -#include -#include -#include -#include -#include -#include - -void setup(void); -void cleanup(void); - -char *TCID = "getpgid01"; -int TST_TOTAL = 2; -extern int Tst_count; - -int pgid_0, pgid_1; -#define BADPID -99 - -int exp_enos[]={ESRCH, 0}; - -struct test_case_t { - int *id; - int error; -} TC[] = { - /* The pid value is negative */ - {&pgid_0, ESRCH}, - - /* The pid value does not match any process */ - {&pgid_1, ESRCH} -}; - -main(int ac, char **av) -{ - int lc; /* loop counter */ - int i; - const char *msg; /* message returned by parse_opts */ - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); - - /* set up the expected errnos */ - TEST_EXP_ENOS(exp_enos); - - /* check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - - /* loop through the test cases */ - for (i = 0; i < TST_TOTAL; i++) { - - TEST(getpgid(*TC[i].id)); - - if (TEST_RETURN != -1) { - tst_resm(TFAIL, "call succeeded unexpectedly"); - continue; - } - - TEST_ERROR_LOG(TEST_ERRNO); - - if (TEST_ERRNO == TC[i].error) { - tst_resm(TPASS, "expected failure - " - "errno = %d : %s", TEST_ERRNO, - strerror(TEST_ERRNO)); - } else { - tst_resm(TFAIL, "unexpected error - %d : %s - " - "expected %d", TEST_ERRNO, - strerror(TEST_ERRNO), TC[i].error); - } - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - pgid_0 = BADPID; - - /* - * Find a pid that isn't currently being used. Start - * at 'our pid - 1' and go backwards until we find one. - * In this way, we can be reasonably sure that the pid - * we find won't be reused for a while as new pids are - * allocated counting up to PID_MAX. - */ - for (pgid_1 = getpid() - 1; --pgid_1 > 0; ) { - if (kill(pgid_1, 0) < 0 && errno == ESRCH) { - break; - } - } -} - - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} - diff --git a/winsup/testsuite/winsup.api/ltp/getpgrp01.c b/winsup/testsuite/winsup.api/ltp/getpgrp01.c deleted file mode 100644 index bd3a89117..000000000 --- a/winsup/testsuite/winsup.api/ltp/getpgrp01.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : getpgrp01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for getpgrp(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) getpgrp(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the getpgrp(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * getpgrp(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="getpgrp01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call getpgrp(2) - */ - TEST(getpgrp()); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "getpgrp() Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "getpgrp() returned %d", TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/getpid01.c b/winsup/testsuite/winsup.api/ltp/getpid01.c deleted file mode 100644 index 58d6b0579..000000000 --- a/winsup/testsuite/winsup.api/ltp/getpid01.c +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : getpid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for getpid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) getpid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the getpid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * getpid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="getpid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call getpid(2) - */ - TEST(getpid()); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "getpid() Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "getpid() returned %d", TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/getpid02.c b/winsup/testsuite/winsup.api/ltp/getpid02.c deleted file mode 100644 index 8561c1a09..000000000 --- a/winsup/testsuite/winsup.api/ltp/getpid02.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: getpid01 - * - * Test Description: - * Verify that getpid() system call gets the process ID of the of the - * calling process. - * - * Expected Result: - * getpid() should return pid of the process on success. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * - * Usage: - * getpid01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -char *TCID="getpid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - pid_t proc_id; /* process id of the test process */ - pid_t pid; /* process id of the child process */ - pid_t pproc_id; /* parent process id */ - int status; /* exit status of child process */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Invoke getpid() to get the process id of - * the test process. - */ - TEST(getpid()); - - /* Save the process id returned by getpid() */ - proc_id = TEST_RETURN; - - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* Fork a child now */ - if ((pid = fork()) < 0) { - tst_resm(TFAIL, "fork() failed to create child," - " error=%d", TEST_ERRNO); - } else if (pid == 0) { /* Child process */ - /* Get the parent process id */ - pproc_id = getppid(); - - /* Verify if the two process IDs match */ - if (pproc_id != proc_id) { - exit(1); - } - exit(0); - } else { /* parent process */ - wait(&status); - - /* Check exit status of child */ - if (WEXITSTATUS(status) != 0) { - tst_resm(TFAIL, "getpid() returned " - "invalid pid %d", proc_id); - } else { - tst_resm(TPASS, "Functionality of " - "getpid() successful"); - } - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Setup signal catching function. - */ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/getppid01.c b/winsup/testsuite/winsup.api/ltp/getppid01.c deleted file mode 100644 index 9eab5dfc2..000000000 --- a/winsup/testsuite/winsup.api/ltp/getppid01.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : getppid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for getppid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) getppid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the getppid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * getppid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="getppid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call getppid(2) - */ - TEST(getppid()); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "getppid() Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "getppid() returned %d", TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/getppid02.c b/winsup/testsuite/winsup.api/ltp/getppid02.c deleted file mode 100644 index 9eeead13f..000000000 --- a/winsup/testsuite/winsup.api/ltp/getppid02.c +++ /dev/null @@ -1,146 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * getppid01.c - * - * DESCRIPTION - * Testcase to check the basic functionality of the getppid() syscall. - * - * USAGE: - * getppid01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include - -char *TCID = "getppid01"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -main(int ac, char **av) -{ - int pid, ppid; - - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* - * parse standard options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); - - /* - * check looping state if -i option is given - */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* - * reset Tst_count in case we are looping. - */ - Tst_count = 0; - - ppid = getpid(); - pid = fork(); - if (pid < 0) { - tst_brkm(TBROK, cleanup, "fork() failed"); - } - - if (pid == 0) { /* child */ - TEST(getppid()); - - if (TEST_RETURN < 0) { - tst_resm(TFAIL, "something is really broken"); - continue; - } - - if (STD_FUNCTIONAL_TEST) { - if (TEST_RETURN != ppid) { - tst_resm(TFAIL, "getppid() failed"); - } else { - tst_resm(TPASS, "return value = " - "parent's pid value"); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - - } else { - wait(NULL); - - /* let the child carry on */ - exit(0); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} - diff --git a/winsup/testsuite/winsup.api/ltp/getuid01.c b/winsup/testsuite/winsup.api/ltp/getuid01.c deleted file mode 100644 index 58920ed34..000000000 --- a/winsup/testsuite/winsup.api/ltp/getuid01.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : getuid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for getuid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) getuid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the getuid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * getuid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="getuid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call getuid(2) - */ - TEST(getuid()); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "getuid() Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "getuid() returned %d", TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/getuid02.c b/winsup/testsuite/winsup.api/ltp/getuid02.c deleted file mode 100644 index b35072518..000000000 --- a/winsup/testsuite/winsup.api/ltp/getuid02.c +++ /dev/null @@ -1,136 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * getuid02.c - * - * DESCRIPTION - * Testcase to check the basic functionality of the geteuid() system call. - * - * USAGE: - * getuid02 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include -#include - -char *TCID = "getuid02"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned by parse_opts */ - - struct passwd *pwent; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); - - /* check looping state if -i option is given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(geteuid()); - - if (TEST_RETURN < 0) { - tst_brkm(TBROK, cleanup, "This should never happen"); - } - - if (STD_FUNCTIONAL_TEST) { - - pwent = getpwuid(TEST_RETURN); - if (pwent == NULL) { - tst_resm(TFAIL, "geteuid() returned unexpected " - "value %d", TEST_RETURN); - } else { - if (pwent->pw_uid != TEST_RETURN) { - tst_resm(TFAIL, "getpwuid() value, %d, " - "does not match geteuid() " - "value, %d", pwent->pw_uid, - TEST_RETURN); - } else { - tst_resm(TPASS, "values from geteuid()" - " and getpwuid() match"); - } - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} - diff --git a/winsup/testsuite/winsup.api/ltp/getuid03.c b/winsup/testsuite/winsup.api/ltp/getuid03.c deleted file mode 100644 index 7c1075ca4..000000000 --- a/winsup/testsuite/winsup.api/ltp/getuid03.c +++ /dev/null @@ -1,137 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * getuid01.c - * - * DESCRIPTION - * Testcase to check the basic functionality of the getuid() system call. - * - * USAGE: - * getuid01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ - -#include -#include -#include -#include - -char *TCID = "getuid01"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned by parse_opts */ - - struct passwd *pwent; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - } - - setup(); - - /* check looping state if -i option is given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(getuid()); - - if (TEST_RETURN < 0) { - tst_brkm(TBROK, cleanup, "This should never happen"); - } - - if (STD_FUNCTIONAL_TEST) { - - pwent = getpwuid(TEST_RETURN); - if (pwent == NULL) { - tst_resm(TFAIL, "getuid() returned unexpected " - "value %d", TEST_RETURN); - } else { - if (pwent->pw_uid != TEST_RETURN) { - tst_resm(TFAIL, "getpwuid() value, %d, " - "does not match getuid() " - "value, %d", pwent->pw_uid, - TEST_RETURN); - } else { - tst_resm(TPASS, "values from getuid()" - " and getpwuid() match"); - } - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} - diff --git a/winsup/testsuite/winsup.api/ltp/kill01.c b/winsup/testsuite/winsup.api/ltp/kill01.c deleted file mode 100644 index d20d3a347..000000000 --- a/winsup/testsuite/winsup.api/ltp/kill01.c +++ /dev/null @@ -1,161 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * kill01.c - * - * DESCRIPTION - * Test case to check the basic functionality of kill(). - * - * ALGORITHM - * call setup - * loop if the -i option was given - * fork a child - * execute the kill system call - * check the return value - * if return value is -1 - * issue a FAIL message, break remaining tests and cleanup - * if we are doing functional testing - * if the process was terminated with the expected signal. - * issue a PASS message - * otherwise - * issue a FAIL message - * call cleanup - * - * USAGE - * kill01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * This test should be ran as a non-root user. - */ - -#include "test.h" -#include "usctest.h" - -#include -#include -#include - -void cleanup(void); -void setup(void); - -char *TCID= "kill01()"; -int TST_TOTAL = 1; - -extern int Tst_count; - -#define TEST_SIG SIGKILL - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - pid_t pid; - int exno, status, nsig; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); /* global setup */ - - /* The following loop checks looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - status = 1; - exno = 1; - pid = fork(); - if (pid < 0) { - tst_brkm(TBROK, cleanup, "Fork of child failed"); - } else if (pid == 0) { - pause(); - /*NOTREACHED*/ - exit(exno); - } else { - TEST(kill(pid, TEST_SIG)); - waitpid(pid, &status, 0); - } - - if (TEST_RETURN == -1) { - tst_brkm(TFAIL, cleanup, "%s failed - errno = %d : %s", - TCID, TEST_ERRNO, strerror(TEST_ERRNO)); - /*NOTREACHED*/ - } - - if (STD_FUNCTIONAL_TEST) { - /* - * Check to see if the process was terminated with the - * expected signal. - */ - nsig = WTERMSIG(status); - if (nsig == TEST_SIG) { - tst_resm(TPASS, "received expected signal %d", - nsig); - } else { - tst_resm(TFAIL, "expected signal %d received %d" ,TEST_SIG,nsig); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup(void) -{ - /* - * print timing status if that option was specified. - * print errno log if that option was specified - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/kill02.c b/winsup/testsuite/winsup.api/ltp/kill02.c deleted file mode 100644 index e618c8c71..000000000 --- a/winsup/testsuite/winsup.api/ltp/kill02.c +++ /dev/null @@ -1,858 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/*********************************************************************************** - - OS Test - Silicon Graphics, Inc. - - TEST IDENTIFIER : kill02 Sending a signal to processes with the same process group ID. - - PARENT DOCUMENT : kiltds01 Kill System Call. - - AUTHOR : Dave Baumgartner - - CO-PILOT : Barrie Kletscher - - DATE STARTED : 12/30/85 - - TEST ITEMS - - 1. Sending a signal to pid of zero sends to all processes whose process - group ID is equal to the process group ID as the sender. - - 2. Sending a signal to pid of zero does not send to processes in another process group. - - - OUTPUT SPECIFICATIONS - - PASS : - kiltcs02 1 PASS The signal was sent to all processes in the process group. - kiltcs02 2 PASS The signal was not sent to selective processes that were not in the process group. - - FAIL : - kiltcs02 1 FAIL The signal was not sent to all processes in the process group. - kiltcs02 2 FAIL The signal was sent to a process that was not in the process group. - - BROK : - kiltcs02 # BROK System call XXX failed. Errno:X, Error message:XXX. - kiltcs02 # BROK Setting to catch unexpected signal %d failed. Errno: %d, Error message %s. - kiltcs02 # BROK Setting to ignore signal %d failed. Errno: %d, Error message %s. - - WARN : - kiltcs02 0 WARN Unexpected signal X was caught. - - SPECIAL PROCEDURAL REQUIREMENTS - - The program must be linked with tst_res.o. - - DETAILED DESCRIPTION - - **Setup** - Set up unexpected signal handling. - Set up one pipe for each process to be created with no blocking for read. - - **MAIN** - If setup fails exit. - Fork 2 children(1 & 2). - Wait for set up complete messages from the 1st and 2nd child. - Send the signal SIGUSR1 with pid equal to zero. - Sleep a reasonable amount of time so that each child has been swapped in - to process the signal. - Now decide the outcome of the test items by reading from each pipe to find - out if the child was interrupted by the signal and wrote to it. - Remove the second child. - Tell the first child it is time to remove it's child B because the decisions have been made. - Exit. - - **First Child** - Set to catch SIGUSR1 with an int_rout1. - Set up to handle the message from the parent to remove child B. - Fork two children(A & B). - Wait for set up complete messages from child A & child B. - Send a set up complete message to the parent. - Pause until the signal SIGUSR1 comes in from the parent. - Pause until the parent says it is time to remove the child. - Exit. - - **Second Child** - Set to catch SIGUSR1 with an int_rout2. - Set the process group to be something different than the parents. - Send a set up complete message to the parent. - Pause until killed by parent because this child shouldn't receive signal SIGUSR1. - - **Child A** - Set to catch SIGUSR1 with an int_routA. - Send a set up complete message to the parent(First Child). - Pause until the signal SIGUSR1 comes in from the parent. - Exit. - - **Child B** - Set to catch SIGUSR1 with an int_routB. - Set the process group to be something different than the parents(First Child's). - Send a set up complete message to the parent. - Pause until killed by parent because this child shouldn't receive signal SIGUSR1. - - **usr1_rout-Used by all children** - Write to the appropriate pipe that the signal SIGUSR1 was caught. - - **usr2_rout** - Remove child B. - -******************************************************************************/ -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -#define MAXMESG 150 /*The maximum message that can be created. */ -#define CHAR_SET_FAILED "0" /*Set up failing status transferred through the pipe. */ -#define CHAR_SET_PASSED "1" /*Set up passing status transferred through the pipe. */ -#define SIG_CAUGHT "2" /*Indicates that the signal SIGUSR1 was caught. */ -#define SIG_RECEIVED 1 /*Integer value that indicates that the signal SIGUSR1 */ - /*was caught. */ -#define SIG_NOT_RECD 0 /*Integer value that indicates that the signal SIGUSR1 */ - /*was caught. */ -#define INT_SET_FAILED 0 /*Set up failing status transferred through the pipe. */ -#define INT_SET_PASSED 1 /*Set up passing status transferred through the pipe. */ -#define SLEEP_TIME 10 /*Amount of time the children get to catch the signal */ -#define TRUE 40 /*Child exits with this if execution was as */ - /*expected. */ -#define FALSE 50 /*Child exits with this if it timed out waiting for the */ - /*parents signal. */ -#define TIMEOUT 60 /*Amount of time given in alarm calls. */ -#define CHILD_EXIT(VAR) ((VAR >> 8) & 0377) /*Exit value from the child. */ -#define CHILD_SIG(VAR) (VAR & 0377) /*Signal value from the termination of child. */ - /*from the parent. */ -#define SYS_FAIL "The system call %s failed. Errno: %d, Error message: %s." - -int pid1; /*Return value from 1st fork. Global so that it can be */ - /*used in interrupt handling routines. */ -int pid2; /*Return value from 2nd fork. Global so that it can be */ - /*used in interrupt handling routines. */ -int pidA; /*Return value from 1st fork in child 1. Global so that it */ - /*can be used in interrupt handling routines. */ -int pidB; /*Return value from 2nd fork in child 1. Global so that it */ - /*can be used in interrupt handling routines. */ -extern int errno; /*Error number returned by a system call. */ -int pipe1_fd[2]; /*Pipe file descriptors used for communication */ - /*between child 1 and the 1st parent. */ -int pipe2_fd[2]; /*Pipe file descriptors used for communication */ - /*between child 2 and the 1st parent. */ -int pipeA_fd[2]; /*Pipe file descriptors used for communication */ - /*between child A and the 1st parent. */ -int pipeB_fd[2]; /*Pipe file descriptors used for communication */ - /*between child B and the 1st parent. */ -char pipe_buf[10]; /*Pipe buffer. */ -char buf_tmp1[2],buf_tmp2[2]; /*Temp hold for info read into pipe_buf. */ -int read1_stat = 0; /*Number of characters read from pipe 1. */ -int read2_stat = 0; /*Number of characters read from pipe 2. */ -int readA_stat = 0; /*Number of characters read from pipe A. */ -int readB_stat = 0; /*Number of characters read from pipe B. */ -int alarm_flag = FALSE; /*This flag indicates an alarm time out. */ -char who_am_i = '0'; /*This indicates which process is which when using */ - /*interrupt routine usr1_rout. */ - -void notify_timeout(); /*Signal handler that the parent enters if it times out */ - /*waiting for the child to indicate its set up status. */ -void parent_rout(); /*This is the parents routine. */ -void child1_rout(); /*This is child 1's routine. */ -void child2_rout(); /*This is child 2's routine. */ -void childA_rout(); /*This is child A's routine. */ -void childB_rout(); /*This is child B's routine. */ -void usr1_rout(); /*This routine is used by all children to indicate that */ - /*they have caught signal SIGUSR1. */ -void par_kill(); /*This routine is called by the original parent to */ - /*remove child 2 and to indicate to child 1 to */ - /*remove its children. */ -void chld1_kill(); /*This routine is used by child 1 to remove itself and */ - /*its children A and B. */ - -void setup(); -void cleanup(); - -char *TCID="kill02"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -extern int Tst_nobuf; /* var. used to turn off tst_res buffering */ - -int exp_enos[]={0}; /* Array of expected errnos */ - -/*********************************************************************** - * MAIN - ***********************************************************************/ -int -main(int ac, char **av) -{ - char mesg[MAXMESG]; /* Holds messages to pass to tst_res. */ - - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - Tst_nobuf=1; - - /*************************************************************** - * parse standard options, and exit if there is an error - * the -t and -f options not support yet. - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - if ((pid1 = fork()) > 0) - { - /* - * This is the parent, fork again to create child 2. - */ - if ((pid2 = fork()) > 0) { - /* - * This is the parent. - */ - (void) parent_rout(); - } - else if (pid2 == 0) { - /* - * This is child 2. - */ - (void) child2_rout(); - } - else { - /* - * The second fork failed kill the first child. - */ - if (kill(pid1,SIGKILL) == -1 && errno != ESRCH) { - tst_resm(TWARN,"Child process may not have been killed."); - } - (void) sprintf(mesg,SYS_FAIL,"fork",errno,strerror(errno)); - tst_brkm(TBROK,cleanup,mesg); - } - - } - else if (pid1 == 0) { - /* - * This is child 1. - */ - (void) child1_rout(); - } - else { - /* - * Fork failed. - */ - (void) sprintf(mesg,SYS_FAIL,"fork",errno,strerror(errno)); - tst_brkm(TBROK,cleanup,mesg); - } - } - - cleanup(); - - return 0; -} /* END OF MAIN.*/ - -/****************************************************************************** - * This is the parents routine. The parent waits for the children 1 and 2 to - * get set up. Then sends the signal and checks the outcome. - *********************************************************************************/ -void parent_rout() -{ - char mesg[MAXMESG]; /*Used to buffer messages for tst_resm. */ - - /* - * Set to catch the alarm signal SIGALRM. - */ - if (signal(SIGALRM,notify_timeout) == SIG_ERR) { - (void) par_kill(); - tst_brkm(TBROK, NULL, - "Could not set to catch the parents time out alarm."); - tst_exit(); - } - - /* - * Setting to catch the timeout alarm worked now let the children start up. - * Set an alarm which causes a time out on the read pipe loop. - * The children will notify the parent that set up is complete - * and the pass/fail status of set up. - */ - (void) alarm(TIMEOUT); - - while ((read(pipe1_fd[0],pipe_buf,1) != 1) && (alarm_flag == FALSE)) - /*EMPTY*/; - strncpy(buf_tmp1,pipe_buf,1); - (void) alarm(TIMEOUT); - - while ((read(pipe2_fd[0],pipe_buf,1) != 1) && (alarm_flag == FALSE)) - /*EMPTY*/; - (void) alarm(0); /*Reset the alarm clock.*/ - strncpy(buf_tmp2,pipe_buf,1); - - /* - * Check the alarm flag. - */ - if (alarm_flag == TRUE) { - tst_brkm(TBROK,NULL,"The set up of the children failed by timing out."); - (void) par_kill(); - cleanup(); - } - - /* - * Check to see if either child failed in the set up. - */ - if ( (strncmp(buf_tmp1,CHAR_SET_FAILED,1) == 0) || - (strncmp(buf_tmp2,CHAR_SET_FAILED,1) == 0)) { - /* - * Problems were encountered in the set up of one of the children. - * The error message has been displayed by the child. - */ - (void) par_kill(); - cleanup(); - } - - /* - * Setup passed, now send SIGUSR1 to process id of zero. - */ - TEST( kill(0,SIGUSR1) ); - - if ( TEST_RETURN == -1) - { - (void) sprintf(mesg,SYS_FAIL,"kill",errno,strerror(errno)); - tst_brkm(TBROK,NULL,mesg); - (void) par_kill(); - cleanup(); - } - - /* - * Sleep for a while to allow the children to get a chance to - * catch the signal. - */ - (void) sleep(SLEEP_TIME); - - /* - * The signal was sent above and time has run out for child response, - * check the outcomes. - */ - read1_stat = read(pipe1_fd[0],pipe_buf,1); - if (read1_stat == -1 && errno == EAGAIN) read1_stat = 0; - read2_stat = read(pipe2_fd[0],pipe_buf,1); - if (read2_stat == -1 && errno == EAGAIN) read2_stat = 0; - readA_stat = read(pipeA_fd[0],pipe_buf,1); - if (readA_stat == -1 && errno == EAGAIN) readA_stat = 0; - readB_stat = read(pipeB_fd[0],pipe_buf,1); - if (readB_stat == -1 && errno == EAGAIN) readB_stat = 0; - - if (read1_stat == -1 || read2_stat == -1 || - readA_stat == -1 || readB_stat == -1) { - /* - * The read system call failed. - */ - (void) sprintf(mesg,SYS_FAIL,"read",errno,strerror(errno)); - tst_brkm(TBROK,NULL,mesg); - (void) par_kill(); - cleanup(); - } - - /* - * Check the processes that were supposed to get the signal. - */ - if (read1_stat == SIG_RECEIVED) { - if (readA_stat == SIG_RECEIVED) { - /* - * Both processes, 1 and A, that were supposed to receive - * the signal did receive the signal. - */ - if ( STD_FUNCTIONAL_TEST ) - tst_resm(TPASS, - "The signal was sent to all processes in the process group."); - else - Tst_count++; - } - else { /*Process A didn't receive the signal.*/ - tst_resm(TFAIL,"Process A did not receive the signal."); - } - - } - else { /*Process 1 didn't receive the signal.*/ - tst_resm(TFAIL,"Process 1 did not receive the signal."); - } - - /* - * Check the processes that were not supposed to get the signal. - */ - if (read2_stat == SIG_NOT_RECD) { - if (readB_stat == SIG_NOT_RECD) { - /* - * Both processes, 2 and B did not receive the signal. - */ - if ( STD_FUNCTIONAL_TEST ) - tst_resm(TPASS, - "The signal was not sent to selective processes that were not in the process group."); - else - Tst_count++; - } - else { /*Process B received the signal.*/ - tst_resm(TFAIL,"Process B received the signal."); - } - - } - - else /*Process 2 received the signal.*/ - { - tst_resm(TFAIL,"Process 2 received the signal."); - } - - (void) par_kill(); - return; -} /*End of parent_rout*/ - -/******************************************************************************* - * This is child 1's routine. It creates children A & B, checks their set up, - * reports to the parent set up pass/fail info., then waits for - * the parents signal. - ******************************************************************************/ -void child1_rout() -{ - char mesg[MAXMESG]; /*Used to buffer messages for tst_resm. */ - who_am_i = '1'; - - /* - * Set to catch the SIGUSR1 with int1_rout. - */ - if (signal(SIGUSR1,usr1_rout) == SIG_ERR) - { - tst_brkm(TBROK,NULL,"Could not set to catch the childrens signal."); - (void) write(pipe1_fd[1],CHAR_SET_FAILED,1); - exit(0); - } - - /* - * Create children A & B. - */ - if ((pidA = fork()) > 0) { - /* - * This is the parent(child1), fork again to create child B. - */ - if ((pidB = fork()) == 0) { - /* This is child B. */ - (void) childB_rout(); - } - - else if (pidB == -1) { - /* - * The fork of child B failed kill child A. - */ - if (kill(pidA,SIGKILL) == -1) - tst_resm(TWARN,"Child process may not have been killed."); - (void) sprintf(mesg,SYS_FAIL,"fork",errno,strerror(errno)); - tst_brkm(TBROK,NULL,mesg); - (void) write(pipe2_fd[1],CHAR_SET_FAILED,1); - exit(0); - } - } - - else if (pidA == 0) { - /* This is child A. */ - (void) childA_rout(); - - } - - else if (pidA == -1) { - /* - * The fork of child A failed. - */ - (void) sprintf(mesg,SYS_FAIL,"fork",errno,strerror(errno)); - tst_brkm(TBROK,NULL,mesg); - (void) write(pipe1_fd[1],CHAR_SET_FAILED,1); - exit(0); - } - - /* - * Set to catch the SIGUSR2 with chld1_kill. - */ - if (signal(SIGUSR2,chld1_kill) == SIG_ERR) { - tst_brkm(TBROK,NULL,"Could not set to catch the parents signal."); - (void) write(pipe1_fd[1],CHAR_SET_FAILED,1); - (void) chld1_kill(); - exit(0); - } - - /* - * Set to catch the alarm signal SIGALRM. - */ - if (signal(SIGALRM,notify_timeout) == SIG_ERR) { - tst_brkm(TBROK,NULL,"Could not set to catch the childs time out alarm."); - (void) write(pipe1_fd[1],CHAR_SET_FAILED,1); - (void) chld1_kill(); - exit(0); - } - - /* - * Setting to catch the signals worked now let the children start up. - * Set an alarm which causes a time out on the pipe read loop. - * The children A & B will notify the parent(child1) that set up is complete - * and the pass/fail status of set up. - */ - (void) alarm(TIMEOUT-40); - - while ((read(pipeA_fd[0],pipe_buf,1) != 1) && (alarm_flag == FALSE)) - /*EMPTY*/; - (void) alarm(TIMEOUT-40); - - while ((read(pipeB_fd[0],pipe_buf,1) != 1) && (alarm_flag == FALSE)) - /*EMPTY*/; - (void) alarm(0); /*Reset the alarm clock.*/ - - /* - * Check the alarm flag. - */ - if (alarm_flag == TRUE) { - tst_brkm(TBROK,NULL,"The set up of the children failed by timing out."); - (void) chld1_kill(); - (void) write(pipe1_fd[1],CHAR_SET_FAILED,1); - exit(0); - } - - /* - * Send a set up complete message to the parent. - */ - (void) write(pipe1_fd[1],CHAR_SET_PASSED,1); - - /* - * Pause until the signal SIGUSR1 or SIGUSR2 is sent from the parent. - */ - (void) pause(); - - /* - * Pause until signal SIGUSR2 is sent from the parent. - * This pause will only be executed if SIGUSR2 has not been received yet. - */ - while (1) { - sleep(1); - } - -} /*End of child1_rout*/ - -/******************************************************************************* - * This is the routine for child 2, which should not receive the parents signal. - ******************************************************************************/ -void child2_rout() -{ - who_am_i = '2'; - - /* - * Set the process group of this process to be different - * than the other processes. - */ - (void) setpgrp(); - - /* - * Set to catch the SIGUSR1 with usr1_rout. - */ - if (signal(SIGUSR1,usr1_rout) == SIG_ERR) { - tst_brkm(TBROK,cleanup,"Could not set to catch the parents signal."); - (void) write(pipe2_fd[1],CHAR_SET_FAILED,1); - exit(0); - } - - /* Send a set up complete message to parent.*/ - (void) write(pipe2_fd[1],CHAR_SET_PASSED,1); - - /* - * Pause until killed by the parent or SIGUSR1 is received. - */ - (void) pause(); -} - - -/******************************************************************************* - * This is the routine for child A, which should receive the parents signal. - ******************************************************************************/ -void childA_rout() -{ - who_am_i = 'A'; - - /* Send a set up complete message to parent.*/ - write(pipeA_fd[1],CHAR_SET_PASSED,1); - - /* - * Pause until killed by the parent or SIGUSR1 is received. - */ - (void) pause(); - - exit(0); -} /*End of childA_rout*/ - -/******************************************************************************* - * This is the routine for child B, which should not receive the parents signal. - ******************************************************************************/ -void childB_rout() -{ - who_am_i = 'B'; - - /* - * Set the process group of this process to be different - * than the other processes. - */ - (void) setpgrp(); - - /* Send a set up complete message to parent(child 1).*/ - write(pipeB_fd[1],CHAR_SET_PASSED,1); - - /* - * Pause until killed by the parent(child 1) or SIGUSR1 is received. - */ - (void) pause(); - - exit(0); -} - -/******************************************************************************* - * This routine sets up the interprocess communication pipes, signal handling, - * and process group information. - ******************************************************************************/ -void -setup() -{ - int errno_buf; /*indicates the errno if pipe set up fails. */ - int err_flag = FALSE; /*Indicates if an error has occurred in pipe set up. */ - char mesg[MAXMESG]; /*Used to buffer messages for tst_res. */ - - /* - * Set the process group ID to be equal between the parent and children. - */ - (void) setpgrp(); - - /* - * Set to catch unexpected signals. - * SIGCLD is set to be ignored because we do not wait for termination status. - * SIGUSR1 is set to be ignored because this is the signal we are using for - * the test and we are not concerned with the parent getting it. - */ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - if (signal(SIGUSR1,SIG_IGN) == SIG_ERR) { - (void) sprintf(mesg, - "Setting to ignore signal SIGCLD failed. Errno: %d, Error message %s.", - errno,strerror(errno)); - tst_brkm(TBROK,NULL,mesg); - tst_exit(); - } - - if (signal(SIGCLD,SIG_IGN) == SIG_ERR) { - (void) sprintf(mesg, - "Setting to ignore signal SIGCLD failed. Errno: %d, Error message %s.", - errno,strerror(errno)); - tst_brkm(TBROK,NULL,mesg); - tst_exit(); - } - - /* Indicate which errnos are expected */ - TEST_EXP_ENOS(exp_enos); - - /* Pause if that option was specified */ - TEST_PAUSE; - - - /* - * Set up pipe1, pipe2, pipeA, and pipeB. - */ - if ((pipe(pipe1_fd) == -1) || (fcntl(pipe1_fd[0],F_SETFL,O_NDELAY) == -1)) - { - errno_buf = errno; - err_flag = TRUE; - } - - if ((pipe(pipe2_fd) == -1) || (fcntl(pipe2_fd[0],F_SETFL,O_NDELAY) == -1)) - { - errno_buf = errno; - err_flag = TRUE; - } - - if ((pipe(pipeA_fd) == -1) || (fcntl(pipeA_fd[0],F_SETFL,O_NDELAY) == -1)) - { - errno_buf = errno; - err_flag = TRUE; - } - - if ((pipe(pipeB_fd) == -1) || (fcntl(pipeB_fd[0],F_SETFL,O_NDELAY) == -1)) - { - errno_buf = errno; - err_flag = TRUE; - } - - /* - * Check for errors. - */ - if (err_flag == TRUE) - { - (void) sprintf(mesg,SYS_FAIL,"pipe",errno_buf,strerror(errno_buf)); - tst_brkm(TBROK, NULL, mesg); - tst_exit(); - } - return; - -} - -/*********************************************************** - * This routine indicates that the process caught SIGUSR1. - **********************************************************/ -void usr1_rout() -{ - char mesg[MAXMESG]; /*Used to buffer messages for tst_res. */ - - switch (who_am_i) - { - case '1': if (write(pipe1_fd[1],SIG_CAUGHT,1) == -1) - tst_resm(TWARN,"Writing signal catching status failed in child 1."); - break; - case '2': if (write(pipe2_fd[1],SIG_CAUGHT,1) == -1) - tst_resm(TWARN,"Writing signal catching status failed in child 2."); - break; - case 'A': if (write(pipeA_fd[1],SIG_CAUGHT,1) == -1) - tst_resm(TWARN,"Writing signal catching status failed in child A."); - break; - case 'B': if (write(pipeB_fd[1],SIG_CAUGHT,1) == -1) - tst_resm(TWARN,"Writing signal catching status failed in child B."); - break; - default: - sprintf(mesg,"Unexpected value %d for who_am_i in usr1_rout().",who_am_i); - tst_resm(TWARN,mesg); - break; - } - -} /*End of usr1_rout*/ - - -/*********************************************************** - * This routine handles the timeout alarm in the parent, - * which occurs when the child fails to notify the parent - * the status of set up. - **********************************************************/ -void notify_timeout() -{ - alarm_flag = TRUE; - -} /*End of notify_timeout*/ - -/*********************************************************** - * This routine handles the procedure for removing the - * children forked off during this test. - **********************************************************/ -void par_kill() -{ - char mesg[MAXMESG]; /*Used to buffer messages for tst_res. */ - /* - * Indicate to child1 that it can remove it's children and itself now. - */ - if (kill(pid1,SIGUSR2) == -1 && errno != ESRCH) - { - (void) sprintf(mesg,SYS_FAIL,"kill",errno,strerror(errno)); - tst_resm(TWARN,mesg); - tst_resm(TWARN,"Child 1 and it's children may still be alive."); - } - - /* - * Remove child 2. - */ - if (kill(pid2,SIGKILL) == -1 && errno != ESRCH) - tst_resm(TWARN,"Child2 may still be alive."); - - return; - -} /*End of par_kill*/ - - -/********************************************************************* - * This routine is executed by child 1 when the parent tells it to - * remove it's children and itself. - ********************************************************************/ -void chld1_kill() -{ - char mesg[MAXMESG]; /*Used to buffer messages for tst_resm. */ - - /* - * Remove children A & B. - */ - if (kill(pidA,SIGKILL) == -1 && errno != ESRCH) - { - (void) sprintf(mesg, - "The system call kill failed. Child 1's(A) child may still be alive. Errno: %d, Error message %s.", - errno,strerror(errno)); - tst_resm(TWARN,mesg); - } - if (kill(pidB,SIGKILL) == -1 && errno != ESRCH) - { - (void) sprintf(mesg, - "The system call kill failed. Child 1's(B) child may still be alive. Errno: %d, Error message %s.", - errno,strerror(errno)); - tst_resm(TWARN,mesg); - } - - exit(0); - -} /*End of chld1_kill*/ - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/kill03.c b/winsup/testsuite/winsup.api/ltp/kill03.c deleted file mode 100644 index 528a080b4..000000000 --- a/winsup/testsuite/winsup.api/ltp/kill03.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * kill03.c - * - * DESCRIPTION - * Test case to check that kill fails when given an invalid signal. - * - * ALGORITHM - * call setup - * loop if the -i option was given - * fork a child - * execute the kill system call with an invalid signal - * check the return value - * if return value is not -1 - * issue a FAIL message, break remaining tests and cleanup - * if we are doing functional testing - * if the errno was set to 22 (invalid argument). - * issue a PASS message - * otherwise - * issue a FAIL message - * call cleanup - * - * USAGE - * kill03 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * none - */ - -#include "test.h" -#include "usctest.h" - -#include -#include -#include - -void cleanup(void); -void setup(void); - -char *TCID= "kill03()"; -int TST_TOTAL = 1; - -extern int Tst_count; - -int exp_enos[] = {EINVAL, 0}; - -#define TEST_SIG 2000 - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - pid_t pid; - int exno, status, nsig; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); /* global setup */ - - TEST_EXP_ENOS(exp_enos); - - /* The following loop checks looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - status = 1; - exno = 1; - pid = fork(); - if (pid < 0) { - tst_brkm(TBROK, cleanup, "Fork of child failed"); - } else if (pid == 0) { - pause(); - /*NOTREACHED*/ - exit(exno); - } else { - TEST(kill(pid, TEST_SIG)); - kill(pid, SIGKILL); - waitpid(pid, &status, 0); - } - - if (TEST_RETURN != -1) { - tst_brkm(TFAIL, cleanup, "%s failed - errno = %d : %s " - "Expected a return value of -1 got %d", - TCID, TEST_ERRNO, strerror(TEST_ERRNO)), - TEST_RETURN; - /*NOTREACHED*/ - } - - if (STD_FUNCTIONAL_TEST) { - /* - * Check to see if the errno was set to the expected - * value of 22 : EINVAL. - */ - TEST_ERROR_LOG(TEST_ERRNO); - if (TEST_ERRNO == EINVAL) { - tst_resm(TPASS, "errno set to %d : %s, as " - "expected", TEST_ERRNO, - strerror(TEST_ERRNO)); - } else { - tst_resm(TFAIL, "errno set to %d : %s expected " - "%d : %s", TEST_ERRNO, - strerror(TEST_ERRNO), 22, strerror(22)); - } - } - } - cleanup(); - - /*NOTREACHED*/ -} - - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup(void) -{ - /* - * print timing status if that option was specified. - * print errno log if that option was specified - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/kill04.c b/winsup/testsuite/winsup.api/ltp/kill04.c deleted file mode 100644 index 2e0ff6593..000000000 --- a/winsup/testsuite/winsup.api/ltp/kill04.c +++ /dev/null @@ -1,180 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * kill04.c - * - * DESCRIPTION - * Test case to check that kill() fails when passed a non-existant pid. - * - * ALGORITHM - * call setup - * loop if the -i option was given - * fork a child - * execute the kill system call with a non-existant PID - * check the return value - * if return value is not -1 - * issue a FAIL message, break remaining tests and cleanup - * if we are doing functional testing - * if the errno was set to 3 (No such proccess) - * issue a PASS message - * otherwise - * issue a FAIL message - * call cleanup - * - * USAGE - * kill04 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * This test should be run by a non-root user - */ - -#include "test.h" -#include "usctest.h" - -#include -#include -#include - -void cleanup(void); -void setup(void); - -char *TCID= "kill04()"; -int TST_TOTAL = 1; - -extern int Tst_count; - -int exp_enos[] = {ESRCH, 0}; - -#define TEST_SIG SIGKILL - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - pid_t pid, fake_pid; - int exno, status, fake_status, nsig; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); /* global setup */ - - TEST_EXP_ENOS(exp_enos); - - /* The following loop checks looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - status = 1; - exno = 1; - pid = fork(); - if (pid < 0) { - tst_brkm(TBROK, cleanup, "Fork failed"); - } else if (pid == 0) { - pause(); - /*NOTREACHED*/ - exit(exno); - } else { - fake_pid = fork(); - if (fake_pid < 0) { - tst_brkm(TBROK, cleanup, "Second fork failed"); - } else if (fake_pid == 0) { - pause(); - /*NOTREACHED*/ - exit(exno); - } - kill(fake_pid, TEST_SIG); - waitpid(fake_pid, &fake_status, 0); - TEST(kill(fake_pid, TEST_SIG)); - kill(pid, TEST_SIG); - waitpid(pid, &status, 0); - } - - if (TEST_RETURN != -1) { - tst_brkm(TFAIL, cleanup, "%s failed - errno = %d : %s " - "Expected a return value of -1 got %d", - TCID, TEST_ERRNO, strerror(TEST_ERRNO)), - TEST_RETURN; - /*NOTREACHED*/ - } - - if (STD_FUNCTIONAL_TEST) { - /* - * Check to see if the errno was set to the expected - * value of 3 : ESRCH - */ - nsig = WTERMSIG(status); - TEST_ERROR_LOG(TEST_ERRNO); - if (TEST_ERRNO == ESRCH) { - tst_resm(TPASS, "errno set to %d : %s, as " - "expected", TEST_ERRNO, - strerror(TEST_ERRNO)); - } else { - tst_resm(TFAIL, "errno set to %d : %s expected " - "%d : %s", TEST_ERRNO, - strerror(TEST_ERRNO), 3, strerror(3)); - } - } - } - cleanup(); - - /*NOTREACHED*/ -} - - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup(void) -{ - /* - * print timing status if that option was specified. - * print errno log if that option was specified - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/kill09.c b/winsup/testsuite/winsup.api/ltp/kill09.c deleted file mode 100644 index 9d6b0a181..000000000 --- a/winsup/testsuite/winsup.api/ltp/kill09.c +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : kill09 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for kill(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) kill(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the kill(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * kill(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); -void alarm_handler(int sig); - - - - -char *TCID="kill09"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int fork_pid; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int status; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* make a child process so we can kill it */ - /* If we cannot fork => we cannot test kill, so break and exit */ - if ((fork_pid=fork()) == -1) { - tst_brkm(TBROK, cleanup, - "fork() Failure. errno=%d : %s", - errno, strerror(errno)); - } - - if (fork_pid == 0) { - /* CHILD */ - /* - * Setup alarm signal if we don't get the signal to prevent this process - * from hanging around forever. - */ - signal(SIGALRM, alarm_handler); - alarm(20); - pause(); - exit(1); - } - - /* PARENT */ - /* - * Call kill(2) - */ - TEST(kill(fork_pid, SIGKILL)); - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "kill(%d, SIGKILL) Failed, errno=%d : %s", fork_pid, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "kill(%d, SIGKILL) returned %d", fork_pid, TEST_RETURN); - } - } - - /* - * wait for process to cleanup zombies. - * - */ - waitpid(0, &status, WNOHANG); - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - (void) signal(SIGCHLD, SIG_IGN); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - -void -alarm_handler(int sig) -{ - exit(8); -} diff --git a/winsup/testsuite/winsup.api/ltp/link02.c b/winsup/testsuite/winsup.api/ltp/link02.c deleted file mode 100644 index 61294f16f..000000000 --- a/winsup/testsuite/winsup.api/ltp/link02.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : link02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for link(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) link(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the link(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * link(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="link02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char Fname[255], Lname[255]; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - struct stat fbuf, lbuf; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call link(2) - */ - TEST(link(Fname, Lname)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "link(%s, %s) Failed, errno=%d : %s", - Fname, Lname, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - stat(Fname, &fbuf); - stat(Lname, &lbuf); - if ( fbuf.st_nlink > 1 && lbuf.st_nlink > 1 && - fbuf.st_nlink == lbuf.st_nlink ) - - tst_resm(TPASS, "link(%s, %s) returned %d and link cnts match", - Fname, Lname, TEST_RETURN); - else { - tst_resm(TFAIL, - "link(%s, %s) returned %d, stat link cnts do not match %d %d", - Fname, Lname, TEST_RETURN, fbuf.st_nlink, - lbuf.st_nlink); - } - } - if (unlink(Lname) == -1) { - tst_resm(TWARN, "unlink(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - int fd; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - strcpy(Fname, "tfile"); - if ((fd = open(Fname, O_RDWR|O_CREAT, 0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, 0700) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } else if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - strcpy(Lname, "lfile"); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/link03.c b/winsup/testsuite/winsup.api/ltp/link03.c deleted file mode 100644 index 7b4395853..000000000 --- a/winsup/testsuite/winsup.api/ltp/link03.c +++ /dev/null @@ -1,330 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : link03 - * - * EXECUTED BY : anyone - * - * TEST TITLE : multi links tests - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 03/31/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) link(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * -N #links : Use #links links every iteration - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the link(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * link(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void help(); -void cleanup(); - - - -char *TCID="link03"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -extern int Tst_nobuf; - -int exp_enos[]={0, 0}; - -#define BASENAME "lkfile" - -char Basename[255]; -char Fname[255]; -int Nlinks=0; -char *Nlinkarg; - -int Nflag=0; - - -/* for test specific parse_opts options */ -option_t options[] = { - { "N:", &Nflag, &Nlinkarg }, /* -N #links */ - { NULL, NULL, NULL } -}; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - struct stat fbuf, lbuf; - int cnt; - int nlinks; - char lname[255]; - - Tst_nobuf=1; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, options, &help)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - if ( Nflag ) { - if (sscanf(Nlinkarg, "%i", &Nlinks) != 1 ) { - tst_brkm(TBROK, NULL, "--N option arg is not a number"); - tst_exit(); - } - if ( Nlinks > 1000 ) { - tst_resm(TWARN, "--N option arg > 1000 - may get errno:%d (EMLINK)", - EMLINK); - } - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - if ( Nlinks ) - nlinks = Nlinks; - else - /* min of 10 links and max of a 100 links */ - nlinks = (lc%90)+10; - - for(cnt=1; cnt < nlinks; cnt++) { - - sprintf(lname, "%s%d", Basename, cnt); - /* - * Call link(2) - */ - TEST(link(Fname, lname)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_brkm(TFAIL, cleanup, "link(%s, %s) Failed, errno=%d : %s", - Fname, lname, TEST_ERRNO, strerror(TEST_ERRNO)); - } - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - stat(Fname, &fbuf); - - for(cnt=1; cnt < nlinks; cnt++) { - sprintf(lname, "%s%d", Basename, cnt); - - stat(lname, &lbuf); - if ( fbuf.st_nlink <= 1 || lbuf.st_nlink <= 1 || - (fbuf.st_nlink != lbuf.st_nlink) ) { - - tst_resm(TFAIL, - "link(%s, %s[1-%d]) ret %d for %d files, stat values do not match %d %d", - Fname, Basename, nlinks, TEST_RETURN, nlinks, - fbuf.st_nlink, lbuf.st_nlink); - break; - } - } - if ( cnt >= nlinks ) { - tst_resm(TPASS, - "link(%s, %s[1-%d]) ret %d for %d files, stat linkcounts match %d", - Fname, Basename, nlinks, TEST_RETURN, nlinks, - fbuf.st_nlink); - } - } - else - Tst_count++; - - for(cnt=1; cnt < nlinks; cnt++) { - - sprintf(lname, "%s%d", Basename, cnt); - - if (unlink(lname) == -1) { - tst_res(TWARN, "unlink(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * help - ***************************************************************/ -void -help() -{ - printf(" -N #links : create #links hard links every iteration\n"); -} - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - int fd; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(Fname,"%s_%d", BASENAME, getpid()); - if ((fd = open(Fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } else if (close(fd) == -1) { - tst_res(TWARN, "close(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - sprintf(Basename, "%s_%d.", BASENAME, getpid()); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/link04.c b/winsup/testsuite/winsup.api/ltp/link04.c deleted file mode 100644 index 7f2390139..000000000 --- a/winsup/testsuite/winsup.api/ltp/link04.c +++ /dev/null @@ -1,426 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : link04 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Negative test cases for link(2). - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 14 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 03/30/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1-14.) link(2) returns...(See Test_cases structure below) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * Standard tst_res output formt. - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the link(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * link(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include /* for PATH_MAX */ -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - -extern char *get_high_address(); - -char *TCID="link04"; /* Test program identifier. */ -int TST_TOTAL=14; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int longpath_setup(); -int no_setup(); -int filepath_setup(); -int filepath2_setup(); -char Longpathname[PATH_MAX+2]; -char High_address[64]; -int dir_setup(); - -struct test_case_t { - char *file1; - char *desc1; - char *file2; - char *desc2; - int exp_errno; - int (*setupfunc1)(); - int (*setupfunc2)(); -} Test_cases[] = { - /* This test program should contain test cases where link */ - /* will fail regardless of who executed it (i.e. joe-user or root) */ - - /* first path is invalid */ - - { "nonexistfile", "non-existent file", "nefile", "nefile", - ENOENT, no_setup, no_setup}, - - { "", "path is empty string", "nefile", "nefile", - ENOENT, no_setup, no_setup}, - - { "neefile/file", "path contains a non-existent file", "nefile", "nefile", - ENOENT, no_setup, no_setup }, - -#ifndef __CYGWIN__ - { "regfile/file", "path contains a regular file", "nefile", "nefile", - ENOTDIR, filepath_setup, no_setup }, -#endif - - { Longpathname, "pathname too long", "nefile", "nefile", - ENAMETOOLONG, longpath_setup, no_setup }, - - { High_address, "address beyond address space", "nefile", "nefile", - EFAULT, no_setup, no_setup }, - - { (char *)-1, "negative address", "nefile", "nefile", - EFAULT, no_setup, no_setup }, - - /* second path is invalid */ - - { "regfile", "regfile", "", "empty string", - ENOENT, no_setup, no_setup}, - - { "regfile", "regfile", "neefile/file", "path contains a non-existent file", - ENOENT, filepath_setup, no_setup}, - - { "regfile", "regfile", "file/file", "path contains a regular file", - ENOENT, filepath_setup, no_setup}, - - { "regfile", "regfile", Longpathname, "pathname too long", - ENAMETOOLONG, no_setup, longpath_setup }, - - { "regfile", "regfile", High_address, "address beyond address space", - EFAULT, no_setup, no_setup }, - - { "regfile", "regfile", (char *)-1, "negative address", - EFAULT, no_setup, no_setup}, - - /* two existing files */ - - { "regfile", "regfile", "regfile2", "regfile2", - EEXIST, filepath_setup, filepath2_setup }, - - { NULL, NULL, NULL, NULL, 0, no_setup, no_setup } -}; - - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char *fname1, *fname2; - char *desc1, *desc2; - int ind; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for (ind=0; Test_cases[ind].desc1 != NULL; ind++ ) { - - fname1 = Test_cases[ind].file1; - desc1 = Test_cases[ind].desc1; - fname2 = Test_cases[ind].file2; - desc2 = Test_cases[ind].desc2; - - if ( fname1 == High_address ) - fname1 = get_high_address(); - - if ( fname2 == High_address ) - fname2 = get_high_address(); - - /* - * Call link(2) - */ - TEST(link(fname1, fname2)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_ERRNO == Test_cases[ind].exp_errno ) - tst_resm(TPASS, "link(<%s>, <%s>) Failed, errno=%d", - desc1, desc2, TEST_ERRNO); - else - tst_resm(TFAIL, - "link(<%s>, <%s>) Failed, errno=%d, expected errno:%d", - desc1, desc2, TEST_ERRNO, Test_cases[ind].exp_errno); - } - else - Tst_count++; - } else { - tst_resm(TFAIL, - "link(<%s>, <%s>) returned %d, expected -1, errno:%d", - desc1, desc2, TEST_RETURN, Test_cases[ind].exp_errno); - } - } - - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - int ind; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - for (ind=0; Test_cases[ind].desc1 != NULL; ind++ ) { - Test_cases[ind].setupfunc1(); - Test_cases[ind].setupfunc2(); - } - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - -/****************************************************************** - * - ******************************************************************/ -int -no_setup() -{ - return 0; -} - -/****************************************************************** - * - ******************************************************************/ -int -longpath_setup() -{ - int ind; - - static int alreadycalled = 0; - - if ( alreadycalled ) - return 0; - alreadycalled++; - - for(ind=0; ind<= PATH_MAX+1; ind++) { - Longpathname[ind] = 'a'; - } - return 0; - -} - -/****************************************************************** - * - ******************************************************************/ -int -filepath2_setup() -{ - int fd; - static int alreadycalled = 0; - - if ( alreadycalled ) - return 0; - alreadycalled++; - - if ( (fd=creat("regfile2", 0777)) == -1 ) { - tst_brkm(TBROK, cleanup, "creat(regfile2, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - close(fd); - return 0; -} -/****************************************************************** - * - ******************************************************************/ -int -filepath_setup() -{ - int fd; - static int alreadycalled = 0; - - if ( alreadycalled ) - return 0; - alreadycalled++; - - if ( (fd=creat("regfile", 0777)) == -1 ) { - tst_brkm(TBROK, cleanup, "creat(regfile, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - close(fd); - return 0; -} - -/****************************************************************** - * - ******************************************************************/ -int -dir_setup() -{ - static int alreadycalled = 0; - - if ( alreadycalled ) - return 0; - alreadycalled++; - - if ( mkdir("dir", 0777) == -1 ) { - tst_brkm(TBROK, cleanup, - "mkdir(dir, 0700) Failed, errno=%d : %s", - errno, strerror(errno)); - } - - return 0; -} diff --git a/winsup/testsuite/winsup.api/ltp/link05.c b/winsup/testsuite/winsup.api/ltp/link05.c deleted file mode 100644 index 5078a6a3f..000000000 --- a/winsup/testsuite/winsup.api/ltp/link05.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : link05 - * - * EXECUTED BY : anyone - * - * TEST TITLE : multi links (EMLINK) negative test - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 3 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 03/31/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) link(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the link(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * link(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); -void help(); - - - -char *TCID="link05"; /* Test program identifier. */ -#ifdef CRAY -int TST_TOTAL=2; /* Total number of test cases. */ -#else -int TST_TOTAL=1; /* Total number of test cases. */ -#endif -extern int Tst_count; /* Test Case counter for tst_* routines */ - -#define BASENAME "lkfile" - -char Basename[255]; -char Fname[255]; - -int Nflag=0; -char *Noptlinks; - -/* for test specific parse_opts options */ -option_t options[] = { - { "N:", &Nflag, &Noptlinks }, /* -N option */ - { NULL, NULL, NULL } -}; - -int nlinks = 1000; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - struct stat fbuf, lbuf; - int cnt; - char lname[255]; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, options, &help)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - if ( Nflag ) { - if ( sscanf(Noptlinks, "%i", &nlinks) != 1 ) { - tst_brkm(TBROK, cleanup, "-N option invalid, must be numeric"); - } - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for(cnt=1; cnt < nlinks; cnt++) { - - sprintf(lname, "%s%d", Basename, cnt); - /* - * Call link(2) - */ - TEST(link(Fname, lname)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - tst_resm(TFAIL, "link(%s, %s) Failed, errno=%d : %s", - Fname, lname, TEST_ERRNO, strerror(TEST_ERRNO)); - } - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - stat(Fname, &fbuf); - - for(cnt=1; cnt < nlinks; cnt++) { - sprintf(lname, "%s%d", Basename, cnt); - - stat(lname, &lbuf); - if ( fbuf.st_nlink <= 1 || lbuf.st_nlink <= 1 || - (fbuf.st_nlink != lbuf.st_nlink) ) { - - tst_resm(TFAIL, - "link(%s, %s[1-%d]) ret %d for %d files, stat values do not match %d %d", - Fname, Basename, nlinks, TEST_RETURN, nlinks, - fbuf.st_nlink, lbuf.st_nlink); - break; - } - } - if ( cnt >= nlinks ) { - tst_resm(TPASS, - "link(%s, %s[1-%d]) ret %d for %d files, stat linkcounts match %d", - Fname, Basename, nlinks, TEST_RETURN, nlinks, - fbuf.st_nlink); - } - } - else - Tst_count++; - -#ifdef CRAY -/* - * IRIX (xfs) systems do not have the 1000 link limit. - * I tried 100000 links on 2/97 without error on IRIX 6.4. - */ - /* - * Now check that one more link will put you over the top - */ - sprintf(lname, "%s%d", Basename, cnt); - - /* - * Call link(2) - */ - TEST(link(Fname, lname)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_ERRNO == EMLINK ) { - tst_resm(TPASS, - "link(%s, %s) ret %d on %d link, errno:%d", - Fname, lname, TEST_RETURN, nlinks+1, EMLINK); - } - else { - tst_resm(TFAIL, - "link(%s, %s) ret %d on %d link, errno:%d, expected -1, errno:%d", - Fname, lname, TEST_RETURN, nlinks+1, - TEST_ERRNO, EMLINK); - } - } - else - Tst_count++; - } - else { - tst_resm(TFAIL, "link(%s, %s) ret %d on %d link, expected -1, errno:%d", - Fname, lname, TEST_RETURN, nlinks+1, EMLINK); - } -#endif /* CRAY */ - - for(cnt=1; cnt < nlinks; cnt++) { - - sprintf(lname, "%s%d", Basename, cnt); - - if (unlink(lname) == -1) { - tst_res(TWARN, "unlink(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * help - ***************************************************************/ -void -help() -{ - printf(" -N #links : create #links hard links every iteration\n"); -} - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - int fd; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(Fname,"%s_%d", BASENAME, getpid()); - if ((fd = open(Fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } else if (close(fd) == -1) { - tst_res(TWARN, "close(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - sprintf(Basename, "%s_%d.", BASENAME, getpid()); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/lseek01.c b/winsup/testsuite/winsup.api/ltp/lseek01.c deleted file mode 100644 index 32756fedd..000000000 --- a/winsup/testsuite/winsup.api/ltp/lseek01.c +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : lseek01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for lseek(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 3 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) lseek(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the lseek(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * lseek(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="lseek01"; /* Test program identifier. */ -int TST_TOTAL=3; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char Fname[255]; -int Fd; - -int Whence[] = {SEEK_SET, SEEK_CUR, SEEK_END, -1}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int ind; - int offset; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - offset=(lc%100)*4096; /* max size is 100 blocks */ - - for (ind=0; Whence[ind] >= 0; ind++) { - - /* - * Call lseek(2) - */ - TEST(lseek(Fd, (long)offset, Whence[ind])); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "lseek(%s, %ld, 0) Failed, errno=%d : %s", - Fname, offset, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "lseek(%s, %ld, %d) returned %d", Fname, - offset, Whence[ind], TEST_RETURN); - } - else - Tst_count++; - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(Fname, "tfile_%d",getpid()); - if ((Fd = open(Fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the file we have open */ - if (close(Fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", Fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/lseek02.c b/winsup/testsuite/winsup.api/ltp/lseek02.c deleted file mode 100644 index 9ad906b5b..000000000 --- a/winsup/testsuite/winsup.api/ltp/lseek02.c +++ /dev/null @@ -1,243 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : lseek02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Negative test for lseek(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 04/25/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) lseek(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the lseek(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * lseek(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="lseek02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; - -int Whence[] = {SEEK_SET, SEEK_CUR, SEEK_END, -1}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call lseek(2) - */ - TEST( lseek(-1, (long)1, SEEK_SET) ); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - if ( STD_FUNCTIONAL_TEST ) { - - if ( TEST_ERRNO == EBADF ) - - tst_resm(TPASS, - "lseek(-1, 1, SEEK_SET) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - else - tst_resm(TFAIL, - "lseek(-1, 1, SEEK_SET) Failed, errno=%d : %s, expected %d(EBADF)", - TEST_ERRNO, strerror(TEST_ERRNO), EBADF); - - } - else - Tst_count++; - - } else { - - tst_resm(TFAIL, "lseek(-1, 1, SEEK_SET) returned %d", - TEST_RETURN); - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/lseek03.c b/winsup/testsuite/winsup.api/ltp/lseek03.c deleted file mode 100644 index 03c035cb9..000000000 --- a/winsup/testsuite/winsup.api/ltp/lseek03.c +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : lseek03 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Negative test for lseek(2) whence - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 04/25/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) lseek(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the lseek(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * lseek(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); -void rec_sigsys(int); - -char *TCID="lseek03"; /* Test program identifier. */ -int TST_TOTAL=3; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -char fname[255]; -int fd; -int Rec_sigsys = 0; - -int Whences[] = { 4, -1, 7 }; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int ind; - int whence; - - TST_TOTAL=sizeof(Whences)/sizeof(int); - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - - signal(SIGSYS, rec_sigsys); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for (ind=0; ind -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="lseek04"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char Fname[255]; -int Fd; - - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call lseek(2) - */ - TEST(lseek(Fd, (long)1, SEEK_SET)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - if ( STD_FUNCTIONAL_TEST ) { - - if ( TEST_ERRNO == ESPIPE ) - tst_resm(TPASS, - "lseek(fifofd, 1, SEEK_SET) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - else - tst_resm(TFAIL, - "lseek(fifofd, 1, SEEK_SET) Failed, errno=%d %s, expected %d(ESPIPE)", - TEST_ERRNO, strerror(TEST_ERRNO), - EINVAL); - } - else - Tst_count++; - } else { - - tst_resm(TFAIL, "lseek(fifofd, 1, SEEK_SET) returned %d", - TEST_RETURN); - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(Fname,"tfile_%d",getpid()); - if ( mkfifo(Fname,0700) == -1) { - tst_brkm(TBROK, cleanup, - "mkfifo(%s, 0700) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - - if ( (Fd=open(Fname, O_RDWR, 0777)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR, 0777) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the file we have open */ - if (close(Fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", Fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/lseek05.c b/winsup/testsuite/winsup.api/ltp/lseek05.c deleted file mode 100644 index 0d51643f0..000000000 --- a/winsup/testsuite/winsup.api/ltp/lseek05.c +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : lseek05 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Negative test for lseek(2) of a pipe - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 04/25/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) lseek(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the lseek(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * lseek(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="lseek05"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int Fd; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call lseek(2) - */ - TEST(lseek(Fd, (long)1, SEEK_SET)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - if ( STD_FUNCTIONAL_TEST ) { - - if ( TEST_ERRNO == ESPIPE ) - tst_resm(TPASS, - "lseek(pipefd, 1, SEEK_SET) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - else - tst_resm(TFAIL, - "lseek(pipefd, 1, SEEK_SET) Failed, errno=%d %s, expected %d(ESPIPE)", - TEST_ERRNO, strerror(TEST_ERRNO), - EINVAL); - } - else - Tst_count++; - } else { - - tst_resm(TFAIL, "lseek(pipefd, 1, SEEK_SET) returned %d", - TEST_RETURN); - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - int fds[2]; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - if ( pipe(fds) == -1) { - tst_brkm(TBROK, cleanup, - "pipe(&fds) Failed, errno=%d : %s", errno, strerror(errno)); - } - Fd = fds[0]; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the file we have open */ - if (close(Fd) == -1) { - tst_resm(TWARN, "close(%d) Failed, errno=%d : %s", Fd, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/lseek06.c b/winsup/testsuite/winsup.api/ltp/lseek06.c deleted file mode 100644 index 0262260fc..000000000 --- a/winsup/testsuite/winsup.api/ltp/lseek06.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: lseek01 - * - * Test Description: - * Verify that, lseek() call succeeds to set the file pointer position - * to less than or equal to the file size, when a file is opened for - * read or write. - * - * Expected Result: - * lseek() should return the offset from the beginning of the file measured - * in bytes. Also check if able to read valid data from this location. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * Create temporary directory. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * lseek01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define OFFSET 4 -#define TEMP_FILE "tmp_file" -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH - -char *TCID="lseek01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int fildes; /* file handle for temp file */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char read_buf[1]; /* data read from temp. file */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Invoke lseek(2) to move the read/write file - * pointer/handle by OFFSET bytes. - */ - TEST(lseek(fildes, OFFSET, SEEK_SET)); - - /* check return code of lseek(2) */ - if (TEST_RETURN == (off_t)-1) { - tst_resm(TFAIL, "lseek on (%s) Failed, errno=%d : %s", - TEMP_FILE, TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Check if the return value from lseek(2) - * is equal to the specified OFFSET value. - */ - if (TEST_RETURN != OFFSET) { - tst_resm(TFAIL, "lseek() returned incorrect " - "value %d, expected %d", - TEST_RETURN, OFFSET); - continue; - } - /* - * The return value is good, now check data. - * Read the data byte from this location. - */ - if (read(fildes, &read_buf, sizeof(read_buf)) < 0) { - tst_brkm(TFAIL, cleanup, "read() failed " - "on %s, error=%d", TEMP_FILE, errno); - } else { - /* - * Check if read byte is the expected character. - * For pos 4 ---> 'e' - */ - if (read_buf[0] != 'e') { - tst_resm(TFAIL, "Incorrect data read " - "from file %s", TEMP_FILE); - } else { - tst_resm(TPASS, "Functionality " - "of lseek() on %s " - "successful", TEMP_FILE); - } - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and write some - * data into it. - */ -void -setup() -{ - char write_buf[BUFSIZ]; /* buffer to hold data */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Get the data to be written to temporary file */ - strcpy(write_buf, "abcdefg"); - - /* Creat/open a temporary file under above directory */ - if ((fildes = open(TEMP_FILE, O_RDWR | O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d :%s", - TEMP_FILE, FILE_MODE, errno, strerror(errno)); - } - - /* Write data into temporary file */ - if(write(fildes, write_buf, strlen(write_buf)) != strlen(write_buf)) { - tst_brkm(TBROK, cleanup, "write(2) on %s Failed, errno=%d : %s", - TEMP_FILE, errno, strerror(errno)); - } -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Close the temporary file created */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, NULL, "close(%s) Failed, errno=%d : %s:", - TEMP_FILE, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/lseek07.c b/winsup/testsuite/winsup.api/ltp/lseek07.c deleted file mode 100644 index 0acc28949..000000000 --- a/winsup/testsuite/winsup.api/ltp/lseek07.c +++ /dev/null @@ -1,288 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: lseek02 - * - * Test Description: - * Verify that, lseek() call succeeds to set the file pointer position - * to more than the file size, when a file is opened for reading/writing. - * - * Expected Result: - * lseek() should return n+1, where n is the size of the file. - * Also when some data is written into this file it should start - * from that offset. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * Create temporary directory. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * lseek02 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMP_FILE "tmp_file" -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH - -char *TCID="lseek02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int fildes; /* file handle for temp file */ -size_t file_size; /* size of temporary file */ -char write_buf1[BUFSIZ]; /* buffer to hold data */ -char write_buf2[BUFSIZ]; /* buffer to hold data */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char read_buf[BUFSIZ]; /* data read from temp. file */ - off_t offset; /* byte position in temporary file */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* Set the offset position */ - offset = file_size + (lc * strlen(write_buf2)); - - /* - * Invoke lseek(2) to move the write file - * pointer/handle by the specified offset value. - */ - TEST(lseek(fildes, offset, SEEK_SET)); - - /* check return code of lseek(2) */ - if (TEST_RETURN == (off_t)-1) { - tst_resm(TFAIL, "lseek on (%s) Failed, errno=%d : %s", - TEMP_FILE, TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Check if the return value from lseek(2) - * is equal to the specified offset value. - */ - if (TEST_RETURN != offset) { - tst_resm(TFAIL, "lseek() returned " - "incorrect value %d, expected " - "%d", TEST_RETURN, offset); - continue; - } - /* - * The return value is okay, now write some data at - * the current offset position. - */ - if (write(fildes, write_buf2, strlen(write_buf2)) != - strlen(write_buf2)) { - tst_brkm(TFAIL, cleanup, "write() failed to " - "write additional data, error = %d", - errno); - } - - /* - * Now close the file and open it again - * and read all of the data. - */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, cleanup, "close() on %s Failed," - " errno = %d", TEMP_FILE, errno); - } - - /* Open the file again in read/write mode */ - if ((fildes = open(TEMP_FILE, O_RDWR)) < 0) { - tst_brkm(TFAIL, cleanup, "Could not open the " - "%s readonly, error = %d", - TEMP_FILE, errno); - } - - /* - * Now read all of the data. The size should be the - * offset + strlen(write_buf2). - */ - if (read(fildes, &read_buf, (offset + - strlen(write_buf2))) < 0) { - tst_brkm(TFAIL, cleanup, "read() failed on %s, " - "error=%d", TEMP_FILE, errno); - } else { - /* - * Check data read is the complete data and not - * the only portion written. - */ - if ((strncmp(read_buf, write_buf1, - strlen(write_buf1))) != 0) { - tst_brkm(TFAIL, cleanup, - "Incorrect data read #1 from " - "file %s", TEMP_FILE); - } - if ((strncmp(&read_buf[offset], write_buf2, - strlen(write_buf2))) != 0) { - tst_brkm(TFAIL, cleanup, - "Incorrect data read #2 from " - "file %s", TEMP_FILE); - } - tst_resm(TPASS, "Functionality of " - "lseek() on %s successful", TEMP_FILE); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and write some - * data into it. - * Get the size of the file using fstat(). - */ -void -setup() -{ - struct stat stat_buf; /* struct buffer for stat(2) */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Get the data to be written to temporary file */ - strcpy(write_buf1, "abcdefg"); - strcpy(write_buf2, "ijk"); - - /* Creat/open a temporary file for writing under above directory */ - if ((fildes = open(TEMP_FILE, O_WRONLY | O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_WRONLY|O_CREAT, %#o) Failed, errno=%d :%s", - TEMP_FILE, FILE_MODE, errno, strerror(errno)); - } - - /* Write data into temporary file */ - if(write(fildes, write_buf1, strlen(write_buf1)) != - strlen(write_buf1)) { - tst_brkm(TBROK, cleanup, "write(2) on %s Failed, errno=%d : %s", - TEMP_FILE, errno, strerror(errno)); - } - - /* Get the size of the temporary file after writing data */ - if (fstat(fildes, &stat_buf) < 0) { - tst_brkm(TBROK, cleanup, "fstat() on %s Failed, errno=%d : %s", - TEMP_FILE, errno, strerror(errno)); - } - - file_size = stat_buf.st_size; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Close the temporary file created */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, NULL, "close(%s) Failed, errno=%d : %s:", - TEMP_FILE, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/lseek08.c b/winsup/testsuite/winsup.api/ltp/lseek08.c deleted file mode 100644 index 061ac3152..000000000 --- a/winsup/testsuite/winsup.api/ltp/lseek08.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: lseek03 - * - * Test Description: - * Verify that, lseek() call succeeds to set the file pointer position - * to the end of the file when 'whence' value set to SEEK_END and any - * attempts to read from that position should fail. - * - * Expected Result: - * lseek() should return the offset which is set to the file size measured - * in bytes. read() attempt should fail with -1 return value. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * lseek03 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMP_FILE "tmp_file" -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH - -char *TCID="lseek03"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int fildes; /* file handle for temp file */ -size_t file_size; /* size of the temporary file */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char read_buf[1]; /* data read from temp. file */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Invoke lseek(2) to move the read/write file - * pointer/handle to the END of the file. - */ - TEST(lseek(fildes, 0, SEEK_END)); - - /* check return code of lseek(2) */ - if (TEST_RETURN == (off_t)-1) { - tst_resm(TFAIL, "lseek on (%s) Failed, errno=%d : %s", - TEMP_FILE, TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Check if the return value from lseek(2) - * is equal to the file_size. - */ - if (TEST_RETURN != file_size) { - tst_resm(TFAIL, "lseek() returned incorrect " - "value %d, expected %d", - TEST_RETURN, file_size); - continue; - } - /* - * The return value is okay, now attempt to read data - * from the file. This should fail as the file pointer - * should be pointing to END OF FILE. - */ - read_buf[0] = '\0'; - if (read(fildes, &read_buf, sizeof(read_buf)) > 0) { - tst_resm(TFAIL, "read() successful on %s", - TEMP_FILE); - } else { - tst_resm(TPASS, "Functionality of lseek() on " - "%s successful", TEMP_FILE); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /* NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and write some - * data into it. - * Get the size of the file using fstat(). - */ -void -setup() -{ - struct stat stat_buf; /* struct. buffer for stat(2) */ - char write_buf[BUFSIZ]; /* buffer to hold data */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Get the data to be written to temporary file */ - strcpy(write_buf, "abcdefg\n"); - - /* Creat/open a temporary file under above directory */ - if ((fildes = open(TEMP_FILE, O_RDWR | O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d :%s", - TEMP_FILE, FILE_MODE, errno, strerror(errno)); - } - - /* Write data into temporary file */ - if(write(fildes, write_buf, strlen(write_buf)) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TEMP_FILE, errno, strerror(errno)); - } - - /* Get the size of the file using fstat */ - if (fstat(fildes, &stat_buf) < 0) { - tst_brkm(TBROK, cleanup, - "fstat(2) on %s Failed, errno=%d : %s", - TEMP_FILE, errno, strerror(errno)); - } - - file_size = stat_buf.st_size; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Close the temporary file created */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, NULL, - "close(%s) Failed, errno=%d : %s:", - TEMP_FILE, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/lseek09.c b/winsup/testsuite/winsup.api/ltp/lseek09.c deleted file mode 100644 index b36df715d..000000000 --- a/winsup/testsuite/winsup.api/ltp/lseek09.c +++ /dev/null @@ -1,269 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: lseek04 - * - * Test Description: - * Verify that, lseek() call succeeds to set the file pointer position - * to the current specified location, when 'whence' value is set to - * SEEK_CUR and the data read from the specified location should match - * the expected data. - * - * Expected Result: - * lseek() should return the specified offset from the beginning of the file - * measured in bytes. The data read from this location should match the - * expected data. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * lseek04 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMP_FILE "tmp_file" -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH - -char *TCID="lseek04"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int fildes; /* file handle for temp file */ -size_t file_size; /* total size of file after data write */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - int rval; - const char *msg; /* message returned from parse_opts */ - char read_buf[BUFSIZ]; /* data read from temp. file */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Invoke lseek(2) to set the file - * pointer/handle from the current location - * of the file descriptor + specified offset. - */ - TEST(lseek(fildes, 1, SEEK_CUR)); - - /* check return code of lseek(2) */ - if (TEST_RETURN == (off_t)-1) { - tst_resm(TFAIL, "lseek on (%s) Failed, errno=%d : %s", - TEMP_FILE, TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Check if the return value from lseek(2) is equal - * to the 3 positions from the beginning of the file. - * ie, 2 positions from lseek() in the setup + - * 1 position from above above. - */ - if (TEST_RETURN != 3) { - tst_resm(TFAIL, "lseek() returned incorrect " - "value %d, expected 4", TEST_RETURN); - continue; - } - /* - * Read the data byte from this location. - */ - read_buf[0] = '\0'; - if (read(fildes, &read_buf, (file_size - 3)) < 0) { - tst_brkm(TFAIL, cleanup, - "read() failed on %s, error=%d", - TEMP_FILE, errno); - } else { - /* - * Check if read data contains - * expected characters - * From pos 4 ---> 'defg'. - */ - if (memcmp(read_buf, "defg", 4)) { - tst_resm(TFAIL, "Incorrect data read " - "from file %s", TEMP_FILE); - } else { - tst_resm(TPASS, "Functionality of " - "lseek() on %s successful", - TEMP_FILE); - } - } - } else { - tst_resm(TPASS, "call succeeded"); - } - - /* reset file pointer in case we are looping */ - if (lseek(fildes, 2, SEEK_SET) == -1) { - tst_brkm(TBROK, cleanup, "lseek failed - could not " - "reset file pointer"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and write some - * data into it. - * Get the size of the file using fstat(). - */ -void -setup() -{ - struct stat stat_buf; /* buffer to hold stat info. */ - char write_buf[BUFSIZ]; /* buffer to hold data */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Get the data to be written to temporary file */ - strcpy(write_buf, "abcdefg"); - - /* Creat/open a temporary file under above directory */ - if ((fildes = open(TEMP_FILE, O_RDWR | O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d :%s", - TEMP_FILE, FILE_MODE, errno, strerror(errno)); - } - - /* Write data into temporary file */ - if(write(fildes, write_buf, strlen(write_buf)) <= 0) { - tst_brkm(TBROK, cleanup, "write(2) on %s Failed, errno=%d : %s", - TEMP_FILE, errno, strerror(errno)); - } - - /* Get the temporary file information */ - if (fstat(fildes, &stat_buf) < 0) { - tst_brkm(TBROK, cleanup, "fstat(2) on %s Failed, errno=%d : %s", - TEMP_FILE, errno, strerror(errno)); - } - - file_size = stat_buf.st_size; - - /* - * Reset the file pointer position to the specified offset - * from the beginning of the file. - */ - if (lseek(fildes, 2, SEEK_SET) != 2) { - tst_brkm(TBROK, cleanup, - "lseek() fails to set file ptr. to specified offset"); - } -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Close the temporary file created */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, NULL, "close(%s) Failed, errno=%d : %s:", - TEMP_FILE, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/lseek10.c b/winsup/testsuite/winsup.api/ltp/lseek10.c deleted file mode 100644 index 060f3b290..000000000 --- a/winsup/testsuite/winsup.api/ltp/lseek10.c +++ /dev/null @@ -1,347 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: lseek05 - * - * Test Description: - * Verify that, - * 1. lseek() returns -1 and sets errno to ESPIPE, if the file handle of - * the specified file is associated with a pipe, socket, or FIFO. - * 2. lseek() returns -1 and sets errno to EINVAL, if the 'Whence' argument - * is not a proper value. - * 3. lseek() returns -1 and sets errno to EBADF, if the file handle of - * the specified file is not valid. - * - * Expected Result: - * lseek() should fail with return value -1 and set expected errno. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * if errno set == expected errno - * Issue sys call fails with expected return value and errno. - * Otherwise, - * Issue sys call fails with unexpected errno. - * Otherwise, - * Issue sys call returns unexpected value. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory(s)/file(s) created. - * - * Usage: - * lseek05 [-c n] [-e] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMP_FILE1 "tmp_file1" -#define TEMP_FILE2 "tmp_file2" -#define TEMP_FILE3 "tmp_file3" -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define PIPE_MODE S_IFIFO | S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define SEEK_TOP 10 - -char *TCID="lseek05"; /* Test program identifier. */ -int TST_TOTAL=3; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={ESPIPE, EINVAL, EBADF, 0}; - -int no_setup(); -int setup1(); /* setup function to test lseek() for ESPIPE */ -int setup2(); /* setup function to test lseek() for EINVAL */ -int setup3(); /* setup function to test lseek() for EBADF */ - -int fd1; /* file handle for testfile1 */ -int fd2; /* file handle for testfile2 */ -int fd3; /* file handle for testfile3 */ - -struct test_case_t { /* test case struct. to hold ref. test cond's*/ - int fd; - int Whence; - char *desc; - int exp_errno; - int (*setupfunc)(); -} Test_cases[] = { - { 1, SEEK_SET, "'fd' associated with a pipe/fifo", ESPIPE, setup1 }, - { 2, SEEK_TOP, "'whence' argument is not valid", EINVAL, setup2 }, - { 3, SEEK_SET, "'fd' is not an open file descriptor", EBADF, setup3 }, - { 0, 0, NULL, 0, no_setup } -}; - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int fildes; /* file handle for testfile */ - int whence; /* position of file handle in the file */ - char *test_desc; /* test specific error message */ - int ind; /* counter to test different test conditions */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - for (ind = 0; Test_cases[ind].desc != NULL; ind++) { - fildes = Test_cases[ind].fd; - test_desc = Test_cases[ind].desc; - whence = Test_cases[ind].Whence; - - /* Assign the 'fd' values appropriatly */ - if (fildes == 1) { - fildes = fd1; - } else if (fildes == 2) { - fildes = fd2; - } else { - fildes = fd3; - } - /* - * Invoke lseek(2) to test different test conditions. - * Verify that it fails with -1 return value and - * sets appropriate errno. - */ - TEST(lseek(fildes, 0, whence)); - - /* check return code of lseek(2) */ - if (TEST_RETURN != (off_t)-1) { - tst_resm(TFAIL, "lseek() returned %d, expected " - "-1, errno:%d", TEST_RETURN, - Test_cases[ind].exp_errno); - continue; - } - TEST_ERROR_LOG(TEST_ERRNO); - if (TEST_ERRNO == Test_cases[ind].exp_errno) { - tst_resm(TPASS, "lseek() fails, %s, errno:%d", - test_desc, TEST_ERRNO); - } else { - tst_resm(TFAIL, "lseek() fails, %s, errno:%d, " - "expected errno:%d", test_desc, - TEST_ERRNO, Test_cases[ind].exp_errno); - } - } - } - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Invoke individual test setup functions according to the order - * set in test struct. definition. - */ -void -setup() -{ - int ind; /* counter for test setup function */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* call individual setup functions */ - for (ind = 0; Test_cases[ind].desc != NULL; ind++) { - Test_cases[ind].setupfunc(); - } -} - -/* - * no_setup() - This is a dummy function which simply returns 0. - */ -int -no_setup() -{ - return 0; -} - -/* - * setup1() - setup function for a test condition for which lseek(2) - * returns -1 and sets errno to ESPIPE. - * Creat a named pipe/fifo using mknod() and open it for - * reading/writing. - * This function returns 0 on success. - */ -int -setup1() -{ - /* Creat a named pipe/fifo using mknod() */ - if (mknod(TEMP_FILE1, PIPE_MODE, 0) < 0) { - tst_brkm(TBROK, cleanup, - "mknod(%s, %#o, 0) Failed, errno=%d :%s", - TEMP_FILE1, FILE_MODE, errno, strerror(errno)); - } - - /* Open the named pipe/fifo for reading/writing */ - if ((fd1 = open(TEMP_FILE1, O_RDWR)) < 0) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR) Failed, errno=%d, :%s", - TEMP_FILE1, errno, strerror(errno)); - } - - return 0; -} - -/* - * setup2() - setup function for a test condition for which lseek(2) - * returns -1 and sets errno to EINVAL. - * Creat a temporary file for reading/writing and write some data - * into it. - * This function returns 0 on success. - */ -int -setup2() -{ - char write_buff[BUFSIZ]; /* buffer to hold data */ - - /* Get the data to be written to temporary file */ - strcpy(write_buff, "abcdefg"); - - /* Creat/open a temporary file under above directory */ - if ((fd2 = open(TEMP_FILE2, O_RDWR | O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d :%s", - TEMP_FILE2, FILE_MODE, errno, strerror(errno)); - } - - /* Write data into temporary file */ - if(write(fd2, write_buff, sizeof(write_buff)) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TEMP_FILE2, errno, strerror(errno)); - } - - return 0; -} - -/* - * setup3() - setup function for a test condition for which lseek(2) - * returns -1 and sets errno to EBADF. - * Creat a temporary file for reading/writing and close it. - * This function returns 0 on success. - */ -int -setup3() -{ - /* Creat/open a temporary file under above directory */ - if ((fd3 = open(TEMP_FILE3, O_RDWR | O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d :%s", - TEMP_FILE3, FILE_MODE, errno, strerror(errno)); - } - - /* Close the temporary file created above */ - if (close(fd3) < 0) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s:", - TEMP_FILE3, errno, strerror(errno)); - } - - return 0; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the test directory and testfile(s) created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Close the temporary file(s) created in setup1/setup2*/ - if (close(fd1) < 0) { - tst_brkm(TFAIL, NULL, - "close(%s) Failed, errno=%d : %s:", - TEMP_FILE1, errno, strerror(errno)); - } - if (close(fd2) < 0) { - tst_brkm(TFAIL, NULL, - "close(%s) Failed, errno=%d : %s:", - TEMP_FILE2, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/lstat02.c b/winsup/testsuite/winsup.api/ltp/lstat02.c deleted file mode 100644 index f6b97d78a..000000000 --- a/winsup/testsuite/winsup.api/ltp/lstat02.c +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : lstat02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for lstat(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) lstat(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the lstat(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * lstat(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="lstat02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255], lname[255], symlnk[255], buf[255]; -int fd; -struct stat statter; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call lstat(2) - */ - TEST(lstat(symlnk, &statter)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "lstat(%s, &statter) Failed, errno=%d : %s", symlnk, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "lstat(%s, &statter) returned %d", symlnk, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } else if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - - sprintf(symlnk,"lnfile_%d",getpid()); - if (symlink(fname, symlnk) == -1) { - tst_resm(TWARN, "symlink(%s, %s) Failed, errno=%d : %s", - fname, symlnk, errno, strerror(errno)); - } else if (readlink(symlnk, buf, 255) == -1) { - tst_resm(TWARN, "readlink(%s, buf, 255) Failed, errno=%d : %s", - symlnk, errno, strerror(errno)); - } else if (strcmp(buf, fname) != 0) { - tst_resm(TWARN, - "Setup Failure : Expected symbolic link contents of %s : Actual is %s", - fname, buf); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/mkdir01.c b/winsup/testsuite/winsup.api/ltp/mkdir01.c deleted file mode 100644 index 80f9bb6cc..000000000 --- a/winsup/testsuite/winsup.api/ltp/mkdir01.c +++ /dev/null @@ -1,271 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : mkdir01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic errno test for mkdir(2) - * - * PARENT DOCUMENT : mkstds02 - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Bill Branum - * - * CO-PILOT : Kathy Olmsted - * - * DATE STARTED : 4/15/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * mkdir(2) test for errno(s) EFAULT. - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * DETAILED DESCRIPTION - * This test will verify that mkdir(2) returns a value of - * -1 and sets errno to EFAULT when the path argument points - * outside (above/below) the allocated address space of the - * process. - * - * Setup: - * Setup signal handling. - * Create and make current a temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno. - * If doing functional test - * check the errno returned and print result message - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Remove the temporary directory. - * Exit. - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - -char *get_high_address(); - -char *TCID="mkdir01"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={EFAULT, 0}; /* List must end with 0 */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * TEST CASE: 1 - * mkdir() call with pointer below allocated address space. - */ - - /* Call mkdir(2) */ - TEST(mkdir((char *)-1,0777)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS, "mkdir - path argument pointing below allocated address space failed as expected with errno %d : %s", TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, "mkdir - path argument pointing below allocated address space failed with errno %d : %s but expected %d (EFAULT)", TEST_ERRNO, strerror(TEST_ERRNO),EFAULT); - } - } - else { - tst_resm(TFAIL, "mkdir - path argument pointing below allocated address space succeeded unexpectedly."); - - } - } - - - /* - * TEST CASE: 2 - * mkdir() call with pointer above allocated address space. - */ - - /* Call mkdir(2) */ - TEST(mkdir(get_high_address(),0777)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS, "mkdir - path argument pointing above allocated address space failed as expected with errno %d : %s", TEST_ERRNO, strerror(TEST_ERRNO)); - } - else { - tst_resm(TFAIL, "mkdir - path argument pointing above allocated address space failed with errno %d : %s but expected %d (EFAULT)", TEST_ERRNO, strerror(TEST_ERRNO),EFAULT); - } - } - else { - tst_resm(TFAIL, "mkdir - path argument pointing above allocated address space succeeded unexpectedly."); - - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Create a temporary directory and make it current. */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* - * Remove the temporary directory. - */ - tst_rmdir(); - - /* - * Exit with return code appropriate for results. - */ - tst_exit(); - -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/mkdir08.c b/winsup/testsuite/winsup.api/ltp/mkdir08.c deleted file mode 100644 index 8378aba34..000000000 --- a/winsup/testsuite/winsup.api/ltp/mkdir08.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : mkdir08 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for mkdir(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) mkdir(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the mkdir(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * mkdir(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="mkdir08"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call mkdir(2) - */ - TEST(mkdir(fname, 0777)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "mkdir(%s) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "mkdir(%s) returned %d", fname, TEST_RETURN); - } - if(rmdir(fname) == -1) { - tst_brkm(TBROK, cleanup, "rmdir(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname, "./dir_%d", getpid()); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/mknod01.c b/winsup/testsuite/winsup.api/ltp/mknod01.c deleted file mode 100644 index 32c7fe1e2..000000000 --- a/winsup/testsuite/winsup.api/ltp/mknod01.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : mknod01 - * - * EXECUTED BY : root - * - * TEST TITLE : Basic test for mknod(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 4 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 05/13/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) mknod(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the mknod(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * mknod(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="mknod01"; /* Test program identifier. */ -int TST_TOTAL; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -char Path[1024]; /* path to create */ -int i; /* counter for test case loop */ -int tcases[] = { /* modes to give nodes created (1 per text case) */ - S_IFREG|0777, /* ordinary file with mode 0777 */ - S_IFIFO|0777, /* fifo special with mode 0777 */ - S_IFCHR|0777, /* character special with mode 0777 */ - S_IFBLK|0777, /* block special with mode 0777 */ - - S_IFREG|04700, /* ordinary file with mode 04700 (suid) */ - S_IFREG|02700, /* ordinary file with mode 02700 (sgid) */ - S_IFREG|06700, /* ordinary file with mode 06700 (sgid & suid) */ - -#ifdef CRAY - S_IFDIR|0777, /* Direcory */ - S_IRESTART|0400, /* restartbit */ -#ifdef S_IFOFD - S_IFOFD|0777, /* off line, with data */ -#endif -#ifdef S_IFOFL - S_IFOFL|0777, /* off line, with no data */ -#endif -#endif /* CRAY */ - -}; - - - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - TST_TOTAL=(sizeof(tcases)/sizeof(tcases[0])); - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASES: - * Make nodes in tcases array - */ - for(i=0; i - * Aaron Laffin - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -char *TCID="mmap001"; -int TST_TOTAL=5; -extern int Tst_count; -static char *filename=NULL; -static int m_opt = 0; -static char *m_copt; - -void cleanup() -{ - /* - * remove the tmp directory and exit - */ - - if ( filename ) - free(filename); - - TEST_CLEANUP; - - tst_rmdir(); - - tst_exit(); -} - -void setup() -{ - char buf[1024]; - /* - * setup a default signal hander and a - * temporary working directory. - */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - tst_tmpdir(); - - TEST_PAUSE; - - snprintf(buf,1024,"testfile.%d",getpid()); - - filename = strdup(buf); -} - -void help() -{ - printf(" -m x size of mmap in pages (default 1000)\n"); -} - -/* - * add the -m option whose parameter is the - * pages that should be mapped. - */ -option_t options[] = -{ - { "m:", &m_opt, &m_copt }, - { NULL, NULL, NULL } -}; - -int main(int argc, char * argv[]) -{ - char *array; - const char *msg; - int i,lc; - int fd; - unsigned int pages,memsize; - - if ( (msg=parse_opts(argc, argv, options, help)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - if ( m_opt ) - { - memsize = pages = atoi( m_copt ); - - if (memsize < 1) - { - tst_brkm(TBROK, cleanup, "Invalid arg for -m: %s",m_copt); - } - - memsize *= getpagesize(); /* N PAGES */ - - } - else - { - /* - * default size 1000 pages; - */ - memsize = pages = 1000; - memsize *= getpagesize(); - } - - tst_resm(TINFO,"mmap()ing file of %u pages or %u bytes", pages,memsize); - - setup(); - - for (lc=0; TEST_LOOPING(lc); lc++) - { - Tst_count=0; - - fd = open(filename, O_RDWR | O_CREAT, 0666); - if ((fd == -1)) - tst_brkm(TBROK, cleanup, "Problems opening files"); - - if (lseek(fd, memsize, SEEK_SET) != memsize) - { - close(fd); - tst_brkm(TBROK, cleanup, "Problems doing the lseek: %d: %s", - errno,strerror(errno)); - } - - if (write(fd,"\0",1) !=1) - { - close(fd); - tst_brkm(TBROK, cleanup, "Problems writing: %d: %s", - errno,strerror(errno)); - } - - array = mmap(0, memsize, PROT_WRITE, MAP_SHARED,fd,0); - if (array == (char *)MAP_FAILED) - { - tst_resm(TFAIL, "mmap() failed: %d: %s", - errno,strerror(errno)); - tst_exit(); - } - else - { - tst_resm(TPASS, "mmap() completed successfully."); - } - - if ( STD_FUNCTIONAL_TEST ) - { - tst_resm(TINFO,"touching mmaped memory"); - - for(i = 0; i < memsize; i++) - { - array[i] = (char) i; - } - - /* - * seems that if the map area was bad, we'd get SEGV, hence we can - * indicate a PASS. - */ - tst_resm(TPASS, "we're still here, mmaped area must be good"); - - TEST( msync(array, memsize, MS_SYNC) ); - - if ( TEST_RETURN == -1 ) - { - tst_resm(TFAIL, "msync() failed: errno: %d: %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else - { - tst_resm(TPASS, "msync() was successful"); - } - - } /* STD_FUNCTIONAL_TEST */ - - TEST( munmap(array, memsize) ); - - if ( TEST_RETURN == -1 ) - { - tst_resm(TFAIL, "munmap() failed: errno: %d: %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } - else - { - tst_resm(TPASS, "munmap() was successful"); - } - - close(fd); - unlink(filename); - } - cleanup(); - return 0; -} diff --git a/winsup/testsuite/winsup.api/ltp/mmap02.c b/winsup/testsuite/winsup.api/ltp/mmap02.c deleted file mode 100644 index 35e944d74..000000000 --- a/winsup/testsuite/winsup.api/ltp/mmap02.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: mmap02 - * - * Test Description: - * Call mmap() with prot parameter set to PROT_READ and with the file - * descriptor being open for read, to map a file creating mapped memory - * with read access. The minimum file permissions should be 0444. - * - * The call should succeed to create the mapped region with required - * attributes. - * - * Expected Result: - * mmap() should succeed returning the address of the mapped region, - * the mapped region should contain the contents of the mapped file. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * Create temporary directory. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * mmap02 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMPFILE "mmapfile" - -char *TCID="mmap02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -char *addr; /* addr of memory mapped region */ -char *dummy; /* dummy string */ -size_t page_sz; /* system page size */ -int fildes = -1; /* file descriptor for temporary file */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call mmap to map the temporary file 'TEMPFILE' - * with read access. - */ - TEST(mmap(0, page_sz, PROT_READ, - MAP_FILE|MAP_SHARED, fildes, 0)); - - /* Check for the return value of mmap() */ - if (TEST_RETURN == (int)MAP_FAILED) { - tst_resm(TFAIL, "mmap() Failed on %s, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* Get the mmap return value */ - addr = (char *)TEST_RETURN; - - /* - * Read the file contents into the dummy - * string. - */ - if (read(fildes, dummy, page_sz) < 0) { - tst_brkm(TFAIL, cleanup, "read() on %s Failed, " - "error:%d", TEMPFILE, errno); - } - - /* - * Check whether mapped memory region has - * the file contents. - */ - if (memcmp(dummy, addr, page_sz)) { - tst_resm(TFAIL, "mapped memory area contains " - "invalid data"); - } else { - tst_resm(TPASS, - "Functionality of mmap() successful"); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - - /* Clean up things in case we are looping */ - /* Unmap the mapped memory */ - if (munmap(addr, page_sz) != 0) { - tst_brkm(TFAIL, NULL, "munmap() fails to unmap the " - "memory, errno=%d", errno); - } - - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * - * Get system page size, allocate and initialize the string dummy. - * Initialize addr such that it is more than one page below the break - * address of the process, and initialize one page region from addr - * with char 'A'. - * Create a temporary directory a file under it. - * Write some known data into file and close it. - * Change mode permissions on file to 0444. - */ -void -setup() -{ - char *tst_buff; /* test buffer to hold known data */ - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Get the system page size */ - if ((page_sz = getpagesize()) < 0) { - tst_brkm(TFAIL, NULL, - "getpagesize() fails to get system page size"); - tst_exit(); - } - - /* Allocate space for the test buffer */ - if ((tst_buff = (char *)calloc(page_sz, sizeof(char))) == NULL) { - tst_brkm(TFAIL, NULL, - "calloc() failed to allocate space for tst_buff"); - tst_exit(); - } - - /* Fill the test buffer with the known data */ - memset(tst_buff, 'A', page_sz); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a temporary file used for mapping */ - if ((fildes = open(TEMPFILE, O_RDWR | O_CREAT, 0666)) < 0) { - tst_brkm(TFAIL, NULL, "open() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Write test buffer contents into temporary file */ - if (write(fildes, tst_buff, sizeof(tst_buff)) < sizeof(tst_buff)) { - tst_brkm(TFAIL, NULL, "write() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Free the memory allocated for test buffer */ - free(tst_buff); - - /* Close the temporary file */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, cleanup, "close() Failed on %s, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - } - - /* Change Mode permissions on Temporary file */ - if (chmod(TEMPFILE, 0444) < 0) { - tst_brkm(TFAIL, cleanup, "chmod(%s, 0444) Failed, errno=%d : " - "%s", TEMPFILE, errno, strerror(errno)); - } - - /* Open the temporary file again, - Readonly mode */ - if ((fildes = open(TEMPFILE, O_RDONLY)) < 0) { - tst_brkm(TFAIL, cleanup, "open(%s, O_RDONLY) Failed, errno=%d " - ": %s", TEMPFILE, errno, strerror(errno)); - } - - - /* Allocate and initialize dummy string of system page size bytes */ - if ((dummy = (char *)calloc(page_sz, sizeof(char))) == NULL) { - tst_brkm(TFAIL, NULL, "calloc() failed to allocate space"); - tst_exit(); - } - -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Free the memory allocated to dummy variable. - * Remove the temporary directory created. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - */ - TEST_CLEANUP; - - /* Free the memory allocated for dummy string */ - if (dummy) { - free(dummy); - } - - if (fildes >= 0) - close (fildes); - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/mmap03.c b/winsup/testsuite/winsup.api/ltp/mmap03.c deleted file mode 100644 index 6c66a4c45..000000000 --- a/winsup/testsuite/winsup.api/ltp/mmap03.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: mmap03 - * - * Test Description: - * Call mmap() to map a file creating a mapped region with execute access - * under the following conditions - - * - The prot parameter is set to PROT_EXE - * - The file descriptor is open for read - * - The file being mapped has execute permission bit set. - * - The minimum file permissions should be 0555. - * - * The call should succeed to map the file creating mapped memory with the - * required attributes. - * - * Expected Result: - * mmap() should succeed returning the address of the mapped region, - * and the mapped region should contain the contents of the mapped file. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * Create temporary directory. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * mmap03 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMPFILE "mmapfile" - -char *TCID="mmap03"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -size_t page_sz; /* system page size */ -char *addr; /* addr of memory mapped region */ -char *dummy; /* dummy variable to hold temp file contents */ -int fildes = -1; /* file descriptor for temporary file */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char file_content; /* tempfile content */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call mmap to map the temporary file 'TEMPFILE' - * with execute access. - */ - TEST(mmap(0, page_sz, PROT_EXEC, - MAP_FILE|MAP_SHARED, fildes, 0)); - - /* Check for the return value of mmap() */ - if (TEST_RETURN == (int)MAP_FAILED) { - tst_resm(TFAIL, "mmap() Failed on %s, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* Get the mmap return value */ - addr = (char *)TEST_RETURN; - - /* - * Read the file contents into the dummy - * variable. - */ - if (read(fildes, dummy, page_sz) < 0) { - tst_brkm(TFAIL, cleanup, "read() on %s Failed, " - "error:%d", TEMPFILE, errno); - } - - /* - * Check whether the mapped memory region - * has the file contents. - */ - if (memcmp(dummy, addr, page_sz)) { - tst_resm(TFAIL, "mapped memory region contains " - "invalid data"); - } else { - tst_resm(TPASS, - "Functionality of mmap() successful"); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - - /* Clean up things in case we are looping */ - /* Unmap the mapped memory */ - if (munmap(addr, page_sz) != 0) { - tst_brkm(TFAIL, NULL, "munmap() fails to unmap the " - "memory, errno=%d", errno); - } - - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Get the system page size. - * Create a temporary directory and a file under it. - * Write some known data into file and close it. - * Change the mode permissions on file to 0555. - * Re-open the file for reading. - */ -void -setup() -{ - char *tst_buff; /* test buffer to hold known data */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Get the system page size */ - if ((page_sz = getpagesize()) < 0) { - tst_brkm(TFAIL, NULL, - "getpagesize() fails to get system page size"); - tst_exit(); - } - - /* Allocate space for the test buffer */ - if ((tst_buff = (char *)calloc(page_sz, sizeof(char))) == NULL) { - tst_brkm(TFAIL, NULL, - "calloc() failed to allocate space for tst_buff"); - tst_exit(); - } - - /* Fill the test buffer with the known data */ - memset(tst_buff, 'A', page_sz); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a temporary file used for mapping */ - if ((fildes = open(TEMPFILE, O_WRONLY | O_CREAT, 0666)) < 0) { - tst_brkm(TFAIL, NULL, "open() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Write test buffer contents into temporary file */ - if (write(fildes, tst_buff, strlen(tst_buff)) < strlen(tst_buff)) { - tst_brkm(TFAIL, NULL, "write() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Free the memory allocated for test buffer */ - free(tst_buff); - - /* Make sure proper permissions set on file */ - if (chmod(TEMPFILE, 0555) < 0) { - tst_brkm(TFAIL, cleanup, "chmod() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - } - - /* Close the temporary file opened for write */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, cleanup, "close() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - } - - /* Allocate and initialize dummy string of system page size bytes */ - if ((dummy = (char *)calloc(page_sz, sizeof(char))) == NULL) { - tst_brkm(TFAIL, cleanup, - "calloc() failed to allocate memory for dummy"); - } - - /* Open the temporary file again for reading */ - if ((fildes = open(TEMPFILE, O_RDONLY)) < 0) { - tst_brkm(TFAIL, cleanup, "open(%s) with read-only Failed, " - "errno:%d", TEMPFILE, errno); - } -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - Free the memory allocated to dummy variable. - * Remove the temporary directory created. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - */ - TEST_CLEANUP; - - /* Free the memory space allocated for dummy variable */ - if (dummy) { - free(dummy); - } - - if (fildes >= 0) - close (fildes); - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/mmap04.c b/winsup/testsuite/winsup.api/ltp/mmap04.c deleted file mode 100644 index 4f9018f92..000000000 --- a/winsup/testsuite/winsup.api/ltp/mmap04.c +++ /dev/null @@ -1,295 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: mmap04 - * - * Test Description: - * Call mmap() to map a file creating a mapped region with read/exec access - * under the following conditions - - * - The prot parameter is set to PROT_READ|PROT_EXEC - * - The file descriptor is open for read - * - The file being mapped has read and execute permission bit set. - * - The minimum file permissions should be 0555. - * - * The call should succeed to map the file creating mapped memory with the - * required attributes. - * - * Expected Result: - * mmap() should succeed returning the address of the mapped region, - * and the mapped region should contain the contents of the mapped file. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * Create temporary directory. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * mmap04 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMPFILE "mmapfile" - -char *TCID="mmap04"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -size_t page_sz; /* system page size */ -char *addr; /* addr of memory mapped region */ -char *dummy; /* dummy variable to hold temp file contents */ -int fildes = -1; /* file descriptor for temporary file */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char file_content; /* tempfile content */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call mmap to map the temporary file 'TEMPFILE' - * with read and execute access. - */ - TEST(mmap(0, page_sz, PROT_READ|PROT_EXEC, - MAP_FILE|MAP_SHARED, fildes, 0)); - - /* Check for the return value of mmap() */ - if (TEST_RETURN == (int)MAP_FAILED) { - tst_resm(TFAIL, "mmap() Failed on %s, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - continue; - } - - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* Get the mmap return value */ - addr = (char *)TEST_RETURN; - - /* - * Read the file contents into the dummy - * variable. - */ - if (read(fildes, dummy, page_sz) < 0) { - tst_brkm(TFAIL, cleanup, "read() on %s Failed, " - "error:%d", TEMPFILE, errno); - } - - /* - * Check whether the mapped memory region - * has the file contents. - */ - if (memcmp(dummy, addr, page_sz)) { - tst_resm(TFAIL, "mapped memory region contains " - "invalid data"); - } else { - tst_resm(TPASS, - "Functionality of mmap() successful"); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - /* Clean up things in case we are looping. */ - /* Unmap the mapped memory */ - if (munmap(addr, page_sz) != 0) { - tst_brkm(TFAIL, NULL, "munmap() fails to unmap the " - "memory, errno=%d", errno); - } - - - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Get the system page size. - * Create a temporary directory and a file under it. - * Write some known data into file and close it. - * Change the mode permissions on file to 0555. - * Re-open the file for reading. - */ -void -setup() -{ - char *tst_buff; /* test buffer to hold known data */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Get the system page size */ - if ((page_sz = getpagesize()) < 0) { - tst_brkm(TFAIL, NULL, - "getpagesize() fails to get system page size"); - tst_exit(); - } - - if ((tst_buff = (char *)calloc(page_sz, sizeof(char))) == NULL) { - tst_brkm(TFAIL, NULL, - "calloc() failed to allocate space for tst_buff"); - tst_exit(); - } - - /* Fill the test buffer with the known data */ - memset(tst_buff, 'A', page_sz); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a temporary file used for mapping */ - if ((fildes = open(TEMPFILE, O_WRONLY | O_CREAT, 0666)) < 0) { - tst_brkm(TFAIL, NULL, "open() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Write test buffer contents into temporary file */ - if (write(fildes, tst_buff, strlen(tst_buff)) < strlen(tst_buff)) { - tst_brkm(TFAIL, NULL, "write() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Free the memory allocated for test buffer */ - free(tst_buff); - - /* Make sure proper permissions set on file */ - if (chmod(TEMPFILE, 0555) < 0) { - tst_brkm(TFAIL, cleanup, "chmod() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - } - - /* Close the temporary file opened for write */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, cleanup, "close() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - } - - /* Allocate and initialize dummy string of system page size bytes */ - if ((dummy = (char *)calloc(page_sz, sizeof(char))) == NULL) { - tst_brkm(TFAIL, cleanup, - "calloc() failed to allocate memory for dummy"); - } - - /* Open the temporary file again for reading */ - if ((fildes = open(TEMPFILE, O_RDONLY)) < 0) { - tst_brkm(TFAIL, cleanup, "open(%s) with read-only Failed, " - "errno:%d", TEMPFILE, errno); - } -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Free the memeory allocated to dummy variable. - * Remove the temporary directory created. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Free the memory space allocated for dummy variable */ - if (dummy) { - free(dummy); - } - - if (fildes >= 0) - close (fildes); - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/mmap05.c b/winsup/testsuite/winsup.api/ltp/mmap05.c deleted file mode 100644 index e8186899f..000000000 --- a/winsup/testsuite/winsup.api/ltp/mmap05.c +++ /dev/null @@ -1,303 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: mmap05 - * - * Test Description: - * Call mmap() to map a file creating mapped memory with no access under - * the following conditions - - * - The prot parameter is set to PROT_NONE - * - The file descriptor is open for read(any mode other than write) - * - The minimum file permissions should be 0444. - * - * The call should succeed to map the file creating mapped memory with the - * required attributes. - * - * Expected Result: - * mmap() should succeed returning the address of the mapped region, - * and an attempt to access the contents of the mapped region should give - * rise to the signal SIGSEGV. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * Create temporary directory. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * mmap05 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMPFILE "mmapfile" - -char *TCID="mmap05"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -size_t page_sz; /* system page size */ -char *addr; /* addr of memory mapped region */ -int fildes = -1; /* file descriptor for temporary file */ -int pass=0; /* pass flag perhaps set to 1 in sig_handler */ -sigjmp_buf env; /* environment for sigsetjmp/siglongjmp */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ -void sig_handler(); /* signal handler to catch SIGSEGV */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char file_content; /* tempfile content */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call mmap to map the temporary file 'TEMPFILE' - * with no access. - */ - - TEST(mmap(0, page_sz, PROT_NONE, - MAP_FILE|MAP_SHARED, fildes, 0)); - - /* Check for the return value of mmap() */ - if (TEST_RETURN == (int)MAP_FAILED) { - tst_resm(TFAIL, "mmap() Failed on %s, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - continue; - } - - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - - /* - * Try to access the mapped region. This should - * generate a SIGSEGV which will be caught below. - * - * This is wrapped by the sigsetjmp() call that will - * take care of restoring the program's context in an - * elegant way in conjunction with the call to - * siglongjmp() in the signal handler. - */ - if (sigsetjmp(env, 1) == 0) { - file_content = addr[0]; - } - - if (pass) { - tst_resm(TPASS, "Got SIGSEGV as expected"); - } else { - tst_resm(TFAIL, "Mapped memory region with NO " - "access is accessible"); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - - /* Unmap mapped memory and reset pass in case we are looping */ - if (munmap(addr, page_sz) != 0) { - tst_brkm(TFAIL, cleanup, "munmap() fails to unmap the " - "memory, errno=%d", errno); - } - pass = 0; - - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Get the system page size. - * Create a temporary directory and a file under it. - * Write some known data into file and close it. - * Change the mode permissions on file to 0444 - * Re-open the file for reading. - */ -void -setup() -{ - char *tst_buff; /* test buffer to hold known data */ - - /* capture signals */ - tst_sig(NOFORK, sig_handler, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Get the system page size */ - if ((page_sz = getpagesize()) < 0) { - tst_brkm(TFAIL, NULL, - "getpagesize() fails to get system page size"); - tst_exit(); - } - - /* Allocate space for the test buffer */ - if ((tst_buff = (char *)calloc(page_sz, sizeof(char))) == NULL) { - tst_brkm(TFAIL, NULL, - "calloc() failed to allocate space for tst_buff"); - tst_exit(); - } - - /* Fill the test buffer with the known data */ - memset(tst_buff, 'A', page_sz); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a temporary file used for mapping */ - if ((fildes = open(TEMPFILE, O_WRONLY | O_CREAT, 0666)) < 0) { - tst_brkm(TFAIL, NULL, "open() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Write test buffer contents into temporary file */ - if (write(fildes, tst_buff, strlen(tst_buff)) != strlen(tst_buff)) { - tst_brkm(TFAIL, NULL, "write() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Free the memory allocated for test buffer */ - free(tst_buff); - - /* Close the temporary file opened for write */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, cleanup, "close() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - } - - /* Make sure proper permissions set on file */ - if (chmod(TEMPFILE, 0444) < 0) { - tst_brkm(TFAIL, cleanup, "chmod() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - } - - /* Open the temporary file again for reading */ - if ((fildes = open(TEMPFILE, O_RDONLY)) < 0) { - tst_brkm(TFAIL, cleanup, "open(%s) with read-only Failed, " - "errno:%d", TEMPFILE, errno); - } -} - -/* - * sig_handler() - Signal Cathing function. - * This function gets executed when the test process receives - * the signal SIGSEGV while trying to access the contents of memory which - * is not accessible. - */ -void -sig_handler(sig) -{ - if (sig == SIGSEGV) { - /* set the global variable and jump back */ - pass = 1; - siglongjmp(env, 1); - } else { - tst_brkm(TBROK, cleanup, "received an unexpected signal"); - } -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the temporary directory created. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (fildes >= 0) - close (fildes); - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/mmap06.c b/winsup/testsuite/winsup.api/ltp/mmap06.c deleted file mode 100644 index bc3f20eb1..000000000 --- a/winsup/testsuite/winsup.api/ltp/mmap06.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: mmap06 - * - * Test Description: - * Call mmap() to map a file creating a mapped region with read access - * under the following conditions - - * - The prot parameter is set to PROT_READ - * - The file descriptor is open for writing. - * - * The call should fail to map the file. - * - * Expected Result: - * mmap() should fail returning -1 and errno should get set to EACCES. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * Create temporary directory. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * if errno set == expected errno - * Issue sys call fails with expected return value and errno. - * Otherwise, - * Issue sys call fails with unexpected errno. - * Otherwise, - * Issue sys call returns unexpected value. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory(s)/file(s) created. - * - * Usage: - * mmap06 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMPFILE "mmapfile" - -char *TCID="mmap06"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={EACCES, 0}; - -size_t page_sz; /* system page size */ -char *addr; /* addr of memory mapped region */ -int fildes = -1; /* file descriptor for temporary file */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call mmap to map the temporary file 'TEMPFILE' - * with read access. - */ - TEST(mmap(0, page_sz, PROT_READ, - MAP_FILE|MAP_SHARED, fildes, 0)); - - /* Check for the return value of mmap() */ - if (TEST_RETURN != (int)MAP_FAILED) { - tst_resm(TFAIL, "mmap() returned invalid value, " - "expected: -1"); - /* Unmap the mapped memory */ - if (munmap(addr, page_sz) != 0) { - tst_brkm(TBROK, cleanup, "munmap() failed"); - } - continue; - } - TEST_ERROR_LOG(TEST_ERRNO); - if (TEST_ERRNO == EACCES) { - tst_resm(TPASS, "mmap() fails, 'fd' doesn't allow " - "desired access, errno:%d", errno); - } else { - tst_resm(TFAIL, "mmap() fails, 'fd' doesn't allow " - "desired access, invalid errno:%d", errno); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Get the system page size. - * Create a temporary directory and a file under it. - * Write some known data into file. - */ -void -setup() -{ - char *tst_buff; /* test buffer to hold known data */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Get the system page size */ - if ((page_sz = getpagesize()) < 0) { - tst_brkm(TFAIL, NULL, - "getpagesize() fails to get system page size"); - tst_exit(); - } - - /* Allocate space for the test buffer */ - if ((tst_buff = (char *)calloc(page_sz, sizeof(char))) == NULL) { - tst_brkm(TFAIL, NULL, - "calloc() failed to allocate space for tst_buff"); - tst_exit(); - } - - /* Fill the test buffer with the known data */ - memset(tst_buff, 'A', page_sz); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a temporary file used for mapping */ - if ((fildes = open(TEMPFILE, O_WRONLY | O_CREAT, 0666)) < 0) { - tst_brkm(TFAIL, NULL, - "open() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Write test buffer contents into temporary file */ - if (write(fildes, tst_buff, strlen(tst_buff)) < strlen(tst_buff)) { - tst_brkm(TFAIL, NULL, - "write() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Free the memory allocated for test buffer */ - free(tst_buff); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the temporary directory created. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (fildes >= 0) - close (fildes); - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/mmap07.c b/winsup/testsuite/winsup.api/ltp/mmap07.c deleted file mode 100644 index 3d1f4341d..000000000 --- a/winsup/testsuite/winsup.api/ltp/mmap07.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: mmap07 - * - * Test Description: - * Call mmap() to map a file creating a mapped region with read access - * under the following conditions - - * - The prot parameter is set to PROT_WRITE - * - The file descriptor is open for writing. - * - The flags parameter has MAP_PRIVATE set. - * - * The call should fail to map the file. - * - * Expected Result: - * mmap() should fail returning -1 and errno should get set to EACCES. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * Create temporary directory. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * if errno set == expected errno - * Issue sys call fails with expected return value and errno. - * Otherwise, - * Issue sys call fails with unexpected errno. - * Otherwise, - * Issue sys call returns unexpected value. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory(s)/file(s) created. - * - * Usage: - * mmap07 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMPFILE "mmapfile" - -char *TCID="mmap07"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={EACCES, 0}; - -size_t page_sz; /* system page size */ -char *addr; /* addr of memory mapped region */ -int fildes = -1; /* file descriptor for temporary file */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call mmap to map the temporary file 'TEMPFILE' - * with write access. - */ - TEST(mmap(0, page_sz, PROT_WRITE, - MAP_FILE|MAP_PRIVATE, fildes, 0)); - - /* Check for the return value of mmap() */ - if (TEST_RETURN != (int)MAP_FAILED) { - tst_resm(TFAIL, "mmap() returned invalid value, " - "expected: -1"); - /* Unmap the mapped memory */ - if (munmap(addr, page_sz) != 0) { - tst_brkm(TBROK, cleanup, "munmap() failed"); - } - continue; - } - TEST_ERROR_LOG(TEST_ERRNO); - if (TEST_ERRNO == EACCES) { - tst_resm(TPASS, "mmap() fails, 'fd' doesn't allow " - "desired access, errno:%d", errno); - } else { - tst_resm(TFAIL, "mmap() fails, 'fd' doesn't allow " - "desired access, invalid errno:%d", errno); - } - - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Get the system page size. - * Create a temporary directory and a file under it. - * Write some known data into file. - */ -void -setup() -{ - char *tst_buff; /* test buffer to hold known data */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Get the system page size */ - if ((page_sz = getpagesize()) < 0) { - tst_brkm(TFAIL, NULL, - "getpagesize() fails to get system page size"); - tst_exit(); - } - - /* Allocate space for the test buffer */ - if ((tst_buff = (char *)calloc(page_sz, sizeof(char))) == NULL) { - tst_brkm(TFAIL, NULL, - "calloc() failed to allocate space for tst_buff"); - tst_exit(); - } - - /* Fill the test buffer with the known data */ - memset(tst_buff, 'A', page_sz); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a temporary file used for mapping */ - if ((fildes = open(TEMPFILE, O_WRONLY | O_CREAT, 0666)) < 0) { - tst_brkm(TFAIL, NULL, "open() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Write test buffer contents into temporary file */ - if (write(fildes, tst_buff, strlen(tst_buff)) < strlen(tst_buff)) { - tst_brkm(TFAIL, NULL, "write() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Free the memory allocated for test buffer */ - free(tst_buff); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the temporary directory created. - */ -void -cleanup() -{ - /* - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (fildes >= 0) - close (fildes); - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/mmap08.c b/winsup/testsuite/winsup.api/ltp/mmap08.c deleted file mode 100644 index 8b2c05091..000000000 --- a/winsup/testsuite/winsup.api/ltp/mmap08.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: mmap08 - * - * Test Description: - * Verify that mmap() fails to map a file creating a mapped region - * when the file specified by file descriptor is not valid. - * - * Expected Result: - * mmap() should fail returning -1 and errno should get set to EBADF. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * Create temporary directory. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * if errno set == expected errno - * Issue sys call fails with expected return value and errno. - * Otherwise, - * Issue sys call fails with unexpected errno. - * Otherwise, - * Issue sys call returns unexpected value. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory(s)/file(s) created. - * - * Usage: - * mmap08 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMPFILE "mmapfile" - -char *TCID="mmap08"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={EBADF, 0}; - -size_t page_sz; /* system page size */ -char *addr; /* addr of memory mapped region */ -int fildes = -1; /* file descriptor for temporary file */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call mmap to map the temporary file 'TEMPFILE' - * which is already closed. so, fildes is not valid. - */ - TEST(mmap(0, page_sz, PROT_WRITE, - MAP_FILE|MAP_SHARED, fildes, 0)); - - /* Check for the return value of mmap() */ - if (TEST_RETURN != (int)MAP_FAILED) { - tst_resm(TFAIL, "mmap() returned invalid value, " - "expected: -1"); - /* Unmap the mapped memory */ - if (munmap(addr, page_sz) != 0) { - tst_brkm(TBROK, cleanup, "munmap() failed"); - } - continue; - } - TEST_ERROR_LOG(TEST_ERRNO); - if (TEST_ERRNO == EBADF) { - tst_resm(TPASS, "mmap() fails, 'fd' is not valid, " - "errno:%d", errno); - } else { - tst_resm(TFAIL, "mmap() fails, 'fd' is not valid, " - "invalid errno:%d", errno); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Get the system page size. - * Create a temporary directory and a file under it. - * Write some known data into file and close it. - */ -void -setup() -{ - char *tst_buff; /* test buffer to hold known data */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Get the system page size */ - if ((page_sz = getpagesize()) < 0) { - tst_brkm(TFAIL, NULL, - "getpagesize() fails to get system page size"); - tst_exit(); - } - - if ((tst_buff = (char *)calloc(page_sz, sizeof(char))) == NULL) { - tst_brkm(TFAIL, NULL, - "calloc() failed to allocate space for tst_buff"); - tst_exit(); - } - - /* Fill the test buffer with the known data */ - memset(tst_buff, 'A', page_sz); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a temporary file used for mapping */ - if ((fildes = open(TEMPFILE, O_WRONLY | O_CREAT, 0666)) < 0) { - tst_brkm(TFAIL, NULL, "open() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Write test buffer contents into temporary file */ - if (write(fildes, tst_buff, strlen(tst_buff)) != strlen(tst_buff)) { - tst_brkm(TFAIL, NULL, "write() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - free(tst_buff); - cleanup(); - } - - /* Free the memory allocated for test buffer */ - free(tst_buff); - - /* Close the temporary file opened for writing */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, cleanup, "close() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - } -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the temporary directory created. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (fildes >= 0) - close (fildes); - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/munmap01.c b/winsup/testsuite/winsup.api/ltp/munmap01.c deleted file mode 100644 index 5de98b6ff..000000000 --- a/winsup/testsuite/winsup.api/ltp/munmap01.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: munmap01 - * - * Test Description: - * Verify that, munmap call will succeed to unmap a mapped file or - * anonymous shared memory region from the calling process's address space - * and after successful completion of munmap, the unmapped region is no - * longer accessible. - * - * Expected Result: - * munmap call should succeed to unmap a mapped file or anonymous shared - * memory region from the process's address space and it returns with a - * value 0, further reference to the unmapped region should result in a - * segmentation fault (SIGSEGV). - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * munmap01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMPFILE "mmapfile" - -char *TCID="munmap01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -char *addr; /* addr of memory mapped region */ -int fildes; /* file descriptor for tempfile */ -unsigned int map_len; /* length of the region to be mapped */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ -void sig_handler(); /* signal catching function */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *)NULL, NULL); - if (msg != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* Perform global setup for test */ - setup(); - - /* - * Call munmap to unmap the mapped region of the - * temporary file from the calling process's address space. - */ - TEST(munmap(addr, map_len)); - - /* Check for the return value of munmap() */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "munmap() fails, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Check whether further reference is possible - * to the unmapped memory region by writing - * to the first byte of region with - * some arbitrary number. - */ - *addr = 50; - - /* This message is printed if no SIGSEGV */ - tst_resm(TFAIL, "process succeeds to refer unmapped " - "memory region"); - } else { - tst_resm(TPASS, "call succeeded"); - } - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - } /* End for TEST_LOOPING */ - - /* exit with return code appropriate for results */ - tst_exit(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * - * Set up signal handler to catch SIGSEGV. - * Get system page size, create a temporary file for reading/writing, - * write one byte data into it, map the open file for the specified - * map length. - */ -void -setup() -{ - size_t page_sz; /* system page size */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* call signal function to trap the signal generated */ - if (signal(SIGSEGV, sig_handler) == SIG_ERR) { - tst_brkm(TBROK, cleanup, "signal fails to catch signal"); - tst_exit(); - } - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Get the system page size */ - if ((page_sz = getpagesize()) < 0) { - tst_brkm(TBROK, cleanup, - "getpagesize() fails to get system page size"); - tst_exit(); - } - - /* - * Get the length of the open file to be mapped into process - * address space. - */ - map_len = 3 * page_sz; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a temporary file used for mapping */ - if ((fildes = open(TEMPFILE, O_RDWR | O_CREAT, 0666)) < 0) { - tst_brkm(TBROK, cleanup, "open() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - tst_exit(); - } - - /* - * move the file pointer to maplength position from the beginning - * of the file. - */ - if (lseek(fildes, map_len, SEEK_SET) == -1) { - tst_brkm(TBROK, cleanup, "lseek() fails on %s, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - tst_exit(); - } - - /* Write one byte into temporary file */ - if (write(fildes, "a", 1) != 1) { - tst_brkm(TBROK, cleanup, "write() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - tst_exit(); - } - - /* - * map the open file 'TEMPFILE' from its beginning up to the maplength - * into the calling process's address space at the system choosen - * with read/write permissions to the the mapped region. - */ - addr = mmap(0, map_len, PROT_READ | PROT_WRITE, \ - MAP_FILE | MAP_SHARED, fildes, 0); - - /* check for the return value of mmap system call */ - if (addr == (char *)MAP_FAILED) { - tst_brkm(TBROK, cleanup, "mmap() Failed on %s, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - tst_exit(); - } -} - -/* - * sig_handler() - signal catching function. - * This function is used to trap the signal generated when tried to read or - * write to the memory mapped region which is already detached from the - * calling process address space. - * this function is invoked when SIGSEGV generated and it calls test - * cleanup function and exit the program. - */ -void -sig_handler() -{ - tst_resm(TPASS, "Functionality of munmap() successful"); - - /* Invoke test cleanup function and exit */ - cleanup(); - - /* exit with return code appropriate for results */ - tst_exit(); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Close the temporary file. - * Remove the temporary directory. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Close the temporary file */ - if (close(fildes) < 0) { - tst_brkm(TFAIL, NULL, "close() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - } - - /* Remove the temporary directory and all files in it */ - tst_rmdir(); -} diff --git a/winsup/testsuite/winsup.api/ltp/munmap02.c b/winsup/testsuite/winsup.api/ltp/munmap02.c deleted file mode 100644 index deadcc2f6..000000000 --- a/winsup/testsuite/winsup.api/ltp/munmap02.c +++ /dev/null @@ -1,307 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: munmap02 - * - * Test Description: - * Verify that, munmap call will succeed to unmap a mapped file or - * anonymous shared memory region from the calling process's address space - * if the region specified by the address and the length is part or all of - * the mapped region. - * - * Expected Result: - * munmap call should succeed to unmap a part or all of mapped region of a - * file or anonymous shared memory from the process's address space and it - * returns with a value 0, - * further reference to the unmapped region should result in a segmentation - * fault (SIGSEGV). - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * munmap01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMPFILE "mmapfile" - -char *TCID="munmap02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -size_t page_sz; /* system page size */ -char *addr; /* addr of memory mapped region */ -int fildes; /* file descriptor for tempfile */ -unsigned int map_len; /* length of the region to be mapped */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ -void sig_handler(); /* signal catching function */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *)NULL, NULL); - if (msg != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* Perform global setup for test */ - setup(); - - /* - * Call munmap to unmap the part of the mapped region of the - * temporary file from the address and length that is part of - * the mapped region. - */ - TEST(munmap(addr, map_len)); - - /* Check for the return value of munmap() */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "munmap() fails, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Check whether further reference is possible - * to the unmapped memory region by writing - * to the first byte of region with - * some arbitrary number. - */ - *addr = 50; - - /* This message is printed if no SIGSEGV */ - tst_resm(TFAIL, "process succeeds to refer unmapped " - "memory region"); - } else { - tst_resm(TPASS, "call succeeded"); - } - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - } /* End for TEST_LOOPING */ - - /* exit with return code appropriate for results */ - tst_exit(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Setup signal handler to catch SIGSEGV. - * Get system page size, create a temporary file for reading/writing, - * write one byte data into it, map the open file for the specified - * map length. - */ -void -setup() -{ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* call signal function to trap the signal generated */ - if (signal(SIGSEGV, sig_handler) == SIG_ERR) { - tst_brkm(TBROK, cleanup, "signal fails to catch signal"); - tst_exit(); - } - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Get the system page size */ - if ((page_sz = getpagesize()) < 0) { - tst_brkm(TBROK, cleanup, - "getpagesize() fails to get system page size"); - tst_exit(); - } - - /* - * Get the length of the open file to be mapped into process - * address space. - */ - map_len = 3 * page_sz; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Creat a temporary file used for mapping */ - if ((fildes = open(TEMPFILE, O_RDWR | O_CREAT, 0666)) < 0) { - tst_brkm(TBROK, cleanup, "open() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - tst_exit(); - } - - /* - * move the file pointer to maplength position from the beginning - * of the file. - */ - if (lseek(fildes, map_len, SEEK_SET) == -1) { - tst_brkm(TBROK, cleanup, "lseek() fails on %s, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - tst_exit(); - } - - /* Write one byte into temporary file */ - if (write(fildes, "a", 1) != 1) { - tst_brkm(TBROK, cleanup, "write() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - tst_exit(); - } - - /* - * map the open file 'TEMPFILE' from its beginning up to the maplength - * into the calling process's address space at the system choosen - * with read/write permissions to the the mapped region. - */ - addr = mmap(0, map_len, PROT_READ | PROT_WRITE, - MAP_FILE | MAP_SHARED, fildes, 0); - - /* check for the return value of mmap system call */ - if (addr == (char *)MAP_FAILED) { - tst_brkm(TBROK, cleanup, "mmap() Failed on %s, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - tst_exit(); - } - - /* - * increment the start address of the region at which the file is - * mapped to a maplength of 3 times the system page size by the value - * of system page size and decrement the maplength value by the value - * of system page size. - */ - addr = (char *)((long)addr + page_sz); - map_len = map_len - page_sz; -} - -/* - * void - * sig_handler() - signal catching function. - * This function is used to trap the signal generated when tried to read or - * write to the memory mapped region which is already detached from the - * calling process address space. - * this function is invoked when SIGSEGV generated and it calls test - * cleanup function and exit the program. - */ -void -sig_handler() -{ - tst_resm(TPASS, "Functionality of munmap() successful"); - - /* Invoke test cleanup function and exit */ - cleanup(); - - /* exit with return code appropriate for results */ - tst_exit(); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Unmap the portion of the region of the file left unmapped. - * Close the temporary file. - * Remove the temporary directory. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* - * get the start address and length of the portion of - * the mapped region of the file. - */ - addr = (char *)((long)addr - page_sz); - map_len = map_len - page_sz; - - /* unmap the portion of the region of the file left unmapped */ - if (munmap(addr, map_len) < 0) { - tst_brkm(TBROK, NULL, - "munmap() fails to unmap portion of mapped region"); - } - - /* Close the temporary file */ - if (close(fildes) < 0) { - tst_brkm(TBROK, NULL, "close() on %s Failed, errno=%d : %s", - TEMPFILE, errno, strerror(errno)); - } - - /* Remove the temporary directory and all files in it */ - tst_rmdir(); -} diff --git a/winsup/testsuite/winsup.api/ltp/nice05.c b/winsup/testsuite/winsup.api/ltp/nice05.c deleted file mode 100644 index 602971f8a..000000000 --- a/winsup/testsuite/winsup.api/ltp/nice05.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : nice05 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for nice(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) nice(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the nice(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * nice(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="nice05"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int val; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - val = lc % 39; - /* - * Call nice(2) - */ - TEST(nice(val)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "nice(%d) Failed, errno=%d : %s", val, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "nice(%d) returned %d", val, TEST_RETURN); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/open02.c b/winsup/testsuite/winsup.api/ltp/open02.c deleted file mode 100644 index 84640ce97..000000000 --- a/winsup/testsuite/winsup.api/ltp/open02.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * open02.c - * - * DESCRIPTION - * Test if open without O_CREAT returns -1 if a file does not exist. - * - * ALGORITHM - * 1. open a new file without O_CREAT, test for return value of -1 - * - * USAGE: - * open02 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ -#include -#include -#include -#include -#include -#include -#include - -char *TCID = "open02"; -int TST_TOTAL = 1; -extern int Tst_count; - -char pfilname[40] = ""; - -int exp_enos[] = {ENOENT, 0}; - -void cleanup(void); -void setup(void); - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - struct stat statbuf; - int fildes; - unsigned short filmode; - - /* - * parse standard command line options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); /* global setup for test */ - - TEST_EXP_ENOS(exp_enos); - - /* - * check looping state if -i option given on the command line - */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - Tst_count = 0; /* reset Tst_count while looping. */ - - TEST(open(pfilname, O_RDWR, 0444)); - - if (TEST_RETURN != -1) { - tst_resm(TFAIL, "opened non-existent file"); - continue; - } - - TEST_ERROR_LOG(TEST_ERRNO); - - if (TEST_ERRNO != ENOENT) { - tst_resm(TFAIL, "open(2) set invalid errno: " - "expected ENOENT, got %d", TEST_ERRNO); - } else { - tst_resm(TPASS, "open returned ENOENT"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup(void) -{ - umask(0); - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that options was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - sprintf(pfilname, "./open3.%d", getpid()); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at completion or - * premature exit. - */ -void -cleanup(void) -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/open03.c b/winsup/testsuite/winsup.api/ltp/open03.c deleted file mode 100644 index b8dce9cee..000000000 --- a/winsup/testsuite/winsup.api/ltp/open03.c +++ /dev/null @@ -1,243 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : open03 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for open(2) - * - * PARENT DOCUMENT : xxxtds01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) open(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the open(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * open(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="open03"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call open(2) - */ - TEST(open(fname,O_RDWR|O_CREAT,0700)); - - fd=TEST_RETURN; - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "open(%s,O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "open(%s, O_RDWR|O_CREAT,0700) returned %d", - fname, TEST_RETURN); - } - - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } else if (unlink(fname) == -1) { - tst_brkm(TBROK, cleanup, - "unlink(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/pathconf01.c b/winsup/testsuite/winsup.api/ltp/pathconf01.c deleted file mode 100644 index f87c6e239..000000000 --- a/winsup/testsuite/winsup.api/ltp/pathconf01.c +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : pathconf01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for pathconf(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 6 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) pathconf(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the pathconf(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * pathconf(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="pathconf01"; /* Test program identifier. */ -int TST_TOTAL; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int i; -char *path = "/tmp"; - -struct pathconf_args -{ - char *define_tag; - int value; -} args[] = { - {"_PC_LINK_MAX", _PC_LINK_MAX}, - {"_PC_NAME_MAX", _PC_NAME_MAX}, - {"_PC_PATH_MAX", _PC_PATH_MAX}, - {"_PC_PIPE_BUF", _PC_PIPE_BUF}, - {"_PC_CHOWN_RESTRICTED", _PC_CHOWN_RESTRICTED}, - {"_PC_NO_TRUNC", _PC_NO_TRUNC}, - {NULL, 0} -}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - TST_TOTAL=(sizeof(args)/sizeof(args[0]))-1; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for (i=0; i -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="pause01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={EINTR, 0}; -void go(); - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - (void) signal(SIGALRM, go); - alarm(1); - /* - * Call pause(2) - */ - TEST(pause()); - - /* check return code. Pause returns -1 and EINTR errno */ - if (TEST_RETURN != -1) { - tst_resm(TFAIL, - "pause() returned WITHOUT an error return code : %d", - TEST_ERRNO); - } else { - /* log the errno */ - TEST_ERROR_LOG(TEST_ERRNO); - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* check the errno */ - if (TEST_ERRNO == EINTR) - tst_resm(TPASS, "pause() returned %d", TEST_RETURN); - else - tst_resm(TFAIL, "pause() returned %d. Expected %d (EINTR)", - TEST_RETURN, EINTR); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - -/* routine to catch the alarm signal */ -void -go() -{ -} diff --git a/winsup/testsuite/winsup.api/ltp/pipe01.c b/winsup/testsuite/winsup.api/ltp/pipe01.c deleted file mode 100644 index 699515da3..000000000 --- a/winsup/testsuite/winsup.api/ltp/pipe01.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * pipe01.c - * - * DESCRIPTION - * Testcase to check the basic functionality of the pipe(2) syscall: - * Check that both ends of the pipe (both file descriptors) are - * available to a process opening the pipe. - * - * ALGORITHM - * Write a string of characters down a pipe; read the string from the - * other file descriptor. Test passes if both can be done, as reported - * by the number of characters written and read. - * - * USAGE: - * pipe01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * RESTRICITONS - * NONE - */ -#include -#include -#include "test.h" -#include "usctest.h" - -char *TCID = "pipe01"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int pipe_ret; /* exit status of pipe */ - int fildes[2]; /* fds for pipe read and write */ - char wrbuf[BUFSIZ], rebuf[BUFSIZ]; - int red, written; /* no. of chars read/written to pipe */ - int greater, length; - char *strcpy(); - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); - - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(pipe(fildes)); - - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "pipe() failed unexpectedly - errno %d", - TEST_ERRNO); - continue; - } - - if (STD_FUNCTIONAL_TEST) { - - strcpy(wrbuf, "abcdefghijklmnopqrstuvwxyz"); - length = strlen(wrbuf); - - if ((written = write(fildes[1], wrbuf, length)) == -1) { - tst_brkm(TBROK, cleanup, "write() failed"); - } - - if ((written < 0) || (written > 26)) { - tst_resm(TFAIL, "Condition #1 test failed"); - continue; - } - - if ((red = read(fildes[0], rebuf, written)) == -1) { - tst_brkm(TBROK, cleanup, "read() failed"); - } - - if ((red < 0) || (red > written)) { - tst_resm(TFAIL, "Condition #2 test failed"); - continue; - } - - /* are the strings written and read equal */ - if ((greater = memcmp(rebuf, wrbuf, red)) != 0) { - tst_resm(TFAIL, "Condition #3 test failed"); - continue; - } - tst_resm(TPASS, "pipe() functionality is correct"); - } else { - tst_resm(TPASS, "call succeeded"); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/pipe08.c b/winsup/testsuite/winsup.api/ltp/pipe08.c deleted file mode 100644 index 9cc935d39..000000000 --- a/winsup/testsuite/winsup.api/ltp/pipe08.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * pipe08.c - * - * DESCRIPTION - * Check that a SIGPIPE signal is generated when a write is - * attempted on an empty pipe. - * - * ALGORITHM - * 1. Write to a pipe after closing the read side. - * 2. Check for the signal SIGPIPE to be received. - * - * USAGE: - * pipe08 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * USAGE - * pipe08 - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ -#include -#include -#include -#include "test.h" -#include "usctest.h" - -char *TCID = "pipe08"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); -void sighandler(int); - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int pipe_ret; /* exit status of pipe */ - int pipefd[2]; /* fds for pipe read/write */ - char wrbuf[BUFSIZ]; - int written, length; - int close_stat; /* exit status of close(read fd) */ - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - if (!STD_FUNCTIONAL_TEST) { - tst_resm(TWARN, "-f option should not be used"); - } - - setup(); - - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(pipe(pipefd)); - - if (TEST_RETURN != 0) { - tst_resm(TFAIL, "call failed unexpectedly"); - continue; - } - - if ((close_stat = close(pipefd[0])) == -1) { - tst_brkm(TBROK, cleanup, "close of read side failed"); - } - - strcpy(wrbuf, "abcdefghijklmnopqrstuvwxyz\0"); - length = strlen(wrbuf); - - /* - * the SIGPIPE signal will be caught here or else - * the program will dump core when the signal is - * sent - */ - written = write(pipefd[1], wrbuf, length); - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * sighandler - catch signals and look for SIGPIPE - */ -void -sighandler(int sig) -{ - if (sig != SIGPIPE) { - tst_resm(TFAIL, "expected SIGPIPE, got %d", sig); - } else { - tst_resm(TPASS, "got expected SIGPIPE signal"); - } -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, sighandler, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/pipe09.c b/winsup/testsuite/winsup.api/ltp/pipe09.c deleted file mode 100644 index 2c7d9f4c2..000000000 --- a/winsup/testsuite/winsup.api/ltp/pipe09.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * pipe09.c - * - * DESCRIPTION - * Check that two processes can use the same pipe at the same time. - * - * ALGORITHM - * 1. Open a pipe - * 2. Fork a child which writes to the pipe - * 3. Fork another child which writes a different character to the pipe - * 4. Have the parent read from the pipe - * 5. It should get the characters from both children. - * - * USAGE: - * pipe09 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -#define PIPEWRTCNT 100 /* must be an even number */ - -char *TCID = "pipe09"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int i, red, wtstatus, ret_val; - int pipe_ret; /* exit stat of pipe */ - int pipefd[2]; /* fds for pipe read/write */ - char synbuf[BUFSIZ]; - char rebuf[BUFSIZ]; - int Acnt = 0, Bcnt = 0; /* count 'A' and 'B' */ - int fork_1, fork_2; /* ret values in parent */ - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); - - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(pipe(pipefd)); - - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "pipe() call failed"); - continue; - } - - if (!STD_FUNCTIONAL_TEST) { - tst_resm(TWARN, "-f option should not be used"); - tst_resm(TPASS, "call succeeded"); - continue; - } - - if ((fork_1 = fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork() #1 failed"); - /*NOTREACHED*/ - } - - if (fork_1 == 0) { /* 1st child */ - if (close(pipefd[0]) != 0) { - tst_resm(TWARN, "pipefd[0] close failed, " - "errno = %d", errno); - exit(1); - } - - for (i = 0; i < PIPEWRTCNT / 2; ++i) { - if (write(pipefd[1], "A", 1) != 1) { - tst_resm(TWARN, "write to pipe failed"); - exit(1); - } - } - exit(0); - } - - /* parent */ - - waitpid(fork_1, &wtstatus, 0); - if (WEXITSTATUS(wtstatus) != 0) { - tst_brkm(TBROK, cleanup, "problem detected in child, " - "wait status %d, errno = %d", wtstatus, errno); - } - - if ((fork_2 = fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork() #2 failed"); - /*NOTREACHED*/ - } - - if (fork_2 == 0) { /* 2nd child */ - if (close(pipefd[0]) != 0) { - tst_resm(TWARN, "pipefd[0] close " - "failed, errno = %d", errno); - exit(1); - } - - for (i = 0; i < PIPEWRTCNT / 2; ++i) { - if (write(pipefd[1], "B", 1) != 1) { - tst_resm(TWARN, "write to pipe failed"); - exit(1); - } - } - exit(0); - } - - /* parent */ - - waitpid(fork_2, &wtstatus, 0); - if (WEXITSTATUS(wtstatus) != 0) { - tst_brkm(TBROK, cleanup, "problem detected in child, " - "wait status %d, errno = %d", wtstatus, errno); - } - - if (close(pipefd[1]) != 0) { - tst_brkm(TBROK, cleanup, "pipefd[1] close failed, " - "errno = %d", errno); - /*NOTREACHED*/ - } - - while ((red = read(pipefd[0], rebuf, 100)) > 0) { - for (i = 0; i < red; i++) { - if (rebuf[i] == 'A') { - Acnt++; - continue; - } - if (rebuf[i] == 'B') { - Bcnt++; - continue; - } - tst_resm(TFAIL, "got bogus '%c' character", - rebuf[i]); - break; - } - } - - if (red == -1) { - tst_brkm(TBROK, cleanup, "Failure reading pipefd pipe, " - "errno = %d", errno); - } - - if (Bcnt == Acnt && Bcnt == (PIPEWRTCNT / 2)) { - tst_resm(TPASS, "functionality appears to be correct"); - } else { - tst_resm(TFAIL, "functionality is not correct - Acnt " - "= %d, Bcnt = %d", Acnt, Bcnt); - } - - /* clean up things in case we are looping */ - Acnt = Bcnt = 0; - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/pipe10.c b/winsup/testsuite/winsup.api/ltp/pipe10.c deleted file mode 100644 index 410622c37..000000000 --- a/winsup/testsuite/winsup.api/ltp/pipe10.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * pipe10.c - * - * DESCRIPTION - * Check that parent can open a pipe and have a child read from it - * - * ALGORITHM - * Parent opens pipe, child reads. Passes if child can read all the - * characters written by the parent. - * - * USAGE: - * pipe10 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ -#include -#include -#include -#include -#include - -char *TCID = "pipe10"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int pipe_ret; /* exit status of pipe */ - int fd[2]; /* fds for pipe read/write */ - char wrbuf[BUFSIZ], rebuf[BUFSIZ]; - int red, written; /* no of chars read and */ - /* written to pipe */ - int length, greater, forkstat; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); - - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(pipe(fd)); - - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "pipe creation failed"); - continue; - } - - if (!STD_FUNCTIONAL_TEST) { - tst_resm(TPASS, "call succeeded"); - continue; - } - - strcpy(wrbuf, "abcdefghijklmnopqrstuvwxyz\0"); - length = strlen(wrbuf); - - written = write(fd[1], wrbuf, length); - - /* did write write at least some chars */ - if ((written < 0) || (written > length)) { - tst_brkm(TBROK, cleanup, "write to pipe failed"); - } - - forkstat = fork(); - - if (forkstat == -1) { - tst_brkm(TBROK, cleanup, "fork() failed"); - /*NOTREACHED*/ - } - - if (forkstat == 0) { /* child */ - red = read(fd[0], rebuf, written); - - /* did read , get at least some chars */ - if ((red < 0) || (red > written)) { - tst_brkm(TBROK, cleanup, "read pipe failed"); - } - - greater = memcmp(rebuf, wrbuf, red); - - /* are the strings written and read equal */ - if (greater == 0) { - tst_resm(TPASS, "functionality is correct"); - } else { - tst_resm(TFAIL, "read & write strings do " - "not match"); - } - } else { /* parent */ - /* let the child carry on */ - exit(0); - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/pipe11.c b/winsup/testsuite/winsup.api/ltp/pipe11.c deleted file mode 100644 index df7b24166..000000000 --- a/winsup/testsuite/winsup.api/ltp/pipe11.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * pipe11.c - * - * DESCRIPTION - * Check if many children can read what is written to a pipe by the - * parent. - * - * ALGORITHM - * 1. Open a pipe and write to it - * 2. Fork a large number of children - * 3. Have the children read the pipe and check how many characters - * each got - * - * USAGE: - * pipe11 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ -#include -#include -#include -#include "test.h" -#include "usctest.h" - -char *TCID = "pipe11"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -#define NUMCHILD 50 -#define NCPERCHILD 50 -char rawchars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; -int kidid; -int numchild; /* no of children to fork */ -int ncperchild; /* no of chars child should read */ -int szcharbuf; /* size of char buf */ -int pipewrcnt; /* chars written to pipe */ -char *wrbuf, *rdbuf; - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int pipe_ret; /* exit status of pipe */ - int fd[2]; /* fds for pipe read/write */ - int i; - int fork_ret, status, cond_numb = 0; - int nread, written; /* no of chars read and written */ - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); - - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(pipe(fd)); - - if (TEST_RETURN != 0) { - tst_resm(TFAIL, "pipe creation failed"); - continue; - } - - if (!STD_FUNCTIONAL_TEST) { - tst_resm(TPASS, "call succeeded"); - continue; - } - - written = write(fd[1], wrbuf, szcharbuf); - if (written != szcharbuf) { - tst_brkm(TBROK, cleanup, "write to pipe failed"); - } - -refork: - ++kidid; - fork_ret = fork(); - - if (fork_ret < 0) { - tst_brkm(TBROK, cleanup, "fork() failed"); - /*NOTREACHED*/ - } - - if ((fork_ret != 0) && (fork_ret != -1) && (kidid < numchild)) { - goto refork; - } - - if (fork_ret == 0) { /* child */ - if (close(fd[1])) { - tst_resm(TINFO, "child %d " "could not close " - "pipe", kidid); - exit(0); - } - nread = read(fd[0], rdbuf, ncperchild); - if (nread == ncperchild) { - tst_resm(TINFO, "child %d " "got %d chars", - kidid, nread); - exit(0); - } else { - tst_resm(TFAIL, "child %d did not receive " - "expected no of characters, got %d " - "characters", kidid, nread); - exit(1); - } - } - - /* parent */ - sleep(5); - tst_resm(TINFO, "There are %d children to wait for", kidid); - for (i = 1; i <= kidid; ++i) { - wait(&status); - if (status == 0) { - tst_resm(TPASS, "child %d exitted successfully", - i); - } else { - tst_resm(TFAIL, "child %d exitted with bad " - "status", i); - } - } - } - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - int i, j; - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - numchild = NUMCHILD; - ncperchild = NCPERCHILD; - - kidid = 0; - - /* allocate read and write buffers */ - szcharbuf = numchild * ncperchild; - - /* make sure pipe write doesn't block */ - if (szcharbuf == PIPE_BUF) { - /* adjust number of characters per child */ - ncperchild = szcharbuf / numchild; - } - - if ((wrbuf = (char *)malloc(szcharbuf)) == (char *)0) { - tst_brkm(TBROK, cleanup, "malloc failed"); - /*NOTREACHED*/ - } - - if ((rdbuf = (char *)malloc(szcharbuf)) == (char *)0) { - tst_brkm(TBROK, cleanup, "malloc of rdbuf failed"); - /*NOTREACHED*/ - } - - /* initialize wrbuf */ - j = 0; - for (i = 0; i < szcharbuf; ) { - wrbuf[i++] = rawchars[j++]; - if (j >= sizeof(rawchars)) { - j = 0; - } - } -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/poll01.c b/winsup/testsuite/winsup.api/ltp/poll01.c deleted file mode 100644 index 67e1f139a..000000000 --- a/winsup/testsuite/winsup.api/ltp/poll01.c +++ /dev/null @@ -1,251 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: poll01 - * - * Test Description: - * Verify that valid open file descriptor must be provided to poll() to - * succeed. - * - * Expected Result: - * poll should return the correct values when an valid file descriptor is - * provided. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * - * Usage: - * poll01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * None. - */ -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define BUF_SIZE 512 - -char *TCID="poll01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int fildes[2]; /* file descriptors of the pipe. */ -struct pollfd fds[1]; /* struct. for poll() */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - pid_t cpid; /* child process id */ - char write_buf[] = "Testing\0"; /* buffer string for write */ - char read_buf[BUF_SIZE]; /* buffer for read-end of pipe */ - int status; /* exit status of child process */ - int rval; - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *)NULL, NULL); - if (msg != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - /* - * Call poll() with the TEST macro. - */ - TEST(poll(fds, 1, -1)); - - /* check return code of poll() */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "poll() failed on write, errno=%d" - " : %s", TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - - /* write the message to the pipe */ - if (write(fildes[1], write_buf, strlen(write_buf)) - < strlen(write_buf)) { - tst_brkm(TBROK, cleanup, "write() failed on write " - "to pipe, error:%d", errno); - } - - /* Fork child process */ - if ((cpid = fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork() failed"); - } - - if (cpid == 0) { /* Child process */ - /* - * close writing end of pipe and read from - * the pipe - */ - if (close(fildes[1]) == -1) { - tst_brkm(TFAIL, NULL, "close() failed on write " - "endof pipe, errno:%d", errno); - exit(1); - } - - /* - * Set poll() data structures to check - * if data is present on read - */ - fds[0].fd = fildes[0]; - fds[0].events = POLLIN; - - /* - * If data are present, then read the data. If poll() - * and read() return expected values, then the - * functionality of poll() is correct. - */ - rval = (poll(fds, 1, -1)); - - if (rval == -1) { - tst_resm(TFAIL, "poll() failed on read - " - "errno=%d : %s", - TEST_ERRNO, strerror(errno)); - exit(1); - } - - /* Read data from read end of pipe */ - if (read(fildes[0], read_buf, sizeof(read_buf)) != - strlen(write_buf)) { - tst_brkm(TFAIL, NULL, "read() failed - " - "error:%d", errno); - exit(1); - } - - /* Now, do the actual comparision */ - if (memcmp(read_buf, write_buf, strlen(write_buf))) { - tst_resm(TFAIL, "Data from reading pipe " - "are different"); - exit(1); - } - - /* Everything is fine, exit normally */ - exit(0); - } else { /* Parent process */ - /* Wait for child to complete execution */ - wait(&status); - - if (WEXITSTATUS(status) == 1) { - tst_resm(TFAIL, "child exited abnormally"); - } else { - tst_resm(TPASS, - "Functionality of poll() successful"); - } - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * Creat read/write pipe using pipe(). - * Set poll data structures to check writing to the pipe. - */ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Creat read/write pipe */ - if (pipe(fildes) < 0) { - tst_brkm(TBROK, tst_exit, - "pipe() failed to create interprocess channel"); - } - - /* Set poll data structures */ - fds[0].fd = fildes[1]; - fds[0].events = POLLOUT; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * close read end of pipe if still open. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close read end of pipe if still open */ - if (close(fildes[0]) < 0) { - tst_brkm(TFAIL, NULL, "close() failed on read-end of pipe, " - "errno:%d", errno); - } - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/read01.c b/winsup/testsuite/winsup.api/ltp/read01.c deleted file mode 100644 index 1a54afeb0..000000000 --- a/winsup/testsuite/winsup.api/ltp/read01.c +++ /dev/null @@ -1,280 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : read01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for read(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) read(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the read(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * read(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -/* - * Set READ_BLOCK_SIZE to the block size of the system. - */ -#ifdef linux -#define READ_BLOCK_SIZE DEV_BSIZE -#else -#ifdef __CYGWIN__ -#define READ_BLOCK_SIZE S_BLKSIZE -#else -#define READ_BLOCK_SIZE BSIZE -#endif -#endif - -extern void setup(); -extern void cleanup(); - - - -char *TCID="read01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; -char fname[255], *malloc(); -int fd, i; -int offset=0; -char *s; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - if (write(fd, s, READ_BLOCK_SIZE) == -1) { - tst_brkm(TBROK, cleanup, - "write(%s, %s, %d) Failed, errno=%d : %s", - fname, s, READ_BLOCK_SIZE, errno, strerror(errno)); - } - offset+=READ_BLOCK_SIZE; - if (lseek(fd, (long)(offset-READ_BLOCK_SIZE), 0) == -1) { - tst_brkm(TBROK, cleanup, - "lseek(%s, %ld, 0) Failed, errno=%d : %s", - fname, (long)(offset-READ_BLOCK_SIZE), errno, strerror(errno)); - } - /* - * Call read(2) - */ - TEST(read(fd, s, READ_BLOCK_SIZE)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "read(fd, s, READ_BLOCK_SIZE) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "read(pfds) returned %d", TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - if ((s = malloc(READ_BLOCK_SIZE)) == NULL) { - tst_brkm(TBROK, cleanup, - "malloc(%d) Failed, errno=%d : %s", - READ_BLOCK_SIZE, errno, strerror(errno)); - } - (void) memset(s, '*', READ_BLOCK_SIZE); - for (i=0; i < READ_BLOCK_SIZE; i++) { - if ( s[i] != '*' ) { - tst_brkm(TBROK, cleanup, - "File Data pattern not setup correctly : expected * at s[%d] : found %c", - i, s[i]); - } - } - sprintf(fname,"./tfile_%d",getpid()); - if ((fd=open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (close(fd) == -1 ) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/read04.c b/winsup/testsuite/winsup.api/ltp/read04.c deleted file mode 100644 index 99dcdf68d..000000000 --- a/winsup/testsuite/winsup.api/ltp/read04.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * read01.c - * - * DESCRIPTION - * Testcase to check if read returns the number of bytes read correctly. - * - * ALGORITHM - * Create a file and write some bytes out to it. - * Attempt to read more than written. - * Check the return count, and the read buffer. The read buffer should be - * same as the write buffer. - * - * USAGE: - * read01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None - */ -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void cleanup(void); -void setup(void); - -char *TCID = "read01"; -int TST_TOTAL = 1; -extern int Tst_count; - -#define TST_SIZE 26 /* could also do strlen(palfa) */ -char fname[255]; -char palfa[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ; -int fild; - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int n; - int rfild; - char prbuf[BUFSIZ]; - - /* - * parse standard options - */ - if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){ - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); /* global setup for test */ - - /* check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - Tst_count = 0; /* reset Tst_count while looping */ - - if ((rfild = open(fname, O_RDONLY)) == -1) { - tst_brkm(TBROK, cleanup, "can't open for reading"); - /*NOTREACHED*/ - } - TEST(read(rfild, prbuf, BUFSIZ)); - - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "call failed unexpectedly"); - continue; - } - - if (STD_FUNCTIONAL_TEST) { - if (TEST_RETURN != TST_SIZE) { - tst_resm(TFAIL, "Bad read count - got %d - " - "expected %d", TEST_RETURN, TST_SIZE); - continue; - } - if (memcmp(palfa, prbuf, TST_SIZE) != 0) { - tst_resm(TFAIL, "read buffer not equal " - "to write buffer"); - continue; - } - tst_resm(TPASS, "functionality of read() is correct"); - } else { - tst_resm(TPASS, "call succeeded"); - } - if (close(rfild) == -1) { - tst_brkm(TBROK, cleanup, "close() failed"); - /*NOTREACHED*/ - } - } - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - umask(0); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - sprintf(fname,"tfile_%d",getpid()); - - if ((fild = creat(fname, 0777)) == -1) { - tst_brkm(TBROK, cleanup, "creat(%s, 0777) Failed, errno = %d" - " : %s", fname, errno, strerror(errno)); - /*NOTREACHED*/ - } - if (write(fild, palfa, TST_SIZE) != TST_SIZE) { - tst_brkm(TBROK, cleanup, "can't write to Xread"); - /*NOTREACHED*/ - } - close (fild); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at completion or - * premature exit. - */ -void -cleanup(void) -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - unlink(fname); - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/readdir01.c b/winsup/testsuite/winsup.api/ltp/readdir01.c deleted file mode 100644 index e8b5bd5a5..000000000 --- a/winsup/testsuite/winsup.api/ltp/readdir01.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : readdir01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : write multiple files and try to find them with readdir - * - * TEST CASE TOTAL : - * - * WALL CLOCK TIME : - * - * CPU TYPES : ALL - * - * AUTHOR : Nate Straz - * - * CO-PILOT : - * - * DATE STARTED : 02/16/2001 - * - * INITIAL RELEASE : Linux 2.4.x - * - * TEST CASES - * - * 1.) Create n files and check that readdir() finds n files - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the readdir(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * readdir(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include - /* test.h and usctest.h are the two header files that are required by the - * quickhit package. They contain function and macro declarations which you - * can use in your test programs - */ -#include "test.h" -#include "usctest.h" - - /* The setup and cleanup functions are basic parts of a test case. These - * steps are usually put in separate functions for clarity. The help function - * is only needed when you are adding new command line options. - */ -void setup(); -void help(); -void cleanup(); - -char *TCID="readdir01"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -extern int Tst_nobuf; - -int exp_enos[]={0, 0}; - -#define BASENAME "readdirfile" - -char Basename[255]; -char Fname[255]; -int Nfiles=0; - -/* To add command line options you need to declare a structure to pass to - * parse_opts(). options is the structure used in this example. The format is - * the string that should be added to optstring in getopt(3), an integer that - * will be used as a flag if the option is given, and a pointer to a string that - * should receive the optarg parameter from getopt(3). Here we add a -N - * option. Long options are not supported at this time. - */ -char *Nfilearg; -int Nflag=0; - -/* for test specific parse_opts options */ -option_t options[] = { - { "N:", &Nflag, &Nfilearg }, /* -N #files */ - { NULL, NULL, NULL } -}; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int cnt; - int nfiles, fd; - char fname[255]; - DIR *test_dir; - struct dirent *dptr; - - Tst_nobuf=1; - - /*************************************************************** - * parse standard options - ***************************************************************/ - /* start off by parsing the command line options. We provide a function - * that understands many common options to control looping. If you are not - * adding any new options, pass NULL in place of options and &help. - */ - if ( (msg=parse_opts(ac, av, options, &help)) ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - if ( Nflag ) { - if (sscanf(Nfilearg, "%i", &Nfiles) != 1 ) { - tst_brkm(TBROK, NULL, "--N option arg is not a number"); - tst_exit(); - } - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - /* Next you should run a setup routine to make sure your environment is - * sane. - */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state - ***************************************************************/ - /* TEST_LOOPING() is a macro that will make sure the test continues - * looping according to the standard command line args. - */ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - if ( Nfiles ) - nfiles = Nfiles; - else - /* min of 10 links and max of a 100 links */ - nfiles = (lc%90)+10; - - /* create a bunch of files to look at */ - for(cnt=0; cnt < nfiles; cnt++) { - - sprintf(fname, "%s%d", Basename, cnt); - if ((fd = open(fname, O_RDWR|O_CREAT, 0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } else if (write(fd, "hello\n", 6) < 0) { - tst_brkm(TBROK, cleanup, - "write(%s, \"hello\\n\", 6) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } else if (close(fd) < 0) { - tst_res(TWARN, "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - } - - if ((test_dir = opendir(".")) == NULL) { - tst_resm(TFAIL, "opendir(\".\") Failed, errno=%d : %s", - errno, strerror(errno)); - } else { - /* count the entries we find to see if any are missing */ - cnt = 0; - errno = 0; - while ( (dptr = readdir(test_dir)) ) { - if (strcmp(dptr->d_name, ".") && strcmp(dptr->d_name, "..")) - cnt++; - } - - if (errno != 0) { - tst_resm(TFAIL, "readir(test_dir) Failed on try %d, errno=%d : %s", - cnt, errno, strerror(errno)); - } - if (cnt == nfiles) { - tst_resm(TPASS, "found all %d that were created", nfiles); - } else if (cnt > nfiles) { - tst_resm(TFAIL, "found more files than were created"); - tst_resm(TINFO, "created: %d, found: %d", nfiles, cnt); - } else { - tst_resm(TFAIL, "found less files than were created"); - tst_resm(TINFO, "created: %d, found: %d", nfiles, cnt); - } - } - - /* Here we clean up after the test case so we can do another iteration. - */ - for(cnt=0; cnt < nfiles; cnt++) { - - sprintf(fname, "%s%d", Basename, cnt); - - if (unlink(fname) == -1) { - tst_res(TWARN, "unlink(%s) Failed, errno=%d : %s", - Fname, errno, strerror(errno)); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * help - ***************************************************************/ -/* The custom help() function is really simple. Just write your help message to - * standard out. Your help function will be called after the standard options - * have been printed - */ -void -help() -{ - printf(" -N #files : create #files files every iteration\n"); -} - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* You will want to enable some signal handling so you can capture - * unexpected signals like SIGSEGV. - */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - /* One cavet that hasn't been fixed yet. TEST_PAUSE contains the code to - * fork the test with the -c option. You want to make sure you do this - * before you create your temporary directory. - */ - TEST_PAUSE; - - /* If you are doing any file work, you should use a temporary directory. We - * provide tst_tmpdir() which will create a uniquely named temporary - * directory and cd into it. You can now create files in the current - * directory without worrying. - */ - tst_tmpdir(); - - sprintf(Basename, "%s_%d.", BASENAME, getpid()); -} - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* If you use a temporary directory, you need to be sure you remove it. Use - * tst_rmdir() to do it automatically. - */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/readlink01.c b/winsup/testsuite/winsup.api/ltp/readlink01.c deleted file mode 100644 index bb5f6e388..000000000 --- a/winsup/testsuite/winsup.api/ltp/readlink01.c +++ /dev/null @@ -1,230 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name : readlink01 - * - * Test Description : - * Verify that, readlink will succeed to read the contents of the symbolic - * link created the process. - * - * Expected Result: - * readlink() should return the contents of symbolic link path in the buffer - * on success. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * readlink01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * This test should be run by 'non-super-user' only. - * - */ -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TESTFILE "testfile" -#define SYMFILE "slink_file" -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define MAX_SIZE 256 - -char *TCID="readlink01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_val; /* strlen of testfile */ - -void setup(); /* Setup function for the test */ -void cleanup(); /* Cleanup function for the test */ - -int -main(int ac, char **av) -{ - char buffer[MAX_SIZE]; /* temporary buffer to hold symlink contents*/ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *)NULL, NULL); - if (msg != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call readlink(2) to read the contents of - * symlink into a buffer. - */ - TEST(readlink(SYMFILE, buffer, sizeof(buffer))); - - /* Check return code of readlink(2) */ - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "readlink() on %s failed, errno=%d : %s" - , SYMFILE, TEST_ERRNO, strerror(TEST_ERRNO)); - continue; - } - - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Compare the return value of readlink() - * with the expected value which is the - * strlen() of testfile. - */ - if (TEST_RETURN == exp_val) { - /* Check for the contents of buffer */ - if (memcmp(buffer, TESTFILE, exp_val) != 0) { - tst_resm(TFAIL, "Pathname %s and buffer" - " contents %s differ", - TESTFILE, buffer); - } else { - tst_resm(TPASS, "readlink() " - "functionality on '%s' is " - "correct", SYMFILE); - } - } else { - tst_resm(TFAIL, "readlink() return value %d " - "does't match, Expected %d", - TEST_RETURN, exp_val); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and close it - * Create a symbolic link of testfile. - */ -void -setup() -{ - int fd; /* file handle for testfile */ - - /* make sure test is not being run as root */ - if (0 == geteuid()) { - tst_brkm(TBROK, tst_exit, "Must not run test as root"); - } - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - if ((fd = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - } - - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } - - /* Create a symlink of testfile under temporary directory */ - if (symlink(TESTFILE, SYMFILE) < 0) { - tst_brkm(TBROK, cleanup, - "symlink(%s, %s) failed, errno=%d : %s", - TESTFILE, SYMFILE, errno, strerror(errno)); - } - - /* Get the strlen of testfile */ - exp_val = strlen(TESTFILE); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/readlink02.c b/winsup/testsuite/winsup.api/ltp/readlink02.c deleted file mode 100644 index c0ed6f154..000000000 --- a/winsup/testsuite/winsup.api/ltp/readlink02.c +++ /dev/null @@ -1,244 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : readlink02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for readlink(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) readlink(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the readlink(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * readlink(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="readlink02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; -char fname[255], buf[255], symlnk[255]; -int fd; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call readlink(2) - */ - TEST(readlink(symlnk, buf, 255)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "readlink(%s, buf, 255) Failed, errno=%d : %s", symlnk, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "readlink(%s, buf, 255) returned %d", symlnk, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"./tfile_%d",getpid()); - if ((fd=open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - if (close(fd) == -1 ) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - sprintf(symlnk,"./sl_%d",getpid()); - if (symlink(fname, symlnk) == -1) { - tst_resm(TWARN, "symlnk(%s, %s) Failed, errno=%d : %s", - fname, symlnk, errno, strerror(errno)); - } - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/readlink03.c b/winsup/testsuite/winsup.api/ltp/readlink03.c deleted file mode 100644 index 3279b903b..000000000 --- a/winsup/testsuite/winsup.api/ltp/readlink03.c +++ /dev/null @@ -1,361 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name : readlink03 - * - * Test Description : - * Verify that, - * 1) readlink(2) returns -1 and sets errno to EACCES if search/write - * permission is denied in the directory where the symbolic link - * resides. - * 2) readlink(2) returns -1 and sets errno to EINVAL if the buffer size - * is not positive. - * 3) readlink(2) returns -1 and sets errno to EINVAL if the specified - * file is not a symbolic link file. - * 4) readlink(2) returns -1 and sets errno to ENAMETOOLONG if the - * pathname component of symbolic link is too long (ie, > PATH_MAX). - * 5) readlink(2) returns -1 and sets errno to ENOENT if the component of - * symbolic link points to an empty string. - * - * Expected Result: - * readlink() should fail with return value -1 and set expected errno. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * if errno set == expected errno - * Issue sys call fails with expected return value and errno. - * Otherwise, - * Issue sys call fails with unexpected errno. - * Otherwise, - * Issue sys call returns unexpected value. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory(s)/file(s) created. - * - * Usage: - * readlink03 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS: - * This test should be executed by 'non-super-user' only. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define MODE_RWX S_IRWXU | S_IRWXG | S_IRWXO -#define FILE_MODE S_IRUSR | S_IRGRP | S_IROTH -#define DIR_TEMP "testdir_1" -#define TESTFILE "testfile" -#define TEST_FILE1 "testdir_1/tfile_1" -#define SYM_FILE1 "testdir_1/sfile_1" -#define TEST_FILE2 "tfile_2" -#define SYM_FILE2 "sfile_2" -#define MAX_SIZE 256 - -char *TCID="readlink03"; /* Test program identifier. */ -int TST_TOTAL=5; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={EACCES, EINVAL, ENAMETOOLONG, ENOENT, 0}; - -int no_setup(); -int setup1(); /* setup function to test symlink for EACCES */ -int setup2(); /* setup function to test symlink for EEXIST */ -int lpath_setup(); /* setup function to test chmod for ENAMETOOLONG */ - -char Longpathname[PATH_MAX+2]; - -struct test_case_t { /* test case struct. to hold ref. test cond's*/ - char *link; - char *desc; - int exp_errno; - size_t buf_siz; - int (*setupfunc)(); -} Test_cases[] = { -#ifndef __CYGWIN__ - { SYM_FILE1, "No Search permissions to process", EACCES, 1, setup1 }, - { SYM_FILE2, "Buffer size is not positive", EINVAL, -1, setup2 }, - { TEST_FILE2, "File is not symbolic link", EINVAL, 1, no_setup }, -#else - { TEST_FILE2, "File is not symbolic link", EINVAL, 1, setup2 }, -#endif - { Longpathname, "Symlink path too long", ENAMETOOLONG, 1, lpath_setup }, - { "", "Symlink Pathname is empty", ENOENT, 1, no_setup }, - { NULL, NULL, 0, 0, no_setup } -}; - -extern void setup(); /* Setup function for the test */ -extern void cleanup(); /* Cleanup function for the test */ - -int -main(int ac, char **av) -{ - char buffer[MAX_SIZE]; /* temporary buffer to hold symlink contents*/ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char *sym_file; /* symbolic link file name */ - char *test_desc; /* test specific error message */ - int i; /* counter to test different test conditions */ - size_t buf_size; /* size of buffer for readlink */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *)NULL, NULL); - if (msg != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* - * Invoke setup function to call individual test setup functions - * to simulate test conditions. - */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - for (i = 0; Test_cases[i].desc != NULL; i++) { - sym_file = Test_cases[i].link; - test_desc = Test_cases[i].desc; - buf_size = Test_cases[i].buf_siz; - - if (buf_size == 1) { - buf_size = sizeof(buffer); - } - - /* - * Call readlink(2) to test different test conditions. - * verify that it fails with -1 return value and sets - * appropriate errno. - */ - TEST(readlink(sym_file, buffer, buf_size)); - - /* Check return code of readlink(2) */ - if (TEST_RETURN != -1) { - tst_resm(TFAIL, "readlink() returned %d, " - "expected -1, errno:%d", TEST_RETURN, - Test_cases[i].exp_errno); - continue; - } - - TEST_ERROR_LOG(TEST_ERRNO); - - if (TEST_ERRNO == Test_cases[i].exp_errno) { - tst_resm(TPASS, "readlink(), %s, returned " - "errno %d", test_desc, TEST_ERRNO); - tst_resm(TPASS, "readlink(), %s, returned " - "errno %d", test_desc, TEST_ERRNO); - } else { - tst_resm(TFAIL, "readlink() failed, %s, " - "errno=%d, expected errno=%d", - test_desc, TEST_ERRNO, - Test_cases[i].exp_errno); - } - } /* End of TEST CASE LOOPING. */ - } /* End for TEST_LOOPING */ - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - - /*NOTREACHED*/ -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - * - * Create a temporary directory and change directory to it. - * Call test specific setup functions. - */ -void -setup() -{ - int i; - - /* make sure test is not being run as root */ - if (0 == geteuid()) { - tst_brkm(TBROK, tst_exit, "Must not run test as root"); - } - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* call individual setup functions */ - for (i = 0; Test_cases[i].desc != NULL; i++) { - Test_cases[i].setupfunc(); - } -} - -/* - * no_setup() - Some test conditions for readlink(2) do not any setup. - */ -int -no_setup() -{ - return 0; -} - -/* - * setup1() - setup function for a test condition for which readlink(2) - * returns -1 and sets errno to EACCES. - * - * Create a test directory under temporary directory and create a test file - * under this directory with mode "0666" permissions. - * Create a symlink of testfile under test directory. - * Modify the mode permissions on test directory such that process will not - * have search permissions on test directory. - */ -int -setup1() -{ - int fd; /* file handle for testfile */ - - if (mkdir(DIR_TEMP, MODE_RWX) < 0) { - tst_brkm(TBROK, cleanup, "mkdir(2) of %s failed", DIR_TEMP); - } - - if ((fd = open(TEST_FILE1, O_RDWR|O_CREAT, 0666)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, 0666) failed, errno=%d : %s", - TEST_FILE1, errno, strerror(errno)); - } - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) failed, errno=%d : %s", - TEST_FILE1, errno, strerror(errno)); - } - - /* Creat a symbolic link of testfile under test directory */ - if (symlink(TEST_FILE1, SYM_FILE1) < 0) { - tst_brkm(TBROK, cleanup, "symlink of %s failed", TEST_FILE1); - } - - /* Modify mode permissions on test directory */ - if (chmod(DIR_TEMP, FILE_MODE) < 0) { - tst_brkm(TBROK, cleanup, "chmod(2) of %s failed", DIR_TEMP); - } - return 0; -} - -/* - * setup2() - setup function for a test condition for which readlink(2) - * returns -1 and sets errno to EINVAL. - * - * Create a testfile under temporary directory and create a symlink - * file of it. - */ -int -setup2() -{ - int fd; /* file handle for testfile */ - - /* Creat a testfile and close it */ - if ((fd = open(TEST_FILE2, O_RDWR|O_CREAT, 0666)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, 0666) failed, errno=%d : %s", - TEST_FILE2, errno, strerror(errno)); - } - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, "close(%s) failed, errno=%d : %s", - TEST_FILE2, errno, strerror(errno)); - } - - /* Creat a symlink of testfile created above */ - if (symlink(TEST_FILE2, SYM_FILE2) < 0) { - tst_brkm(TBROK, cleanup, "symlink() failed to create %s in " - "setup2, error=%d", SYM_FILE2, errno); - } - return 0; -} - -/* - * lpath_setup() - setup to create a node with a name length exceeding - * the MAX. length of PATH_MAX. - */ -int -lpath_setup() -{ - int i; /* counter variable */ - - for (i = 0; i <= (PATH_MAX + 1); i++) { - Longpathname[i] = 'a'; - } - return 0; -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * - * Restore the mode permissions on test directory. - * Remove the temporary directory created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Restore mode permissions on test directory created in setup2() */ - if (chmod(DIR_TEMP, MODE_RWX) < 0) { - tst_brkm(TBROK, NULL, "chmod(2) of %s failed", DIR_TEMP); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/rename01.c b/winsup/testsuite/winsup.api/ltp/rename01.c deleted file mode 100644 index 551efe722..000000000 --- a/winsup/testsuite/winsup.api/ltp/rename01.c +++ /dev/null @@ -1,264 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * rename01 - * - * DESCRIPTION - * This test will verify the rename(2) syscall basic functionality. - * Verify rename() works when the "new" file or directory does not exist. - * - * ALGORITHM - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * 1. "old" is plain file, new does not exists - * create the "old" file, make sure the "new" file - * dose not exist - * rename the "old" to the "new" file - * verify the "new" file points to the "old" file - * verify the "old" file does not exist - * - * 2. "old" is a directory,"new" does not exists - * create the "old" directory, make sure "new" - * dose not exist - * rename the "old" to the "new" - * verify the "new" points to the "old" - * verify the "old" does not exist - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * USAGE - * rename01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None. - */ -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); -extern void do_file_setup(char *); - -char *TCID="rename01"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -char fname[255], mname[255]; -char fdir[255], mdir[255]; -struct stat buf1; -dev_t f_olddev, d_olddev; -ino_t f_oldino, d_oldino; - -struct test_case_t { - char *name1; - char *name2; - char *desc; - dev_t *olddev; - ino_t *oldino; -} TC[] = { - /* comment goes here */ - {fname, mname, "file", &f_olddev, &f_oldino}, - - /* comment goes here */ - {fdir, mdir, "directory", &d_olddev, &d_oldino} -}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int i; - - /* - * parse standard options - */ - if ((msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* - * perform global setup for test - */ - setup(); - - /* - * check looping state if -i option given - */ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* loop through the test cases */ - for (i=0; i -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); -void do_file_setup(); - - - -char *TCID="rename02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; -int fd; -char fname[255], mname[255]; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call rename(2) - */ - TEST(rename(fname, mname)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "rename(%s, %s) Failed, errno=%d : %s", fname, mname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "rename(%s, %s) returned %d", fname, mname, TEST_RETURN); - } - if (unlink(mname) == -1) { - tst_resm(TWARN, "unlink(%s) Failed, errno=%d : %s", mname, errno, strerror(errno)); - } - do_file_setup(); - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"./tfile_%d",getpid()); - sprintf(mname,"./rnfile_%d",getpid()); - do_file_setup(); - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ - -void -do_file_setup() -{ - if ((fd=open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - - if (close(fd) == -1 ) - tst_resm(TWARN, "close(%s) Failed on file create, errno=%d : %s", - fname, errno, strerror(errno)); - -} diff --git a/winsup/testsuite/winsup.api/ltp/rename08.c b/winsup/testsuite/winsup.api/ltp/rename08.c deleted file mode 100644 index e83923901..000000000 --- a/winsup/testsuite/winsup.api/ltp/rename08.c +++ /dev/null @@ -1,206 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * rename08 - * - * DESCRIPTION - * This test will verify that rename(2) syscall failed in EFAULT - * - * ALGORITHM - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * Create a valid file to use in the rename() call. - * - * Test: - * Loop if the proper options are given. - * 1. "old" is a valid file, newpath points to address - * outside allocated address space - * rename the "old" to the "new" file - * verify rename() failed with error EFAULT - * - * 2. "old" points to address outside allocated address space - * ,"new" is a valid file - * rename the "old" to the "new" - * verify rename() failed with error EFAULT - * - * 3. oldpath and newpath are all NULL - * try to rename NULL to NULL - * verify rename() failed with error EFAULT - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created.* - * USAGE - * rename08 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None. - */ -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); -extern void do_file_setup(char *); - -char *TCID="rename08"; /* Test program identifier. */ -int TST_TOTAL=3; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={EFAULT, 0}; /* List must end with 0 */ - -int fd; -char fname[255]; - -struct test_case_t { - char *fd; - char *fd2; - int error; -} TC[] = { - /* "new" file is invalid - EFAULT */ - {fname, (char *)-1, EFAULT}, - - /* "old" file is invalid - EFAULT */ - {(char *)-1, fname, EFAULT}, - - /* both files are NULL - EFAULT */ - {NULL, NULL, EFAULT} -}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int i; - - /* - * parse standard options - */ - if ((msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* - * perform global setup for test - */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* - * check looping state if -i option given - */ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* loop through the test cases */ - for (i = 0; i < TST_TOTAL; i++) { - - TEST(rename(TC[i].fd, TC[i].fd2)); - - if (TEST_RETURN != -1) { - tst_resm(TFAIL, "call succeeded unexpectedly"); - continue; - } - - TEST_ERROR_LOG(TEST_ERRNO); - - if (TEST_ERRNO == TC[i].error) { - tst_resm(TPASS, "expected failure - " - "errno = %d : %s", TEST_ERRNO, - strerror(TEST_ERRNO)); - } else { - tst_resm(TFAIL, "unexpected error - %d : %s - " - "expected %d", TEST_ERRNO, - strerror(TEST_ERRNO), TC[i].error); - } - } - } /* End for TEST_LOOPING */ - - /* - * cleanup and exit - */ - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Create a temporary directory and make it current. */ - tst_tmpdir(); - - sprintf(fname,"./tfile_%d",getpid()); - - do_file_setup(fname); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* - * Remove the temporary directory. - */ - tst_rmdir(); - - /* - * Exit with return code appropriate for results. - */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/rename10.c b/winsup/testsuite/winsup.api/ltp/rename10.c deleted file mode 100644 index c1aae92b5..000000000 --- a/winsup/testsuite/winsup.api/ltp/rename10.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * rename10 - * - * DESCRIPTION - * This test will verify that rename(2) syscall fails with ENAMETOOLONG - * and ENOENT - * - * ALGORITHM - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * create the "old" file - * - * Test: - * Loop if the proper options are given. - * 1. rename the "old" to the "new" file - * verify rename() failed with error ENAMETOOLONG - * - * 2. "new" path contains a directory that does not exist - * rename the "old" to the "new" - * verify rename() failed with error ENOENT - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created.* - * - * USAGE - * rename10 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None. - */ -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); -extern void do_file_setup(char *); - -char *TCID="rename10"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -char badmname[] = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyzabcdefghijklmnopqrstmnopqrstuvwxyz"; - -int exp_enos[]={ENAMETOOLONG, ENOENT, 0}; /* List must end with 0 */ - -int fd; -char fname[255], mname[255]; -char mdir[255]; - -struct test_case_t { - char *fd1; - char *fd2; - int error; -} TC[] = { - /* badmname is too long for a file name - ENAMETOOLONG */ - {fname, badmname, ENAMETOOLONG}, - - /* mname contains a directory component which does not exist - ENOENT */ - {fname, mname, ENOENT} -}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - int i; - - /* - * parse standard options - */ - if ((msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* - * perform global setup for test - */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* - * check looping state if -i option given - */ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* loop through the test cases */ - for (i=0; i < TST_TOTAL; i++) { - - TEST(rename(TC[i].fd1, TC[i].fd2)); - - if (TEST_RETURN != -1) { - tst_resm(TFAIL, "call succeeded unexpectedly"); - continue; - } - - TEST_ERROR_LOG(TEST_ERRNO); - - if (TEST_ERRNO == TC[i].error) { - tst_resm(TPASS, "expected failure - " - "errno = %d : %s", TEST_ERRNO, - strerror(TEST_ERRNO)); - } else { - tst_resm(TFAIL, "unexpected error - %d : %s - " - "expected %d", TEST_ERRNO, - strerror(TEST_ERRNO), TC[i].error); - } - } - } /* End for TEST_LOOPING */ - - /* - * cleanup and exit - */ - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Create a temporary directory and make it current. */ - tst_tmpdir(); - - sprintf(fname,"./tfile_%d",getpid()); - sprintf(mdir,"./rndir_%d",getpid()); - sprintf(mname,"%s/rnfile_%d",mdir,getpid()); - - do_file_setup(fname); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* - * Remove the temporary directory. - */ - tst_rmdir(); - - /* - * Exit with return code appropriate for results. - */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/rmdir01.c b/winsup/testsuite/winsup.api/ltp/rmdir01.c deleted file mode 100644 index 5b16a518b..000000000 --- a/winsup/testsuite/winsup.api/ltp/rmdir01.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * rmdir01 - * - * DESCRIPTION - * This test will verify that rmdir(2) syscall basic functionality. - * verify rmdir(2) returns a value of 0 and the directory being - * removed - * - * ALGORITHM - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * make a directory tstdir - * call rmdir(tstdir), check the return value - * verify the directory tstdir does not exists. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created.* - * USAGE - * rmdir01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * HISTORY - * 07/2001 Ported by Wayne Boyer - * - * RESTRICTIONS - * None. - */ -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - -#define PERMS 0777 - -char *TCID="rmdir01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -char tstdir [100]; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - struct stat buf; - - /* - * parse standard options - */ - if ((msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL) { - tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg); - } - - /* - * perform global setup for test - */ - setup(); - - /* - * check looping state if -i option given - */ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * TEST rmdir() base functionality - */ - - /* Initialize the test directory name */ - - /* create a directory */ - if ( mkdir(tstdir, PERMS) == -1 ) { - tst_brkm(TBROK, cleanup, "mkdir(%s, %#o) Failed", - tstdir, PERMS); - /*NOTREACHED*/ - } - /* call rmdir using TEST macro */ - - TEST(rmdir(tstdir)); - - if (TEST_RETURN == -1 ) { - tst_resm(TFAIL, "rmdir(%s) Failed", tstdir); - continue; - } - - if (STD_FUNCTIONAL_TEST) { - /* check whether tstdir been removed */ - if (stat(tstdir, &buf) != -1) { - tst_resm(TFAIL, "directory %s still exists", - tstdir); - continue; - } else { - tst_resm(TPASS, "directory has been removed"); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - - } /* End for TEST_LOOPING */ - - /* - * cleanup and exit - */ - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* Create a temporary directory and make it current. */ - tst_tmpdir(); - - sprintf(tstdir,"./tstdir_%d",getpid()); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* - * Remove the temporary directory. - */ - tst_rmdir(); - - /* - * Exit with return code appropriate for results. - */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/rmdir04.c b/winsup/testsuite/winsup.api/ltp/rmdir04.c deleted file mode 100644 index 5cf84f770..000000000 --- a/winsup/testsuite/winsup.api/ltp/rmdir04.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : rmdir04 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for rmdir(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) rmdir(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the rmdir(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * rmdir(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include - -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="rmdir04"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; -char *cwd; -char fname[255]; - - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - if (mkdir(fname, 0777) == -1) { - tst_brkm(TBROK, cleanup, - "mkdir(%s) Failure. errno=%d : %s", fname, errno, strerror(errno)); - } - /* - * Call rmdir(2) - */ - TEST(rmdir(fname)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "rmdir(%s) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "rmdir(%s) returned %d", fname, TEST_RETURN); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname, "./dir_%d", getpid()); - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/rmdir05.c b/winsup/testsuite/winsup.api/ltp/rmdir05.c deleted file mode 100644 index b363735c0..000000000 --- a/winsup/testsuite/winsup.api/ltp/rmdir05.c +++ /dev/null @@ -1,448 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : rmdir05 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Functionality Tests for rmdir(2) - * - * PARENT DOCUMENT : rmstds02 - * - * TEST CASE TOTAL : 6 - * - * WALL CLOCK TIME : 2 - * - * CPU TYPES : ALL - * - * AUTHOR : Bill Branum - * - * CO-PILOT : Steve Shaw - * - * DATE STARTED : 4/23/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * rmdir(2) test for errno(s) EINVAL, EMLINK, EFAULT - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * DETAILED DESCRIPTION - * Verify that rmdir(2) returns a value of -1 and sets errno - * to indicate the error. - * - * Setup: - * Setup signal handling. - * Create a temporary directory and make it current. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno. - * If doing functional test - * check the errno returned and print result message - * - * Cleanup: - * Print errno log and/or timing stats if options given. - * Remove the temporary directory. - * Exit. - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - - -void setup(); -void cleanup(); - - -extern char *get_high_address(); - -char *TCID="rmdir05"; /* Test program identifier. */ -int TST_TOTAL=6; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines. */ -struct stat stat_buf; /* Stat buffer used for verification. */ -char dir_name[256]; /* Array to hold directory name. */ - - -int -main(int argc, char **argv) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(argc, argv, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * TEST CASE: 1 - * path points to the current directory - */ - - /* Call rmdir(2) */ - TEST(rmdir(".")); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - - if ( TEST_RETURN == -1 ) { -#if defined(sgi) - if (TEST_ERRNO == EINVAL) { -#elif defined(linux) || defined (__CYGWIN__) - if (TEST_ERRNO & (EBUSY | ENOTEMPTY)) { -#endif - - /* For functionality tests, verify that the - * directory wasn't removed. - */ - if (stat(".",&stat_buf) == -1){ - tst_resm(TFAIL,"rmdir(\".\") removed the current working directory when it should have failed."); - } else { - tst_resm(TPASS,"rmdir(\".\") failed to remove the current working directory. Returned %d : %s",TEST_ERRNO,strerror(TEST_ERRNO)); - } - } else { -#if defined(sgi) - tst_resm(TFAIL,"rmdir(\".\") failed with errno %d : %s but expected %d (EINVAL)",TEST_ERRNO,strerror(TEST_ERRNO),EINVAL); -#elif defined(linux) || defined (__CYGWIN__) - tst_resm(TFAIL,"rmdir(\".\") failed with errno %d : %s but expected %d (EBUSY)",TEST_ERRNO,strerror(TEST_ERRNO),EBUSY); -#endif - } - } else { - tst_resm(TFAIL,"rmdir(\".\") succeeded unexpectedly."); - } - } - - - /* - * TEST CASE: 2 - * path points to the "." (dot) entry of a directory - */ -#if defined(linux) || defined (__CYGWIN__) - tst_resm(TCONF, "rmdir on \"dir/.\" supported on Linux"); -#elif defined(sgi) - /* Call rmdir(2) */ - TEST(rmdir("dir1/.")); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EINVAL) { - - /* For functionality tests, verify that the - * directory wasn't removed. - */ - if (stat("dir1/.",&stat_buf) == -1){ - tst_resm(TFAIL,"rmdir(\"dir1/.\") removed the \".\" entry of a directory when it should have failed."); - } else { - tst_resm(TPASS,"rmdir(\"dir1/.\") failed to remove the \".\" entry of a directory. Returned %d : %s",TEST_ERRNO,strerror(TEST_ERRNO)); - } - } else { - tst_resm(TFAIL,"rmdir(\"dir1/.\") failed with errno %d : %s but expected %d (EINVAL)",TEST_ERRNO,strerror(TEST_ERRNO),EINVAL); - } - } else { - tst_resm(TFAIL,"rmdir(\"dir1/.\") - path points to the \".\" entry of a directory succeeded unexpectedly."); - } - } -#endif - -#if defined(sgi) - /* - * TEST CASE: 3 - * the directory has been linked - */ - tst_resm(TCONF, "linked directories not valid on IRIX"); -#elif defined(linux) - tst_resm(TCONF, "linked directories test not implemented on Linux"); -#elif defined(CRAY) - - - /* Call rmdir(2) */ - TEST(rmdir("dir2")); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EMLINK) { - /* For functionality tests, verify that the directory wasn't - * removed. - */ - if (stat("dir2",&stat_buf) == -1){ - tst_resm(TFAIL,"rmdir(\"dir2\") removed a directory with multiple links when it should have failed."); - } else { - tst_resm(TPASS,"rmdir(\"dir2\") failed to remove a directory with multiple links. Returned %d : %s",TEST_ERRNO,strerror(TEST_ERRNO)); - } - } else { - tst_resm(TFAIL,"rmdir(\"dir2\") failed with errno %d : %s but expected %d (EMLINK)",TEST_ERRNO,strerror(TEST_ERRNO),EMLINK); - } - } else { - tst_resm(TFAIL,"rmdir(\"dir2\") - the directory has been linked succeeded unexpectedly."); - } - } -#endif /* linux */ - - - /* - * TEST CASE: 4 - * path argument points below the minimum allocated address space - */ - - - /* Call rmdir(2) */ - TEST(rmdir((char *)-1)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS,"rmdir() - path argument points below the minimum allocated address space failed as expected with errno %d : %s",TEST_ERRNO,strerror(TEST_ERRNO)); - } else { - tst_resm(TFAIL,"rmdir() - path argument points below the minimum allocated address space failed with errno %d : %s but expected %d (EFAULT)",TEST_ERRNO,strerror(TEST_ERRNO),EFAULT); - } - } else { - tst_resm(TFAIL,"rmdir() - path argument points below the minimum allocated address space succeeded unexpectedly."); - } - } - - /* - * TEST CASE: 5 - * path argument points above the maximum allocated address space - */ - - - /* Call rmdir(2) */ - TEST(rmdir( get_high_address())); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - - if ( TEST_RETURN == -1 ) { - if (TEST_ERRNO == EFAULT) { - tst_resm(TPASS,"rmdir() - path argument points above the maximum allocated address space failed as expected with errno %d : %s",TEST_ERRNO,strerror(TEST_ERRNO)); - } else { - tst_resm(TFAIL,"rmdir() - path argument points above the maximum allocated address space failed with errno %d : %s but expected %d (EFAULT)",TEST_ERRNO,strerror(TEST_ERRNO),EFAULT); - } - } else { - tst_resm(TFAIL,"rmdir() - path argument points above the maximum allocated address space succeeded unexpectedly."); - } - } - - /* - * TEST CASE: 6 - * able to remove a directory - */ - - /* Create a directory. */ - if (mkdir(dir_name,0777) != 0){ - tst_brkm(TBROK,cleanup,"mkdir(\"%s\") failed with errno %d : %s",dir_name,errno,strerror(errno)); - } - - /* Call rmdir(2) */ - TEST(rmdir(dir_name)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL,"rmdir(\"%s\") failed when it should have passed. Returned %d : %s",dir_name,TEST_ERRNO,strerror(TEST_ERRNO)); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - - /* Verify the directory was removed. */ - if (stat(dir_name,&stat_buf) != 0){ - tst_resm(TPASS,"rmdir(\"%s\") removed the directory as expected.",dir_name); - } else { - tst_resm(TFAIL,"rmdir(\"%s\") returned a zero exit status but failed to remove the directory.",dir_name); - } - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Create a temporary directory and make it current. */ - tst_tmpdir(); - - /* Create a directory. */ - if (mkdir("dir1",0777) == -1){ - tst_brkm(TBROK,cleanup,"mkdir() failed to create dir1."); - } - -#if defined(CRAY) - /* NOTE: linking directories is NOT valid on IRIX */ - - /* Create a directory that has multiple links to it. */ - if (mkdir("dir2",0777) == -1){ - tst_brkm(TBROK,cleanup,"mkdir() failed to create dir2."); - } else { - if (system("runcmd `get_attrib -A link` dir2 mlink_dir > link.out 2>&1") != 0){ - tst_brk(TBROK,"link.out",cleanup,"link failed to link dir2 and mlink_dir."); - } - } - -#endif - - /* Create a unique directory name. */ - sprintf(dir_name,"./dir_%d",getpid()); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - -#if defined(CRAY) - /* NOTE: setup was not done on IRIX */ - /* Unlink the directory. */ - if (system("runcmd `get_attrib -A unlink` dir2 > unlink.out 2>&1") != 0){ - tst_res(TWARN,"unlink.out","unlink failed to unlink dir2."); - } -#endif - - /* - * Remove the temporary directory. - */ - tst_rmdir(); - - /* - * Exit with a return value appropriate for the results. - */ - tst_exit(); - -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/sbrk01.c b/winsup/testsuite/winsup.api/ltp/sbrk01.c deleted file mode 100644 index 08fb0a184..000000000 --- a/winsup/testsuite/winsup.api/ltp/sbrk01.c +++ /dev/null @@ -1,280 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : sbrk01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for sbrk(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 2 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 06/05/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) sbrk(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the sbrk(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * sbrk(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="sbrk01"; /* Test program identifier. */ -int TST_TOTAL=2; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int Increment; /* Amount to make change size by */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - long tret; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(0); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - -#ifdef __CYGWIN__ - /* we need to initialize output buffer before first sbrk. - otherwise, when memory is freed bu second sbrk, fwrite will - fail */ - tst_resm(TINFO, "Entering test"); -#endif - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * Increase by 8192 bytes - */ - Increment = 8192; - - /* Call sbrk(2) */ -#if defined(sgi) - tret=(long)sbrk(Increment); /* Remove -64 IRIX compiler warning */ - TEST_ERRNO=errno; -#else - TEST(sbrk(Increment)); - tret=TEST_RETURN; -#endif - - /* check return code */ - if ( tret == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "sbrk - Increase by 8192 bytes failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "sbrk - Increase by 8192 bytes returned %d", - tret); - } - } - - - /* - * TEST CASE: - * Decrease to original size - */ - Increment=(Increment * -1); - - /* Call sbrk(2) */ -#ifdef CRAY - TEST(sbrk(Increment)); - tret=TEST_RETURN; -#else - tret=(long)sbrk(Increment); - TEST_ERRNO=errno; -#endif - - /* check return code */ - if ( tret == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "sbrk - Decrease to original size failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "sbrk - Decrease to original size returned %d", tret); - } - } - - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - - - /* remove files and temp dir */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/select01.c b/winsup/testsuite/winsup.api/ltp/select01.c deleted file mode 100644 index 6ff0fe87b..000000000 --- a/winsup/testsuite/winsup.api/ltp/select01.c +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : select01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : select to a file - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 3 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 02/24/93 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) select(2) to a fd of regular file with no I/O and small timeout - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the select(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * join(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include /* For open system call parameters. */ -#include -#include -#include -#include - -#ifdef __CYGWIN__ -/* - FIXME: workaround for bug in newlib -- FD_ZERO is defined via bzero and - if we don't include strings.h compiler warns about implicit declaration -*/ -#include -#endif - -#include "test.h" -#include "usctest.h" - -#define FILENAME "select01" - -void setup(); -void cleanup(); - -char *TCID="select01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int Fd; -fd_set Readfds; - -/*********************************************************************** - * MAIN - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - struct timeval timeout; - long test_time = 0; /* in usecs */ - - - /*************************************************************** - * parse standard options, and exit if there is an error - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Assigning the specified seconds within the timeval structure. - */ - test_time = ((lc%2000)*100000); /* 100 milli-seconds */ - - /* - * Bound the time to a value less than 60 seconds - */ - - if ( test_time > 1000000 * 60 ) - test_time = test_time % (1000000 * 60); - - timeout.tv_sec = test_time / 1000000; - timeout.tv_usec = test_time - (timeout.tv_sec * 1000000); - - - /* Call the system call being tested. */ - TEST(select(4, &Readfds, 0, 0, &timeout)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, - "%d select(4, &Readfds, 0, 0, &timeout), timeout = %ld usecs, errno=%d", - lc, test_time, errno); - } - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* Perform functional verification here */ - tst_resm(TPASS, - "select(4, &Readfds, 0, 0, &timeout) timeout = %ld usecs", - test_time); - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* create a temporary directory and go to it */ - tst_tmpdir(); - - if ((Fd=open(FILENAME, O_CREAT | O_RDWR)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_CREAT | O_RDWR) failed: errno:%d\n", - errno); - } - - /* - * Initializing and assigning the standard output file descriptor to - * fd_set for select. - */ - - FD_ZERO(&Readfds); - FD_SET(Fd, &Readfds); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - close(Fd); - - /* remove temporary directory and all files in it. */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/select02.c b/winsup/testsuite/winsup.api/ltp/select02.c deleted file mode 100644 index 8b2669564..000000000 --- a/winsup/testsuite/winsup.api/ltp/select02.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : select02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : select of system pipe fds - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : Glen Overby - * - * DATE STARTED : 02/24/93 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) select(2) to fd of system pipe with no I/O and small timeout - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the select(2) system call. It is intended - * to provide a limited exposure of the system call, for now. - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include /* For open system call parameters. */ -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - -char *TCID="select02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int Fd[2]; -fd_set saved_Readfds, saved_Writefds; -fd_set Readfds, Writefds; - -/*********************************************************************** - * MAIN - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - struct timeval timeout; - long test_time = 0; /* in usecs */ - - - /*************************************************************** - * parse standard options, and exit if there is an error - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Assigning the specified seconds within the timeval structure. - */ - - test_time = ((lc%2000)*100000); /* 100 milli-seconds */ - - /* - * Bound the time to a value less than 60 seconds - */ - - if ( test_time > 1000000 * 60 ) - test_time = test_time % (1000000 * 60); - - timeout.tv_sec = test_time / 1000000; - timeout.tv_usec = test_time - (timeout.tv_sec * 1000000); - - Readfds = saved_Readfds; - Writefds = saved_Writefds; - - /* Call the system call being tested. */ - - TEST(select(5, &Readfds, &Writefds, 0, &timeout)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, - "%d select(5, &Readfds, &Writefds, 0, &timeout) failed, errno=%d\n", - lc, errno); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* Perform functional verification here */ - tst_resm(TPASS, - "select(5, &Readfds, &Writefds, 0, &timeout) timeout = %ld usecs", - test_time); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* create a temporary directory and go to it */ - tst_tmpdir(); - - if (pipe(Fd) == -1 ) { - tst_brkm(TBROK, cleanup, "pipe(&Fd) failed, errno=%d", errno); - } - - /* - * Initializing and assigning the standard output file descriptor to - * fd_set for select. - */ - - FD_ZERO(&saved_Readfds); - FD_ZERO(&saved_Writefds); - FD_SET(Fd[0], &saved_Readfds); - FD_SET(Fd[1], &saved_Writefds); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove temporary directory and all files in it. */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/select03.c b/winsup/testsuite/winsup.api/ltp/select03.c deleted file mode 100644 index d0959cb35..000000000 --- a/winsup/testsuite/winsup.api/ltp/select03.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : select03 - * - * EXECUTED BY : anyone - * - * TEST TITLE : select of fd of a named-pipe (FIFO) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : Glen Overby - * - * DATE STARTED : 02/24/93 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) select(2) of fd of a named-pipe (FIFO) with no I/O and small timeout value - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the select(2) system call. It is intended - * to provide a limited exposure of the system call, for now. - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include /* For open system call parameters. */ -#include -#include -#include -#include -#include - - -#include "test.h" -#include "usctest.h" - -#define FILENAME "select03" - -extern void setup(); -extern void cleanup(); - -char *TCID="select03"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int Fd; -fd_set saved_Readfds, saved_Writefds; -fd_set Readfds, Writefds; - - -/*********************************************************************** - * MAIN - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - struct timeval timeout; - long test_time = 0; /* in usecs */ - - - /*************************************************************** - * parse standard options, and exit if there is an error - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Assigning the specified seconds within the timeval structure. - */ - - test_time = ((lc%2000)*100000); /* 100 milli-seconds */ - - /* - * Bound the time to a value less than 60 seconds - */ - - if ( test_time > 1000000 * 60 ) - test_time = test_time % (1000000 * 60); - - timeout.tv_sec = test_time / 1000000; - timeout.tv_usec = test_time - (timeout.tv_sec * 1000000); - - Readfds = saved_Readfds; - Writefds = saved_Writefds; - - /* Call the system call being tested. */ - - TEST(select(5, &Readfds, &Writefds, 0, &timeout)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, - "%d select(5, &Readfds, &Writefds, 0, &timeout) failed errno=%d\n", - lc, errno); - } else { - - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* Perform functional verification here */ - tst_resm(TPASS, - "select(5, &Readfds, &Writefds, 0, &timeout) timeout = %ld usecs", - test_time); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* create a temporary directory and go to it */ - tst_tmpdir(); - - - /* make and open FIFO */ - if ( mkfifo(FILENAME, 0777) == -1 ) { - tst_brkm(TBROK, cleanup, "mkfifo(%s, 0777) failed, errno=%d", - FILENAME, errno); - } - - if ((Fd=open(FILENAME, O_RDWR)) == -1 ) { - tst_brkm(TBROK, cleanup, "open(%s, O_RDWR) failed, errno=%d", - FILENAME, errno); - } - - /* - * Initializing and assigning the standard output file descriptor to - * fd_set for select. - */ - - FD_ZERO(&saved_Readfds); - FD_ZERO(&saved_Writefds); - FD_SET(Fd, &saved_Readfds); - FD_SET(Fd, &saved_Writefds); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove temporary directory and all files in it. */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/setgid01.c b/winsup/testsuite/winsup.api/ltp/setgid01.c deleted file mode 100644 index 50b339d03..000000000 --- a/winsup/testsuite/winsup.api/ltp/setgid01.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : setgid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for setgid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) setgid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the setgid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * setgid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="setgid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; -int gid; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call setgid(2) - */ - TEST(setgid(gid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setgid(%d) Failed, errno=%d : %s", gid, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setgid(%d) returned %d", gid, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - gid = getgid(); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/setgroups01.c b/winsup/testsuite/winsup.api/ltp/setgroups01.c deleted file mode 100644 index dc7bd1d47..000000000 --- a/winsup/testsuite/winsup.api/ltp/setgroups01.c +++ /dev/null @@ -1,229 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : setgroups01 - * - * EXECUTED BY : root - * - * TEST TITLE : Basic test for setgroups(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) setgroups(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the setgroups(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * setgroups(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="setgroups01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int len = NGROUPS; -gid_t list[NGROUPS]; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call setgroups(2) - */ - TEST(setgroups(len, list)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setgroups(%d, list) Failed, errno=%d : %s", len, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setgroups(%d, list) returned %d", len, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - if ( geteuid() != 0 ) - tst_brkm(TBROK, cleanup, "Must be ROOT to run this test."); - - /* Pause if that option was specified */ - TEST_PAUSE; - - if (getgroups(len, list) == -1) { - tst_brkm(TBROK, cleanup, - "getgroups(%d, list) Failure. errno=%d : %s", - len, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/setpgid01.c b/winsup/testsuite/winsup.api/ltp/setpgid01.c deleted file mode 100644 index e580a34f7..000000000 --- a/winsup/testsuite/winsup.api/ltp/setpgid01.c +++ /dev/null @@ -1,240 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : setpgid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for setpgid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) setpgid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the setpgid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * setpgid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="setpgid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; -int pgid, pid; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call setpgid(2) - */ - TEST(setpgid(pid, pgid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setpgid(%d, %d) Failed, errno=%d : %s", pid, pgid, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setpgid(%d, %d) returned %d", pid, pgid, TEST_RETURN); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - int status; - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* - * Make sure current process is NOT a session or pgrp leader - */ - - pgid=getpgrp(); - pid=getpid(); - - if (pgid == pid) { - if ((pid = fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork() in setup() failed - errno %d", - errno); - } - - if (pid != 0) { /* parent - sits and waits */ - wait(&status); - exit(WEXITSTATUS(status)); - } else { /* child - continues with test */ - pid = getpid(); - } - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/setregid01.c b/winsup/testsuite/winsup.api/ltp/setregid01.c deleted file mode 100644 index e247f6c61..000000000 --- a/winsup/testsuite/winsup.api/ltp/setregid01.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : setregid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for setregid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 5 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 05/13/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) setregid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the setregid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * setregid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="setregid01"; /* Test program identifier. */ -int TST_TOTAL=5; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; /* Zero terminated list of expected errnos */ - -int gid, egid; /* current real and effective group id */ - - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * Dont change either real or effective gid - */ - gid=getgid(); -egid=getegid(); - - - /* Call setregid(2) */ - TEST(setregid(-1, -1)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setregid - Dont change either real or effective gid failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setregid - Dont change either real or effective gid returned %d", TEST_RETURN); - } - } - - - /* - * TEST CASE: - * change effective to effective gid - */ - - - /* Call setregid(2) */ - TEST(setregid(-1, egid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setregid - change effective to effective gid failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setregid - change effective to effective gid returned %d", TEST_RETURN); - } - } - - - /* - * TEST CASE: - * change real to real gid - */ - - - /* Call setregid(2) */ - TEST(setregid(gid, -1)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setregid - change real to real gid failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setregid - change real to real gid returned %d", TEST_RETURN); - } - } - - - /* - * TEST CASE: - * change effective to real gid - */ - - - /* Call setregid(2) */ - TEST(setregid(-1, gid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setregid - change effective to real gid failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setregid - change effective to real gid returned %d", TEST_RETURN); - } - } - - - /* - * TEST CASE: - * try to change real to current real - */ - - - /* Call setregid(2) */ - TEST(setregid(gid, gid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setregid - try to change real to current real failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setregid - try to change real to current real returned %d", TEST_RETURN); - } - } - - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove files and temp dir */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/setreuid01.c b/winsup/testsuite/winsup.api/ltp/setreuid01.c deleted file mode 100644 index 67f3bae4a..000000000 --- a/winsup/testsuite/winsup.api/ltp/setreuid01.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : setreuid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for setreuid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 5 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 05/14/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) setreuid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the setreuid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * setreuid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="setreuid01"; /* Test program identifier. */ -int TST_TOTAL=5; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; /* Zero terminated list of expected errnos */ - -int ruid, euid; /* real and effective user ids */ - - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * Don't change either real or effective uid - */ - ruid=getuid(); /* get real uid */ -euid=geteuid(); /* get effective uid */ - - - /* Call setreuid(2) */ - TEST(setreuid(-1, -1)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setreuid - Don't change either real or effective uid failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setreuid - Don't change either real or effective uid returned %d", TEST_RETURN); - } - } - - - /* - * TEST CASE: - * change effective to effective uid - */ - - - /* Call setreuid(2) */ - TEST(setreuid(-1, euid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setreuid - change effective to effective uid failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setreuid - change effective to effective uid returned %d", TEST_RETURN); - } - } - - - /* - * TEST CASE: - * change real to real uid - */ - - - /* Call setreuid(2) */ - TEST(setreuid(ruid, -1)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setreuid - change real to real uid failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setreuid - change real to real uid returned %d", TEST_RETURN); - } - } - - - /* - * TEST CASE: - * change effective to real uid - */ - - - /* Call setreuid(2) */ - TEST(setreuid(-1, ruid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setreuid - change effective to real uid failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setreuid - change effective to real uid returned %d", TEST_RETURN); - } - } - - - /* - * TEST CASE: - * try to change real to current real - */ - - - /* Call setreuid(2) */ - TEST(setreuid(ruid, ruid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setreuid - try to change real to current real failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setreuid - try to change real to current real returned %d", TEST_RETURN); - } - } - - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove files and temp dir */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/setuid01.c b/winsup/testsuite/winsup.api/ltp/setuid01.c deleted file mode 100644 index 4437108c8..000000000 --- a/winsup/testsuite/winsup.api/ltp/setuid01.c +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : setuid01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for setuid(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 05/14/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) setuid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * The libcuts.a and libsys.a libraries must be included in - * the compilation of this test. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the setuid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * setuid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="setuid01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int uid; /* current user id */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * TEST CASE: - * Set the effective user ID to the current real uid - */ - uid=getuid(); - - /* Call setuid(2) */ - TEST(setuid(uid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setuid - Set the effective user ID to the current real uid failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setuid - Set the effective user ID to the current real uid returned %d", TEST_RETURN); - } - } - - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/setuid02.c b/winsup/testsuite/winsup.api/ltp/setuid02.c deleted file mode 100644 index 65576af62..000000000 --- a/winsup/testsuite/winsup.api/ltp/setuid02.c +++ /dev/null @@ -1,240 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : setuid02 - * - * EXECUTED BY : root - * - * TEST TITLE : Basic test for setuid(2) as root - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 05/14/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) setuid(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the setuid(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * setuid(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include - -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="setuid02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; /* Zero terminated list of expected errnos */ - -int uid; /* current user id */ - - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - uid=getuid(); - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - /* - * TEST CASE: - * Set the effective user ID to the current real uid - */ - - /* Call setuid(2) */ - TEST(setuid(uid)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "setuid - Set the effective user ID to the current real uid failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "setuid - Set the effective user ID to the current real uid returned %d", TEST_RETURN); - } - } - - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp dir and cd to it */ - tst_tmpdir(); - - /* must be root */ - if ( geteuid() != 0 ) - tst_brkm(TBROK, cleanup, "Must be root for this test!"); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* remove files and temp dir */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/signal03.c b/winsup/testsuite/winsup.api/ltp/signal03.c deleted file mode 100644 index 38ba72b3c..000000000 --- a/winsup/testsuite/winsup.api/ltp/signal03.c +++ /dev/null @@ -1,665 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/*********************************************************************************** - * - * OS Test - Silicon Graphics, Inc. Eagan, Minnesota - * - * TEST IDENTIFIER : signal03 Boundary value and other invalid value checking - * of signal setup and signal sending. - * - * PARENT DOCUMENT : sgntds01 Signal System Call - * - * AUTHOR : Dave Baumgartner - * : Rewrote 12/92 by Richard Logan - * - * CO-PILOT : Barrie Kletscher - * - * DATE STARTED : 10/17/85 - * - * TEST ITEMS - * - * 1. SIGKILL can not be set to be caught, errno:EINVAL (POSIX). - * 2. SIGKILL can not be caught. - * 3. SIGKILL can not be set to be ignored, errno:EINVAL (POSIX). - * 4. SIGKILL can not be ignored. - * 5. SIGKILL can not be reset to default, errno:EINVAL (POSIX. - * - * ENVIRONMENTAL NEEDS - * - * NONE - * - * SPECIAL PROCEDURAL REQUIREMENTS - * - * None - * - * INTERCASE DEPENDENCIES - * - * 2 depends on 1 and 4 on 3. - * - * DETAILED DESCRIPTION - * - * main() - * Call catch_test to test setup and catching of SIGKILL. - * - * - * Call ignore_test to test setup and ignoring of SIGKILL. - * - * - * Call sigdfl_test to test setting SIGKILL to default. - * - * * END OF MAIN * - * - * - * catch_test() - * - * fork a child - * if this is the parent - * sleep to let child start. - * send sig to child. - * wait for the child to terminate. - * - * if the termination status of the child equals the signal sent to it - * Test item 1 PASSED the child was killed. - * else if status equals the exit value of SIG_CAUGHT - * Test item 2 FAILED sig was caught. - * else - * Test item 2 FAILED because the child was not killed - * but sig was not caught either. - * - * else this the child - * set exit_val to SIG_NOT_CAUGHT. - * set to catch sig, where the interrupt routine just sets - * exit_val to SIG_CAUGHT. - * - * If the return value and errno, after trying to set to catch sig, - * do not indicate that an error has occurred. - * Test item 1 FAILED bad return, return value:X, errno:X. - * else - * Test item 1 PASSED sig was not set to be caught. - * - * pause until the parent sends a signal. - * The child should be killed by the signal but if not exit - * with exit_val. - * - * * End of catch_test. * - * - * - * ignore_test() - * - * fork a child - * if this is the parent - * sleep to let child start. - * send SIGKILL to child. - * wait for the child to terminate. - * - * if the termination status of the child equals SIGKILL - * Test item 4 PASSED the child was killed. - * else if the status equals the exit value of SIG_IGNORED - * Test item 4 FAILED SIGKILL was ignored. - * - * else this the child - * - * If the return value and errno, after trying to set to ignore SIGKILL, - * do not indicate that an error has occurred. - * Test item 3 FAILED bad return, return value:X, errno:X. - * else - * Test item 3 PASSED SIGKILL was not set to be ignored. - * - * pause until the parent sends SIGKILL. - * The child should be killed by the signal but if not exit - * with SIG_IGNORED. - * - * * End of ignore_test. * - * - * - * sigdfl_test() - * - * If the return value and errno, after trying to set to SIGKILL to default, - * do not indicate that an error has occurred. - * Test item 5 FAILED bad return, return value:X, errno:X. - * else - * Test item 5 PASSED SIGKILL was not set to default. - * - * * End of sigdfl_test. * - * - * BUGS/NOTES - * Since the system call under test is executed in the child, no - * timings on this system call will be reported. - * -***********************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); -void do_test(); -void sigdfl_test(); -void update_timings(); - -#if defined(linux) -# define SIG_PF sig_t /* This might need to be sighandler_t on some systems */ -#elif defined(__CYGWIN__) -typedef void (*sighandler_t) (int); -#define SIG_PF sighandler_t -#endif - -#define SIG_CAUGHT 1 -#define SIG_NOT_CAUGHT 0 -#define SIG_IGNORED 5 -#define TIMED_OUT 99 - -#define TIMEOUT 20 - -#define GO_FLAG 1 -#define ERROR_FLAG 2 -#define PASS_FLAG 3 -#define FAIL_FLAG 4 - -#define IGNORE_TEST 1 -#define CATCH_TEST 2 - -#define MAXMESG 150 /* The Maximum message that can be created. */ - -int exit_val; /* Global variable, used to tell whether the */ - /* child exited instead of being killed. */ -extern int errno; /* errno holds the error value returned by */ - /* a system call. */ -char mesg[MAXMESG]; /* Holds messages to pass to tst_res. */ - -struct ipc_t { - int status; - char mesg[MAXMESG]; - struct tblock timings; -} Ipc_info; - -char *TCID = "signal03"; -int TST_TOTAL = 5; -extern int Tst_count; /* count of test items completed */ - -int Pid; /* Return value from fork. */ - -long Tret; - -/*********************************************************************** - * M A I N - ***********************************************************************/ -int -main(argc, argv) -int argc; -char **argv; -{ - int lc; - const char *msg; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(argc, argv, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - errno=-4; - - /* - * Call catch_test to test setup and catching of SIGKILL. - */ - (void) do_test(CATCH_TEST, Tst_count); - - /* - * Call ignore_test to test setup and ignoring of SIGKILL. - */ - (void) do_test(IGNORE_TEST, Tst_count); - - /* - * Call sigdfl_test to test setting SIGKILL to default. - */ - (void) sigdfl_test(); - - } - - cleanup(); - - return 0; -} /*End of main*/ - -/*********************************************************************** - * - ***********************************************************************/ -void -do_test(test_case, tst_count) -int test_case; -int tst_count; -{ - int term_stat; /* Termination status of the child returned to */ - /* the parent. */ - char string[30]; - int fd1[2]; /* ipc */ - int rd_sz; /* size of read */ - void p_timeout_handler(); - void c_timeout_handler(); - void catchsig(); - - Tst_count = tst_count; - - /* - * Create a pipe of ipc - */ - if ( pipe(fd1) == -1 ) { - sprintf(mesg, - "pipe system call failed, Errno: %d, Error message: %s", - errno,strerror(errno)); - tst_resm(TBROK,mesg); - tst_resm(TBROK,mesg); - return; - } - - /* - * Cause the read to return 0 once EOF is encountered and the - * read to return -1 if pipe is empty. - */ - - if ( fcntl(fd1[0], F_SETFL, O_NONBLOCK) == -1 ) { - sprintf(mesg, "fcntl(fd1[0], F_SETFL, O_NONBLOCK) failed: errno=%d", - errno); - tst_resm(TBROK,mesg); - tst_resm(TBROK,mesg); - close(fd1[0]); - close(fd1[1]); - return; - } - - if ((Pid = fork()) > 0) { /* parent */ - - signal(SIGALRM, p_timeout_handler); - - alarm(TIMEOUT); - - close(fd1[1]); /* close write side */ - - /* - * Deal with child's messages. - * Only the GO_FLAG status will allow parent to - * go on. All pipe io will be in the ipc_t structure sizes - * to avoid reading part of next message. - */ - while ( 1 ) { - - while ( (rd_sz=read(fd1[0], (char *)&Ipc_info, sizeof(Ipc_info))) != 0 ) { - if ( rd_sz > 0 ) - break; /* read something */ - } - - if ( rd_sz == 0 ) { /* if EOF encountered */ - sprintf(mesg, "child's pipe is closed before 'go' message received"); - tst_resm(TBROK, Ipc_info.mesg); - tst_resm(TBROK, Ipc_info.mesg); - close(fd1[0]); - return; - } - - else if ( Ipc_info.status == GO_FLAG ) { - break; /* go on */ - } - else if ( Ipc_info.status == ERROR_FLAG ) { - tst_resm(TBROK, "From child: %s", Ipc_info.mesg); - tst_resm(TBROK, "From child: %s", Ipc_info.mesg); - close(fd1[0]); - return; - } - else if ( Ipc_info.status == PASS_FLAG ) { - - if ( STD_FUNCTIONAL_TEST ) - tst_resm(TPASS, "From child: %s", Ipc_info.mesg); - else - Tst_count++; - update_timings(Ipc_info.timings); - } - else if ( Ipc_info.status == FAIL_FLAG ) { - tst_resm(TFAIL, "From child: %s", Ipc_info.mesg); - update_timings(Ipc_info.timings); - } - else { - tst_resm(TINFO, "Unknown message from child: %s", mesg); - } - } - - /* - * Send the signal SIGKILL to the child. - */ - if (kill(Pid,SIGKILL) == -1) - { - /* - * The kill system call failed. - */ - sprintf(mesg, - "kill(Pid,SIGKILL) failed, Errno: %d, Error message: %s", - errno,strerror(errno)); - tst_resm(TBROK,mesg); - tst_resm(TBROK,mesg); - close(fd1[0]); - return; - } - - /* - * Wait for the child to terminate and check the termination status. - */ - if (wait(&term_stat) == -1) { - /* - * The wait system call failed. - */ - sprintf(mesg, - "Wait system call failed. Errno: %d, Error message: %s", - errno,strerror(errno)); - tst_resm(TBROK,mesg); - tst_resm(TBROK,mesg); - close(fd1[0]); - return; - } - else if ( STD_FUNCTIONAL_TEST ) { - if ((term_stat & 0377) == SIGKILL) { - /* - * The child was killed by the signal sent, - * which is correct. - */ - tst_resm(TPASS,"The child was killed by SIGKILL."); - } - else if ( (term_stat >> 8) == TIMED_OUT ) { - sprintf(mesg, "child exited with a timed out exit status"); - tst_resm(TBROK,mesg); - } - else { - if ((term_stat >> 8) == SIG_IGNORED && test_case == IGNORE_TEST ) { - sprintf(mesg, - "SIGKILL was ignored by child after sent by parent."); - } - else if ((term_stat >> 8) == SIG_CAUGHT && test_case == CATCH_TEST ) { - sprintf(mesg, - "SIGKILL was caught by child after sent by parent."); - } - else { - sprintf(mesg, - "Child's termination status is unexpected. Status: %d (%#o).", - term_stat, term_stat); - } - tst_resm(TFAIL, mesg); - } - } - else { - Tst_count++; /* increment test counter */ - } - close(fd1[0]); - - } /* End of parent. */ - else if (Pid == 0) { - /* - * This is the child. - * Set up to ignore/catch SIGKILL and check the return values. - */ - errno=0; - if ( test_case == IGNORE_TEST ) { - exit_val = SIG_IGNORED; - strcpy(string, "signal(SIGKILL, SIG_IGN)"); - - Tret=(long)signal(SIGKILL, SIG_IGN); - TEST_ERRNO=errno; - } - else { - exit_val = SIG_NOT_CAUGHT; - strcpy(string, "signal(SIGKILL, catchsig)"); - Tret=(long)signal(SIGKILL, catchsig); - TEST_ERRNO=errno; - } - Ipc_info.timings=tblock; - - if ( (SIG_PF)Tret == SIG_ERR ) { - if ( TEST_ERRNO == EINVAL ) { - sprintf(Ipc_info.mesg, "%s ret:%ld SIG_ERR (%ld) as expected", - string, Tret, (long)SIG_ERR); - Ipc_info.status = PASS_FLAG; - } - else { - sprintf(Ipc_info.mesg, - "%s ret:%ld, errno:%d expected ret:%ld, errno:%d", - string, Tret, TEST_ERRNO, (long)SIG_ERR, EINVAL); - Ipc_info.status = FAIL_FLAG; - } - - write(fd1[1], (char *)&Ipc_info, sizeof(Ipc_info)); - } - else { - /* - * The child was not allowed to set the signal to - * be ignored and errno was correct. - */ - sprintf(Ipc_info.mesg, - "%s ret:%ld, errno:%d expected ret:%ld, errno:%d", - string, Tret, TEST_ERRNO, (long)SIG_ERR, EINVAL); - Ipc_info.status = FAIL_FLAG; - write(fd1[1], (char *)&Ipc_info, sizeof(Ipc_info)); - } - - /* - * tell parent we are ready - setup by child is done - */ - Ipc_info.status = GO_FLAG; - write(fd1[1], (char *)&Ipc_info, sizeof(Ipc_info)); - - /* - * Set the alarm to wake up from the pause below if - * the parents signal is ignored. - */ - signal(SIGALRM, p_timeout_handler); - alarm(TIMEOUT); - - /* - * Pause until the parent sends a signal or until alarm is received. - */ - pause(); - - exit(exit_val); - - - } /* End of child. */ - else { - /* - * The fork system call failed. - */ - sprintf(mesg, - "Fork system call failed. Errno: %d, Error message: %s", - errno,strerror(errno)); - tst_resm(TBROK,mesg); - tst_resm(TBROK,mesg); - close(fd1[0]); - close(fd1[1]); - return; - } - -} /* End of do_test. */ - -/*********************************************************************** - * sigdfl_test - test for attempt to set SIGKILL to default - ***********************************************************************/ -void -sigdfl_test() -{ - /* - * Try to set SIGKILL to default and check the return values. - */ - errno=-4; - - Tret=(long)signal(SIGKILL,SIG_DFL); - TEST_RETURN=Tret; - TEST_ERRNO=errno; - - - if ( (SIG_PF)TEST_RETURN == SIG_ERR ) { - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_ERRNO != EINVAL ) { - sprintf(mesg, - "signal(SIGKILL,SIG_DFL) ret:%d, errno:%d expected ret:-1, errno:%d", - TEST_RETURN, TEST_ERRNO, EINVAL); - tst_resm(TFAIL, mesg); - } - else { - sprintf(mesg, - "signal(SIGKILL,SIG_DFL) ret:%d, errno:%d as expected.", - TEST_RETURN, TEST_ERRNO); - tst_resm(TPASS, mesg); - } - } - else - Tst_count++; - } - else { - sprintf(mesg, - "signal(SIGKILL,SIG_DFL) ret:%d, errno:%d expected ret:-1, errno:%d", - TEST_RETURN, TEST_ERRNO, EINVAL); - tst_resm(TFAIL, mesg); - } - -} /* End of sigdfl_test. */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* make and change to a temporary directory */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - - TEST_CLEANUP; - - /* - * remove the temporary directory and exit with - * return code appropriate for results - */ - - tst_rmdir(); - - tst_exit(); - -} /* End cleanup() */ - -/*********************************************************************** - * Signal handler routine that used by the parent to handler - * a time out situation. It will attempt to kill the child and - * call cleanup. - ***********************************************************************/ -void -p_timeout_handler() -{ - kill(Pid, SIGKILL); - cleanup(); -} - -/*********************************************************************** - * Signal handler routine that used by the child to handle - * a time out situation. It will set a global varaible and return - * if called. - ***********************************************************************/ -void -c_timeout_handler() -{ - exit_val = TIMED_OUT; - return; -} - -/*********************************************************************** - * This signal handling routine will set a global variable and return - * if called. - ***********************************************************************/ -void -catchsig() -{ - exit_val = SIG_CAUGHT; - return; -} - -/*********************************************************************** - * Update timing information - ***********************************************************************/ -void -update_timings(atblock) -struct tblock atblock; -{ - tblock.tb_max += atblock.tb_max; - tblock.tb_min += atblock.tb_min; - tblock.tb_total += atblock.tb_total; - tblock.tb_count += atblock.tb_count; -} diff --git a/winsup/testsuite/winsup.api/ltp/stat01.c b/winsup/testsuite/winsup.api/ltp/stat01.c deleted file mode 100644 index 46b8262d5..000000000 --- a/winsup/testsuite/winsup.api/ltp/stat01.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: stat01 - * - * Test Description: - * Verify that, stat(2) succeeds to get the status of a file and fills the - * stat structure elements. - * - * Expected Result: - * stat() should return value 0 on success and fills the stat structure - * elements with the specified 'file' information. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * stat01 [-c n] [-e] [-f] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * - */ -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define FILE_MODE 0644 -#define TESTFILE "testfile" -#define FILE_SIZE 1024 -#define BUF_SIZE 256 -#define MASK 0777 - -char *TCID="stat01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={0}; -uid_t User_id; /* Owner id of the test file */ -gid_t Group_id; /* Group id of the test file */ -char nobody_uid[] = "nobody"; -struct passwd *ltpuser; - -void setup(); /* Setup function for the test */ -void cleanup(); /* Cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat structure buffer */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - /*NOTREACHED*/ - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - /* - * Call stat(2) to get the status of - * specified 'file' into stat structure. - */ - TEST(stat(TESTFILE, &stat_buf)); - - /* check return code of stat(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, \ - "stat(%s, &stat_buf) Failed, errno=%d : %s", - TESTFILE, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - stat_buf.st_mode &= ~S_IFREG; - /* - * Verify the data returned by stat(2) - * aganist the expected data. - */ - if ((stat_buf.st_uid != User_id) || \ - (stat_buf.st_gid != Group_id) || \ - (stat_buf.st_size != FILE_SIZE) || \ - ((stat_buf.st_mode & MASK) != FILE_MODE)) { - tst_resm(TFAIL, "Functionality of " - "stat(2) on '%s' Failed", - TESTFILE); - } else { - tst_resm(TPASS, "Functionality of " - "stat(2) on '%s' Succcessful", - TESTFILE); - } - } else { - tst_resm(TINFO, "Call succeeded"); - } - } - Tst_count++; /* incr. TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * void - * setup() - Performs setup function for the test. - * Creat a temporary directory and change directory to it. - * Creat a testfile and write some known data into it. - * Get the effective uid/gid of test process. - */ -void -setup() -{ - int i, fd; - char tst_buff[BUF_SIZE]; - int wbytes; - int write_len = 0; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); -#if 0 - /* Switch to nobody user for correct error code collection */ - if (geteuid() != 0) { - tst_brkm(TBROK, tst_exit, "Test must be run as root"); - } - ltpuser = getpwnam(nobody_uid); - if (setuid(ltpuser->pw_uid) == -1) { - tst_resm(TINFO, "setuid failed to " - "to set the effective uid to %d", - ltpuser->pw_uid); - perror("setuid"); - } -#endif - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - if ((fd = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - /*NOTREACHED*/ - } - - /* Fill the test buffer with the known data */ - for (i = 0; i < BUF_SIZE; i++) { - tst_buff[i] = 'a'; - } - - /* Write to the file 1k data from the buffer */ - while (write_len < FILE_SIZE) { - if ((wbytes = write(fd, tst_buff, sizeof(tst_buff))) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - /*NOTREACHED*/ - } else { - write_len += wbytes; - } - } - - /* Close the testfile created */ - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } - - /* Get the uid/gid of the process */ - User_id = getuid(); - Group_id = getgid(); - -} /* End setup() */ - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the test file and temporary directory created. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/stat02.c b/winsup/testsuite/winsup.api/ltp/stat02.c deleted file mode 100644 index 06bf73a35..000000000 --- a/winsup/testsuite/winsup.api/ltp/stat02.c +++ /dev/null @@ -1,277 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: stat02 - * - * Test Description: - * Verify that, stat(2) succeeds to get the status of a file and fills the - * stat structure elements though process doesn't have read access to the - * file. - * - * Expected Result: - * stat() should return value 0 on success and the stat structure elements - * should be filled with specified 'file' information. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * stat02 [-c n] [-e] [-f] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * - */ -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define TESTFILE "testfile" -#define FILE_SIZE 1024 -#define BUF_SIZE 256 -#define NEW_MODE 0222 -#define MASK 0777 - -char *TCID="stat02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={0}; -uid_t User_id; /* eff. user id/group id of test process */ -gid_t Group_id; -char nobody_uid[] = "nobody"; -struct passwd *ltpuser; - -void setup(); /* Setup function for the test */ -void cleanup(); /* Cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat structure buffer */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - /* - * Call stat(2) to get the status of - * specified 'file' into stat structure. - */ - TEST(stat(TESTFILE, &stat_buf)); - - /* check return code of stat(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, - "stat(%s, &stat_buf) Failed, errno=%d : %s", - TESTFILE, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - stat_buf.st_mode &= ~S_IFREG; - /* - * Verify the data returned by stat(2) - * aganist the expected data. - */ - if ((stat_buf.st_uid != User_id) || \ - (stat_buf.st_gid != Group_id) || \ - (stat_buf.st_size != FILE_SIZE) || \ - ((stat_buf.st_mode & MASK) != NEW_MODE)) { - tst_resm(TFAIL, "Functionality of " - "stat(2) on '%s' Failed", - TESTFILE); - } else { - tst_resm(TPASS, "Functionality of " - "stat(2) on '%s' Succcessful", - TESTFILE); - } - } else { - tst_resm(TPASS, "Call succeeded"); - } - } - Tst_count++; /* incr TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * void - * setup() - Performs setup function for the test. - * Creat a temporary directory and change directory to it. - * Creat a testfile and write some data into it. - * Modify the mode permissions of testfile such that test process - * has read-only access to testfile. - */ -void -setup() -{ - int i, fd; /* counter, file handle for file */ - char tst_buff[BUF_SIZE]; /* data buffer for file */ - int wbytes; /* no. of bytes written to file */ - int write_len = 0; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); -#if 0 - /* Switch to nobody user for correct error code collection */ - if (geteuid() != 0) { - tst_brkm(TBROK, tst_exit, "Test must be run as root"); - } - ltpuser = getpwnam(nobody_uid); - if (setuid(ltpuser->pw_uid) == -1) { - tst_resm(TINFO, "setuid failed to " - "to set the effective uid to %d", - ltpuser->pw_uid); - perror("setuid"); - } -#endif - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - if ((fd = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - /*NOTREACHED*/ - } - - /* Fill the test buffer with the known data */ - for (i = 0; i < BUF_SIZE; i++) { - tst_buff[i] = 'a'; - } - - /* Write to the file 1k data from the buffer */ - while (write_len < FILE_SIZE) { - if ((wbytes = write(fd, tst_buff, sizeof(tst_buff))) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - /*NOTREACHED*/ - } else { - write_len += wbytes; - } - } - - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } - - /* Modify mode permissions on the testfile */ - if (chmod(TESTFILE, NEW_MODE) < 0) { - tst_brkm(TBROK, cleanup, - "chmod(2) on %s Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - /*NOTREACHED*/ - } - - /* Get the uid/gid of the process */ - User_id = getuid(); - Group_id = getgid(); - -} /* End setup() */ - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the temporary directory and file created. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/stat03.c b/winsup/testsuite/winsup.api/ltp/stat03.c deleted file mode 100644 index 2d04ec4fc..000000000 --- a/winsup/testsuite/winsup.api/ltp/stat03.c +++ /dev/null @@ -1,393 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: stat03 - * - * Test Description: - * Verify that, - * 1) stat(2) returns -1 and sets errno to EACCES if search permission is - * denied on a component of the path prefix. - * 2) stat(2) returns -1 and sets errno to ENOENT if the specified file - * does not exists or empty string. - * 3) stat(2) returns -1 and sets errno to EFAULT if pathname points - * outside user's accessible address space. - * 4) stat(2) returns -1 and sets errno to ENAMETOOLONG if the pathname - * component is too long. - * 5) stat(2) returns -1 and sets errno to ENOTDIR if the directory - * component in pathname is not a directory. - * - * Expected Result: - * stat() should fail with return value -1 and set expected errno. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * if errno set == expected errno - * Issue sys call fails with expected return value and errno. - * Otherwise, - * Issue sys call fails with unexpected errno. - * Otherwise, - * Issue sys call returns unexpected value. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory(s)/file(s) created. - * - * Usage: - * stat03 [-c n] [-e] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define MODE_RWX S_IRWXU | S_IRWXG | S_IRWXO -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define DIR_TEMP "testdir_1" -#define TEST_FILE1 "testdir_1/tfile_1" -#define TEST_FILE2 "t_file/tfile_2" - -int no_setup(); -int setup1(); /* setup function to test chmod for EACCES */ -int setup2(); /* setup function to test chmod for ENOTDIR */ -int longpath_setup(); /* setup function to test chmod for ENAMETOOLONG */ -char nobody_uid[] = "nobody"; -struct passwd *ltpuser; - - -char Longpathname[PATH_MAX+2]; -char High_address_node[64]; - -struct test_case_t { /* test case struct. to hold ref. test cond's*/ - char *pathname; - char *desc; - int exp_errno; - int (*setupfunc)(); -} Test_cases[] = { -#ifndef __CYGWIN__ - { TEST_FILE1, "No Search permissions to process", EACCES, setup1 }, -#endif - { High_address_node, "Address beyond address space", EFAULT, no_setup }, - { (char *)-1, "Negative address", EFAULT, no_setup }, - { Longpathname, "Pathname too long", ENAMETOOLONG, longpath_setup }, - { "", "Pathname is empty", ENOENT, no_setup }, -#ifndef __CYGWIN__ - { TEST_FILE2, "Path contains regular file", ENOTDIR, setup2 }, -#endif - { NULL, NULL, 0, no_setup } -}; - -char *TCID="stat03"; /* Test program identifier. */ -int TST_TOTAL = 6; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={EACCES, EFAULT, ENAMETOOLONG, ENOENT, ENOTDIR, 0}; - -void setup(); /* Main setup function for the tests */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat structure buffer */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char *file_name; /* ptr. for file name whose mode is modified*/ - char *test_desc; /* test specific error message */ - int ind; /* counter to test different test conditions */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - /*NOTREACHED*/ - } - - /* - * Invoke setup function to call individual test setup functions - * to simulate test conditions. - */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - for (ind = 0; Test_cases[ind].desc != NULL; ind++) { - file_name = Test_cases[ind].pathname; - test_desc = Test_cases[ind].desc; - - if (file_name == High_address_node) { - file_name = (char *)get_high_address(); - } - - /* - * Call stat(2) to test different test conditions. - * verify that it fails with -1 return value and - * sets appropriate errno. - */ - TEST(stat(file_name, &stat_buf)); - - /* Check return code from stat(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - if (TEST_ERRNO == Test_cases[ind].exp_errno) { - tst_resm(TPASS, - "stat() fails, %s, errno:%d", - test_desc, TEST_ERRNO); - } else { - tst_resm(TFAIL, "stat() fails, %s," - " errno:%d, expected errno:%d", - test_desc, TEST_ERRNO, - Test_cases[ind].exp_errno); - } - } else { - tst_resm(TFAIL, "stat(2) returned %d," - " expected -1, errno:%d", TEST_RETURN, - Test_cases[ind].exp_errno); - } - } /* End of TEST CASE LOOPING. */ - Tst_count++; /* incr TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* - * Invoke cleanup() to delete the test directory/file(s) created - * in the setup(). - */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * void - * setup(void) - performs all ONE TIME setup for this test. - * Exit the test program on receipt of unexpected signals. - * Create a temporary directory and change directory to it. - * Invoke individual test setup functions according to the order - * set in struct. definition. - */ -void -setup() -{ - int ind; /* counter for setup functions */ - - /* Capture unexpected signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); -#if 0 - /* Switch to nobody user for correct error code collection */ - if (geteuid() != 0) { - tst_brkm(TBROK, tst_exit, "Test must be run as root"); - } - ltpuser = getpwnam(nobody_uid); - if (setuid(ltpuser->pw_uid) == -1) { - tst_resm(TINFO, "setuid failed to " - "to set the effective uid to %d", - ltpuser->pw_uid); - perror("setuid"); - } -#endif - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* Make a temp dir and cd to it */ - tst_tmpdir(); - - /* call individual setup functions */ - for (ind = 0; Test_cases[ind].desc != NULL; ind++) { - Test_cases[ind].setupfunc(); - } -} /* End setup() */ - -/* - * int - * no_setup() - Some test conditions for stat(2) do not any setup. - * Hence, this function just returns 0. - * This function simply returns 0. - */ -int -no_setup() -{ - return 0; -} - - -/* - * int - * setup1() - setup function for a test condition for which stat(2) - * returns -1 and sets errno to EACCES. - * Create a test directory under temporary directory and create a test file - * under this directory with mode "0666" permissions. - * Modify the mode permissions on test directory such that process will not - * have search permissions on test directory. - * - * The function returns 0. - */ -int -setup1() -{ - int fd; /* file handle for testfile */ - - /* Creat a test directory */ - if (mkdir(DIR_TEMP, MODE_RWX) < 0) { - tst_brkm(TBROK, cleanup, "mkdir(2) of %s failed", DIR_TEMP); - /*NOTREACHED*/ - } - - /* Creat a test file under above test directory */ - if ((fd = open(TEST_FILE1, O_RDWR|O_CREAT, 0666)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, 0666) failed, errno=%d : %s", - TEST_FILE1, errno, strerror(errno)); - /*NOTREACHED*/ - } - /* Close the test file */ - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s", - TEST_FILE1, errno, strerror(errno)); - /*NOTREACHED*/ - } - - /* Modify mode permissions on test directory */ - if (chmod(DIR_TEMP, FILE_MODE) < 0) { - tst_brkm(TBROK, cleanup, "chmod(2) of %s failed", DIR_TEMP); - /*NOTREACHED*/ - } - return 0; -} - -/* - * int - * setup2() - setup function for a test condition for which stat(2) - * returns -1 and sets errno to ENOTDIR. - * - * Create a test file under temporary directory so that test tries to - * change mode of a testfile "tfile_2" under "t_file" which happens to be - * another regular file. - */ -int -setup2() -{ - int fd; /* File handle for test file */ - - /* Creat a test file under temporary directory */ - if ((fd = open("t_file", O_RDWR|O_CREAT, MODE_RWX)) == -1) { - tst_brkm(TBROK, cleanup, - "open(2) on t_file failed, errno=%d : %s", - errno, strerror(errno)); - /*NOTREACHED*/ - } - /* Close the test file created above */ - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, - "close(t_file) Failed, errno=%d : %s", - errno, strerror(errno)); - /*NOTREACHED*/ - } - return 0; -} - -/* - * int - * longpath_setup() - setup to create a node with a name length exceeding - * the MAX. length of PATH_MAX. - * This function retruns 0. - */ -int -longpath_setup() -{ - int ind; /* counter variable */ - - for (ind = 0; ind <= (PATH_MAX + 1); ind++) { - Longpathname[ind] = 'a'; - } - return 0; -} - -/* - * void - * cleanup() - Performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Print test timing stats and errno log if test executed with options. - * Remove temporary directory and sub-directories/files under it - * created during setup(). - * Exit the test program with normal exit code. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - -#ifndef __CYGWIN__ - /* Restore mode permissions on test directory created in setup2() */ - if (chmod(DIR_TEMP, MODE_RWX) < 0) { - tst_brkm(TFAIL, NULL, "chmod(2) of %s failed", DIR_TEMP); - } -#endif - - /* Remove files and temporary directory created */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/stat05.c b/winsup/testsuite/winsup.api/ltp/stat05.c deleted file mode 100644 index ba102e3cb..000000000 --- a/winsup/testsuite/winsup.api/ltp/stat05.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : stat05 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for stat(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) stat(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the stat(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * stat(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="stat05"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; -struct stat statter; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call stat(2) with F_CLRALF argument on fname - */ - TEST(stat(fname, &statter)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "stat(%s, &statter) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "stat(%s, &statter) returned %d", fname, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/stat06.c b/winsup/testsuite/winsup.api/ltp/stat06.c deleted file mode 100644 index 90ee05a4c..000000000 --- a/winsup/testsuite/winsup.api/ltp/stat06.c +++ /dev/null @@ -1,378 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : stat06 - * - * EXECUTED BY : anyone - * - * TEST TITLE : stat(2) negative path testcases - * - * PARENT DOCUMENT : None - * - * TEST CASE TOTAL : 7 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 03/30/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1-7) See Testcases structure below. - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * -h : print help and exit - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * The libcuts.a and libsys.a libraries must be included in - * the compilation of this test. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the stat(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * stat(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - -char *TCID="stat06"; /* Test program identifier. */ -int TST_TOTAL=8; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -extern char *get_high_address(); - -int exp_enos[]={0, 0}; - -int high_address_setup(); -int longpath_setup(); -int no_setup(); -int filepath_setup(); -char Longpathname[PATH_MAX+2]; -char High_address[64]; -struct stat statbuf; -jmp_buf sig11_recover; -void sig11_handler(int sig); - -struct test_case_t { - char *pathname; - struct stat *stbuf; - char *desc; - int exp_errno; - int (*setupfunc)(); -} Test_cases[] = { - { "nonexistfile", &statbuf, "non-existent file", ENOENT, no_setup}, - { "", &statbuf, "path is empty string", ENOENT, no_setup}, - { "nefile/file", &statbuf, "path contains a non-existent file", - ENOENT, no_setup }, -#ifndef __CYGWIN__ - { "file/file", &statbuf, "path contains a regular file", - ENOTDIR, filepath_setup }, -#endif - { Longpathname, &statbuf, "pathname too long", ENAMETOOLONG, longpath_setup }, - { High_address, &statbuf, "address beyond address space", EFAULT, high_address_setup }, - { (char *)-1, &statbuf, "negative address", EFAULT, no_setup }, - { "file", (struct stat *)-1, "invalid struct stat address", EFAULT, filepath_setup }, - { NULL, NULL, NULL, 0, no_setup } -}; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char *fname; - char *desc; - int ind; - struct stat *stbuf; - struct sigaction sa, osa; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - for (ind=0; Test_cases[ind].desc != NULL; ind++ ) { - - fname = Test_cases[ind].pathname; - desc = Test_cases[ind].desc; - stbuf = Test_cases[ind].stbuf; - - if (stbuf == (struct stat *)-1) { - /* special sig11 case */ - sa.sa_handler = &sig11_handler; - sigemptyset(&sa.sa_mask); - sa.sa_flags = 0; - - sigaction(SIGSEGV, NULL, &osa); - sigaction(SIGSEGV, &sa, NULL); - - if (setjmp(sig11_recover)) { - TEST_RETURN = -1; - TEST_ERRNO = EFAULT; - } else { - TEST(stat(fname, stbuf)); - } - sigaction(SIGSEGV, &osa, NULL); - } else { - /* - * Call stat(2) - */ - - TEST(stat(fname, stbuf)); - } - - /* check return code */ - if ( TEST_RETURN == -1 ) { - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_ERRNO == Test_cases[ind].exp_errno ) - tst_resm(TPASS, "stat(<%s>, &stbuf) Failed, errno=%d", - desc, TEST_ERRNO); - else - tst_resm(TFAIL, - "stat(<%s>, &stbuf) Failed, errno=%d, expected errno:%d", - desc, TEST_ERRNO, Test_cases[ind].exp_errno); - } - else - Tst_count++; - } else { - tst_resm(TFAIL, - "stat(<%s>, &stbuf) returned %d, expected -1, errno:%d", - desc, TEST_RETURN, Test_cases[ind].exp_errno); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - int ind; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - for (ind=0; Test_cases[ind].desc != NULL; ind++ ) { - Test_cases[ind].setupfunc(); - } - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ - -/****************************************************************** - * no_setup() - does nothing - ******************************************************************/ -int -no_setup() -{ - return 0; -} - -/****************************************************************** - * high_address_setup() - generates an address that should cause a segfault - ******************************************************************/ -int -high_address_setup() -{ - int ind; - - for (ind=0; Test_cases[ind].desc != NULL; ind++ ) { - if ( Test_cases[ind].pathname == High_address ) { - /*if ( strcmp(Test_cases[ind].pathname, HIGH_ADDRESS) == 0 ) { ***/ - Test_cases[ind].pathname = get_high_address(); - break; - } - } - return 0; - -} - -/****************************************************************** - * longpath_setup() - creates a filename that is too long - ******************************************************************/ -int -longpath_setup() -{ - int ind; - - for(ind=0; ind<= PATH_MAX+1; ind++) { - Longpathname[ind] = 'a'; - } - return 0; - -} - -/****************************************************************** - * filepath_setup() creates a file the exists that we will treat as a directory - ******************************************************************/ -int -filepath_setup() -{ - int fd; - - if ( (fd=creat("file", 0777)) == -1 ) { - tst_brkm(TBROK, cleanup, "creat(file) failed, errno:%d %s", - errno, strerror(errno)); - } - close(fd); - return 0; -} - -/****************************************************************** - * sig11_handler() - our segfault recover hack - ******************************************************************/ -void -sig11_handler(int sig) -{ - longjmp(sig11_recover, 1); -} diff --git a/winsup/testsuite/winsup.api/ltp/symlink01.c b/winsup/testsuite/winsup.api/ltp/symlink01.c deleted file mode 100644 index dcd6a749b..000000000 --- a/winsup/testsuite/winsup.api/ltp/symlink01.c +++ /dev/null @@ -1,2033 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -/* $Id$ */ -/********************************************************** -* -* OS Test - Silicon Graphics, Inc. -* -* TEST IDENTIFIER : symlink01 (symlink) -* -* TEST TITLE : Make a Symbolic Link to a File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 5 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : readlink01 (readlink) -* -* TEST TITLE : Reads Value of a Symbolic Link -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 4 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : stat04 (stat) -* -* TEST TITLE : Gets File Status Indirectly From a Symbolic Link -* File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 3 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : lstat01 (lstat) -* -* TEST TITLE : Get file Status About a Symbolic Link File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 3 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : mkdir05 (mkdir) -* -* TEST TITLE : Fail When Making a Directory File Indirectly From -* a Symbolic Link File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 1 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : rmdir03 (rmdir) -* -* TEST TITLE : Fail When Removing a Directory File Indirectly -* From a Symbolic Link File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 1 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : chdir01 (chdir) -* -* TEST TITLE : Changes Current Working DIrectory Location -* Indirectly From a Symbolic Link File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 3 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : link01 (link) -* -* TEST TITLE : Creates a Link To a File Indirectly From a -* Symbolic Link File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 3 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : unlink01 (unlink) -* -* TEST TITLE : Removes a Link To a File And Not Any Object File -* Which Maybe Pointed At -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 1 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : chmod01 (chmod) -* -* TEST TITLE : Change Object File Permissions Indirectly From a -* Symbolic Link File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 3 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : utime01 (utime) -* -* TEST TITLE : Set File Access And Modify Object File Times -* Indirectly From a Symbolic Link File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 3 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : rename01 (rename) -* -* TEST TITLE : Rename a Symbolic Link File And Not Any Object -* File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 3 -* -* WALL CLOCK TIME : 3 -* -* TEST IDENTIFIER : open01 (open) -* -* TEST TITLE : Create/Open a File For Reading Or Writing -* Indirectly From a Symbolic Link File -* -* PARENT DOCUMENT : symtds01 -* -* TEST CASE TOTAL : 5 -* -* WALL CLOCK TIME : 3 -* -* EXECUTED BY : whom ever -* -* CPU TYPES : ALL -* -* AUTHOR : David Fenner -* -* CO-PILOT : Jon Hendrickson -* -* DATE STARTED : 07/25/90 -* -* INITIAL RELEASE : UNICOS 6.0 -* -* TEST CASES -* -* For symlink -* -* 1. Create symbolic link with abnormal object name path -* 2. Create symbolic link with normal object name path -* 3. Create symbolic link with path to an existing object file -* 4. Receive EEXIST error when creating an already existing symbolic link file. -* 5. Receive ENAMETOOLONG error when creating symbolic link which exceeds PATH_MAX in length -* -* For readlink -* -* 1. Read a symbolic link file which points at no object file -* 2. Read a symbolic link file which points at an object file -* 3. Receive ENAMETOOLONG error when reading symbolic link which exceeds PATH_MAX in length -* 4. Receive an EINVAL error when reading a file which is not a symbolic -* link file. -* -* For stat -* -* 1. Get object file status through symbolic link file -* 2. Receive ENOENT error when accessing non-existent object file through symbolic link file -* 3. Receive ELOOP error when nesting of symbolic links exceed maximum -* -* For lstat -* -* 1. Get symbolic link file status when pointing at no object file -* 2. Get symbolic link file status when pointing at an object file -* 3. Get object file status when argument is not a symbolic link -* file. -* -* For mkdir -* -* 1. Receive EEXIST error when creating a directory through a symbolic link file -* -* For rmdir -* -* 1. Receive ENOTDIR error when removing an existing directory through a symbolic link file -* -* For chdir -* -* 1. Change current working directory through a symbolic link file -* 2. Receive ENOENT error when accessing non-existent directory through symbolic link file -* 3. Receive ELOOP error when nesting of symbolic links exceed maximum -* -* For link -* -* 1. Link an object file to a new file through symbolic link file -* 2. Receive ENOENT error when accessing non-existent object file through symbolic link file -* 3. Receive ELOOP error when nesting of symbolic links exceed maximum -* -* For unlink -* -* 1. Delete a symbolic link file and not the object file which it points at -* -* For chmod -* -* 1. Change file permissions of object file through a symbolic link file -* 2. Receive ENOENT error when accessing non-existent directory through symbolic link file -* 3. Receive ELOOP error when nesting of symbolic links exceed maximum -* -* For utime -* -* 1. Change inode times of object file through a symbolic link file -* 2. Receive ENOENT error when accessing non-existent directory through symbolic link file -* 3. Receive ELOOP error when nesting of symbolic links exceed maximum -* -* For rename -* -* 1. Rename a symbolic link file which points at no object file -* 2. Rename a symbolic link file which points at an object file without any object file alterations. -* 3. Receive EXDEV when trying to rename a symbolic link file to an address outside of current file system -* -* For open -* -* 1. Create an object file through a symbolic link file -* 2. Open an object file through a symbolic link file -* 3. Receive EEXIST error when exclusively creating an object file through a symbolic link file -* 4. Receive ENOENT error when accessing non-existent object file through symbolic link file -* 5. Receive ELOOP error when nesting of symbolic links exceed maximum -* -* ENVIRONMENTAL NEEDS -* None -* -* DETAILED DESCRIPTION -* -* Self-documenting code so see below -* -*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include /* open(2) system call */ -#include -#include -#include /* utime(2) system call */ -#include -#include /* stat(2) and lstat(2) system calls */ - -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); -void help(); -void delete_files(); -void do_EEXIST(); -void do_ENOENT(); -void do_ELOOP(); -void do_ENOTDIR(); -void do_EXDEV(); -void do_ENAMETOOLONG(); -void do_EINVAL(); -void do_readlink(); -void do_stat(); -void do_chdir(); -void do_link(); -void do_unlink(); -void do_chmod(); -void do_utime(); -void do_rename(); -void do_open(); - -#define S_FILE "symbolic" /* Name of symbolic link file */ -#define O_FILE "object" /* Name of object file */ -#define A_S_FILE "asymbolic" /* Another name for a symbolic link file */ -#define Y_A_S_FILE "/NiCkEr" /* Yet another symbolic link file */ -#define BIG_STRING "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz" - -#define DEFAULT_TCID "symlink01" -#define ALL 1 - -#define SYMLINK "symlink01" -#define READLINK "readlink01" -#define STAT "stat04" -#define LSTAT "lstat01" -#define MKDIR "mkdir05" -#define RMDIR "rmdir03" -#define CHDIR "chdir01" -#define LINK "link01" -#define UNLINK "unlink01" -#define CHMOD "chmod01" -#define UTIME "utime01" -#define RENAME "rename01" -#define OPEN "open01" - -#define cktcsid(s1,s2) (!strcmp(s1,s2)) -#define BUFMAX 512 -#define MODE 0700 -#define MASK 0100777 /* A regular file with r,w,x for all mask */ - -/* - * Lets be optimistic and only define messages for passing test cases - */ -const char *msgs[] = { - "Creation of symbolic link file to no object file is ok", - "Creation of symbolic link file and object file via symbolic link is ok", - "Creating an existing symbolic link file error is caught", - "Creating a symbolic link which exceeds maximum pathname error is caught", - "Reading of symbolic link file contents checks out ok", - "Reading a symbolic link which exceeds maximum pathname error is caught", - "Getting stat info about object file through symbolic link file is ok", - "Stat(2) error when accessing non-existent object through symbolic link is caught", - "lstat(2) of symbolic link file which points to no object file is ok", - "lstat(2) of symbolic link file which points at an object file is ok", - "mkdir(2) of object file through symbolic link file failed as expected", - "rmdir(2) of object file through symbolic link file failed as expected", - "chdir(2) to object file location through symbolic link file is ok", - "chdir(2) to non-existent object file location through symbolic link file failed as expected", - "link(2) to a symbolic link, which is pointing to an existing object file worked - file created and link count adjusted", - "link(2) to a symbolic link, which is pointing to a non-existing object file worked ok - file created and link count adjusted.", - "unlink(2) of symbolic link file with no object file removal is ok", - "chmod(2) of object file permissions through symbolic link file is ok", - "chmod(2) error when accessing non-existent object through symbolic link is caught", - "utime(2) change of object file access and modify times through symbolic link file is ok", - "utime(2) error when accessing non-existent object through symbolic link is caught", - "rename(3) of symbolic link file name which points at no object file is ok", - "rename(3) of symbolic link file name which points at object file is ok", - "rename(3) error of symbolic link file name across file systems is caught", - "open(2) with (O_CREAT | O_RDWR) to create object file through symbolic link file and all writes, reads, and lseeks are ok", - "open(2) with O_RDWR of existing object file through symbolic link file and all writes, reads, and lseeks are ok", - "open(2) with (O_CREAT | O_EXCL) error is caught when creating object file through symbolic link file", - "open(2) error with O_RDWR is caught when processing symbolic link file which points at no object file", - "Nested symbolic link access condition caught. ELOOP is returned", - "Reading a nonsymbolic link file error condition is caught. EINVAL is returned", - "lstat(2) of object file returns object file inode information", - "NULL" -}; - -/* - * Define test object setup and validation functions - */ -int creat_both(), creat_symlink(), creat_path_max(), ck_symlink(), - creat_object(), ck_object(), ck_both(), ck_path_max(); - - -/* - * Define test cases - */ -struct all_test_cases -{ - char *tcid; - int test_fail; - int errno_val; - int pass_msg; - int (*test_setup)(); - int (*ck_test)(); - char *fn_arg[3]; - -} test_objects[] = { - {SYMLINK, 0, 0, 0, creat_symlink, ck_symlink, {"%bc+eFhi!k", S_FILE, NULL}}, - {SYMLINK, 0, 0, 0, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {SYMLINK, 0, 0, 1, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {SYMLINK, 1, EEXIST, 2, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {SYMLINK, 1, ENAMETOOLONG, 3, creat_path_max, ck_path_max, {O_FILE, S_FILE, NULL}}, - {READLINK, 0, 0, 4, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {READLINK, 0, 0, 4, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {READLINK, 1, ENAMETOOLONG, 5, creat_path_max, ck_path_max, {O_FILE, S_FILE, NULL}}, - {READLINK, 1, EINVAL, 29, creat_object, ck_object, {O_FILE, NULL, NULL}}, - {STAT, 0, 0, 6, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {STAT, 1, ENOENT, 7, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {STAT, 1, ELOOP, 28, creat_symlink, ck_symlink, {S_FILE, S_FILE, NULL}}, - {LSTAT, 0, 0, 8, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {LSTAT, 0, 0, 9, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {LSTAT, 0, 0, 30, creat_object, ck_object, {O_FILE, NULL, NULL}}, - {MKDIR, 1, EEXIST, 10, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {RMDIR, 1, ENOTDIR, 11, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {CHDIR, 0, 0, 12, creat_symlink, ck_symlink, {O_FILE, S_FILE, O_FILE}}, - {CHDIR, 1, ENOENT, 13, creat_symlink, ck_symlink, {"%bc+eFhi!k", S_FILE, NULL}}, - {CHDIR, 1, ELOOP, 28, creat_symlink, ck_symlink, {S_FILE, S_FILE, NULL}}, - {LINK, 0, 0, 14, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {LINK, 0, 0, 15, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - /* The following link test case is invalid - leaving it defined so */ - /* I don't have to change all the entries in the all_tcses array after link */ - {LINK, -1, -1, -1, creat_symlink, ck_symlink, {NULL, NULL, NULL}}, - {UNLINK, 0, 0, 16, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {CHMOD, 0, 0, 17, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {CHMOD, 1, ENOENT, 18, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {CHMOD, 1, ELOOP, 28, creat_symlink, ck_symlink, {S_FILE, S_FILE, NULL}}, - {UTIME, 0, 0, 19, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {UTIME, 1, ENOENT, 20, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {UTIME, 1, ELOOP, 28, creat_symlink, ck_symlink, {S_FILE, S_FILE, NULL}}, - {RENAME, 0, 0, 21, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {RENAME, 0, 0, 22, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {RENAME, -1, EXDEV, 23, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {OPEN, 0, 0, 24, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {OPEN, 0, 0, 25, creat_both, ck_both, {O_FILE, S_FILE, O_FILE}}, - {OPEN, -1, EEXIST, 26, creat_symlink, ck_symlink, {O_FILE, S_FILE, O_FILE}}, - {OPEN, 1, ENOENT, 27, creat_symlink, ck_symlink, {O_FILE, S_FILE, NULL}}, - {OPEN, 1, ELOOP, 28, creat_symlink, ck_symlink, {S_FILE, S_FILE, NULL}} -}; - -/* - * Define tcses - */ -struct tcses -{ - char *tcid; - char *syscall; - int test_cases; /* number of entries in test_objects array */ - struct all_test_cases *tc_ptr; - char *desc; -} all_tcses[] = { - - { SYMLINK, "symlink", 5, &test_objects[0], - "Make a Symbolic Link to a File" }, - { READLINK, "readlink", 4, &test_objects[5], - "Reads Value of a Symbolic Link" }, - { STAT, "stat", 3, &test_objects[9], - "Gets File Status Indirectly From a Symbolic Link file" }, - { LSTAT, "lstat", 3, &test_objects[12], - "Get file Status About a Symbolic Link File" }, - { MKDIR, "mkdir", 1, &test_objects[15], - "Fail When Making a Directory File Indirectly from a symlink" }, - { RMDIR, "rmdir", 1, &test_objects[16], - "Fail When Removing a Directory File Indirectly from a symlink" }, - { CHDIR, "chdir", 3, &test_objects[17], - "Changes CWD Location Indirectly from a symlink" }, - { LINK, "link", 2, &test_objects[20], - "Creates a Link To a File Indirectly From a Symbolic" }, - { UNLINK, "unlink", 1, &test_objects[23], - "Removes a Link To a File but not the Object File" }, - { CHMOD, "chmod", 3, &test_objects[24], - "Change Object File Permissions Indirectly From a Symbolic" }, - { UTIME, "utime", 3, &test_objects[27], - "Set File Access And Modify Object File Times via symlink" }, - { RENAME, "rename", 3, &test_objects[30], - "Rename a Symbolic Link File And Not Any Object file" }, - { OPEN, "open", 5, &test_objects[33], - "Create/Open a File For Reading Or Writing via symlink" }, -}; - -/* - * Define GLOBAL variables - */ - -int TST_TOTAL; -int TEST_RESULT; -time_t a_time_value = 100; -char *TCID = NULL; -char *Selectedtests = NULL; /* Name (tcid) of selected test cases */ -char test_msg[BUFMAX]; -char full_path[PATH_MAX+1]; -extern int Tst_count; -extern char *TESTDIR; -extern char *strrchr(); -extern int errno; - -struct stat asymlink, statter; -char Buffer[1024]; -char Buf[1024]; - -char *Tcid = NULL; - -option_t Options[] = { - { "T:", NULL, &Tcid }, /* -T tcid option */ - { NULL, NULL, NULL } -}; - -/*********************************************************************** - * MAIN - ***********************************************************************/ -int -main(int argc, char *argv[]) -{ - struct tcses *tcs_ptr, *get_tcs_info(); - int do_syscalltests(); - void cleanup(); - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - - /*************************************************************** - * parse standard options, and exit if there is an error - ***************************************************************/ - if ( (msg=parse_opts(argc, argv, Options, &help)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* - * If the -T option was used, use that TCID or use the default - */ - if ( Tcid != NULL ) { - TCID = Tcid; - Selectedtests=Tcid; - - } - else { - TCID = DEFAULT_TCID; -#ifndef ALL - Selectedtests = DEFAULT_TCID; -#else - Selectedtests = NULL; -#endif - } - - /* - * Get test case specification information and assign TST_TOTAL - */ - if ((tcs_ptr=get_tcs_info(Selectedtests)) == NULL) { - TST_TOTAL=1; - tst_brkm(TBROK, cleanup, - "Unknown symbolic link test case specification executed"); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - - setup(); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Execute tcs testing function and all defined test cases - */ - do_syscalltests(tcs_ptr); - - } /* End for TEST_LOOPING */ - - /* - * End appropriately - */ - cleanup(); - - return 0; -} - -/*********************************************************************** - * This function maps the name of the process to a test case specification - * defined in the all_tcses array of tcses structures. Either a pointer - * to the mapped test case specification information is returned or a - * null pointer. - * - * Argument is path to program name. - ***********************************************************************/ -struct tcses *get_tcs_info(ptr) -char *ptr; -{ - int ctr; - struct tcses *tcs_ptr; - -#if ALL - if ( ptr == NULL ) { - - TST_TOTAL=0; - for (ctr=1; ctr < sizeof(all_tcses)/sizeof(struct tcses); ctr++) - TST_TOTAL += all_tcses[ctr].test_cases; - return all_tcses; - } -#endif - - - for(ctr=0; ctr < (sizeof(all_tcses)/sizeof(struct tcses)); ctr++) { - if ( strcmp(ptr, all_tcses[ctr].tcid) == 0 || - strcmp(ptr, all_tcses[ctr].syscall) == 0 ) { - tcs_ptr = &all_tcses[ctr]; - TCID = all_tcses[ctr].tcid; - TST_TOTAL=tcs_ptr->test_cases; - return(tcs_ptr); - } - - } - return(NULL); -} - -/*********************************************************************** - * Determines if what path points at is a symbolic link file - * - * Argument is path to symbolic link file. - * - * Return status is one if a symbolic link file. Zero if not a symbolic - * link file and a minus one if the path doesn't point at a file. - ***********************************************************************/ -int -see_if_a_symlink(path) -char *path; -{ - if (lstat(path, &asymlink) < 0) - return(-1); - - if ((asymlink.st_mode & S_IFMT) == S_IFLNK) - return(1); - else - return(0); -} - -/*********************************************************************** - * This function performs without any hesitation, file(s) deletions - ***********************************************************************/ -void -delete_files(path1, path2) -char *path1, *path2; -{ - unlink(path1); - unlink(path2); -} - -/*********************************************************************** - * - * This routine creates a symbolic link file. - * - * Argument one is symbolic link pathname to point at. - * Argument two is name of symbolic link file. - * - ***********************************************************************/ -int -creat_symlink(path1, path2) -char *path1, *path2; -{ - TEST( symlink(path1, path2) ); - errno=TEST_ERRNO; - if (TEST_RETURN == -1) { - TEST_RESULT=TBROK; - sprintf(test_msg, - "symlink(2) Failure when creating setup %s object file: errno:%d %s", - path1, errno, strerror(errno)); - return(0); - } - else { - sprintf(Buf, "symlink(%s, %s) was succesful.\n", path1, path2); - strcat(Buffer, Buf); -#if DEBUG - tst_resm(TPASS, "symlink(%s, %s) was succesful.", path1, path2); -#endif - } - return(1); -} - -/*********************************************************************** - * - * This routine creates a regular file. - * - * Argument one is a pathname - * - ***********************************************************************/ -int -creat_object(path1) -char *path1; -{ - int fd; - if ((fd=creat(path1, MODE)) == -1) { - TEST_RESULT=TBROK; - sprintf(test_msg, - "creat(2) Failure when creating setup %s object file: errno:%d %s", - path1, errno, strerror(errno)); - return(0); - } - else { - sprintf(Buf, "creat(%s, %#o) was succesful.\n", path1, MODE); - strcat(Buffer, Buf); -#if DEBUG - tst_resm(TPASS, "creat(%s, %#o) was succesful.", path1, MODE); -#endif - } - if (close(fd) == -1) { - TEST_RESULT=TBROK; - sprintf(test_msg, - "close(2) Failure when closing setup %s object file: errno:%d %s", - path1, errno, strerror(errno)); - return(0); - } - return(1); -} - -/*********************************************************************** - * - * This routine creates a symbolic link file and a regular file. - * - * Argument one is a pathname of object file - * Argument two is symbolic link file name - * Argument three is regular file name - * - ***********************************************************************/ -int -creat_both(path1, path2, path3) -char *path1, *path2, *path3; -{ - if (creat_symlink(path1, path2) == -1) - return(0); - else if (creat_object(path3) == -1) - return(0); - return(1); -} - -/*********************************************************************** - * - * This routine checks if symbolic link file is a symbolic link file. - * - * Argument one is a pathname of object file - * Argument two is symbolic link file name - * Argument three is regular file name - * - ***********************************************************************/ -int -ck_symlink(path1, path2, path3) -char *path1, *path2, *path3; -{ - int ret; - - if ((ret=see_if_a_symlink(path2)) == -1) { - TEST_RESULT=TBROK; - sprintf(test_msg, - "lstat(2) Failure when accessing %s symbolic link file which should contain %s path to %s file ", - path2, path1, path3); - return(0); - } - else if (ret == 0) { - TEST_RESULT=TBROK; - sprintf(test_msg, - "%s is not a symbolic link file which contains %s path to %s file", - path2, path1, path3); - return(0); - } - return(1); -} - -/*********************************************************************** - * - * This routine checks if symbolic link file points at object file. - * - * Argument one is a pathname of object file - * Argument two is symbolic link file name - * Argument three is regular file name - * - ***********************************************************************/ -int -ck_both(path1, path2, path3) -char *path1, *path2, *path3; -{ - if (ck_symlink(path1, path2, path3) == 0) - return(0); - else if ((stat(path3, &statter) == -1) && (errno == ENOENT)) { - TEST_RESULT=TBROK; - sprintf(test_msg, "stat(2) Failure when accessing %s object file ", path3); - return(0); - } - else if ((stat(path2, &asymlink) == -1) && (errno == ENOENT)) { - TEST_RESULT=TBROK; - sprintf(test_msg, "stat(2) Failure when accessing %s symbolic link file ", - path2); - return(0); - } - else if (statter.st_ino != asymlink.st_ino) { - TEST_RESULT=TBROK; - sprintf(test_msg, - "stat(2) Failure when accessing %s object file through %s symbolic link file ", - path3, path2); - return(0); - } - return(1); - -} - -/*********************************************************************** - * This routine populates full_path with a pathname whose length exceeds - * the PATH_MAX define value in param.h - * - * Argument one is a pathname of object file - * Argument two is symbolic link file name - * Argument three is regular file name - ***********************************************************************/ -int -creat_path_max(path1, path2, path3) -char *path1, *path2, *path3; -{ - int ctr, to_go, size, whole_chunks; - char buf [PATH_MAX]; - char *cwd; - - if ((cwd = getcwd(buf, sizeof (buf))) == NULL) - { - TEST_RESULT=TBROK; - sprintf(test_msg, - "getcwd(3) Failure in setup of %s %s %s test case object elements", - path1, path2, path3); - return(0); - } - size = strlen(cwd); - - to_go = PATH_MAX - size; - size = strlen(path1); - whole_chunks = to_go / size; - strcpy(full_path, cwd); - for (ctr=0; ctr < whole_chunks; ctr++) { - strcat(full_path, path1); - } - size= strlen(full_path); - to_go = PATH_MAX - size; - strcat(full_path, "/"); - for (ctr=0; ctr < to_go; ctr++) - strcat(full_path, "Z"); - - return(1); -} - -/*********************************************************************** - * This routine checks that full_path's length exceeds the PATH_MAX - * define value in param.h - * - * Argument one is a pathname of object file - * Argument two is symbolic link file name - * Argument three is regular file name - ***********************************************************************/ -int -ck_path_max(path1, path2, path3) -char *path1, *path2, *path3; -{ - if (strlen(full_path) == (PATH_MAX+1)) - return(1); - else - { - TEST_RESULT=TBROK; - sprintf(test_msg, "%s %d %s %s %s %s", - "full_path character array length was not", (PATH_MAX+1), - "characters long for test case object elements", - path1, path2, path3); - return(0); - } -} - -/*********************************************************************** - * This routine checks if the stat(2) and lstat(2) calls return the same - * information when the path is not a symbolic link file - * - * Argument one is a pathname of object file - * Argument two is symbolic link file name - * Argument three is regular file name - * - ***********************************************************************/ -int -ck_object(path1, path2, path3) -char *path1, *path2, *path3; -{ - int ret; - - if ((ret=see_if_a_symlink(path1)) < 0) { - TEST_RESULT=TFAIL; - sprintf(test_msg, - "lstat(2) failed to return inode information for a regular object file"); - return(0); - } - else if (ret == 1) { - TEST_RESULT=TFAIL; - sprintf(test_msg, - "lstat(2) detected a regular object file as a symbolic link file"); - return(0); - } - else if (stat(path1, &statter) == -1) { - TEST_RESULT=TBROK; - sprintf(test_msg, - "stat(2) failed to return inode information for a regular object file"); - return(0); - } - else if (bcmp((char *)&statter, (char *)&asymlink, sizeof(statter)) != 0) { - TEST_RESULT=TFAIL; - sprintf(test_msg, - "lstat(2) and stat(2) do not return same inode information for an object file"); - return(0); - - } - return(1); -} - -/*********************************************************************** - * Main test case processing function - * - * Argument is a ptr into the all_tcses array of structures of type tcses - ***********************************************************************/ -int -do_syscalltests(tcs) -struct tcses *tcs; -{ - int ctr, ret; - struct all_test_cases *tc_ptr; - - /* - * loop through desired number of test cases - */ - for (ctr=0, tc_ptr=tcs->tc_ptr; ctr < TST_TOTAL; ctr++, tc_ptr++) { - - if (tc_ptr->test_fail < 0) continue; - - Buffer[0]='\0'; - - /* - * If running all test cases for all tcid, set the TCID if needed. - */ - if ( Selectedtests == NULL ) { - if ( !TCID || strcmp(TCID, tc_ptr->tcid) != 0 ) { - TCID = tc_ptr->tcid; - Tst_count=0; - } - } - /* - * Insure that we are executing the correct tcs test case - */ - if (strcmp(TCID, tc_ptr->tcid) != 0) { - tst_resm(TBROK, "%s TCID attempted to execute %s %d %d test case", - TCID, tc_ptr->tcid, tc_ptr->test_fail, tc_ptr->errno_val); - continue; - } - TEST_RESULT=TPASS; - delete_files(S_FILE, O_FILE); - /* - * Perform test case setup - */ - ret = (tc_ptr->test_setup)(tc_ptr->fn_arg[0], tc_ptr->fn_arg[1], - tc_ptr->fn_arg[2], tc_ptr->errno_val); - - /* If an expected error, try it out */ - - if (tc_ptr->test_fail) { - /* - * Try to perform test verification function - */ - if (! (tc_ptr->ck_test)(tc_ptr->fn_arg[0], tc_ptr->fn_arg[1], - tc_ptr->fn_arg[2], tc_ptr->errno_val)) - tst_resm(TEST_RESULT, test_msg); - else if (tc_ptr->errno_val == EEXIST) - do_EEXIST(tc_ptr); - else if (tc_ptr->errno_val == ENOENT) - do_ENOENT(tc_ptr); - else if (tc_ptr->errno_val == ELOOP) - do_ELOOP(tc_ptr); - else if (tc_ptr->errno_val == ENOTDIR) - do_ENOTDIR(tc_ptr); - else if (tc_ptr->errno_val == EXDEV) - do_EXDEV(tc_ptr); - else if (tc_ptr->errno_val == ENAMETOOLONG) - do_ENAMETOOLONG(tc_ptr); - else if (tc_ptr->errno_val == EINVAL) - do_EINVAL(tc_ptr); - else - tst_resm(TBROK, "Test Case Declaration Error"); - } - else if (ret == 1) { /* No setup function error */ - - if (tc_ptr->errno_val != 0) - tst_resm(TBROK, "Test Case Declaration Error"); - else { - /* - * Perform test verification function - */ - ret=(tc_ptr->ck_test)(tc_ptr->fn_arg[0], tc_ptr->fn_arg[1], - tc_ptr->fn_arg[2], tc_ptr->errno_val); - - /* Perform requested symbolic link system call test */ - - if ((cktcsid(tc_ptr->tcid, SYMLINK)) || - (cktcsid(tc_ptr->tcid, LSTAT))) { - if (ret == 1) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - tst_resm(TEST_RESULT, test_msg); - } - else if (ret == 0) - tst_resm(TEST_RESULT, test_msg); - else if (cktcsid(tc_ptr->tcid, READLINK)) - do_readlink(tc_ptr); - else if (cktcsid(tc_ptr->tcid, STAT)) - do_stat(tc_ptr); - else if (cktcsid(tc_ptr->tcid, CHDIR)) - do_chdir(tc_ptr); - else if (cktcsid(tc_ptr->tcid, LINK)) - do_link(tc_ptr); - else if (cktcsid(tc_ptr->tcid, UNLINK)) - do_unlink(tc_ptr); - else if (cktcsid(tc_ptr->tcid, CHMOD)) - do_chmod(tc_ptr); - else if (cktcsid(tc_ptr->tcid, UTIME)) - do_utime(tc_ptr); - else if (cktcsid(tc_ptr->tcid, RENAME)) - do_rename(tc_ptr); - else if (cktcsid(tc_ptr->tcid, OPEN)) - do_open(tc_ptr); - else - tst_resm(TBROK, "Unknown test case processing actions declared"); - } - } - else - tst_resm(TBROK, "Test Case Declaration Error"); - } - return(0); -} - -/*********************************************************************** - * This routine checks for the return of EEXIST errno from requested - * system call - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_EEXIST(tc_ptr) -struct all_test_cases *tc_ptr; -{ - if (cktcsid(tc_ptr->tcid, SYMLINK)) { - - TEST( symlink(tc_ptr->fn_arg[0], tc_ptr->fn_arg[1]) ); - errno=TEST_ERRNO; - if ((TEST_RETURN == -1) && (errno == EEXIST)) - if ( STD_FUNCTIONAL_TEST ) - tst_resm(TPASS, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s %s", - "Expected EEXIST error when creating a symbolic link file", - "which already existed"); - } - else if (cktcsid(tc_ptr->tcid, MKDIR)) { - - TEST ( mkdir(tc_ptr->fn_arg[1],MODE) ); - errno=TEST_ERRNO; - if ((TEST_RETURN == -1) && (errno == EEXIST)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else { - - tst_resm(TFAIL, "%s %s", - "Expected EEXIST error when creating a directory by a symbolic", - "link file which pointed at no object file"); - rmdir(tc_ptr->fn_arg[1]); - } - } - else if (cktcsid(tc_ptr->tcid, OPEN)) { - - TEST( open(tc_ptr->fn_arg[1], (O_EXCL | O_CREAT)) ) - errno=TEST_ERRNO; - if ((TEST_RETURN == -1) && (errno == EEXIST)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s %s errno:%d %s", - "Expected EEXIST error for exclusively opening an object file", - "through a symbolic link file was not received:", - errno, strerror(errno)); - close (TEST_RETURN); - } - else - tst_resm(TBROK, "Unknown test case processing actions declared"); -} - -/*********************************************************************** - * This routine checks for the return of ENOENT errno from requested - * system call - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_ENOENT(tc_ptr) -struct all_test_cases *tc_ptr; -{ - if (cktcsid(tc_ptr->tcid, STAT)) { - - if ((stat(tc_ptr->fn_arg[1], &asymlink) == -1) && (errno == ENOENT)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s %s errno:%d %s", - "Expected ENOENT error for stating a non-existent directory", - "through a symbolic link file was not received:", - errno, strerror(errno)); - } - else if (cktcsid(tc_ptr->tcid, CHDIR)) { - if ((chdir(tc_ptr->fn_arg[1]) == -1) && (errno == ENOENT)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else { - tst_resm(TFAIL, "%s %s errno:%d %s", - "Expected ENOENT error for changing to a non-existent", - "directory through a symbolic link file was not received:", - errno, strerror(errno)); - chdir(TESTDIR); - } - } - else if (cktcsid(tc_ptr->tcid, LINK)) { - - if ((link(tc_ptr->fn_arg[1], "nick") == -1) && (errno == ENOENT)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - { - tst_resm(TFAIL, "%s %s errno:%d %s", - "Expected ENOENT error condition when link(2) a symbolic", - "link which pointed at no object:", errno, strerror(errno)); - delete_files("nick", NULL); - } - } - else if (cktcsid(tc_ptr->tcid, CHMOD)) { - - if ((chmod(tc_ptr->fn_arg[1], MODE) == -1) && (errno == ENOENT)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s %s errno:%d %s", - "Expected ENOENT error condition when chmod(2) a symbolic", - "link which pointed at no object,", errno, strerror(errno)); - } - else if (cktcsid(tc_ptr->tcid, UTIME)) { - - if ((utime(tc_ptr->fn_arg[1], NULL) == -1) && (errno == ENOENT)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s %s errno:%d %s", - "Expected ENOENT error condition when utime(2) a symbolic", - "link which pointed at no object:", errno, strerror(errno)); - } - else if (cktcsid(tc_ptr->tcid, OPEN)) { - - if ((open(tc_ptr->fn_arg[1], O_RDWR) == -1) && (errno == ENOENT)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s %s errno:%d %s", - "Expected ENOENT error for opening a non-existent object", - " file through a symbolic link file was not received,", - errno, strerror(errno)); - close (TEST_RETURN); - } - else - tst_resm(TBROK, "Unknown test case processing actions declared"); -} - -/*********************************************************************** - * This routine checks for the return of ELOOP errno from requested - * system call - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_ELOOP(tc_ptr) -struct all_test_cases *tc_ptr; -{ - if (cktcsid(tc_ptr->tcid, STAT)) { - - TEST( stat(tc_ptr->fn_arg[1], &asymlink) ); - errno=TEST_ERRNO; - if ((TEST_RETURN == -1) && (errno == ELOOP)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, "%s errno:%d %s", - "Expected ELOOP errno from stat(2) (nested symb link),", - errno, strerror(errno)); - else - Tst_count++; - } - else if (cktcsid(tc_ptr->tcid, CHDIR)) { - - TEST( chdir(tc_ptr->fn_arg[1]) ); - errno=TEST_ERRNO; - if ((TEST_RETURN == -1) && (errno == ELOOP)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else { - - tst_resm(TFAIL, "%s errno:%d %s", - "Expected ELOOP error condition when chdir(2) a nested symbolic link:", - errno, strerror(errno)); - chdir(TESTDIR); - } - } - else if (cktcsid(tc_ptr->tcid, LINK)) { - - TEST ( link(tc_ptr->fn_arg[1], O_FILE) ); - errno=TEST_ERRNO; - if ((TEST_RETURN == -1) && (errno == ELOOP)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s errno:%d %s", - "Expected ELOOP error condition when link(2) a nested symbolic link:", - errno, strerror(errno)); - } - else if (cktcsid(tc_ptr->tcid, CHMOD)) { - - TEST ( chmod(tc_ptr->fn_arg[1], MODE) ); - errno=TEST_ERRNO; - if ((TEST_RETURN == -1) && (errno == ELOOP)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s errno:%d %s", - "Expected ELOOP error condition when chmod(2) a nested symbolic link:", - errno, strerror(errno)); - return; - } - else if (cktcsid(tc_ptr->tcid, UTIME)) { - - TEST( utime(tc_ptr->fn_arg[1], NULL) ); - errno=TEST_ERRNO; - - if ((TEST_RETURN == -1) && (errno == ELOOP)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s errno:%d %s", - "Expected ELOOP error condition when utime(2) a nested symbolic link:", - errno, strerror(errno)); - } - else if (cktcsid(tc_ptr->tcid, OPEN)) { - - int fd; - TEST( open(tc_ptr->fn_arg[1], O_CREAT) ); - fd=TEST_RETURN; - errno=TEST_ERRNO; - if ((fd == -1) && (errno == ELOOP)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s errno:%d %s", - "Expected ELOOP error condition when open(2) a nested symbolic link:", - errno, strerror(errno)); - close (fd); - } - else - tst_resm(TBROK, "Unknown test case processing actions declared"); -} - -/*********************************************************************** - * This routine checks for the return of ENOTDIR errno from requested - * system call - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_ENOTDIR(tc_ptr) -struct all_test_cases *tc_ptr; -{ - if (cktcsid(tc_ptr->tcid, RMDIR)) { - - TEST( mkdir(tc_ptr->fn_arg[0], MODE) ); - errno=TEST_ERRNO; - if (TEST_RETURN == -1) - tst_resm(TBROK, "mkdir(2) Failure when creating %s", - tc_ptr->fn_arg[0]); - else if ((rmdir(tc_ptr->fn_arg[1]) == -1) && (errno == ENOTDIR)) { - - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - rmdir(tc_ptr->fn_arg[0]); - } - else - tst_resm(TFAIL, "%s %s errno:%d %s", - "Expected ENOTDIR error for removing a non-existent", - "directory through a symbolic link file was not received,", - errno, strerror(errno)); - } - else - tst_resm(TBROK, "Unknown test case processing actions declared"); -} - -/*********************************************************************** - * This routine checks for the return of EXDEV errno from requested - * system call - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_EXDEV(tc_ptr) -struct all_test_cases *tc_ptr; -{ - if (cktcsid(tc_ptr->tcid, RENAME)) { - - TEST( rename(tc_ptr->fn_arg[1], Y_A_S_FILE) ); - errno=TEST_ERRNO; - if ((TEST_RETURN == -1) && (errno == EXDEV)) { - if (see_if_a_symlink(Y_A_S_FILE) == -1) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s %s %s file outside of current file system", - "rename(3) returned -1 when trying to move symbolic link file", - "outside of current file system, but created", Y_A_S_FILE); - } - else { - tst_resm(TFAIL, "%s %s errno:%d %s", - "Expected EXDEV error for renaming an existing symbolic", - "link file to a location outside of existing file system,", - errno, strerror(errno)); - delete_files("/NiCkEr", NULL); - } - } - else - tst_resm(TBROK, "Unknown test case processing actions declared"); -} - -/*********************************************************************** - * This routine checks for the return of ENAMETOOLONG errno from requested - * system call - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_ENAMETOOLONG(tc_ptr) -struct all_test_cases *tc_ptr; -{ - int ret; - - if (cktcsid(tc_ptr->tcid, SYMLINK)) { - - TEST( symlink(tc_ptr->fn_arg[0], full_path) ); - errno=TEST_ERRNO; - if ((TEST_RETURN == -1) && (errno == ENAMETOOLONG)) - if (see_if_a_symlink(full_path) == -1) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s %s %d %s", - "symlink(2) returned -1 when trying to create a symbolic", - "link file whose name exceeded", (PATH_MAX+1), - "characters, but it created the symbolic link file"); - else - tst_resm(TFAIL, - "Expected ENAMETOOLONG error when creating %s symbolic link file with a path exceeding %d characters: errno:%d %s", - tc_ptr->fn_arg[1], (PATH_MAX+1), errno, strerror(errno)); - } - else if (cktcsid(tc_ptr->tcid, READLINK)) { - - char scratch[PATH_MAX+1]; - - ret=readlink(full_path, scratch, strlen(full_path)); - if (( ret == -1) && (errno == ENAMETOOLONG)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, - "Expected ENAMETOOLONG error when reading %s symbolic link file with a path exceeding %d characters: errno:%d %s", - tc_ptr->fn_arg[1], (PATH_MAX+1), errno, strerror(errno)); - } - else - tst_resm(TBROK, "Unknown test case processing actions declared"); -} - -/*********************************************************************** - * This routine checks for the return of EINVAL errno from requested - * system call - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_EINVAL(tc_ptr) -struct all_test_cases *tc_ptr; -{ - if (cktcsid(tc_ptr->tcid, READLINK)) { - TEST( readlink(tc_ptr->fn_arg[0], test_msg, BUFMAX) ); - errno=TEST_ERRNO; - if (TEST_RETURN == -1) { - if (errno == EINVAL) { - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - } else - tst_resm(TFAIL, "readlink(2) ret:-1, errno:%d, : Exp errno:%d", - errno, EINVAL); - } - else { - tst_resm(TFAIL, "readlink(2) did not returned -1 when reading %s", - "a file which is not a symbolic link file"); - } - } - else - tst_resm(TBROK, "Unknown test case processing actions declared"); -} - -/*********************************************************************** - * This routine checks out the readlink(2) system call for a successful - * invocation - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_readlink(tc_ptr) -struct all_test_cases *tc_ptr; -{ - char scratch[PATH_MAX]; - int ret; - - ret=readlink(tc_ptr->fn_arg[1], scratch, strlen(tc_ptr->fn_arg[0])); - - /*** the TEST macro cannot be used here for some reason ****/ - - if (ret == -1) { - tst_resm(TFAIL, - "readlink(2) failure on %s symbolic link file, errno=%d", - tc_ptr->fn_arg[1], errno); - - } - else if (strncmp(tc_ptr->fn_arg[0], scratch, - strlen(tc_ptr->fn_arg[0])) != 0) { - - /* Must null terminate scratch because readlink(2) doesn't */ - - scratch[strlen(tc_ptr->fn_arg[0])] = '\0'; - - tst_resm(TFAIL, - "readlink(2) Error : Expected %s symbolic link file contents but %s actual contents were returned", - tc_ptr->fn_arg[0], scratch); - } - else if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; -} - -/*********************************************************************** - * This routine checks out the stat(2) system call for a successful - * invocation - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_stat(tc_ptr) -struct all_test_cases *tc_ptr; -{ - if (statter.st_dev != asymlink.st_dev) - tst_resm(TFAIL, - "stat of symbolic link reference to object device info %ld != stat of object file device info %ld", - statter.st_dev, asymlink.st_dev); - - else if (statter.st_mode != asymlink.st_mode) - tst_resm(TFAIL, - "stat of symbolic link reference to object file permissions %ld != stat of object file permissions %ld", - statter.st_mode, asymlink.st_mode); - - else if (statter.st_nlink != asymlink.st_nlink) - tst_resm(TFAIL, - "stat of symbolic link reference to object file link count %ld != stat of object file link count %ld", - statter.st_nlink, asymlink.st_nlink); - - else if (statter.st_uid != asymlink.st_uid) - tst_resm(TFAIL, - "stat of symbolic link reference to object file uid %ld != stat of object file uid %ld", - statter.st_uid, asymlink.st_uid); - - else if (statter.st_gid != asymlink.st_gid) - tst_resm(TFAIL, - "stat of symbolic link reference to object file gid %ld != stat of object file gid %ld", - statter.st_gid, asymlink.st_gid); - - else if (statter.st_size != asymlink.st_size) - tst_resm(TFAIL, - "stat of symbolic link reference to object file size %ld != stat of object file size %ld", - statter.st_size, asymlink.st_size); - - else if (statter.st_atime != asymlink.st_atime) - tst_resm(TFAIL, - "stat of symbolic link reference to object access time %ld != stat of object file access time %ld", - statter.st_atime, asymlink.st_atime); - - else if (statter.st_mtime != asymlink.st_mtime) - tst_resm(TFAIL, - "stat of symbolic link reference to object modify time %ld != stat of object file modify time %ld", - statter.st_atime, asymlink.st_atime); - - else if (statter.st_ctime != asymlink.st_ctime) - tst_resm(TFAIL, - "stat of symbolic link reference to object change time %ld != stat of object file change time %ld", - statter.st_atime, asymlink.st_atime); - else if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; -} - -/*********************************************************************** - * This routine checks out the chdir(2) system call for a successful - * invocation - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_chdir(tc_ptr) -struct all_test_cases *tc_ptr; -{ - if (mkdir(tc_ptr->fn_arg[2],MODE) == -1) - tst_resm(TFAIL, "Could not create a setup directory file"); - else { - - sprintf(Buf, "mkdir(%s, %#o) was successful\n", tc_ptr->fn_arg[2],MODE); - strcat(Buffer, Buf); - - if (chdir(tc_ptr->fn_arg[1]) == -1) - tst_resm(TFAIL, "%sCould not change a directory file through a %s", - Buffer, "symbolic link which which pointed at object"); - else { - - char buf [PATH_MAX]; - char *cwd; - char expected_location[PATH_MAX]; - /* - * Build expected current directory position - */ - strcpy(expected_location, TESTDIR); - strcat(expected_location, "/"); - strcat(expected_location, tc_ptr->fn_arg[2]); - - if ((cwd = getcwd(buf, sizeof (buf))) == NULL) - tst_resm(TFAIL, "getcwd(3) FAILURE"); - else if (strcmp(cwd, expected_location) == 0) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else { - tst_resm(TFAIL, "%s%s %s %s not equal to expected %s", Buffer, - "chdir(2) returned successfully, but getcwd(3) indicated", - "new current working directory location", cwd, expected_location); - } - chdir(TESTDIR); - } - rmdir(tc_ptr->fn_arg[2]); - } -} - -/*********************************************************************** - * This routine checks out the link(2) system call for a successful - * invocation - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_link(tc_ptr) -struct all_test_cases *tc_ptr; -{ - struct stat stbuf; - - if (link(tc_ptr->fn_arg[1], "nick") == -1) { - tst_resm(TFAIL, "%slink(%s, \"nick\") failed, errno: %d\n%s %s", - Buffer, tc_ptr->fn_arg[1], errno, - "link of new file to object file via symbolic link file failed", - "when expected not to"); - } - else { - sprintf(Buf, "link(%s, \"nick\") was successful\n", tc_ptr->fn_arg[1]); - strcat(Buffer, Buf); - - if ( STD_FUNCTIONAL_TEST ) { - /* - * Check that links counts were properly set - */ - if (lstat(tc_ptr->fn_arg[1], &asymlink) == -1) { - tst_resm(TBROK, "lstat(%s) failed. errno: %d", - tc_ptr->fn_arg[1], errno); - - } else if (lstat("nick", &statter) == -1) { - tst_resm(TBROK, "lstat(nick) failed, errno:%d", errno); - } else { - if (statter.st_ino == asymlink.st_ino) { - if ((statter.st_nlink ==2) && (asymlink.st_nlink == 2)) { - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - } else { - lstat(tc_ptr->fn_arg[2], &stbuf); - - tst_resm(TFAIL, - "%slink(%s, %s) failed to adjust link count.\n\ - count for nick is %d, count for %s is %d, count for %s is %d.", - Buffer, tc_ptr->fn_arg[1], "nick", - statter.st_nlink, tc_ptr->fn_arg[1], asymlink.st_nlink, - tc_ptr->fn_arg[2], stbuf.st_nlink); - } - } else { - tst_resm(TFAIL, - "%sA lstat of %s (ino:%d) and of\n\t\t\ -%s (ino:%d), does not show them being the same ino.", Buffer, - tc_ptr->fn_arg[1], asymlink.st_ino, "nick", statter.st_ino); - } - } - } - delete_files("nick", NULL); - } -} - -/*********************************************************************** - * This routine checks out the unlink(2) system call for a successful - * invocation - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_unlink(tc_ptr) -struct all_test_cases *tc_ptr; -{ - if (stat(tc_ptr->fn_arg[2], &asymlink) == -1) - tst_resm(TBROK, - "stat(2) Failure when accessing %s object file", tc_ptr->fn_arg[2]); - else if (unlink(tc_ptr->fn_arg[1]) == -1) - tst_resm(TFAIL, "unlink(2) failed when removing symbolic link file"); - else { - sprintf(Buf, "unlink(%s) was successful\n", tc_ptr->fn_arg[1]); - strcat(Buffer, Buf); - if (stat(tc_ptr->fn_arg[2], &statter) == -1) - tst_resm(TFAIL,"%s %s", - "unlink(2) failed because it not only removed symbolic link", - "file which pointed at object file, but object file as well"); - - else - if ((statter.st_ino == asymlink.st_ino) && - (statter.st_dev == asymlink.st_dev) && - (statter.st_size == asymlink.st_size)) - - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s%s %s %s", Buffer, - "unlink(2) failed because it not only removed symbolic link", - "file which pointed at object file, but it changed object", - "file inode information"); - } - -} - -/*********************************************************************** - * This routine checks out the chmod(2) system call for a successful - * invocation - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_chmod(tc_ptr) -struct all_test_cases *tc_ptr; -{ - if (stat(tc_ptr->fn_arg[2], &asymlink) == -1) - tst_resm(TBROK, - "stat(2) Failure when accessing %s object file", tc_ptr->fn_arg[2]); - else if (chmod(tc_ptr->fn_arg[1], (MODE | MASK)) == -1) - tst_resm(TFAIL, "%s%s %s", Buffer, - "chmod(2) failed when changing file permission", - "through symbolic link file"); - else { - sprintf(Buf, "chmod(%s, %#o) was successful\n", tc_ptr->fn_arg[1], - (MODE | MASK)); - strcat(Buffer, Buf); - - if (stat(tc_ptr->fn_arg[2], &statter) == -1) - tst_resm(TBROK, - "stat(2) Failure when accessing %s object file", tc_ptr->fn_arg[2]); - else - if ((statter.st_mode == (MODE | MASK)) && - (statter.st_mode != asymlink.st_mode)) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s%s %o to %o %s", Buffer, - "chmod(2) failed to change object file permissions from", - asymlink.st_mode, (MODE | MASK), - "through symbolic link file"); - } - -} - -/*********************************************************************** - * This routine checks out the utime(2) system call for a successful - * invocation - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_utime(tc_ptr) -struct all_test_cases *tc_ptr; -{ - struct utimbuf utimes; - - if (stat(tc_ptr->fn_arg[2], &asymlink) == -1) - tst_resm(TBROK, "stat(2) Failure when accessing %s object file", - tc_ptr->fn_arg[2]); - else { - /* Now add a few values to access and modify times */ - - utimes.actime = asymlink.st_atime + a_time_value; - utimes.modtime = asymlink.st_mtime + a_time_value; - - /* Now hand off to utime(2) via symbolic link file*/ - - if (utime(tc_ptr->fn_arg[1], &utimes) == -1) - tst_resm(TFAIL, "%s %s", - "utime(2) failed to process object file access and modify", - "time updates through symbolic link"); - else { - /* Now verify changes were made */ - - if (stat(tc_ptr->fn_arg[2], &statter) == -1) - tst_resm(TBROK, - "stat(2) Failure when accessing %s object file", - tc_ptr->fn_arg[2]); - else { - time_t temp, diff; - - temp = statter.st_atime - asymlink.st_atime; - diff = (statter.st_mtime - asymlink.st_mtime) - temp; - - if (! diff) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, "%s %s %d greater than original times", - "utime(2) failed to change object file access and", - "modify times through symbolic link to a value", - a_time_value); - } - } - } -} - -/*********************************************************************** - * This routine checks out the rename(2) system call for a successful - * invocation - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_rename(tc_ptr) -struct all_test_cases *tc_ptr; -{ - int pts_at_object = 0; - - - if (stat(tc_ptr->fn_arg[2], &statter) != -1) - pts_at_object=1; - - TEST (rename(tc_ptr->fn_arg[1], A_S_FILE) ); - errno=TEST_ERRNO; - if (TEST_RETURN == -1) - tst_resm(TFAIL, "rename(3) failed to rename %s symbolic link file to %s", - tc_ptr->fn_arg[2], A_S_FILE); - else if (pts_at_object) - if (ck_both(tc_ptr->fn_arg[0], A_S_FILE, tc_ptr->fn_arg[2])) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, test_msg); - else if ( ! ck_symlink(tc_ptr->fn_arg[0], A_S_FILE, NULL)) - tst_resm(TFAIL, test_msg); - else if (stat(tc_ptr->fn_arg[1], &asymlink) != -1) - tst_resm(TFAIL, - "rename(3) did not remove %s when renaming to %s", - tc_ptr->fn_arg[1], A_S_FILE); - else if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; -} - -/*********************************************************************** - * This routine checks out the open(2) system call for a successful - * invocation - * - * Argument is pointer to test_objects array of structures of type - * all_test_cases - ***********************************************************************/ -void -do_open(tc_ptr) -struct all_test_cases *tc_ptr; -{ - int fd = -1; - int ret, pts_at_object = 0; - char scratch[PATH_MAX]; - - - if (stat(tc_ptr->fn_arg[2], &statter) != -1) - pts_at_object=1; - - if (pts_at_object) { - TEST( open(tc_ptr->fn_arg[1], O_RDWR) ); - errno=TEST_ERRNO; - if ((fd=TEST_RETURN) == -1) { - tst_resm(TFAIL, - "open(2) Failure when opening object file through symbolic link file"); - return; - } - } - else { - TEST(open(tc_ptr->fn_arg[1], (O_CREAT | O_RDWR), MODE) ); - errno=TEST_ERRNO; - if ((fd=TEST_RETURN) == -1) { - tst_resm(TFAIL, - "open(2) Failure when creating object file through symbolic link file"); - return; - } - } - if ((ret=write(fd, BIG_STRING, strlen(BIG_STRING))) == -1) { - tst_resm(TFAIL, - "write(2) Failure to object file opened through a symbolic link file: errno:%d", - errno); - } - else if (ret != strlen(BIG_STRING)) { - tst_resm(TFAIL, - "write(2) Failed to write %d bytes to object file opened through a symbolic link file", - strlen(BIG_STRING)); - } - else if (lseek(fd, 0L, 0) == -1) { - tst_resm(TFAIL, - "lseek(2) Failed to position to beginning of object file opened through a symbolic link file: errno = %d", - errno); - } - else if ((ret=read(fd, scratch, strlen(BIG_STRING))) == -1) { - tst_resm(TFAIL, - "read(2) Failure of object file opened through a symbolic link file: errno = %d", - errno); - } - else if (ret != strlen(BIG_STRING)) { - tst_resm(TFAIL, - "read(2) Failed to read %d bytes to object file opened through a symbolic link file", - strlen(BIG_STRING)); - } - else if (strncmp(BIG_STRING, scratch, strlen(BIG_STRING)) != 0) { - tst_resm(TFAIL, - "Content of write(2) and read(2) Failed to object file through symbolic link file was not as expected. Expected %s and read returned %s", - BIG_STRING, scratch); - } - else { - /* - * Close off symbolic link file to object file access - */ - if (close(fd) == -1) { - tst_resm(TFAIL, - "close(2) Failure when closing object file accessed symbolic link file"); - } - /* - * Now, lets open up and read object file and compare contents - */ - else if ((fd=open(tc_ptr->fn_arg[0], O_RDONLY)) == -1) { - tst_resm(TFAIL, "open(2) Failure when opening %s file: errno:%d %s", - tc_ptr->fn_arg[0], errno, strerror(errno)); - } - else if ((ret=read(fd, scratch, strlen(BIG_STRING))) == -1) { - tst_resm(TFAIL, - "read(2) Failure of object file opened through a symbolic link file: errno:%d", errno); - } - else if (ret != strlen(BIG_STRING)) { - tst_resm(TFAIL, - "read(2) Failed to read %d bytes to object file opened through a symbolic link file", - strlen(BIG_STRING)); - } - else if (strncmp(BIG_STRING, scratch, strlen(BIG_STRING)) != 0) { - tst_resm(TFAIL, - "Content of write(2) and read(2) Failed to object file through symbolic link file was not as expected. Expected %s and read returned %s", - BIG_STRING, scratch); - } - else if (pts_at_object) { - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - } - else { /* Insure newly created object file is pointed at */ - if (ck_both(tc_ptr->fn_arg[0], tc_ptr->fn_arg[1], tc_ptr->fn_arg[0])) - if ( TEST_RESULT != TPASS || STD_FUNCTIONAL_TEST ) - tst_resm(TEST_RESULT, msgs[tc_ptr->pass_msg]); - else - Tst_count++; - else - tst_resm(TFAIL, test_msg); - } - close(fd); - } -} - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* create a temporary directory and go to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - */ - TEST_CLEANUP; - - /* remove temporary directory and all files in it. */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ - - -/* - * - */ -void help() -{ - int ind; - - printf(" -T id Determines which tests cases to execute:\n"); - - for (ind=0; ind -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="symlink02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255], symlnk[255]; -int fd; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call symlink(2) - */ - TEST(symlink(fname, symlnk)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "symlink(%s, %s) Failed, errno=%d : %s", - fname, symlnk, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "symlink(%s, %s) returned %d", - fname, symlnk, TEST_RETURN); - } - if (unlink(symlnk) == -1) { - tst_brkm(TBROK, cleanup, - "unlink(%s) Failed, errno=%d : %s", - symlnk, errno, strerror(errno)); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(fname,"tfile_%d",getpid()); - if ((fd=open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - - if (close(fd) == -1 ) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - sprintf(symlnk,"st_%d",getpid()); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/symlink03.c b/winsup/testsuite/winsup.api/ltp/symlink03.c deleted file mode 100644 index 9cdb74b18..000000000 --- a/winsup/testsuite/winsup.api/ltp/symlink03.c +++ /dev/null @@ -1,404 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name : symlink03 - * - * Test Description : - * Verify that, - * 1) symlink(2) returns -1 and sets errno to EACCES if search/write - * permission is denied in the directory where the symbolic link is - * being created. - * 2) symlink(2) returns -1 and sets errno to EEXIST if the specified - * symbolic link already exists. - * 3) symlink(2) returns -1 and sets errno to EFAULT if the specified - * file or symbolic link points to invalid address. - * 4) symlink(2) returns -1 and sets errno to ENAMETOOLONG if the - * pathname component of symbolic link is too long (ie, > PATH_MAX). - * 5) symlink(2) returns -1 and sets errno to ENOTDIR if the directory - * component in pathname of symbolic link is not a directory. - * 6) symlink(2) returns -1 and sets errno to ENOENT if the component of - * symbolic link points to an empty string. - * - * Expected Result: - * symlink() should fail with return value -1 and set expected errno. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * if errno set == expected errno - * Issue sys call fails with expected return value and errno. - * Otherwise, - * Issue sys call fails with unexpected errno. - * Otherwise, - * Issue sys call returns unexpected value. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory(s)/file(s) created. - * - * Usage: - * symlink03 [-c n] [-e] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * This test should be executed by 'non-super-user' only. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define MODE_RWX S_IRWXU | S_IRWXG | S_IRWXO -#define FILE_MODE S_IRUSR | S_IRGRP | S_IROTH -#define DIR_TEMP "testdir_1" -#define TESTFILE "testfile" -#define TEST_FILE1 "testdir_1/tfile_1" -#define SYM_FILE1 "testdir_1/sfile_1" -#define TEST_FILE2 "tfile_2" -#define SYM_FILE2 "sfile_2" -#define TEST_FILE3 "tfile_3" -#define SYM_FILE3 "t_file/sfile_3" - -char *TCID="symlink03"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={ENOTDIR, ENOENT, ENAMETOOLONG, EFAULT, EEXIST, EACCES, 0}; - -int no_setup(); -int setup1(); /* setup function to test symlink for EACCES */ -int setup2(); /* setup function to test symlink for EEXIST */ -int setup3(); /* setup function to test symlink for ENOTDIR */ -int longpath_setup(); /* setup function to test chmod for ENAMETOOLONG */ - -char Longpathname[PATH_MAX+2]; -char High_address_node[64]; - -struct test_case_t { /* test case struct. to hold ref. test cond's*/ - char *file; - char *link; - char *desc; - int exp_errno; - int (*setupfunc)(); -} Test_cases[] = { - { TEST_FILE1, SYM_FILE1, "No Search permissions to process", EACCES, setup1 }, - { TEST_FILE2, SYM_FILE2, "Specified symlink already exists", EEXIST, setup2 }, - { TESTFILE, High_address_node, "Address beyond address space", EFAULT, no_setup }, - { TESTFILE, (char *)-1, "Negative address", EFAULT, no_setup }, - { TESTFILE, Longpathname, "Symlink path too long", ENAMETOOLONG, longpath_setup }, - { TESTFILE, "", "Symlink Pathname is empty", ENOENT, no_setup }, -#ifndef __CYGWIN__ - { TEST_FILE3, SYM_FILE3, "Symlink Path contains regular file", ENOTDIR, setup3 }, -#endif - { NULL, NULL, NULL, 0, no_setup } -}; - -extern void setup(); /* Setup function for the test */ -extern void cleanup(); /* Cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char *test_file; /* testfile name */ - char *sym_file; /* symbolic link file name */ - char *test_desc; /* test specific error message */ - int ind; /* counter to test different test conditions */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - /*NOTREACHED*/ - } - - /* - * Invoke setup function to call individual test setup functions - * to simulate test conditions. - */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - for (ind = 0; Test_cases[ind].desc != NULL; ind++) { - test_file = Test_cases[ind].file; - sym_file = Test_cases[ind].link; - test_desc = Test_cases[ind].desc; - - if (sym_file == High_address_node) { - sym_file = (char *)get_high_address(); - } - /* - * Call symlink(2) to test different test conditions. - * verify that it fails with -1 return value and sets - * appropriate errno. - */ - TEST(symlink(test_file, sym_file)); - - /* Check return code of symlink(2) */ - if (TEST_RETURN == -1) { - /* - * Perform functional verification if - * test executed without (-f) option. - */ - TEST_ERROR_LOG(TEST_ERRNO); - if (TEST_ERRNO == Test_cases[ind].exp_errno) { - tst_resm(TPASS, "symlink() Fails, %s, " - "errno=%d", test_desc, - TEST_ERRNO); - } else { - tst_resm(TFAIL, "symlink() Fails, %s, " - "errno=%d, expected errno=%d", - test_desc, TEST_ERRNO, - Test_cases[ind].exp_errno); - } - } else { - tst_resm(TFAIL, "symlink() returned %d, " - "expected -1, errno:%d", TEST_RETURN, - Test_cases[ind].exp_errno); - } - } /* End of TEST CASE LOOPING. */ - - Tst_count++; /* incr. TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Call test specific setup functions. - */ -void -setup() -{ - int ind; - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* call individual setup functions */ - for (ind = 0; Test_cases[ind].desc != NULL; ind++) { - Test_cases[ind].setupfunc(); - } -} /* End setup() */ - -/* - * int - * no_setup() - Some test conditions for mknod(2) do not any setup. - * Hence, this function just returns 0. - * This function simply returns 0. - */ -int -no_setup() -{ - return 0; -} - -/* - * int - * setup1() - setup function for a test condition for which symlink(2) - * returns -1 and sets errno to EACCES. - * Create a test directory under temporary directory and create a test file - * under this directory with mode "0666" permissions. - * Modify the mode permissions on test directory such that process will not - * have search permissions on test directory. - * - * The function returns 0. - */ -int -setup1() -{ - int fd; /* file handle for testfile */ - - if (mkdir(DIR_TEMP, MODE_RWX) < 0) { - tst_brkm(TBROK, cleanup, "mkdir(2) of %s failed", DIR_TEMP); - /*NOTREACHED*/ - } - - if ((fd = open(TEST_FILE1, O_RDWR|O_CREAT, 0666)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, 0666) failed, errno=%d : %s", - TEST_FILE1, errno, strerror(errno)); - /*NOTREACHED*/ - } - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s", - TEST_FILE1, errno, strerror(errno)); - /*NOTREACHED*/ - } - - /* Modify mode permissions on test directory */ - if (chmod(DIR_TEMP, FILE_MODE) < 0) { - tst_brkm(TBROK, cleanup, "chmod(2) of %s failed", DIR_TEMP); - /*NOTREACHED*/ - } - return 0; -} - -/* - * int - * setup2() - EEXIST - */ -int -setup2() -{ - int fd; /* file handle for testfile */ - - if ((fd = open(TEST_FILE2, O_RDWR|O_CREAT, 0666)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, 0666) failed, errno=%d : %s", - TEST_FILE1, errno, strerror(errno)); - /*NOTREACHED*/ - } - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s", - TEST_FILE2, errno, strerror(errno)); - /*NOTREACHED*/ - } - - if (symlink(TEST_FILE2, SYM_FILE2) < 0) { - tst_brkm(TBROK, cleanup, - "symlink() Fails to create %s in setup2, error=%d", - SYM_FILE2, errno); - /*NOTREACHED*/ - } - return 0; -} - -/* - * int - * longpath_setup() - setup to create a node with a name length exceeding - * the MAX. length of PATH_MAX. - * This function retruns 0. - */ -int -longpath_setup() -{ - int ind; /* counter variable */ - - for (ind = 0; ind <= (PATH_MAX + 1); ind++) { - Longpathname[ind] = 'a'; - } - return 0; -} - -/* - * int - * setup3() - setup function for a test condition for which symlink(2) - * returns -1 and sets errno to ENOTDIR. - * - * Create a symlink file under temporary directory so that test tries to - * create symlink file "tfile_3" under "t_file" which happens to be - * another symlink file. - */ -int -setup3() -{ - int fd; /* file handle for testfile */ - - /* Creat/open a testfile and close it */ - if ((fd = open("t_file", O_RDWR|O_CREAT, MODE_RWX)) == -1) { - tst_brkm(TBROK, cleanup, - "open(2) on t_file failed, errno=%d : %s", - errno, strerror(errno)); - /*NOTREACHED*/ - } - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, "close(t_file) Failed, errno=%d : %s", - errno, strerror(errno)); - /*NOTREACHED*/ - } - return 0; -} - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Restore the mode permissions on test directory. - * Remove the temporary directory created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Restore mode permissions on test directory created in setup2() */ - if (chmod(DIR_TEMP, MODE_RWX) < 0) { - tst_brkm(TBROK, NULL, "chmod(2) of %s failed", DIR_TEMP); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/symlink04.c b/winsup/testsuite/winsup.api/ltp/symlink04.c deleted file mode 100644 index 8272d368c..000000000 --- a/winsup/testsuite/winsup.api/ltp/symlink04.c +++ /dev/null @@ -1,239 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name : symlink01 - * - * Test Description : - * Verify that, symlink will succeed to creat a symbolic link of an existing - * object name path. - * - * Expected Result: - * symlink() should return value 0 on success and symbolic link of an - * existing object should be created. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * symlink01 [-c n] [-e] [-f] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * None. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -#define TESTFILE "testfile" -#define SYMFILE "slink_file" -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH - -char *TCID="symlink01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={0}; - -extern void setup(); /* Setup function for the test */ -extern void cleanup(); /* Cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat structure buffer */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - /*NOTREACHED*/ - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call symlink(2) to create a symlink of - * testfile. - */ - TEST(symlink(TESTFILE, SYMFILE)); - - /* Check return code of symlink(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "symlink(%s, %s) Failed, errno=%d : %s", - TESTFILE, SYMFILE, TEST_ERRNO, - strerror(TEST_ERRNO)); - } else { - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Get the symlink file status information - * using lstat(2). - */ - if (lstat(SYMFILE, &stat_buf) < 0) { - tst_brkm(TFAIL, cleanup, "lstat(2) of " - "%s failed, error:%d", SYMFILE, - errno); - /*NOTREACHED*/ - } - - /* Check if the st_mode contains a link */ - if (!S_ISLNK(stat_buf.st_mode)) { - tst_resm(TFAIL, - "symlink of %s doesn't exist", - TESTFILE); - } else { - tst_resm(TPASS, "symlink(%s, %s) " - "functionality successful", - TESTFILE, SYMFILE); - } - } else { - tst_resm(TPASS, "Call succeeded"); - } - } - - /* Unlink the symlink file for next loop */ - if (unlink(SYMFILE) == -1) { - tst_brkm(TBROK, cleanup, - "unlink(%s) Failed, errno=%d : %s", - SYMFILE, errno, strerror(errno)); - /*NOTREACHED*/ - } - Tst_count++; /* incr TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and close it - */ -void -setup() -{ - int fd; /* file handle for testfile */ - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* creat/open a testfile */ - if ((fd = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %#o) Failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - /*NOTREACHED*/ - } - - /* Close the temporary file created above */ - if (close(fd) == -1) { - tst_resm(TBROK, "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } -} /* End setup() */ - - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/symlink05.c b/winsup/testsuite/winsup.api/ltp/symlink05.c deleted file mode 100644 index 36aff558f..000000000 --- a/winsup/testsuite/winsup.api/ltp/symlink05.c +++ /dev/null @@ -1,223 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name : symlink02 - * - * Test Description : - * Verify that, symlink will succeed to creat a symbolic link of an - * non-existing object name path. - * - * Expected Result: - * symlink() should return value 0 on success and symlink of an - * non-existing object should be created. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * symlink02 [-c n] [-e] [-f] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * This test should be run by 'non-super-user' only. - * - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TESTFILE "testfile" -#define SYMFILE "slink_file" - -char *TCID="symlink02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={0}; - -extern void setup(); /* Setup function for the test */ -extern void cleanup(); /* Cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat structure buffer */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - /*NOTREACHED*/ - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call symlink(2) to create a symlink of - * an non-existing testfile. - */ - TEST(symlink(TESTFILE, SYMFILE)); - - /* Check return code of symlink(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, \ - "symlink(%s, %s) Failed, errno=%d : %s", - TESTFILE, SYMFILE, TEST_ERRNO, - strerror(TEST_ERRNO)); - } else { - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Get the symlink file status information - * using lstat(2). - */ - if (lstat(SYMFILE, &stat_buf) < 0) { - tst_brkm(TFAIL, cleanup, "lstat(2) of " - "%s failed, error:%d", - SYMFILE, errno); - /*NOTREACHED*/ - } - - /* Check if the st_mode contains a link */ - if (!S_ISLNK(stat_buf.st_mode)) { - tst_resm(TFAIL, \ - "symlink of %s doesn't exist", - TESTFILE); - } else { - tst_resm(TPASS, "symlink(%s, %s) " - "functionality successful", - TESTFILE, SYMFILE); - } - } else { - tst_resm(TPASS, "Call succeeded"); - } - } - - /* Unlink the symlink file for next loop */ - if (unlink(SYMFILE) == -1) { - tst_brkm(TBROK, cleanup, - "unlink(%s) Failed, errno=%d : %s", - SYMFILE, errno, strerror(errno)); - } - Tst_count++; /* incr TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - -} /* End setup() */ - - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the temporary directory created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/sync01.c b/winsup/testsuite/winsup.api/ltp/sync01.c deleted file mode 100644 index a32b24ba8..000000000 --- a/winsup/testsuite/winsup.api/ltp/sync01.c +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : sync01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for sync(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) sync(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the sync(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * sync(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="sync01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call sync(2) - */ - TEST_VOID(sync()); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "sync() Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "sync() returned %d", TEST_RETURN); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/sync02.c b/winsup/testsuite/winsup.api/ltp/sync02.c deleted file mode 100644 index 443df02bf..000000000 --- a/winsup/testsuite/winsup.api/ltp/sync02.c +++ /dev/null @@ -1,240 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: sync01 - * - * Test Description: - * Open a file for write; modify the file, then do a sync(). - * Verify that the data has been written to disk by re-opening the file. - * - * Expected Result: - * sync() alawys returns 0 in Linux. The data written to the file should - * be updated to the disk. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * sync01 [-c n] [-f] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * None. - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TEMP_FILE "temp_file" -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH - -char *TCID="sync01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -char write_buffer[BUFSIZ]; /* buffer used to write data to file*/ -int fildes; /* file descriptor for temporary file */ - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char read_buffer[BUFSIZ]; /* buffer used to read data from file*/ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - /* Perform global setup for test */ - setup(); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call sync(2) to commit buffer data to disk. - */ - TEST_VOID(sync()); - - if (TEST_RETURN == -1) { - tst_resm(TFAIL, "%s, Failed, errno=%d : %s", - TCID, TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* Set the file ptr to b'nning of file */ - if (lseek(fildes, 0, SEEK_SET) < 0) { - tst_brkm(TFAIL, cleanup, "lseek() " - "failed on %s, error=%d", - TEMP_FILE, errno); - /*NOTREACHED*/ - } - - /* Read the contents of file */ - if (read(fildes, read_buffer, \ - sizeof(read_buffer)) > 0) { - if (memcmp(read_buffer, write_buffer, strlen(write_buffer))) { - tst_resm(TFAIL, "Data read " - "from %s doesn't match " - "with witten data", - TEMP_FILE); - } else { - tst_resm(TPASS, "Functionality " - "of sync() successful"); - } - } else { - tst_brkm(TFAIL, cleanup, - "read() Fails on %s, error=%d", - TEMP_FILE, errno); - /*NOTREACHED*/ - } - } else { - tst_resm(TPASS, "call succeeded"); - } - } - Tst_count++; /* incr. TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and write some - * data into it. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Copy some data into data buffer */ - strcpy(write_buffer, "abcdefghijklmnopqrstuvwxyz"); - - /* Creat a temporary file under above directory */ - if ((fildes = open(TEMP_FILE, O_RDWR | O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR | O_CREAT, %#o) Failed, errno=%d :%s", - TEMP_FILE, FILE_MODE, errno, strerror(errno)); - /*NOTREACHED*/ - } - - /* Write the buffer data into file */ - if (write(fildes, write_buffer, strlen(write_buffer)) != \ - strlen(write_buffer)) { - tst_brkm(TBROK, cleanup, - "write() failed to write buffer data to %s", - TEMP_FILE); - /*NOTREACHED*/ - } - -} /* End setup() */ - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Close the temporary file */ - if (close(fildes) == -1) { - tst_brkm(TFAIL, NULL, - "close(%s) Failed, errno=%d : %s", - TEMP_FILE, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/time01.c b/winsup/testsuite/winsup.api/ltp/time01.c deleted file mode 100644 index 570dedc6b..000000000 --- a/winsup/testsuite/winsup.api/ltp/time01.c +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : time01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for time(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) time(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the time(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * time(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="time01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call time(2) - */ - TEST(time(0)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "time(0) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "time(0) returned %d", TEST_RETURN); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - void trapper(); - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/time02.c b/winsup/testsuite/winsup.api/ltp/time02.c deleted file mode 100644 index 827ed3201..000000000 --- a/winsup/testsuite/winsup.api/ltp/time02.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: time01 - * - * Test Description: - * Verify that time(2) returns the value of time in seconds since - * the Epoch and stores this value in the memory pointed to by the parameter. - * - * Expected Result: - * time() should return the time (seconds) since the Epoch and this value - * should be equal to the value stored in the specified parameter. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * - * Usage: - * time01 [-c n] [-e] [-f] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * None. - * - */ - -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -extern void setup(); /* setup function for the test */ -extern void cleanup(); /* cleanup function for the test */ - -char *TCID="time01"; /* Test program identifier. */ -int TST_TOTAL = 1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={0}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - time_t tloc; /* time_t variables for time(2) */ - - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc=0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call time() to get the time in seconds - * since Epoch. - */ - TEST(time(&tloc)); - - /* Check return code from time(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "time(0) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /* - * Perform functional verification if test executed - * without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - if (tloc == TEST_RETURN) { - tst_resm(TPASS, "time() returned value " - "%d, stored value %d are same", - TEST_RETURN, tloc); - } else { - tst_resm(TFAIL, "time() returned value " - "%d, stored value %d are " - "different", TEST_RETURN, tloc); - } - } else { - tst_resm(TPASS, "call succeeded"); - } - - } - Tst_count++; /* incr. TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* cleanup and exit */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * setup() - performs all ONE TIME setup for this test. - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/times01.c b/winsup/testsuite/winsup.api/ltp/times01.c deleted file mode 100644 index 0d8d1d0ca..000000000 --- a/winsup/testsuite/winsup.api/ltp/times01.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : times01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for times(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) times(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the times(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * times(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="times01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -struct tms mytimes; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call times(2) - */ - TEST(times(&mytimes)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "times(&mytimes) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "times(&mytimes) returned %d", TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - void trapper(); - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/times02.c b/winsup/testsuite/winsup.api/ltp/times02.c deleted file mode 100644 index 825046430..000000000 --- a/winsup/testsuite/winsup.api/ltp/times02.c +++ /dev/null @@ -1,135 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * times02.c - * - * DESCRIPTION - * Testcase to test that times() sets errno correctly - * - * ALGORITHM - * block1: Pass an invalid address as the "tms" structure, and expect - * that times() would return EFAULT. - * - * USAGE: - * times02 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions - * NONE - */ - -#include -#include -#include -#include - -char *TCID = "times02"; -int TST_TOTAL = 1; -extern int Tst_count; -int exp_enos[]={EFAULT, 0}; - -void setup(void); -void cleanup(void); - -main(int argc, char **argv) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /* parse standard options */ - if ((msg = parse_opts(argc, argv, (option_t *)NULL, NULL)) != - (char *)NULL) { - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); - - /* check for looping state if -i option is given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - TEST(times((void *)-1)); - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - if (errno != EFAULT) { - tst_resm(TFAIL, "Expected EFAULT, got %d", - errno); - } else { - tst_resm(TPASS, "Received EFAULT as expected"); - } - - } else { - tst_resm(TFAIL, "times(2) failed to FAIL"); - } - - } - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup() - * performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -c option. - */ - TEST_PAUSE; -} - -/* - * cleanup() - * performs all ONE TIME cleanup for this test at - * completion or premature exit - */ -void -cleanup(void) -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); - /*NOTREACHED*/ -} diff --git a/winsup/testsuite/winsup.api/ltp/times03.c b/winsup/testsuite/winsup.api/ltp/times03.c deleted file mode 100644 index a388c77f7..000000000 --- a/winsup/testsuite/winsup.api/ltp/times03.c +++ /dev/null @@ -1,246 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * times01.c - * - * DESCRIPTION - * Testcase to check the basic functionality of the times() system call. - * - * ALGORITHM - * This testcase checks the values that times(2) system call returns. - * Start a process, and spend some CPU time by performing a spin in - * a for-loop. Then use the times() system call, to determine the - * cpu time/sleep time, and other statistics. - * - * USAGE: - * times01 [-c n] [-f] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions - * NONE - */ - -#include -#include -#include -#include -#include -#include - -char *TCID = "times01"; -int TST_TOTAL = 1; -extern int Tst_count; -int exp_enos[]={0}; - -void setup(void); -void cleanup(void); - -main(int argc, char **argv) -{ - const char *msg; /* message returned from parse_opts */ - - struct tms buf1, buf2; - time_t start_time, end_time; - int i, pid1, pid2, status, fail=0; - - /* parse standard options */ - if ((msg = parse_opts(argc, argv, (option_t *)NULL, NULL)) != - (char *)NULL) { - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); - - - for (i = 0; i < 1000000; i++); - /* - * At least some CPU time must be used. This is - * achieved by executing the times(2) call for - * atleast 5 secs. This logic makes it independant - * of the processor speed. - */ - start_time = time(NULL); - for (;;) { - if (times(&buf1) == -1) { - TEST_ERROR_LOG(errno); - tst_resm(TFAIL, "Call to times(2) " - "failed, errno = %d", errno); - } - end_time = time(NULL); - if ((end_time - start_time) > 5) { - break; - } - } - if (times(&buf1) == -1) { - TEST_ERROR_LOG(errno); - tst_resm(TFAIL, "Call to times(2) failed, " - "errno = %d", errno); - } else { - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - if (buf1.tms_utime == 0) { - tst_resm(TFAIL, "Error: times() report " - "0 user time"); - fail=1; - } - if (buf1.tms_stime == 0) { - tst_resm(TFAIL, "Error: times() report " - "0 system time"); - fail=1; - } - if (buf1.tms_cutime != 0) { - tst_resm(TFAIL, "Error: times() report " - "%d child user time", - buf1.tms_cutime); - fail=1; - } - if (buf1.tms_cstime != 0) { - tst_resm(TFAIL, "Error: times() report " "%d child system time", - buf1.tms_cstime); - fail=1; - } - - pid2 = fork(); - if (pid2 < 0) { - tst_brkm(TFAIL, cleanup, "Fork failed"); - /*NOTREACHED*/ - } else if (pid2 == 0) { - for (i = 0; i < 2000000; i++); - /* - * Atleast some CPU time must be used - * even in the child process (thereby - * making it independent of the - * processor speed). In fact the child - * uses twice as much CPU time. - */ - start_time = time(NULL); - for (;;) { - if (times(&buf2) == -1) { - tst_resm(TFAIL, - "Call to times " - "failed, " - "errno = %d", - errno); - exit(1); - } - end_time = time(NULL); - if ((end_time - start_time) - > 10) { - break; - } - } - exit(0); - } - waitpid(pid2, &status, 0); - if (WEXITSTATUS(status) != 0) { - tst_resm(TFAIL, "Call to times(2) " - "failed in child"); - } - if (times(&buf2) == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "Call to times failed " - "errno = %d", errno); - fail=1; - } - if (buf1.tms_utime > buf2.tms_utime) { - tst_resm(TFAIL, "Error: parents's " - "user time(%d) before child " - "> parent's user time (%d) " - "after child", - buf1.tms_utime, - buf2.tms_utime); - fail=1; - } - if (buf2.tms_cutime == 0) { - tst_resm(TFAIL, "Error: times() " - "report %d child user " - "time should be > than " - "zero", buf2.tms_cutime); - fail=1; - } - if (buf2.tms_cstime == 0) { - tst_resm(TFAIL, "Error: times() " - "report %d child system time " - "should be > than zero", - buf2.tms_cstime); - fail=1; - } - if (fail == 0) { - tst_resm(TPASS, "%s: Functionality " - "test passed", TCID); - } - - } else { - tst_resm(TPASS, "%s call succeeded", TCID); - } - } - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup() - * performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -c option. - */ - TEST_PAUSE; -} - -/* - * cleanup() - * performs all ONE TIME cleanup for this test at - * completion or premature exit - */ -void -cleanup(void) -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); - /*NOTREACHED*/ -} diff --git a/winsup/testsuite/winsup.api/ltp/truncate01.c b/winsup/testsuite/winsup.api/ltp/truncate01.c deleted file mode 100644 index d8dc1b68e..000000000 --- a/winsup/testsuite/winsup.api/ltp/truncate01.c +++ /dev/null @@ -1,262 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: truncate01 - * - * Test Description: - * Verify that, truncate(2) succeeds to truncate a file to a specified - * length. - * - * Expected Result: - * truncate(2) should return a value 0 and the length of the file after - * truncation should be equal to the length it is truncated to. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * truncate01 [-c n] [-e] [-f] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * This test should be run by 'non-super-user' only. - * - */ - -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TESTFILE "testfile" /* file under test */ -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define BUF_SIZE 256 /* buffer size */ -#define FILE_SIZE 1024 /* test file size */ -#define TRUNC_LEN 256 /* truncation length */ - -char *TCID="truncate01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test conditions */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={0}; - -void setup(); /* setup function for the test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat(2) struct contents */ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - off_t file_length; /* test file length */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - /* - * Call truncate(2) to truncate a test file to a - * specified length. - */ - TEST(truncate(TESTFILE, TRUNC_LEN)); - - /* check return code of truncate(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, - "truncate(%s, %d) Failed, errno=%d : %s", - TESTFILE, TRUNC_LEN, TEST_ERRNO, - strerror(TEST_ERRNO)); - } else { - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Get the testfile information using - * stat(2). - */ - if (stat(TESTFILE, &stat_buf) < 0) { - tst_brkm(TFAIL, cleanup, "stat(2) of " - "%s failed, error:%d", - TESTFILE, errno); - /*NOTREACHED*/ - } - stat_buf.st_mode &= ~S_IFREG; - file_length = stat_buf.st_size; - - /* - * Check for expected size of testfile after - * truncate(2) on it. - */ - if (file_length != TRUNC_LEN) { - tst_resm(TFAIL, "%s: Incorrect file " - "size %d, Expected %d", - TESTFILE, file_length, - TRUNC_LEN); - } else { - tst_resm(TPASS, "Functionality of " - "truncate(%s, %d) successful", - TESTFILE, TRUNC_LEN); - } - } else { - tst_resm(TPASS, "%s call succeeded", TCID); - } - } - Tst_count++; /* incr TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Fill the buffer with some arbitrary data to be written to a file. - * Create a test file under temporary directory and close it - * write arbitrary data into testfile. - */ -void -setup() -{ - int fd, i; /* file handler for testfile */ - int c, c_total = 0; /* no. bytes to be written to file */ - char tst_buff[BUF_SIZE]; /* buffer to hold data */ - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Fill the test buffer with the known data */ - for (i = 0; i < BUF_SIZE; i++) { - tst_buff[i] = 'a'; - } - - /* Creat a testfile under temporary directory */ - if ((fd = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %o) Failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - /*NOTREACHED*/ - } - - /* Write to the file 1k data from the buffer */ - while (c_total < FILE_SIZE) { - if ((c = write(fd, tst_buff, sizeof(tst_buff))) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - /*NOTREACHED*/ - } else { - c_total += c; - } - } - - /* Close the testfile after writing data into it */ - if (close(fd) == -1) { - tst_brkm(TBROK, cleanup, - "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - /*NOTREACHED*/ - } -} /* End setup() */ - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/truncate02.c b/winsup/testsuite/winsup.api/ltp/truncate02.c deleted file mode 100644 index b6e535cca..000000000 --- a/winsup/testsuite/winsup.api/ltp/truncate02.c +++ /dev/null @@ -1,335 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Test Name: truncate02 - * - * Test Description: - * Verify that, truncate(2) succeeds to truncate a file to a certain length, - * but the attempt to read past the truncated length will fail. - * - * Expected Result: - * truncate(2) should return a value 0 and the attempt to read past the - * truncated length will fail. In case where the file before truncation was - * shorter, the bytes between the old and new should be all zeroes. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Create temporary directory. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * Delete the temporary directory created. - * - * Usage: - * truncate02 [-c n] [-e] [-f] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * This test should be run by 'non-super-user' only. - * - */ - -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -#define TESTFILE "testfile" /* file under test */ -#define FILE_MODE S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH -#define BUF_SIZE 256 /* buffer size */ -#define FILE_SIZE 1024 /* test file size */ -#define TRUNC_LEN1 256 /* truncation length */ -#define TRUNC_LEN2 512 /* truncation length */ - -char *TCID="truncate02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test conditions */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int fd; /* file descriptor of testfile */ -char tst_buff[BUF_SIZE]; /* buffer to hold testfile contents */ -int exp_enos[]={0}; - -void setup(); /* setup function for the test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - struct stat stat_buf; /* stat(2) struct contents */ - int lc, i; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - off_t file_length2; /* test file length */ - off_t file_length1; /* test file length */ - int rbytes; /* bytes read from testfile */ - int read_len = 0; /* total no. of bytes read from testfile */ - int err_flag = 0; /* error indicator flag */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count = 0; - - /* - * Call truncate(2) to truncate a test file to a - * specified length (TRUNC_LEN1). - */ - TEST(truncate(TESTFILE, TRUNC_LEN1)); - - /* check return code of truncate(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, \ - "truncate(%s, %d) Failed, errno=%d : %s", - TESTFILE, TRUNC_LEN1, TEST_ERRNO, - strerror(TEST_ERRNO)); - } else { - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Get the testfile information using - * stat(2). - */ - if (stat(TESTFILE, &stat_buf) < 0) { - tst_brkm(TFAIL, cleanup, "stat(2) of " - "%s failed after 1st truncate, " - "error:%d", TESTFILE, errno); - /*NOTREACHED*/ - } - file_length1 = stat_buf.st_size; - - /* - * Set the file pointer of testfile to the - * beginning of the file. - */ - if (lseek(fd, 0, SEEK_SET) < 0) { - tst_brkm(TFAIL, cleanup, "lseek(2) on " - "%s failed after 1st truncate, " - "error:%d", TESTFILE, errno); - /*NOTREACHED*/ - } - - /* Read the testfile from the beginning. */ - while ((rbytes = read(fd, tst_buff, \ - sizeof(tst_buff))) > 0) { - read_len += rbytes; - } - - /* - * Execute truncate(2) again to truncate - * testfile to a size TRUNC_LEN2. - */ - TEST(truncate(TESTFILE, TRUNC_LEN2)); - - /* check return code of truncate(2) */ - if (TEST_RETURN == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "truncate of %s to " - "size %d Failed, errno=%d : %s", - TESTFILE, TRUNC_LEN2, - TEST_ERRNO, - strerror(TEST_ERRNO)); - } - - /* - * Get the testfile information using - * stat(2) - */ - if (stat(TESTFILE, &stat_buf) < 0) { - tst_brkm(TFAIL, cleanup, "stat(2) of " - "%s failed after 2nd truncate, " - "error:%d", TESTFILE, errno); - /*NOTREACHED*/ - } - file_length2 = stat_buf.st_size; - - /* - * Set the file pointer of testfile to the - * offset TRUNC_LEN1 of testfile. - */ - if (lseek(fd, TRUNC_LEN1, SEEK_SET) < 0) { - tst_brkm(TFAIL, cleanup, "lseek(2) on " - "%s failed after 2nd truncate, " - "error:%d", TESTFILE, errno); - /*NOTREACHED*/ - } - - /* Read the testfile contents till EOF */ - while((rbytes = read(fd, tst_buff, \ - sizeof(tst_buff))) > 0) { - for (i = 0; i < rbytes; i++) { - if (tst_buff[i] != 0) { - err_flag++; - } - } - } - - /* - * Check for expected size of testfile after - * issuing truncate(2) on it. - */ - if ((file_length1 != TRUNC_LEN1) || \ - (file_length2 != TRUNC_LEN2) || \ - (read_len != TRUNC_LEN1) || \ - (err_flag != 0)) { - tst_resm(TFAIL, "Functionality of " - "truncate(2) on %s Failed", - TESTFILE); - } else { - tst_resm(TPASS, \ - "Functionality of truncate(2) " - "on %s successful", TESTFILE); - } - } else { - tst_resm(TPASS, "%s call succeeded", TCID); - } - } - Tst_count++; /* incr. TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * Create a temporary directory and change directory to it. - * Create a test file under temporary directory and write some - * data into it. - */ -void -setup() -{ - int i; /* counter variable */ - int wbytes; /* bytes written to testfile */ - int write_len = 0; /* total no. of bytes written to testfile */ - - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - - /* Fill the test buffer with the known data */ - for (i = 0; i < BUF_SIZE; i++) { - tst_buff[i] = 'a'; - } - - /* Creat a testfile and write some data into it */ - if ((fd = open(TESTFILE, O_RDWR|O_CREAT, FILE_MODE)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT, %o) Failed, errno=%d : %s", - TESTFILE, FILE_MODE, errno, strerror(errno)); - /*NOTREACHED*/ - } - - /* Write to the file 1k data from the buffer */ - while (write_len < FILE_SIZE) { - if ((wbytes = write(fd, tst_buff, sizeof(tst_buff))) <= 0) { - tst_brkm(TBROK, cleanup, - "write(2) on %s Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } else { - write_len += wbytes; - } - } -} /* End setup() */ - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - * Close the temporary file opened for reading/writing. - * Remove the test directory and testfile created in the setup. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - */ - TEST_CLEANUP; - - /* Close the testfile after writing data into it */ - if (close(fd) == -1) { - tst_brkm(TFAIL, NULL, - "close(%s) Failed, errno=%d : %s", - TESTFILE, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/ulimit01.c b/winsup/testsuite/winsup.api/ltp/ulimit01.c deleted file mode 100644 index 655c9e32e..000000000 --- a/winsup/testsuite/winsup.api/ltp/ulimit01.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : ulimit01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for ulimit(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 6 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) ulimit(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * The libcuts.a and libsys.a libraries must be included in - * the compilation of this test. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the ulimit(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * ulimit(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="ulimit01"; /* Test program identifier. */ -int TST_TOTAL=6; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int cmd; -long limit; /* saved limit */ - -struct limits_t { - int cmd; - long newlimit; - int nlim_flag; /* special flag for UL_SETFSIZE records */ - int exp_fail; -} Scenarios[] = { - - { UL_GETFSIZE, -1, 0, 0 }, - { UL_SETFSIZE, -1, 0, 1 }, /* negative test */ - { UL_SETFSIZE, -2, 1, 0 }, /* case case: must be after UL_GETFSIZE */ - { UL_SETFSIZE, -2, 2, 0 }, /* case case: must be after UL_GETFSIZE */ - -#if UL_GMEMLIM - { UL_GMEMLIM, -1, 0, 0 }, -#endif -#if UL_GDESLIM - { UL_GDESLIM, -1, 0, 0 }, -#endif -#if UL_GSHMEMLIM - { UL_GSHMEMLIM, -1, 0, 0 }, -#endif - -}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - int i; /* inner loop (test case) counter */ - const char *msg; /* message returned from parse_opts */ - int tmp; - - TST_TOTAL = sizeof(Scenarios)/sizeof(struct limits_t); - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - for ( i=0; i -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="umask01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call umask(2) - */ - TEST(umask(022)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "umask(022) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "umask(022) returned %d", TEST_RETURN); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - void trapper(); - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/umask02.c b/winsup/testsuite/winsup.api/ltp/umask02.c deleted file mode 100644 index f7d7c3bc8..000000000 --- a/winsup/testsuite/winsup.api/ltp/umask02.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * umask02.c - * - * DESCRIPTION - * Check that umask changes the mask, and that the previous - * value of the mask is returned correctly for each value. - * - * ALGORITHM - * For each mask value (9 bits) set mask, and check that the return - * corresponds to the previous value set. - * - * USAGE: - * umask02 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions - * None - */ - -#include -#include "test.h" -#include "usctest.h" - -char *TCID = "umask02"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -main(int argc, char **argv) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int uret = 0, i, mskval = 0000; - - /* parse standard options */ - if ((msg = parse_opts(argc, argv, (option_t *)NULL, NULL)) != - (char *) NULL) { - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); - - /* Check for looping state if -i option is given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - for (umask(++mskval), i = 1; mskval < 01000; - uret = umask(++mskval), i++) { - if ((uret != mskval - 1) && (mskval != 0000)) { - tst_brkm(TBROK, cleanup, "bad mask value " - "returned"); - /*NOTREACHED*/ - } else { - tst_resm(TPASS, "umask(%d) susuccessfully " - "returned %d.", mskval, uret); - } - } - mskval = 0000; - uret = 0; - tst_resm(TINFO, "end of loop %d\n", lc); - } - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup() - * performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -c option. - */ - TEST_PAUSE; -} - -/* - * cleanup() - * performs all ONE TIME cleanup for this test at - * completion or premature exit - */ -void -cleanup(void) -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); - /*NOTREACHED*/ -} diff --git a/winsup/testsuite/winsup.api/ltp/umask03.c b/winsup/testsuite/winsup.api/ltp/umask03.c deleted file mode 100644 index 8d032ca5c..000000000 --- a/winsup/testsuite/winsup.api/ltp/umask03.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * umask01.c - * - * DESCRIPTION - * Check that umask changes the mask, and that the previous - * value of the mask is returned correctly for each value. - * - * ALGORITHM - * For each mask value (9 bits) set mask, and check that the return - * corresponds to the previous value set. - * - * USAGE: - * umask01 [-c n] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions - * None - */ - -#include -#include "test.h" -#include "usctest.h" -#include -#include - -char *TCID = "umask01"; -int TST_TOTAL = 1; -extern int Tst_count; - -char filname[40]; - -void setup(void); -void cleanup(void); - -main(int argc, char **argv) -{ - int lc; - const char *msg; - - struct stat statbuf; - int mskval = 0000; - int fildes, i; - unsigned low9mode; - - /* parse standard options */ - if ((msg = parse_opts(argc, argv, (option_t *) NULL, NULL)) - != (char *) NULL) { - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); /* global setup */ - - /* check looping state if -i option is given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - for (umask(mskval = 0077), i = 1; mskval < 01000; - i++, umask(++mskval)) { - unlink(filname); - if ((fildes = creat(filname, 0777)) == -1) { - tst_resm(TBROK, "cannot create " - "file with mskval 0%o %d", - mskval, mskval); - } else { - if (fstat(fildes, &statbuf) != 0) { - tst_resm(TBROK, "cannot fstat file"); - } else { - low9mode = statbuf.st_mode & 0777; - if (low9mode != (~mskval & 0777)) { - tst_brkm(TBROK, cleanup, - "got %0 expected %o" - "mask didnot take", - low9mode, - (~mskval & 0777)); - /*NOTREACHED*/ - } else { - tst_resm(TPASS, "Test " - "condition: %d, umask: " - "0%o", i, mskval); - } - } - } - close(fildes); - } - } - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup - * performs all ONE TIME setup for this test - */ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* make temp dir and cd to it */ - tst_tmpdir(); - - sprintf(filname, "umask2.%d", getpid()); -} - -/* - * cleanup - * performs all ONE TIME cleanup for this test at completion or - * premature exit - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified - * print errno log if that option was specified - */ - TEST_CLEANUP; - - /* - * cleanup the temporary files and the temporary directory - */ - unlink(filname); - tst_rmdir(); - - /* - * exit with return code appropriate for results - */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/uname01.c b/winsup/testsuite/winsup.api/ltp/uname01.c deleted file mode 100644 index e2f8f8b0c..000000000 --- a/winsup/testsuite/winsup.api/ltp/uname01.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : uname01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for uname(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) uname(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the uname(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * uname(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="uname01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -struct utsname un; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call uname(2) - */ - TEST(uname(&un)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "uname(&un) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "uname(&un) returned %d", TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - void trapper(); - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/unlink05.c b/winsup/testsuite/winsup.api/ltp/unlink05.c deleted file mode 100644 index 63e97df89..000000000 --- a/winsup/testsuite/winsup.api/ltp/unlink05.c +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : unlink05 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for unlink(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) unlink(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the unlink(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * unlink(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); -void create_file(); - - - -char *TCID="unlink05"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call unlink(2) - */ - TEST(unlink(fname)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "unlink(%s) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "unlink(%s) returned %d", fname, TEST_RETURN); - } - /* recreate file for next loop */ - create_file(); - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - create_file(); -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - -void -create_file() -{ - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } -} diff --git a/winsup/testsuite/winsup.api/ltp/unlink06.c b/winsup/testsuite/winsup.api/ltp/unlink06.c deleted file mode 100644 index 3d0690383..000000000 --- a/winsup/testsuite/winsup.api/ltp/unlink06.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : unlink06 - * - * EXECUTED BY : anyone - * - * TEST TITLE : unlink(2) of a FIFO - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 03/30/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) unlink(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the unlink(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * unlink(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void create_file(); -void cleanup(); - - -char *TCID="unlink06"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char Fname[255]; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - create_file(); - - /* - * Call unlink(2) - */ - TEST(unlink(Fname)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "unlink(%s) Failed, errno=%d : %s", Fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else if ( STD_FUNCTIONAL_TEST ) { - if ( access(Fname, F_OK) != -1 ) { - tst_resm(TFAIL, - "unlink(%s) returned %d, but access says file still exists.", - Fname, TEST_RETURN); - } - else { - tst_resm(TPASS, "unlink(%s) returned %d", Fname, TEST_RETURN); - } - } - else - Tst_count++; - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - sprintf(Fname, "fifo_unlink%d", getpid()); - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ - -/****************************************************************** - * - ******************************************************************/ -void -create_file() -{ - if(mkfifo(Fname, 0777) == -1) { - tst_brkm(TBROK, cleanup, - "mkfifo(%s, 0777) failed errno:%d %s\n", Fname, - errno, strerror(errno)); - } -} diff --git a/winsup/testsuite/winsup.api/ltp/unlink07.c b/winsup/testsuite/winsup.api/ltp/unlink07.c deleted file mode 100644 index 889b60959..000000000 --- a/winsup/testsuite/winsup.api/ltp/unlink07.c +++ /dev/null @@ -1,329 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : unlink07 - * - * EXECUTED BY : anyone - * - * TEST TITLE : unlink(2) negative testcases - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 03/30/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1-8) See Testcases structure below. - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the unlink(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * unlink(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include /* for PATH_MAX */ -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - -extern char *get_high_address(); - -char *TCID="unlink07"; /* Test program identifier. */ -int TST_TOTAL=6; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int longpath_setup(); -int no_setup(); -int filepath_setup(); -char Longpathname[PATH_MAX+2]; -char High_address[64]; - -struct test_case_t { - char *pathname; - char *desc; - int exp_errno; - int (*setupfunc)(); -} Test_cases[] = { - { "nonexistfile", "non-existent file", ENOENT, no_setup}, - { "", "path is empty string", ENOENT, no_setup}, - { "nefile/file", "path contains a non-existent file", - ENOENT, no_setup }, - { High_address, "address beyond address space", EFAULT, no_setup }, -#ifndef __CYGWIN__ - { "file/file", "path contains a regular file", - ENOTDIR, filepath_setup }, -#endif - { High_address, "address beyond address space", EFAULT, no_setup }, - { Longpathname, "pathname too long", ENAMETOOLONG, longpath_setup }, - { (char *)-1, "negative address", EFAULT, no_setup }, - { NULL, NULL, 0, no_setup } -}; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char *fname; - char *desc; - int ind; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - for (ind=0; Test_cases[ind].desc != NULL; ind++ ) { - - fname = Test_cases[ind].pathname; - desc = Test_cases[ind].desc; - - if ( fname == High_address ) - fname = get_high_address(); - - /* - * Call unlink(2) - */ - TEST(unlink(fname)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_ERRNO == Test_cases[ind].exp_errno ) - tst_resm(TPASS, "unlink(<%s>) Failed, errno=%d", - desc, TEST_ERRNO); - else - tst_resm(TFAIL, - "unlink(<%s>) Failed, errno=%d, expected errno:%d", - desc, TEST_ERRNO, Test_cases[ind].exp_errno); - } - else - Tst_count++; - } else { - tst_resm(TFAIL, - "unlink(<%s>) returned %d, expected -1, errno:%d", - desc, TEST_RETURN, Test_cases[ind].exp_errno); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - int ind; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - for (ind=0; Test_cases[ind].desc != NULL; ind++ ) { - Test_cases[ind].setupfunc(); - } - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - chmod("unwrite_dir", 0777); - chmod("unsearch_dir", 0777); - - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ - -/****************************************************************** - * - ******************************************************************/ -int -no_setup() -{ - return 0; -} - -/****************************************************************** - * - ******************************************************************/ -int -longpath_setup() -{ - int ind; - - for(ind=0; ind<= PATH_MAX+1; ind++) { - Longpathname[ind] = 'a'; - } - return 0; - -} -/****************************************************************** - * - ******************************************************************/ -int -filepath_setup() -{ - int fd; - - if ( (fd=creat("file", 0777)) == -1 ) { - tst_brkm(TBROK, cleanup, "creat(file) failed, errno:%d %s", - errno, strerror(errno)); - } - close(fd); - return 0; -} - diff --git a/winsup/testsuite/winsup.api/ltp/unlink08.c b/winsup/testsuite/winsup.api/ltp/unlink08.c deleted file mode 100644 index a426aa03f..000000000 --- a/winsup/testsuite/winsup.api/ltp/unlink08.c +++ /dev/null @@ -1,433 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : unlink08 - * - * EXECUTED BY : anyone - * - * TEST TITLE : unlink(2) negative testcases - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 3 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : Richard Logan - * - * CO-PILOT : William Roske - * - * DATE STARTED : 03/30/94 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1-3) See Testcases structure below. - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the unlink(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * unlink(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -void setup(); -void cleanup(); - - - -char *TCID="unlink08"; /* Test program identifier. */ -int TST_TOTAL=3; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int unwrite_dir_setup(); -int unsearch_dir_setup(); -int dir_setup(); -int no_setup(); - -struct test_case_t { - char *pathname; - char *desc; - int (*setupfunc)(); - int exp_ret; /* -1 means error, 0 means != -1 */ - int exp_errno; -} Test_cases[] = { - { "unwrite_dir/file", "unwritable directory", unwrite_dir_setup, - -1, EACCES}, - { "unsearch_dir/file", "unsearchable directory", unsearch_dir_setup, - -1, EACCES }, -#ifdef linux - { "regdir", "directory", dir_setup, -1, EISDIR}, -#else - { "regdir", "directory", dir_setup, -1, EPERM}, -#endif - - { NULL, NULL, no_setup, -1, 0 } -}; - -/*********************************************************************** - * Main - ***********************************************************************/ -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - char *fname; - char *desc; - int ind; - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - - for (ind=0; Test_cases[ind].desc != NULL; ind++ ) { - - fname = Test_cases[ind].pathname; - desc = Test_cases[ind].desc; - - /* - * Call unlink(2) - */ - TEST(unlink(fname)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - if ( Test_cases[ind].exp_ret == -1 ) { /* neg test */ - if ( STD_FUNCTIONAL_TEST ) { - if ( TEST_ERRNO == Test_cases[ind].exp_errno ) - tst_resm(TPASS, "unlink(<%s>) Failed, errno=%d", - desc, TEST_ERRNO); - else - tst_resm(TFAIL, - "unlink(<%s>) Failed, errno=%d, expected errno:%d", - desc, TEST_ERRNO, Test_cases[ind].exp_errno); - } - else - Tst_count++; - } - else { - tst_resm(TFAIL, "unlink(<%s>) Failed, errno=%d", - desc, TEST_ERRNO); - } - } else { - if ( Test_cases[ind].exp_ret == -1 ) { - tst_resm(TFAIL, - "unlink(<%s>) returned %d, expected -1, errno:%d", - desc, TEST_RETURN, Test_cases[ind].exp_errno); - } - else if ( STD_FUNCTIONAL_TEST ) { - tst_resm(TPASS, - "unlink(<%s>) returned %d", - desc, TEST_RETURN); - } - else - Tst_count++; - Test_cases[ind].setupfunc(1); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - int ind; - int postest = 0; - - /* capture signals */ - tst_sig(NOFORK, DEF_HANDLER, cleanup); - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - /* Pause if that option was specified */ - TEST_PAUSE; - - if ( geteuid() == 0 ) { - postest++; - } - - for (ind=0; Test_cases[ind].desc != NULL; ind++ ) { - if ( Test_cases[ind].exp_errno == EACCES && postest ) - Test_cases[ind].exp_ret=0; /* set as a pos test */ - Test_cases[ind].setupfunc(0); - } - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - chmod("unwrite_dir", 0777); - chmod("unsearch_dir", 0777); - - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - -} /* End cleanup() */ - -/****************************************************************** - * - ******************************************************************/ -int -unwrite_dir_setup(flag) -int flag; -{ - int fd; - - if ( ! flag ) { /* initial setup */ - if (mkdir("unwrite_dir", 0777) == -1 ) { - tst_brkm(TBROK, cleanup, - "mkdir(unwrite_dir, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - - if ( (fd=creat("unwrite_dir/file", 0777)) == -1 ) { - tst_brkm(TBROK, cleanup, - "creat(unwrite_dir/file, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - close(fd); - - if ( chmod("unwrite_dir", 0555) == -1 ) { - tst_brkm(TBROK, cleanup, - "chmod(unwrite_dir, 0555) failed, errno:%d %s", - errno, strerror(errno)); - } - } - else { /* resetup */ - if ( chmod("unwrite_dir", 0777) == -1 ) { - tst_brkm(TBROK, cleanup, - "chmod(unwrite_dir, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - - if ( (fd=creat("unwrite_dir/file", 0777)) == -1 ) { - tst_brkm(TBROK, cleanup, - "creat(unwrite_dir/file, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - close(fd); - - if ( chmod("unwrite_dir", 0555) == -1 ) { - tst_brkm(TBROK, cleanup, - "chmod(unwrite_dir, 0555) failed, errno:%d %s", - errno, strerror(errno)); - } - } - return 0; -} - -/****************************************************************** - * - ******************************************************************/ -int -unsearch_dir_setup(flag) -int flag; -{ - int fd; - - if ( ! flag ) { /* initial setup */ - if (mkdir("unsearch_dir", 0777) == -1 ) { - tst_brkm(TBROK, cleanup, - "mkdir(unsearch_dir, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - - if ( (fd=creat("unsearch_dir/file", 0777)) == -1 ) { - tst_brkm(TBROK, cleanup, - "creat(unsearch_dir/file, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - close(fd); - - if ( chmod("unsearch_dir", 0666) == -1 ) { - tst_brkm(TBROK, cleanup, - "chmod(unsearch_dir, 0666) failed, errno:%d %s", - errno, strerror(errno)); - } - } - else { /* resetup */ - if ( chmod("unsearch_dir", 0777) == -1 ) { - tst_brkm(TBROK, cleanup, - "chmod(unsearch_dir, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - - if ( (fd=creat("unsearch_dir/file", 0777)) == -1 ) { - tst_brkm(TBROK, cleanup, - "creat(unsearch_dir/file, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - close(fd); - - if ( chmod("unsearch_dir", 0666) == -1 ) { - tst_brkm(TBROK, cleanup, - "chmod(unsearch_dir, 0666) failed, errno:%d %s", - errno, strerror(errno)); - } - } - return 0; -} - -/****************************************************************** - * - ******************************************************************/ -int -dir_setup(flag) -int flag; -{ - if (mkdir("regdir", 0777) == -1 ) { - tst_brkm(TBROK, cleanup, - "mkdir(unwrite_dir, 0777) failed, errno:%d %s", - errno, strerror(errno)); - } - return 0; -} - -/****************************************************************** - * - ******************************************************************/ -int -no_setup(flag) -int flag; -{ - return 0; -} diff --git a/winsup/testsuite/winsup.api/ltp/vfork01.c b/winsup/testsuite/winsup.api/ltp/vfork01.c deleted file mode 100644 index 41e48c461..000000000 --- a/winsup/testsuite/winsup.api/ltp/vfork01.c +++ /dev/null @@ -1,402 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * Name: vfork01 - * - * Test Description: - * Fork a process using vfork() and verify that, the attribute values like - * euid, ruid, suid, egid, rgid, sgid, umask, inode and device number of - * root and current working directories are same as that of the parent - * process. - * - * Expected Result: - * The attribute values like euid, ruid, suid, egid, rgid, sgid, umask, inode - * and device number of root and current working directory of the parent and - * child processes should be equal. - * - * Algorithm: - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, - * Verify the Functionality of system call - * if successful, - * Issue Functionality-Pass message. - * Otherwise, - * Issue Functionality-Fail message. - * Cleanup: - * Print errno log and/or timing stats if options given - * - * Usage: - * vfork01 [-c n] [-e] [-f] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions: - * None. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -char *TCID="vfork01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ -int exp_enos[]={0}; - -/* Variables to hold parent/child eff/real/saved uid/gid values */ -uid_t Peuid, Ceuid, Csuid, Psuid, Pruid, Cruid; -gid_t Pegid, Cegid, Psgid, Csgid, Prgid, Crgid; -mode_t Pumask,Cumask; - -char Pcwd_buf [PATH_MAX], Ccwd_buf [PATH_MAX]; -char *Pcwd, *Ccwd; /* - * pathname of working directory of - * child/parent process. - */ -/* stat structure to hold directory/inode information for parent/child */ -struct stat StatPbuf; -struct stat StatCbuf; -struct stat Stat_cwd_Pbuf; -struct stat Stat_cwd_Cbuf; - -void setup(); /* Main setup function of test */ -void cleanup(); /* cleanup function for the test */ - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - pid_t cpid; /* process id of the child process */ - int exit_status; /* exit status of child process */ - - /* Parse standard options given to run the test. */ - msg = parse_opts(ac, av, (option_t *) NULL, NULL); - if (msg != (char *) NULL) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /* Perform global setup for test */ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /* Check looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* Reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call vfork(2) to create a child process without - * fully copying the address space of parent. - */ - TEST(vfork()); - - /* check return code of vfork() */ - if ((cpid = TEST_RETURN) == -1) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "vfork() Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else if (cpid == 0) { /* Child process */ - /* - * Perform functional verification if test - * executed without (-f) option. - */ - if (STD_FUNCTIONAL_TEST) { - /* - * Get the euid, ruid, egid, rgid, umask value - * and the current working directory of the - * child process - */ -#if (linux) - if (getresuid(&Cruid, &Ceuid, &Csuid) < 0) { - tst_resm(TFAIL, "getresuid() fails to " - "get real/eff./saved uid of " - "child process"); - _exit(1); - } - - if (getresgid(&Crgid, &Cegid, &Csgid) < 0) { - tst_resm(TFAIL, "getresgid() fails to " - "get real/eff./saved gid of " - "child process"); - _exit(1); - } -#else - Cruid = getuid (); - Ceuid = geteuid (); - Csuid = 0; - Crgid = getgid (); - Cegid = getegid (); - Csgid = 0; -#endif - /* - * Get the file mode creation mask value of - * child process by setting value zero and - * restore the previous mask value. - */ - Cumask = umask(0); - - /* - * Restore the process mask of child to - * previous value. - */ - umask(Cumask); - - /* - * Get the pathname of current working - * directory for the child process. - */ - if ((Ccwd = (char *)getcwd(Ccwd_buf, \ - BUFSIZ)) == NULL) { - tst_resm(TFAIL, "getcwd failed for the " - "child process"); - _exit(1); - } - - /* - * Get the device number and the inode - * number of "/" directory for the child - * process. - */ - if (stat("/", &StatCbuf) < 0) { - tst_resm(TFAIL, "stat(2) failed to get " - "info. of'/' in the child " - "process"); - _exit(1); - } - - /* - * Get the device/inode number of "." - * (working directory) for the child process. - */ - if (stat(Ccwd, &Stat_cwd_Cbuf) < 0) { - tst_resm(TFAIL, "stat(2) failed to get " - "info. of working irectory in " - "the child"); - _exit(1); - } - - /* Now, do the actual comparision */ - if (Peuid != Ceuid || Pegid != Cegid || \ - Psuid != Csuid || Psgid != Csgid || \ - Pruid != Cruid || Prgid != Crgid || \ - Pumask != Cumask) { - tst_resm(TFAIL, "Arribute values of " - "parent and child don't match"); - _exit(1); - } else { - tst_resm(TINFO, "Arribute values of " - "parent and child match"); - } - - /* Check for the same working directories */ - if (strcmp(Pcwd, Ccwd) != 0) { - tst_resm(TFAIL, "Working directories " - "of parent and child don't " - "match"); - _exit(1); - } else { - tst_resm(TINFO, "Working directories " - "of parent and child match"); - } - - /* - * Check for the same device/inode number of - * '/' directory. - */ - if ((StatPbuf.st_ino != StatCbuf.st_ino) || \ - (StatPbuf.st_dev != StatCbuf.st_dev)) { - tst_resm(TFAIL, "Device/inode number " - "of parent and childs '/' " - " don't match"); - _exit(1); - } else { - tst_resm(TINFO, "Device/inode number " - "of parent and childs '/' " - "match"); - } - - /* - * Check for the same device and inode number - * of "." (current working directory. - */ - if ((Stat_cwd_Pbuf.st_ino != \ - Stat_cwd_Cbuf.st_ino) || \ - (Stat_cwd_Pbuf.st_dev != \ - Stat_cwd_Cbuf.st_dev)) { - tst_resm(TFAIL, "Device/inode number " - "of parent and childs '.' " - "don't match"); - _exit(1); - } else { - tst_resm(TINFO, "Device/inode number " - "of parent and childs '.' " - "match"); - } - - /* - * Exit with normal exit code if everything - * fine - */ - _exit(0); - } - } else { /* parent process */ - /* - * Let the parent process wait till child completes - * its execution. - */ - wait(&exit_status); - - /* Check for the exit status of child process */ - if (WEXITSTATUS(exit_status) == 0) { - tst_resm(TPASS, \ - "Call of vfork() successful"); - } else if (WEXITSTATUS(exit_status) == 1) { - tst_resm(TFAIL, \ - "Child process exited abnormally"); - } - } - Tst_count++; /* incr. TEST_LOOP counter */ - } /* End for TEST_LOOPING */ - - /* Call cleanup() to undo setup done for the test. */ - cleanup(); - /*NOTREACHED*/ - -} /* End main */ - -/* - * void - * setup() - performs all ONE TIME setup for this test. - * This function gets real/effective/saved uid/gid, umask, the device/inode - * number of '/' and current working directory for the parent process. - */ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* - * Get the euid, ruid, egid, rgid, umask value - * and the current working directory of the parent process. - */ -#if (linux) - if (getresuid(&Pruid, &Peuid, &Psuid) < 0) { - tst_brkm(TFAIL, cleanup, "getresuid() fails to get " - "real/eff./saved uid of parent"); - } - - if (getresgid(&Prgid, &Pegid, &Psgid) < 0) { - tst_brkm(TFAIL, cleanup, "getresgid() fails to get " - "real/eff./saved gid of parent"); - } -#else - Pruid = getuid (); - Peuid = geteuid (); - Psuid = 0; - Prgid = getgid (); - Pegid = getegid (); - Psgid = 0; -#endif - /* Get the process file mode creation mask by setting value 0 */ - Pumask = umask(0); - umask(Pumask); /* - * Restore the mask value of the - * process. - */ - /* - * Get the pathname of current working directory of the parent - * process. - */ - if ((Pcwd = (char *) getcwd(Pcwd_buf, BUFSIZ)) == NULL) { - tst_brkm(TFAIL, cleanup, - "getcwd failed for the parent process"); - } - - /* - * Get the device and inode number of root directory for the - * parent process. - */ - if (stat("/", &StatPbuf) == -1) { - tst_brkm(TFAIL, cleanup, "stat(2) failed to get info. of '/' " - "in parent process"); - } - - /* - * Get the device number and the inode number of "." (current- - * working directory) for the parent process. - */ - if (stat(Pcwd, &Stat_cwd_Pbuf) < 0) { - tst_brkm(TFAIL, cleanup, "stat(2) failed to get info. of " - "working directory in parent process"); - } -} /* End setup() */ - -/* - * void - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - */ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ diff --git a/winsup/testsuite/winsup.api/ltp/wait02.c b/winsup/testsuite/winsup.api/ltp/wait02.c deleted file mode 100644 index 8b4f41b09..000000000 --- a/winsup/testsuite/winsup.api/ltp/wait02.c +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : wait02 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for wait(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) wait(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the wait(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * wait(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="wait02"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -int fork_pid, ret_code; -void trapper(); - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* create a child to wait for */ - if ((fork_pid=fork()) == -1) { - tst_brkm(TBROK, cleanup, "fork() Failure. errno=%d : %s", errno, strerror(errno)); - } else if (fork_pid == 0) { - /* Child, sleep a second then exit */ - sleep(1); - exit(1); - } - - /* Parent, wait for child to die */ - TEST(wait(&ret_code)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "wait(1) Failed, errno=%d : %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "wait(&ret_code) returned %d", TEST_RETURN); - } - } - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; - -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/wait401.c b/winsup/testsuite/winsup.api/ltp/wait401.c deleted file mode 100644 index 0d307e247..000000000 --- a/winsup/testsuite/winsup.api/ltp/wait401.c +++ /dev/null @@ -1,187 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * wait401.c - * - * DESCRIPTION - * wait401 - check that a call to wait4() correctly waits for a child - * process to exit - * - * ALGORITHM - * loop if that option was specified - * fork a child. - * issue the system call - * check the return value - * if return value == -1 - * issue a FAIL message, break remaining tests and cleanup - * if we are doing functional testing - * issue a PASS message if the wait4 call returned the child's pid - * else - * issue a FAIL message - * call cleanup - * - * USAGE: - * wait401 [-c n] [-f] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -f : Turn off functionality Testing. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions - * none - */ - -#include "test.h" -#include "usctest.h" - -#include -#define _USE_BSD -#include -#include -#include - -void cleanup(void); -void setup(void); - -char *TCID= "wait401()"; -int TST_TOTAL = 1; -extern int Tst_count; - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - pid_t pid; - int status = 1; - struct rusage *rusage = NULL; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL) { - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); /* global setup */ - - /* The following loop checks looping state if -i option given */ - - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - /* - * Allocate some space for the rusage structure - */ - - if ((rusage = (struct rusage *)malloc(sizeof(struct rusage))) - == NULL) { - tst_brkm(TBROK, cleanup, "malloc() failed"); - } - - pid = fork(); - - if (pid == -1) { - tst_brkm(TBROK, cleanup, "fork() failed"); - } - - if (pid == 0) { /* this is the child */ - /* - * sleep for a moment to let us do the test - */ - sleep(1); - exit(0); - } else { /* this is the parent */ - - /* call wait4 with the TEST() macro */ - TEST(wait4(pid, &status, 0, rusage)); - } - - if (TEST_RETURN == -1) { - tst_brkm(TFAIL, cleanup, "%s call failed - errno = %d " - ": %s", TCID, TEST_ERRNO, strerror(TEST_ERRNO)); - } - - if (STD_FUNCTIONAL_TEST) { - /* - * The return from this call should be non-zero. - */ - if (WIFEXITED(status) == 0) { - tst_brkm(TFAIL, cleanup, "%s call succeeded but " - "WIFEXITED() did not return expected value " - "- %d", TCID, WIFEXITED(status)); - } else if (TEST_RETURN != pid) { - tst_resm(TFAIL, "%s did not return the " - "expected value. %d", TCID, - TEST_RETURN); - } else { - - tst_resm(TPASS, "Received child pid as expected."); - } - } - tst_resm(TPASS, "%s call succeeded", TCID); - - /* - * Clean up things in case we are looping. - */ - free(rusage); - rusage = NULL; - } - - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all the ONE TIME setup for this test. - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup(void) -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} - diff --git a/winsup/testsuite/winsup.api/ltp/wait402.c b/winsup/testsuite/winsup.api/ltp/wait402.c deleted file mode 100644 index 43a5c22d3..000000000 --- a/winsup/testsuite/winsup.api/ltp/wait402.c +++ /dev/null @@ -1,202 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * wait402.c - * - * DESCRIPTION - * wait402 - check for ECHILD errno when using an illegal pid value - * - * ALGORITHM - * loop if that option was specified - * issue the system call with an illegal pid value - * check the errno value - * issue a PASS message if we get ECHILD - * otherwise, the tests fails - * issue a FAIL message - * break any remaining tests - * call cleanup - * - * USAGE: - * wait402 [-c n] [-e] [-i n] [-I x] [-p x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions - * none - */ - -#include "test.h" -#include "usctest.h" - -#include -#define _USE_BSD -#include -#include -#include - -/* - * See the Makefile for comments about the following preprocessor code. - */ -#if defined (__CYGWIN__) -#define PID_MAX 0xfffffffd -#else -#ifndef _LTP_TASKS_H -#include /* for PID_MAX value - new */ -#else -#include /* for PID_MAX value - old */ -#endif -#endif - -void cleanup(void); -void setup(void); - -char *TCID= "wait402()"; -int TST_TOTAL = 1; -extern int Tst_count; - -int exp_enos[] = {10, 0}; - -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - pid_t pid; - pid_t epid = PID_MAX + 1; - int status = 1; - struct rusage *rusage=NULL; - - /* parse standard options */ - if ((msg = parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL) { - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - } - - setup(); /* global setup */ - - /* The following loop checks looping state if -i option given */ - - for (lc = 0; TEST_LOOPING(lc); lc++) { - /* reset Tst_count in case we are looping */ - Tst_count = 0; - - - /* - * Allocate some space for the rusage structure. - */ - - if ((rusage = (struct rusage *)malloc(sizeof(struct rusage))) - == NULL) { - tst_brkm(TBROK, cleanup, "malloc() failed"); - } - - pid = fork(); - - if (pid == -1) { - tst_brkm(TBROK, cleanup, "fork() failed"); - } - - if (pid == 0) { /* this is the child */ - /* - * sleep for a moment to let us do the test - */ - sleep(1); - exit(0); - } else { /* this is the parent */ - /* - * call wait4 with the TEST() macro. epid is set - * to an illegal positive value. This should give - * an ECHILD error. - */ - TEST(wait4(epid, &status, 0, rusage)); - } - - if (TEST_RETURN == 0) { - tst_brkm(TFAIL, cleanup, "call failed to produce expected error - errno = %d - %s", TEST_ERRNO, strerror(TEST_ERRNO)); - } - - TEST_ERROR_LOG(TEST_ERRNO); - - switch (TEST_ERRNO) { - case ECHILD: - tst_resm(TPASS, "received expected failure - errno = %d - %s", - TEST_ERRNO, strerror(TEST_ERRNO)); - break; - default: - tst_brkm(TFAIL, cleanup, "call failed to produce expected " - "error - errno = %d - %s", TEST_ERRNO, - strerror(TEST_ERRNO)); - } - - /* - * Clean up things in case we are looping. - */ - if (pid > 0) { - wait4(pid, &status, 0, rusage); - } - free(rusage); - rusage = NULL; - } - - cleanup(); - - /*NOTREACHED*/ -} - -/* - * setup() - performs all the ONE TIME setup for this test. - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Set up the expected error numbers for -e option */ - TEST_EXP_ENOS(exp_enos); - - /* Pause if that option was specified */ - TEST_PAUSE; -} - -/* - * cleanup() - performs all the ONE TIME cleanup for this test at completion - * or premature exit. - */ -void -cleanup(void) -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* exit with return code appropriate for results */ - tst_exit(); -} - diff --git a/winsup/testsuite/winsup.api/ltp/write01.c b/winsup/testsuite/winsup.api/ltp/write01.c deleted file mode 100644 index 0fae9aea1..000000000 --- a/winsup/testsuite/winsup.api/ltp/write01.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Further, this software is distributed without any warranty that it is - * free of the rightful claim of any third person regarding infringement - * or the like. Any license provided herein, whether implied or - * otherwise, applies only to this software file. Patent licenses, if - * any, provided herein do not apply to combinations of this program with - * other software, or any other product whatsoever. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston MA 02111-1307, USA. - * - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, - * Mountain View, CA 94043, or: - * - * http://www.sgi.com - * - * For further information regarding this notice, see: - * - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/ - * - */ -/* $Id$ */ -/********************************************************** - * - * OS Test - Silicon Graphics, Inc. - * - * TEST IDENTIFIER : write01 - * - * EXECUTED BY : anyone - * - * TEST TITLE : Basic test for write(2) - * - * PARENT DOCUMENT : usctpl01 - * - * TEST CASE TOTAL : 1 - * - * WALL CLOCK TIME : 1 - * - * CPU TYPES : ALL - * - * AUTHOR : William Roske - * - * CO-PILOT : Dave Fenner - * - * DATE STARTED : 03/30/92 - * - * INITIAL RELEASE : UNICOS 7.0 - * - * TEST CASES - * - * 1.) write(2) returns...(See Description) - * - * INPUT SPECIFICATIONS - * The standard options for system call tests are accepted. - * (See the parse_opts(3) man page). - * - * OUTPUT SPECIFICATIONS - * - * DURATION - * Terminates - with frequency and infinite modes. - * - * SIGNALS - * Uses SIGUSR1 to pause before test if option set. - * (See the parse_opts(3) man page). - * - * RESOURCES - * None - * - * ENVIRONMENTAL NEEDS - * No run-time environmental needs. - * - * SPECIAL PROCEDURAL REQUIREMENTS - * None - * - * INTERCASE DEPENDENCIES - * None - * - * DETAILED DESCRIPTION - * This is a Phase I test for the write(2) system call. It is intended - * to provide a limited exposure of the system call, for now. It - * should/will be extended when full functional tests are written for - * write(2). - * - * Setup: - * Setup signal handling. - * Pause for SIGUSR1 if option specified. - * - * Test: - * Loop if the proper options are given. - * Execute system call - * Check return code, if system call failed (return=-1) - * Log the errno and Issue a FAIL message. - * Otherwise, Issue a PASS message. - * - * Cleanup: - * Print errno log and/or timing stats if options given - * - * UPDATE HISTORY - * user date description - * ------------------------------------------------------ - * wermager 3/00 Switched sequence of calls to TEST_PAUSE - * and tst_tmpdir() in setup(). - * - *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#**/ - -#include -#include -#include -#include -#include -#include "test.h" -#include "usctest.h" - -extern void setup(); -extern void cleanup(); - - - -char *TCID="write01"; /* Test program identifier. */ -int TST_TOTAL=1; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -int exp_enos[]={0, 0}; - -char fname[255]; -int fd; -char buf = 'w'; - -int -main(int ac, char **av) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - /*************************************************************** - * parse standard options - ***************************************************************/ - if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *) NULL ) { - tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg); - tst_exit(); - } - - /*************************************************************** - * perform global setup for test - ***************************************************************/ - setup(); - - /* set the expected errnos... */ - TEST_EXP_ENOS(exp_enos); - - /*************************************************************** - * check looping state if -c option given - ***************************************************************/ - for (lc=0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping. */ - Tst_count=0; - - /* - * Call write(2) - */ - TEST(write(fd, &buf, 1)); - - /* check return code */ - if ( TEST_RETURN == -1 ) { - TEST_ERROR_LOG(TEST_ERRNO); - tst_resm(TFAIL, "write(%s, F_CLRALF, 1) Failed, errno=%d : %s", fname, - TEST_ERRNO, strerror(TEST_ERRNO)); - } else { - /*************************************************************** - * only perform functional verification if flag set (-f not given) - ***************************************************************/ - if ( STD_FUNCTIONAL_TEST ) { - /* No Verification test, yet... */ - tst_resm(TPASS, "write(%s, F_CLRALF, 1) returned %d", fname, TEST_RETURN); - } - } - - } /* End for TEST_LOOPING */ - - /*************************************************************** - * cleanup and exit - ***************************************************************/ - cleanup(); - - return 0; -} /* End main */ - -/*************************************************************** - * setup() - performs all ONE TIME setup for this test. - ***************************************************************/ -void -setup() -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - - /* Pause if that option was specified */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - sprintf(fname,"tfile_%d",getpid()); - if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) { - tst_brkm(TBROK, cleanup, - "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s", - fname, errno, strerror(errno)); - } -} /* End setup() */ - - -/*************************************************************** - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit. - ***************************************************************/ -void -cleanup() -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - /* close the file we have open */ - if (close(fd) == -1) { - tst_resm(TWARN, "close(%s) Failed, errno=%d : %s", fname, errno, strerror(errno)); - } - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} /* End cleanup() */ - - diff --git a/winsup/testsuite/winsup.api/ltp/write02.c b/winsup/testsuite/winsup.api/ltp/write02.c deleted file mode 100644 index 1ee10fd9a..000000000 --- a/winsup/testsuite/winsup.api/ltp/write02.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * write02.c - * - * DESCRIPTION - * Basic functionality test: does the return from write match the count - * of the number of bytes written. - * - * - * ALGORITHM - * Create a file and write some bytes out to it. - * Check the return count against the number returned. - * - * USAGE: - * write02 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions - * None - */ - -#include -#include -#include "test.h" -#include "usctest.h" - -char *TCID = "write02()"; -int TST_TOTAL = 1; -extern int Tst_count; - -void cleanup(void); -void setup(void); - -char pfiln[40] = ""; - -main(int argc, char **argv) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - int cwrite; - int fild; - int iws; - int badcount = 0; - char pwbuf[BUFSIZ + 1]; - - /* parse standard options */ - if (msg = parse_opts(argc, argv, (option_t *) NULL, NULL)) { - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - setup(); /* global setup for test */ - - /* The following loop checks looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - -block1: - tst_resm(TINFO, "Block 1: test to see write() returns proper " - "write count"); - - for (iws = 0; iws < BUFSIZ; iws++) { - pwbuf[iws] = 'A' + (iws % 26); - } - pwbuf[BUFSIZ] = '\n'; - - if ((fild = creat(pfiln, 0777)) == -1) { - tst_brkm(TBROK, cleanup, "Can't creat Xwrit"); - /*NOTREACHED*/ - } - for (iws = BUFSIZ; iws > 0; iws--) { - if ((cwrite = write(fild, pwbuf, iws)) != iws) { - TEST_ERROR_LOG(errno); - badcount++; - tst_resm(TINFO, "bad write count"); - } - } - if (badcount != 0) { - tst_resm(TFAIL, "write() FAILED to return proper cnt"); - } else { - tst_resm(TPASS, "write() PASSED"); - } - tst_resm(TINFO, "block 1 passed"); - close(fild); - } - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - umask(0); - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* make a temp directory and cd to it */ - tst_tmpdir(); - - sprintf(pfiln, "./write1.%d", getpid()); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at completion or - * premature exit. - */ -void -cleanup(void) -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - unlink(pfiln); - - /* Remove tmp dir and all files in it */ - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); -} diff --git a/winsup/testsuite/winsup.api/ltp/write03.c b/winsup/testsuite/winsup.api/ltp/write03.c deleted file mode 100644 index 5343c6484..000000000 --- a/winsup/testsuite/winsup.api/ltp/write03.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - * - * Copyright (c) International Business Machines Corp., 2001 - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See - * the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* - * NAME - * write03.c - * - * DESCRIPTION - * Testcase to check that write(2) doesn't corrupt a file when it fails - * - * ALGORITHM - * Create a file for writing, write 100 bytes to it. Then make write(2) - * fail with some erroneous parameter, close the fd. Then reopen the - * file in RDONLY mode, and read the contents of the file. Compare the - * buffers, to see whether they are same. - * - * USAGE: - * write03 [-c n] [-e] [-i n] [-I x] [-P x] [-t] - * where, -c n : Run n copies concurrently. - * -e : Turn on errno logging. - * -i n : Execute test n times. - * -I x : Execute test for x seconds. - * -P x : Pause for x seconds between iterations. - * -t : Turn on syscall timing. - * - * History - * 07/2001 John George - * -Ported - * - * Restrictions - * NONE - */ - -#include -#include -#include -#include -#include -#include - -/* 0 terminated list of expected errnos */ -int exp_enos[] = {14,0}; - -char *TCID = "write03"; -int TST_TOTAL = 1; -extern int Tst_count; - -void setup(void); -void cleanup(void); - -int fd = -1; -char filename[100]; - -main(int argc, char **argv) -{ - int lc; /* loop counter */ - const char *msg; /* message returned from parse_opts */ - - char wbuf[BUFSIZ], rbuf[BUFSIZ]; - - /* parse standard options */ - if ((msg = parse_opts(argc, argv, (option_t *)NULL, NULL)) != - (char *)NULL) { - tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg); - /*NOTREACHED*/ - } - - /* global setup */ - setup(); - - /* The following loop checks looping state if -i option given */ - for (lc = 0; TEST_LOOPING(lc); lc++) { - - /* reset Tst_count in case we are looping */ - Tst_count = 0; - -block1: - tst_resm(TINFO, "Enter Block 1: test to check if write " - "corrupts the file when write fails"); - - fd = creat(filename, 0644); - if (fd < 0) { - tst_resm(TBROK, "creating a new file failed"); - cleanup(); - /*NOTREACHED*/ - } - - (void)memset(wbuf, '0', 100); - - if (write(fd, wbuf, 100) == -1) { - tst_resm(TFAIL, "failed to write to %s", filename); - cleanup(); - /*NOTREACHED*/ - } - - if (write(fd, (void *)-1, 100) != -1) { - tst_resm(TFAIL, "write(2) failed to fail"); - cleanup(); - /*NOTREACHED*/ - } - TEST_ERROR_LOG(errno); - close(fd); - fd = -1; - - if ((fd = open(filename, O_RDONLY)) == -1) { - tst_resm(TBROK, "open(2) failed, errno: %d", errno); - cleanup(); - /*NOTREACHED*/ - } - - if (read(fd, rbuf, 100) == -1) { - tst_resm(TBROK, "read(2) failed, errno: %d", errno); - cleanup(); - /*NOTREACHED*/ - } - - if (memcmp(wbuf, rbuf, 100) == 0) { - tst_resm(TPASS, "failure of write(2) didnot corrupt " - "the file"); - } else { - tst_resm(TFAIL, "failure of write(2) corrupted the " - "file"); - } - tst_resm(TINFO, "Exit block 1"); - } - cleanup(); - /*NOTREACHED*/ -} - -/* - * setup() - performs all ONE TIME setup for this test - */ -void -setup(void) -{ - /* capture signals */ - tst_sig(FORK, DEF_HANDLER, cleanup); - - /* Set up the expected error numbers for -e option */ - TEST_EXP_ENOS(exp_enos); - - /* Pause if that option was specified - * TEST_PAUSE contains the code to fork the test with the -i option. - * You want to make sure you do this before you create your temporary - * directory. - */ - TEST_PAUSE; - - /* Create a unique temporary directory and chdir() to it. */ - tst_tmpdir(); - - sprintf(filename, "./write03.%d", getpid()); -} - -/* - * cleanup() - performs all ONE TIME cleanup for this test at - * completion or premature exit - */ -void -cleanup(void) -{ - /* - * print timing stats if that option was specified. - * print errno log if that option was specified. - */ - TEST_CLEANUP; - - if (fd >= 0) - close (fd); - - unlink(filename); - tst_rmdir(); - - /* exit with return code appropriate for results */ - tst_exit(); - /*NOTREACHED*/ -} diff --git a/winsup/testsuite/winsup.api/mmaptest01.c b/winsup/testsuite/winsup.api/mmaptest01.c deleted file mode 100644 index a48110eb7..000000000 --- a/winsup/testsuite/winsup.api/mmaptest01.c +++ /dev/null @@ -1,176 +0,0 @@ -/* - Copyright 2001 Free Software Foundation, Inc. - Written by Michael Chastain, - Changes by Corinna Vinschen, : - - Using mkstemp to generate filenames. - - Adding tests - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. - - This program demonstrates a bug in cygwin's mmap. - I open one file, mmap it, and close it. - I open a different file, mmap it, and close it. - - The second file re-uses the file handle (which is OK), - but then it re-uses the buffer as well! Ouch! - - This bug occurs on cygwin1.dll dated 2001-01-31. - It causes gnu cpp to screw up its include file buffers. - - Compile with "gcc -o y1 y1.c". - - Output from a bad cygwin1.dll: - - y1.txt: 3 0x4660000 y1 y1 y1 y1 y1 y1 y1 - y2.txt: 3 0x4660000 y1 y1 y1 y1 y1 y1 y1 - - Output from a good cygwin1.dll: - - y1.txt: 3 0x14060000 y1 y1 y1 y1 y1 y1 y1 - y2.txt: 3 0x14070000 y2 y2 y2 y2 y2 y2 y2 - - Output from Red Hat Linux 7: - - y1.txt: 3 0x40017000 y1 y1 y1 y1 y1 y1 y1 - y2.txt: 3 0x40018000 y2 y2 y2 y2 y2 y2 y2 - */ - -#include -#include -#include -#include - -#include "test.h" -#include "usctest.h" - -char *TCID = "mmaptest01"; /* Test program identifier. */ -int TST_TOTAL = 7; /* Total number of test cases. */ -extern int Tst_count; /* Test Case counter for tst_* routines */ - -/* some systems have O_BINARY and some do not */ -#ifndef O_BINARY -#define O_BINARY 0 -#endif - -/* filler for file 1 */ -char const line1 [] = "y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1\n"; -#define size1 (sizeof(line1) - 1) -#define count1 ((4096 / size1) + 1) - -/* filler for file 2 */ -char const line2 [] = "y2 y2 y2 y2 y2 y2 y2 y2 y2 y2 y2 y2 y2 y2 y2 y2 y2\n"; -#define size2 (sizeof(line2) - 1) -#define count2 ((4096 / size2) + 1) - -int main () -{ - int ret = 0; - - char fnam1[32]; - char fnam2[32]; - - int fd1; - char * buf1; - - int fd2; - char * buf2; - - char buf3[20]; - - int i; - - strcpy (fnam1, "mmaptest01.1.XXXXXX"); - strcpy (fnam2, "mmaptest01.2.XXXXXX"); - - /* create file 1 */ - //fd1 = open (fnam1, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0644); - fd1 = mkstemp (fnam1); - for (i = 0; i < count1; i++) - write (fd1, line1, size1); - close (fd1); - - /* create file 2 */ - //fd2 = open (fnam2, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0644); - fd2 = mkstemp (fnam2); - for (i = 0; i < count2; i++) - write (fd2, line2, size2); - close (fd2); - - /* mmap file 1 */ - fd1 = open (fnam1, O_RDONLY | O_BINARY, 0644); - buf1 = mmap (0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd1, 0); - close (fd1); - - /* mmap file 2 */ - fd2 = open (fnam2, O_RDONLY | O_BINARY, 0644); - buf2 = mmap (0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd2, 0); - close (fd2); - - /* the buffers have to be different */ - Tst_count = 0; - tst_resm (buf1 == buf2 || !memcmp (buf1, buf2, 20) ? TFAIL : TPASS, - "mmap uses unique buffers when mapping different already closed files"); - munmap (buf2, 4096); - - /* mmap file 1 twice with MAP_PRIVATE */ - fd2 = open (fnam1, O_RDONLY | O_BINARY, 0644); - buf2 = mmap (0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd2, 0); - close (fd2); - - tst_resm (buf1 == buf2 ? TFAIL : TPASS, - "mmap uses different buffers on MAP_PRIVATE mapping"); - - tst_resm (memcmp (buf1, buf2, 20) ? TFAIL : TPASS, - "two private buffers of the same file are identical"); - - buf1[0] = 0x7f; - tst_resm (!memcmp (buf1, buf2, 20) ? TFAIL : TPASS, - "changes are private in MAP_PRIVATE mappings"); - - munmap (buf1, 4096); - munmap (buf2, 4096); - - /* mmap file 1 twice with MAP_SHARED */ - fd1 = open (fnam1, O_RDWR | O_BINARY, 0644); - buf1 = mmap (0, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd1, 0); - close (fd1); - - fd2 = open (fnam1, O_RDWR | O_BINARY, 0644); - buf2 = mmap (0, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd2, 0); - close (fd2); - - tst_resm (memcmp (buf1, buf2, 20) ? TFAIL : TPASS, - "two shared buffers of the same file are identical"); - - buf1[0] = 0x7f; - tst_resm (memcmp (buf1, buf2, 20) ? TFAIL : TPASS, - "changes are shared between MAP_SHARED mappings of the same file"); - munmap (buf2, 4096); - - fd2 = open (fnam1, O_RDWR | O_BINARY, 0644); - memset (buf3, 0, 20); - read (fd2, buf3, 20); - close (fd2); - - tst_resm (memcmp (buf1, buf3, 20) ? TFAIL : TPASS, - "changes are propagated to the mapped file on MAP_SHARED mapping"); - - munmap (buf1, 4096); - unlink (fnam1); - unlink (fnam2); - tst_exit (); -} - diff --git a/winsup/testsuite/winsup.api/mmaptest02.c b/winsup/testsuite/winsup.api/mmaptest02.c deleted file mode 100644 index ec5bac7f7..000000000 --- a/winsup/testsuite/winsup.api/mmaptest02.c +++ /dev/null @@ -1,189 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -sigset_t unblock_sigsegv; -jmp_buf r; -size_t pg; - -int fd; - -/* Checks behaviour of anonymous mmap. - - test_1: If we map a 2-page region and unmap its second page, the first page - must remain. - - test_2: If we map a 2-page region and unmap its first page, the second - page must remain. - - test_3: If we map two consecutive 1-page regions and unmap them both with - one munmap, both must go away. -*/ - -void -perror_exit (char *str, int code) -{ - printf ("%s: %s\n", str, strerror (errno)); - exit (code); -} - -void -anonmap_init () -{ - sigemptyset (&unblock_sigsegv); - sigaddset (&unblock_sigsegv, SIGSEGV); - pg = getpagesize (); - fd = open ("/dev/zero", O_RDWR); -} - -char * -anonmap (size_t size) -{ - return (char *) mmap (0, size, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0); -} - -void -anonfree (char *loc, size_t size) -{ - munmap (loc, size); -} - -void -sigsegv (int unused) -{ - sigprocmask (SIG_UNBLOCK, &unblock_sigsegv, 0); - longjmp (r, 1); -} - -int -compare_pointers (const void *a, const void *b) -{ - const char *x = *(const char *const *)a; - const char *y = *(const char *const *)b; - - if (x > y) - return 1; - if (x < y) - return -1; - return 0; -} - -void -test_1 () -{ - char *x = anonmap (pg * 2); - if (x == (char *)MAP_FAILED) - perror_exit ("test 1 mmap", 1); - - signal (SIGSEGV, sigsegv); - if (setjmp (r)) - perror_exit ("test 1 fault", 2); - - x[0] = 1; - x[pg] = 1; - - anonfree (x + pg, pg); - x[0] = 2; - - if (setjmp (r) == 0) - { - x[pg] = 1; - perror_exit ("test 1 no fault", 3); - } -} - -void -test_2 () -{ - char *x = anonmap (pg * 2); - if (x == (char *)MAP_FAILED) - perror_exit ("test 2 mmap", 4); - - signal (SIGSEGV, sigsegv); - if (setjmp (r)) - perror_exit ("test 2 fault", 5); - - x[0] = 1; - x[pg] = 1; - - anonfree (x, pg); - x[pg] = 2; - - if (setjmp (r) == 0) - { - x[0] = 1; - perror_exit ("test 2 no fault", 6); - } -} - -void -test_3 () -{ - char *x[10]; - char *y; - int i; - - /* There's no way to guarantee we get consecutive pages from the OS. The - approach taken here is to allocate ten of them, sort the list, and - look for consecutive pages. */ - for (i = 0; i < 10; i++) - { - x[i] = anonmap (pg); - if (x[i] == (char *)MAP_FAILED) - perror_exit ("test 3 mmap 1", 7); - } - qsort (x, 10, sizeof (char *), compare_pointers); - - y = 0; - for (i = 0; i < 9; i++) - if (x[i] + pg == x[i+1]) - { - y = x[i]; - break; - } - if (y == 0) - { - fputs ("test 3: couldn't get two consecutive pages, giving up\n", stdout); - exit (65); - } - - signal (SIGSEGV, sigsegv); - if (setjmp (r)) - perror_exit ("test 3 fault", 8); - - y[0] = 1; - y[pg] = 1; - - anonfree (y, pg * 2); - - if (setjmp (r) == 0) - { - y[0] = 1; - perror_exit ("test 3 no fault 1", 9); - } - - signal (SIGSEGV, sigsegv); - if (setjmp (r) == 0) - { - y[pg] = 1; - perror_exit ("test 3 no fault 2", 10); - } -} - -int -main () -{ - anonmap_init(); - - test_1(); - test_2(); - test_3(); - - exit(0); -} diff --git a/winsup/testsuite/winsup.api/mmaptest03.c b/winsup/testsuite/winsup.api/mmaptest03.c deleted file mode 100644 index 544e3e43c..000000000 --- a/winsup/testsuite/winsup.api/mmaptest03.c +++ /dev/null @@ -1,127 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - Checks if mapping of already closed file survives fork() - - Checks if mapping the same region of the same file twice - is done correctly. -*/ - -sigset_t unblock_sigsegv; -jmp_buf r; - -/* filler for file */ -char const line[] = "y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1 y1"; - -void -perror_exit (char *str) -{ - printf ("%s: %s\n", str, strerror (errno)); - exit (1); -} - -void -sigsegv (int unused) -{ - sigprocmask (SIG_UNBLOCK, &unblock_sigsegv, 0); - longjmp (r, 1); -} - -int -main(int argc, char **argv) -{ - int i, fd, status; - struct stat statbuf; - char c, *buf1, *buf2; - pid_t pid; - - /* Create data file */ - if ((fd = open("y.txt", O_RDWR | O_CREAT | O_TRUNC, 0644)) == -1) - perror_exit ("Can't create data file"); - write (fd, line, sizeof(line) - 1); - close (fd); - - /* Open data file */ - if ((fd = open("y.txt", O_RDONLY)) == -1) - perror_exit ("Can't open data file"); - - if (fstat(fd, &statbuf) < 0) - perror_exit ("fstat failed"); - - if (!statbuf.st_size) - perror_exit ("filesize is 0"); - - if ((buf1 = mmap(NULL, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0)) - == MAP_FAILED) - perror_exit ("mmap 1 failed"); - - close(fd); - - /* Open data file a second time */ - if ((fd = open("y.txt", O_RDONLY)) == -1) - perror_exit ("Can't open data file in second run"); - - if ((buf2 = mmap(NULL, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0)) - == MAP_FAILED) - perror_exit ("mmap 2 failed"); - - close(fd); - - sigemptyset (&unblock_sigsegv); - sigaddset (&unblock_sigsegv, SIGSEGV); - signal (SIGSEGV, sigsegv); - - if (setjmp (r)) - perror_exit ("SEGV in fork"); - - pid = fork(); - - if (pid == -1) - perror_exit ("fork failed"); - - if (setjmp (r)) - perror_exit (pid ? "SEGV in parent" : "SEGV in child"); - - c = buf1[0]; - c = buf2[0]; - - if (setjmp (r)) - perror_exit (pid ? "SEGV in parent's munmap" : "SEGV in child's munmap"); - - if (munmap(buf1, statbuf.st_size)) - perror_exit (pid ? "munmap failed in parent" : "munmap failed in child"); - - if (setjmp (r) == 0) - { - c = buf1[0]; - perror_exit (pid ? "no SEGV in parent after munmap" : "no SEGV in child after munmap"); - } - - if (setjmp (r)) - perror_exit (pid ? "SEGV in parent after munmap" : "SEGV in child after munmap"); - - c = buf2[0]; - - if (setjmp (r)) - perror_exit (pid ? "SEGV in parent's munmap" : "SEGV in child's munmap"); - - if (munmap(buf2, statbuf.st_size)) - perror_exit (pid ? "munmap failed in parent" : "munmap failed in child"); - - if (pid) - { - waitpid (pid, &status, 0); - unlink ("y.txt"); - if (!WIFEXITED (status) || WEXITSTATUS (status)) - return 1; - } - - return 0; -} diff --git a/winsup/testsuite/winsup.api/mmaptest04.c b/winsup/testsuite/winsup.api/mmaptest04.c deleted file mode 100644 index 56c4a88b7..000000000 --- a/winsup/testsuite/winsup.api/mmaptest04.c +++ /dev/null @@ -1,100 +0,0 @@ -#include -#include -#include -#include - -#ifndef O_BINARY -#define O_BINARY 0 -#endif - -int -main () -{ - char *data, *data2, *data3; - int i, pagesize; - int fd; - - pagesize = 65536; //getpagesize(); - - /* - * First, make a file with some known garbage in it. - */ - data = (char *) malloc (pagesize); - if (!data) - exit (1); - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = open ("conftestmmap", O_CREAT | O_TRUNC | O_WRONLY | O_BINARY, 0600); - if (fd < 0) - { - printf ("creat: %d\n", errno); - exit (1); - } - if (write (fd, data, pagesize) != pagesize) - { - printf ("write: %d\n", errno); - exit (1); - } - close (fd); - - /* - * Next, try to mmap the file. - */ - fd = open ("conftestmmap", O_RDWR | O_BINARY); - if (fd < 0) - { - printf ("write: %d\n", errno); - exit (1); - } - if ((data2 = mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE, fd, 0L)) == MAP_FAILED) - { - printf ("mmap: %d\n", errno); - exit (1); - } - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - { - printf ("check-if: %d\n", errno); - exit (1); - } - - /* - * Finally, make sure that changes to the mapped area - * do not percolate back to the file as seen by read(). - * (This is a bug on some variants of i386 svr4.0.) - */ - for (i = 0; i < pagesize; ++i) - *(data2 + i) = *(data2 + i) + 1; - data3 = (char *) malloc (pagesize); - if (!data3) - { - printf ("malloc2: %d\n", errno); - exit (1); - } - if (read (fd, data3, pagesize) != pagesize) - { - printf ("read: %d\n", errno); - exit (1); - } - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - { - printf ("check-if2: %d\n", errno); - exit (1); - } - if (msync (data2, pagesize, MS_SYNC)) - { - printf ("msync: %d\n", errno); - exit (1); - } - if (munmap (data2, pagesize)) - { - printf ("munmap: %d\n", errno); - exit (1); - } - close (fd); - unlink ("conftestmmap"); - exit (0); -} diff --git a/winsup/testsuite/winsup.api/nullgetcwd.c b/winsup/testsuite/winsup.api/nullgetcwd.c deleted file mode 100644 index f7d873261..000000000 --- a/winsup/testsuite/winsup.api/nullgetcwd.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include -#include -int -main (int argc, char *argv) -{ - char *cwd = getcwd (NULL, 256); - if (cwd == NULL) - { - fprintf (stderr, "%s: getcwd returns NULL\n", argv[0]); - exit (1); - } - - exit (0); -} - diff --git a/winsup/testsuite/winsup.api/pthread/cleanup2.c b/winsup/testsuite/winsup.api/pthread/cleanup2.c deleted file mode 100644 index bcbaad3a7..000000000 --- a/winsup/testsuite/winsup.api/pthread/cleanup2.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - * File: cleanup2.c - * - * Test Synopsis: Test cleanup handler executes (when thread is not canceled). - * - * Test Method (Validation or Falsification): - * - - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - have working pthread_create, pthread_self, pthread_mutex_lock/unlock - * pthread_testcancel, pthread_cancel, pthread_join - * - * Pass Criteria: - * - Process returns zero exit status. - * - * Fail Criteria: - * - Process returns non-zero exit status. - */ - -#include "test.h" - -/* - * Create NUMTHREADS threads in addition to the Main thread. - */ -enum { - NUMTHREADS = 10 -}; - -typedef struct bag_t_ bag_t; -struct bag_t_ { - int threadnum; - int started; - /* Add more per-thread state variables here */ - int count; -}; - -static bag_t threadbag[NUMTHREADS + 1]; - -static int pop_count = 0; - -static void -increment_pop_count(void * arg) -{ - int * c = (int *) arg; - - (*c)++; -} - -void * -mythread(void * arg) -{ - int result = 0; - bag_t * bag = (bag_t *) arg; - - assert(bag == &threadbag[bag->threadnum]); - assert(bag->started == 0); - bag->started = 1; - - pthread_cleanup_push(increment_pop_count, (void *) &pop_count); - - sched_yield(); - - pthread_cleanup_pop(1); - - return (void *) result; -} - -int -main() -{ - int failed = 0; - int i; - pthread_t t[NUMTHREADS + 1]; - - assert((t[0] = pthread_self()) != NULL); - - for (i = 1; i <= NUMTHREADS; i++) - { - threadbag[i].started = 0; - threadbag[i].threadnum = i; - assert(pthread_create(&t[i], NULL, mythread, (void *) &threadbag[i]) == 0); - } - - /* - * Code to control or munipulate child threads should probably go here. - */ - Sleep(1000); - - /* - * Standard check that all threads started. - */ - for (i = 1; i <= NUMTHREADS; i++) - { - if (!threadbag[i].started) - { - failed |= !threadbag[i].started; - fprintf(stderr, "Thread %d: started %d\n", i, threadbag[i].started); - } - } - - assert(!failed); - - /* - * Check any results here. Set "failed" and only print output on failure. - */ - failed = 0; - for (i = 1; i <= NUMTHREADS; i++) - { - int fail = 0; - int result = 0; - - assert(pthread_join(t[i], (void **) &result) == 0); - - fail = (result != 0); - - if (fail) - { - fprintf(stderr, "Thread %d: started %d: result: %d\n", - i, - threadbag[i].started, - result); - } - failed = (failed || fail); - } - - assert(!failed); - - assert(pop_count == NUMTHREADS); - - /* - * Success. - */ - return 0; -} - diff --git a/winsup/testsuite/winsup.api/pthread/cleanup3.c b/winsup/testsuite/winsup.api/pthread/cleanup3.c deleted file mode 100644 index f8201faa0..000000000 --- a/winsup/testsuite/winsup.api/pthread/cleanup3.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - * File: cleanup3.c - * - * Test Synopsis: Test cleanup handler does not execute (when thread is - * not canceled). - * - * Test Method (Validation or Falsification): - * - - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - have working pthread_create, pthread_self, pthread_mutex_lock/unlock - * pthread_testcancel, pthread_cancel, pthread_join - * - * Pass Criteria: - * - Process returns zero exit status. - * - * Fail Criteria: - * - Process returns non-zero exit status. - */ - -#include "test.h" - -/* - * Create NUMTHREADS threads in addition to the Main thread. - */ -enum { - NUMTHREADS = 10 -}; - -typedef struct bag_t_ bag_t; -struct bag_t_ { - int threadnum; - int started; - /* Add more per-thread state variables here */ - int count; -}; - -static bag_t threadbag[NUMTHREADS + 1]; - -static int pop_count = 0; - -static void -increment_pop_count(void * arg) -{ - int * c = (int *) arg; - - (*c)++; -} - -void * -mythread(void * arg) -{ - int result = 0; - bag_t * bag = (bag_t *) arg; - - assert(bag == &threadbag[bag->threadnum]); - assert(bag->started == 0); - bag->started = 1; - - pthread_cleanup_push(increment_pop_count, (void *) &pop_count); - - sched_yield(); - - pop_count--; - - pthread_cleanup_pop(0); - - return (void *) result; -} - -int -main() -{ - int failed = 0; - int i; - pthread_t t[NUMTHREADS + 1]; - - assert((t[0] = pthread_self()) != NULL); - - for (i = 1; i <= NUMTHREADS; i++) - { - threadbag[i].started = 0; - threadbag[i].threadnum = i; - assert(pthread_create(&t[i], NULL, mythread, (void *) &threadbag[i]) == 0); - } - - /* - * Code to control or munipulate child threads should probably go here. - */ - Sleep(1000); - - /* - * Standard check that all threads started. - */ - for (i = 1; i <= NUMTHREADS; i++) - { - if (!threadbag[i].started) - { - failed |= !threadbag[i].started; - fprintf(stderr, "Thread %d: started %d\n", i, threadbag[i].started); - } - } - - assert(!failed); - - /* - * Check any results here. Set "failed" and only print output on failure. - */ - failed = 0; - for (i = 1; i <= NUMTHREADS; i++) - { - int fail = 0; - int result = 0; - - assert(pthread_join(t[i], (void **) &result) == 0); - - fail = (result != 0); - - if (fail) - { - fprintf(stderr, "Thread %d: started %d: result: %d\n", - i, - threadbag[i].started, - result); - } - failed = (failed || fail); - } - - assert(!failed); - - assert(pop_count == -(NUMTHREADS)); - - /* - * Success. - */ - return 0; -} - diff --git a/winsup/testsuite/winsup.api/pthread/condvar1.c b/winsup/testsuite/winsup.api/pthread/condvar1.c deleted file mode 100644 index daa0f420e..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar1.c +++ /dev/null @@ -1,65 +0,0 @@ -/* - * File: condvar1.c - * - * Test Synopsis: - * - Test initialisation and destruction of a CV. - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - Creates and then imediately destroys a CV. Does not - * test the CV. - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - pthread_cond_init returns 0, and - * - pthread_cond_destroy returns 0. - * - Process returns zero exit status. - * - * Fail Criteria: - * - pthread_cond_init returns non-zero, or - * - pthread_cond_destroy returns non-zero. - * - Process returns non-zero exit status. - */ - -#include "test.h" - -static pthread_cond_t cv = NULL; - -int -main() -{ - assert(cv == NULL); - - assert(pthread_cond_init(&cv, NULL) == 0); - - assert(cv != NULL); - - assert(pthread_cond_destroy(&cv) == 0); - - assert(cv == NULL); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/condvar2.c b/winsup/testsuite/winsup.api/pthread/condvar2.c deleted file mode 100644 index 309f5dfdf..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar2.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * File: condvar2.c - * - * Test Synopsis: - * - Test timed wait on a CV. - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - Because the CV is never signaled, we expect the wait to time out. - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - pthread_cond_timedwait returns ETIMEDOUT. - * - Process returns zero exit status. - * - * Fail Criteria: - * - pthread_cond_timedwait does not return ETIMEDOUT. - * - Process returns non-zero exit status. - */ - -#include "test.h" -#include - -pthread_cond_t cv; -pthread_mutex_t mutex; - -int -main() -{ - struct timespec abstime = { 0, 0 }; - struct timeb currSysTime; - const DWORD NANOSEC_PER_MILLISEC = 1000000; - int result; - - assert(pthread_cond_init(&cv, NULL) == 0); - - assert(pthread_mutex_init(&mutex, NULL) == 0); - - assert(pthread_mutex_lock(&mutex) == 0); - - /* get current system time */ - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - abstime.tv_sec += 5; - - assert(pthread_cond_timedwait(&cv, &mutex, &abstime) == ETIMEDOUT); - - assert(pthread_mutex_unlock(&mutex) == 0); - - result = pthread_cond_destroy(&cv); - assert(result == 0); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/condvar2_1.c b/winsup/testsuite/winsup.api/pthread/condvar2_1.c deleted file mode 100644 index da3416203..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar2_1.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * File: condvar2_1.c - * - * Test Synopsis: - * - Test timeout of multiple waits on a CV with no signal/broadcast. - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - Because the CV is never signaled, we expect the waits to time out. - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - pthread_cond_timedwait returns ETIMEDOUT. - * - Process returns zero exit status. - * - * Fail Criteria: - * - pthread_cond_timedwait does not return ETIMEDOUT. - * - Process returns non-zero exit status. - */ - -#include "test.h" -#include - -static pthread_cond_t cv; -static pthread_mutex_t mutex; -static struct timespec abstime = { 0, 0 }; - -enum { - NUMTHREADS = 60 -}; - -void * -mythread(void * arg) -{ - assert(pthread_mutex_lock(&mutex) == 0); - - assert(pthread_cond_timedwait(&cv, &mutex, &abstime) == ETIMEDOUT); - - assert(pthread_mutex_unlock(&mutex) == 0); - - return arg; -} - -int -main() -{ - int i; - pthread_t t[NUMTHREADS + 1]; - int result = 0; - struct timeb currSysTime; - const DWORD NANOSEC_PER_MILLISEC = 1000000; - - assert(pthread_cond_init(&cv, NULL) == 0); - - assert(pthread_mutex_init(&mutex, NULL) == 0); - - /* get current system time */ - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - abstime.tv_sec += 5; - - assert(pthread_mutex_lock(&mutex) == 0); - - for (i = 1; i <= NUMTHREADS; i++) - { - assert(pthread_create(&t[i], NULL, mythread, (void *) i) == 0); - } - - assert(pthread_mutex_unlock(&mutex) == 0); - - for (i = 1; i <= NUMTHREADS; i++) - { - assert(pthread_join(t[i], (void **) &result) == 0); - assert(result == i); - } - - result = pthread_cond_destroy(&cv); - assert(result == 0); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/condvar3.c b/winsup/testsuite/winsup.api/pthread/condvar3.c deleted file mode 100644 index 249e260aa..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar3.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * File: condvar3.c - * - * Test Synopsis: - * - Test basic function of a CV - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - The primary thread takes the lock before creating any threads. - * The secondary thread blocks on the lock allowing the primary - * thread to enter the cv wait state which releases the lock. - * The secondary thread then takes the lock and signals the waiting - * primary thread. - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - pthread_cond_timedwait returns 0. - * - Process returns zero exit status. - * - * Fail Criteria: - * - pthread_cond_timedwait returns ETIMEDOUT. - * - Process returns non-zero exit status. - */ - -#include "test.h" -#include - -static pthread_cond_t cv; -static pthread_mutex_t mutex; -static int shared = 0; - -enum { - NUMTHREADS = 2 /* Including the primary thread. */ -}; - -void * -mythread(void * arg) -{ - int result = 0; - - assert(pthread_mutex_lock(&mutex) == 0); - - shared++; - - assert(pthread_mutex_unlock(&mutex) == 0); - - if ((result = pthread_cond_signal(&cv)) != 0) - { - printf("Error = %s\n", error_string[result]); - } - assert(result == 0); - - return (void *) 0; -} - -int -main() -{ - pthread_t t[NUMTHREADS]; - struct timespec abstime = { 0, 0 }; - struct timeb currSysTime; - const DWORD NANOSEC_PER_MILLISEC = 1000000; - - assert((t[0] = pthread_self()) != NULL); - - assert(pthread_cond_init(&cv, NULL) == 0); - - assert(pthread_mutex_init(&mutex, NULL) == 0); - - assert(pthread_mutex_lock(&mutex) == 0); - - /* get current system time */ - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - assert(pthread_create(&t[1], NULL, mythread, (void *) 1) == 0); - - abstime.tv_sec += 5; - - while (! (shared > 0)) - assert(pthread_cond_timedwait(&cv, &mutex, &abstime) == 0); - - assert(shared > 0); - - assert(pthread_mutex_unlock(&mutex) == 0); - - assert(pthread_cond_destroy(&cv) == 0); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/condvar3_1.c b/winsup/testsuite/winsup.api/pthread/condvar3_1.c deleted file mode 100644 index b08b04889..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar3_1.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - * File: condvar3_1.c - * - * Test Synopsis: - * - Test timeout of multiple waits on a CV with some signaled. - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - Because some CVs are never signaled, we expect their waits to time out. - * Some are signaled, the rest time out. Pthread_cond_destroy() will fail - * unless all are accounted for, either signaled or timedout. - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - pthread_cond_timedwait returns ETIMEDOUT. - * - Process returns zero exit status. - * - * Fail Criteria: - * - pthread_cond_timedwait does not return ETIMEDOUT. - * - Process returns non-zero exit status. - */ - -#include "test.h" -#include - -static pthread_cond_t cv; -static pthread_cond_t cv1; -static pthread_mutex_t mutex; -static struct timespec abstime = { 0, 0 }; -static int timedout = 0; -static int signaled = 0; -static int awoken = 0; -static int waiting = 0; - -enum { - NUMTHREADS = 60 -}; - -void * -mythread(void * arg) -{ - int result; - - assert(pthread_mutex_lock(&mutex) == 0); - - if ( ++waiting == NUMTHREADS) - assert(pthread_cond_signal(&cv1) == 0); - - result = pthread_cond_timedwait(&cv, &mutex, &abstime); - if (result == ETIMEDOUT) - { - timedout++; - } - else - { - awoken++; - } - - assert(pthread_mutex_unlock(&mutex) == 0); - - return arg; -} - -int -main() -{ - int i; - pthread_t t[NUMTHREADS + 1]; - int result = 0; - struct timeb currSysTime; - const DWORD NANOSEC_PER_MILLISEC = 1000000; - - assert(pthread_cond_init(&cv, NULL) == 0); - assert(pthread_cond_init(&cv1, NULL) == 0); - - assert(pthread_mutex_init(&mutex, NULL) == 0); - - /* get current system time */ - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - abstime.tv_sec += 5; - - assert(pthread_mutex_lock(&mutex) == 0); - - for (i = 1; i <= NUMTHREADS; i++) - { - assert(pthread_create(&t[i], NULL, mythread, (void *) i) == 0); - } - - do { - assert(pthread_cond_wait(&cv1,&mutex) == 0); - } while ( NUMTHREADS != waiting ); - - assert(pthread_mutex_unlock(&mutex) == 0); - - for (i = NUMTHREADS/3; i <= 2*NUMTHREADS/3; i++) - { - assert(pthread_cond_signal(&cv) == 0); - signaled++; - } - - for (i = 1; i <= NUMTHREADS; i++) - { - assert(pthread_join(t[i], (void **) &result) == 0); - assert(result == i); - } - - printf("awk = %d\n", awoken); - printf("sig = %d\n", signaled); - printf("tot = %d\n", timedout); - - assert(signaled == awoken); - assert(timedout == NUMTHREADS - signaled); - - result = pthread_cond_destroy(&cv); - assert(result == 0); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/condvar3_2.c b/winsup/testsuite/winsup.api/pthread/condvar3_2.c deleted file mode 100644 index 57e7eb439..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar3_2.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * File: condvar3_2.c - * - * Test Synopsis: - * - Test timeout of multiple waits on a CV with remainder broadcast awoken. - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - Because some CVs are never signaled, we expect their waits to time out. - * Some time out, the rest are broadcast signaled. Pthread_cond_destroy() will fail - * unless all are accounted for, either signaled or timedout. - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - pthread_cond_timedwait returns ETIMEDOUT. - * - Process returns zero exit status. - * - * Fail Criteria: - * - pthread_cond_timedwait does not return ETIMEDOUT. - * - Process returns non-zero exit status. - */ - -#include "test.h" -#include - -static pthread_cond_t cv; -static pthread_mutex_t mutex; -static struct timespec abstime = { 0, 0 }; -static struct timespec abstime2 = { 0, 0 }; -static int timedout = 0; -static int awoken = 0; - -enum { - NUMTHREADS = 60 -}; - -void * -mythread(void * arg) -{ - int result; - - assert(pthread_mutex_lock(&mutex) == 0); - - abstime2.tv_sec = abstime.tv_sec; - - if ((int) arg % 3 == 0) - { - abstime2.tv_sec += 2; - } - - result = pthread_cond_timedwait(&cv, &mutex, &abstime2); - if (result == ETIMEDOUT) - { - timedout++; - } - else - { - awoken++; - } - - assert(pthread_mutex_unlock(&mutex) == 0); - - return arg; -} - -int -main() -{ - int i; - pthread_t t[NUMTHREADS + 1]; - int result = 0; - struct timeb currSysTime; - const DWORD NANOSEC_PER_MILLISEC = 1000000; - - assert(pthread_cond_init(&cv, NULL) == 0); - - assert(pthread_mutex_init(&mutex, NULL) == 0); - - /* get current system time */ - ftime(&currSysTime); - - abstime.tv_sec = abstime.tv_sec = currSysTime.time + 5; - abstime.tv_nsec = abstime2.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - assert(pthread_mutex_lock(&mutex) == 0); - - for (i = 1; i <= NUMTHREADS; i++) - { - assert(pthread_create(&t[i], NULL, mythread, (void *) i) == 0); - } - - assert(pthread_mutex_unlock(&mutex) == 0); - - for (i = 1; i <= NUMTHREADS; i++) - { - assert(pthread_join(t[i], (void **) &result) == 0); - assert(result == i); - /* - * Approximately 2/3rds of the threads are expected to time out. - * Signal the remainder after some threads have woken up and exited - * and while some are still waking up after timeout. - * Also tests that redundant broadcasts don't return errors. - */ - if (awoken > NUMTHREADS/3) - { - assert(pthread_cond_broadcast(&cv) == 0); - } - } - - assert(awoken == NUMTHREADS - timedout); - - result = pthread_cond_destroy(&cv); - assert(result == 0); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/condvar3_3.c b/winsup/testsuite/winsup.api/pthread/condvar3_3.c deleted file mode 100644 index f6bcca9fa..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar3_3.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * File: condvar3_3.c - * - * Test Synopsis: - * - Test timeouts and lost signals on a CV. - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - pthread_cond_timedwait returns ETIMEDOUT. - * - Process returns zero exit status. - * - * Fail Criteria: - * - pthread_cond_timedwait does not return ETIMEDOUT. - * - Process returns non-zero exit status. - */ - -/* Timur Aydin (taydin@snet.net) */ - -#include "test.h" - -#include - -pthread_cond_t cnd; -pthread_mutex_t mtx; - -int main() -{ - int rc; - - struct timespec abstime = { 0, 0 }; - struct timeb currSysTime; - const DWORD NANOSEC_PER_MILLISEC = 1000000; - - assert(pthread_cond_init(&cnd, 0) == 0); - assert(pthread_mutex_init(&mtx, 0) == 0); - - /* get current system time */ - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - abstime.tv_sec += 1; - - /* Here pthread_cond_timedwait should time out after one second. */ - - assert(pthread_mutex_lock(&mtx) == 0); - - assert((rc = pthread_cond_timedwait(&cnd, &mtx, &abstime)) == ETIMEDOUT); - - assert(pthread_mutex_unlock(&mtx) == 0); - - /* Here, the condition variable is signaled, but there are no - threads waiting on it. The signal should be lost and - the next pthread_cond_timedwait should time out too. */ - - assert(pthread_mutex_lock(&mtx) == 0); - - assert((rc = pthread_cond_signal(&cnd)) == 0); - - assert(pthread_mutex_unlock(&mtx) == 0); - - assert(pthread_mutex_lock(&mtx) == 0); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - abstime.tv_sec += 1; - - assert((rc = pthread_cond_timedwait(&cnd, &mtx, &abstime)) == ETIMEDOUT); - - assert(pthread_mutex_unlock(&mtx) == 0); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/condvar4.c b/winsup/testsuite/winsup.api/pthread/condvar4.c deleted file mode 100644 index 7a2007a4a..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar4.c +++ /dev/null @@ -1,137 +0,0 @@ -/* - * File: condvar4.c - * - * Test Synopsis: - * - Test PTHREAD_COND_INITIALIZER. - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - Test basic CV function but starting with a static initialised - * CV. - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - pthread_cond_timedwait returns 0. - * - Process returns zero exit status. - * - * Fail Criteria: - * - pthread_cond_timedwait returns ETIMEDOUT. - * - Process returns non-zero exit status. - */ - -#include "test.h" -#include - -typedef struct cvthing_t_ cvthing_t; - -struct cvthing_t_ { - pthread_cond_t notbusy; - pthread_mutex_t lock; - int shared; -}; - -static cvthing_t cvthing = { - PTHREAD_COND_INITIALIZER, - PTHREAD_MUTEX_INITIALIZER, - 0 -}; - -enum { - NUMTHREADS = 2 -}; - -void * -mythread(void * arg) -{ - assert(pthread_mutex_lock(&cvthing.lock) == 0); - - cvthing.shared++; - - assert(pthread_mutex_unlock(&cvthing.lock) == 0); - - assert(pthread_cond_signal(&cvthing.notbusy) == 0); - - return (void *) 0; -} - -int -main() -{ - pthread_t t[NUMTHREADS]; - struct timespec abstime = { 0, 0 }; - struct timeb currSysTime; - const DWORD NANOSEC_PER_MILLISEC = 1000000; - - cvthing.shared = 0; - - assert((t[0] = pthread_self()) != NULL); - - assert(cvthing.notbusy == PTHREAD_COND_INITIALIZER); - - assert(cvthing.lock == PTHREAD_MUTEX_INITIALIZER); - - assert(pthread_mutex_lock(&cvthing.lock) == 0); - - assert(cvthing.lock != PTHREAD_MUTEX_INITIALIZER); - - /* get current system time */ - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - abstime.tv_sec += 5; - - assert(pthread_cond_timedwait(&cvthing.notbusy, &cvthing.lock, &abstime) == ETIMEDOUT); - - assert(cvthing.notbusy != PTHREAD_COND_INITIALIZER); - - assert(pthread_create(&t[1], NULL, mythread, (void *) 1) == 0); - - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - abstime.tv_sec += 5; - - while (! (cvthing.shared > 0)) - assert(pthread_cond_timedwait(&cvthing.notbusy, &cvthing.lock, &abstime) == 0); - - assert(cvthing.shared > 0); - - assert(pthread_mutex_unlock(&cvthing.lock) == 0); - - assert(pthread_mutex_destroy(&cvthing.lock) == 0); - - assert(cvthing.lock == NULL); - - assert(pthread_cond_destroy(&cvthing.notbusy) == 0); - - assert(cvthing.notbusy == NULL); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/condvar5.c b/winsup/testsuite/winsup.api/pthread/condvar5.c deleted file mode 100644 index b493ab136..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar5.c +++ /dev/null @@ -1,136 +0,0 @@ -/* - * File: condvar5.c - * - * Test Synopsis: - * - Test pthread_cond_broadcast. - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - Test broadcast with one waiting CV. - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - pthread_cond_timedwait returns 0. - * - Process returns zero exit status. - * - * Fail Criteria: - * - pthread_cond_timedwait returns ETIMEDOUT. - * - Process returns non-zero exit status. - */ - -#include "test.h" -#include - -typedef struct cvthing_t_ cvthing_t; - -struct cvthing_t_ { - pthread_cond_t notbusy; - pthread_mutex_t lock; - int shared; -}; - -static cvthing_t cvthing = { - PTHREAD_COND_INITIALIZER, - PTHREAD_MUTEX_INITIALIZER, - 0 -}; - -enum { - NUMTHREADS = 2 -}; - -void * -mythread(void * arg) -{ - assert(pthread_mutex_lock(&cvthing.lock) == 0); - - cvthing.shared++; - - assert(pthread_mutex_unlock(&cvthing.lock) == 0); - - assert(pthread_cond_broadcast(&cvthing.notbusy) == 0); - - return (void *) 0; -} - -int -main() -{ - pthread_t t[NUMTHREADS]; - struct timespec abstime = { 0, 0 }; - struct timeb currSysTime; - const DWORD NANOSEC_PER_MILLISEC = 1000000; - - cvthing.shared = 0; - - assert((t[0] = pthread_self()) != NULL); - - assert(cvthing.notbusy == PTHREAD_COND_INITIALIZER); - - assert(cvthing.lock == PTHREAD_MUTEX_INITIALIZER); - - assert(pthread_mutex_lock(&cvthing.lock) == 0); - - assert(cvthing.lock != PTHREAD_MUTEX_INITIALIZER); - - /* get current system time */ - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - abstime.tv_sec += 5; - - assert(pthread_cond_timedwait(&cvthing.notbusy, &cvthing.lock, &abstime) == ETIMEDOUT); - - assert(cvthing.notbusy != PTHREAD_COND_INITIALIZER); - - assert(pthread_create(&t[1], NULL, mythread, (void *) 1) == 0); - - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - abstime.tv_sec += 5; - - while (! (cvthing.shared > 0)) - assert(pthread_cond_timedwait(&cvthing.notbusy, &cvthing.lock, &abstime) == 0); - - assert(cvthing.shared > 0); - - assert(pthread_mutex_unlock(&cvthing.lock) == 0); - - assert(pthread_mutex_destroy(&cvthing.lock) == 0); - - assert(cvthing.lock == NULL); - - assert(pthread_cond_destroy(&cvthing.notbusy) == 0); - - assert(cvthing.notbusy == NULL); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/condvar6.c b/winsup/testsuite/winsup.api/pthread/condvar6.c deleted file mode 100644 index f011bea13..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar6.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * File: - * - * Test Synopsis: - * - Test pthread_cond_broadcast. - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - Test broadcast with NUMTHREADS (=5) waiting CVs. - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - Process returns zero exit status. - * - * Fail Criteria: - * - Process returns non-zero exit status. - */ - -#include "test.h" -#include - -/* - * Create NUMTHREADS threads in addition to the Main thread. - */ -enum { - NUMTHREADS = 5 -}; - -typedef struct bag_t_ bag_t; -struct bag_t_ { - int threadnum; - int started; - /* Add more per-thread state variables here */ -}; - -static bag_t threadbag[NUMTHREADS + 1]; - -typedef struct cvthing_t_ cvthing_t; - -struct cvthing_t_ { - pthread_cond_t notbusy; - pthread_mutex_t lock; - int shared; -}; - -static cvthing_t cvthing = { - PTHREAD_COND_INITIALIZER, - PTHREAD_MUTEX_INITIALIZER, - 0 -}; - -static pthread_mutex_t start_flag = PTHREAD_MUTEX_INITIALIZER; - -static struct timespec abstime = { 0, 0 }; - -static int awoken; - -void * -mythread(void * arg) -{ - bag_t * bag = (bag_t *) arg; - - assert(bag == &threadbag[bag->threadnum]); - assert(bag->started == 0); - bag->started = 1; - - /* Wait for the start gun */ - assert(pthread_mutex_lock(&start_flag) == 0); - assert(pthread_mutex_unlock(&start_flag) == 0); - - assert(pthread_mutex_lock(&cvthing.lock) == 0); - - while (! (cvthing.shared > 0)) - assert(pthread_cond_timedwait(&cvthing.notbusy, &cvthing.lock, &abstime) == 0); - - assert(cvthing.shared > 0); - - awoken++; - - assert(pthread_mutex_unlock(&cvthing.lock) == 0); - - return (void *) 0; -} - -int -main() -{ - int failed = 0; - int i; - pthread_t t[NUMTHREADS + 1]; - - struct timeb currSysTime; - const DWORD NANOSEC_PER_MILLISEC = 1000000; - - cvthing.shared = 0; - - assert((t[0] = pthread_self()) != NULL); - - assert(cvthing.notbusy == PTHREAD_COND_INITIALIZER); - - assert(cvthing.lock == PTHREAD_MUTEX_INITIALIZER); - - assert(pthread_mutex_lock(&start_flag) == 0); - - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - abstime.tv_sec += 5; - - assert((t[0] = pthread_self()) != NULL); - - awoken = 0; - - for (i = 1; i <= NUMTHREADS; i++) - { - threadbag[i].started = 0; - threadbag[i].threadnum = i; - assert(pthread_create(&t[i], NULL, mythread, (void *) &threadbag[i]) == 0); - } - - /* - * Code to control or munipulate child threads should probably go here. - */ - - assert(pthread_mutex_unlock(&start_flag) == 0); - - /* - * Give threads time to start. - */ - Sleep(2000); - - assert(pthread_mutex_lock(&cvthing.lock) == 0); - - cvthing.shared++; - - assert(pthread_mutex_unlock(&cvthing.lock) == 0); - - assert(pthread_cond_broadcast(&cvthing.notbusy) == 0); - - /* - * Give threads time to complete. - */ - Sleep(2000); - - /* - * Cleanup the CV. - */ - - assert(pthread_mutex_destroy(&cvthing.lock) == 0); - - assert(cvthing.lock == NULL); - - assert(pthread_cond_destroy(&cvthing.notbusy) == 0); - - assert(cvthing.notbusy == NULL); - - /* - * Standard check that all threads started. - */ - for (i = 1; i <= NUMTHREADS; i++) - { - failed = !threadbag[i].started; - - if (failed) - { - fprintf(stderr, "Thread %d: started %d\n", i, threadbag[i].started); - } - } - - assert(!failed); - - /* - * Check any results here. - */ - - assert(awoken == NUMTHREADS); - - /* - * Success. - */ - return 0; -} - - diff --git a/winsup/testsuite/winsup.api/pthread/condvar8.c b/winsup/testsuite/winsup.api/pthread/condvar8.c deleted file mode 100644 index 771d91cb5..000000000 --- a/winsup/testsuite/winsup.api/pthread/condvar8.c +++ /dev/null @@ -1,221 +0,0 @@ -/* - * File: condvar8.c - * - * Test Synopsis: - * - Test multiple pthread_cond_broadcasts. - * - * Test Method (Validation or Falsification): - * - Validation - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - Make NUMTHREADS threads wait on CV, broadcast signal them, and then repeat. - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - Process returns zero exit status. - * - * Fail Criteria: - * - Process returns non-zero exit status. - */ - -#include "test.h" -#include - -/* - * Create NUMTHREADS threads in addition to the Main thread. - */ -enum { - NUMTHREADS = 5 -}; - -typedef struct bag_t_ bag_t; -struct bag_t_ { - int threadnum; - int started; - /* Add more per-thread state variables here */ -}; - -static bag_t threadbag[NUMTHREADS + 1]; - -typedef struct cvthing_t_ cvthing_t; - -struct cvthing_t_ { - pthread_cond_t notbusy; - pthread_mutex_t lock; - int shared; -}; - -static cvthing_t cvthing = { - PTHREAD_COND_INITIALIZER, - PTHREAD_MUTEX_INITIALIZER, - 0 -}; - -static pthread_mutex_t start_flag = PTHREAD_MUTEX_INITIALIZER; - -static struct timespec abstime = { 0, 0 }; - -static int awoken; - -static void * -mythread(void * arg) -{ - bag_t * bag = (bag_t *) arg; - - assert(bag == &threadbag[bag->threadnum]); - assert(bag->started == 0); - bag->started = 1; - - /* Wait for the start gun */ - assert(pthread_mutex_lock(&start_flag) == 0); - assert(pthread_mutex_unlock(&start_flag) == 0); - - assert(pthread_mutex_lock(&cvthing.lock) == 0); - - pthread_cleanup_push((__cleanup_routine_type)pthread_mutex_unlock, - (void *) &cvthing.lock); - - while (! (cvthing.shared > 0)) - assert(pthread_cond_timedwait(&cvthing.notbusy, &cvthing.lock, &abstime) == 0); - - pthread_cleanup_pop(0); - - assert(cvthing.shared > 0); - - awoken++; - - assert(pthread_mutex_unlock(&cvthing.lock) == 0); - - return (void *) 0; -} - -int -main() -{ - int failed = 0; - int i; - int first, last; - pthread_t t[NUMTHREADS + 1]; - - struct timeb currSysTime; - const DWORD NANOSEC_PER_MILLISEC = 1000000; - - assert((t[0] = pthread_self()) != NULL); - - assert(cvthing.notbusy == PTHREAD_COND_INITIALIZER); - - assert(cvthing.lock == PTHREAD_MUTEX_INITIALIZER); - - ftime(&currSysTime); - - abstime.tv_sec = currSysTime.time; - abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm; - - abstime.tv_sec += 10; - - assert((t[0] = pthread_self()) != NULL); - - awoken = 0; - - for (first = 1, last = NUMTHREADS / 2; - first < NUMTHREADS; - first = last + 1, last = NUMTHREADS) - { - assert(pthread_mutex_lock(&start_flag) == 0); - - for (i = first; i <= last; i++) - { - threadbag[i].started = 0; - threadbag[i].threadnum = i; - assert(pthread_create(&t[i], NULL, mythread, (void *) &threadbag[i]) == 0); - assert(pthread_detach(t[i]) == 0); - } - - /* - * Code to control or munipulate child threads should probably go here. - */ - cvthing.shared = 0; - - assert(pthread_mutex_unlock(&start_flag) == 0); - - /* - * Give threads time to start. - */ - Sleep(1000); - - assert(pthread_mutex_lock(&cvthing.lock) == 0); - - cvthing.shared++; - - assert(pthread_mutex_unlock(&cvthing.lock) == 0); - - assert(pthread_cond_broadcast(&cvthing.notbusy) == 0); - - /* - * Give threads time to complete. - */ - Sleep(1000); - - assert(awoken == (i - 1)); - } - - - /* - * Standard check that all threads started. - */ - for (i = 1; i <= NUMTHREADS; i++) - { - failed = !threadbag[i].started; - - if (failed) - { - fprintf(stderr, "Thread %d: started %d\n", i, threadbag[i].started); - } - } - - /* - * Cleanup the CV. - */ - - assert(pthread_mutex_destroy(&cvthing.lock) == 0); - - assert(cvthing.lock == NULL); - - assert(pthread_cond_destroy(&cvthing.notbusy) == 0); - - assert(cvthing.notbusy == NULL); - - assert(!failed); - - /* - * Check any results here. - */ - - assert(awoken == NUMTHREADS); - - /* - * Success. - */ - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/count1.c b/winsup/testsuite/winsup.api/pthread/count1.c deleted file mode 100644 index ae30ed0a2..000000000 --- a/winsup/testsuite/winsup.api/pthread/count1.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * count1.c - * - * Description: - * Test some basic assertions about the number of threads at runtime. - */ - -#include "test.h" - -#if ! defined (__MINGW32__) || defined (__MSVCRT__) -#define NUMTHREADS (60) -#else -#define NUMTHREADS (59) -#endif - -static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; -static pthread_t threads[NUMTHREADS]; -static unsigned numThreads = 0; - -void * -myfunc(void *arg) -{ - pthread_mutex_lock(&lock); - numThreads++; - pthread_mutex_unlock(&lock); - - Sleep(1000); - return 0; -} -int -main() -{ - int i; - int maxThreads = sizeof(threads) / sizeof(pthread_t); - - /* - * Spawn NUMTHREADS threads. Each thread should increment the - * numThreads variable, sleep for one second. - */ - for (i = 0; i < maxThreads; i++) - { - assert(pthread_create(&threads[i], NULL, myfunc, 0) == 0); - } - - /* - * Wait for all the threads to exit. - */ - for (i = 0; i < maxThreads; i++) - { - assert(pthread_join(threads[i], NULL) == 0); - } - - /* - * Check the number of threads created. - */ - assert((int) numThreads == maxThreads); - - /* - * Success. - */ - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/create1.c b/winsup/testsuite/winsup.api/pthread/create1.c deleted file mode 100644 index 192e52d9d..000000000 --- a/winsup/testsuite/winsup.api/pthread/create1.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * create1.c - * - * Description: - * Create a thread and check that it ran. - * - * Depends on API functions: None. - */ - -#include "test.h" - -static int washere = 0; - -void * func(void * arg) -{ - washere = 1; - return 0; -} - -int -main() -{ - pthread_t t; - - assert(pthread_create(&t, NULL, func, NULL) == 0); - - /* A dirty hack, but we cannot rely on pthread_join in this - primitive test. */ - Sleep(2000); - - assert(washere == 1); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/create2.c b/winsup/testsuite/winsup.api/pthread/create2.c deleted file mode 100644 index 40e637b9d..000000000 --- a/winsup/testsuite/winsup.api/pthread/create2.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * File: create2.c - * - * Test Synopsis: - * - Test that threads have a Win32 handle when started. - * - * Test Method (Validation or Falsification): - * - Statistical, not absolute (depends on sample size). - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - Process returns zero exit status. - * - * Fail Criteria: - * - Process returns non-zero exit status. - */ - -#include "test.h" - -const int NUMTHREADS = 10000; - -static int washere = 0; - -void * func(void * arg) -{ - washere = 1; - return (void *) 0; -} - -int -main() -{ - pthread_t t; - pthread_attr_t attr; - void * result = NULL; - int i; - - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); - - for (i = 0; i < NUMTHREADS; i++) - { - washere = 0; - assert(pthread_create(&t, &attr, func, NULL) == 0); - pthread_join(t, &result); - assert(washere == 1); - } - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/equal1.c b/winsup/testsuite/winsup.api/pthread/equal1.c deleted file mode 100644 index 617a95664..000000000 --- a/winsup/testsuite/winsup.api/pthread/equal1.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Test for pthread_equal. - * - * Depends on functions: pthread_create(). - */ - -#include "test.h" - -void * func(void * arg) -{ - Sleep(2000); - return 0; -} - -int -main() -{ - pthread_t t1, t2; - - assert(pthread_create(&t1, NULL, func, (void *) 1) == 0); - - assert(pthread_create(&t2, NULL, func, (void *) 2) == 0); - - assert(pthread_equal(t1, t2) == 0); - - assert(pthread_equal(t1,t1) != 0); - - /* This is a hack. We don't want to rely on pthread_join - yet if we can help it. */ - Sleep(4000); - - /* Success. */ - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/exit1.c b/winsup/testsuite/winsup.api/pthread/exit1.c deleted file mode 100644 index 06b7692de..000000000 --- a/winsup/testsuite/winsup.api/pthread/exit1.c +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Test for pthread_exit(). - * - * Depends on API functions: None. - */ - -#include "test.h" - -int -main(int argc, char * argv[]) -{ - /* A simple test first. */ - pthread_exit((void *) 0); - - /* Not reached */ - assert(0); - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/exit2.c b/winsup/testsuite/winsup.api/pthread/exit2.c deleted file mode 100644 index 684305b40..000000000 --- a/winsup/testsuite/winsup.api/pthread/exit2.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Test for pthread_exit(). - * - * Depends on API functions: - * pthread_create() - * pthread_exit() - */ - -#include "test.h" - -void * -func(void * arg) -{ - pthread_exit(arg); - - /* Never reached. */ - assert(0); -} - -int -main(int argc, char * argv[]) -{ - pthread_t t; - - assert(pthread_create(&t, NULL, func, (void *) NULL) == 0); - - Sleep(1000); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/exit3.c b/winsup/testsuite/winsup.api/pthread/exit3.c deleted file mode 100644 index 0b6ec31c5..000000000 --- a/winsup/testsuite/winsup.api/pthread/exit3.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Test for pthread_exit(). - * - * Depends on API functions: pthread_create(). - */ - -#include "test.h" - -void * -func(void * arg) -{ - pthread_exit(arg); - - /* Never reached. */ - assert(0); -} - -int -main(int argc, char * argv[]) -{ - pthread_t id[4]; - int i; - - /* Create a few threads and then exit. */ - for (i = 0; i < 4; i++) - { - assert(pthread_create(&id[i], NULL, func, (void *) i) == 0); - } - - Sleep(1000); - - /* Success. */ - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/inherit1.c b/winsup/testsuite/winsup.api/pthread/inherit1.c deleted file mode 100644 index a909eb763..000000000 --- a/winsup/testsuite/winsup.api/pthread/inherit1.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * File: inherit1.c - * - * Test Synopsis: - * - Test thread priority inheritance. - * - * Test Method (Validation or Falsification): - * - - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - Process returns zero exit status. - * - * Fail Criteria: - * - Process returns non-zero exit status. - */ - -#include "test.h" - -void * func(void * arg) -{ - int policy; - struct sched_param param; - - assert(pthread_getschedparam(pthread_self(), &policy, ¶m) == 0); - return (void *) param.sched_priority; -} - -int -main() -{ - pthread_t t; - pthread_t mainThread = pthread_self(); - pthread_attr_t attr; - void * result = NULL; - struct sched_param param; - struct sched_param mainParam; - int maxPrio; - int minPrio; - int prio; - int policy; - int inheritsched = -1; - - assert((maxPrio = sched_get_priority_max(SCHED_OTHER)) != -1); - assert((minPrio = sched_get_priority_min(SCHED_OTHER)) != -1); - - assert(pthread_attr_init(&attr) == 0); - assert(pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED) == 0); - assert(pthread_attr_getinheritsched(&attr, &inheritsched) == 0); - assert(inheritsched == PTHREAD_INHERIT_SCHED); - - for (prio = minPrio; prio < maxPrio; prio++) - { - mainParam.sched_priority = prio; - - /* Change the main thread priority */ - assert(pthread_setschedparam(mainThread, SCHED_OTHER, &mainParam) == 0); - assert(pthread_getschedparam(mainThread, &policy, &mainParam) == 0); - assert(policy == SCHED_OTHER); - assert(mainParam.sched_priority == prio); - - for (param.sched_priority = prio; - param.sched_priority <= maxPrio; - param.sched_priority++) - { - /* The new thread create should ignore this new priority */ - assert(pthread_attr_setschedparam(&attr, ¶m) == 0); - assert(pthread_create(&t, &attr, func, NULL) == 0); - pthread_join(t, &result); - assert((int) result == mainParam.sched_priority); - } - } - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/join0.c b/winsup/testsuite/winsup.api/pthread/join0.c deleted file mode 100644 index 54b0bee6b..000000000 --- a/winsup/testsuite/winsup.api/pthread/join0.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Test for pthread_join(). - * - * Depends on API functions: pthread_create(), pthread_exit(). - */ - -#include "test.h" - -void * -func(void * arg) -{ - Sleep(2000); - - pthread_exit(arg); - - /* Never reached. */ - exit(1); -} - -int -main(int argc, char * argv[]) -{ - pthread_t id; - int result; - - /* Create a single thread and wait for it to exit. */ - assert(pthread_create(&id, NULL, func, (void *) 123) == 0); - - assert(pthread_join(id, (void **) &result) == 0); - -#if ! defined (__MINGW32__) || defined (__MSVCRT__) - assert(result == 123); -#else -# warning pthread_join not fully supported in this configuration. - assert(result == 0); -#endif - - /* Success. */ - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/join1.c b/winsup/testsuite/winsup.api/pthread/join1.c deleted file mode 100644 index d74e0c484..000000000 --- a/winsup/testsuite/winsup.api/pthread/join1.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Test for pthread_join(). - * - * Depends on API functions: pthread_create(), pthread_join(), pthread_exit(). - */ - -#include "test.h" - -void * -func(void * arg) -{ - int i = (int) arg; - - Sleep(i * 500); - - pthread_exit(arg); - - /* Never reached. */ - exit(1); -} - -int -main(int argc, char * argv[]) -{ - pthread_t id[4]; - int i; - int result; - - /* Create a few threads and then exit. */ - for (i = 0; i < 4; i++) - { - assert(pthread_create(&id[i], NULL, func, (void *) i) == 0); - } - - /* Some threads will finish before they are joined, some after. */ - Sleep(1000); - - for (i = 0; i < 4; i++) - { - assert(pthread_join(id[i], (void **) &result) == 0); -#if ! defined (__MINGW32__) || defined (__MSVCRT__) - assert(result == i); -#else -# warning pthread_join not fully supported in this configuration. - assert(result == 0); -#endif - } - - /* Success. */ - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/join2.c b/winsup/testsuite/winsup.api/pthread/join2.c deleted file mode 100644 index cdc8ca2d9..000000000 --- a/winsup/testsuite/winsup.api/pthread/join2.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Test for pthread_join() returning return value from threads. - * - * Depends on API functions: pthread_create(). - */ - -#include "test.h" - -void * -func(void * arg) -{ - Sleep(1000); - return arg; -} - -int -main(int argc, char * argv[]) -{ - pthread_t id[4]; - int i; - int result; - - /* Create a few threads and then exit. */ - for (i = 0; i < 4; i++) - { - assert(pthread_create(&id[i], NULL, func, (void *) i) == 0); - } - - for (i = 0; i < 4; i++) - { - assert(pthread_join(id[i], (void **) &result) == 0); -#if ! defined (__MINGW32__) || defined (__MSVCRT__) - /* CRTDLL _beginthread doesn't support return value, so - the assertion is guaranteed to fail. */ - assert(result == i); -#endif - } - - /* Success. */ - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/mutex1.c b/winsup/testsuite/winsup.api/pthread/mutex1.c deleted file mode 100644 index b7f6b6f15..000000000 --- a/winsup/testsuite/winsup.api/pthread/mutex1.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * mutex1.c - * - * Create a simple mutex object, lock it, and then unlock it again. - * This is the simplest test of the pthread mutex family that we can do. - * - * Depends on API functions: - * pthread_mutex_init() - * pthread_mutex_lock() - * pthread_mutex_unlock() - * pthread_mutex_destroy() - */ - -#include "test.h" - -pthread_mutex_t mutex = NULL; - -int -main() -{ - assert(mutex == NULL); - - assert(pthread_mutex_init(&mutex, NULL) == 0); - - assert(mutex != NULL); - - assert(pthread_mutex_lock(&mutex) == 0); - - assert(pthread_mutex_unlock(&mutex) == 0); - - assert(pthread_mutex_destroy(&mutex) == 0); - - assert(mutex == NULL); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/mutex1r.c b/winsup/testsuite/winsup.api/pthread/mutex1r.c deleted file mode 100644 index b5131bb0e..000000000 --- a/winsup/testsuite/winsup.api/pthread/mutex1r.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * mutex1r.c - * - * As for mutex1.c but with type set to PTHREAD_MUTEX_RECURSIVE. - * - * Create a simple mutex object, lock it, unlock it, then destroy it. - * This is the simplest test of the pthread mutex family that we can do. - * - * Depends on API functions: - * pthread_mutexattr_settype() - * pthread_mutex_init() - * pthread_mutex_destroy() - */ - -#include "test.h" - -pthread_mutex_t mutex = NULL; -pthread_mutexattr_t mxAttr; - -int -main() -{ - assert(pthread_mutexattr_init(&mxAttr) == 0); - - assert(pthread_mutexattr_settype(&mxAttr, PTHREAD_MUTEX_RECURSIVE) == 0); - - assert(mutex == NULL); - - assert(pthread_mutex_init(&mutex, &mxAttr) == 0); - - assert(mutex != NULL); - - assert(pthread_mutex_lock(&mutex) == 0); - - assert(pthread_mutex_unlock(&mutex) == 0); - - assert(pthread_mutex_destroy(&mutex) == 0); - - assert(mutex == NULL); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/mutex2.c b/winsup/testsuite/winsup.api/pthread/mutex2.c deleted file mode 100644 index 731c47fab..000000000 --- a/winsup/testsuite/winsup.api/pthread/mutex2.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * mutex2.c - * - * Declare a static mutex object, lock it, - * and then unlock it again. - * - * Depends on API functions: - * pthread_mutex_lock() - * pthread_mutex_unlock() - */ - -#include "test.h" - -pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - -int -main() -{ - assert(mutex == PTHREAD_MUTEX_INITIALIZER); - - assert(pthread_mutex_lock(&mutex) == 0); - - assert(mutex != PTHREAD_MUTEX_INITIALIZER); - - assert(mutex != NULL); - - assert(pthread_mutex_unlock(&mutex) == 0); - - assert(pthread_mutex_destroy(&mutex) == 0); - - assert(mutex == NULL); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/mutex3.c b/winsup/testsuite/winsup.api/pthread/mutex3.c deleted file mode 100644 index 07e75b187..000000000 --- a/winsup/testsuite/winsup.api/pthread/mutex3.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * mutex3.c - * - * Declare a static mutex object, lock it, trylock it, - * and then unlock it again. - * - * Depends on API functions: - * pthread_mutex_lock() - * pthread_mutex_trylock() - * pthread_mutex_unlock() - */ - -#include "test.h" - -pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; - -static int washere = 0; - -void * func(void * arg) -{ - assert(pthread_mutex_trylock(&mutex1) == EBUSY); - - washere = 1; - - return 0; -} - -int -main() -{ - pthread_t t; - - assert(pthread_mutex_lock(&mutex1) == 0); - - assert(pthread_create(&t, NULL, func, NULL) == 0); - assert(pthread_join(t, NULL) == 0); - - assert(pthread_mutex_unlock(&mutex1) == 0); - - assert(washere == 1); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/mutex6r.c b/winsup/testsuite/winsup.api/pthread/mutex6r.c deleted file mode 100644 index 586cc841b..000000000 --- a/winsup/testsuite/winsup.api/pthread/mutex6r.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * mutex6r.c - * - * Tests PTHREAD_MUTEX_RECURSIVE mutex type. - * Thread locks mutex twice (recursive lock). - * Both locks and unlocks should succeed. - * - * Depends on API functions: - * pthread_create() - * pthread_join() - * pthread_mutexattr_init() - * pthread_mutexattr_destroy() - * pthread_mutexattr_settype() - * pthread_mutexattr_gettype() - * pthread_mutex_init() - * pthread_mutex_destroy() - * pthread_mutex_lock() - * pthread_mutex_unlock() - */ - -#include "test.h" - -static int lockCount = 0; - -static pthread_mutex_t mutex; -static pthread_mutexattr_t mxAttr; - -void * locker(void * arg) -{ - assert(pthread_mutex_lock(&mutex) == 0); - lockCount++; - assert(pthread_mutex_lock(&mutex) == 0); - lockCount++; - assert(pthread_mutex_unlock(&mutex) == 0); - assert(pthread_mutex_unlock(&mutex) == 0); - - return (void *) 555; -} - -int -main() -{ - pthread_t t; - int result = 0; - int mxType = -1; - - assert(pthread_mutexattr_init(&mxAttr) == 0); - assert(pthread_mutexattr_settype(&mxAttr, PTHREAD_MUTEX_RECURSIVE) == 0); - assert(pthread_mutexattr_gettype(&mxAttr, &mxType) == 0); - assert(mxType == PTHREAD_MUTEX_RECURSIVE); - - assert(pthread_mutex_init(&mutex, &mxAttr) == 0); - - assert(pthread_create(&t, NULL, locker, NULL) == 0); - - assert(pthread_join(t, (void **) &result) == 0); - assert(result == 555); - - assert(lockCount == 2); - - assert(pthread_mutex_destroy(&mutex) == 0); - assert(pthread_mutexattr_destroy(&mxAttr) == 0); - - exit(0); - - /* Never reached */ - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/once1.c b/winsup/testsuite/winsup.api/pthread/once1.c deleted file mode 100644 index 91dc03832..000000000 --- a/winsup/testsuite/winsup.api/pthread/once1.c +++ /dev/null @@ -1,45 +0,0 @@ -/* - * once1.c - * - * Create a static pthread_once and test that it calls myfunc once. - * - * Depends on API functions: - * pthread_once() - * pthread_create() - */ - -#include "test.h" - -pthread_once_t once = PTHREAD_ONCE_INIT; - -static int washere = 0; - -void -myfunc(void) -{ - washere++; -} - -void * -mythread(void * arg) -{ - assert(pthread_once(&once, myfunc) == 0); - - return 0; -} - -int -main() -{ - pthread_t t1, t2; - - assert(pthread_create(&t1, NULL, mythread, NULL) == 0); - - assert(pthread_create(&t2, NULL, mythread, NULL) == 0); - - Sleep(2000); - - assert(washere == 1); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/priority1.c b/winsup/testsuite/winsup.api/pthread/priority1.c deleted file mode 100644 index a31102895..000000000 --- a/winsup/testsuite/winsup.api/pthread/priority1.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * File: priority1.c - * - * Test Synopsis: - * - Test thread priority explicit setting using thread attribute. - * - * Test Method (Validation or Falsification): - * - - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - Process returns zero exit status. - * - * Fail Criteria: - * - Process returns non-zero exit status. - */ - -#include "test.h" - -void * func(void * arg) -{ - int policy; - struct sched_param param; - - assert(pthread_getschedparam(pthread_self(), &policy, ¶m) == 0); - assert(policy == SCHED_OTHER); - return (void *) param.sched_priority; -} - -int -main() -{ - pthread_t t; - pthread_attr_t attr; - void * result = NULL; - struct sched_param param; - int maxPrio = sched_get_priority_max(SCHED_OTHER); - int minPrio = sched_get_priority_min(SCHED_OTHER); - - assert(pthread_attr_init(&attr) == 0); - assert(pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED) == 0); - - for (param.sched_priority = minPrio; - param.sched_priority <= maxPrio; - param.sched_priority++) - { - assert(pthread_attr_setschedparam(&attr, ¶m) == 0); - assert(pthread_create(&t, &attr, func, NULL) == 0); - pthread_join(t, &result); - assert((int) result == param.sched_priority); - } - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/priority2.c b/winsup/testsuite/winsup.api/pthread/priority2.c deleted file mode 100644 index 4dcf3859f..000000000 --- a/winsup/testsuite/winsup.api/pthread/priority2.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * File: priority2.c - * - * Test Synopsis: - * - Test thread priority setting after creation. - * - * Test Method (Validation or Falsification): - * - - * - * Requirements Tested: - * - - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Description: - * - - * - * Environment: - * - - * - * Input: - * - None. - * - * Output: - * - File name, Line number, and failed expression on failure. - * - No output on success. - * - * Assumptions: - * - - * - * Pass Criteria: - * - Process returns zero exit status. - * - * Fail Criteria: - * - Process returns non-zero exit status. - */ - -#include "test.h" - -pthread_mutex_t startMx = PTHREAD_MUTEX_INITIALIZER; - -void * func(void * arg) -{ - int policy; - struct sched_param param; - - assert(pthread_mutex_lock(&startMx) == 0); - assert(pthread_getschedparam(pthread_self(), &policy, ¶m) == 0); - assert(pthread_mutex_unlock(&startMx) == 0); - assert(policy == SCHED_OTHER); - return (void *) param.sched_priority; -} - -int -main() -{ - pthread_t t; - void * result = NULL; - struct sched_param param; - int maxPrio = sched_get_priority_max(SCHED_OTHER); - int minPrio = sched_get_priority_min(SCHED_OTHER); - - for (param.sched_priority = minPrio; - param.sched_priority <= maxPrio; - param.sched_priority++) - { - assert(pthread_mutex_lock(&startMx) == 0); - assert(pthread_create(&t, NULL, func, NULL) == 0); - assert(pthread_setschedparam(t, SCHED_OTHER, ¶m) == 0); - assert(pthread_mutex_unlock(&startMx) == 0); - pthread_join(t, &result); - assert((int) result == param.sched_priority); - } - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/self1.c b/winsup/testsuite/winsup.api/pthread/self1.c deleted file mode 100644 index d46081830..000000000 --- a/winsup/testsuite/winsup.api/pthread/self1.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * self1.c - * - * Test for pthread_self(). - * - * Depends on API functions: - * pthread_self() - * - * Implicitly depends on: - * pthread_getspecific() - * pthread_setspecific() - */ - -#include "test.h" - -int -main(int argc, char * argv[]) -{ - /* - * This should always succeed unless the system has no - * resources (memory) left. - */ - assert(pthread_self() != NULL); - - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/self2.c b/winsup/testsuite/winsup.api/pthread/self2.c deleted file mode 100644 index 83339f101..000000000 --- a/winsup/testsuite/winsup.api/pthread/self2.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * self2.c - * - * Test for pthread_self(). - * - * Depends on API functions: - * pthread_create() - * pthread_self() - * - * Implicitly depends on: - * pthread_getspecific() - * pthread_setspecific() - */ - -#include "test.h" -#include - -static pthread_t me; - -void * -entry(void * arg) -{ - me = pthread_self(); - - return arg; -} - -int -main() -{ - pthread_t t; - - assert(pthread_create(&t, NULL, entry, NULL) == 0); - - Sleep(2000); - - /* - * Not much more we can do here but bytewise compare t with - * what pthread_self returned. - */ - assert(t == me); - assert(memcmp((const void *) t, (const void *) me, sizeof t) == 0); - - /* Success. */ - return 0; -} diff --git a/winsup/testsuite/winsup.api/pthread/test.h b/winsup/testsuite/winsup.api/pthread/test.h deleted file mode 100644 index a9a211dd7..000000000 --- a/winsup/testsuite/winsup.api/pthread/test.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * test.h - * - * Useful definitions and declarations for tests. - */ - -#ifndef _PTHREAD_TEST_H_ -#define _PTHREAD_TEST_H_ - -#include "pthread.h" -#include "sched.h" -#include "semaphore.h" -#include -#include -#include - -/* #define assert(x) do { fprint (stderr, "assertion failed\n"); exit(1) } while (0) */ - -char * error_string[] = { - "ZERO_or_EOK", - "EPERM", - "ENOFILE_or_ENOENT", - "ESRCH", - "EINTR", - "EIO", - "ENXIO", - "E2BIG", - "ENOEXEC", - "EBADF", - "ECHILD", - "EAGAIN", - "ENOMEM", - "EACCES", - "EFAULT", - "UNKNOWN_15", - "EBUSY", - "EEXIST", - "EXDEV", - "ENODEV", - "ENOTDIR", - "EISDIR", - "EINVAL", - "ENFILE", - "EMFILE", - "ENOTTY", - "UNKNOWN_26", - "EFBIG", - "ENOSPC", - "ESPIPE", - "EROFS", - "EMLINK", - "EPIPE", - "EDOM", - "ERANGE", - "UNKNOWN_35", - "EDEADLOCK_or_EDEADLK", - "UNKNOWN_37", - "ENAMETOOLONG", - "ENOLCK", - "ENOSYS", - "ENOTEMPTY", - "EILSEQ", -}; - -/* - * The Mingw32 assert macro calls the CRTDLL _assert function - * which pops up a dialog. We want to run in batch mode so - * we define our own assert macro. - */ -#ifdef assert -# undef assert -#endif - -#ifdef NDEBUG - -# define assert(e) ((void)0) - -#else /* NDEBUG */ - -#ifndef ASSERT_TRACE -# define ASSERT_TRACE 0 -#else -# undef ASSERT_TRACE -# define ASSERT_TRACE 1 -#endif - -# define assert(e) \ - ((e) ? ((ASSERT_TRACE) ? fprintf(stderr, \ - "Assertion succeeded: (%s), file %s, line %d\n", \ - #e, __FILE__, (int) __LINE__), \ - fflush(stderr) : \ - 0) : \ - (fprintf(stderr, "Assertion failed: (%s), file %s, line %d\n", \ - #e, __FILE__, (int) __LINE__), exit(1), 0)) - -#endif /* NDEBUG */ - - -#endif diff --git a/winsup/testsuite/winsup.api/pthread/tsd1.c b/winsup/testsuite/winsup.api/pthread/tsd1.c deleted file mode 100644 index a65cf66c8..000000000 --- a/winsup/testsuite/winsup.api/pthread/tsd1.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * tsd1.c - * - * Test Thread Specific Data (TSD) key creation and destruction. - * - * Description: - * - - * - * Test Method (validation or falsification): - * - validation - * - * Requirements Tested: - * - keys are created for each existing thread including the main thread - * - keys are created for newly created threads - * - keys are thread specific - * - destroy routine is called on each thread exit including the main thread - * - * Features Tested: - * - - * - * Cases Tested: - * - - * - * Environment: - * - - * - * Input: - * - none - * - * Output: - * - text to stdout - * - * Assumptions: - * - already validated: pthread_create() - * pthread_once() - * - main thread also has a POSIX thread identity - * - * Pass Criteria: - * - stdout matches file reference/tsd1.out - * - * Fail Criteria: - * - fails to match file reference/tsd1.out - * - output identifies failed component - */ - -#include -#include "test.h" - -static pthread_key_t key = NULL; -static int accesscount[10]; -static int thread_set[10]; -static int thread_destroyed[10]; - -static void -destroy_key(void * arg) -{ - int * j = (int *) arg; - - (*j)++; - - assert(*j == 2); - - thread_destroyed[j - accesscount] = 1; -} - -static void -setkey(void * arg) -{ - int * j = (int *) arg; - - thread_set[j - accesscount] = 1; - - assert(*j == 0); - - assert(pthread_getspecific(key) == NULL); - - assert(pthread_setspecific(key, arg) == 0); - - assert(pthread_getspecific(key) == arg); - - (*j)++; - - assert(*j == 1); -} - -static void * -mythread(void * arg) -{ - while (key == NULL) - { - sched_yield(); - } - - setkey(arg); - - return 0; - - /* Exiting the thread will call the key destructor. */ -} - -int -main() -{ - int i; - int fail = 0; - pthread_t thread[10]; - - for (i = 1; i < 5; i++) - { - accesscount[i] = thread_set[i] = thread_destroyed[i] = 0; - assert(pthread_create(&thread[i], NULL, mythread, (void *)&accesscount[i]) == 0); - } - - Sleep(2000); - - /* - * Here we test that existing threads will get a key created - * for them. - */ - assert(pthread_key_create(&key, destroy_key) == 0); - - /* - * Test main thread key. - */ - accesscount[0] = 0; - setkey((void *) &accesscount[0]); - - /* - * Here we test that new threads will get a key created - * for them. - */ - for (i = 5; i < 10; i++) - { - accesscount[i] = thread_set[i] = thread_destroyed[i] = 0; - assert(pthread_create(&thread[i], NULL, mythread, (void *)&accesscount[i]) == 0); - } - - /* - * Wait for all threads to complete. - */ - for (i = 1; i < 10; i++) - { - int result = 0; - - assert(pthread_join(thread[i], (void **) &result) == 0); - } - - assert(pthread_key_delete(key) == 0); - - for (i = 1; i < 10; i++) - { - /* - * The counter is incremented once when the key is set to - * a value, and again when the key is destroyed. If the key - * doesn't get set for some reason then it will still be - * NULL and the destroy function will not be called, and - * hence accesscount will not equal 2. - */ - if (accesscount[i] != 2) - { - fail++; - fprintf(stderr, "Thread %d key, set = %d, destroyed = %d\n", - i, thread_set[i], thread_destroyed[i]); - } - } - - fflush(stderr); - - return (fail); -} diff --git a/winsup/testsuite/winsup.api/samples/sample-fail.c b/winsup/testsuite/winsup.api/samples/sample-fail.c deleted file mode 100644 index d8beb90be..000000000 --- a/winsup/testsuite/winsup.api/samples/sample-fail.c +++ /dev/null @@ -1,4 +0,0 @@ -main() -{ - return 1; -} diff --git a/winsup/testsuite/winsup.api/samples/sample-miscompile.c b/winsup/testsuite/winsup.api/samples/sample-miscompile.c deleted file mode 100644 index bc0d21d2e..000000000 --- a/winsup/testsuite/winsup.api/samples/sample-miscompile.c +++ /dev/null @@ -1 +0,0 @@ -foo bar grill diff --git a/winsup/testsuite/winsup.api/samples/sample-pass.c b/winsup/testsuite/winsup.api/samples/sample-pass.c deleted file mode 100644 index 893a0b605..000000000 --- a/winsup/testsuite/winsup.api/samples/sample-pass.c +++ /dev/null @@ -1,4 +0,0 @@ -main() -{ - return 0; -} diff --git a/winsup/testsuite/winsup.api/sigchld.c b/winsup/testsuite/winsup.api/sigchld.c deleted file mode 100644 index a7d1069b7..000000000 --- a/winsup/testsuite/winsup.api/sigchld.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -int no_signal_caught = 1; - -void handler ( int signo ) -{ - no_signal_caught = 0; -} - -main() -{ - pid_t pid; - signal ( SIGCHLD, handler ); - pid = fork(); - if ( pid == 0 ) exit ( 0 ); - sleep ( 2 ); - exit ( no_signal_caught ); -} diff --git a/winsup/testsuite/winsup.api/signal-into-win32-api.c b/winsup/testsuite/winsup.api/signal-into-win32-api.c deleted file mode 100755 index 23437c407..000000000 --- a/winsup/testsuite/winsup.api/signal-into-win32-api.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Test if signal is delivered to the application which is - * currently inside of native syscall - */ - -#include -#include -#include -#include -#include - -int saw_sigchld = 0; -int sleep_stage = -1; - -void -handle_child (int signo) -{ - printf ( "saw SIGCHLD, %d", sleep_stage); - saw_sigchld = 1; -} - -int -main (int argc, char** argv) -{ - pid_t pid; - if (argc > 1) - { - Sleep (200); - return 0; - } - - signal (SIGCHLD, handle_child); - pid = fork (); - if (pid < 0) - { - perror ( "fork" ); - return 2; - } - else if (pid == 0) - execl ( argv[0], argv[0], "child", 0 ); - else - { - sleep_stage = 0; - Sleep (3000); - sleep_stage = 1; - sleep (10); - sleep_stage = 2; - if (!saw_sigchld) - { - printf ( "oops\n" ); - kill (pid, SIGTERM); - return 1; - } - else - return 0; - } -} diff --git a/winsup/testsuite/winsup.api/systemcall.c b/winsup/testsuite/winsup.api/systemcall.c deleted file mode 100644 index 026f430ff..000000000 --- a/winsup/testsuite/winsup.api/systemcall.c +++ /dev/null @@ -1,65 +0,0 @@ -#include -#include -#include -#include - -int -main (int argc, char **argv) -{ - int fd, pid, n; - int fds[2]; - static char buf[4096]; - - close (0); - if ((fd = open ("/dev/null", O_WRONLY)) != 0) - { - fprintf (stderr, "couldn't redirect stdin to /dev/null, fd %d - %s\n", fd, strerror ()); - exit (1); - } - - close (1); - if ((fd = open ("/dev/null", O_WRONLY)) != 1) - { - fprintf (stderr, "couldn't redirect stdout to /dev/null, fd %d - %s\n", fd, strerror ()); - exit (1); - } - if (pipe (fds)) - { - fprintf (stderr, "pipe call failed - %s\n", strerror ()); - exit (1); - } - if ((pid = fork ()) == 0) - { - close (fds[0]); - if (dup2 (fds[1], 2) != 2) - { - fprintf (stderr, "couldn't redirect stderr to pipe - %s\n", strerror ()); - exit (1); - } - exit (system ("ls")); - } - else if (pid < 0) - { - perror ("couldn't fork"); - exit (1); - } - - close (fds[1]); - if (read (fds[0], buf, 4096) != 0) - { - fprintf (stderr, "system() call failed?\n%s\n", buf); - exit (1); - } - - if (waitpid (pid, &n, 0) < 0) - { - perror ("waitpid failed"); - exit (1); - } - if (n != 0) - { - fprintf (stderr, "system() call returned %p\n", n); - exit (1); - } - exit (0); -} diff --git a/winsup/testsuite/winsup.api/waitpid.c b/winsup/testsuite/winsup.api/waitpid.c deleted file mode 100644 index 9845cd1a4..000000000 --- a/winsup/testsuite/winsup.api/waitpid.c +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include -#include - -int -main (int argc, char **argv) -{ - int pid, n; - if ((pid = fork ()) == 0) - exit (0); - sleep (2); - if ((n = waitpid (pid, NULL, 0)) != pid) - { - printf ("wait pid failed, pid %d, n %d, errno %d\n", pid, n, errno); - exit(1); - } - else - { - printf ("wait pid succeeded, pid %d, n %d, errno %d\n", pid, n, errno); - exit (0); - } -} diff --git a/winsup/testsuite/winsup.api/winsup.exp b/winsup/testsuite/winsup.api/winsup.exp deleted file mode 100644 index 1d45c9527..000000000 --- a/winsup/testsuite/winsup.api/winsup.exp +++ /dev/null @@ -1,81 +0,0 @@ -source "site.exp" -source "$srcdir/winsup.api/known_bugs.tcl" - -if { ! [isnative] } { - verbose "skipping winsup.api because it's not native" - return -} - -set rv "" - -set ltp_includes "-I$ltp_includes" -set ltp_libs "$rootme/libltp.a" - -set add_includes $ltp_includes -set add_libs $ltp_libs - -set test_filter "" - -if { [info exists env(CYGWIN_TESTSUITE_TESTS)] } { - set test_filter "$env(CYGWIN_TESTSUITE_TESTS)" -} - -proc ws_spawn {cmd args} { - global rv - verbose "running $cmd\n" - catch [eval "exec $cmd"] rv - verbose send "catchCode = $rv\n" -} - -verbose "Filter: $test_filter" - -foreach src [glob -nocomplain $srcdir/$subdir/*.c $srcdir/$subdir/*/*.c] { - if { $test_filter != "" && ! [regexp $test_filter $src] } { - verbose -log "Skipping $src" - continue - } - - regsub "^$srcdir/$subdir/" $src "" testcase - regsub ".c$" $testcase "" base - regsub ".*/" $base "" basename - regsub "/" $base "-" base - - if { [lsearch -exact $xfail_list $basename] >= 0 } { - set xfail_expected 1 - setup_xfail "*-*-*" - } else { - set xfail_expected 0 - clear_xfail - } - - ws_spawn "$CC -g3 $CFLAGS $src $add_includes $add_libs $runtime_root/binmode.o $runtime_root/new-libcygwin.a -o $base.exe" - if { $rv != "" } { - verbose -log "$rv" - fail "$testcase (compile)" - } else { - if { $verbose } { - set redirect_output "./$base.log" - } else { - set redirect_output /dev/null - } - ws_spawn "$runtime_root/cygrun ./$base.exe > $redirect_output" - if { $rv != "" } { - verbose -log "$testcase: $rv" - fail "$testcase (execute)" - if { $xfail_expected } { - catch { file delete "$base.exe" } err - if { $err != "" } { - note "error deleting $base.exe: $err" - } - } - } else { - pass "$testcase" - if { ! $xfail_expected } { - catch { file delete "$base.exe" } err - if { $err != "" } { - note "error deleting $base.exe: $err" - } - } - } - } -} diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog deleted file mode 100644 index d00f22d1c..000000000 --- a/winsup/utils/ChangeLog +++ /dev/null @@ -1,480 +0,0 @@ -2002-02-27 Christopher Faylor - - * ssp.c (help_desk): Fix compiler warning. - -2002-02-27 Joshua Daniel Franklin - Christopher Faylor - - Change appropriate globals to statics throughout. - * cygcheck.cc (usage): Simplify usage output. Generalize to allow use - for help. - (longopts): Add version option. - (opts): Add 'V" version option. - (print_version): New function. - (main): Accommodate new version option. Accommodate usage parameter - changes. Use usage to output help message. - -002-02-19 Christopher Faylor - - * Makefile.in (CXXFLAGS): Add override so that HAVE_DECL_GETOPT is - defined. - (libbfd): Use -B rather than -L so that bfd from build directory is - correctly found. - (libintl): Ditto. - -2002-02-15 Christopher Faylor - - * mount.cc (usage): Fix typo in output. - -2002-02-14 Christopher Faylor - - * strace.cc (attach_process): Change CW_STRACE_ON to CW_STRACE_TOGGLE. - -2002-01-31 Corinna Vinschen - - * mkpasswd.c (main): Set default home path for 9x/Me if --path-to-home - isn't given. - -2002-01-30 Corinna Vinschen - - * passwd.cc (ChangePW): Add parameter to differ between called for - checking old password and called for changing password. If called - for checking old password, return non-zero only if password is surely - incorrect. - (main): Call ChangePW() with additional parameter. - -2002-01-29 Christopher Faylor - - * dump_setup.cc (parse_filename): Don't consider '_' part of the - version. - -2002-01-28 Christopher Faylor - - * cygcheck.cc: Fix typo. Remove uid_t kludge. Rely on kludge in - sys/cygwin.h instead. - * getfacl.c: Add include to remove warning. - * mkgroup.c (main): Assign variables outside of parameter passing. - This seems to eliminate some compiler warnings. - -2002-01-28 Christopher Faylor - - * cygcheck.cc: Use specific cygwin includes, as required. - -2002-01-28 Christopher Faylor - - * Makefile.in (MINGW_INCLUDES): Change cygwin include. - * strace.cc: Use specific cygwin includes, as required. - (load_cygwin): New function. Loads cygwin DLL, if necessary. - (attach_process): Attaches strace to a running process. - (dostrace): Accept pid argument. Attach to pid if supplied. - (usage): Describe -p option. Correct system description. - (longopts): Alphabetize. - (opts): Ditto. - (main): Ditto. Handle -p option. - -2002-01-21 Christopher Faylor - - * Makefile.in (CXXFLAGS): Ensure that important settings are preserved - even when overriden by command line. - -2002-01-21 Christopher Faylor - - * Makefile.in: Build intermediate cygcheck.o to force use of MINGW_CXXFLAGS. - * cygcheck.cc (cygwin_info): Intitialize variable to quiet g++ warning. - (dump_sysinfo): Make variables unsigned to quiet g++ warnings. - * strace.cc (version_string): Rename from SCCSid. - (add_child): Remove unused variable. - (version): Use version_string. Avoid use of fprintf. - -2002-01-21 DJ Delorie - - * Makefile.in: Use CXX instead of CC to compile C++ sources. - -2002-01-17 DJ Delorie - - * cygcheck.cc (already_did): Avoid default constructors, which may - require exception support. - -2001-01-16 Joshua Daniel Franklin - - * cygpath.cc (main): Add options to show Desktop and Start - Menu's Programs directory for current user or all users. - Move bulk of DPWS options outside the getopt case statement. - * utils.sgml: Update cygpath section for ADPWS options. - -2002-01-15 Joerg Schaible - - * cygpath.cc (doit): Empty file ignored using option -i. - -2002-01-15 Mark Bradshaw - - * mkpasswd.c (print_win_error): Add a new function. - (enum_users): Use print_win_error. - (enum_local_groups): Ditto. - (main): Ditto. - -2001-12-26 Jonathan Kamens - - * cygpath.cc (doit): Detect and warn about an empty path. Detect and - warn about errors converting a path. - (main): Set prog_name correctly -- don't leave an extra slash or - backslash at the beginning of it. - -Fri Dec 14 14:04:37 2001 Jason Tishler - - * mkpasswd.c (enum_users): Change to unconditionally use - the --path-to-home option, if supplied by the user. Use default - --path-to-home option value, if appropriate. - (usage): Change usage statement to reflect new semantics. - (main): Remove defaulting of the --path-to-home option. - -Fri Dec 14 12:10:39 2001 Jason Tishler - - * mkpasswd.c (opts): Add indication that '-p' option requires an - argument. - -2001-12-11 Christopher Faylor - - * Makefile.in: Add define to CXXFLAGS. - -2001-12-03 Christopher Faylor - - * cygcheck.cc (usage): Add -c description. - * cygpath.cc (usage): Alphabetize options. - * strace.cc (usage): Ditto. - -2001-11-21 Christopher Faylor - - * path.cc (cygpath): Don't consider cygdrive stuff when trying to derive - native paths. - -2001-11-20 Mark Bradshaw - - * mkpasswd.c: include lmerr.h - (main): New -u option to allow specifying a - specific user. If specified, groups aren't displayed and - output is limited to only the specified user. - (enum_users): If specific user is specified, via -u option, - display only that user's record. With -u use NetUserGetInfo - instead of NetUserEnum. - (load_netapi): Added netusergetinfo. - -2001-11-15 Gary R. Van Sickle - - * strace.cc (main): Change getopt() to getopt_long(). - Add support for help and version info. - Use new parse_mask() function for -m/--mask option. - (longopts): Add long options structure. - (opts): Move options string from getopts call to static var. - (usage): Print usage information. - (SCCSid): Version info. - (version): New function for displaying version info. - (parse_mask): New function supporting parsing of mnemonics, - hex, and basic expressions in masks. - (mnemonic2ul): New mnemonic parsing function. - (tag_mask_mnemonic): New type. - (mnemonic_table): New table of mnemonics for mnemonic2ul() to - search through. - -2001-11-12 Corinna Vinschen - - * cygcheck.cc (dump_sysinfo): Redefine output format slightly. - Print correct build number on 9x/ME systems. - -2001-11-12 Christopher Faylor - - * cygcheck.cc (main): Slight formatting tweak. - -2001-11-12 Corinna Vinschen - - * cygcheck.cc (dump_sysinfo): Add some more details. - -2001-11-12 Corinna Vinschen - - * cygcheck.cc (dump_sysinfo): Print more detailed OS information string - using OSVERSIONINFOEX information. - -2001-11-11 Christopher Faylor - - * path.h: New file. - -2001-11-11 Christopher Faylor - - * cygcheck.cc (scan_registry): Open registry with read-only access. - (main): Reflect argument change for dump_setup. - * dump_setup.cc (dump_setup): Add preliminary extra argument for future - use. - * path.cc (read_mounts): Open registry with read-only access. - -2001-11-11 Christopher Faylor - - * cygcheck.cc (main): Display package info when '-s' is specified. - * dump_setup.cc (dump_setup): Change header. Remove typo. Always sort - packages output. - -2001-11-11 Christopher Faylor - - * dump_setup.cc: New file. - * Makefile.in: Add info for dump_setup.o. - * cygcheck.cc (main): Recognize '-c' option for checking setup - installed base. - * path.cc (cygpath): Read mount table if not loaded. - -2001-11-10 Christopher Faylor - - * Makefile.in (cygcheck.exe): Compile as -mno-cygwin executable. - * path.cc: New file. - * cygcheck.cc (init_paths): Use MS-DOS path syntax. - (cygwin_info): Properly display cygwin version numbers. Prettify some - output. - (dump_sysinfo): Calculate max names of posix and ms-dos paths for - prettier output. - -2001-11-09 Corinna Vinschen - - * cygcheck.cc (dump_sysinfo): Print more detailed OS information string. - -2001-11-04 Corinna Vinschen - - * getfacl.c (username): New function. - (groupname): Ditto. - (usage): Ditto. Add more user friendly help text. - (main): Add -n and --help option. Print names instead of IDs - unless -n option is given. - * setfacl.c (getperm): Tolerate whitespace and comment chars in input. - (getaclentry): Fix several input string misdetections. - (getaclentries): Allow - as input file name to read from stdin. - Tolerate whitespace and comment chars in input. - (usage): Add more user friendly help text. - (main): Add --help option. - -2001-11-04 Egor Duda - - * strace.cc (main): New option '-w'. Start traced process in separate - window. New option '-S x'. Flush buffered output every x seconds. - (create_child): Start child process in new window, when requested. - When requested, periodically flush debugging output. - -2001-10-24 Christopher Faylor - - * Makefile.in: Remove EXEEXT consideration. We always need .exe - extensions. - -2001-10-20 Corinna Vinschen - - * mkgroup.c: Avoid compiler warnings. - (print_special): New function. - (main): Print special accounts by calling print_special(). - * mkpasswd.c: Avoid compiler warnings. - (enum_users): Print additional U-domain\username info in gecos - field when SIDs are printed. - (print_special): New function. - (main): Print special accounts by calling print_special(). - -2001-10-15 Christopher Faylor - - * mkpasswd.cc (enum_users): Shorten "unused" passwd field. - -2001-10-13 Christopher Faylor - - * Makefile.in: Allow stdinc searching for dumper. - -Tue Oct 9 21:59:00 2001 Christopher Faylor - - * Makefile.in (MINGW_INCLUDES): Accomodate changes in Makefile.common. - -Sun Oct 7 23:06:39 2001 Christopher Faylor - - * kill.cc (main): Set exit value to 1 on invalid pid. Perform minor - cleanup. - -Fri Sep 21 20:40:30 2001 Christopher Faylor - - * Makefile.in (mingw_getopt.o): Ensure that newlib include directories - are not searched. - -Thu Sep 20 21:00:20 2001 Christopher Faylor - - * Makefile.in (MINGW_INCLUDES): Still need cygwin/include directory. - -Wed Sep 19 12:22:08 2001 Christopher Faylor - - * Makefile.in: Filter newlib includes from mingw compilation. - -2001-09-14 Egor Duda - - * dumper.cc (dumper::dumper): Print error code in case of error. - (dumper::add_thread): Ditto. - (dumper::collect_memory_sections): Ditto. - (dumper::dump_memory_region): Ditto. - (dumper::collect_process_information): Ditto. - (print_section_name): Fix formatting. - -2001-09-13 Egor Duda - - * dumper.cc (main): Properly recognize negative pids (used by w9x). - -2001-09-09 Egor Duda - - * dumper.cc (main): Change command-line arguments format to be - similar to gdb. Allow adding error_start=x:\path\to\dumper.exe to - CYGWIN environment variable to perform core dumping in case of - program crash. - (usage): Ditto. - -Wed Sep 5 22:37:21 2001 Christopher Faylor - - * Makefile.in (dumper): Change logic for libbfd and libintl so that - they will be found either in the build tree or the installed directory. - * mkpasswd.c (enum_users): Add a comment as a password for NT. - -2001-09-03 Michael A Chase - - * mount.cc (mount_commands): Don't write /cygdrive/u mount points. - -2001-09-03 Michael A Chase - - * mount.cc (longopts): Add mount-commands to options list. - (usage): Add mount-commands option. - (mount_commands): New function. Write commands to recreate current - mounts. - -Sat Sep 1 15:58:11 2001 Christopher Faylor - - * mount.cc (main): Eliminate excess arguments in printf. - -2001-08-30 Egor Duda - - * dumper.h: Update copyright notice. - * dumper.cc: Ditto. - * dumper.cc: (dumper::print_core_section_list): New function. - * dumper.h: (dumper::print_core_section_list): Declare it. - * dumper.cc (print_section_name): New function. - (dumper::collect_process_information): Augment debugging output. - Stop debugee processing if it posts double exception. - (usage): Fix typo in option name. - -Tue Aug 28 14:45:02 2001 Christopher Faylor - - * mount.cc (main): Issue correct warning for 'not enough arguments'. - -2001-08-14 Joerg Schaible - - * cygpath.cc (main): Support -w for Windows (System) directories and - return physical correct orthography for the Windows System dir. - -2001-07-14 Chris Genly - - * regtool.cc (find_key): Handle keys with only one subkey. - -Wed Jun 27 22:46:10 2001 Christopher Faylor - - * regtool.cc (find_key): Revert previous change. - -Wed Jun 27 13:37:41 2001 Keith Starsmeare" - - * regtool.cc (find_key): Allow '/' as a synonym for '\\'. - -Fri Jun 15 00:49:21 2001 Christopher Faylor - - * mkpasswd.c (main): Output passwd file in binary mode so that there - are no CRs in the file. - * umount.cc (remove_all_user_mounts): Don't try to remove /cygdrive - mounts. - -Tue May 1 10:50:48 2001 Christopher Faylor - - * mkpasswd.c (enum_users): Use /bin/bash as the default shell. - (main): Ditto. - -Sat Apr 28 22:32:01 2001 Christopher Faylor - - * passwd.cc (ttymnam): New function. - (main): Use ttynam() to report name of tty. - -2001-04-19 Egor Duda - - * dumper.cc (dumper::init_core_dump): Set architecture field in dump - header. - -Mon Apr 16 15:08:00 2001 Corinna Vinschen - - * mkgroup.c: Add function pointers `netlocalgroupgetmembers' and - `netgroupgetusers'. - (load_netapi): Load function pointers `netlocalgroupgetmembers' - and `netgroupgetusers'. - (enum_local_users): New function. - (enum_local_groups): Call `enum_local_users' for each group if - `print_users' is set. - (enum_users): New function. - (enum_groups): Call `enum_users' for each group if `print_users' is set. - (usage): Add usage text for `-u/--users'. - (longopts): Add option `--users'. - (opts): Add option character `u'. - (main): Set `print_users' according to option `-u/--users'. - Call `enum_local_groups' and `enum_groups' with additional parameter - `print_users'. - -2001-04-15 Michael A Chase - - * mount.cc (longopts): Add help to options list. - (opts): Add 'h' to options string. - * umount.cc (longopts): Add help to options list. - (opts): Add 'h' to options string and change 'R' to 'A'. - -2001-04-13 Kazuhiro Fujieda - - * mkgroup.c (enum_groups): Use RID + offset specified an additional - argument as ID. - (usage): Add description of -o option. - (longopts, opts): Add specifications of -o/--id-offset option. - (main): Add -o option. Invoke enum_groups with specified offset. - * mkpasswd.c (enum_users): Just like mkgroup.c. - (usage, longopts, opts): Ditto. - (main): Add -o option. Invoke enum_users with specified offset only - against domain accounts. - -2001-04-11 Egor Duda - - * mkgroup.c (uni2ansi): Use native method to convert from Unicode - to multi-byte strings. - * mkpasswd.c (uni2ansi): Ditto. - (enum_users): Pass buffer size when converting string. - (enum_local_groups): Ditto. - * mkgroup.c (enum_groups): Ditto. - (enum_local_groups): Ditto. - -Mon Apr 2 22:41:33 2001 Christopher Faylor - - * mount.cc (main): Use getopt_long for parsing arguments. - (usage): Reformat, show long and short options. - * umount.cc (main): Ditto, all of the above. - -Mon Apr 2 10:58:26 2001 Christopher Faylor - - * mount.cc (show_mounts): Change format string to more closely resemble - UNIX when displaying mount table. - -Sat Mar 17 21:46:06 2001 Christopher Faylor - - * kill.cc (forcekill): Use dwProcessId when opening a process, not the - Cygwin pid. - -Mon Mar 5 18:50:00 2001 Corinna Vinschen - - * getfacl.c: Add copyright hint. - * setfacl.c: Ditto. - * strace.cc: Ditto. - -Tue Jan 09 10:26:23 2001 Tony Sideris - - * regtool.cc (cmd_list): Add new registry display options. - (cmd_list): Add code to implement -p, -k, and -l options. - - * regtool.cc (Fail): Add call to LocalFree to free memory allocated by - FormatMessage. - -Wed Jan 10 09:16:57 2001 Christopher Faylor - - * regtool.cc (translate): Ensure that 'c' is initialized. - (cmd_set): Ditto for rv. diff --git a/winsup/utils/ChangeLog-2000 b/winsup/utils/ChangeLog-2000 deleted file mode 100644 index 7ea5ae186..000000000 --- a/winsup/utils/ChangeLog-2000 +++ /dev/null @@ -1,347 +0,0 @@ -Fri Dec 15 23:41:48 2000 Christopher Faylor - - * cygcheck.cc (cygwin_info): Add some more bounds checking. - -Fri Dec 15 23:41:34 2000 Christopher Faylor - - From Matt Harget : - * utils/cygcheck.cc (keyeprint): Move declaration before other - functions so it could be used by all functions to report error - messages. Add comment. - (add_path): Check for NULL return from malloc. - (find_on_path): Check initial uses of pointers for NULL. - (rva_to_offset): Ditto. - (init_paths): Add checking for return values of Win32 calls. - (get_dword): Ditto. - (get_word): Ditto. - (dll_info): Ditto, also add NULL pointer checks. - (scan_registry): Ditto. - (check_keys): Ditto. - (dump_sysinfo): Ditto. Add default case to switch. Add error - reporting if GetVolumeInformation fails, except when it - returns ERROR_NOT_READY. - (track_down): Add checking for NULL pointers and - return values of Win32 calls. - (cygwin_info): Ditto. Correct small memory leak. - -Sun Dec 10 19:08:58 2000 Christopher Faylor - - * Makefile.in: Compile/link dumper.exe with c++. - -Tue Dec 7 11:15:00 2000 Corinna Vinschen - - * mkpasswd.c: Slight formatting changes to the below patch. - (longopts): Fix typo in `local-groups' option. - (main): Initialize `passed_home_path' before first usage. - -Tue Dec 7 11:15:00 2000 Chris Abbey - - * mkpasswd.c: make default home directory /home/$user if one - can't be found in user registry. Allow user to override - that with command line arg. - -Sun Dec 3 00:40:47 2000 Christopher Faylor - - * Makefile.in: Use CXX to build the DLL. - * configure.in: Find correct c++ compiler. - * configure: Regenerate. - -Sat Nov 18 23:53:59 2000 Christopher Faylor - - * utils.sgml: Document new options for ps and strace. - -Wed Nov 8 08:49:27 2000 Jason Tishler - - * mount.cc (main): Call show_cygdrive_info instead of - show_cygdrive_prefixes. - * mount.cc (show_cygdrive_prefixes): Remove function. - * mount.cc (show_cygdrive_info): New function. Actually, - show_cygdrive_info is really an enhanced version of - show_cygdrive_prefixes renamed to show_cygdrive_info that also displays - the user and system flags. - -Wed Nov 8 15:52:00 2000 Corinna Vinschen - - * mkgroup.c (load_netapi): New function to load netapi32.dll functions - dynamically so that mkgroup works on 9x/ME as well. - Use corresponding function pointers throughout. - (usage): Change to `int'. Change text to be conformant to mkpasswd. - (main): Use `getlongopt' to process options. - Special handling to create a group entry on 9x/ME. - * mkpasswd.c (load_netapi): New function to load netapi32.dll functions - dynamically so that mkpasswd works on 9x/ME as well. - Use corresponding function pointers throughout. - (usage): Change to `int'. Change text to be conformant to mkgroup. - (main): Use `getlongopt' to process options. - Special handling to create a passwd entry on 9x/ME. - Change conditional to create an entry for the local administrators - group when appropriate. - -Thu Nov 2 2:01:00 2000 Corinna Vinschen - - * kill.cc (main): Return 1 in case of errors. - -Sat Oct 28 01:37:55 2000 Christopher Faylor - - * Makefile.in: Accomodate newer gcc's which require linking of c++ - programs with g++. Fixup output for some compilations. - * cygcheck.cc: Respond to compiler warnings. - * dumper.cc (main): Ditto. - * parse_pe.cc (exclusion::sort_and_check): Ditto. - * setfacl.cc (getaclentry): Ditto. - -Fri Oct 27 20:20:29 2000 Christopher Faylor - - * strace.cc (main): Add a '-b' option. - -2000-10-18 DJ Delorie - - * ssp.c: new - * ssp.txt: new - * Makefile.in: build ssp.exe - -Wed Oct 18 18:57:46 2000 Christopher Faylor - - * ps.cc (main): Add some extra space to Windows pid output for - Windows 95. - -Tue Oct 17 23:49:04 2000 Christopher Faylor - - * ps.cc (main): Add some extra space to pid output for Windows 95. - -Tue Oct 17 1:09:00 2000 Corinna Vinschen - - Patch suggested by Brad Town : - * cygcheck.cc (main): Fix argument counting. - -Sat Oct 14 23:42:58 2000 Christopher Faylor - - * ps.cc (main): Accomodate new PID_ constant. - -Thu Oct 12 02:19:12 2000 Christopher Faylor - - * strace.cc (proc_child): Handle exceptions correctly. - -Sun Oct 8 23:11:17 2000 Christopher Faylor - - * ps.cc (main): Change order of reporting slightly so that windows pids - are more obvious. - * strace.cc (add_child): Just add child's pid directly. - (remove_child): No need to close the child process pid since - ContinueDebugEvent does that automatically. - (proc_child): Ditto for child thread. - -Fri Sep 29 13:12:00 2000 Corinna Vinschen - - * cygcheck.cc (keyeprint): New function. - (check_keys): New function. Perform checking keycodes. - (main): Add option `-k' for invoking check_keys. - Change option processing to use long options and getopt_long. - * cygkeycheck.cc: Removed. Functionality moved to `cygcheck.cc'. - * Makefile.in: Remove cygkeycheck from the dependencies. - -Wed Sep 27 16:24:00 2000 Corinna Vinschen - - * cygkeycheck.cc: New file. Utility to retrieve keycodes. - * Makefile.in: Add cygkeycheck to the dependencies. - -2000-09-15 Joerg Schaible - - * cygpath.cc: Add new options: -s and -i. - * utils.sgml: Document the new options. - -Tue Sep 12 22:45:28 2000 Christopher Faylor - - * kill.cc (main): Change behavior of -f so that it will force the - killing of a cygwin process after waiting 2 tenths of a second for it - to terminate. - (forcekill): Add an extra argument determining whether to wait for the - process to exit. - -Sun Sep 10 12:50:02 2000 Christopher Faylor - - * Makefile.in: Refine dumper.exe message. - -Mon Aug 28 21:55:56 2000 Christopher Faylor - - * kill.c (main): Avoid skipping next argument when a signal number is - specified. - * Makefile.in: Always clean dumper.exe. - -Fri Aug 25 12:41:53 2000 Christopher Faylor - - * Makefile.in: Only build dumper.exe when all of its library and - include dependencies are available. - -Fri Aug 25 11:44:29 2000 Christopher Faylor - - * Makefile.in: Make failure to build dumper.exe a non-error. - -Thu Aug 24 18:02:35 2000 Christopher Faylor - - * ps.cc (main): Always print a cygwin process using cygwin paths. - -2000-08-24 Egor Duda - - * Makefile.in: Add dumper.exe target and associated mechanisms for building it. - * dumper.cc: New file. - * dumper.h: New file. - * module_info.cc: New file. - * parse_pe.cc: New file. - -Mon Jul 31 15:12:00 2000 Corinna Vinschen - - * passwd.c (main): Initialize oldpwd before beeing used. - -Sat Jul 29 00:44:46 2000 Christopher Faylor - - * kill.cc (main): Add '-f' option to force termination of a process. - (forcekill): New function. - * ps.cc (main): Add '-W' option to list Windows pids as well as Cygwin - pids. - (dummyprocessmodules): New function. - (GetModuleFileNameEx95): New function. - (init_win): New function. - (to_time_t): New function. - -Thu Jul 27 22:54:28 2000 Jason Tishler - - * utils/mount.cc (main): Add --show-cygdrive-prefixes option. - (show_cygdrive_prefixes): New function. - * utils/umount.cc (main): Add --remove-cygdrive-prefix option. - (error): Change signature from 'char *' to 'const char *'. - (remove_cygdrive_prefix): New function. - -Thu Jul 13 22:24:00 2000 Corinna Vinschen - - * mount.cc (mount_already_exists): Slightly rearrange. - Change message texts. - -Thu Jul 13 13:02:00 2000 Corinna Vinschen - - * mount.cc (mount_already_exists): Additional warning message - if mount point exists with another mount type. - -Sat Jul 1 00:19:27 2000 Christopher Faylor - - * Makefile.in: Find getopt.c in cygwin/lib subdirectory. - -Sat Jun 24 23:16:33 2000 Christopher Faylor - - * cygcheck.cc (cygwin_info): New function. Scans DLL for Cygwin - version info. - (dll_info): Add path parameter for checking "cygwin1.dll". - (track_down): Accomodate additional parameter for dll_info. - (ls): Ditto. - (dump_sys_info): Always print cygwin1.dll last. - -2000-06-07 Kazuhiro Fujieda - - * mount.cc (error): New function to report an error and exit. - * umount.cc (error): Ditto. - (remove_all_automounts): Check return status of cygwin_umount. - (remove_all_user_mounts): Ditto. - (remove_all_system_mounts): Ditto. - -2000-06-05 DJ Delorie - - * mount.cc: add stdlib.h for exit - * umount.cc: ditto - * strace.cc: add #define for alloca - -Fri May 20 0:01:00 2000 Corinna Vinschen - - * regtool.cc (find_key): Add parameter `access'. - Call `RegOpenKeyEx' with that desired access. - (cmd_add, cmd_remove, cmd_set, cmd_unset): Call - `find_key' with KEY_ALL_ACCESS access. - (cmd_list, cmd_check, cmd_get): Call `find_key' - with KEY_READ access. - -2000-05-19 DJ Delorie - - * cygpath.cc: add --windir/--sysdir options - * utils.sgml: and document them - -Thu May 18 14:38:26 2000 Christopher Faylor - - * Makefile.in: Eliminate WINSUP_DEPS. - * cygpath.cc: Reorganize includes to accomodate sys/cygwin.h changes. - * mkgroup.c: Ditto. - * mkpasswd.c: Ditto. - * mount.cc: Ditto. Eliminate use of cygwin source specific includes. - * ps.cc: Ditto. - * cygwin.cc: Eliminate obsolete file. - -Wed Apr 26 23:43:25 2000 Christopher Faylor - - * mount.cc (main): Add "-X" option to specify a "Cygwin executable". - -Sat Apr 15 23:34:00 2000 Corinna Vinschen - - * mkpasswd.c (main): Use GetDCName instead of GetAnyDCName. - Don't create extra passwd entry for administrators group - if local_groups is set. - (usage): Change usage text slightly. - (enum_users): Loop while ERROR_MORE_DATA is returned. - (enum_local_groups): Ditto. - * mkgroup.c (enum_local_groups): Ditto. - (enum_groups) Ditto. - (usage): Change usage text slightly. - -Thu Apr 13 01:22:35 2000 Christopher Faylor - - * cygpath.cc (main): Add -a -o and -c options. - (doit): Ditto. - -Mon Apr 10 22:56:07 2000 Christopher Faylor - - * cygpath.cc (main): Add -f option for processing a group of paths from - a file. - (doit): New function. - -Sat Mar 18 22:52:37 2000 Christopher Faylor - - Patch suggested by Mumit Khan : - * strace.cc (_impure_ptr): New global variable to make strace build - under Cygwin gcc. - -Sat Mar 18 12:45:10 2000 Christopher Faylor - - * Makefile.in: Make CXXFLAGS consistent with cygwin. - -Wed Mar 15 00:53:58 2000 Christopher Faylor - - * Makefile.in: Use MINGW_CXXFLAGS when compiling strace. - -Sun Mar 12 21:22:25 2000 Christopher Faylor - - * strace.cc: Throughout, track information like start_time, etc. on a - per-process basis. - -Sun Feb 27 23:37:32 2000 Christopher Faylor - - * strace.cc (handle_output_debug_string): Parse strace output to allow - various types of time output. - -Fri Jan 21 02:10:26 Corinna Vinschen - - * utils/regtool.cc (translate): Added unix like backslash - processing. - -2000-01-20 Corinna Vinschen - - * regtool.cc: allow forward slashes as key separators - -2000-01-19 DJ Delorie - - * regtool.cc: New file. - * Makefile.in: add regtool - * utils.sgml: add regtool - -Sat Jan 8 17:13:51 2000 Christopher Faylor - - * getfacl.c: New file. - * setfacl.c: New file. - * Makefile.in: Add getfacl.exe and setfacl.exe to list of PROGS. - Fix link flags in MINGW case. diff --git a/winsup/utils/Makefile.in b/winsup/utils/Makefile.in deleted file mode 100644 index 615ee97da..000000000 --- a/winsup/utils/Makefile.in +++ /dev/null @@ -1,211 +0,0 @@ -# Makefile for Cygwin utilities -# Copyright 1996, 1997, 1998, 1999, 2000, 2001 Red Hat, Inc. - -# This file is part of Cygwin. - -# This software is a copyrighted work licensed under the terms of the -# Cygwin license. Please consult the file "CYGWIN_LICENSE" for -# details. - -SHELL:=@SHELL@ - -srcdir:=@srcdir@ -VPATH:=@srcdir@ -prefix:=@prefix@ -exec_prefix:=@exec_prefix@ - -bindir:=@bindir@ -etcdir:=$(exec_prefix)/etc -program_transform_name:=@program_transform_name@ - -INSTALL:=@INSTALL@ -INSTALL_PROGRAM:=@INSTALL_PROGRAM@ -INSTALL_DATA:=@INSTALL_DATA@ - -EXEEXT:=@EXEEXT@ -EXEEXT_FOR_BUILD:=@EXEEXT_FOR_BUILD@ - -CC:=@CC@ -CC_FOR_TARGET:=$(CC) -CXX:=@CXX@ -CXX_FOR_TARGET:=$(CXX) - -CFLAGS:=@CFLAGS@ -CXXFLAGS:=@CXXFLAGS@ -override CXXFLAGS+=-fno-exceptions -fno-rtti -DHAVE_DECL_GETOPT=0 - -include $(srcdir)/../Makefile.common - -MINGW_INCLUDES:=$(MINGW_INCLUDES) $(w32api_include) -I$(updir) - -libbfd:=${shell $(CC) -B$(bupdir2)/bfd/ --print-file-name=libbfd.a} -libintl:=${shell $(CC) -B$(bupdir2)/intl/ --print-file-name=libintl.a} -build_dumper:=${shell test -r $(libbfd) && test -r ${libintl} && echo 1} - -DUMPER_INCLUDES:=-I$(bupdir2)/bfd -I$(updir1)/include - -MINGW_CXXFLAGS:=${filter-out $(newlib_source)/%,$(CXXFLAGS)} -mno-cygwin $(MINGW_INCLUDES) -MINGW_CFLAGS:=-mno-cygwin $(MINGW_INCLUDES) - -libcygwin:=$(cygwin_build)/libcygwin.a -libuser32:=$(w32api_lib)/libuser32.a -libkernel32:=$(w32api_lib)/libkernel32.a -ALL_DEP_LDLIBS:=$(libcygwin) $(w32api_lib)/libnetapi32.a \ - $(w32api_lib)/libadvapi32.a $(w32api_lib)/libkernel32.a \ - $(w32api_lib)/libuser32.a - -ALL_LDLIBS:=${patsubst $(w32api_lib)/lib%.a,-l%,\ - ${filter-out $(libuser32),\ - ${filter-out $(libkernel32),\ - ${filter-out $(libcygwin), $(ALL_DEP_LDLIBS)}}}} - -MINGW_LIB:=$(mingw_build)/libmingw32.a -DUMPER_LIB:=${libbfd} ${libintl} -L$(bupdir1)/libiberty -liberty -MINGW_LDLIBS:=$(ALL_LDLIBS) $(MINGW_LIB) -MINGW_DEP_LDLIBS:=${ALL_DEP_LDLIBS} ${MINGW_LIB} -ALL_LDFLAGS:=-B$(newlib_build)/libc/ -B$(newlib_build)/libm/ -B$(w32api_lib)/ \ - $(LDFLAGS) $(ALL_LDLIBS) -MINGW_LDFLAGS:=$(ALL_LDFLAGS) $(MINGW_LIB) -DUMPER_LDFLAGS:=$(ALL_LDFLAGS) $(DUMPER_LIB) - -PROGS:= cygcheck.exe cygpath.exe getfacl.exe kill.exe mkgroup.exe \ - mkpasswd.exe mount.exe passwd.exe ps.exe regtool.exe setfacl.exe \ - ssp.exe strace.exe umount.exe - -CLEAN_PROGS:=$(PROGS) -ifdef build_dumper -PROGS+=dumper$(EXEEXT) -else -PROGS:=warn_dumper $(PROGS) -CLEAN_PROGS+=dumper.exe -endif - -.SUFFIXES: -.NOEXPORT: - -.PHONY: all install clean realclean warn_dumper - -all: Makefile $(PROGS) - -strace.exe: strace.o mingw_getopt.o $(MINGW_DEP_LDLIBS) -ifdef VERBOSE - $(CXX) $(MINGW_CXXFLAGS) -o $@ ${wordlist 1,2,$^} -B$(mingw_build)/ $(MINGW_LDFLAGS) -else - @echo $(CXX) -o $@ ${wordlist 1,2,$^} ${filter-out -B%, $(MINGW_CXXFLAGS) $(MINGW_LDFLAGS)};\ - $(CXX) $(MINGW_CXXFLAGS) -o $@ ${wordlist 1,2,$^} -B$(mingw_build)/ $(MINGW_LDFLAGS) -endif - -cygcheck.exe: cygcheck.o mingw_getopt.o path.o dump_setup.o $(MINGW_DEP_LDLIBS) -ifdef VERBOSE - $(CXX) $(MINGW_CXXFLAGS) -o $@ ${wordlist 1,4,$^} -B$(mingw_build)/ $(MINGW_LDFLAGS) -else - @echo $(CXX) -o $@ ${wordlist 1,2,$^} ${filter-out -B%, $(MINGW_CXXFLAGS) $(MINGW_LDFLAGS)};\ - $(CXX) $(MINGW_CXXFLAGS) -o $@ ${wordlist 1,4,$^} -B$(mingw_build)/ $(MINGW_LDFLAGS) -endif - -dumper.o: dumper.cc dumper.h -ifdef VERBOSE - ${filter-out -nostdinc,$(COMPILE_CXX)} $c -o $@ $(DUMPER_INCLUDES) ${firstword $^} -else - @echo $(CXX) $c $(CFLAGS) $(DUMPER_INCLUDES) ... $(basename $@).cc;\ - ${filter-out -nostdinc,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(DUMPER_INCLUDES) $< -endif - - -module_info.o: module_info.cc -ifdef VERBOSE - ${filter-out -nostdinc,$(COMPILE_CXX)} $c -o $@ $(DUMPER_INCLUDES) ${firstword $^} -else - @echo $(CXX) $c $(CFLAGS) $(DUMPER_INCLUDES) ... $(basename $@).cc;\ - ${filter-out -nostdinc,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(DUMPER_INCLUDES) $< -endif - -parse_pe.o: parse_pe.cc dumper.h -ifdef VERBOSE - ${filter-out -nostdinc,$(COMPILE_CXX)} $c -o $@ $(DUMPER_INCLUDES) ${firstword $^} -else - @echo $(CXX) $c $(CFLAGS) $(DUMPER_INCLUDES) ... $(basename $@).cc;\ - ${filter-out -nostdinc,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(DUMPER_INCLUDES) $< -endif - -mingw_getopt.o: $(cygwin_source)/lib/getopt.c -ifdef VERBOSE - ${filter-out -I$(newlib_source)/%,$(COMPILE_CC)} $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) $< -else - @echo $(CC) $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) ... $^;\ - ${filter-out -I$(newlib_source)/%,$(COMPILE_CC)} $c -o $(@D)/$(basename $@)$o $(MINGW_CFLAGS) $< -endif - -path.o: path.cc -ifdef VERBOSE - ${filter-out -I$(newlib_source)/%,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) $< -else - @echo $(CXX) $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) ... $^;\ - ${filter-out -I$(newlib_source)/%,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) $< -endif - -dump_setup.o: dump_setup.cc -ifdef VERBOSE - ${filter-out -I$(newlib_source)/%,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) $< -else - @echo $(CXX) $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) ... $^;\ - ${filter-out -I$(newlib_source)/%,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) $< -endif - -cygcheck.o: cygcheck.cc -ifdef VERBOSE - ${filter-out -I$(newlib_source)/%,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) $< -else - @echo $(CXX) $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) ... $^;\ - ${filter-out -I$(newlib_source)/%,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) $< -endif - -strace.o: strace.cc -ifdef VERBOSE - ${filter-out -I$(newlib_source)/%,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) $< -else - @echo $(CXX) $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) ... $^;\ - ${filter-out -I$(newlib_source)/%,$(COMPILE_CXX)} $c -o $(@D)/$(basename $@)$o $(MINGW_CXXFLAGS) $< -endif - -clean: - rm -f *.o $(CLEAN_PROGS) - -realclean: clean - rm -f Makefile config.cache - -install: all - $(SHELL) $(updir1)/mkinstalldirs $(bindir) $(etcdir) - for i in $(PROGS) ; do \ - n=`echo $$i | sed '$(program_transform_name)'`; \ - $(INSTALL_PROGRAM) $$i $(bindir)/$$n; \ - done - -$(cygwin_build)/libcygwin.a: $(cygwin_build)/Makefile - @$(MAKE) -C $(@D) $(@F) - -$(mingw_build)/libmingw32.a: $(mingw_build)/Makefile - @$(MAKE) -C $(@D) $(@F) - -warn_dumper: - @echo '*** Not building dumper.exe since some required libraries are' - @echo '*** missing: libbfd.a and libintl.a.' - @echo '*** If you need this program, check out the naked-bfd and naked-intl' - @echo '*** sources from sources.redhat.com. Then, configure and build these' - @echo '*** libraries. Otherwise, you can safely ignore this warning.' - -dumper.exe: module_info.o parse_pe.o dumper.o $(ALL_DEP_LDLIBS) -ifdef VERBOSE - $(CXX) -o $@ ${wordlist 1,3,$^} -B$(cygwin_build)/ $(DUMPER_LDFLAGS) -else - @echo $(CXX) -o $@ ${wordlist 1,3,$^} ${filter-out -B%, $(DUMPER_LDFLAGS)};\ - $(CXX) -o $@ ${wordlist 1,3,$^} -B$(cygwin_build)/ $(DUMPER_LDFLAGS) -endif - -%.exe: %.o $(ALL_DEP_LDLIBS) -ifdef VERBOSE - $(CXX) -o $@ ${firstword $^} -B$(cygwin_build)/ $(ALL_LDFLAGS) -else - @echo $(CXX) -o $@ ${firstword $^} ${filter-out -B%, $(ALL_LDFLAGS)};\ - $(CXX) -o $@ ${firstword $^} -B$(cygwin_build)/ $(ALL_LDFLAGS) -endif diff --git a/winsup/utils/aclocal.m4 b/winsup/utils/aclocal.m4 deleted file mode 100644 index 754f640bb..000000000 --- a/winsup/utils/aclocal.m4 +++ /dev/null @@ -1,78 +0,0 @@ -dnl aclocal.m4 generated automatically by aclocal 1.3b - -dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without -dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A -dnl PARTICULAR PURPOSE. - -# Check to see if we're running under Win32, without using -# AC_CANONICAL_*. If so, set output variable EXEEXT to ".exe". -# Otherwise set it to "". - -dnl AM_EXEEXT() -dnl This knows we add .exe if we're building in the Cygwin -dnl environment. But if we're not, then it compiles a test program -dnl to see if there is a suffix for executables. -AC_DEFUN(AM_EXEEXT, -[AC_REQUIRE([AM_CYGWIN]) -AC_REQUIRE([AM_MINGW32]) -AC_MSG_CHECKING([for executable suffix]) -AC_CACHE_VAL(am_cv_exeext, -[if test "$CYGWIN" = yes || test "$MINGW32" = yes; then -am_cv_exeext=.exe -else -cat > am_c_test.c << 'EOF' -int main() { -/* Nothing needed here */ -} -EOF -${CC-cc} -o am_c_test $CFLAGS $CPPFLAGS $LDFLAGS am_c_test.c $LIBS 1>&5 -am_cv_exeext= -for file in am_c_test.*; do - case $file in - *.c) ;; - *.o) ;; - *) am_cv_exeext=`echo $file | sed -e s/am_c_test//` ;; - esac -done -rm -f am_c_test*]) -test x"${am_cv_exeext}" = x && am_cv_exeext=no -fi -EXEEXT="" -test x"${am_cv_exeext}" != xno && EXEEXT=${am_cv_exeext} -AC_MSG_RESULT(${am_cv_exeext}) -AC_SUBST(EXEEXT)]) - -# Check to see if we're running under Cygwin, without using -# AC_CANONICAL_*. If so, set output variable CYGWIN to "yes". -# Otherwise set it to "no". - -dnl AM_CYGWIN() -AC_DEFUN(AM_CYGWIN, -[AC_CACHE_CHECK(for Cygwin environment, am_cv_cygwin, -[AC_TRY_COMPILE(,[return __CYGWIN32__;], -am_cv_cygwin=yes, am_cv_cygwin=no) -rm -f conftest*]) -CYGWIN= -test "$am_cv_cygwin" = yes && CYGWIN=yes]) - - - -# Check to see if we're running under Mingw, without using -# AC_CANONICAL_*. If so, set output variable MINGW32 to "yes". -# Otherwise set it to "no". - -dnl AM_MINGW32() -AC_DEFUN(AM_MINGW32, -[AC_CACHE_CHECK(for Mingw32 environment, am_cv_mingw32, -[AC_TRY_COMPILE(,[return __MINGW32__;], -am_cv_mingw32=yes, am_cv_mingw32=no) -rm -f conftest*]) -MINGW32= -test "$am_cv_mingw32" = yes && MINGW32=yes]) - diff --git a/winsup/utils/configure b/winsup/utils/configure deleted file mode 100755 index 4e0fa4345..000000000 --- a/winsup/utils/configure +++ /dev/null @@ -1,1358 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -sitefile= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --site-file=FILE use FILE as the site file - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -site-file | --site-file | --site-fil | --site-fi | --site-f) - ac_prev=sitefile ;; - -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) - sitefile="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=mount.cc - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$sitefile"; then - if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi - fi -else - CONFIG_SITE="$sitefile" -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - - - - - - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:589: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:610: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:628: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - - -# Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:654: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:684: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:733: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:757: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi - -if test $host != $build; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -# Extract the first word of "${ac_tool_prefix}g++", so it can be a program name with args. -set dummy ${ac_tool_prefix}g++; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:793: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CXX="${ac_tool_prefix}g++" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CXX="$ac_cv_prog_CXX" -if test -n "$CXX"; then - echo "$ac_t""$CXX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_CXX"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "g++", so it can be a program name with args. -set dummy g++; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:825: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CXX="g++" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CXX" && ac_cv_prog_CXX="g++" -fi -fi -CXX="$ac_cv_prog_CXX" -if test -n "$CXX"; then - echo "$ac_t""$CXX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - CXX="g++" -fi -fi - -if test -z "$CXX"; then - # Extract the first word of "c++", so it can be a program name with args. -set dummy c++; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:861: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CXX="c++" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CXX="$ac_cv_prog_CXX" -if test -n "$CXX"; then - echo "$ac_t""$CXX" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -CXXFLAGS='$(CFLAGS)' - - -if test "$program_transform_name" = s,x,x,; then - program_transform_name= -else - # Double any \ or $. echo might interpret backslashes. - cat <<\EOF_SED > conftestsed -s,\\,\\\\,g; s,\$,$$,g -EOF_SED - program_transform_name="`echo $program_transform_name|sed -f conftestsed`" - rm -f conftestsed -fi -test "$program_prefix" != NONE && - program_transform_name="s,^,${program_prefix},; $program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" - -# sed with no file args requires a program. -test "$program_transform_name" = "" && program_transform_name="s,x,x," - - -if test "x$cross_compiling" = "xyes"; then - if test "x$program_transform_name" = "xs,x,x,"; then - program_transform_name="" - fi - if test "x$program_transform_name" = "x"; then - program_transform_name="s,^,$host-," - else - program_transform_name="$program_transform_name -e s,^,$host-," - fi -fi - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:936: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:990: checking for Cygwin environment" >&5 -if eval "test \"`echo '$''{'am_cv_cygwin'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - am_cv_cygwin=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - am_cv_cygwin=no -fi -rm -f conftest* -rm -f conftest* -fi - -echo "$ac_t""$am_cv_cygwin" 1>&6 -CYGWIN= -test "$am_cv_cygwin" = yes && CYGWIN=yes -echo $ac_n "checking for Mingw32 environment""... $ac_c" 1>&6 -echo "configure:1019: checking for Mingw32 environment" >&5 -if eval "test \"`echo '$''{'am_cv_mingw32'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - am_cv_mingw32=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - am_cv_mingw32=no -fi -rm -f conftest* -rm -f conftest* -fi - -echo "$ac_t""$am_cv_mingw32" 1>&6 -MINGW32= -test "$am_cv_mingw32" = yes && MINGW32=yes - - -echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1050: checking for executable suffix" >&5 -if eval "test \"`echo '$''{'am_cv_exeext'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$CYGWIN" = yes || test "$MINGW32" = yes; then -am_cv_exeext=.exe -else -cat > am_c_test.c << 'EOF' -int main() { -/* Nothing needed here */ -} -EOF -${CC-cc} -o am_c_test $CFLAGS $CPPFLAGS $LDFLAGS am_c_test.c $LIBS 1>&5 -am_cv_exeext= -for file in am_c_test.*; do - case $file in - *.c) ;; - *.o) ;; - *) am_cv_exeext=`echo $file | sed -e s/am_c_test//` ;; - esac -done -rm -f am_c_test* -fi - -test x"${am_cv_exeext}" = x && am_cv_exeext=no -fi -EXEEXT="" -test x"${am_cv_exeext}" != xno && EXEEXT=${am_cv_exeext} -echo "$ac_t""${am_cv_exeext}" 1>&6 - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@CC@%$CC%g -s%@CXX@%$CXX%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@EXEEXT@%$EXEEXT%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - - diff --git a/winsup/utils/configure.in b/winsup/utils/configure.in deleted file mode 100644 index aea20413f..000000000 --- a/winsup/utils/configure.in +++ /dev/null @@ -1,88 +0,0 @@ -dnl Autoconf configure script for Cygwin utilities. -dnl Copyright 1996, 1997, 1998, 1999, 2000 Cygnus Solutions. -dnl -dnl This file is part of Cygwin. -dnl -dnl This software is a copyrighted work licensed under the terms of the -dnl Cygwin license. Please consult the file "CYGWIN_LICENSE" for -dnl details. - -dnl Process this file with autoconf to produce a configure script. - -AC_PREREQ(2.12) - -AC_INIT(mount.cc) - -dnl FIXME: We temporarily define our own version of AC_PROG_CC. This is -dnl copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We -dnl are probably using a cross compiler, which will not be able to fully -dnl link an executable. This should really be fixed in autoconf -dnl itself. - -AC_DEFUN(LIB_AC_PROG_CC, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_PROG(CC, gcc, gcc) -if test -z "$CC"; then - AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -AC_PROG_CC_GNU - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -dnl Check whether -g works, even if CFLAGS is set, in case the package -dnl plays around with CFLAGS (such as to build both debugging and -dnl normal versions of a library), tasteless as that idea is. - ac_test_CFLAGS="${CFLAGS+set}" - ac_save_CFLAGS="$CFLAGS" - CFLAGS= - AC_PROG_CC_G - if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" - elif test $ac_cv_prog_cc_g = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-O2" - fi -else - GCC= - test "${CFLAGS+set}" = set || CFLAGS="-g" -fi -]) - -AC_DEFUN(LIB_AC_PROG_CXX, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl -AC_CHECK_TOOL(CXX, g++, g++) -if test -z "$CXX"; then - AC_CHECK_PROG(CXX, c++, c++, , , ) - test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) -fi - -CXXFLAGS='$(CFLAGS)' -]) - -AC_CANONICAL_SYSTEM - -LIB_AC_PROG_CC -LIB_AC_PROG_CXX - -AC_ARG_PROGRAM - -if test "x$cross_compiling" = "xyes"; then - if test "x$program_transform_name" = "xs,x,x,"; then - program_transform_name="" - fi - if test "x$program_transform_name" = "x"; then - program_transform_name="s,^,$host-," - else - program_transform_name="$program_transform_name -e s,^,$host-," - fi -fi - -AC_PROG_INSTALL - -AM_EXEEXT - -AC_OUTPUT(Makefile) - diff --git a/winsup/utils/cygcheck.cc b/winsup/utils/cygcheck.cc deleted file mode 100644 index f73ca860e..000000000 --- a/winsup/utils/cygcheck.cc +++ /dev/null @@ -1,1367 +0,0 @@ -/* cygcheck.cc - - Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. - - This file is part of Cygwin. - - This software is a copyrighted work licensed under the terms of the - Cygwin license. Please consult the file "CYGWIN_LICENSE" for - details. */ - -#include -#include -#include -#include -#include "cygwin/include/sys/cygwin.h" -#include "cygwin/include/mntent.h" -#include "cygwin/include/getopt.h" -#include "time.h" -#include "ctype.h" - -int verbose = 0; -int registry = 0; -int sysinfo = 0; -int givehelp = 0; -int keycheck = 0; -int check_setup = 0; - -#ifdef __GNUC__ -typedef long long longlong; -#else -typedef __int64 longlong; -#endif - -void dump_setup (int, char **, bool); - -static const char version[] = "$Revision$"; - -static const char *known_env_vars[] = { - "c_include_path", - "compiler_path", - "cxx_include_path", - "cygwin", - "cygwin32", - "dejagnu", - "expect", - "gcc_default_options", - "gcc_exec_prefix", - "home", - "ld_library_path", - "library_path", - "login", - "lpath", - "make_mode", - "makeflags", - "path", - "pwd", - "strace", - "tcl_library", - "user", - 0 -}; - -struct -{ - const char *name; - int missing_is_good; -} -static common_apps[] = -{ - {"bash", 0}, - {"cat", 0}, - {"cpp", 1}, - {"find", 0}, - {"gcc", 0}, - {"gdb", 0}, - {"ld", 0}, - {"ls", 0}, - {"make", 0}, - {"sh", 0}, - {0, 0} -}; - -static int num_paths = 0, max_paths = 0; -static char **paths = 0; - -/* - * keyeprint() is used to report failure modes - */ -static int -keyeprint (const char *name) -{ - fprintf (stderr, "cygcheck: %s failed: %lu\n", name, GetLastError ()); - return 1; -} - -static void -add_path (char *s, int maxlen) -{ - if (num_paths >= max_paths) - { - max_paths += 10; - if (paths) - paths = (char **) realloc (paths, max_paths * sizeof (char *)); - else - paths = (char **) malloc (max_paths * sizeof (char *)); - } - paths[num_paths] = (char *) malloc (maxlen + 1); - if (paths[num_paths] == NULL) - { - keyeprint ("add_path: malloc()"); - return; - } - memcpy (paths[num_paths], s, maxlen); - paths[num_paths][maxlen] = 0; - char *e = paths[num_paths] + strlen (paths[num_paths]); - if (e[-1] == '\\' && e[-2] != ':') - *--e = 0; - for (int i = 1; i < num_paths; i++) - if (strcasecmp (paths[num_paths], paths[i]) == 0) - return; - num_paths++; -} - -static void -init_paths () -{ - char tmp[4000], *sl; - add_path ((char *) ".", 1); /* to be replaced later */ - add_path ((char *) ".", 1); /* the current directory */ - if (GetSystemDirectory (tmp, 4000)) - add_path (tmp, strlen (tmp)); - else - keyeprint ("init_paths: GetSystemDirectory()"); - sl = strrchr (tmp, '\\'); - if (sl) - { - strcpy (sl, "\\SYSTEM"); - add_path (tmp, strlen (tmp)); - } - GetWindowsDirectory (tmp, 4000); - add_path (tmp, strlen (tmp)); - - char *wpath = getenv ("PATH"); - if (wpath) - { - char *b, *e; - b = wpath; - while (1) - { - for (e = b; *e && *e != ';'; e++); - add_path (b, e - b); - if (!*e) - break; - b = e + 1; - } - } - else - printf ("WARNING: PATH is not set at all!\n"); -} - -static char * -find_on_path (char *file, char *default_extension, - int showall = 0, int search_sysdirs = 0) -{ - static char rv[4000]; - char tmp[4000], *ptr = rv; - - if (file == NULL) - { - keyeprint ("find_on_path: NULL pointer for file"); - return 0; - } - - if (default_extension == NULL) - { - keyeprint ("find_on_path: NULL pointer for default_extension"); - return 0; - } - - if (strchr (file, ':') || strchr (file, '\\') || strchr (file, '/')) - return file; - - if (strchr (file, '.')) - default_extension = (char *) ""; - - for (int i = 0; i < num_paths; i++) - { - if (!search_sysdirs && (i == 0 || i == 2 || i == 3)) - continue; - if (i == 0 || !search_sysdirs || strcasecmp (paths[i], paths[0])) - { - sprintf (ptr, "%s\\%s%s", paths[i], file, default_extension); - if (GetFileAttributes (ptr) != (DWORD) - 1) - { - if (showall) - printf ("Found: %s\n", ptr); - if (ptr == tmp && verbose) - printf ("Warning: %s hides %s\n", rv, ptr); - ptr = tmp; - } - } - } - - if (ptr == tmp) - return rv; - - return 0; -} - -#define DID_NEW 1 -#define DID_ACTIVE 2 -#define DID_INACTIVE 3 - -struct Did -{ - Did *next; - char *file; - int state; -}; -static Did *did = 0; - -static Did * -already_did (char *file) -{ - Did *d; - for (d = did; d; d = d->next) - if (strcasecmp (d->file, file) == 0) - return d; - d = (Did *) malloc (sizeof (Did)); - d->file = strdup (file); - d->next = did; - d->state = DID_NEW; - did = d; - return d; -} - -static int -get_word (HANDLE fh, int offset) -{ - short rv; - unsigned r; - - if (SetFilePointer (fh, offset, 0, FILE_BEGIN) == INVALID_SET_FILE_POINTER - && GetLastError () != NO_ERROR) - keyeprint ("get_word: SetFilePointer()"); - - if (!ReadFile (fh, &rv, 2, (DWORD *) & r, 0)) - keyeprint ("get_word: Readfile()"); - - return rv; -} - -static int -get_dword (HANDLE fh, int offset) -{ - int rv; - unsigned r; - - if (SetFilePointer (fh, offset, 0, FILE_BEGIN) == INVALID_SET_FILE_POINTER - && GetLastError () != NO_ERROR) - keyeprint ("get_word: SetFilePointer()"); - - if (!ReadFile (fh, &rv, 4, (DWORD *) & r, 0)) - keyeprint ("get_dword: Readfile()"); - - return rv; -} - -struct Section -{ - char name[8]; - int virtual_size; - int virtual_address; - int size_of_raw_data; - int pointer_to_raw_data; -}; - -static int -rva_to_offset (int rva, char *sections, int nsections, int *sz) -{ - int i; - - if (sections == NULL) - { - keyeprint ("rva_to_offset: NULL passed for sections"); - return 0; - } - - for (i = 0; i < nsections; i++) - { - Section *s = (Section *) (sections + i * 40); -#if 0 - printf ("%08x < %08x < %08x ? %08x\n", - s->virtual_address, rva, - s->virtual_address + s->virtual_size, s->pointer_to_raw_data); -#endif - if (rva >= s->virtual_address - && rva < s->virtual_address + s->virtual_size) - { - if (sz) - *sz = s->virtual_address + s->virtual_size - rva; - return rva - s->virtual_address + s->pointer_to_raw_data; - } - } - return 0; /* punt */ -} - -struct ExpDirectory -{ - int flags; - int timestamp; - short major_ver; - short minor_ver; - int name_rva; -}; - -struct ImpDirectory -{ - unsigned characteristics; - unsigned timestamp; - unsigned forwarder_chain; - unsigned name_rva; - unsigned iat_rva; -}; - - -static void track_down (char *file, char *suffix, int lvl); - -#define CYGPREFIX (sizeof ("%%% Cygwin ") - 1) -static void -cygwin_info (HANDLE h) -{ - char *buf, *bufend, *buf_start = NULL; - const char *hello = " Cygwin DLL version info:\n"; - DWORD size = GetFileSize (h, NULL); - DWORD n; - - if (size == 0xffffffff) - return; - - buf_start = buf = (char *) calloc (1, size + 1); - if (buf == NULL) - { - keyeprint ("cygwin_info: malloc()"); - return; - } - - (void) SetFilePointer (h, 0, NULL, FILE_BEGIN); - if (!ReadFile (h, buf, size, &n, NULL)) - { - free (buf_start); - return; - } - - static char dummy[] = "\0\0\0\0\0\0\0"; - char *dll_major = dummy; - bufend = buf + size; - while (buf < bufend) - if ((buf = (char *) memchr (buf, '%', bufend - buf)) == NULL) - break; - else if (strncmp ("%%% Cygwin ", buf, CYGPREFIX) != 0) - buf++; - else - { - char *p = strchr (buf += CYGPREFIX, '\n'); - if (!p) - break; - if (strncasecmp (buf, "dll major:", 10) == 0) - { - dll_major = buf + 11; - continue; - } - char *s, pbuf[80]; - int len; - len = 1 + p - buf; - if (strncasecmp (buf, "dll minor:", 10) != 0) - s = buf; - else - { - char c = dll_major[1]; - dll_major[1] = '\0'; - int maj = atoi (dll_major); - dll_major[1] = c; - int min = atoi (dll_major + 1); - sprintf (pbuf, "DLL version: %d.%d.%.*s", maj, min, len - 11, buf + 11); - len = strlen (s = pbuf); - } - if (strncmp (s, "dll", 3) == 0) - memcpy (s, "DLL", 3); - else if (strncmp (s, "api", 3) == 0) - memcpy (s, "API", 3); - else if (islower (*s)) - *s = toupper (*s); - fprintf (stdout, "%s %.*s", hello, len, s); - hello = ""; - } - - if (!*hello) - puts (""); - - free (buf_start); - return; -} - -static void -dll_info (const char *path, HANDLE fh, int lvl, int recurse) -{ - DWORD junk; - int i; - int pe_header_offset = get_dword (fh, 0x3c); - int opthdr_ofs = pe_header_offset + 4 + 20; - unsigned short v[6]; - - if (path == NULL) - { - keyeprint ("dll_info: NULL passed for path"); - return; - } - - if (SetFilePointer (fh, opthdr_ofs + 40, 0, FILE_BEGIN) == INVALID_SET_FILE_POINTER - && GetLastError () != NO_ERROR) - keyeprint ("dll_info: SetFilePointer()"); - - if (!ReadFile (fh, &v, sizeof (v), &junk, 0)) - keyeprint ("dll_info: Readfile()"); - - if (verbose) - printf (" - os=%d.%d img=%d.%d sys=%d.%d\n", - v[0], v[1], v[2], v[3], v[4], v[5]); - else - printf ("\n"); - - int num_entries = get_dword (fh, opthdr_ofs + 92); - int export_rva = get_dword (fh, opthdr_ofs + 96); - int export_size = get_dword (fh, opthdr_ofs + 100); - int import_rva = get_dword (fh, opthdr_ofs + 104); - int import_size = get_dword (fh, opthdr_ofs + 108); - - int nsections = get_word (fh, pe_header_offset + 4 + 2); - char *sections = (char *) malloc (nsections * 40); - - if (SetFilePointer (fh, pe_header_offset + 4 + 20 + - get_word (fh, pe_header_offset + 4 + 16), 0, - FILE_BEGIN) == INVALID_SET_FILE_POINTER - && GetLastError () != NO_ERROR) - keyeprint ("dll_info: SetFilePointer()"); - - if (!ReadFile (fh, sections, nsections * 40, &junk, 0)) - keyeprint ("dll_info: Readfile()"); - - if (verbose && num_entries >= 1 && export_size > 0) - { - int expsz; - int expbase = rva_to_offset (export_rva, sections, nsections, &expsz); - - if (expbase) - { - if (SetFilePointer (fh, expbase, 0, FILE_BEGIN) == INVALID_SET_FILE_POINTER - && GetLastError () != NO_ERROR) - keyeprint ("dll_info: SetFilePointer()"); - - unsigned char *exp = (unsigned char *) malloc (expsz); - - if (!ReadFile (fh, exp, expsz, &junk, 0)) - keyeprint ("dll_info: Readfile()"); - - ExpDirectory *ed = (ExpDirectory *) exp; - int ofs = ed->name_rva - export_rva; - struct tm *tm = localtime ((const time_t *) &(ed->timestamp)); - if (tm->tm_year < 60) - tm->tm_year += 2000; - if (tm->tm_year < 200) - tm->tm_year += 1900; - printf ("%*c", lvl + 2, ' '); - printf ("\"%s\" v%d.%d ts=", exp + ofs, - ed->major_ver, ed->minor_ver); - printf ("%d/%d/%d %d:%02d\n", - tm->tm_year, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min); - } - } - - if (num_entries >= 2 && import_size > 0 && recurse) - { - int impsz; - int impbase = rva_to_offset (import_rva, sections, nsections, &impsz); - if (impbase) - { - if (SetFilePointer (fh, impbase, 0, FILE_BEGIN) == INVALID_SET_FILE_POINTER - && GetLastError () != NO_ERROR) - keyeprint ("dll_info: SetFilePointer()"); - - unsigned char *imp = (unsigned char *) malloc (impsz); - if (imp == NULL) - { - keyeprint ("dll_info: malloc()"); - return; - } - - if (!ReadFile (fh, imp, impsz, &junk, 0)) - keyeprint ("dll_info: Readfile()"); - - ImpDirectory *id = (ImpDirectory *) imp; - for (i = 0; id[i].name_rva; i++) - { - /* int ofs = id[i].name_rva - import_rva; */ - track_down ((char *) imp + id[i].name_rva - import_rva, - (char *) ".dll", lvl + 2); - } - } - } - if (strstr (path, "\\cygwin1.dll")) - cygwin_info (fh); -} - -static void -track_down (char *file, char *suffix, int lvl) -{ - if (file == NULL) - { - keyeprint ("track_down: malloc()"); - return; - } - - if (suffix == NULL) - { - keyeprint ("track_down: malloc()"); - return; - } - - char *path = find_on_path (file, suffix, 0, 1); - if (!path) - { - printf ("Error: could not find %s\n", file); - return; - } - - Did *d = already_did (file); - switch (d->state) - { - case DID_NEW: - break; - case DID_ACTIVE: - if (verbose) - { - if (lvl) - printf ("%*c", lvl, ' '); - printf ("%s", path); - printf (" (recursive)\n"); - } - return; - case DID_INACTIVE: - if (verbose) - { - if (lvl) - printf ("%*c", lvl, ' '); - printf ("%s", path); - printf (" (already done)\n"); - } - return; - default: - break; - } - - if (lvl) - printf ("%*c", lvl, ' '); - - if (!path) - { - printf ("%s not found\n", file); - return; - } - - printf ("%s", path); - - HANDLE fh = - CreateFile (path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, - NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - if (fh == INVALID_HANDLE_VALUE) - { - printf (" - Cannot open\n"); - return; - } - - d->state = DID_ACTIVE; - - dll_info (path, fh, lvl, 1); - d->state = DID_INACTIVE; - if (!CloseHandle (fh)) - keyeprint ("track_down: CloseHandle()"); -} - -static void -ls (char *f) -{ - HANDLE h = CreateFile (f, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, - 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - BY_HANDLE_FILE_INFORMATION info; - - if (!GetFileInformationByHandle (h, &info)) - keyeprint ("ls: GetFileInformationByHandle()"); - - SYSTEMTIME systime; - - if (!FileTimeToSystemTime (&info.ftLastWriteTime, &systime)) - keyeprint ("ls: FileTimeToSystemTime()"); - printf ("%5dk %04d/%02d/%02d %s", - (((int) info.nFileSizeLow) + 512) / 1024, - systime.wYear, systime.wMonth, systime.wDay, f); - dll_info (f, h, 16, 0); - if (!CloseHandle (h)) - keyeprint ("ls: CloseHandle()"); -} - -static void -cygcheck (char *app) -{ - char *papp = find_on_path (app, (char *) ".exe", 1, 0); - if (!papp) - { - printf ("Error: could not find %s\n", app); - return; - } - char *s = strdup (papp); - char *sl = 0, *t; - for (t = s; *t; t++) - if (*t == '/' || *t == '\\' || *t == ':') - sl = t; - if (sl == 0) - paths[0] = (char *) "."; - else - { - *sl = 0; - paths[0] = s; - } - did = 0; - track_down (papp, (char *) ".exe", 0); -} - - -extern char **environ; - -struct RegInfo -{ - RegInfo *prev; - char *name; - HKEY key; -}; - -static void -show_reg (RegInfo * ri, int nest) -{ - if (!ri) - return; - show_reg (ri->prev, 1); - if (nest) - printf ("%s\\", ri->name); - else - printf ("%s\n", ri->name); -} - -static void -scan_registry (RegInfo * prev, HKEY hKey, char *name, int cygnus) -{ - RegInfo ri; - ri.prev = prev; - ri.name = name; - ri.key = hKey; - - char *cp; - for (cp = name; *cp; cp++) - if (strncasecmp (cp, "cygnus", 6) == 0) - cygnus = 1; - - DWORD num_subkeys, max_subkey_len, num_values; - DWORD max_value_len, max_valdata_len, i; - if (RegQueryInfoKey (hKey, 0, 0, 0, &num_subkeys, &max_subkey_len, 0, - &num_values, &max_value_len, &max_valdata_len, 0, 0) - != ERROR_SUCCESS) - { -#if 0 - char tmp[400]; - FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, 0, GetLastError (), - MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), tmp, 400, 0); - printf ("RegQueryInfoKey: %s\n", tmp); -#endif - return; - } - - if (cygnus) - { - show_reg (&ri, 0); - - char *value_name = (char *) malloc (max_value_len + 1); - if (value_name == NULL) - { - keyeprint ("scan_registry: malloc()"); - return; - } - - char *value_data = (char *) malloc (max_valdata_len + 1); - if (value_data == NULL) - { - keyeprint ("scan_registry: malloc()"); - return; - } - - for (i = 0; i < num_values; i++) - { - DWORD dlen = max_valdata_len + 1; - DWORD nlen = max_value_len + 1; - DWORD type; - RegEnumValue (hKey, i, value_name, &nlen, 0, - &type, (BYTE *) value_data, &dlen); - { - printf (" %s = ", i ? value_name : "(default)"); - switch (type) - { - case REG_DWORD: - printf ("0x%08x\n", *(unsigned *) value_data); - break; - case REG_EXPAND_SZ: - case REG_SZ: - printf ("`%s'\n", value_data); - break; - default: - printf ("(unsupported type)\n"); - break; - } - } - } - free (value_name); - free (value_data); - } - - char *subkey_name = (char *) malloc (max_subkey_len + 1); - for (i = 0; i < num_subkeys; i++) - { - if (RegEnumKey (hKey, i, subkey_name, max_subkey_len + 1) == - ERROR_SUCCESS) - { - HKEY sKey; - if (RegOpenKeyEx (hKey, subkey_name, 0, KEY_READ, &sKey) - == ERROR_SUCCESS) - { - scan_registry (&ri, sKey, subkey_name, cygnus); - if (RegCloseKey (sKey) != ERROR_SUCCESS) - keyeprint ("scan_registry: RegCloseKey()"); - } - } - } - free (subkey_name); -} - -static void -dump_sysinfo () -{ - int i, j; - char tmp[4000]; - time_t now; - char *found_cygwin_dll; - - printf ("\nCygwin Win95/NT Configuration Diagnostics\n"); - time (&now); - printf ("Current System Time: %s\n", ctime (&now)); - - OSVERSIONINFO osversion; - osversion.dwOSVersionInfoSize = sizeof (osversion); - if (!GetVersionEx (&osversion)) - keyeprint ("dump_sysinfo: GetVersionEx()"); - char *osname = (char *) "unknown OS"; - switch (osversion.dwPlatformId) - { - case VER_PLATFORM_WIN32s: - osname = (char *) "32s"; - break; - case VER_PLATFORM_WIN32_WINDOWS: - switch (osversion.dwMinorVersion) - { - case 0: - if (strchr(osversion.szCSDVersion, 'C')) - osname = (char *) "95 OSR2"; - else - osname = (char *) "95"; - break; - case 10: - if (strchr(osversion.szCSDVersion, 'A')) - osname = (char *) "98 SE"; - else - osname = (char *) "98"; - break; - case 90: - osname = (char *) "ME"; - break; - default: - osname = (char *) "9X"; - break; - } - break; - case VER_PLATFORM_WIN32_NT: - if (osversion.dwMajorVersion == 5) - { - BOOL more_info = FALSE; - OSVERSIONINFOEX osversionex; - osversionex.dwOSVersionInfoSize = sizeof (osversionex); - if (GetVersionEx ((OSVERSIONINFO *)&osversionex)) - more_info = TRUE; - if (osversion.dwMinorVersion == 0) - { - if (!more_info) - osname = (char *) "2000"; - else if (osversionex.wProductType == VER_NT_SERVER - || osversionex.wProductType == VER_NT_DOMAIN_CONTROLLER) - { - if (osversionex.wSuiteMask & VER_SUITE_DATACENTER) - osname = (char *) "2000 Datacenter Server"; - else if (osversionex.wSuiteMask & VER_SUITE_ENTERPRISE) - osname = (char *) "2000 Advanced Server"; - else - osname = (char *) "2000 Server"; - } - else - osname = (char *) "2000 Professional"; - } - else - { - if (!more_info) - osname = (char *) "XP"; - else if (osversionex.wProductType == VER_NT_SERVER - || osversionex.wProductType == VER_NT_DOMAIN_CONTROLLER) - { - if (osversionex.wSuiteMask & VER_SUITE_ENTERPRISE) - osname = (char *) ".NET Enterprise Server"; - else - osname = (char *) ".NET Server"; - } - else if (osversionex.wSuiteMask & VER_SUITE_PERSONAL) - osname = (char *) "XP Home Edition"; - else - osname = (char *) "XP Professional"; - - } - } - else - osname = (char *) "NT"; - break; - default: - osname = (char *) "??"; - break; - } - printf ("Windows %s Ver %lu.%lu Build %lu %s\n\n", osname, - osversion.dwMajorVersion, osversion.dwMinorVersion, - osversion.dwPlatformId == VER_PLATFORM_WIN32_NT ? - osversion.dwBuildNumber : (osversion.dwBuildNumber & 0xffff), - osversion.dwPlatformId == VER_PLATFORM_WIN32_NT ? - osversion.szCSDVersion : ""); - - printf ("Path:"); - char *s = getenv ("PATH"), *e; - char sep = strchr (s, ';') ? ';' : ':'; - int count_path_items = 0; - while (1) - { - for (e = s; *e && *e != sep; e++); - printf ("\t%.*s\n", e - s, s); - count_path_items++; - if (!*e) - break; - s = e + 1; - } - - if (!GetSystemDirectory (tmp, 4000)) - keyeprint ("dump_sysinfo: GetSystemDirectory()"); - printf ("\nSysDir: %s\n", tmp); - - GetWindowsDirectory (tmp, 4000); - printf ("WinDir: %s\n\n", tmp); - - - if (givehelp) - printf ("Here's some environment variables that may affect cygwin:\n"); - for (i = 0; environ[i]; i++) - { - char *eq = strchr (environ[i], '='); - if (!eq) - continue; - /* int len = eq - environ[i]; */ - for (j = 0; known_env_vars[j]; j++) - { - *eq = 0; - if (strcmp (environ[i], "PATH") == 0) - continue; /* we handle this one specially */ - if (strcasecmp (environ[i], known_env_vars[j]) == 0) - printf ("%s = `%s'\n", environ[i], eq + 1); - *eq = '='; - } - } - printf ("\n"); - - if (verbose) - { - if (givehelp) - printf ("Here's the rest of your environment variables:\n"); - for (i = 0; environ[i]; i++) - { - int found = 0; - char *eq = strchr (environ[i], '='); - if (!eq) - continue; - /* int len = eq - environ[i]; */ - for (j = 0; known_env_vars[j]; j++) - { - *eq = 0; - if (strcasecmp (environ[i], known_env_vars[j]) == 0) - found = 1; - *eq = '='; - } - if (!found) - { - *eq = 0; - printf ("%s = `%s'\n", environ[i], eq + 1); - *eq = '='; - } - } - printf ("\n"); - } - - if (registry) - { - if (givehelp) - printf ("Scanning registry for keys with `Cygnus' in them...\n"); -#if 0 - /* big and not generally useful */ - scan_registry (0, HKEY_CLASSES_ROOT, (char *) "HKEY_CLASSES_ROOT", 0); -#endif - scan_registry (0, HKEY_CURRENT_CONFIG, - (char *) "HKEY_CURRENT_CONFIG", 0); - scan_registry (0, HKEY_CURRENT_USER, (char *) "HKEY_CURRENT_USER", 0); - scan_registry (0, HKEY_LOCAL_MACHINE, (char *) "HKEY_LOCAL_MACHINE", 0); -#if 0 - /* the parts we need are duplicated in HKEY_CURRENT_USER anyway */ - scan_registry (0, HKEY_USERS, (char *) "HKEY_USERS", 0); -#endif - printf ("\n"); - } - else - printf ("Use `-r' to scan registry\n\n"); - - if (givehelp) - { - printf ("Listing available drives...\n"); - printf ("Drv Type Size Free Flags Name\n"); - } - int prev_mode = - SetErrorMode (SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX); - int drivemask = GetLogicalDrives (); - - HINSTANCE k32 = LoadLibrary ("kernel32.dll"); - BOOL (WINAPI * gdfse) (LPCSTR, long long *, long long *, long long *) = - (BOOL (WINAPI *) (LPCSTR, long long *, long long *, long long *)) - GetProcAddress (k32, "GetDiskFreeSpaceExA"); - - for (i = 0; i < 26; i++) - { - if (!(drivemask & (1 << i))) - continue; - char drive[4], name[200], fsname[200]; - DWORD serno = 0, maxnamelen = 0, flags = 0; - name[0] = name[0] = fsname[0] = 0; - sprintf (drive, "%c:\\", i + 'a'); - /* Report all errors, except if the Volume is ERROR_NOT_READY. - ERROR_NOT_READY is returned when removeable media drives are empty - (CD, floppy, etc.) */ - if (!GetVolumeInformation (drive, name, sizeof (name), &serno, &maxnamelen, &flags, - fsname, sizeof (fsname)) - && GetLastError () != ERROR_NOT_READY) - keyeprint ("dump_sysinfo: GetVolumeInformation()"); - - int dtype = GetDriveType (drive); - char drive_type[4] = "unk"; - switch (dtype) - { - case DRIVE_REMOVABLE: - strcpy (drive_type, "fd "); - break; - case DRIVE_FIXED: - strcpy (drive_type, "hd "); - break; - case DRIVE_REMOTE: - strcpy (drive_type, "net"); - break; - case DRIVE_CDROM: - strcpy (drive_type, "cd "); - break; - case DRIVE_RAMDISK: - strcpy (drive_type, "ram"); - break; - default: - strcpy (drive_type, "unk"); - } - - long capacity_mb = -1; - int percent_full = -1; - - long long free_me = 0ULL, free_bytes = 0ULL, total_bytes = 1ULL; - if (gdfse != NULL && gdfse (drive, &free_me, &total_bytes, &free_bytes)) - { - capacity_mb = total_bytes / (1024L * 1024L); - percent_full = 100 - (int) ((100.0 * free_me) / total_bytes); - } - else - { - DWORD spc = 0, bps = 0, fc = 0, tc = 1; - if (GetDiskFreeSpace (drive, &spc, &bps, &fc, &tc)) - { - capacity_mb = (spc * bps * tc) / (1024 * 1024); - percent_full = 100 - (int) ((100.0 * fc) / tc); - } - } - - printf ("%.2s %s %-6s ", drive, drive_type, fsname); - if (capacity_mb >= 0) - printf ("%5dMb %3d%% ", (int) capacity_mb, (int) percent_full); - else - printf (" N/A N/A "); - printf ("%s %s %s %s %s %s %s\n", - flags & FS_CASE_IS_PRESERVED ? "CP" : " ", - flags & FS_CASE_SENSITIVE ? "CS" : " ", - flags & FS_UNICODE_STORED_ON_DISK ? "UN" : " ", - flags & FS_PERSISTENT_ACLS ? "PA" : " ", - flags & FS_FILE_COMPRESSION ? "FC" : " ", - flags & FS_VOL_IS_COMPRESSED ? "VC" : " ", -#if 0 - flags & FILE_SUPPORTS_ENCRYPTION ? "EN" : " ", - flags & FILE_SUPPORTS_OBJECT_IDS ? "OI" : " ", - flags & FILE_SUPPORTS_REPARSE_POINTS ? "RP" : " ", - flags & FILE_SUPPORTS_SPARSE_FILES ? "SP" : " ", - flags & FILE_VOLUME_QUOTAS ? "QU" : " ", -#endif - name); - } - - if (!FreeLibrary (k32)) - keyeprint ("dump_sysinfo: FreeLibrary()"); - SetErrorMode (prev_mode); - if (givehelp) - { - printf ("fd=floppy, hd=hard drive, cd=CD-ROM, net=Network Share\n"); - printf ("CP=Case Preserving, CS=Case Sensitive, UN=Unicode\n"); - printf - ("PA=Persistent ACLS, FC=File Compression, VC=Volume Compression\n"); - } - printf ("\n"); - - unsigned ml_fsname = 4, ml_dir = 7, ml_type = 6; - - struct mntent *mnt; - setmntent (0, 0); - while ((mnt = getmntent (0))) - { - unsigned n = (int) strlen (mnt->mnt_fsname); - if (ml_fsname < n) - ml_fsname = n; - n = (int) strlen (mnt->mnt_dir); - if (ml_dir < n) - ml_dir = n; - } - - if (givehelp) - { - printf - ("Mount entries: these map POSIX directories to your NT drives.\n"); - printf ("%-*s %-*s %-*s %s\n", ml_fsname, "-NT-", ml_dir, "-POSIX-", - ml_type, "-Type-", "-Flags-"); - } - - setmntent (0, 0); - while ((mnt = getmntent (0))) - { - printf ("%-*s %-*s %-*s %s\n", - ml_fsname, mnt->mnt_fsname, - ml_dir, mnt->mnt_dir, ml_type, mnt->mnt_type, mnt->mnt_opts); - } - printf ("\n"); - - add_path ((char *) "\\bin", 4); /* just in case */ - - if (givehelp) - printf - ("Looking to see where common programs can be found, if at all...\n"); - for (i = 0; common_apps[i].name; i++) - if (!find_on_path ((char *) common_apps[i].name, (char *) ".exe", 1, 0)) - { - if (common_apps[i].missing_is_good) - printf ("Not Found: %s (good!)\n", common_apps[i].name); - else - printf ("Not Found: %s\n", common_apps[i].name); - } - printf ("\n"); - - if (givehelp) - printf ("Looking for various Cygnus DLLs... (-v gives version info)\n"); - for (i = 0; i < num_paths; i++) - { - WIN32_FIND_DATA ffinfo; - sprintf (tmp, "%s/*.*", paths[i]); - HANDLE ff = FindFirstFile (tmp, &ffinfo); - int found = (ff != INVALID_HANDLE_VALUE); - found_cygwin_dll = NULL; - while (found) - { - char *f = ffinfo.cFileName; - if (strcasecmp (f + strlen (f) - 4, ".dll") == 0) - { - if (strncasecmp (f, "cyg", 3) == 0) - { - sprintf (tmp, "%s\\%s", paths[i], f); - if (strcasecmp (f, "cygwin1.dll") == 0) - found_cygwin_dll = strdup (tmp); - else - ls (tmp); - } - } - found = FindNextFile (ff, &ffinfo); - } - if (found_cygwin_dll) - { - ls (found_cygwin_dll); - free (found_cygwin_dll); - } - - FindClose (ff); - } -} - -static int -check_keys () -{ - HANDLE h = CreateFileA ("CONIN$", GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - - if (h == INVALID_HANDLE_VALUE || h == NULL) - return (keyeprint ("check_key: Opening CONIN$")); - - DWORD mode; - - if (!GetConsoleMode (h, &mode)) - keyeprint ("check_keys: GetConsoleMode()"); - else - { - mode &= ~ENABLE_PROCESSED_INPUT; - if (!SetConsoleMode (h, mode)) - keyeprint ("check_keys: GetConsoleMode()"); - } - - fputs ("\nThis key check works only in a console window,", stderr); - fputs (" _NOT_ in a terminal session!\n", stderr); - fputs ("Abort with Ctrl+C if in a terminal session.\n\n", stderr); - fputs ("Press `q' to exit.\n", stderr); - - INPUT_RECORD in, prev_in; - - // Drop first key - ReadConsoleInput (h, &in, 1, &mode); - - memset (&in, 0, sizeof in); - - do - { - prev_in = in; - if (!ReadConsoleInput (h, &in, 1, &mode)) - keyeprint ("ReadConsoleInput"); - - if (!memcmp (&in, &prev_in, sizeof in)) - continue; - - switch (in.EventType) - { - case KEY_EVENT: - printf ("%s %ux VK: 0x%02x VS: 0x%02x A: 0x%02x CTRL: ", - in.Event.KeyEvent.bKeyDown ? "Pressed " : "Released", - in.Event.KeyEvent.wRepeatCount, - in.Event.KeyEvent.wVirtualKeyCode, - in.Event.KeyEvent.wVirtualScanCode, - (unsigned char) in.Event.KeyEvent.uChar.AsciiChar); - fputs (in.Event.KeyEvent.dwControlKeyState & CAPSLOCK_ON ? - "CL " : "-- ", stdout); - fputs (in.Event.KeyEvent.dwControlKeyState & ENHANCED_KEY ? - "EK " : "-- ", stdout); - fputs (in.Event.KeyEvent.dwControlKeyState & LEFT_ALT_PRESSED ? - "LA " : "-- ", stdout); - fputs (in.Event.KeyEvent.dwControlKeyState & LEFT_CTRL_PRESSED ? - "LC " : "-- ", stdout); - fputs (in.Event.KeyEvent.dwControlKeyState & NUMLOCK_ON ? - "NL " : "-- ", stdout); - fputs (in.Event.KeyEvent.dwControlKeyState & RIGHT_ALT_PRESSED ? - "RA " : "-- ", stdout); - fputs (in.Event.KeyEvent.dwControlKeyState & RIGHT_CTRL_PRESSED ? - "RC " : "-- ", stdout); - fputs (in.Event.KeyEvent.dwControlKeyState & SCROLLLOCK_ON ? - "SL " : "-- ", stdout); - fputs (in.Event.KeyEvent.dwControlKeyState & SHIFT_PRESSED ? - "SH " : "-- ", stdout); - fputc ('\n', stdout); - break; - - default: - break; - } - } - while (in.EventType != KEY_EVENT || - in.Event.KeyEvent.bKeyDown != FALSE || - in.Event.KeyEvent.uChar.AsciiChar != 'q'); - - CloseHandle (h); - return 0; -} - -static void -usage (FILE *stream, int status) -{ - fprintf (stream, "\ -Usage: cygcheck [OPTIONS] [program ...]\n\ - -c, --check-setup check packages installed via setup.exe\n\ - -s, --sysinfo system information (not with -k)\n\ - -v, --verbose verbose output (indented) (for -s or programs)\n\ - -r, --registry registry search (requires -s)\n\ - -k, --keycheck perform a keyboard check session (not with -s)\n\ - -h, --help give help about the info (not with -c)\n\ - -V, --version output version information and exit\n\ -You must at least give either -s or -k or a program name\n"); - exit (status); -} - -struct option longopts[] = { - {"check-setup", no_argument, NULL, 'c'}, - {"sysinfo", no_argument, NULL, 's'}, - {"registry", no_argument, NULL, 'r'}, - {"verbose", no_argument, NULL, 'v'}, - {"keycheck", no_argument, NULL, 'k'}, - {"help", no_argument, NULL, 'h'}, - {"version", no_argument, 0, 'z'}, - {0, no_argument, NULL, 0} -}; - -static char opts[] = "chkrsvV"; - -static void -print_version () -{ - const char *v = strchr (version, ':'); - int len; - if (!v) - { - v = "?"; - len = 1; - } - else - { - v += 2; - len = strchr (v, ' ') - v; - } - printf ("\ -cygcheck version %.*s\n\ -System Checker for Cygwin\n\ -Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.\n\ -Compiled on %s", len, v, __DATE__); -} - -int -main (int argc, char **argv) -{ - int i; - - while ((i = getopt_long (argc, argv, opts, longopts, NULL)) != EOF) - switch (i) - { - case 's': - sysinfo = 1; - break; - case 'c': - check_setup = 1; - break; - case 'r': - registry = 1; - break; - case 'v': - verbose = 1; - break; - case 'k': - keycheck = 1; - break; - case 'h': - givehelp = 1; - break; - case 'V': - print_version (); - exit (0); - default: - usage (stderr, 1); - /*NOTREACHED*/} - argc -= optind; - argv += optind; - - if (argc == 0 && !sysinfo && !keycheck && !check_setup) - if (givehelp) - usage (stdout, 0); - else - usage (stderr, 1); - - if ((check_setup || sysinfo) && keycheck) - usage (stderr, 1); - - if (keycheck) - return check_keys (); - - init_paths (); - - /* FIXME: Add help for check_setup */ - if (argc >= 1 && givehelp && !check_setup) - { - if (argc == 1) - { - printf - ("Here is where the OS will find your program, and which dlls\n"); - printf ("will be used for it. Use -v to see DLL version info\n"); - } - else - { - printf - ("Here is where the OS will find your programs, and which dlls\n"); - printf ("will be used for them. Use -v to see DLL version info\n"); - } - - if (!sysinfo) - printf ("\n"); - } - - if (check_setup) - { - dump_setup (verbose, argv, true); - puts (""); - } - else - for (i = 0; i < argc; i++) - { - cygcheck (argv[i]); - puts (""); - } - - if (sysinfo) - { - dump_sysinfo (); - if (!check_setup) - { - puts (""); - dump_setup (verbose, NULL, false); - puts (""); - } - } - - if (!givehelp) - puts ("Use -h to see help about each section"); - - return 0; -} diff --git a/winsup/utils/cygpath.cc b/winsup/utils/cygpath.cc deleted file mode 100644 index 81cd69ee6..000000000 --- a/winsup/utils/cygpath.cc +++ /dev/null @@ -1,498 +0,0 @@ -/* cygpath.cc -- convert pathnames between Windows and Unix format - Copyright 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#define NOCOMATTRIBUTE - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static char *prog_name; -static char *file_arg; -static char *close_arg; -static int path_flag, unix_flag, windows_flag, absolute_flag; -static int shortname_flag, ignore_flag, allusers_flag, output_flag; - -static struct option long_options[] = -{ - { (char *) "help", no_argument, NULL, 'h' }, - { (char *) "absolute", no_argument, NULL, 'a'}, - { (char *) "option", no_argument, NULL, 'o'}, - { (char *) "path", no_argument, NULL, 'p' }, - { (char *) "close", required_argument, (int *) &close_arg, 'c'}, - { (char *) "unix", no_argument, NULL, 'u' }, - { (char *) "file", required_argument, (int *) &file_arg, 'f'}, - { (char *) "version", no_argument, NULL, 'v' }, - { (char *) "windows", no_argument, NULL, 'w' }, - { (char *) "short-name", no_argument, NULL, 's' }, - { (char *) "windir", no_argument, NULL, 'W' }, - { (char *) "sysdir", no_argument, NULL, 'S' }, - { (char *) "ignore", no_argument, NULL, 'i' }, - { (char *) "allusers", no_argument, NULL, 'A' }, - { (char *) "desktop", no_argument, NULL, 'D' }, - { (char *) "smprograms", no_argument, NULL, 'P' }, - { 0, no_argument, 0, 0 } -}; - -static void -usage (FILE *stream, int status) -{ - if (!ignore_flag || !status) - fprintf (stream, "\ -Usage: %s [-p|--path] (-u|--unix)|(-w|--windows [-s|--short-name]) filename\n\ - -a|--absolute output absolute path\n\ - -c|--close handle close handle (for use in captured process)\n\ - -f|--file file read file for input path information\n\ - -i|--ignore ignore missing argument\n\ - -p|--path filename argument is a path\n\ - -s|--short-name print Windows short form of filename\n\ - -u|--unix print Unix form of filename\n\ - -v|--version output version information and exit\n\ - -w|--windows print Windows form of filename\n\ - -A|--allusers use `All Users' instead of current user for -D, -P\n\ - -D|--desktop output `Desktop' directory and exit\n\ - -P|--smprograms output Start Menu `Programs' directory and exit\n\ - -S|--sysdir output system directory and exit\n\ - -W|--windir output `Windows' directory and exit\n", - prog_name); - exit (ignore_flag ? 0 : status); -} - -static char * -get_short_paths (char *path) -{ - char *sbuf; - char *sptr; - char *next; - char *ptr = path; - char *end = strrchr (path, 0); - DWORD acc = 0; - DWORD len; - - while (ptr != NULL) - { - next = ptr; - ptr = strchr (ptr, ';'); - if (ptr) - *ptr++ = 0; - len = GetShortPathName (next, NULL, 0); - if (len == ERROR_INVALID_PARAMETER) - { - fprintf (stderr, "%s: cannot create short name of %s\n", prog_name, next); - exit (2); - } - acc += len+1; - } - sptr = sbuf = (char *) malloc(acc+1); - if (sbuf == NULL) - { - fprintf (stderr, "%s: out of memory\n", prog_name); - exit (1); - } - ptr = path; - for(;;) - { - if (GetShortPathName (ptr, sptr, acc) == ERROR_INVALID_PARAMETER) - { - fprintf (stderr, "%s: cannot create short name of %s\n", prog_name, ptr); - exit (2); - } - - ptr = strrchr (ptr, 0); - sptr = strrchr (sptr, 0); - if (ptr == end) - break; - *sptr = ';'; - ++ptr, ++sptr; - } - return sbuf; -} - -static char * -get_short_name (const char *filename) -{ - char *sbuf; - DWORD len = GetShortPathName (filename, NULL, 0); - if (len == ERROR_INVALID_PARAMETER) - { - fprintf (stderr, "%s: cannot create short name of %s\n", prog_name, filename); - exit (2); - } - sbuf = (char *) malloc(++len); - if (sbuf == NULL) - { - fprintf (stderr, "%s: out of memory\n", prog_name); - exit (1); - } - if (GetShortPathName (filename, sbuf, len) == ERROR_INVALID_PARAMETER) - { - fprintf (stderr, "%s: cannot create short name of %s\n", prog_name, filename); - exit (2); - } - return sbuf; -} - -static void -doit (char *filename) -{ - char *buf; - size_t len; - int retval; - int (*conv_func)(const char *, char *); - - if (path_flag) - { - if (cygwin_posix_path_list_p (filename) - ? unix_flag - : windows_flag) - { - /* The path is already in the right format. */ - puts (filename); - exit (0); - } - } - - if (! path_flag) - { - len = strlen (filename) + 100; - if (len == 100) - { - if (!ignore_flag) - { - fprintf(stderr, "%s: can't convert empty path\n", prog_name); - exit (1); - } - else - exit (0); - } - } - else - { - if (unix_flag) - len = cygwin_win32_to_posix_path_list_buf_size (filename); - else - len = cygwin_posix_to_win32_path_list_buf_size (filename); - } - - if (len < PATH_MAX) - len = PATH_MAX; - - buf = (char *) malloc (len); - if (buf == NULL) - { - fprintf (stderr, "%s: out of memory\n", prog_name); - exit (1); - } - - if (path_flag) - { - if (unix_flag) - cygwin_win32_to_posix_path_list (filename, buf); - else - { - cygwin_posix_to_win32_path_list (filename, buf); - if (shortname_flag) - buf = get_short_paths (buf); - } - } - else - { - if (unix_flag) - conv_func = (absolute_flag ? cygwin_conv_to_full_posix_path : - cygwin_conv_to_posix_path); - else - conv_func = (absolute_flag ? cygwin_conv_to_full_win32_path : - cygwin_conv_to_win32_path); - retval = conv_func (filename, buf); - if (retval < 0) - { - fprintf (stderr, "%s: error converting \"%s\"\n", - prog_name, filename); - exit (1); - } - if (!unix_flag && shortname_flag) - buf = get_short_name (buf); - } - - puts (buf); -} - -int -main (int argc, char **argv) -{ - int c, o; - int options_from_file_flag; - char *filename; - char buf[MAX_PATH], buf2[MAX_PATH]; - WIN32_FIND_DATA w32_fd; - LPITEMIDLIST id; - - prog_name = strrchr (argv[0], '/'); - if (prog_name == NULL) - prog_name = strrchr (argv[0], '\\'); - if (prog_name == NULL) - prog_name = argv[0]; - else - prog_name++; - - path_flag = 0; - unix_flag = 0; - windows_flag = 0; - shortname_flag = 0; - ignore_flag = 0; - options_from_file_flag = 0; - allusers_flag = 0; - output_flag = 0; - while ((c = getopt_long (argc, argv, (char *) "hac:f:opsSuvwWiDPA", long_options, (int *) NULL)) - != EOF) - { - switch (c) - { - case 'a': - absolute_flag = 1; - break; - - case 'c': - CloseHandle ((HANDLE) strtoul (optarg, NULL, 16)); - break; - - case 'f': - file_arg = optarg; - break; - - case 'o': - options_from_file_flag = 1; - break; - - case 'p': - path_flag = 1; - break; - - case 'u': - if (unix_flag || windows_flag) - usage (stderr, 1); - unix_flag = 1; - break; - - case 'w': - if (unix_flag || windows_flag) - usage (stderr, 1); - windows_flag = 1; - break; - - case 's': - if (unix_flag) - usage (stderr, 1); - shortname_flag = 1; - break; - - case 'A': - allusers_flag = 1; - break; - - case 'D': - if (output_flag) - usage (stderr, 1); - output_flag = 1; - o = 'D'; - break; - - case 'P': - if (output_flag) - usage (stderr, 1); - output_flag = 1; - o = 'P'; - break; - - case 'S': - if (output_flag) - usage (stderr, 1); - output_flag = 1; - o = 'S'; - break; - - case 'W': - if (output_flag) - usage (stderr, 1); - output_flag = 1; - o = 'W'; - break; - - case 'i': - ignore_flag = 1; - break; - - case 'h': - usage (stdout, 0); - break; - - case 'v': - printf ("Cygwin path conversion version 1.2\n"); - printf ("Copyright 1998-2002 Red Hat, Inc.\n"); - exit (0); - - default: - usage (stderr, 1); - break; - } - - } - - if (output_flag) - { - switch(o) { - case 'D': - if (!allusers_flag) - SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOPDIRECTORY,&id); - else - SHGetSpecialFolderLocation(NULL, CSIDL_COMMON_DESKTOPDIRECTORY,&id); - SHGetPathFromIDList(id, buf); - /* This if clause is a Fix for Win95 without any "All Users" */ - if ( strlen(buf) == 0 ) { - SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOPDIRECTORY,&id); - SHGetPathFromIDList(id, buf); - } - if (!windows_flag) - cygwin_conv_to_posix_path(buf, buf2); - else - strcpy(buf2, buf); - printf("%s\n", buf2); - exit(0); - - case 'P': - if (!allusers_flag) - SHGetSpecialFolderLocation(NULL, CSIDL_PROGRAMS, &id); - else - SHGetSpecialFolderLocation(NULL, CSIDL_COMMON_PROGRAMS, &id); - SHGetPathFromIDList(id, buf); - /* This if clause is a Fix for Win95 without any "All Users" */ - if ( strlen(buf) == 0 ) { - SHGetSpecialFolderLocation(NULL, CSIDL_PROGRAMS, &id); - SHGetPathFromIDList(id, buf); - } - if (!windows_flag) - cygwin_conv_to_posix_path(buf, buf2); - else - strcpy(buf2, buf); - printf("%s\n", buf2); - exit(0); - - case 'S': - GetSystemDirectory(buf, MAX_PATH); - FindFirstFile(buf, &w32_fd); - strcpy(strrchr(buf, '\\')+1, w32_fd.cFileName); - if (!windows_flag) - cygwin_conv_to_posix_path(buf, buf2); - else - strcpy(buf2, buf); - printf("%s\n", buf2); - exit(0); - - case 'W': - GetWindowsDirectory(buf, MAX_PATH); - if (!windows_flag) - cygwin_conv_to_posix_path(buf, buf2); - else - strcpy(buf2, buf); - printf("%s\n", buf2); - exit(0); - - default: - fprintf(stderr, "ERROR: main: switch(o)!\n"); - } - } - - if (options_from_file_flag && !file_arg) - usage (stderr, 1); - - if (! unix_flag && ! windows_flag && !options_from_file_flag) - usage (stderr, 1); - - if (!file_arg) - { - if (optind != argc - 1) - usage (stderr, 1); - - filename = argv[optind]; - doit (filename); - } - else - { - FILE *fp; - char buf[PATH_MAX * 2 + 1]; - - if (argv[optind]) - usage (stderr, 1); - - if (strcmp (file_arg, "-") != 0) - fp = fopen (file_arg, "rt"); - else - { - fp = stdin; - setmode (0, O_TEXT); - } - if (fp == NULL) - { - perror ("cygpath"); - exit (1); - } - - setbuf (stdout, NULL); - while (fgets (buf, sizeof (buf), fp) != NULL) - { - char *s = buf; - char *p = strchr (s, '\n'); - if (p) - *p = '\0'; - if (options_from_file_flag && *s == '-') - { - char c; - for (c = *++s; c && !isspace (c); c = *++s) - switch (c) - { - case 'a': - absolute_flag = 1; - break; - case 'i': - ignore_flag = 1; - break; - case 's': - shortname_flag = 1; - break; - case 'w': - unix_flag = 0; - windows_flag = 1; - break; - case 'u': - windows_flag = 0; - unix_flag = 1; - break; - case 'p': - path_flag = 1; - } - if (*s) - do - s++; - while (*s && isspace (*s)); - } - if (*s) - doit (s); - } - } - - exit (0); -} diff --git a/winsup/utils/dump_setup.cc b/winsup/utils/dump_setup.cc deleted file mode 100644 index d551098b9..000000000 --- a/winsup/utils/dump_setup.cc +++ /dev/null @@ -1,249 +0,0 @@ -/* path.cc - - Copyright 2001 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include -#include -#include -#include -#include -#include "path.h" - -static int package_len = 20; -static int version_len = 20; - - -typedef struct -{ - char pkgtar[MAX_PATH + 1]; - char pkg[MAX_PATH + 1]; - char ver[MAX_PATH + 1]; - char tail[MAX_PATH + 1]; - char what[16]; -} fileparse; - -static int -find_tar_ext (const char *path) -{ - char *p = strchr (path, '\0') - 7; - if (p <= path) - return 0; - if (*p == '.') - { - if (strcmp (p, ".tar.gz") != 0) - return 0; - } - else if (--p <= path || strcmp (p, ".tar.bz2") != 0) - return 0; - - return p - path; -} - -static char * -base (const char *s) -{ - if (!s) - return 0; - const char *rv = s; - while (*s) - { - if ((*s == '/' || *s == ':' || *s == '\\') && s[1]) - rv = s + 1; - s++; - } - return (char *) rv; -} - -/* Parse a filename into package, version, and extension components. */ -int -parse_filename (const char *in_fn, fileparse& f) -{ - char *p, *ver; - char fn[strlen (in_fn) + 1]; - - strcpy (fn, in_fn); - int n = find_tar_ext (fn); - - if (!n) - return 0; - - strcpy (f.tail, fn + n); - fn[n] = '\0'; - f.pkg[0] = f.what[0] = '\0'; - p = base (fn); - for (ver = p; *ver; ver++) - if (*ver == '-') - if (isdigit (ver[1])) - { - *ver++ = 0; - strcpy (f.pkg, p); - break; - } - else if (strcasecmp (ver, "-src") == 0 || - strcasecmp (ver, "-patch") == 0) - { - *ver++ = 0; - strcpy (f.pkg, p); - strcpy (f.what, strlwr (ver)); - strcpy (f.pkgtar, p); - strcat (f.pkgtar, f.tail); - ver = strchr (ver, '\0'); - break; - } - - if (!f.pkg[0]) - strcpy (f.pkg, p); - - if (!f.what[0]) - { - int n; - p = strchr (ver, '\0'); - strcpy (f.pkgtar, in_fn); - if ((p -= 4) >= ver && strcasecmp (p, "-src") == 0) - n = 4; - else if ((p -= 2) >= ver && strcasecmp (p, "-patch") == 0) - n = 6; - else - n = 0; - if (n) - { - strcpy (f.what, p + 1); - *p = '\0'; - p = f.pkgtar + (p - fn) + n; - memmove (p - 4, p, strlen (p)); - } - } - - strcpy (f.ver, *ver ? ver : "0.0"); - return 1; -} - -static bool -dump_file (const char *msg, const char *fn) -{ - char *path = cygpath ("/etc/setup/", fn, NULL); - FILE *fp = fopen (path, "rt"); - bool printed; - char buf[4096]; - if (!fp) - printed = false; - else if (!fgets (buf, 4096, fp)) - printed = false; - { - char *p = strchr (buf, '\0'); - printf ("%s%s%s", msg, buf, (p == buf) || p[-1] != '\n' ? "\n" : ""); - printed = true; - } - if (fp) - fclose (fp); - return printed; -} - -struct pkgver -{ - char *name; - char *ver; -}; - -extern "C" { -int -compar (const void *a, const void *b) -{ - const pkgver *pa = (const pkgver *) a; - const pkgver *pb = (const pkgver *) b; - return strcmp (pa->name, pb->name); -} -} - -bool -match_argv (char **argv, const char *name) -{ - if (!argv || !*argv) - return true; - for (char **a = argv; *a; a++) - if (strcasecmp (*a, name) == 0) - return true; - return false; -} - -void -dump_setup (int verbose, char **argv, bool /*check_files*/) -{ - char *setup = cygpath ("/etc/setup/installed.db", NULL); - FILE *fp = fopen (setup, "rt"); - puts ("Cygwin Package Information"); - if (fp == NULL) - goto err; - if (verbose) - { - bool need_nl = dump_file ("Last downloaded files to: ", "last-cache"); - if (dump_file ("Last downloaded files from: ", "last-mirror") || need_nl) - puts (""); - } - - if (!fp) - goto err; - - int nlines; - nlines = 0; - char buf[4096]; - while (fgets (buf, 4096, fp)) - nlines += 2; /* potentially binary + source */ - if (!nlines) - goto err; - rewind (fp); - - pkgver *packages; - - packages = (pkgver *) calloc (nlines, sizeof(packages[0])); - printf ("%-*s%-*s\n", package_len, "Package", version_len, "Version"); - int n; - for (n = 0; fgets (buf, 4096, fp) && n < nlines;) - { - char *package = strtok (buf, " "); - if (!package || !*package || !match_argv (argv, package)) - continue; - for (int i = 0; i < 2; i++) - { - fileparse f; - char *tar = strtok (NULL, " "); - if (!tar || !*tar || !parse_filename (tar, f)) - break; - - int len = strlen (package); - if (f.what[0]) - len += strlen (f.what) + 1; - packages[n].name = (char *) malloc (len + 1); - strcpy (packages[n].name , package); - if (f.what[0]) - strcat (strcat (packages[n].name, "-"), f.what); - packages[n].ver = strdup (f.ver); - n++; - if (strtok (NULL, " ") == NULL) - break; - } - } - - qsort (packages, n, sizeof (packages[0]), compar); - - for (int i = 0; i < n; i++) - printf ("%-*s%-*s\n", package_len, packages[i].name, - version_len, packages[i].ver); - fclose (fp); - - return; - -err: - puts ("No setup information found"); - if (fp) - fclose (fp); - return; -} diff --git a/winsup/utils/dumper.cc b/winsup/utils/dumper.cc deleted file mode 100644 index 50e10d255..000000000 --- a/winsup/utils/dumper.cc +++ /dev/null @@ -1,841 +0,0 @@ -/* dumper.cc - - Copyright 1999,2001 Red Hat Inc. - - Written by Egor Duda - - This file is part of Cygwin. - - This software is a copyrighted work licensed under the terms of the - Cygwin license. Please consult the file "CYGWIN_LICENSE" for - details. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "dumper.h" - -#define NOTE_NAME_SIZE 16 - -typedef struct _note_header - { - Elf_External_Note elf_note_header; - char name[NOTE_NAME_SIZE - 1]; /* external note contains first byte of data */ - } -#ifdef __GNUC__ -__attribute__ ((packed)) -#endif - note_header; - -BOOL verbose = FALSE; - -int deb_printf (const char *format,...) -{ - if (!verbose) - return 0; - va_list va; - va_start (va, format); - int ret_val = vprintf (format, va); - va_end (va); - return ret_val; -} - -dumper::dumper (DWORD pid, DWORD tid, const char *file_name) -{ - this->file_name = strdup (file_name); - - this->pid = pid; - this->tid = tid; - core_bfd = NULL; - excl_list = new exclusion (20); - - list = last = NULL; - - status_section = NULL; - - memory_num = module_num = thread_num = 0; - - hProcess = OpenProcess (PROCESS_ALL_ACCESS, - FALSE, /* no inheritance */ - pid); - if (!hProcess) - { - fprintf (stderr, "Failed to open process #%lu, error %ld\n", pid, GetLastError ()); - return; - } - - init_core_dump (); - - if (!sane ()) - dumper_abort (); -} - -dumper::~dumper () -{ - close (); - free (file_name); -} - -void -dumper::dumper_abort () -{ - close (); - unlink (file_name); -} - -void -dumper::close () -{ - if (core_bfd) - bfd_close (core_bfd); - if (excl_list) - delete excl_list; - if (hProcess) - CloseHandle (hProcess); - core_bfd = NULL; - hProcess = NULL; - excl_list = NULL; -} - -int -dumper::sane () -{ - if (hProcess == NULL || core_bfd == NULL || excl_list == NULL) - return 0; - return 1; -} - -void -print_section_name (bfd* abfd, asection* sect, PTR obj) -{ - deb_printf (" %s", bfd_get_section_name (abfd, sect)); -} - -void -dumper::print_core_section_list () -{ - deb_printf ("current sections:"); - bfd_map_over_sections (core_bfd, &print_section_name, NULL); - deb_printf ("\n"); -} - -process_entity * -dumper::add_process_entity_to_list (process_entity_type type) -{ - if (!sane ()) - return NULL; - - process_entity *new_entity = (process_entity *) malloc (sizeof (process_entity)); - if (new_entity == NULL) - return NULL; - new_entity->next = NULL; - new_entity->section = NULL; - if (last == NULL) - list = new_entity; - else - last->next = new_entity; - last = new_entity; - return new_entity; -} - -int -dumper::add_thread (DWORD tid, HANDLE hThread) -{ - if (!sane ()) - return 0; - - CONTEXT *pcontext; - - process_entity *new_entity = add_process_entity_to_list (pr_ent_thread); - if (new_entity == NULL) - return 0; - new_entity->type = pr_ent_thread; - thread_num++; - - new_entity->u.thread.tid = tid; - new_entity->u.thread.hThread = hThread; - - pcontext = &(new_entity->u.thread.context); - pcontext->ContextFlags = CONTEXT_FULL | CONTEXT_FLOATING_POINT; - if (!GetThreadContext (hThread, pcontext)) - { - deb_printf ("Failed to read thread context (tid=%x), error %ld\n", tid, GetLastError ()); - return 0; - } - - deb_printf ("added thread %u\n", tid); - return 1; -} - -int -dumper::add_mem_region (LPBYTE base, DWORD size) -{ - if (!sane ()) - return 0; - - if (base == NULL || size == 0) - return 1; // just ignore empty regions - - process_entity *new_entity = add_process_entity_to_list (pr_ent_memory); - if (new_entity == NULL) - return 0; - new_entity->type = pr_ent_memory; - memory_num++; - - new_entity->u.memory.base = base; - new_entity->u.memory.size = size; - - deb_printf ("added memory region %08x-%08x\n", (DWORD) base, (DWORD) base + size); - return 1; -} - -/* split_add_mem_region scans list of regions to be excluded from dumping process - (excl_list) and removes all "excluded" parts from given region. */ -int -dumper::split_add_mem_region (LPBYTE base, DWORD size) -{ - if (!sane ()) - return 0; - - if (base == NULL || size == 0) - return 1; // just ignore empty regions - - LPBYTE last_base = base; - - for (process_mem_region * p = excl_list->region; - p < excl_list->region + excl_list->last; - p++) - { - if (p->base >= base + size || p->base + p->size <= base) - continue; - - if (p->base <= base) - { - last_base = p->base + p->size; - continue; - } - - add_mem_region (last_base, p->base - last_base); - last_base = p->base + p->size; - } - - if (last_base < base + size) - add_mem_region (last_base, base + size - last_base); - - return 1; -} - -int -dumper::add_module (LPVOID base_address) -{ - if (!sane ()) - return 0; - - char *module_name = psapi_get_module_name (hProcess, (DWORD) base_address); - if (module_name == NULL) - return 1; - - process_entity *new_entity = add_process_entity_to_list (pr_ent_module); - if (new_entity == NULL) - return 0; - new_entity->type = pr_ent_module; - module_num++; - - new_entity->u.module.base_address = base_address; - new_entity->u.module.name = module_name; - - parse_pe (module_name, excl_list); - - deb_printf ("added module %08x %s\n", base_address, module_name); - return 1; -} - -#define PAGE_BUFFER_SIZE 4096 - -int -dumper::collect_memory_sections () -{ - if (!sane ()) - return 0; - - LPBYTE current_page_address; - LPBYTE last_base = (LPBYTE) 0xFFFFFFFF; - DWORD last_size = 0; - DWORD done; - - char mem_buf[PAGE_BUFFER_SIZE]; - - MEMORY_BASIC_INFORMATION mbi; - - if (hProcess == NULL) - return 0; - - for (current_page_address = 0; current_page_address < (LPBYTE) 0xFFFF0000;) - { - if (!VirtualQueryEx (hProcess, current_page_address, &mbi, sizeof (mbi))) - break; - - int skip_region_p = 0; - - if (mbi.Protect & (PAGE_NOACCESS | PAGE_GUARD) || - mbi.State != MEM_COMMIT) - skip_region_p = 1; - - if (!skip_region_p) - { - /* just to make sure that later we'll be able to read it. - According to MS docs either region is all-readable or - all-nonreadable */ - if (!ReadProcessMemory (hProcess, current_page_address, mem_buf, sizeof (mem_buf), &done)) - { - DWORD err = GetLastError (); - const char *pt[10]; - pt[0] = (mbi.Protect & PAGE_READONLY) ? "RO " : ""; - pt[1] = (mbi.Protect & PAGE_READWRITE) ? "RW " : ""; - pt[2] = (mbi.Protect & PAGE_WRITECOPY) ? "WC " : ""; - pt[3] = (mbi.Protect & PAGE_EXECUTE) ? "EX " : ""; - pt[4] = (mbi.Protect & PAGE_EXECUTE_READ) ? "EXRO " : ""; - pt[5] = (mbi.Protect & PAGE_EXECUTE_READWRITE) ? "EXRW " : ""; - pt[6] = (mbi.Protect & PAGE_EXECUTE_WRITECOPY) ? "EXWC " : ""; - pt[7] = (mbi.Protect & PAGE_GUARD) ? "GRD " : ""; - pt[8] = (mbi.Protect & PAGE_NOACCESS) ? "NA " : ""; - pt[9] = (mbi.Protect & PAGE_NOCACHE) ? "NC " : ""; - char buf[10 * 6]; - buf[0] = '\0'; - for (int i = 0; i < 10; i++) - strcat (buf, pt[i]); - - deb_printf ("warning: failed to read memory at %08x-%08x (protect = %s), error %ld.\n", - (DWORD) current_page_address, - (DWORD) current_page_address + mbi.RegionSize, - buf, err); - skip_region_p = 1; - } - } - - if (!skip_region_p) - { - if (last_base + last_size == current_page_address) - last_size += mbi.RegionSize; - else - { - split_add_mem_region (last_base, last_size); - last_base = (LPBYTE) mbi.BaseAddress; - last_size = mbi.RegionSize; - } - } - else - { - split_add_mem_region (last_base, last_size); - last_base = NULL; - last_size = 0; - } - - current_page_address += mbi.RegionSize; - } - - /* dump last sections, if any */ - split_add_mem_region (last_base, last_size); - return 1; -}; - -int -dumper::dump_memory_region (asection * to, process_mem_region * memory) -{ - if (!sane ()) - return 0; - - DWORD size = memory->size; - DWORD todo; - DWORD done; - LPBYTE pos = memory->base; - DWORD sect_pos = 0; - - if (to == NULL || memory == NULL) - return 0; - - char mem_buf[PAGE_BUFFER_SIZE]; - - while (size > 0) - { - todo = min (size, PAGE_BUFFER_SIZE); - if (!ReadProcessMemory (hProcess, pos, mem_buf, todo, &done)) - { - deb_printf ("Failed to read process memory at %x(%x), error %ld\n", pos, todo, GetLastError ()); - return 0; - } - size -= done; - pos += done; - if (!bfd_set_section_contents (core_bfd, to, mem_buf, sect_pos, done)) - { - bfd_perror ("writing memory region to bfd"); - dumper_abort (); - return 0; - }; - sect_pos += done; - } - return 1; -} - -int -dumper::dump_thread (asection * to, process_thread * thread) -{ - if (!sane ()) - return 0; - - if (to == NULL || thread == NULL) - return 0; - - win32_pstatus thread_pstatus; - - note_header header; - bfd_putl32 (NOTE_NAME_SIZE, header.elf_note_header.namesz); - bfd_putl32 (sizeof (thread_pstatus), header.elf_note_header.descsz); - bfd_putl32 (NT_WIN32PSTATUS, header.elf_note_header.type); - strncpy ((char *) &header.elf_note_header.name, "win32thread", NOTE_NAME_SIZE); - - thread_pstatus.data_type = NOTE_INFO_THREAD; - thread_pstatus.data.thread_info.tid = thread->tid; - - if (tid == 0) - { - /* this is a special case. we don't know, which thread - was active when exception occured, so let's blame - the first one */ - thread_pstatus.data.thread_info.is_active_thread = TRUE; - tid = (DWORD) - 1; - } - else if (tid > 0 && thread->tid == tid) - thread_pstatus.data.thread_info.is_active_thread = TRUE; - else - thread_pstatus.data.thread_info.is_active_thread = FALSE; - - memcpy (&(thread_pstatus.data.thread_info.thread_context), - &(thread->context), - sizeof (thread->context)); - - if (!bfd_set_section_contents (core_bfd, to, &header, - 0, - sizeof (header)) || - !bfd_set_section_contents (core_bfd, to, &thread_pstatus, - sizeof (header), - sizeof (thread_pstatus))) - { - bfd_perror ("writing thread info to bfd"); - dumper_abort (); - return 0; - }; - return 1; -} - -int -dumper::dump_module (asection * to, process_module * module) -{ - if (!sane ()) - return 0; - - if (to == NULL || module == NULL) - return 0; - - struct win32_pstatus *module_pstatus_ptr; - - int note_length = sizeof (struct win32_pstatus) + strlen (module->name); - - char *buf = (char *) malloc (note_length); - - if (!buf) - { - fprintf (stderr, "Error alloating memory. Dumping aborted.\n"); - goto out; - }; - - module_pstatus_ptr = (struct win32_pstatus *) buf; - - note_header header; - bfd_putl32 (NOTE_NAME_SIZE, header.elf_note_header.namesz); - bfd_putl32 (note_length, header.elf_note_header.descsz); - bfd_putl32 (NT_WIN32PSTATUS, header.elf_note_header.type); - strncpy ((char *) &header.elf_note_header.name, "win32module", NOTE_NAME_SIZE); - - module_pstatus_ptr->data_type = NOTE_INFO_MODULE; - module_pstatus_ptr->data.module_info.base_address = module->base_address; - module_pstatus_ptr->data.module_info.module_name_size = strlen (module->name) + 1; - strcpy (module_pstatus_ptr->data.module_info.module_name, module->name); - - if (!bfd_set_section_contents (core_bfd, to, &header, - 0, - sizeof (header)) || - !bfd_set_section_contents (core_bfd, to, module_pstatus_ptr, - sizeof (header), - note_length)) - { - bfd_perror ("writing module info to bfd"); - goto out; - }; - return 1; - -out: - if (buf) - free (buf); - dumper_abort (); - return 0; - -} - -int -dumper::collect_process_information () -{ - int exception_level = 0; - - if (!sane ()) - return 0; - - if (!DebugActiveProcess (pid)) - { - fprintf (stderr, "Cannot attach to process #%lu, error %ld", pid, GetLastError ()); - return 0; - } - - char event_name[sizeof ("cygwin_error_start_event") + 20]; - sprintf (event_name, "cygwin_error_start_event%16lx", pid); - HANDLE sync_with_debugee = OpenEvent (EVENT_MODIFY_STATE, FALSE, event_name); - - DEBUG_EVENT current_event; - - while (1) - { - if (!WaitForDebugEvent (¤t_event, 20000)) - return 0; - - deb_printf ("got debug event %d\n", current_event.dwDebugEventCode); - - switch (current_event.dwDebugEventCode) - { - case CREATE_THREAD_DEBUG_EVENT: - - if (!add_thread (current_event.dwThreadId, - current_event.u.CreateThread.hThread)) - goto failed; - - break; - - case CREATE_PROCESS_DEBUG_EVENT: - - if (!add_module (current_event.u.CreateProcessInfo.lpBaseOfImage) || - !add_thread (current_event.dwThreadId, - current_event.u.CreateProcessInfo.hThread)) - goto failed; - - break; - - case EXIT_PROCESS_DEBUG_EVENT: - - deb_printf ("debugee quits"); - ContinueDebugEvent (current_event.dwProcessId, - current_event.dwThreadId, - DBG_CONTINUE); - - return 1; - - break; - - case LOAD_DLL_DEBUG_EVENT: - - if (!add_module (current_event.u.LoadDll.lpBaseOfDll)) - goto failed; - - break; - - case EXCEPTION_DEBUG_EVENT: - - exception_level++; - if (exception_level == 2) - break; - else if (exception_level > 2) - return 0; - - collect_memory_sections (); - - /* got all info. time to dump */ - - if (!prepare_core_dump ()) - { - fprintf (stderr, "Failed to prepare core dump\n"); - goto failed; - }; - - if (!write_core_dump ()) - { - fprintf (stderr, "Failed to write core dump\n"); - goto failed; - }; - - /* signal a debugee that we've finished */ - if (sync_with_debugee) - SetEvent (sync_with_debugee); - - break; - - default: - - break; - - } - - ContinueDebugEvent (current_event.dwProcessId, - current_event.dwThreadId, - DBG_CONTINUE); - } -failed: - /* set debugee free */ - if (sync_with_debugee) - SetEvent (sync_with_debugee); - - return 0; -} - -int -dumper::init_core_dump () -{ - bfd_init (); - - core_bfd = bfd_openw (file_name, "elf32-i386"); - if (core_bfd == NULL) - { - bfd_perror ("opening bfd"); - goto failed; - } - - if (!bfd_set_format (core_bfd, bfd_core)) - { - bfd_perror ("setting bfd format"); - goto failed; - } - - if (!bfd_set_arch_mach (core_bfd, bfd_arch_i386, 0)) - { - bfd_perror ("setting bfd architecture"); - goto failed; - } - - return 1; - -failed: - dumper_abort (); - return 0; - -} - -int -dumper::prepare_core_dump () -{ - if (!sane ()) - return 0; - - int sect_no = 0; - char sect_name[50]; - - flagword sect_flags; - DWORD sect_size; - bfd_vma sect_vma; - - asection *new_section; - - for (process_entity * p = list; p != NULL; p = p->next) - { - sect_no++; - - switch (p->type) - { - case pr_ent_memory: - sprintf (sect_name, ".mem/%u", sect_no); - sect_flags = SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD; - sect_size = p->u.memory.size; - sect_vma = (bfd_vma) (p->u.memory.base); - - break; - - case pr_ent_thread: - sprintf (sect_name, ".note/%u", sect_no); - sect_flags = SEC_HAS_CONTENTS | SEC_LOAD; - sect_size = sizeof (note_header) + sizeof (struct win32_pstatus); - sect_vma = 0; - break; - - case pr_ent_module: - sprintf (sect_name, ".note/%u", sect_no); - sect_flags = SEC_HAS_CONTENTS | SEC_LOAD; - sect_size = sizeof (note_header) + sizeof (struct win32_pstatus) + - (bfd_size_type) (strlen (p->u.module.name)); - sect_vma = 0; - break; - - default: - continue; - } - - if (p->type == pr_ent_module && status_section != NULL) - { - if (!bfd_set_section_size (core_bfd, - status_section, - status_section->_raw_size + sect_size)) - { - bfd_perror ("resizing status section"); - goto failed; - }; - continue; - } - - deb_printf ("creating section (type%u) %s(%u), flags=%08x\n", - p->type, sect_name, sect_size, sect_flags); - - bfd_set_error (bfd_error_no_error); - char *buf = strdup (sect_name); - new_section = bfd_make_section (core_bfd, buf); - if (new_section == NULL) - { - if (bfd_get_error () == bfd_error_no_error) - fprintf (stderr, "error creating new section (%s), section already exists.\n", buf); - else - bfd_perror ("creating section"); - goto failed; - } - - if (!bfd_set_section_flags (core_bfd, new_section, sect_flags) || - !bfd_set_section_size (core_bfd, new_section, sect_size)) - { - bfd_perror ("setting section attributes"); - goto failed; - }; - - new_section->vma = sect_vma; - new_section->output_section = new_section; - new_section->output_offset = 0; - p->section = new_section; - } - - return 1; - -failed: - dumper_abort (); - return 0; -} - -int -dumper::write_core_dump () -{ - if (!sane ()) - return 0; - - for (process_entity * p = list; p != NULL; p = p->next) - { - if (p->section == NULL) - continue; - - deb_printf ("writing section type=%u base=%08x size=%08x flags=%08x\n", - p->type, - p->section->vma, - p->section->_raw_size, - p->section->flags); - - switch (p->type) - { - case pr_ent_memory: - dump_memory_region (p->section, &(p->u.memory)); - break; - - case pr_ent_thread: - dump_thread (p->section, &(p->u.thread)); - break; - - case pr_ent_module: - dump_module (p->section, &(p->u.module)); - break; - - default: - continue; - - } - } - return 1; -} - -static void -usage () -{ - fprintf (stderr, "Usage: dumper [options] filename pid\n"); - fprintf (stderr, "filename -- dump core to filename.core\n"); - fprintf (stderr, "pid -- win32-pid of process to dump\n\n"); - fprintf (stderr, "Possible options are:\n"); - fprintf (stderr, "-d -- be verbose while dumping\n"); - fprintf (stderr, "-q -- be quite while dumping (default)\n"); -} - -int -main (int argc, char **argv) -{ - int opt; - const char *p = ""; - DWORD pid; - char win32_name [MAX_PATH]; - - while ((opt = getopt (argc, argv, "dq")) != EOF) - switch (opt) - { - case 'd': - verbose = TRUE; - break; - case 'q': - verbose = FALSE; - break; - default: - usage (); - break; - } - - if (argv && *(argv + optind) && *(argv + optind +1)) - { - *win32_name = '\0'; - cygwin_conv_to_win32_path (*(argv + optind), win32_name); - if ((p = strrchr (win32_name, '\\'))) - p++; - else - p = win32_name; - pid = strtoul (*(argv + optind + 1), NULL, 10); - } - else - { - usage (); - return -1; - } - - char *core_file = (char *) malloc (strlen (p) + sizeof (".core")); - if (!core_file) - { - fprintf (stderr, "error allocating memory\n"); - return -1; - } - sprintf (core_file, "%s.core", p); - - DWORD tid = 0; - - if (verbose) - printf ("dumping process #%lu to %s\n", pid, core_file); - - dumper d (pid, tid, core_file); - if (!d.sane ()) - return -1; - d.collect_process_information (); - free (core_file); - - return 0; -}; diff --git a/winsup/utils/dumper.h b/winsup/utils/dumper.h deleted file mode 100644 index 2a1841e78..000000000 --- a/winsup/utils/dumper.h +++ /dev/null @@ -1,132 +0,0 @@ -/* dumper.h - - Copyright 1999,2001 Red Hat Inc. - - Written by Egor Duda - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#ifndef _DUMPER_H_ -#define _DUMPER_H_ - -#include - -typedef struct -{ - LPBYTE base; - DWORD size; -} process_mem_region; - -typedef struct -{ - DWORD tid; - HANDLE hThread; - CONTEXT context; -} process_thread; - -typedef struct -{ - LPVOID base_address; - char* name; -} process_module; - -enum process_entity_type -{ - pr_ent_memory, - pr_ent_thread, - pr_ent_module -}; - -typedef struct _process_entity -{ - process_entity_type type; - union - { - process_thread thread; - process_mem_region memory; - process_module module; - } u; - asection* section; - struct _process_entity* next; -} process_entity; - -class exclusion -{ -public: - int last; - int size; - int step; - process_mem_region* region; - - exclusion ( int step ) { last = size = 0; - this->step = step; - region = NULL; } - ~exclusion () { free ( region ); } - int add ( LPBYTE mem_base, DWORD mem_size ); - int sort_and_check (); -}; - -#define PAGE_BUFFER_SIZE 4096 - -class dumper -{ - DWORD pid; - DWORD tid; /* thread id of active thread */ - HANDLE hProcess; - process_entity* list; - process_entity* last; - exclusion* excl_list; - - char* file_name; - bfd* core_bfd; - - asection* status_section; - - int memory_num; - int module_num; - int thread_num; - - void close (); - void dumper_abort (); - - process_entity* add_process_entity_to_list ( process_entity_type type ); - int add_thread ( DWORD tid, HANDLE hThread ); - int add_mem_region ( LPBYTE base, DWORD size ); - - /* break mem_region by excl_list and add add all subregions */ - int split_add_mem_region ( LPBYTE base, DWORD size ); - - int add_module ( LPVOID base_address ); - - int collect_memory_sections (); - int dump_memory_region ( asection* to, process_mem_region* memory ); - int dump_thread ( asection* to, process_thread* thread ); - int dump_module ( asection* to, process_module* module ); - -public: - int sane (); - - int collect_process_information (); - void print_core_section_list (); - - dumper ( DWORD pid, DWORD tid, const char* name ); - ~dumper (); - - int init_core_dump (); - int prepare_core_dump (); - int write_core_dump (); -}; - -extern int deb_printf ( const char* format, ... ); - -extern char* psapi_get_module_name ( HANDLE hProcess, DWORD BaseAddress ); - -extern int parse_pe ( const char* file_name, exclusion* excl_list ); - -extern BOOL verbose; - -#endif diff --git a/winsup/utils/getfacl.c b/winsup/utils/getfacl.c deleted file mode 100644 index b6eb94020..000000000 --- a/winsup/utils/getfacl.c +++ /dev/null @@ -1,221 +0,0 @@ -/* getfacl.c - - Copyright 2000, 2001 Red Hat Inc. - - Written by Corinna Vinschen - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -char * -permstr (mode_t perm) -{ - static char pbuf[4]; - - pbuf[0] = (perm & S_IREAD) ? 'r' : '-'; - pbuf[1] = (perm & S_IWRITE) ? 'w' : '-'; - pbuf[2] = (perm & S_IEXEC) ? 'x' : '-'; - pbuf[3] = '\0'; - return pbuf; -} - -const char * -username (uid_t uid) -{ - static char ubuf[256]; - struct passwd *pw; - - if ((pw = getpwuid (uid))) - strcpy (ubuf, pw->pw_name); - else - sprintf (ubuf, "%d ", uid); - return ubuf; -} - -const char * -groupname (gid_t gid) -{ - static char gbuf[256]; - struct group *gr; - - if ((gr = getgrgid (gid))) - strcpy (gbuf, gr->gr_name); - else - sprintf (gbuf, "%d ", gid); - return gbuf; -} - -#define pn(txt) fprintf (fp, txt "\n", name) -#define p(txt) fprintf (fp, txt "\n") - -int -usage (const char *name, int help) -{ - FILE *fp = help ? stdout : stderr; - - pn ("usage: %s [-adn] file..."); - if (!help) - pn ("Try `%s --help' for more information."); - else - { - p (""); - p ("Display file and directory access control lists (ACLs)."); - p (""); - p ("For each argument that is a regular file, special file or"); - p ("directory, getfacl displays the owner, the group, and the ACL."); - p ("For directories getfacl displays additionally the default ACL."); - p (""); - p ("With no options specified, getfacl displays the filename, the"); - p ("owner, the group, and both the ACL and the default ACL, if it"); - p ("exists."); - p (""); - p ("The following options are supported:"); - p (""); - p ("-a Display the filename, the owner, the group, and the ACL"); - p (" of the file."); - p (""); - p ("-d Display the filename, the owner, the group, and the default"); - p (" ACL of the directory, if it exists."); - p (""); - p ("-n Display user and group IDs instead of names."); - p (""); - p ("The format for ACL output is as follows:"); - p (" # file: filename"); - p (" # owner: name or uid"); - p (" # group: name or uid"); - p (" user::perm"); - p (" user:name or uid:perm"); - p (" group::perm"); - p (" group:name or gid:perm"); - p (" mask:perm"); - p (" other:perm"); - p (" default:user::perm"); - p (" default:user:name or uid:perm"); - p (" default:group::perm"); - p (" default:group:name or gid:perm"); - p (" default:mask:perm"); - p (" default:other:perm"); - p (""); - p ("When multiple files are specified on the command line, a blank"); - p ("line separates the ACLs for each file."); - } - return 1; -} - -struct option longopts[] = { - {"help", no_argument, NULL, 'h'}, - {0, no_argument, NULL, 0} -}; - -int -main (int argc, char **argv) -{ - extern int optind; - int c, i; - int aopt = 0; - int dopt = 0; - int nopt = 0; - int first = 1; - struct stat st; - aclent_t acls[MAX_ACL_ENTRIES]; - - while ((c = getopt_long (argc, argv, "adn", longopts, NULL)) != EOF) - switch (c) - { - case 'a': - aopt = 1; - break; - case 'd': - dopt = 1; - break; - case 'n': - nopt = 1; - break; - case 'h': - return usage (argv[0], 1); - default: - return usage (argv[0], 0); - } - if (optind > argc - 1) - return usage (argv[0], 0); - while ((c = optind++) < argc) - { - if (stat (argv[c], &st)) - { - perror (argv[0]); - continue; - } - if (!first) - putchar ('\n'); - first = 0; - printf ("# file: %s\n", argv[c]); - if (nopt) - { - printf ("# owner: %d\n", st.st_uid); - printf ("# group: %d\n", st.st_gid); - } - else - { - printf ("# owner: %s\n", username (st.st_uid)); - printf ("# group: %s\n", groupname (st.st_gid)); - } - if ((c = acl (argv[c], GETACL, MAX_ACL_ENTRIES, acls)) < 0) - { - perror (argv[0]); - continue; - } - for (i = 0; i < c; ++i) - { - if (acls[i].a_type & ACL_DEFAULT) - { - if (aopt) - continue; - printf ("default:"); - } - else if (dopt) - continue; - switch (acls[i].a_type & ~ACL_DEFAULT) - { - case USER_OBJ: - printf ("user::"); - break; - case USER: - if (nopt) - printf ("user:%d:", acls[i].a_id); - else - printf ("user:%s:", username (acls[i].a_id)); - break; - case GROUP_OBJ: - printf ("group::"); - break; - case GROUP: - if (nopt) - printf ("group:%d:", acls[i].a_id); - else - printf ("group:%s:", groupname (acls[i].a_id)); - break; - case CLASS_OBJ: - printf ("mask::"); - break; - case OTHER_OBJ: - printf ("other::"); - break; - } - printf ("%s\n", permstr (acls[i].a_perm)); - } - } - return 0; -} diff --git a/winsup/utils/kill.cc b/winsup/utils/kill.cc deleted file mode 100644 index 626b07156..000000000 --- a/winsup/utils/kill.cc +++ /dev/null @@ -1,122 +0,0 @@ -/* kill.cc - - Copyright 1996, 1997, 1998, 1999, 2000, 2001 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include -#include -#include -#include -#include -#include - -static void usage (void); -static int __stdcall getsig (char *); -static void __stdcall forcekill (int, int, int); - -int -main (int argc, char **argv) -{ - int sig = SIGTERM; - int force = 0; - int gotsig = 0; - int ret = 0; - - if (argc == 1) - usage (); - - while (*++argv && **argv == '-') - if (strcmp (*argv + 1, "f") == 0) - force = 1; - else if (gotsig) - break; - else if (strcmp(*argv + 1, "0") != 0) - { - sig = getsig (*argv + 1); - gotsig = 1; - } - else - { - argv++; - sig = 0; - goto sig0; - } - - if (sig <= 0 || sig > NSIG) - { - fprintf (stderr, "kill: unknown signal: %s\n", argv[-1]); - exit (1); - } - -sig0: - while (*argv != NULL) - { - char *p; - int pid = strtol (*argv, &p, 10); - if (*p != '\0') - { - fprintf (stderr, "kill: illegal pid: %s\n", *argv); - ret = 1; - } - else if (kill (pid, sig) == 0) - { - if (force) - forcekill (pid, sig, 1); - } - else if (force && sig != 0) - forcekill (pid, sig, 0); - else - { - char buf[1000]; - sprintf (buf, "kill %d", pid); - perror (buf); - ret = 1; - } - argv++; - } - return ret; -} - -static void -usage (void) -{ - fprintf (stderr, "Usage: kill [-sigN] pid1 [pid2 ...]\n"); - exit (1); -} - -static int -getsig (char *in_sig) -{ - char *sig; - char buf[80]; - - if (strncmp (in_sig, "SIG", 3) == 0) - sig = in_sig; - else - { - sprintf (buf, "SIG%s", in_sig); - sig = buf; - } - return (strtosigno (sig) ?: atoi (in_sig)); -} - -static void __stdcall -forcekill (int pid, int sig, int wait) -{ - external_pinfo *p = (external_pinfo *) cygwin_internal (CW_GETPINFO_FULL, pid); - if (!p) - return; - HANDLE h = OpenProcess (PROCESS_TERMINATE, FALSE, (DWORD) p->dwProcessId); - if (!h) - return; - if (!wait || WaitForSingleObject (h, 200) != WAIT_OBJECT_0) - TerminateProcess (h, sig << 8); - CloseHandle (h); -} diff --git a/winsup/utils/mkgroup.c b/winsup/utils/mkgroup.c deleted file mode 100644 index 9644b1842..000000000 --- a/winsup/utils/mkgroup.c +++ /dev/null @@ -1,573 +0,0 @@ -/* mkgroup.c: - - Copyright 1997, 1998 Cygnus Solutions. - - This file is part of Cygwin. - - This software is a copyrighted work licensed under the terms of the - Cygwin license. Please consult the file "CYGWIN_LICENSE" for - details. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -SID_IDENTIFIER_AUTHORITY sid_world_auth = {SECURITY_WORLD_SID_AUTHORITY}; -SID_IDENTIFIER_AUTHORITY sid_nt_auth = {SECURITY_NT_AUTHORITY}; - -NET_API_STATUS WINAPI (*netapibufferfree)(PVOID); -NET_API_STATUS WINAPI (*netgroupenum)(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI (*netlocalgroupenum)(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI (*netlocalgroupgetmembers)(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI (*netgetdcname)(LPWSTR,LPWSTR,PBYTE*); -NET_API_STATUS WINAPI (*netgroupgetusers)(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); - -#ifndef min -#define min(a,b) (((a)<(b))?(a):(b)) -#endif - -BOOL -load_netapi () -{ - HANDLE h = LoadLibrary ("netapi32.dll"); - - if (!h) - return FALSE; - - if (!(netapibufferfree = (void *) GetProcAddress (h, "NetApiBufferFree"))) - return FALSE; - if (!(netgroupenum = (void *) GetProcAddress (h, "NetGroupEnum"))) - return FALSE; - if (!(netgroupgetusers = (void *) GetProcAddress (h, "NetGroupGetUsers"))) - return FALSE; - if (!(netlocalgroupenum = (void *) GetProcAddress (h, "NetLocalGroupEnum"))) - return FALSE; - if (!(netlocalgroupgetmembers = (void *) GetProcAddress (h, "NetLocalGroupGetMembers"))) - return FALSE; - if (!(netgetdcname = (void *) GetProcAddress (h, "NetGetDCName"))) - return FALSE; - - return TRUE; -} - -char * -put_sid (PSID sid) -{ - static char s[512]; - char t[32]; - DWORD i; - - strcpy (s, "S-1-"); - sprintf(t, "%u", GetSidIdentifierAuthority (sid)->Value[5]); - strcat (s, t); - for (i = 0; i < *GetSidSubAuthorityCount (sid); ++i) - { - sprintf(t, "-%lu", *GetSidSubAuthority (sid, i)); - strcat (s, t); - } - return s; -} - -void -psx_dir (char *in, char *out) -{ - if (isalpha (in[0]) && in[1] == ':') - { - sprintf (out, "/cygdrive/%c", in[0]); - in += 2; - out += strlen (out); - } - - while (*in) - { - if (*in == '\\') - *out = '/'; - else - *out = *in; - in++; - out++; - } - - *out = '\0'; -} - -void -uni2ansi (LPWSTR wcs, char *mbs, int size) -{ - if (wcs) - WideCharToMultiByte (CP_ACP, 0, wcs, -1, mbs, size, NULL, NULL); - else - *mbs = '\0'; -} - -void -enum_local_users (LPWSTR groupname) -{ - LOCALGROUP_MEMBERS_INFO_1 *buf1; - DWORD entries = 0; - DWORD total = 0; - DWORD reshdl = 0; - - if (!netlocalgroupgetmembers (NULL, groupname, - 1, (LPBYTE *) &buf1, - MAX_PREFERRED_LENGTH, - &entries, &total, &reshdl)) - { - int i, first = 1; - - for (i = 0; i < entries; ++i) - if (buf1[i].lgrmi1_sidusage == SidTypeUser) - { - char user[256]; - - if (!first) - printf (","); - first = 0; - uni2ansi (buf1[i].lgrmi1_name, user, sizeof (user)); - printf ("%s", user); - } - netapibufferfree (buf1); - } -} - -int -enum_local_groups (int print_sids, int print_users) -{ - LOCALGROUP_INFO_0 *buffer; - DWORD entriesread = 0; - DWORD totalentries = 0; - DWORD resume_handle = 0; - DWORD rc; - - do - { - DWORD i; - - rc = netlocalgroupenum (NULL, 0, (LPBYTE *) &buffer, 1024, - &entriesread, &totalentries, &resume_handle); - switch (rc) - { - case ERROR_ACCESS_DENIED: - fprintf (stderr, "Access denied\n"); - exit (1); - - case ERROR_MORE_DATA: - case ERROR_SUCCESS: - break; - - default: - fprintf (stderr, "NetLocalGroupEnum() failed with %ld\n", rc); - exit (1); - } - - for (i = 0; i < entriesread; i++) - { - char localgroup_name[100]; - char domain_name[100]; - DWORD domname_len = 100; - char psid_buffer[1024]; - PSID psid = (PSID) psid_buffer; - DWORD sid_length = 1024; - DWORD gid; - SID_NAME_USE acc_type; - uni2ansi (buffer[i].lgrpi0_name, localgroup_name, sizeof (localgroup_name)); - - if (!LookupAccountName (NULL, localgroup_name, psid, - &sid_length, domain_name, &domname_len, - &acc_type)) - { - fprintf (stderr, "LookupAccountName(%s) failed with %ld\n", - localgroup_name, GetLastError ()); - continue; - } - else if (acc_type == SidTypeDomain) - { - char domname[356]; - - strcpy (domname, domain_name); - strcat (domname, "\\"); - strcat (domname, localgroup_name); - sid_length = 1024; - domname_len = 100; - if (!LookupAccountName (NULL, domname, - psid, &sid_length, - domain_name, &domname_len, - &acc_type)) - { - fprintf (stderr, - "LookupAccountName(%s) failed with error %ld\n", - localgroup_name, GetLastError ()); - continue; - } - } - - gid = *GetSidSubAuthority (psid, *GetSidSubAuthorityCount(psid) - 1); - - printf ("%s:%s:%ld:", localgroup_name, - print_sids ? put_sid (psid) : "", - gid); - if (print_users) - enum_local_users (buffer[i].lgrpi0_name); - printf ("\n"); - } - - netapibufferfree (buffer); - - } - while (rc == ERROR_MORE_DATA); - - return 0; -} - -void -enum_users (LPWSTR servername, LPWSTR groupname) -{ - GROUP_USERS_INFO_0 *buf1; - DWORD entries = 0; - DWORD total = 0; - DWORD reshdl = 0; - - if (!netgroupgetusers (servername, groupname, - 0, (LPBYTE *) &buf1, - MAX_PREFERRED_LENGTH, - &entries, &total, &reshdl)) - { - int i, first = 1; - - for (i = 0; i < entries; ++i) - { - char user[256]; - - if (!first) - printf (","); - first = 0; - uni2ansi (buf1[i].grui0_name, user, sizeof (user)); - printf ("%s", user); - } - netapibufferfree (buf1); - } -} - -void -enum_groups (LPWSTR servername, int print_sids, int print_users, int id_offset) -{ - GROUP_INFO_2 *buffer; - DWORD entriesread = 0; - DWORD totalentries = 0; - DWORD resume_handle = 0; - DWORD rc; - char ansi_srvname[256]; - - if (servername) - uni2ansi (servername, ansi_srvname, sizeof (ansi_srvname)); - - do - { - DWORD i; - - rc = netgroupenum (servername, 2, (LPBYTE *) & buffer, 1024, - &entriesread, &totalentries, &resume_handle); - switch (rc) - { - case ERROR_ACCESS_DENIED: - fprintf (stderr, "Access denied\n"); - exit (1); - - case ERROR_MORE_DATA: - case ERROR_SUCCESS: - break; - - default: - fprintf (stderr, "NetGroupEnum() failed with %ld\n", rc); - exit (1); - } - - for (i = 0; i < entriesread; i++) - { - char groupname[100]; - char domain_name[100]; - DWORD domname_len = 100; - char psid_buffer[1024]; - PSID psid = (PSID) psid_buffer; - DWORD sid_length = 1024; - SID_NAME_USE acc_type; - - int gid = buffer[i].grpi2_group_id; - uni2ansi (buffer[i].grpi2_name, groupname, sizeof (groupname)); - if (print_sids) - { - if (!LookupAccountName (servername ? ansi_srvname : NULL, - groupname, - psid, &sid_length, - domain_name, &domname_len, - &acc_type)) - { - fprintf (stderr, - "LookupAccountName (%s, %s) failed with error %ld\n", - servername ? ansi_srvname : "NULL", - groupname, - GetLastError ()); - continue; - } - else if (acc_type == SidTypeDomain) - { - char domname[356]; - - strcpy (domname, domain_name); - strcat (domname, "\\"); - strcat (domname, groupname); - sid_length = 1024; - domname_len = 100; - if (!LookupAccountName (servername ? ansi_srvname : NULL, - domname, - psid, &sid_length, - domain_name, &domname_len, - &acc_type)) - { - fprintf (stderr, - "LookupAccountName(%s,%s) failed with error %ld\n", - servername ? ansi_srvname : "NULL", - domname, - GetLastError ()); - continue; - } - } - } - printf ("%s:%s:%d:", groupname, - print_sids ? put_sid (psid) : "", - gid + id_offset); - if (print_users) - enum_users (servername, buffer[i].grpi2_name); - printf ("\n"); - } - - netapibufferfree (buffer); - - } - while (rc == ERROR_MORE_DATA); - - if (servername) - netapibufferfree (servername); -} - -void -print_special (int print_sids, - PSID_IDENTIFIER_AUTHORITY auth, BYTE cnt, - DWORD sub1, DWORD sub2, DWORD sub3, DWORD sub4, - DWORD sub5, DWORD sub6, DWORD sub7, DWORD sub8) -{ - char name[256], dom[256]; - DWORD len, len2, rid; - PSID sid; - SID_NAME_USE use; - - if (AllocateAndInitializeSid (auth, cnt, sub1, sub2, sub3, sub4, - sub5, sub6, sub7, sub8, &sid)) - { - if (LookupAccountSid (NULL, sid, - name, (len = 256, &len), - dom, (len2 = 256, &len), - &use)) - { - if (sub8) - rid = sub8; - else if (sub7) - rid = sub7; - else if (sub6) - rid = sub6; - else if (sub5) - rid = sub5; - else if (sub4) - rid = sub4; - else if (sub3) - rid = sub3; - else if (sub2) - rid = sub2; - else - rid = sub1; - printf ("%s:%s:%lu:\n", name, - print_sids ? put_sid (sid) : "", - rid); - } - FreeSid (sid); - } -} - -int -usage () -{ - fprintf (stderr, "Usage: mkgroup [OPTION]... [domain]\n\n"); - fprintf (stderr, "This program prints a /etc/group file to stdout\n\n"); - fprintf (stderr, "Options:\n"); - fprintf (stderr, " -l,--local print local group information\n"); - fprintf (stderr, " -d,--domain print global group information from the domain\n"); - fprintf (stderr, " specified (or from the current domain if there is\n"); - fprintf (stderr, " no domain specified)\n"); - fprintf (stderr, " -o,--id-offset offset change the default offset (10000) added to uids\n"); - fprintf (stderr, " in domain accounts.\n"); - fprintf (stderr, " -s,--no-sids don't print SIDs in pwd field\n"); - fprintf (stderr, " (this affects ntsec)\n"); - fprintf (stderr, " -u,--users print user list in gr_mem field\n"); - fprintf (stderr, " -?,--help print this message\n\n"); - fprintf (stderr, "One of `-l' or `-d' must be given on NT/W2K.\n"); - return 1; -} - -struct option longopts[] = { - {"local", no_argument, NULL, 'l'}, - {"domain", no_argument, NULL, 'd'}, - {"id-offset", required_argument, NULL, 'o'}, - {"no-sids", no_argument, NULL, 's'}, - {"users", no_argument, NULL, 'u'}, - {"help", no_argument, NULL, 'h'}, - {0, no_argument, NULL, 0} -}; - -char opts[] = "ldo:suh"; - -int -main (int argc, char **argv) -{ - LPWSTR servername; - DWORD rc = ERROR_SUCCESS; - WCHAR domain_name[100]; - int print_local = 0; - int print_domain = 0; - int print_sids = 1; - int print_users = 0; - int domain_specified = 0; - int id_offset = 10000; - int i; - - char name[256], dom[256]; - DWORD len, len2; - PSID csid; - SID_NAME_USE use; - - if (GetVersion () < 0x80000000) - { - if (argc == 1) - return usage (); - else - { - while ((i = getopt_long (argc, argv, opts, longopts, NULL)) != EOF) - switch (i) - { - case 'l': - print_local = 1; - break; - case 'd': - print_domain = 1; - break; - case 'o': - id_offset = strtol (optarg, NULL, 10); - break; - case 's': - print_sids = 0; - break; - case 'u': - print_users = 1; - break; - case 'h': - return usage (); - default: - fprintf (stderr, "Try `%s --help' for more information.\n", argv[0]); - return 1; - } - if (!print_local && !print_domain) - { - fprintf (stderr, "%s: Specify one of `-l' or `-d'\n", argv[0]); - return 1; - } - if (optind < argc) - { - if (!print_domain) - { - fprintf (stderr, "%s: A domain name is only accepted " - "when `-d' is given.\n", argv[0]); - return 1; - } - mbstowcs (domain_name, argv[optind], (strlen (argv[optind]) + 1)); - domain_specified = 1; - } - } - } - - /* This takes Windows 9x/ME into account. */ - if (GetVersion () >= 0x80000000) - { - printf ("unknown::%ld:\n", DOMAIN_ALIAS_RID_ADMINS); - return 0; - } - - if (!load_netapi ()) - { - fprintf (stderr, "Failed loading symbols from netapi32.dll " - "with error %lu\n", GetLastError ()); - return 1; - } - - /* - * Get `Everyone' group - */ - print_special (print_sids, &sid_world_auth, 1, SECURITY_WORLD_RID, - 0, 0, 0, 0, 0, 0, 0); - /* - * Get `system' group - */ - print_special (print_sids, &sid_nt_auth, 1, SECURITY_LOCAL_SYSTEM_RID, - 0, 0, 0, 0, 0, 0, 0); - if (print_local) - { - /* - * Get `None' group - */ - len = 256; - GetComputerName (name, &len); - csid = (PSID) malloc (1024); - len = 1024; - len2 = 256; - LookupAccountName (NULL, name, - csid, &len, - dom, &len, - &use); - print_special (print_sids, GetSidIdentifierAuthority (csid), 5, - *GetSidSubAuthority (csid, 0), - *GetSidSubAuthority (csid, 1), - *GetSidSubAuthority (csid, 2), - *GetSidSubAuthority (csid, 3), - 513, - 0, - 0, - 0); - free (csid); - } - - if (print_domain) - { - if (domain_specified) - rc = netgetdcname (NULL, domain_name, (LPBYTE *) & servername); - - else - rc = netgetdcname (NULL, NULL, (LPBYTE *) & servername); - - if (rc != ERROR_SUCCESS) - { - fprintf (stderr, "Cannot get PDC, code = %ld\n", rc); - exit (1); - } - - enum_groups (servername, print_sids, print_users, id_offset); - } - - if (print_local) - enum_local_groups (print_sids, print_users); - - return 0; -} diff --git a/winsup/utils/mkpasswd.c b/winsup/utils/mkpasswd.c deleted file mode 100644 index f0b41eccb..000000000 --- a/winsup/utils/mkpasswd.c +++ /dev/null @@ -1,595 +0,0 @@ -/* mkpasswd.c: - - Copyright 1997, 1998, 1999, 2000, 2001 Red Hat, Inc. - - This file is part of Cygwin. - - This software is a copyrighted work licensed under the terms of the - Cygwin license. Please consult the file "CYGWIN_LICENSE" for - details. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -SID_IDENTIFIER_AUTHORITY sid_world_auth = {SECURITY_WORLD_SID_AUTHORITY}; -SID_IDENTIFIER_AUTHORITY sid_nt_auth = {SECURITY_NT_AUTHORITY}; - -NET_API_STATUS WINAPI (*netapibufferfree)(PVOID); -NET_API_STATUS WINAPI (*netuserenum)(LPWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI (*netlocalgroupenum)(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI (*netgetdcname)(LPWSTR,LPWSTR,PBYTE*); -NET_API_STATUS WINAPI (*netusergetinfo)(LPWSTR,LPWSTR,DWORD,PBYTE*); - -#ifndef min -#define min(a,b) (((a)<(b))?(a):(b)) -#endif - -BOOL -load_netapi () -{ - HANDLE h = LoadLibrary ("netapi32.dll"); - - if (!h) - return FALSE; - - if (!(netapibufferfree = (void *) GetProcAddress (h, "NetApiBufferFree"))) - return FALSE; - if (!(netuserenum = (void *) GetProcAddress (h, "NetUserEnum"))) - return FALSE; - if (!(netlocalgroupenum = (void *) GetProcAddress (h, "NetLocalGroupEnum"))) - return FALSE; - if (!(netgetdcname = (void *) GetProcAddress (h, "NetGetDCName"))) - return FALSE; - if (!(netusergetinfo = (void *) GetProcAddress (h, "NetUserGetInfo"))) - return FALSE; - - return TRUE; -} - -char * -put_sid (PSID sid) -{ - static char s[512]; - char t[32]; - DWORD i; - - strcpy (s, "S-1-"); - sprintf(t, "%u", GetSidIdentifierAuthority (sid)->Value[5]); - strcat (s, t); - for (i = 0; i < *GetSidSubAuthorityCount (sid); ++i) - { - sprintf(t, "-%lu", *GetSidSubAuthority (sid, i)); - strcat (s, t); - } - return s; -} - -void -psx_dir (char *in, char *out) -{ - if (isalpha (in[0]) && in[1] == ':') - { - sprintf (out, "/cygdrive/%c", in[0]); - in += 2; - out += strlen (out); - } - - while (*in) - { - if (*in == '\\') - *out = '/'; - else - *out = *in; - in++; - out++; - } - - *out = '\0'; -} - -void -uni2ansi (LPWSTR wcs, char *mbs, int size) -{ - if (wcs) - WideCharToMultiByte (CP_ACP, 0, wcs, -1, mbs, size, NULL, NULL); - else - *mbs = '\0'; -} - -void -print_win_error(DWORD code) -{ - char buf[4096]; - - if (FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM - | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - code, - MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) buf, sizeof (buf), NULL)) - fprintf (stderr, "mkpasswd: [%lu] %s", code, buf); - else - fprintf (stderr, "mkpasswd: error %lu", code); -} - -int -enum_users (LPWSTR servername, int print_sids, int print_cygpath, - const char * passed_home_path, int id_offset, char *disp_username) -{ - USER_INFO_3 *buffer; - DWORD entriesread = 0; - DWORD totalentries = 0; - DWORD resume_handle = 0; - DWORD rc; - char ansi_srvname[256]; - WCHAR uni_name[512]; - - if (servername) - uni2ansi (servername, ansi_srvname, sizeof (ansi_srvname)); - - do - { - DWORD i; - - if (disp_username != NULL) - { - MultiByteToWideChar (CP_ACP, 0, disp_username, -1, uni_name, 512 ); - rc = netusergetinfo(servername, (LPWSTR) & uni_name, 3, - (LPBYTE *) &buffer ); - entriesread=1; - } - else - rc = netuserenum (servername, 3, FILTER_NORMAL_ACCOUNT, - (LPBYTE *) & buffer, 1024, - &entriesread, &totalentries, &resume_handle); - switch (rc) - { - case ERROR_ACCESS_DENIED: - print_win_error(rc); - exit (1); - - case ERROR_MORE_DATA: - case ERROR_SUCCESS: - break; - - default: - print_win_error(rc); - exit (1); - } - - for (i = 0; i < entriesread; i++) - { - char username[100]; - char fullname[100]; - char homedir_psx[MAX_PATH]; - char homedir_w32[MAX_PATH]; - char domain_name[100]; - DWORD domname_len = 100; - char psid_buffer[1024]; - PSID psid = (PSID) psid_buffer; - DWORD sid_length = 1024; - SID_NAME_USE acc_type; - - int uid = buffer[i].usri3_user_id; - int gid = buffer[i].usri3_primary_group_id; - uni2ansi (buffer[i].usri3_name, username, sizeof (username)); - uni2ansi (buffer[i].usri3_full_name, fullname, sizeof (fullname)); - homedir_w32[0] = homedir_psx[0] = '\0'; - if (passed_home_path[0] == '\0') - { - uni2ansi (buffer[i].usri3_home_dir, homedir_w32, - sizeof (homedir_w32)); - if (homedir_w32[0] != '\0') - { - if (print_cygpath) - cygwin_conv_to_posix_path (homedir_w32, homedir_psx); - else - psx_dir (homedir_w32, homedir_psx); - } - else - { - strcpy (homedir_psx, "/home/"); - strcat (homedir_psx, username); - } - } - else - { - strcpy (homedir_psx, passed_home_path); - strcat (homedir_psx, username); - } - - if (print_sids) - { - if (!LookupAccountName (servername ? ansi_srvname : NULL, - username, - psid, &sid_length, - domain_name, &domname_len, - &acc_type)) - { - print_win_error(GetLastError ()); - continue; - } - else if (acc_type == SidTypeDomain) - { - char domname[356]; - - strcpy (domname, domain_name); - strcat (domname, "\\"); - strcat (domname, username); - sid_length = 1024; - domname_len = 100; - if (!LookupAccountName (servername ? ansi_srvname : NULL, - domname, - psid, &sid_length, - domain_name, &domname_len, - &acc_type)) - { - print_win_error(GetLastError ()); - continue; - } - } - } - printf ("%s:unused_by_nt/2000/xp:%d:%d:%s%s%s%s%s%s%s%s:%s:/bin/bash\n", - username, - uid + id_offset, - gid + id_offset, - fullname, - print_sids && fullname[0] ? "," : "", - print_sids ? "U-" : "", - print_sids ? domain_name : "", - print_sids && domain_name[0] ? "\\" : "", - print_sids ? username : "", - print_sids ? "," : "", - print_sids ? put_sid (psid) : "", - homedir_psx); - } - - netapibufferfree (buffer); - - } - while (rc == ERROR_MORE_DATA); - - if (servername) - netapibufferfree (servername); - - return 0; -} - -int -enum_local_groups (int print_sids) -{ - LOCALGROUP_INFO_0 *buffer; - DWORD entriesread = 0; - DWORD totalentries = 0; - DWORD resume_handle = 0; - DWORD rc ; - - do - { - DWORD i; - - rc = netlocalgroupenum (NULL, 0, (LPBYTE *) & buffer, 1024, - &entriesread, &totalentries, &resume_handle); - switch (rc) - { - case ERROR_ACCESS_DENIED: - print_win_error(rc); - exit (1); - - case ERROR_MORE_DATA: - case ERROR_SUCCESS: - break; - - default: - print_win_error(rc); - exit (1); - } - - for (i = 0; i < entriesread; i++) - { - char localgroup_name[100]; - char domain_name[100]; - DWORD domname_len = 100; - char psid_buffer[1024]; - PSID psid = (PSID) psid_buffer; - DWORD sid_length = 1024; - DWORD gid; - SID_NAME_USE acc_type; - uni2ansi (buffer[i].lgrpi0_name, localgroup_name, sizeof (localgroup_name)); - - if (!LookupAccountName (NULL, localgroup_name, psid, - &sid_length, domain_name, &domname_len, - &acc_type)) - { - print_win_error(GetLastError ()); - continue; - } - else if (acc_type == SidTypeDomain) - { - char domname[356]; - - strcpy (domname, domain_name); - strcat (domname, "\\"); - strcat (domname, localgroup_name); - sid_length = 1024; - domname_len = 100; - if (!LookupAccountName (NULL, domname, - psid, &sid_length, - domain_name, &domname_len, - &acc_type)) - { - print_win_error(GetLastError ()); - continue; - } - } - - gid = *GetSidSubAuthority (psid, *GetSidSubAuthorityCount(psid) - 1); - - printf ("%s:*:%ld:%ld:%s%s::\n", localgroup_name, gid, gid, - print_sids ? "," : "", - print_sids ? put_sid (psid) : ""); - } - - netapibufferfree (buffer); - - } - while (rc == ERROR_MORE_DATA); - - return 0; -} - -void -print_special (int print_sids, - PSID_IDENTIFIER_AUTHORITY auth, BYTE cnt, - DWORD sub1, DWORD sub2, DWORD sub3, DWORD sub4, - DWORD sub5, DWORD sub6, DWORD sub7, DWORD sub8) -{ - char name[256], dom[256]; - DWORD len, len2, rid; - PSID sid; - SID_NAME_USE use; - - if (AllocateAndInitializeSid (auth, cnt, sub1, sub2, sub3, sub4, - sub5, sub6, sub7, sub8, &sid)) - { - if (LookupAccountSid (NULL, sid, - name, (len = 256, &len), - dom, (len2 = 256, &len), - &use)) - { - if (sub8) - rid = sub8; - else if (sub7) - rid = sub7; - else if (sub6) - rid = sub6; - else if (sub5) - rid = sub5; - else if (sub4) - rid = sub4; - else if (sub3) - rid = sub3; - else if (sub2) - rid = sub2; - else - rid = sub1; - printf ("%s:*:%lu:%lu:%s%s::\n", - name, rid, rid, - print_sids ? "," : "", - print_sids ? put_sid (sid) : ""); - } - FreeSid (sid); - } -} - -int -usage () -{ - fprintf (stderr, "Usage: mkpasswd [OPTION]... [domain]\n\n"); - fprintf (stderr, "This program prints a /etc/passwd file to stdout\n\n"); - fprintf (stderr, "Options:\n"); - fprintf (stderr, " -l,--local print local user accounts\n"); - fprintf (stderr, " -d,--domain print domain accounts (from current domain\n"); - fprintf (stderr, " if no domain specified)\n"); - fprintf (stderr, " -o,--id-offset offset change the default offset (10000) added to uids\n"); - fprintf (stderr, " in domain accounts.\n"); - fprintf (stderr, " -g,--local-groups print local group information too\n"); - fprintf (stderr, " if no domain specified\n"); - fprintf (stderr, " -m,--no-mount don't use mount points for home dir\n"); - fprintf (stderr, " -s,--no-sids don't print SIDs in GCOS field\n"); - fprintf (stderr, " (this affects ntsec)\n"); - fprintf (stderr, " -p,--path-to-home path use specified path instead of user account home dir\n"); - fprintf (stderr, " -u,--username username only return information for the specified user\n"); - fprintf (stderr, " -?,--help displays this message\n\n"); - fprintf (stderr, "One of `-l', `-d' or `-g' must be given on NT/W2K.\n"); - return 1; -} - -struct option longopts[] = { - {"local", no_argument, NULL, 'l'}, - {"domain", no_argument, NULL, 'd'}, - {"id-offset", required_argument, NULL, 'o'}, - {"local-groups", no_argument, NULL, 'g'}, - {"no-mount", no_argument, NULL, 'm'}, - {"no-sids", no_argument, NULL, 's'}, - {"path-to-home", required_argument, NULL, 'p'}, - {"username", required_argument, NULL, 'u'}, - {"help", no_argument, NULL, 'h'}, - {0, no_argument, NULL, 0} -}; - -char opts[] = "ldo:gsmhp:u:"; - -int -main (int argc, char **argv) -{ - LPWSTR servername = NULL; - DWORD rc = ERROR_SUCCESS; - WCHAR domain_name[200]; - int print_local = 0; - int print_domain = 0; - int print_local_groups = 0; - int domain_name_specified = 0; - int print_sids = 1; - int print_cygpath = 1; - int id_offset = 10000; - int i; - char *disp_username = NULL; - - char name[256], passed_home_path[MAX_PATH]; - DWORD len; - - passed_home_path[0] = '\0'; - setmode (1, O_BINARY); - - if (GetVersion () < 0x80000000) - { - if (argc == 1) - return usage (); - else - { - while ((i = getopt_long (argc, argv, opts, longopts, NULL)) != EOF) - switch (i) - { - case 'l': - print_local = 1; - break; - case 'd': - print_domain = 1; - break; - case 'o': - id_offset = strtol (optarg, NULL, 10); - break; - case 'g': - print_local_groups = 1; - break; - case 's': - print_sids = 0; - break; - case 'm': - print_cygpath = 0; - break; - case 'p': - if (optarg[0] != '/') - { - fprintf (stderr, "%s: `%s' is not a fully qualified path.\n", - argv[0], optarg); - return 1; - } - strcpy (passed_home_path, optarg); - if (optarg[strlen (optarg)-1] != '/') - strcat (passed_home_path, "/"); - break; - case 'u': - disp_username = optarg; - break; - case 'h': - return usage (); - default: - fprintf (stderr, "Try `%s --help' for more information.\n", argv[0]); - return 1; - } - if (!print_local && !print_domain && !print_local_groups) - { - fprintf (stderr, "%s: Specify one of `-l', `-d' or `-g'\n", argv[0]); - return 1; - } - if (optind < argc) - { - if (!print_domain) - { - fprintf (stderr, "%s: A domain name is only accepted " - "when `-d' is given.\n", argv[0]); - return 1; - } - mbstowcs (domain_name, argv[optind], (strlen (argv[optind]) + 1)); - domain_name_specified = 1; - } - } - } - - /* This takes Windows 9x/ME into account. */ - if (GetVersion () >= 0x80000000) - { - /* Same behaviour as in cygwin/uinfo.cc (internal_getlogin). */ - if (!GetUserName (name, (len = 256, &len))) - strcpy (name, "unknown"); - - if (passed_home_path[0] == '\0') - strcpy (passed_home_path, "/home/"); - - printf ("%s::%ld:%ld::%s%s:/bin/bash\n", name, - DOMAIN_USER_RID_ADMIN, - DOMAIN_ALIAS_RID_ADMINS, - passed_home_path, - name); - - return 0; - } - - if (!load_netapi ()) - { - print_win_error(GetLastError ()); - return 1; - } - - /* - * Get `Everyone' group - */ - if (disp_username == NULL) - { - print_special (print_sids, &sid_world_auth, 1, SECURITY_WORLD_RID, - 0, 0, 0, 0, 0, 0, 0); - /* - * Get `system' group - */ - print_special (print_sids, &sid_nt_auth, 1, SECURITY_LOCAL_SYSTEM_RID, - 0, 0, 0, 0, 0, 0, 0); - /* - * Get `administrators' group - */ - if (!print_local_groups) - print_special (print_sids, &sid_nt_auth, 2, SECURITY_BUILTIN_DOMAIN_RID, - DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0); - - if (print_local_groups) - enum_local_groups (print_sids); - } - - if (print_domain) - { - if (domain_name_specified) - rc = netgetdcname (NULL, domain_name, (LPBYTE *) & servername); - - else - rc = netgetdcname (NULL, NULL, (LPBYTE *) & servername); - - if (rc != ERROR_SUCCESS) - { - print_win_error(rc); - exit (1); - } - - enum_users (servername, print_sids, print_cygpath, passed_home_path, - id_offset, disp_username); - } - - if (print_local) - enum_users (NULL, print_sids, print_cygpath, passed_home_path, 0, - disp_username); - - if (servername) - netapibufferfree (servername); - - return 0; -} diff --git a/winsup/utils/module_info.cc b/winsup/utils/module_info.cc deleted file mode 100644 index c0e7079cc..000000000 --- a/winsup/utils/module_info.cc +++ /dev/null @@ -1,114 +0,0 @@ -/* module_info.cc - - Copyright 1999,2000,2001 Red Hat, Inc. - - Written by Egor Duda - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include - -static int psapi_loaded = 0; -static HMODULE psapi_module_handle = NULL; - -typedef BOOL WINAPI (tf_EnumProcessModules) (HANDLE, HMODULE *, DWORD, - LPDWORD); -typedef BOOL WINAPI (tf_GetModuleInformation) (HANDLE, HMODULE, LPMODULEINFO, - DWORD); -typedef DWORD WINAPI (tf_GetModuleFileNameExA) (HANDLE, HMODULE, LPSTR, - DWORD); - -static tf_EnumProcessModules *psapi_EnumProcessModules = NULL; -static tf_GetModuleInformation *psapi_GetModuleInformation = NULL; -static tf_GetModuleFileNameExA *psapi_GetModuleFileNameExA = NULL; - -/* Returns full name of Dll, which is loaded by hProcess at BaseAddress. - Uses psapi.dll. */ - -char * -psapi_get_module_name (HANDLE hProcess, DWORD BaseAddress) -{ - DWORD len; - MODULEINFO mi; - unsigned int i; - HMODULE dh_buf[1]; - HMODULE *DllHandle = dh_buf; - DWORD cbNeeded; - BOOL ok; - - char name_buf[MAX_PATH + 1]; - - if (!psapi_loaded || - psapi_EnumProcessModules == NULL || - psapi_GetModuleInformation == NULL || - psapi_GetModuleFileNameExA == NULL) - { - if (psapi_loaded) - goto failed; - psapi_loaded = 1; - psapi_module_handle = LoadLibrary ("psapi.dll"); - if (!psapi_module_handle) - goto failed; - psapi_EnumProcessModules = - (tf_EnumProcessModules *) GetProcAddress (psapi_module_handle, - "EnumProcessModules"); - psapi_GetModuleInformation = - (tf_GetModuleInformation *) GetProcAddress (psapi_module_handle, - "GetModuleInformation"); - psapi_GetModuleFileNameExA = - (tf_GetModuleFileNameExA *) GetProcAddress (psapi_module_handle, - "GetModuleFileNameExA"); - if (psapi_EnumProcessModules == NULL - || psapi_GetModuleInformation == NULL - || psapi_GetModuleFileNameExA == NULL) - goto failed; - } - - ok = (*psapi_EnumProcessModules) (hProcess, - DllHandle, sizeof (HMODULE), &cbNeeded); - - if (!ok || !cbNeeded) - goto failed; - DllHandle = (HMODULE *) malloc (cbNeeded); - if (!DllHandle) - goto failed; - ok = (*psapi_EnumProcessModules) (hProcess, DllHandle, cbNeeded, &cbNeeded); - if (!ok) - { - free (DllHandle); - goto failed; - } - - for (i = 0; i < cbNeeded / sizeof (HMODULE); i++) - { - if (!(*psapi_GetModuleInformation) (hProcess, - DllHandle[i], &mi, sizeof (mi))) - { - free (DllHandle); - goto failed; - } - - len = (*psapi_GetModuleFileNameExA) (hProcess, - DllHandle[i], name_buf, MAX_PATH); - if (len == 0) - { - free (DllHandle); - goto failed; - } - - if ((DWORD) (mi.lpBaseOfDll) == BaseAddress) - { - free (DllHandle); - return strdup (name_buf); - } - } - -failed: - return NULL; -} diff --git a/winsup/utils/mount.cc b/winsup/utils/mount.cc deleted file mode 100644 index 00c662e62..000000000 --- a/winsup/utils/mount.cc +++ /dev/null @@ -1,408 +0,0 @@ -/* mount.cc - - Copyright 1996, 1997, 1998, 1999, 2000, 2001 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef errno -#undef errno -#endif -#include - -static void mount_commands (void); -static void show_mounts (void); -static void show_cygdrive_info (void); -static void change_cygdrive_prefix (const char *new_prefix, int flags); -static int mount_already_exists (const char *posix_path, int flags); - -// static short create_missing_dirs = FALSE; -static short force = FALSE; - -static const char *progname; - -static void -error (const char *path) -{ - fprintf (stderr, "%s: %s: %s\n", progname, path, - (errno == EMFILE) ? "Too many mount entries" : strerror (errno)); - exit (1); -} - -/* FIXME: do_mount should also print a warning message if the dev arg - is a non-existent Win32 path. */ - -static void -do_mount (const char *dev, const char *where, int flags) -{ - struct stat statbuf; - char win32_path[MAX_PATH]; - int statres; - - cygwin_conv_to_win32_path (where, win32_path); - - statres = stat (win32_path, &statbuf); - -#if 0 - if (statres == -1) - { - /* FIXME: this'll fail if mount dir is missing any parent dirs */ - if (create_missing_dirs == TRUE) - { - if (mkdir (where, 0755) == -1) - fprintf (stderr, "Warning: unable to create %s!\n", where); - else - statres = 0; /* Pretend stat succeeded if we could mkdir. */ - } - } -#endif - - if (mount (dev, where, flags)) - error (where); - - if (statres == -1) - { - if (force == FALSE) - fprintf (stderr, "%s: warning - %s does not exist.\n", progname, where); - } - else if (!(statbuf.st_mode & S_IFDIR)) - { - if (force == FALSE) - fprintf (stderr, "%s: warning: %s is not a directory.\n", progname, where); - } - - exit (0); -} - -struct option longopts[] = -{ - {"help", no_argument, NULL, 'h' }, - {"binary", no_argument, NULL, 'b'}, - {"force", no_argument, NULL, 'f'}, - {"system", no_argument, NULL, 's'}, - {"text", no_argument, NULL, 't'}, - {"user", no_argument, NULL, 'u'}, - {"executable", no_argument, NULL, 'x'}, - {"change-cygdrive-prefix", no_argument, NULL, 'c'}, - {"cygwin-executable", no_argument, NULL, 'X'}, - {"show-cygdrive-prefix", no_argument, NULL, 'p'}, - {"import-old-mounts", no_argument, NULL, 'i'}, - {"mount-commands", no_argument, NULL, 'm'}, - {NULL, 0, NULL, 0} -}; - -char opts[] = "hbfstuxXpicm"; - -static void -usage (void) -{ - fprintf (stderr, "Usage: %s [OPTION] [ ]\n\ - -b, --binary text files are equivalent to binary files\n\ - (newline = \\n)\n\ - -c, --change-cygdrive-prefix change the cygdrive path prefix to \n\ - -f, --force force mount, don't warn about missing mount\n\ - point directories\n\ - -i, --import-old-mounts copy old registry mount table mounts into the\n\ - current mount areas\n\ - -p, --show-cygdrive-prefix show user and/or system cygdrive path prefix\n\ - -s, --system add mount point to system-wide registry location\n\ - -t, --text (default) text files get \\r\\n line endings\n\ - -u, --user (default) add mount point to user registry location\n\ - -x, --executable treat all files under mount point as executables\n\ - -X, --cygwin-executable treat all files under mount point as cygwin\n\ - executables\n\ - -m, --mount-commands write mount commands to replace user and\n\ - system mount points and cygdrive prefixes\n\ -", progname); - exit (1); -} - -int -main (int argc, char **argv) -{ - int i; - int flags = 0; - enum do_what - { - nada, - saw_change_cygdrive_prefix, - saw_import_old_mounts, - saw_show_cygdrive_prefix, - saw_mount_commands - } do_what = nada; - - progname = argv[0]; - - if (argc == 1) - { - show_mounts (); - exit (0); - } - - while ((i = getopt_long (argc, argv, opts, longopts, NULL)) != EOF) - switch (i) - { - case 'b': - flags |= MOUNT_BINARY; - break; - case 'c': - if (do_what == nada) - do_what = saw_change_cygdrive_prefix; - else - usage (); - break; - case 'f': - force = TRUE; - break; - case 'i': - if (do_what == nada) - do_what = saw_import_old_mounts; - else - usage (); - break; - case 'p': - if (do_what == nada) - do_what = saw_show_cygdrive_prefix; - else - usage (); - break; - case 's': - flags |= MOUNT_SYSTEM; - break; - case 't': - flags &= ~MOUNT_BINARY; - break; - case 'u': - flags &= ~MOUNT_SYSTEM; - break; - case 'X': - flags |= MOUNT_CYGWIN_EXEC; - break; - case 'x': - flags |= MOUNT_EXEC; - break; - case 'm': - if (do_what == nada) - do_what = saw_mount_commands; - else - usage (); - break; - default: - usage (); - } - - argc--; - switch (do_what) - { - case saw_change_cygdrive_prefix: - if (optind != argc) - usage (); - change_cygdrive_prefix (argv[optind], flags); - break; - case saw_import_old_mounts: - if (optind <= argc) - usage (); - else - cygwin_internal (CW_READ_V1_MOUNT_TABLES); - break; - case saw_show_cygdrive_prefix: - if (optind <= argc) - usage (); - show_cygdrive_info (); - break; - case saw_mount_commands: - if (optind <= argc) - usage (); - mount_commands (); - break; - default: - if (optind != (argc - 1)) - { - if (optind >= argc) - fprintf (stderr, "%s: not enough arguments\n", progname); - else - fprintf (stderr, "%s: too many arguments\n", progname); - usage (); - } - if (force || !mount_already_exists (argv[optind + 1], flags)) - do_mount (argv[optind], argv[optind + 1], flags); - else - { - errno = EBUSY; - error (argv[optind + 1]); - } - } - - /* NOTREACHED */ - return 0; -} - -static void -mount_commands (void) -{ - FILE *m = setmntent ("/-not-used-", "r"); - struct mntent *p; - char *c; - const char *format_mnt = "mount%s \"%s\" \"%s\"\n"; - const char *format_cyg = "mount%s --change-cygdrive-prefix \"%s\"\n"; - char opts[MAX_PATH]; - char user[MAX_PATH]; - char system[MAX_PATH]; - char user_flags[MAX_PATH]; - char system_flags[MAX_PATH]; - - // write mount commands for user and system mount points - while ((p = getmntent (m)) != NULL) { - // Only list non-cygdrives - if (!strstr (p->mnt_opts, ",noumount")) { - strcpy(opts, " -f"); - if (p->mnt_type[0] == 'u') - strcat (opts, " -u"); - else if (p->mnt_type[0] == 's') - strcat (opts, " -s"); - if (p->mnt_opts[0] == 'b') - strcat (opts, " -b"); - else if (p->mnt_opts[0] == 't') - strcat (opts, " -t"); - if (strstr (p->mnt_opts, ",exec")) - strcat (opts, " -x"); - while ((c = strchr (p->mnt_fsname, '\\')) != NULL) - *c = '/'; - printf (format_mnt, opts, p->mnt_fsname, p->mnt_dir); - } - } - endmntent (m); - - // write mount commands for cygdrive prefixes - cygwin_internal (CW_GET_CYGDRIVE_INFO, user, system, user_flags, - system_flags); - if (strlen (user) > 0) { - strcpy (opts, " "); - if (user_flags[0] == 'b') - strcat (opts, " -b"); - else if (user_flags[0] == 't') - strcat (opts, " -t"); - printf (format_cyg, opts, user); - } - if (strlen (system) > 0) { - strcpy (opts, " -s"); - if (system_flags[0] == 'b') - strcat (opts, " -b"); - else if (system_flags[0] == 't') - strcat (opts, " -t"); - printf (format_cyg, opts, system); - } - - exit(0); -} - -static void -show_mounts (void) -{ - FILE *m = setmntent ("/-not-used-", "r"); - struct mntent *p; - const char *format = "%s on %s type %s (%s)\n"; - - // printf (format, "Device", "Directory", "Type", "Flags"); - while ((p = getmntent (m)) != NULL) - printf (format, p->mnt_fsname, p->mnt_dir, p->mnt_type, p->mnt_opts); - endmntent (m); -} - -/* Return 1 if mountpoint from the same registry area is already in - mount table. Otherwise return 0. */ -static int -mount_already_exists (const char *posix_path, int flags) -{ - int found_matching = 0; - - FILE *m = setmntent ("/-not-used-", "r"); - struct mntent *p; - - while ((p = getmntent (m)) != NULL) - { - /* if the paths match, and they're both the same type of mount. */ - if (strcmp (p->mnt_dir, posix_path) == 0) - { - if (p->mnt_type[0] == 'u') - { - if (!(flags & MOUNT_SYSTEM)) /* both current_user */ - found_matching = 1; - else - fprintf (stderr, - "%s: warning: system mount point of '%s' " - "will always be masked by user mount.\n", - progname, posix_path); - break; - } - else if (p->mnt_type[0] == 's') - { - if (flags & MOUNT_SYSTEM) /* both system */ - found_matching = 1; - else - fprintf (stderr, - "%s: warning: user mount point of '%s' " - "masks system mount.\n", - progname, posix_path); - break; - } - else - { - fprintf (stderr, "%s: warning: couldn't determine mount type.\n", progname); - break; - } - } - } - endmntent (m); - - return found_matching; -} - -/* change_cygdrive_prefix: Change the cygdrive prefix */ -static void -change_cygdrive_prefix (const char *new_prefix, int flags) -{ - flags |= MOUNT_AUTO; - - if (mount (NULL, new_prefix, flags)) - error (new_prefix); - - exit (0); -} - -/* show_cygdrive_info: Show the user and/or cygdrive info, i.e., prefix and - flags.*/ -static void -show_cygdrive_info () -{ - /* Get the cygdrive info */ - char user[MAX_PATH]; - char system[MAX_PATH]; - char user_flags[MAX_PATH]; - char system_flags[MAX_PATH]; - cygwin_internal (CW_GET_CYGDRIVE_INFO, user, system, user_flags, - system_flags); - - /* Display the user and system cygdrive path prefix, if necessary - (ie, not empty) */ - const char *format = "%-18s %-11s %s\n"; - printf (format, "Prefix", "Type", "Flags"); - if (strlen (user) > 0) - printf (format, user, "user", user_flags); - if (strlen (system) > 0) - printf (format, system, "system", system_flags); - - exit (0); -} diff --git a/winsup/utils/parse_pe.cc b/winsup/utils/parse_pe.cc deleted file mode 100644 index 07242da87..000000000 --- a/winsup/utils/parse_pe.cc +++ /dev/null @@ -1,91 +0,0 @@ -/* parse_pe.cc - - Copyright 1999,2000,2001 Red Hat, Inc. - - Written by Egor Duda - - This file is part of Cygwin. - - This software is a copyrighted work licensed under the terms of the - Cygwin license. Please consult the file "CYGWIN_LICENSE" for - details. */ - -#include -#include -#include - -#include "dumper.h" - -int -exclusion::add (LPBYTE mem_base, DWORD mem_size) -{ - while (last >= size) - size += step; - region = (process_mem_region *) realloc (region, size * sizeof (process_mem_region)); - if (region == NULL) - return 0; - region[last].base = mem_base; - region[last].size = mem_size; - last++; - return 1; -}; - -int -cmp_regions (const void *r1, const void *r2) -{ - if (((process_mem_region *) r1)->base < ((process_mem_region *) r2)->base) - return -1; - if (((process_mem_region *) r1)->base > ((process_mem_region *) r2)->base) - return 1; - return 0; -} - -int -exclusion::sort_and_check () -{ - qsort (region, last, sizeof (process_mem_region), &cmp_regions); - for (process_mem_region * p = region; p < region + last - 1; p++) - { - process_mem_region *q = p + 1; - if (p->base + size > q->base) - { - fprintf (stderr, "region error @ %08x", (unsigned) p->base); - return 0; - } - } - return 1; -} - -static void -select_data_section (bfd * abfd, asection * sect, PTR obj) -{ - exclusion *excl_list = (exclusion *) obj; - - if ((sect->flags & (SEC_CODE | SEC_DEBUGGING)) && - sect->vma && sect->_raw_size) - { - excl_list->add ((LPBYTE) sect->vma, (DWORD) sect->_raw_size); - deb_printf ("excluding section: %20s %08lx\n", sect->name, sect->_raw_size); - } -} - -int -parse_pe (const char *file_name, exclusion * excl_list) -{ - if (file_name == NULL || excl_list == NULL) - return 0; - - bfd *abfd = bfd_openr (file_name, "pei-i386"); - if (abfd == NULL) - { - bfd_perror ("failed to open file"); - return 0; - } - - bfd_check_format (abfd, bfd_object); - bfd_map_over_sections (abfd, &select_data_section, (PTR) excl_list); - excl_list->sort_and_check (); - - bfd_close (abfd); - return 1; -} diff --git a/winsup/utils/passwd.c b/winsup/utils/passwd.c deleted file mode 100644 index 9a90f6e4a..000000000 --- a/winsup/utils/passwd.c +++ /dev/null @@ -1,355 +0,0 @@ -/* passwd.c: Changing passwords and managing account information - - Copyright 1999 Cygnus Solutions. - - Written by Corinna Vinschen - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#define USER_PRIV_ADMIN 2 - -#define UF_LOCKOUT 0x00010 - -char *myname; - -int -eprint (int with_name, const char *fmt, ...) -{ - va_list ap; - - if (with_name) - fprintf(stderr, "%s: ", myname); - va_start (ap, fmt); - vfprintf (stderr, fmt, ap); - va_end (ap); - fprintf(stderr, "\n"); - return 1; -} - -int -EvalRet (int ret, const char *user) -{ - switch (ret) - { - case NERR_Success: - return 0; - - case ERROR_ACCESS_DENIED: - if (! user) - eprint (0, "You may not change password expiry information."); - else - eprint (0, "You may not change the password for %s.", user); - break; - - eprint (0, "Bad password: Invalid."); - break; - - case NERR_PasswordTooShort: - eprint (0, "Bad password: Too short."); - break; - - case NERR_UserNotFound: - eprint (1, "unknown user %s", user); - break; - - case ERROR_INVALID_PASSWORD: - case NERR_BadPassword: - eprint (0, "Incorrect password for %s.", user); - eprint (0, "The password for %s is unchanged.", user); - break; - - default: - eprint (1, "unrecoverable error %d", ret); - break; - } - return 1; -} - -PUSER_INFO_3 -GetPW (const char *user) -{ - WCHAR name[512]; - DWORD ret; - PUSER_INFO_3 ui; - - MultiByteToWideChar (CP_ACP, 0, user, -1, name, 512); - ret = NetUserGetInfo (NULL, name, 3, (LPBYTE *) &ui); - return EvalRet (ret, user) ? NULL : ui; -} - -int -ChangePW (const char *user, const char *oldpwd, const char *pwd, int justcheck) -{ - WCHAR name[512], oldpass[512], pass[512]; - DWORD ret; - - MultiByteToWideChar (CP_ACP, 0, user, -1, name, 512); - MultiByteToWideChar (CP_ACP, 0, pwd, -1, pass, 512); - if (! oldpwd) - { - USER_INFO_1003 ui; - - ui.usri1003_password = pass; - ret = NetUserSetInfo (NULL, name, 1003, (LPBYTE) &ui, NULL); - } - else - { - MultiByteToWideChar (CP_ACP, 0, oldpwd, -1, oldpass, 512); - ret = NetUserChangePassword (NULL, name, oldpass, pass); - } - if (justcheck && ret != ERROR_INVALID_PASSWORD) - return 0; - if (! EvalRet (ret, user) && ! justcheck) - { - eprint (0, "Password changed."); - } - return ret; -} - -void -PrintPW (PUSER_INFO_3 ui) -{ - time_t t = time (NULL) - ui->usri3_password_age; - int ret; - PUSER_MODALS_INFO_0 mi; - - printf ("Account disabled : %s", (ui->usri3_flags & UF_ACCOUNTDISABLE) - ? "yes\n" : "no\n"); - printf ("Password required: %s", (ui->usri3_flags & UF_PASSWD_NOTREQD) - ? "no\n" : "yes\n"); - printf ("Password expired : %s", (ui->usri3_password_expired) - ? "yes\n" : "no\n"); - printf ("Password changed : %s", ctime(&t)); - ret = NetUserModalsGet (NULL, 0, (LPBYTE *) &mi); - if (! ret) - { - if (mi->usrmod0_max_passwd_age == TIMEQ_FOREVER - || ui->usri3_priv == USER_PRIV_ADMIN) - mi->usrmod0_max_passwd_age = 0; - if (mi->usrmod0_min_passwd_age == TIMEQ_FOREVER - || ui->usri3_priv == USER_PRIV_ADMIN) - mi->usrmod0_min_passwd_age = 0; - if (mi->usrmod0_force_logoff == TIMEQ_FOREVER - || ui->usri3_priv == USER_PRIV_ADMIN) - mi->usrmod0_force_logoff = 0; - if (ui->usri3_priv == USER_PRIV_ADMIN) - mi->usrmod0_min_passwd_len = 0; - printf ("Max. password age %ld days\n", - mi->usrmod0_max_passwd_age / ONE_DAY); - printf ("Min. password age %ld days\n", - mi->usrmod0_min_passwd_age / ONE_DAY); - printf ("Force logout after %ld days\n", - mi->usrmod0_force_logoff / ONE_DAY); - printf ("Min. password length: %ld\n", - mi->usrmod0_min_passwd_len); - } -} - -int -SetModals (int xarg, int narg, int iarg, int Larg) -{ - int ret; - PUSER_MODALS_INFO_0 mi; - - ret = NetUserModalsGet (NULL, 0, (LPBYTE *) &mi); - if (! ret) - { - if (xarg == 0) - mi->usrmod0_max_passwd_age = TIMEQ_FOREVER; - else if (xarg > 0) - mi->usrmod0_max_passwd_age = xarg * ONE_DAY; - - if (narg == 0) - { - mi->usrmod0_min_passwd_age = TIMEQ_FOREVER; - mi->usrmod0_password_hist_len = 0; - } - else if (narg > 0) - mi->usrmod0_min_passwd_age = narg * ONE_DAY; - - if (iarg == 0) - mi->usrmod0_force_logoff = TIMEQ_FOREVER; - else if (iarg > 0) - mi->usrmod0_force_logoff = iarg * ONE_DAY; - - if (Larg >= 0) - mi->usrmod0_min_passwd_len = Larg; - - ret = NetUserModalsSet (NULL, 0, (LPBYTE) mi, NULL); - NetApiBufferFree (mi); - } - return EvalRet (ret, NULL); -} - -int -usage () -{ - fprintf (stderr, "usage: %s [name]\n", myname); - fprintf (stderr, " %s [-L maxlen] [-x max] [-n min] [-i inact]\n", - myname); - fprintf (stderr, " %s {-l|-u|-S} name\n", myname); - return 2; -} - -int -main (int argc, char **argv) -{ - char *c; - char user[64], oldpwd[64], newpwd[64]; - int ret = 0; - int cnt = 0; - int opt; - int Larg = -1; - int xarg = -1; - int narg = -1; - int iarg = -1; - int lopt = 0; - int uopt = 0; - int Sopt = 0; - PUSER_INFO_3 ui, li; - - if ((myname = strrchr (argv[0], '/')) - || (myname = strrchr (argv[0], '\\'))) - ++myname; - else - myname = argv[0]; - c = strrchr (myname, '.'); - if (c) - *c = '\0'; - - while ((opt = getopt (argc, argv, "L:x:n:i:luS")) != EOF) - switch (opt) - { - case 'x': - if ((xarg = atoi (optarg)) < 0 || xarg > 999) - return eprint (1, "Maximum password age must be between 0 and 999."); - if (narg >= 0 && xarg < narg) - return eprint (1, "Maximum password age must be greater than " - "minimum password age."); - break; - - case 'n': - if ((narg = atoi (optarg)) < 0 || narg > 999) - return eprint (1, "Minimum password age must be between 0 and 999."); - if (xarg >= 0 && narg > xarg) - return eprint (1, "Minimum password age must be less than " - "maximum password age."); - break; - - case 'i': - if ((iarg = atoi (optarg)) < 0 || iarg > 999) - return eprint (1, "Force logout time must be between 0 and 999."); - break; - - case 'L': - if ((Larg = atoi (optarg)) < 0 || Larg > LM20_PWLEN) - return eprint (1, "Minimum password length must be between " - "0 and %d.", LM20_PWLEN); - break; - - case 'l': - if (xarg >= 0 || narg >= 0 || iarg >= 0 || Larg >= 0 || uopt || Sopt) - return usage (); - lopt = 1; - break; - - case 'u': - if (xarg >= 0 || narg >= 0 || iarg >= 0 || Larg >= 0 || lopt || Sopt) - return usage (); - uopt = 1; - break; - - case 'S': - if (xarg >= 0 || narg >= 0 || iarg >= 0 || Larg >= 0 || lopt || uopt) - return usage (); - Sopt = 1; - break; - - default: - return usage (); - } - if (Larg >= 0 || xarg >= 0 || narg >= 0 || iarg >= 0) - { - if (optind < argc) - return usage (); - return SetModals (xarg, narg, iarg, Larg); - } - - strcpy (user, optind >= argc ? getlogin () : argv[optind]); - - li = GetPW (getlogin ()); - if (! li) - return 1; - - ui = GetPW (user); - if (! ui) - return 1; - - if (lopt || uopt || Sopt) - { - if (li->usri3_priv != USER_PRIV_ADMIN) - return eprint (0, "You have no maintenance privileges."); - if (lopt) - { - if (ui->usri3_priv == USER_PRIV_ADMIN) - return eprint (0, "You may not lock an administrators account."); - ui->usri3_flags |= UF_ACCOUNTDISABLE; - } - if (uopt) - ui->usri3_flags &= ~UF_ACCOUNTDISABLE; - if (lopt || uopt) - { - ret = NetUserSetInfo (NULL, ui->usri3_name, 3, (LPBYTE) ui, NULL); - return EvalRet (ret, NULL); - } - // Sopt - PrintPW (ui); - return 0; - } - - if (li->usri3_priv != USER_PRIV_ADMIN && strcmp (getlogin (), user)) - return eprint (0, "You may not change the password for %s.", user); - - eprint (0, "Enter the new password (minimum of 5, maximum of 8 characters)."); - eprint (0, "Please use a combination of upper and lower case letters and numbers."); - - oldpwd[0] = '\0'; - if (li->usri3_priv != USER_PRIV_ADMIN) - { - strcpy (oldpwd, getpass ("Old password: ")); - if (ChangePW (user, oldpwd, oldpwd, 1)) - return 1; - } - - do - { - strcpy (newpwd, getpass ("New password: ")); - if (strcmp (newpwd, getpass ("Re-enter new password: "))) - eprint (0, "Password is not identical."); - else if (! ChangePW (user, *oldpwd ? oldpwd : NULL, newpwd, 0)) - ret = 1; - if (! ret && cnt < 2) - eprint (0, "Try again."); - } - while (! ret && ++cnt < 3); - return ! ret; -} diff --git a/winsup/utils/path.cc b/winsup/utils/path.cc deleted file mode 100644 index d7d967098..000000000 --- a/winsup/utils/path.cc +++ /dev/null @@ -1,350 +0,0 @@ -/* path.cc - - Copyright 2001 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -/* The purpose of this file is to hide all the details about accessing - Cygwin's mount table. If the format or location of the mount table - changes, this is the file to change to match it. */ - -#include -#include -#include -#include -#include -#include - -/* Used when treating / and \ as equivalent. */ -#define SLASH_P(ch) \ - ({ \ - char __c = (ch); \ - ((__c) == '/' || (__c) == '\\'); \ - }) - - -static struct mnt - { - const char *native; - char *posix; - unsigned flags; - int issys; - } mount_table[255]; - -struct mnt *root_here = NULL; - -static char * -find2 (HKEY rkey, unsigned *flags, char *what) -{ - char *retval = 0; - DWORD retvallen = 0; - DWORD type; - HKEY key; - - if (RegOpenKeyEx (rkey, what, 0, KEY_READ, &key) != ERROR_SUCCESS) - return 0; - - if (RegQueryValueEx (key, "native", 0, &type, 0, &retvallen) - == ERROR_SUCCESS) - { - retval = (char *) malloc (MAX_PATH + 1); - if (RegQueryValueEx (key, "native", 0, &type, (BYTE *) retval, &retvallen) - != ERROR_SUCCESS) - { - free (retval); - retval = 0; - } - } - - retvallen = sizeof (flags); - RegQueryValueEx (key, "flags", 0, &type, (BYTE *)flags, &retvallen); - - RegCloseKey (key); - - return retval; -} - -static LONG -get_cygdrive0 (HKEY key, const char *what, void *val, DWORD len) -{ - LONG status = RegQueryValueEx (key, what, 0, 0, (BYTE *)val, &len); - return status; -} - -static mnt * -get_cygdrive (HKEY key, mnt *m, int issystem) -{ - - if (get_cygdrive0 (key, CYGWIN_INFO_CYGDRIVE_FLAGS, &m->flags, - sizeof (m->flags)) != ERROR_SUCCESS) { - free (m->posix); - return m; - } - get_cygdrive0 (key, CYGWIN_INFO_CYGDRIVE_PREFIX, m->posix, MAX_PATH); - m->native = strdup ("."); - return m + 1; -} - -static void -read_mounts () -{ - DWORD posix_path_size; - int res; - struct mnt *m = mount_table; - DWORD disposition; - char buf[10000]; - - root_here = NULL; - for (mnt *m1 = mount_table; m1->posix; m1++) - { - free (m1->posix); - if (m1->native) - free ((char *) m1->native); - m1->posix = NULL; - } - - /* Loop through subkeys */ - /* FIXME: we would like to not check MAX_MOUNTS but the heap in the - shared area is currently statically allocated so we can't have an - arbitrarily large number of mounts. */ - for (int issystem = 0; issystem <= 1; issystem++) - { - sprintf (buf, "Software\\%s\\%s\\%s", - CYGWIN_INFO_CYGNUS_REGISTRY_NAME, - CYGWIN_INFO_CYGWIN_REGISTRY_NAME, - CYGWIN_INFO_CYGWIN_MOUNT_REGISTRY_NAME); - - HKEY key = issystem ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER; - if (RegCreateKeyEx (key, buf, 0, (LPTSTR) "Cygwin", 0, KEY_READ, - 0, &key, &disposition) != ERROR_SUCCESS) - break; - for (int i = 0; ;i++, m++) - { - m->posix = (char *) malloc (MAX_PATH + 1); - posix_path_size = MAX_PATH; - /* FIXME: if maximum posix_path_size is 256, we're going to - run into problems if we ever try to store a mount point that's - over 256 but is under MAX_PATH. */ - res = RegEnumKeyEx (key, i, m->posix, &posix_path_size, NULL, - NULL, NULL, NULL); - - if (res == ERROR_NO_MORE_ITEMS) - { - m = get_cygdrive (key, m, issystem); - m->posix = NULL; - break; - } - - if (!*m->posix) - goto no_go; - else if (res != ERROR_SUCCESS) - break; - else - { - m->native = find2 (key, &m->flags, m->posix); - m->issys = issystem; - if (!m->native) - goto no_go; - } - continue; - no_go: - free (m->posix); - m->posix = NULL; - m--; - } - RegCloseKey (key); - } -} - -/* Return non-zero if PATH1 is a prefix of PATH2. - Both are assumed to be of the same path style and / vs \ usage. - Neither may be "". - LEN1 = strlen (PATH1). It's passed because often it's already known. - - Examples: - /foo/ is a prefix of /foo <-- may seem odd, but desired - /foo is a prefix of /foo/ - / is a prefix of /foo/bar - / is not a prefix of foo/bar - foo/ is a prefix foo/bar - /foo is not a prefix of /foobar -*/ - -static int -path_prefix_p (const char *path1, const char *path2, int len1) -{ - /* Handle case where PATH1 has trailing '/' and when it doesn't. */ - if (len1 > 0 && SLASH_P (path1[len1 - 1])) - len1--; - - if (len1 == 0) - return SLASH_P (path2[0]) && !SLASH_P (path2[1]); - - if (strncasecmp (path1, path2, len1) != 0) - return 0; - - return SLASH_P (path2[len1]) || path2[len1] == 0 || path1[len1 - 1] == ':'; -} - -static char * -vconcat (const char *s, va_list v) -{ - int len; - char *rv, *arg; - va_list save_v = v; - int unc; - - if (!s) - return 0; - - len = strlen (s); - - unc = SLASH_P (*s) && SLASH_P (s[1]); - - while (1) - { - arg = va_arg (v, char *); - if (arg == 0) - break; - len += strlen (arg); - } - va_end (v); - - rv = (char *) malloc (len + 1); - strcpy (rv, s); - v = save_v; - while (1) - { - arg = va_arg (v, char *); - if (arg == 0) - break; - strcat (rv, arg); - } - va_end (v); - - char *d, *p; - for (p = rv; *p; p++) - if (*p == '\\') - *p = '/'; - - /* concat is only used for urls and files, so we can safely - canonicalize the results */ - for (p = d = rv; *p; p++) - { - *d++ = *p; - /* special case for URLs */ - if (*p == ':' && p[1] == '/' && p[2] == '/' && p > rv + 1) - { - *d++ = *++p; - *d++ = *++p; - } - else if (*p == '/' || *p == '\\') - { - if (p == rv && unc) - p++; - while (p[1] == '/') - p++; - } - } - *d = 0; - - return rv; -} - -static char * -concat (const char *s, ...) -{ - va_list v; - - va_start (v, s); - - return vconcat (s, v); -} - -char * -cygpath (const char *s, ...) -{ - va_list v; - int max_len = -1; - struct mnt *m, *match = NULL; - - if (!mount_table[0].posix) - read_mounts (); - va_start (v, s); - char *path = vconcat (s, v); - if (strncmp (path, "./", 2) == 0) - memmove (path, path + 2, strlen (path + 2) + 1); - if (strncmp (path, "/./", 3) == 0) - memmove (path + 1, path + 3, strlen (path + 3) + 1); - - for (m = mount_table; m->posix ; m++) - { - if (m->flags & MOUNT_AUTO) - continue; - - int n = strlen (m->posix); - if (n < max_len || !path_prefix_p (m->posix, path, n)) - continue; - max_len = n; - match = m; - } - - char *native; - if (match == NULL) - native = strdup (path); - else if (max_len == (int) strlen (path)) - native = strdup (match->native); - else - native = concat (match->native, "/", path + max_len, NULL); - free (path); - - return native; -} - -static mnt *m = NULL; - -extern "C" FILE * -setmntent (const char *, const char *) -{ - m = mount_table; - if (!m->posix) - read_mounts (); - return NULL; -} - -extern "C" struct mntent * -getmntent (FILE *) -{ - static mntent mnt; - if (!m->posix) - return NULL; - - mnt.mnt_fsname = (char *) m->native; - mnt.mnt_dir = (char *) m->posix; - if (!mnt.mnt_type) - mnt.mnt_type = (char *) malloc (1024); - if (!mnt.mnt_opts) - mnt.mnt_opts = (char *) malloc (1024); - if (!m->issys) - strcpy (mnt.mnt_type, (char *) "user"); - else - strcpy (mnt.mnt_type, (char *) "system"); - if (!(m->flags & MOUNT_BINARY)) - strcpy (mnt.mnt_opts, (char *) "textmode"); - else - strcpy (mnt.mnt_opts, (char *) "binmode"); - if (m->flags & MOUNT_CYGWIN_EXEC) - strcat (mnt.mnt_opts, (char *) ",cygexec"); - else if (m->flags & MOUNT_EXEC) - strcat (mnt.mnt_opts, (char *) ",exec"); - if ((m->flags & MOUNT_AUTO)) /* cygdrive */ - strcat (mnt.mnt_opts, (char *) ",noumount"); - mnt.mnt_freq = 1; - mnt.mnt_passno = 1; - m++; - return &mnt; -} diff --git a/winsup/utils/path.h b/winsup/utils/path.h deleted file mode 100644 index 0512a55dd..000000000 --- a/winsup/utils/path.h +++ /dev/null @@ -1,11 +0,0 @@ -/* path.h - - Copyright 2001 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -char * cygpath (const char *s, ...); diff --git a/winsup/utils/ps.cc b/winsup/utils/ps.cc deleted file mode 100644 index c32110b43..000000000 --- a/winsup/utils/ps.cc +++ /dev/null @@ -1,325 +0,0 @@ -/* ps.cc - - Copyright 1996, 1997, 1998, 1999, 2000, 2001 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -typedef BOOL (WINAPI *ENUMPROCESSMODULES)( - HANDLE hProcess, // handle to the process - HMODULE * lphModule, // array to receive the module handles - DWORD cb, // size of the array - LPDWORD lpcbNeeded // receives the number of bytes returned -); - -typedef DWORD (WINAPI *GETMODULEFILENAME)( - HANDLE hProcess, - HMODULE hModule, - LPTSTR lpstrFileName, - DWORD nSize -); - -typedef HANDLE (WINAPI *CREATESNAPSHOT)( - DWORD dwFlags, - DWORD th32ProcessID -); - -// Win95 functions -typedef BOOL (WINAPI *PROCESSWALK)( - HANDLE hSnapshot, - LPPROCESSENTRY32 lppe -); - -ENUMPROCESSMODULES myEnumProcessModules; -GETMODULEFILENAME myGetModuleFileNameEx; -CREATESNAPSHOT myCreateToolhelp32Snapshot; -PROCESSWALK myProcess32First; -PROCESSWALK myProcess32Next; - -static BOOL WINAPI dummyprocessmodules ( - HANDLE hProcess, // handle to the process - HMODULE * lphModule, // array to receive the module handles - DWORD cb, // size of the array - LPDWORD lpcbNeeded // receives the number of bytes returned -) -{ - lphModule[0] = (HMODULE) *lpcbNeeded; - *lpcbNeeded = 1; - return 1; -} - -static DWORD WINAPI GetModuleFileNameEx95 ( - HANDLE hProcess, - HMODULE hModule, - LPTSTR lpstrFileName, - DWORD n -) -{ - HANDLE h; - DWORD pid = (DWORD) hModule; - - h = myCreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0); - if (!h) - return 0; - - PROCESSENTRY32 proc; - proc.dwSize = sizeof (proc); - if (myProcess32First(h, &proc)) - do - if (proc.th32ProcessID == pid) - { - CloseHandle (h); - strcpy (lpstrFileName, proc.szExeFile); - return 1; - } - while (myProcess32Next (h, &proc)); - CloseHandle (h); - return 0; -} - -int -init_win () -{ - OSVERSIONINFO os_version_info; - - memset (&os_version_info, 0, sizeof os_version_info); - os_version_info.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); - GetVersionEx (&os_version_info); - - HMODULE h; - if (os_version_info.dwPlatformId == VER_PLATFORM_WIN32_NT) - { - h = LoadLibrary ("psapi.dll"); - if (!h) - return 0; - myEnumProcessModules = (ENUMPROCESSMODULES) GetProcAddress (h, "EnumProcessModules"); - myGetModuleFileNameEx = (GETMODULEFILENAME) GetProcAddress (h, "GetModuleFileNameExA"); - if (!myEnumProcessModules || !myGetModuleFileNameEx) - return 0; - return 1; - } - - h = GetModuleHandle("KERNEL32.DLL"); - myCreateToolhelp32Snapshot = (CREATESNAPSHOT)GetProcAddress (h, "CreateToolhelp32Snapshot"); - myProcess32First = (PROCESSWALK)GetProcAddress (h, "Process32First"); - myProcess32Next = (PROCESSWALK)GetProcAddress (h, "Process32Next"); - if (!myCreateToolhelp32Snapshot || !myProcess32First || !myProcess32Next) - return 0; - - myEnumProcessModules = dummyprocessmodules; - myGetModuleFileNameEx = GetModuleFileNameEx95; - return 1; -} - -static char * -start_time (external_pinfo *child) -{ - time_t st = child->start_time; - time_t t = time (NULL); - static char stime[40] = {'\0'}; - char now[40]; - - strncpy (stime, ctime (&st) + 4, 15); - strcpy (now, ctime (&t) + 4); - - if ((t - st) < (24 * 3600)) - return (stime + 7); - - stime[6] = '\0'; - - return stime; -} - -#define FACTOR (0x19db1ded53ea710LL) -#define NSPERSEC 10000000LL - -/* Convert a Win32 time to "UNIX" format. */ -long __stdcall -to_time_t (FILETIME *ptr) -{ - /* A file time is the number of 100ns since jan 1 1601 - stuffed into two long words. - A time_t is the number of seconds since jan 1 1970. */ - - long rem; - long long x = ((long long) ptr->dwHighDateTime << 32) + ((unsigned)ptr->dwLowDateTime); - x -= FACTOR; /* number of 100ns between 1601 and 1970 */ - rem = x % ((long long)NSPERSEC); - rem += (NSPERSEC / 2); - x /= (long long) NSPERSEC; /* number of 100ns in a second */ - x += (long long) (rem / NSPERSEC); - return x; -} - -static const char * -ttynam (int ntty) -{ - static char buf[5]; - if (ntty < 0) - return " ?"; - if (ntty == TTY_CONSOLE) - return " con"; - sprintf (buf, "%4d", ntty); - return buf; -} - -int -main (int argc, char *argv[]) -{ - external_pinfo *p; - int aflag, lflag, fflag, sflag, uid; - cygwin_getinfo_types query = CW_GETPINFO; - const char *dtitle = " PID TTY STIME COMMAND\n"; - const char *dfmt = "%7d%4s%10s %s\n"; - const char *ftitle = " UID PID PPID TTY STIME COMMAND\n"; - const char *ffmt = "%8.8s%8d%8d%4s%10s %s\n"; - const char *ltitle = " PID PPID PGID WINPID TTY UID STIME COMMAND\n"; - const char *lfmt = "%c %7d %7d %7d %10u %4s %4d %8s %s\n"; - char ch; - - aflag = lflag = fflag = sflag = 0; - uid = getuid (); - lflag = 1; - - while ((ch = getopt (argc, argv, "aelfsu:W")) != -1) - switch (ch) - { - case 'a': - case 'e': - aflag = 1; - break; - case 'f': - fflag = 1; - break; - case 'l': - lflag = 1; - break; - case 's': - sflag = 1; - break; - case 'u': - uid = atoi (optarg); - if (uid == 0) - { - struct passwd *pw; - - if ((pw = getpwnam (optarg))) - uid = pw->pw_uid; - else - { - fprintf (stderr, "user %s unknown\n", optarg); - exit (1); - } - } - break; - case 'W': - query = CW_GETPINFO_FULL; - aflag = 1; - break; - - default: - fprintf (stderr, "Usage %s [-aefl] [-u uid]\n", argv[0]); - fprintf (stderr, "-f = show process uids, ppids\n"); - fprintf (stderr, "-l = show process uids, ppids, pgids, winpids\n"); - fprintf (stderr, "-u uid = list processes owned by uid\n"); - fprintf (stderr, "-a, -e = show processes of all users\n"); - fprintf (stderr, "-s = show process summary\n"); - fprintf (stderr, "-W = show windows as well as cygwin processes\n"); - exit (1); - } - - if (sflag) - printf (dtitle); - else if (fflag) - printf (ftitle); - else if (lflag) - printf (ltitle); - - (void) cygwin_internal (CW_LOCK_PINFO, 1000); - - if (query == CW_GETPINFO_FULL && !init_win ()) - query = CW_GETPINFO; - - for (int pid = 0; - (p = (external_pinfo *) cygwin_internal (query, pid | CW_NEXTPID)); - pid = p->pid) - { - if (!aflag && p->uid != uid) - continue; - char status = ' '; - if (p->process_state & PID_STOPPED) - status = 'S'; - else if (p->process_state & PID_TTYIN) - status = 'I'; - else if (p->process_state & PID_TTYOU) - status = 'O'; - - char pname[MAX_PATH]; - if (p->process_state & (PID_ZOMBIE | PID_EXITED)) - strcpy (pname, ""); - else if (p->ppid) - { - char *s; - pname[0] = '\0'; - cygwin_conv_to_posix_path (p->progname, pname); - s = strchr (pname, '\0') - 4; - if (s > pname && strcasecmp (s, ".exe") == 0) - *s = '\0'; - } - else if (query == CW_GETPINFO_FULL) - { - HANDLE h = OpenProcess (PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, p->dwProcessId); - if (!h) - continue; - HMODULE hm[1000]; - DWORD n = p->dwProcessId; - if (!myEnumProcessModules (h, hm, sizeof (hm), &n)) - n = 0; - if (!n || !myGetModuleFileNameEx (h, hm[0], pname, MAX_PATH)) - strcpy (pname, "*** unknown ***"); - FILETIME ct, et, kt, ut; - if (GetProcessTimes (h, &ct, &et, &kt, &ut)) - p->start_time = to_time_t (&ct); - CloseHandle (h); - } - - char uname[128]; - - if (fflag) - { - struct passwd *pw; - - if ((pw = getpwuid (p->uid))) - strcpy (uname, pw->pw_name); - else - sprintf (uname, "%d", p->uid); - } - - if (sflag) - printf (dfmt, p->pid, ttynam (p->ctty), start_time (p), pname); - else if (fflag) - printf (ffmt, uname, p->pid, p->ppid, ttynam (p->ctty), start_time (p), pname); - else if (lflag) - printf (lfmt, status, p->pid, p->ppid, p->pgid, - p->dwProcessId, ttynam (p->ctty), p->uid, start_time (p), pname); - - } - (void) cygwin_internal (CW_UNLOCK_PINFO); - - return 0; -} - diff --git a/winsup/utils/regtool.cc b/winsup/utils/regtool.cc deleted file mode 100644 index 6068f3a3d..000000000 --- a/winsup/utils/regtool.cc +++ /dev/null @@ -1,573 +0,0 @@ -/* regtool.cc - - Copyright 2000 Red Hat Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include -#include -#include - -enum -{ - KT_AUTO, KT_INT, KT_STRING, KT_EXPAND, KT_MULTI -} key_type = KT_AUTO; - -#define LIST_KEYS 0x01 -#define LIST_VALS 0x02 -#define LIST_ALL (LIST_KEYS | LIST_VALS) - -int listwhat = 0; -int postfix = 0; -int verbose = 0; -int quiet = 0; -char **argv; - -HKEY key; -char *value; - -const char *usage_msg[] = { - "Regtool Copyright (c) 2000 Red Hat Inc", - " regtool -h - print this message", - " regtool [-v|-p|-k|-l] list [key] - list subkeys and values", - " -p=postfix, like ls -p, appends \\ postfix to key names", - " -k=keys, lists only keys", - " -l=values, lists only values", - " regtool [-v] add [key\\subkey] - add new subkey", - " regtool [-v] remove [key] - remove key", - " regtool [-v|-q] check [key] - exit 0 if key exists, 1 if not", - " regtool [-i|-s|-e|-m] set [key\\value] [data ...] - set value", - " -i=integer -s=string -e=expand-string -m=multi-string", - " regtool [-v] unset [key\\value] - removes value from key", - " regtool [-q] get [key\\value] - prints value to stdout", - " -q=quiet, no error msg, just return nonzero exit if key/value missing", - " keys are like \\prefix\\key\\key\\key\\value, where prefix is any of:", - " root HKCR HKEY_CLASSES_ROOT", - " config HKCC HKEY_CURRENT_CONFIG", - " user HKCU HKEY_CURRENT_USER", - " machine HKLM HKEY_LOCAL_MACHINE", - " users HKU HKEY_USERS", - " example: \\user\\software\\Microsoft\\Clock\\iFormat", - 0 -}; - -void -usage (void) -{ - int i; - for (i = 0; usage_msg[i]; i++) - fprintf (stderr, "%s\n", usage_msg[i]); - exit (1); -} - -void -Fail (DWORD rv) -{ - char *buf; - if (!quiet) - { - FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER - | FORMAT_MESSAGE_FROM_SYSTEM, - 0, rv, 0, (CHAR *) & buf, 0, 0); - fprintf (stderr, "Error: %s\n", buf); - LocalFree (buf); - } - exit (1); -} - -struct -{ - const char *string; - HKEY key; -} wkprefixes[] = -{ - {"root", HKEY_CLASSES_ROOT}, - {"HKCR", HKEY_CLASSES_ROOT}, - {"HKEY_CLASSES_ROOT", HKEY_CLASSES_ROOT}, - {"config", HKEY_CURRENT_CONFIG}, - {"HKCC", HKEY_CURRENT_CONFIG}, - {"HKEY_CURRENT_CONFIG", HKEY_CURRENT_CONFIG}, - {"user", HKEY_CURRENT_USER}, - {"HKCU", HKEY_CURRENT_USER}, - {"HKEY_CURRENT_USER", HKEY_CURRENT_USER}, - {"machine", HKEY_LOCAL_MACHINE}, - {"HKLM", HKEY_LOCAL_MACHINE}, - {"HKEY_LOCAL_MACHINE", HKEY_LOCAL_MACHINE}, - {"users", HKEY_USERS}, - {"HKU", HKEY_USERS}, - {"HKEY_USERS", HKEY_USERS}, - {0, 0} -}; - -void -translate (char *key) -{ -#define isodigit(c) (strchr("01234567", c)) -#define tooct(c) ((c)-'0') -#define tohex(c) (strchr(_hs,tolower(c))-_hs) - static char _hs[] = "0123456789abcdef"; - - char *d = key; - char *s = key; - char c; - - while (*s) - { - if (*s == '\\') - switch (*++s) - { - case 'a': - *d++ = '\007'; - break; - case 'b': - *d++ = '\b'; - break; - case 'e': - *d++ = '\033'; - break; - case 'f': - *d++ = '\f'; - break; - case 'n': - *d++ = '\n'; - break; - case 'r': - *d++ = '\r'; - break; - case 't': - *d++ = '\t'; - break; - case 'v': - *d++ = '\v'; - break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - c = tooct (*s); - if (isodigit (s[1])) - { - c = (c << 3) | tooct (*++s); - if (isodigit (s[1])) - c = (c << 3) | tooct (*++s); - } - *d++ = c; - break; - case 'x': - if (!isxdigit (s[1])) - c = '0'; - else - { - c = tohex (*++s); - if (isxdigit (s[1])) - c = (c << 4) | tohex (*++s); - } - *d++ = c; - break; - default: /* before non-special char: just add the char */ - *d++ = *s; - break; - } - else if (*s == '/') - *d++ = '\\'; - else - *d++ = *s; - ++s; - } - *d = '\0'; -} - -void -find_key (int howmanyparts, REGSAM access) -{ - char *n = argv[0], *e, c; - int i; - if (*n == '/') - translate (n); - while (*n == '\\') - n++; - for (e = n; *e && *e != '\\'; e++); - c = *e; - *e = 0; - for (i = 0; wkprefixes[i].string; i++) - if (strcmp (wkprefixes[i].string, n) == 0) - break; - if (!wkprefixes[i].string) - { - fprintf (stderr, "Unknown key prefix. Valid prefixes are:\n"); - for (i = 0; wkprefixes[i].string; i++) - fprintf (stderr, "\t%s\n", wkprefixes[i].string); - exit (1); - } - - n = e; - *e = c; - while (*n && *n == '\\') - n++; - e = n + strlen (n); - if (howmanyparts > 1) - { - while (n < e && *e != '\\') - e--; - if (*e != '\\') - { - key = wkprefixes[i].key; - value = n; - return; - } - else - { - *e = 0; - value = e + 1; - } - } - if (n[0] == 0) - { - key = wkprefixes[i].key; - return; - } - int rv = RegOpenKeyEx (wkprefixes[i].key, n, 0, access, &key); - if (rv != ERROR_SUCCESS) - Fail (rv); - //printf("key `%s' value `%s'\n", n, value); -} - - -int -cmd_list () -{ - DWORD num_subkeys, maxsubkeylen, num_values, maxvalnamelen, maxvaluelen; - DWORD maxclasslen; - char *subkey_name, *value_name, *class_name; - unsigned char *value_data, *vd; - DWORD i, j, m, n, t; - int v; - - find_key (1, KEY_READ); - RegQueryInfoKey (key, 0, 0, 0, &num_subkeys, &maxsubkeylen, &maxclasslen, - &num_values, &maxvalnamelen, &maxvaluelen, 0, 0); - - subkey_name = (char *) malloc (maxsubkeylen + 1); - class_name = (char *) malloc (maxclasslen + 1); - value_name = (char *) malloc (maxvalnamelen + 1); - value_data = (unsigned char *) malloc (maxvaluelen + 1); - - if (!listwhat) - listwhat = LIST_ALL; - - if (listwhat & LIST_KEYS) - for (i = 0; i < num_subkeys; i++) - { - m = maxsubkeylen + 1; - n = maxclasslen + 1; - RegEnumKeyEx (key, i, subkey_name, &m, 0, class_name, &n, 0); - printf ("%s%s", subkey_name, (postfix || verbose) ? "\\" : ""); - - if (verbose) - printf (" (%s)", class_name); - - puts (""); - } - - if (listwhat & LIST_VALS) - for (i = 0; i < num_values; i++) - { - m = maxvalnamelen + 1; - n = maxvaluelen + 1; - RegEnumValue (key, i, value_name, &m, 0, &t, (BYTE *) value_data, &n); - if (!verbose) - printf ("%s\n", value_name); - else - { - printf ("%s = ", value_name); - switch (t) - { - case REG_BINARY: - for (j = 0; j < 8 && j < n; j++) - printf ("%02x ", value_data[j]); - printf ("\n"); - break; - case REG_DWORD: - printf ("0x%08lx (%lu)\n", *(DWORD *) value_data, - *(DWORD *) value_data); - break; - case REG_DWORD_BIG_ENDIAN: - v = ((value_data[0] << 24) - | (value_data[1] << 16) - | (value_data[2] << 8) | (value_data[3])); - printf ("0x%08x (%d)\n", v, v); - break; - case REG_EXPAND_SZ: - case REG_SZ: - printf ("\"%s\"\n", value_data); - break; - case REG_MULTI_SZ: - vd = value_data; - while (vd && *vd) - { - printf ("\"%s\"", vd); - vd = vd + strlen ((const char *) vd) + 1; - if (*vd) - printf (", "); - } - printf ("\n"); - break; - default: - printf ("? (type %d)\n", (int) t); - } - } - } - return 0; -} - -int -cmd_add () -{ - find_key (2, KEY_ALL_ACCESS); - HKEY newkey; - DWORD newtype; - int rv = RegCreateKeyEx (key, value, 0, (char *) "", REG_OPTION_NON_VOLATILE, - KEY_ALL_ACCESS, 0, &newkey, &newtype); - if (rv != ERROR_SUCCESS) - Fail (rv); - - if (verbose) - { - if (newtype == REG_OPENED_EXISTING_KEY) - printf ("Key %s already exists\n", value); - else - printf ("Key %s created\n", value); - } - return 0; -} - -int -cmd_remove () -{ - find_key (2, KEY_ALL_ACCESS); - DWORD rv = RegDeleteKey (key, value); - if (rv != ERROR_SUCCESS) - Fail (rv); - if (verbose) - printf ("subkey %s deleted\n", value); - return 0; -} - -int -cmd_check () -{ - find_key (1, KEY_READ); - if (verbose) - printf ("key %s exists\n", argv[0]); - return 0; -} - -int -cmd_set () -{ - int i, n; - DWORD v, rv; - char *a = argv[1], *data; - find_key (2, KEY_ALL_ACCESS); - - if (key_type == KT_AUTO) - { - char *e; - strtoul (a, &e, 0); - if (a[0] == '%') - key_type = KT_EXPAND; - else if (a[0] && !*e) - key_type = KT_INT; - else if (argv[2]) - key_type = KT_MULTI; - else - key_type = KT_STRING; - } - - switch (key_type) - { - case KT_INT: - v = strtoul (a, 0, 0); - rv = RegSetValueEx (key, value, 0, REG_DWORD, (const BYTE *) &v, - sizeof (v)); - break; - case KT_STRING: - rv = RegSetValueEx (key, value, 0, REG_SZ, (const BYTE *) a, strlen (a)); - break; - case KT_EXPAND: - rv = RegSetValueEx (key, value, 0, REG_EXPAND_SZ, (const BYTE *) a, - strlen (a)); - break; - case KT_MULTI: - for (i = 1, n = 1; argv[i]; i++) - n += strlen (argv[i]) + 1; - data = (char *) malloc (n); - for (i = 1, n = 0; argv[i]; i++) - { - strcpy (data + n, argv[i]); - n += strlen (argv[i]) + 1; - } - data[n] = 0; - rv = RegSetValueEx (key, value, 0, REG_MULTI_SZ, (const BYTE *) data, - n + 1); - break; - case KT_AUTO: - rv = ERROR_SUCCESS; - break; - default: - rv = ERROR_INVALID_CATEGORY; - break; - } - - if (rv != ERROR_SUCCESS) - Fail (rv); - - return 0; -} - -int -cmd_unset () -{ - find_key (2, KEY_ALL_ACCESS); - DWORD rv = RegDeleteValue (key, value); - if (rv != ERROR_SUCCESS) - Fail (rv); - if (verbose) - printf ("value %s deleted\n", value); - return 0; -} - -int -cmd_get () -{ - find_key (2, KEY_READ); - DWORD vtype, dsize, rv; - char *data, *vd; - rv = RegQueryValueEx (key, value, 0, &vtype, 0, &dsize); - if (rv != ERROR_SUCCESS) - Fail (rv); - dsize++; - data = (char *) malloc (dsize); - rv = RegQueryValueEx (key, value, 0, &vtype, (BYTE *) data, &dsize); - if (rv != ERROR_SUCCESS) - Fail (rv); - switch (vtype) - { - case REG_BINARY: - fwrite (data, dsize, 0, stdout); - break; - case REG_DWORD: - printf ("%lu\n", *(DWORD *) data); - break; - case REG_SZ: - printf ("%s\n", data); - break; - case REG_EXPAND_SZ: - if (key_type == KT_EXPAND) // hack - { - char *buf; - DWORD bufsize; - bufsize = ExpandEnvironmentStrings (data, 0, 0); - buf = (char *) malloc (bufsize + 1); - ExpandEnvironmentStrings (data, buf, bufsize + 1); - data = buf; - } - printf ("%s\n", data); - break; - case REG_MULTI_SZ: - vd = data; - while (vd && *vd) - { - printf ("%s\n", vd); - vd = vd + strlen ((const char *) vd) + 1; - } - break; - } - return 0; -} - -struct -{ - const char *name; - int (*func) (); -} commands[] = -{ - {"list", cmd_list}, - {"add", cmd_add}, - {"remove", cmd_remove}, - {"check", cmd_check}, - {"set", cmd_set}, - {"unset", cmd_unset}, - {"get", cmd_get}, - {0, 0} -}; - -int -main (int argc, char **_argv) -{ - while (1) - { - int g = getopt (argc, _argv, "hvqisempkl"); - if (g == -1) - break; - switch (g) - { - case 'v': - verbose++; - break; - case 'q': - quiet++; - break; - case 'p': - postfix++; - break; - case 'k': - listwhat |= LIST_KEYS; - break; - case 'l': - listwhat |= LIST_VALS; - break; - - case 'i': - key_type = KT_INT; - break; - case 's': - key_type = KT_STRING; - break; - case 'e': - key_type = KT_EXPAND; - break; - case 'm': - key_type = KT_MULTI; - break; - - case '?': - case 'h': - usage (); - } - } - if (_argv[optind] == NULL) - usage (); - - argv = _argv + optind; - int i; - for (i = 0; commands[i].name; i++) - if (strcmp (commands[i].name, argv[0]) == 0) - { - argv++; - return commands[i].func (); - } - usage (); - - return 0; -} diff --git a/winsup/utils/setfacl.c b/winsup/utils/setfacl.c deleted file mode 100644 index 04daba7e8..000000000 --- a/winsup/utils/setfacl.c +++ /dev/null @@ -1,495 +0,0 @@ -/* setfacl.c - - Copyright 2000, 2001 Red Hat Inc. - - Written by Corinna Vinschen - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef BOOL -#define BOOL int -#endif - -#ifndef TRUE -#define TRUE (1) -#endif - -#ifndef FALSE -#define FALSE (0) -#endif - -#ifndef ILLEGAL_MODE -#define ILLEGAL_MODE ((mode_t)0xffffffff) -#endif - -typedef enum { - NoAction, - Set, - Modify, - Delete, - ModNDel, - SetFromFile -} action_t; - -char *myname; - -mode_t getperm (char *in) -{ - if (isdigit (*in) && !in[1]) - { - int i = atoi (in); - if (i < 0 || i > 7) - return ILLEGAL_MODE; - return i << 6 | i << 3 | i; - } - if (strlen (in) > 3 && strchr (" \t\n\r#", in[3])) - in[3] = '\0'; - if (strlen (in) != 3) - return ILLEGAL_MODE; - if (!strchr ("r-", in[0]) - || !strchr ("w-", in[1]) - || !strchr ("x-", in[2])) - return ILLEGAL_MODE; - return (in[0] == 'r' ? S_IRUSR | S_IRGRP | S_IROTH : 0) - | (in[1] == 'w' ? S_IWUSR | S_IWGRP | S_IWOTH : 0) - | (in[2] == 'x' ? S_IXUSR | S_IXGRP | S_IXOTH : 0); -} - -BOOL -getaclentry (action_t action, char *c, aclent_t *ace) -{ - char *c2; - - ace->a_type = 0; - ace->a_id = 0; - ace->a_perm = 0; - - if (!strncmp (c, "default:", 8) - || !strncmp (c, "d:", 2)) - { - ace->a_type = ACL_DEFAULT; - c = strchr (c, ':') + 1; - } - if (!strncmp (c, "user:", 5) - || !strncmp (c, "u:", 2)) - { - ace->a_type |= USER_OBJ; - c = strchr (c, ':') + 1; - } - else if (!strncmp (c, "group:", 6) - || !strncmp (c, "g:", 2)) - { - ace->a_type |= GROUP_OBJ; - c = strchr (c, ':') + 1; - } - else if (!strncmp (c, "mask:", 5) - || !strncmp (c, "m:", 2)) - { - ace->a_type |= CLASS_OBJ; - c = strchr (c, ':') + 1; - } - else if (!strncmp (c, "other:", 6) - || !strncmp (c, "o:", 2)) - { - ace->a_type |= OTHER_OBJ; - c = strchr (c, ':') + 1; - } - else - return FALSE; - if (ace->a_type & (USER_OBJ | GROUP_OBJ)) - { - if ((c2 = strchr (c, ':'))) - { - if (action == Delete) - return FALSE; - *c2 = '\0'; - } - else if (action != Delete) - return FALSE; - if (c2 == c) - { - if (action == Delete) - return FALSE; - } - else if (isdigit (*c)) - { - char *c3; - - ace->a_id = strtol (c, &c3, 10); - if (*c3) - return FALSE; - } - else if (ace->a_type & USER_OBJ) - { - struct passwd *pw = getpwnam (c); - if (!pw) - return FALSE; - ace->a_id = pw->pw_uid; - } - else - { - struct group *gr = getgrnam (c); - if (!gr) - return FALSE; - ace->a_id = gr->gr_gid; - } - if (c2 != c) - { - if (ace->a_type & USER_OBJ) - { - ace->a_type &= ~USER_OBJ; - ace->a_type |= USER; - } - else - { - ace->a_type &= ~GROUP_OBJ; - ace->a_type |= GROUP; - } - } - if (c2) - c = c2 + 1; - } - else if (*c++ != ':') - return FALSE; - if (action == Delete) - { - if ((ace->a_type & (CLASS_OBJ | OTHER_OBJ)) - && *c) - return FALSE; - ace->a_perm = ILLEGAL_MODE; - return TRUE; - } - if ((ace->a_perm = getperm (c)) == ILLEGAL_MODE) - return FALSE; - return TRUE; -} - -BOOL -getaclentries (action_t action, char *buf, aclent_t *acls, int *idx) -{ - char *c; - - if (action == SetFromFile) - { - FILE *fp; - char fbuf[256], *fb; - - if (!strcmp (buf, "-")) - fp = stdin; - else if (! (fp = fopen (buf, "r"))) - return FALSE; - while ((fb = fgets (fbuf, 256, fp))) - { - while (strchr (" \t", *fb)) - ++fb; - if (strchr ("\n\r#", *fb)) - continue; - if (!getaclentry (action, fb, acls + (*idx)++)) - { - fclose (fp); - return FALSE; - } - } - if (fp != stdin) - fclose (fp); - } - else - for (c = strtok (buf, ","); c; c = strtok (NULL, ",")) - if (!getaclentry (action, c, acls + (*idx)++)) - return FALSE; - return TRUE; -} - -int -searchace (aclent_t *aclp, int nentries, int type, int id) -{ - int i; - - for (i = 0; i < nentries; ++i) - if ((aclp[i].a_type == type && (id < 0 || aclp[i].a_id == id)) - || !aclp[i].a_type) - return i; - return -1; -} - -int -modacl (aclent_t *tgt, int tcnt, aclent_t *src, int scnt) -{ - int t, s, i; - - for (s = 0; s < scnt; ++s) - { - t = searchace (tgt, MAX_ACL_ENTRIES, src[s].a_type, - (src[s].a_type & (USER | GROUP)) ? src[s].a_id : -1); - if (t < 0) - return -1; - if (src[s].a_perm == ILLEGAL_MODE) - { - if (t < tcnt) - { - for (i = t + 1; i < tcnt; ++i) - tgt[i - 1] = tgt[i]; - --tcnt; - } - } - else - { - tgt[t] = src[s]; - if (t >= tcnt) - ++tcnt; - } - } - return tcnt; -} - -void -setfacl (action_t action, char *path, aclent_t *acls, int cnt) -{ - aclent_t lacl[MAX_ACL_ENTRIES]; - int lcnt; - - memset (lacl, 0, sizeof lacl); - if (action == Set) - { - if (acl (path, SETACL, cnt, acls)) - perror (myname); - return; - } - if ((lcnt = acl (path, GETACL, MAX_ACL_ENTRIES, lacl)) < 0 - || (lcnt = modacl (lacl, lcnt, acls, cnt)) < 0 - || (lcnt = acl (path, SETACL, lcnt, lacl)) < 0) - perror (myname); -} - -#define pn(txt) fprintf (fp, txt "\n", myname) -#define p(txt) fprintf (fp, txt "\n") - -int -usage (int help) -{ - FILE *fp = help ? stdout : stderr; - - pn ("usage: %s [-r] -s acl_entries file..."); - pn (" %s [-r] -md acl_entries file..."); - pn (" %s [-r] -f acl_file file..."); - if (!help) - pn ("Try `%s --help' for more information."); - else - { - p (""); - p ("Modify file and directory access control lists (ACLs)"); - p (""); - pn ("For each file given as parameter, %s will either replace its"); - p ("complete ACL (-s, -f)), or it will add, modify, or delete ACL"); - p ("entries."); - p (""); - p ("The following options are supported:"); - p (""); - p ("-s Substitute the ACL of the file by the entries specified on"); - p (" the command line. Required entries are"); - p (" - One user entry for the owner of the file."); - p (" - One group entry for the group of the file."); - p (" - One other entry."); - p (" If additional user and group entries are given:"); - p (" - A mask entry for the file group class of the file."); - p (" - No duplicate user or group entries with the same uid/gid."); - p (" If it is a directory:"); - p (" - One default user entry for the owner of the file."); - p (" - One default group entry for the group of the file."); - p (" - One default mask entry for the file group class of the file."); - p (" - One default other entry."); - p (""); - p (" Acl_entries are one or more comma-separated ACL entries from"); - p (" the following list:"); - p (""); - p (" u[ser]::perm"); - p (" u[ser]:uid:perm"); - p (" g[roup]::perm"); - p (" g[roup]:gid:perm"); - p (" m[ask]::perm"); - p (" o[ther]::perm"); - p (""); - p (" Default entries are like the above with the trailing default"); - p (" identifier. E.g."); - p (""); - p (" d[efault]:u[ser]:uid:perm"); - p (""); - p (" `perm' is either a 3-char permissions string in the form"); - p (" \"rwx\" with the character - for not setting a permission"); - p (" or it is the octal representation of the permissions, a"); - p (" value from 0 (equivalent to \"---\") to 7 (\"rwx\")."); - p (" `uid' is a user name or a numerical uid."); - p (" `gid' is a group name or a numerical gid."); - p (""); - p ("-f Like -s but take the ACL entries from `acl_file'. Acl_entries"); - p (" are given one per line. Whitespace characters are ignored,"); - p (" the character \"#\" may be used to start a comment. The"); - p (" special filename \"-\" indicates reading from stdin."); - p (""); - p ("-m Add or modify one or more specified ACL entries. Acl_entries"); - p (" is a comma-separated list of entries from the same list as"); - p (" above."); - p (""); - p ("-d Delete one or more specified entries from the file's ACL."); - p (" The owner, group and others entries must not be deleted"); - p (" Acl_entries are one or more comma-separated ACL entries"); - p (" without permissions, taken from the following list:"); - p (""); - p (" u[ser]:uid"); - p (" g[roup]:gid"); - p (" d[efault]:u[ser]:uid"); - p (" d[efault]:g[roup]:gid"); - p (" d[efault]:m[ask]:"); - p (" d[efault]:o[ther]:"); - p (""); - p ("-r Causes the permissions specified in the mask entry to be"); - p (" ignored and replaced by the maximum permissions needed for"); - p (" the file group class."); - p (""); - p ("While the -m and -d options may be used in the same command, the"); - p ("-s and -f options may be used only exclusively."); - p (""); - p ("Directories may contain default ACL entries. Files created"); - p ("in a directory that contains default ACL entries will have"); - p ("permissions according to the combination of the current umask,"); - p ("the explicit permissions requested and the default ACL entries"); - p ("Note: Under Cygwin, the default ACL entries are not taken into"); - p ("account currently."); - } - return 1; -} - -struct option longopts[] = { - {"help", no_argument, NULL, 'h'}, - {0, no_argument, NULL, 0} -}; - -int -main (int argc, char **argv) -{ - extern char *optarg; - extern int optind; - int c; - action_t action = NoAction; - int ropt = 0; - aclent_t acls[MAX_ACL_ENTRIES]; - int aclidx = 0; - - myname = argv[0]; - memset (acls, 0, sizeof acls); - while ((c = getopt_long (argc, argv, "d:f:m:rs:", longopts, NULL)) != EOF) - switch (c) - { - case 'd': - if (action == NoAction) - action = Delete; - else if (action == Modify) - action = ModNDel; - else - return usage (0); - if (! getaclentries (Delete, optarg, acls, &aclidx)) - { - fprintf (stderr, "%s: illegal acl entries\n", myname); - return 2; - } - break; - case 'f': - if (action == NoAction) - action = Set; - else - return usage (0); - if (! getaclentries (SetFromFile, optarg, acls, &aclidx)) - { - fprintf (stderr, "%s: illegal acl entries\n", myname); - return 2; - } - break; - case 'm': - if (action == NoAction) - action = Modify; - else if (action == Delete) - action = ModNDel; - else - return usage (0); - if (! getaclentries (Modify, optarg, acls, &aclidx)) - { - fprintf (stderr, "%s: illegal acl entries\n", myname); - return 2; - } - break; - case 'r': - if (!ropt) - ropt = 1; - else - return usage (0); - break; - case 's': - if (action == NoAction) - action = Set; - else - return usage (0); - break; - if (! getaclentries (Set, optarg, acls, &aclidx)) - { - fprintf (stderr, "%s: illegal acl entries\n", myname); - return 2; - } - break; - case 'h': - return usage (1); - default: - return usage (0); - } - if (action == NoAction) - return usage (0); - if (optind > argc - 1) - return usage (0); - if (action == Set) - switch (aclcheck (acls, aclidx, NULL)) - { - case GRP_ERROR: - fprintf (stderr, "%s: more than one group entry.\n", myname); - return 2; - case USER_ERROR: - fprintf (stderr, "%s: more than one user entry.\n", myname); - return 2; - case CLASS_ERROR: - fprintf (stderr, "%s: more than one mask entry.\n", myname); - return 2; - case OTHER_ERROR: - fprintf (stderr, "%s: more than one other entry.\n", myname); - return 2; - case DUPLICATE_ERROR: - fprintf (stderr, "%s: duplicate additional user or group.\n", myname); - return 2; - case ENTRY_ERROR: - fprintf (stderr, "%s: invalid entry type.\n", myname); - return 2; - case MISS_ERROR: - fprintf (stderr, "%s: missing entries.\n", myname); - return 2; - case MEM_ERROR: - fprintf (stderr, "%s: out of memory.\n", myname); - return 2; - default: - break; - } - for (c = optind; c < argc; ++c) - setfacl (action, argv[c], acls, aclidx); - return 0; -} diff --git a/winsup/utils/ssp.c b/winsup/utils/ssp.c deleted file mode 100644 index 49550859f..000000000 --- a/winsup/utils/ssp.c +++ /dev/null @@ -1,802 +0,0 @@ -/* - * Copyright (c) 2000, 2001, 2002 Red Hat, Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * A copy of the GNU General Public License can be found at - * http://www.gnu.org/ - * - * Written by DJ Delorie - * - */ - -#include -#include -#include -#include -#include -#include -#include - -#ifdef __GNUC__ -const char *help_text = "\ -Usage: ssp [options] low_pc high_pc command...\n\ -\n\ -The SSP is a `single-step profiler' - it uses the debug API to\n\ -single-step your program, noting *everything* your program runs, not\n\ -just random places hit by random timer interrupts. You must specify\n\ -the range of EIP values to profile. For example, you could profile\n\ -just a function, or just a line of code, or the whole thing.\n\ -Use \"objdump -h\" to find the start of .text and the section following\n\ -it; this is what you want.\n\ -\n\ -There are many options to ssp. Since step-profiling makes your\n\ -program run about 1,000 times slower than normal, it's best to\n\ -understand all the options so that you can narrow down the parts\n\ -of your program you need to single-step.\n\ -\n\ --v = verbose messages about debug events.\n\ -\n\ --d, -e = disable/enable single-stepping by default. Use\n\ -OutputDebugString (\"ssp on\") to enable stepping, or \"ssp off\" to\n\ -disable it. Thus, you can profile a single function call or block.\n\ -\n\ --t = trace every EIP value to a file TRACE.SSP. This gets big *fast*.\n\ -Use \"addr2line -C -f -s -e foo.exe < trace.ssp > lines.ssp\" and then\n\ -\"perl cvttrace\" to convert to symbolic traces.\n\ -\n\ --tc = trace every EIP value to the console. *Lots* slower.\n\ -\n\ --s = trace sub-threads too. Dangerous if you have race conditions.\n\ -\n\ --dll = enable dll profiling. A chart of relative DLL usage is\n\ -produced after the run.\n\ -\n\ -Examples:\n\ - ssp 0x401000 0x403000 hello.exe\n\ - ssp -v -d -dll 0x401000 0x440000 foo.exe\n\ -\n\ -The output is a file \"gmon.out\" that can be read with gprof:\n\ - gprof -b foo.exe\n\ -\n\ -See ssp.txt in the cygwin sources for more information.\n\ -"; -#else -char *help_text = "Usage: get cygwin!\n"; -#endif - -#define KERNEL_ADDR 0x77000000 - -#define TRACE_SSP 0 - -#define VERBOSE 1 -#define TIMES 1000 - -/* from winsup/gmon.h */ -struct gmonhdr { - unsigned long lpc; /* base pc address of sample buffer */ - unsigned long hpc; /* max pc address of sampled buffer */ - int ncnt; /* size of sample buffer (plus this header) */ - int version; /* version number */ - int profrate; /* profiling clock rate */ - int spare[3]; /* reserved */ -}; -#define GMONVERSION 0x00051879 -#define HISTCOUNTER unsigned short - -typedef struct { - unsigned int base_address; - int pcount; - int scount; - char *name; -} DllInfo; - -typedef struct { - unsigned int address; - unsigned char real_byte; -} PendingBreakpoints; - -int low_pc=0, high_pc=0; -unsigned int last_pc=0, pc, last_sp=0, sp; -int total_cycles, count; -char *cmd_line; -HANDLE hProcess; -PROCESS_INFORMATION procinfo; -STARTUPINFO startup; -CONTEXT context; -HISTCOUNTER *hits=0; -struct gmonhdr hdr; -int running = 1, profiling = 1; -char dll_name[1024], *dll_ptr, *cp; -int eip; -unsigned opcode_count = 0; - -int stepping_enabled = 1; -int tracing_enabled = 0; -int trace_console = 0; -int trace_all_threads = 0; -int dll_counts = 0; -int verbose = 0; - -#define MAXTHREADS 100 -int active_thread_ids[MAXTHREADS]; -HANDLE active_threads[MAXTHREADS]; -int thread_step_flags[MAXTHREADS]; -int thread_return_address[MAXTHREADS]; -int num_active_threads = 0; -int suspended_count=0; - -#define MAXDLLS 100 -DllInfo dll_info[MAXDLLS]; -int num_dlls=0; - -#define MAXPENDS 100 -PendingBreakpoints pending_breakpoints[MAXPENDS]; -int num_breakpoints=0; - -static void -add_breakpoint (unsigned int address) -{ - int i; - DWORD rv; - static char int3[] = { 0xcc }; - for (i=0; i= num_breakpoints) - num_breakpoints = i+1; -} - -static int -remove_breakpoint (unsigned int address) -{ - int i; - DWORD rv; - for (i=0; ibase_address < b->base_address) - return -1; - return 1; -} - -static char * -addr2dllname (unsigned int addr) -{ - int i; - for (i=num_dlls-1; i>=0; i--) - { - if (dll_info[i].base_address < addr) - { - return dll_info[i].name; - } - } - return (char *)""; -} - -static void -dump_registers (HANDLE thread) -{ - context.ContextFlags = CONTEXT_FULL; - GetThreadContext (thread, &context); - printf ("eax %08lx ebx %08lx ecx %08lx edx %08lx eip\n", - context.Eax, context.Ebx, context.Ecx, context.Edx); - printf ("esi %08lx edi %08lx ebp %08lx esp %08lx %08lx\n", - context.Esi, context.Esi, context.Ebp, context.Esp, context.Eip); -} - -typedef struct Edge { - struct Edge *next; - unsigned int from_pc; - unsigned int to_pc; - unsigned int count; -} Edge; - -Edge *edges[4096]; - -void -store_call_edge (unsigned int from_pc, unsigned int to_pc) -{ - Edge *e; - unsigned int h = ((from_pc + to_pc)>>4) & 4095; - for (e=edges[h]; e; e=e->next) - if (e->from_pc == from_pc && e->to_pc == to_pc) - break; - if (!e) - { - e = (Edge *)malloc (sizeof (Edge)); - e->next = edges[h]; - edges[h] = e; - e->from_pc = from_pc; - e->to_pc = to_pc; - e->count = 0; - } - e->count++; -} - -void -write_call_edges (FILE *f) -{ - int h; - Edge *e; - for (h=0; h<4096; h++) - for (e=edges[h]; e; e=e->next) - fwrite (&(e->from_pc), 1, 3*sizeof (unsigned int), f); -} - -char * -wide_strdup (char *cp) -{ - unsigned short *s = (unsigned short *)cp; - int len; - char *rv; - for (len=0; s[len]; len++); - rv = (char *)malloc (len+1); - for (len=0; s[len]; len++) - rv[len] = s[len]; - rv[len] = 0; - return rv; -} - -void -run_program (char *cmdline) -{ - FILE *tracefile = 0; - int tix, i; - HANDLE hThread; - char *string; - - memset (&startup, 0, sizeof (startup)); - startup.cb = sizeof (startup); - - if (!CreateProcess (0, cmd_line, 0, 0, 0, - CREATE_NEW_PROCESS_GROUP - | CREATE_SUSPENDED - | DEBUG_PROCESS - | DEBUG_ONLY_THIS_PROCESS, - 0, 0, &startup, &procinfo)) - { - fprintf (stderr, "Can't create process: error %ld\n", GetLastError ()); - exit (1); - } - - hProcess = procinfo.hProcess; -#if 0 - printf ("procinfo: %08x %08x %08x %08x\n", - hProcess, procinfo.hThread, procinfo.dwProcessId, procinfo.dwThreadId); -#endif - - active_threads[0] = procinfo.hThread; - active_thread_ids[0] = procinfo.dwThreadId; - thread_step_flags[0] = stepping_enabled; - num_active_threads = 1; - - dll_info[0].base_address = 0; - dll_info[0].pcount = 0; - dll_info[0].scount = 0; - dll_info[0].name = cmd_line; - num_dlls = 1; - - SetThreadPriority (procinfo.hThread, THREAD_PRIORITY_IDLE); - - context.ContextFlags = CONTEXT_FULL; - - ResumeThread (procinfo.hThread); - - total_cycles = 0; - - if (tracing_enabled) - { - tracefile = fopen ("trace.ssp", "w"); - if (!tracefile) - { - tracing_enabled = 0; - perror ("trace.ssp"); - } - } - - running = 1; - while (running) - { - int src, dest; - DWORD rv; - DEBUG_EVENT event; - int contv = DBG_CONTINUE; - - event.dwDebugEventCode = -1; - if (!WaitForDebugEvent (&event, INFINITE)) - { - printf ("idle...\n"); - } - - hThread = lookup_thread_id (event.dwThreadId, &tix); - -#if 0 - printf ("DE: %x/%d %d %d ", - hThread, tix, - event.dwDebugEventCode, num_active_threads); - for (src=0; src=0; i--) - { - if (dll_info[i].base_address < context.Eip) - { - if (hThread == procinfo.hThread) - dll_info[i].pcount++; - else - dll_info[i].scount++; - break; - } - } - } - - if (pc < last_pc || pc > last_pc+10) - { - static int ncalls=0; - static int qq=0; - if (++qq % 100 == 0) - fprintf (stderr, " %08x %d %d \r", - pc, ncalls, opcode_count); - - if (sp == last_sp-4) - { - ncalls++; - store_call_edge (last_pc, pc); - if (last_pc < KERNEL_ADDR && pc > KERNEL_ADDR) - { - int retaddr; - DWORD rv; - ReadProcessMemory (hProcess, - (void *)sp, - (LPVOID)&(retaddr), - 4, &rv); -#if 0 - printf ("call last_pc = %08x pc = %08x rv = %08x\n", - last_pc, pc, retaddr); - /* experimental - try to skip kernel calls for speed */ - add_breakpoint (retaddr); - set_step_threads (event.dwThreadId, 0); -#endif - } - } - } - - total_cycles++; - last_sp = sp; - last_pc = pc; - if (pc >= low_pc && pc < high_pc) - hits[(pc - low_pc)/2] ++; - break; - default: - if (verbose) - { - printf ("exception %ld, ", event.u.Exception.dwFirstChance); - printf ("code: %lx flags: %lx\n", - event.u.Exception.ExceptionRecord.ExceptionCode, - event.u.Exception.ExceptionRecord.ExceptionFlags); - if (event.u.Exception.dwFirstChance == 1) - dump_registers (hThread); - } - contv = DBG_EXCEPTION_NOT_HANDLED; - running = 0; - break; - } - - if (rv != -1) - { - if (pc == thread_return_address[tix]) - { - if (context.EFlags & 0x100) - { - context.EFlags &= ~0x100; /* TRAP (single step) flag */ - SetThreadContext (hThread, &context); - } - } - else if (stepping_enabled) - { - if (!(context.EFlags & 0x100)) - { - context.EFlags |= 0x100; /* TRAP (single step) flag */ - SetThreadContext (hThread, &context); - } - } - } - break; - - case OUTPUT_DEBUG_STRING_EVENT: - string = (char *)malloc (event.u.DebugString.nDebugStringLength+1); - i = ReadProcessMemory (hProcess, - event.u.DebugString.lpDebugStringData, - (LPVOID)string, - event.u.DebugString.nDebugStringLength, - &rv); - if (!i) - { - printf ("error reading memory: %ld %ld\n", rv, GetLastError ()); - } - if (verbose) - printf ("ODS: %x/%d \"%s\"\n", - (int)hThread, tix, string); - - if (strcmp (string, "ssp on") == 0) - { - stepping_enabled = 1; - set_step_threads (event.dwThreadId, 1); - } - - if (strcmp (string, "ssp off") == 0) - { - stepping_enabled = 0; - set_step_threads (event.dwThreadId, 0); - } - - break; - - - case LOAD_DLL_DEBUG_EVENT: - if (verbose) - printf ("load dll %08x:", - (int)event.u.LoadDll.lpBaseOfDll); - - dll_ptr = (char *)"( u n k n o w n ) \0\0"; - if (event.u.LoadDll.lpImageName) - { - ReadProcessMemory (hProcess, - event.u.LoadDll.lpImageName, - (LPVOID)&src, - sizeof (src), - &rv); - if (src) - { - ReadProcessMemory (hProcess, - (void *)src, - (LPVOID)dll_name, - sizeof (dll_name), - &rv); - dll_name[rv] = 0; - dll_ptr = dll_name; - for (cp=dll_name; *cp; cp++) - { - if (*cp == '\\' || *cp == '/') - { - dll_ptr = cp+1; - } - *cp = tolower (*cp); - } - } - } - - - dll_info[num_dlls].base_address - = (unsigned int)event.u.LoadDll.lpBaseOfDll; - dll_info[num_dlls].pcount = 0; - dll_info[num_dlls].scount = 0; - dll_info[num_dlls].name = wide_strdup (dll_ptr); - if (verbose) - printf (" %s\n", dll_info[num_dlls].name); - num_dlls++; - qsort (dll_info, num_dlls, sizeof (DllInfo), dll_sort); - - break; - - case UNLOAD_DLL_DEBUG_EVENT: - if (verbose) - printf ("unload dll\n"); - break; - - case EXIT_PROCESS_DEBUG_EVENT: - if (verbose) - printf ("process %08lx %08lx exit %ld\n", - event.dwProcessId, event.dwThreadId, - event.u.ExitProcess.dwExitCode); - - running = 0; - break; - } - - set_steps (); - ContinueDebugEvent (event.dwProcessId, event.dwThreadId, contv); - } - - count = 0; - for (pc=low_pc; pc high_pc-8) - { - fprintf (stderr, "Hey, low_pc must be lower than high_pc\n"); - exit (1); - } - - hits = (HISTCOUNTER *)malloc (high_pc-low_pc+4); - memset (hits, 0, high_pc-low_pc+4); - - fprintf (stderr, "prun: [%08x,%08x] Running `%s'\n", - low_pc, high_pc, cmd_line); - - run_program (cmd_line); - - hdr.lpc = low_pc; - hdr.hpc = high_pc; - hdr.ncnt = high_pc-low_pc + sizeof (hdr); - hdr.version = GMONVERSION; - hdr.profrate = 100; - - gmon = fopen ("gmon.out", "wb"); - fwrite (&hdr, 1, sizeof (hdr), gmon); - fwrite (hits, 1, high_pc-low_pc, gmon); - write_call_edges (gmon); - fclose (gmon); - - if (dll_counts) - { - /* 1234567 123% 1234567 123% 12345678 xxxxxxxxxxx */ - printf (" Main-Thread Other-Thread BaseAddr DLL Name\n"); - - total_pcount = 0; - total_scount = 0; - for (i=0; i - -The SSP is a program that uses the Win32 debug API to run a program -one ASM instruction at a time. It records the location of each -instruction used, how many times that instruction is used, and all -function calls. The results are saved in a format that is usable by -the profiling program "gprof", although gprof will claim the values -are seconds, they really are instruction counts. More on that later. - -Because the SSP was originally designed to profile the cygwin DLL, it -does not automatically select a block of code to report statistics on. -You must specify the range of memory addresses to keep track of -manually, but it's not hard to figure out what to specify. Use the -"objdump" program to determine the bounds of the target's ".text" -section. Let's say we're profiling cygwin1.dll. Make sure you've -built it with debug symbols (else gprof won't run) and run objdump -like this: - - objdump -h cygwin1.dll - -It will print a report like this: - -cygwin1.dll: file format pei-i386 - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .text 0007ea00 61001000 61001000 00000400 2**2 - CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA - 1 .data 00008000 61080000 61080000 0007ee00 2**2 - CONTENTS, ALLOC, LOAD, DATA - . . . - -The only information we're concerned with are the VMA of the .text -section and the VMA of the section after it (sections are usually -contiguous; you can also add the Size to the VMA to get the end -address). In this case, the VMA is 0x61001000 and the ending address -is either 0x61080000 (start of .data method) or 0x0x6107fa00 (VMA+Size -method). - -There are two basic ways to use SSP - either profiling a whole -program, or selectively profiling parts of the program. - -To profile a whole program, just run ssp without options. By default, -it will step the whole program. Here's a simple example, using the -numbers above: - - ssp 0x61001000 0x61080000 hello.exe - -This will step the whole program. It will take at least 8 minutes on -a PII/300 (yes, really). When it's done, it will create a file called -"gmon.out". You can turn this data file into a readable report with -gprof: - - gprof -b cygwin1.dll - -The "-b" means "skip the help pages". You can omit this until you're -familiar with the report layout. The gprof documentation explains -a lot about this report, but ssp changes a few things. For example, -the first part of the report reports the amount of time spent in each -function, like this: - -Each sample counts as 0.01 seconds. - % cumulative self self total - time seconds seconds calls ms/call ms/call name - 10.02 231.22 72.43 46 1574.57 1574.57 strcspn - 7.95 288.70 57.48 130 442.15 442.15 strncasematch - -The "seconds" columns are really CPU opcodes, 1/100 second per opcode. -So, "231.22" above means 23,122 opcodes. The ms/call values are 10x -too big; 1574.57 means 157.457 opcodes per call. Similar adjustments -need to be made for the "self" and "children" columns in the second -part of the report. - -OK, so now we've got a huge report that took a long time to generate, -and we've identified a spot we want to work on optimizing. Let's say -it's the time() function. We can use SSP to selectively profile this -function by using OutputDebugString() to control SSP from within the -program. Here's a sample program: - - #include - main() - { - time_t t; - OutputDebugString("ssp on"); - time(&t); - OutputDebugString("ssp off"); - } - -Then, add the "-d" option to ssp to default to *disabling* profiling. -The program will run at full speed until the first OutputDebugString, -then step until the second. - - ssp -d 0x61001000 0x61080000 hello.exe - -You can then use gprof (as usual) to see the performance profile for -just that portion of the program's execution. - -OK, now for the other ssp options, and when to use them: - -"-v" - verbose. This prints messages about threads starting and -stopping, OutputDebugString calls, DLLs loading, etc. - -"-t" and "-tc" - tracing. With -t, *every* step's address is written -to the file "trace.ssp". This can be used to help debug functions, -since it can trace multiple threads. Clever use of scripts can match -addresses with disassembled opcodes if needed. Warning: creates -*huge* files, very quickly. "-tc" prints each address to the console, -useful for debugging key chunks of assembler. - -"-s" - subthreads. Usually, you only need to trace the main thread, -but sometimes you need to trace all threads, so this enables that. -It's also needed when you want to profile a function that only a -subthread calls. However, using OutputDebugString automatically -enables profiling on the thread that called it, not the main thread. - -"-dll" - dll profiling. Generates a pretty table of how much time was -spent in each dll the program used. No sense optimizing a function in -your program if most of the time is spent in the DLL. - -I usually use the -v, -s, and -dll options: - - ssp -v -s -dll -d 0x61001000 0x61080000 hello.exe diff --git a/winsup/utils/strace.cc b/winsup/utils/strace.cc deleted file mode 100644 index d29d3e49b..000000000 --- a/winsup/utils/strace.cc +++ /dev/null @@ -1,947 +0,0 @@ -/* strace.cc - - Copyright 2000, 2001, 2002 Red Hat Inc. - - Written by Chris Faylor - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#define cygwin_internal cygwin_internal_dontuse -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "cygwin/include/sys/strace.h" -#include "cygwin/include/sys/cygwin.h" -#undef cygwin_internal - -/* GCC runtime library's C++ EH code unfortunately pulls in stdio, and we - get undefine references to __impure_ptr, and hence the following - hack. It should be reasonably safe however as long as this file - is built using -mno-cygwin as is intended. */ -int _impure_ptr; - -/* we *know* we're being built with GCC */ -#define alloca __builtin_alloca - -// Version string. -static const char *version_string = "@(#)strace V1.0, Copyright (C) 2001, 2002 Red Hat Inc., " __DATE__ "\n"; - -static const char *pgm; -static int forkdebug = 0; -static int numerror = 1; -static int usecs = 1; -static int delta = 1; -static int hhmmss = 0; -static int bufsize = 0; -static int new_window = 0; -static long flush_period = 0; - -static BOOL close_handle (HANDLE h, DWORD ok); - -#define CloseHandle(h) close_handle(h, 0) - -struct child_list -{ - DWORD id; - HANDLE hproc; - int saw_stars; - char nfields; - long long start_time; - DWORD last_usecs; - struct child_list *next; - child_list ():id (0), hproc (NULL), saw_stars (0), nfields (0), - start_time (0), last_usecs (0), next (NULL) - { - } -}; - -child_list children; - -static void -warn (int geterrno, const char *fmt, ...) -{ - va_list args; - char buf[4096]; - - va_start (args, fmt); - sprintf (buf, "%s: ", pgm); - vsprintf (strchr (buf, '\0'), fmt, args); - if (geterrno) - perror (buf); - else - { - fputs (buf, stderr); - fputs ("\n", stderr); - } -} - -static void __attribute__ ((noreturn)) -error (int geterrno, const char *fmt, ...) -{ - va_list args; - char buf[4096]; - - va_start (args, fmt); - sprintf (buf, "%s: ", pgm); - vsprintf (strchr (buf, '\0'), fmt, args); - if (geterrno) - perror (buf); - else - { - fputs (buf, stderr); - fputs ("\n", stderr); - } - ExitProcess (1); -} - -DWORD lastid = 0; -HANDLE lasth; - -#define PROCFLAGS \ - PROCESS_ALL_ACCESS /*(PROCESS_DUP_HANDLE | PROCESS_TERMINATE | PROCESS_VM_READ | PROCESS_VM_WRITE) */ -static void -add_child (DWORD id, HANDLE hproc) -{ - child_list *c = children.next; - children.next = new (child_list); - children.next->next = c; - lastid = children.next->id = id; - lasth = children.next->hproc = hproc; -} - -static child_list * -get_child (DWORD id) -{ - child_list *c; - for (c = &children; (c = c->next) != NULL;) - if (c->id == id) - return c; - - error (0, "no process id %d found", id); -} - -static void -remove_child (DWORD id) -{ - child_list *c; - if (id == lastid) - lastid = 0; - for (c = &children; c->next != NULL; c = c->next) - if (c->next->id == id) - { - child_list *c1 = c->next; - c->next = c1->next; - delete c1; - return; - } - - error (0, "no process id %d found", id); -} - -#define LINE_BUF_CHUNK 128 - -class linebuf -{ - size_t alloc; -public: - size_t ix; - char *buf; - linebuf () - { - ix = 0; - alloc = 0; - buf = NULL; - } - ~linebuf () - { - if (buf) - free (buf); - } - void add (const char *what, int len); - void add (const char *what) - { - add (what, strlen (what)); - } - void prepend (const char *what, int len); -}; - -void -linebuf::add (const char *what, int len) -{ - size_t newix; - if ((newix = ix + len) >= alloc) - { - alloc += LINE_BUF_CHUNK + len; - buf = (char *) realloc (buf, alloc + 1); - } - memcpy (buf + ix, what, len); - ix = newix; - buf[ix] = '\0'; -} - -void -linebuf::prepend (const char *what, int len) -{ - int buflen; - size_t newix; - if ((newix = ix + len) >= alloc) - { - alloc += LINE_BUF_CHUNK + len; - buf = (char *) realloc (buf, alloc + 1); - buf[ix] = '\0'; - } - if ((buflen = strlen (buf))) - memmove (buf + len, buf, buflen + 1); - else - buf[newix] = '\0'; - memcpy (buf, what, len); - ix = newix; -} - -static void -make_command_line (linebuf & one_line, char **argv) -{ - for (; *argv; argv++) - { - char *p = NULL; - const char *a = *argv; - - int len = strlen (a); - if (len != 0 && !(p = strpbrk (a, " \t\n\r\""))) - one_line.add (a, len); - else - { - one_line.add ("\"", 1); - for (; p; a = p, p = strchr (p, '"')) - { - one_line.add (a, ++p - a); - if (p[-1] == '"') - one_line.add ("\"", 1); - } - if (*a) - one_line.add (a); - one_line.add ("\"", 1); - } - one_line.add (" ", 1); - } - - if (one_line.ix) - one_line.buf[one_line.ix - 1] = '\0'; - else - one_line.add ("", 1); -} - -static DWORD child_pid; - -static BOOL WINAPI -ctrl_c (DWORD) -{ - static int tic = 1; - if ((tic ^= 1) && !GenerateConsoleCtrlEvent (CTRL_C_EVENT, 0)) - error (0, "couldn't send CTRL-C to child, win32 error %d\n", - GetLastError ()); - return TRUE; -} - -DWORD (*cygwin_internal) (int, ...); - -static int -load_cygwin () -{ - static HMODULE h; - - if (cygwin_internal) - return 1; - - if (h) - return 0; - - if (!(h = LoadLibrary ("cygwin1.dll"))) - { - errno = ENOENT; - return 0; - } - if (!(cygwin_internal = (DWORD (*) (int, ...)) GetProcAddress (h, "cygwin_internal"))) - { - errno = ENOSYS; - return 0; - } - return 1; -} - -static void -attach_process (pid_t pid) -{ - load_cygwin (); - child_pid = (DWORD) cygwin_internal (CW_CYGWIN_PID_TO_WINPID, pid); - if (!child_pid) - error (0, "no such pid - %d", pid); - - if (!DebugActiveProcess (child_pid)) - error (0, "couldn't attach to pid %d<%d> for debugging", pid, child_pid); - - (void) cygwin_internal (CW_STRACE_TOGGLE, pid); - printf ("Attached to pid %d (windows pid %u)\n", pid, (unsigned) child_pid); - return; -} - - -static void -create_child (char **argv) -{ - linebuf one_line; - - STARTUPINFO si; - PROCESS_INFORMATION pi; - BOOL ret; - DWORD flags; - - if (!*argv) - error (0, "no program argument specified"); - - memset (&si, 0, sizeof (si)); - si.cb = sizeof (si); - - /* cygwin32_conv_to_win32_path (exec_file, real_path); */ - - flags = forkdebug ? 0 : DEBUG_ONLY_THIS_PROCESS; - flags |= CREATE_DEFAULT_ERROR_MODE | DEBUG_PROCESS; - flags |= (new_window ? CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP : 0); - - make_command_line (one_line, argv); - - SetConsoleCtrlHandler (NULL, 0); - ret = CreateProcess (0, one_line.buf, /* command line */ - NULL, /* Security */ - NULL, /* thread */ - TRUE, /* inherit handles */ - flags, /* start flags */ - NULL, NULL, /* current directory */ - &si, &pi); - if (!ret) - error (0, "error creating process %s, (error %d)", *argv, - GetLastError ()); - - CloseHandle (pi.hThread); - CloseHandle (pi.hProcess); - child_pid = pi.dwProcessId; - SetConsoleCtrlHandler (ctrl_c, 1); -} - -static int -output_winerror (FILE *ofile, char *s) -{ - char *winerr = strstr (s, "Win32 error "); - if (!winerr) - return 0; - - DWORD errnum = atoi (winerr + sizeof ("Win32 error ") - 1); - if (!errnum) - return 0; - - /* - * NOTE: Currently there is no policy for how long the - * the buffers are, and looks like 256 is a smallest one - * (dlfcn.cc). Other than error 1395 (length 213) and - * error 1015 (length 249), the rest are all under 188 - * characters, and so I'll use 189 as the buffer length. - * For those longer error messages, FormatMessage will - * return FALSE, and we'll get the old behaviour such as - * ``Win32 error 1395'' etc. - */ - char buf[4096]; - if (!FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM - | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - errnum, - MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) buf, sizeof (buf), NULL)) - return 0; - - /* Get rid the trailing CR/NL pair. */ - char *p = strchr (buf, '\0'); - p[-2] = '\n'; - p[-1] = '\0'; - - *winerr = '\0'; - fputs (s, ofile); - fputs (buf, ofile); - return 1; -} - -static SYSTEMTIME * -syst (long long t) -{ - FILETIME n; - static SYSTEMTIME st; - long long now = t + ((long long) usecs * 10); - n.dwHighDateTime = now >> 32; - n.dwLowDateTime = now & 0xffffffff; - FileTimeToSystemTime (&n, &st); - return &st; -} - -static void __stdcall -handle_output_debug_string (DWORD id, LPVOID p, unsigned mask, FILE *ofile) -{ - int len; - int special; - char alen[3 + 8 + 1]; - DWORD nbytes; - child_list *child = get_child (id); - HANDLE hchild = child->hproc; -#define INTROLEN (sizeof (alen) - 1) - - if (id == lastid && hchild != lasth) - warn (0, "%p != %p", hchild, lasth); - - alen[INTROLEN] = '\0'; - if (!ReadProcessMemory (hchild, p, alen, INTROLEN, &nbytes)) -#ifndef DEBUGGING - return; -#else - error (0, - "couldn't get message length from subprocess %d<%p>, windows error %d", - id, hchild, GetLastError ()); -#endif - - if (strncmp (alen, "cYg", 3)) - return; - len = (int) strtoul (alen + 3, NULL, 16); - if (!len) - return; - - if (len > 0) - special = 0; - else - { - special = len; - if (special == _STRACE_INTERFACE_ACTIVATE_ADDR) - len = 17; - } - - char *buf; - buf = (char *) alloca (len + 65) + 10; - - if (!ReadProcessMemory (hchild, ((char *) p) + INTROLEN, buf, len, &nbytes)) - error (0, "couldn't get message from subprocess, windows error %d", - GetLastError ()); - - buf[len] = '\0'; - char *s = strtok (buf, " "); - - unsigned n = strtoul (s, NULL, 16); - - s = strchr (s, '\0') + 1; - - if (special == _STRACE_INTERFACE_ACTIVATE_ADDR) - { - DWORD new_flag = 1; - if (!WriteProcessMemory (hchild, (LPVOID) n, &new_flag, - sizeof (new_flag), &nbytes)) - error (0, - "couldn't write strace flag to subprocess, windows error %d", - GetLastError ()); - return; - } - - char *origs = s; - - if (mask & n) - /* got it */ ; - else if (!(mask & _STRACE_ALL) || (n & _STRACE_NOTALL)) - return; /* This should not be included in "all" output */ - - DWORD dusecs, usecs; - char *ptusec, *ptrest; - - dusecs = strtoul (s, &ptusec, 10); - char *q = ptusec; - while (*q == ' ') - q++; - if (*q != '[') - { - usecs = strtoul (q, &ptrest, 10); - while (*ptrest == ' ') - ptrest++; - } - else - { - ptrest = q; - ptusec = s; - usecs = dusecs; - } - - if (child->saw_stars == 0) - { - FILETIME st; - char *news; - - GetSystemTimeAsFileTime (&st); - FileTimeToLocalFileTime (&st, &st); - child->start_time = st.dwHighDateTime; - child->start_time <<= 32; - child->start_time |= st.dwLowDateTime; - if (*(news = ptrest) != '[') - child->saw_stars = 2; - else - { - child->saw_stars++; - while ((news = strchr (news, ' ')) != NULL && *++news != '*') - child->nfields++; - if (news == NULL) - child->saw_stars++; - else - { - s = news; - child->nfields++; - } - } - } - else if (child->saw_stars < 2) - { - int i; - char *news; - if (*(news = ptrest) != '[') - child->saw_stars = 2; - else - { - for (i = 0; i < child->nfields; i++) - if ((news = strchr (news, ' ')) == NULL) - break; // Should never happen - else - news++; - - if (news == NULL) - child->saw_stars = 2; - else - { - s = news; - if (*s == '*') - { - SYSTEMTIME *st = syst (child->start_time); - fprintf (ofile, - "Date/Time: %d-%02d-%02d %02d:%02d:%02d\n", - st->wYear, st->wMonth, st->wDay, st->wHour, - st->wMinute, st->wSecond); - child->saw_stars++; - } - } - } - } - - long long d = usecs - child->last_usecs; - char intbuf[40]; - - if (child->saw_stars < 2 || s != origs) - /* Nothing */ ; - else if (hhmmss) - { - s = ptrest - 9; - SYSTEMTIME *st = syst (child->start_time + (long long) usecs * 10); - sprintf (s, "%02d:%02d:%02d", st->wHour, st->wMinute, st->wSecond); - *strchr (s, '\0') = ' '; - } - else if (!delta) - s = ptusec; - else - { - s = ptusec; - sprintf (intbuf, "%5d ", (int) d); - int len = strlen (intbuf); - - memcpy ((s -= len), intbuf, len); - } - - child->last_usecs = usecs; - if (numerror || !output_winerror (ofile, s)) - fputs (s, ofile); - if (!bufsize) - fflush (ofile); -} - -static void -proc_child (unsigned mask, FILE *ofile) -{ - DEBUG_EVENT ev; - int processes = 0; - time_t cur_time, last_time; - - SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_HIGHEST); - last_time = time (NULL); - while (1) - { - BOOL debug_event = WaitForDebugEvent (&ev, 1000); - DWORD status = DBG_CONTINUE; - - if (bufsize && flush_period > 0 && - (cur_time = time (NULL)) >= last_time + flush_period) - { - last_time = cur_time; - fflush (ofile); - } - - if (!debug_event) - continue; - - switch (ev.dwDebugEventCode) - { - case CREATE_PROCESS_DEBUG_EVENT: - if (ev.u.CreateProcessInfo.hFile) - CloseHandle (ev.u.CreateProcessInfo.hFile); - add_child (ev.dwProcessId, ev.u.CreateProcessInfo.hProcess); - processes++; - break; - - case CREATE_THREAD_DEBUG_EVENT: - break; - - case LOAD_DLL_DEBUG_EVENT: - if (ev.u.LoadDll.hFile) - CloseHandle (ev.u.LoadDll.hFile); - break; - - case OUTPUT_DEBUG_STRING_EVENT: - handle_output_debug_string (ev.dwProcessId, - ev.u.DebugString.lpDebugStringData, - mask, ofile); - break; - - case EXIT_PROCESS_DEBUG_EVENT: - remove_child (ev.dwProcessId); - break; - case EXCEPTION_DEBUG_EVENT: - if (ev.u.Exception.ExceptionRecord.ExceptionCode != - STATUS_BREAKPOINT) - { - status = DBG_EXCEPTION_NOT_HANDLED; -#if 0 - fprintf (stderr, "exception %p at %p\n", - ev.u.Exception.ExceptionRecord.ExceptionCode, - ev.u.Exception.ExceptionRecord.ExceptionAddress); -#endif - } - break; - } - if (!ContinueDebugEvent (ev.dwProcessId, ev.dwThreadId, status)) - error (0, "couldn't continue debug event, windows error %d", - GetLastError ()); - if (ev.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT && --processes == 0) - break; - } -} - -static void -dostrace (unsigned mask, FILE *ofile, pid_t pid, char **argv) -{ - if (*argv && pid) - error (0, "can't use -p with program argument"); - if (!pid) - create_child (argv); - else - attach_process (pid); - proc_child (mask, ofile); - - return; -} - -typedef struct tag_mask_mnemonic -{ - unsigned long val; - const char *text; -} -mask_mnemonic; - -static const mask_mnemonic mnemonic_table[] = { - {_STRACE_ALL, "all"}, - {_STRACE_FLUSH, "flush"}, - {_STRACE_INHERIT, "inherit"}, - {_STRACE_UHOH, "uhoh"}, - {_STRACE_SYSCALL, "syscall"}, - {_STRACE_STARTUP, "startup"}, - {_STRACE_DEBUG, "debug"}, - {_STRACE_PARANOID, "paranoid"}, - {_STRACE_TERMIOS, "termios"}, - {_STRACE_SELECT, "select"}, - {_STRACE_WM, "wm"}, - {_STRACE_SIGP, "sigp"}, - {_STRACE_MINIMAL, "minimal"}, - {_STRACE_EXITDUMP, "exitdump"}, - {_STRACE_SYSTEM, "system"}, - {_STRACE_NOMUTEX, "nomutex"}, - {_STRACE_MALLOC, "malloc"}, - {_STRACE_THREAD, "thread"}, - {0, NULL} -}; - -static unsigned long -mnemonic2ul (const char *nptr, char **endptr) -{ - // Look up mnemonic in table, return value. - // *endptr = ptr to char that breaks match. - const mask_mnemonic *mnp = mnemonic_table; - - while (mnp->text != NULL) - { - if (strcmp (mnp->text, nptr) == 0) - { - // Found a match. - if (endptr != NULL) - { - *endptr = ((char *) nptr) + strlen (mnp->text); - } - return mnp->val; - } - mnp++; - } - - // Didn't find it. - if (endptr != NULL) - { - *endptr = (char *) nptr; - } - return 0; -} - -static unsigned long -parse_mask (const char *ms, char **endptr) -{ - const char *p = ms; - char *newp; - unsigned long retval = 0, thisval; - const size_t bufsize = 16; - char buffer[bufsize]; - size_t len; - - while (*p != '\0') - { - // First extract the term, terminate it, and lowercase it. - strncpy (buffer, p, bufsize); - buffer[bufsize - 1] = '\0'; - len = strcspn (buffer, "+,\0"); - buffer[len] = '\0'; - strlwr (buffer); - - // Check if this is a mnemonic. We have to do this first or strtoul() - // will false-trigger on anything starting with "a" through "f". - thisval = mnemonic2ul (buffer, &newp); - if (buffer == newp) - { - // This term isn't mnemonic, check if it's hex. - thisval = strtoul (buffer, &newp, 16); - if (newp != buffer + len) - { - // Not hex either, syntax error. - *endptr = (char *) p; - return 0; - } - } - - p += len; - retval += thisval; - - // Handle operators - if (*p == '\0') - break; - if ((*p == '+') || (*p == ',')) - { - // For now these both equate to addition/ORing. Until we get - // fancy and add things like "all-", all we need do is - // continue the looping. - p++; - continue; - } - else - { - // Syntax error - *endptr = (char *) p; - return 0; - } - } - - *endptr = (char *) p; - return retval; -} - -static void -usage () -{ - fprintf (stderr, "\ -Usage: strace [OPTIONS] \n\ - -b, --buffer-size=SIZE set size of output file buffer\n\ - -d, --no-delta don't display the delta-t microsecond timestamp\n\ - -f, --trace-children also trace forked child processes\n\ - -h, --help display this help info\n\ - -m, --mask=MASK set message filter mask\n\ - -o, --output=FILENAME set output file to FILENAME\n\ - -p, --pid=n attach to executing program with cygwin pid n\n\ - -n, --crack-error-numbers output descriptive text instead of error\n\ - numbers for Windows errors\n\ - -S, --flush-period=PERIOD flush buffered strace output every PERIOD secs\n\ - -t, --timestamp use an absolute hh:mm:ss timestamp insted of the\n\ - default microsecond timestamp. Implies -d\n\ - -v, --version display version info\n\ - -w, --new-window spawn program under test in a new window\n\ -\n\ - MASK can be any combination of the following mnemonics and/or hex values\n\ - (0x is optional). Combine masks with '+' or ',' like so:\n\ -\n\ - --mask=wm+system,malloc+0x00800\n\ -\n\ - Mnemonic Hex Corresponding Def Description\n\ - =========================================================================\n\ - all 0x00001 (_STRACE_ALL) All strace messages.\n\ - flush 0x00002 (_STRACE_FLUSH) Flush output buffer after each message.\n\ - inherit 0x00004 (_STRACE_INHERIT) Children inherit mask from parent.\n\ - uhoh 0x00008 (_STRACE_UHOH) Unusual or weird phenomenon.\n\ - syscall 0x00010 (_STRACE_SYSCALL) System calls.\n\ - startup 0x00020 (_STRACE_STARTUP) argc/envp printout at startup.\n\ - debug 0x00040 (_STRACE_DEBUG) Info to help debugging. \n\ - paranoid 0x00080 (_STRACE_PARANOID) Paranoid info.\n\ - termios 0x00100 (_STRACE_TERMIOS) Info for debugging termios stuff.\n\ - select 0x00200 (_STRACE_SELECT) Info on ugly select internals.\n\ - wm 0x00400 (_STRACE_WM) Trace Windows msgs (enable _strace_wm).\n\ - sigp 0x00800 (_STRACE_SIGP) Trace signal and process handling.\n\ - minimal 0x01000 (_STRACE_MINIMAL) Very minimal strace output.\n\ - exitdump 0x04000 (_STRACE_EXITDUMP) Dump strace cache on exit.\n\ - system 0x08000 (_STRACE_SYSTEM) Serious error which goes to console and log.\n\ - nomutex 0x10000 (_STRACE_NOMUTEX) Don't use mutex for synchronization.\n\ - malloc 0x20000 (_STRACE_MALLOC) Trace malloc calls.\n\ - thread 0x40000 (_STRACE_THREAD) Thread-locking calls.\n\ -"); -} - -static void -version () -{ - fputs (version_string + 4, stderr); -} - -struct option longopts[] = { - {"buffer-size", required_argument, NULL, 'b'}, - {"help", no_argument, NULL, 'h'}, - {"flush-period", required_argument, NULL, 'S'}, - {"mask", required_argument, NULL, 'm'}, - {"new-window", no_argument, NULL, 'w'}, - {"output", required_argument, NULL, 'o'}, - {"no-delta", no_argument, NULL, 'd'}, - {"pid", required_argument, NULL, 'p'}, - {"timestamp", no_argument, NULL, 't'}, - {"trace-children", no_argument, NULL, 'f'}, - {"translate-error-numbers", no_argument, NULL, 'n'}, - {"usecs", no_argument, NULL, 'u'}, - {"version", no_argument, NULL, 'v'}, - {NULL, 0, NULL, 0} -}; - -static const char *const opts = "b:dhfm:no:p:S:tuvw"; - -int -main (int argc, char **argv) -{ - unsigned mask = 0; - FILE *ofile = NULL; - pid_t attach_pid = 0; - int opt; - - if (!(pgm = strrchr (*argv, '\\')) && !(pgm = strrchr (*argv, '/'))) - pgm = *argv; - else - pgm++; - - while ((opt = getopt_long (argc, argv, opts, longopts, NULL)) != EOF) - switch (opt) - { - case 'b': - bufsize = atoi (optarg); - break; - case 'd': - delta ^= 1; - break; - case 'f': - forkdebug ^= 1; - break; - case 'h': - // Print help and exit - usage (); - return 1; - break; - case 'm': - { - char *endptr; - mask = parse_mask (optarg, &endptr); - if (*endptr != '\0') - { - // Bad mask expression. - error (0, "syntax error in mask expression \"%s\" near \ -character #%d.\n", optarg, (int) (endptr - optarg), endptr); - } - break; - } - case 'n': - numerror ^= 1; - break; - case 'o': - if ((ofile = fopen (optarg, "w")) == NULL) - error (1, "can't open %s", optarg); -#ifdef F_SETFD - (void) fcntl (fileno (ofile), F_SETFD, 0); -#endif - break; - case 'p': - attach_pid = strtol (optarg, NULL, 10); - break; - case 'S': - flush_period = strtol (optarg, NULL, 10); - break; - case 't': - hhmmss ^= 1; - break; - case 'u': - // FIXME: currently unimplemented - usecs ^= 1; - break; - case 'v': - // Print version info and exit - version (); - return 1; - break; - case 'w': - new_window ^= 1; - break; - } - - if (!mask) - mask = 1; - - if (bufsize) - setvbuf (ofile, (char *) alloca (bufsize), _IOFBF, bufsize); - - if (!ofile) - ofile = stdout; - - dostrace (mask, ofile, attach_pid, argv + optind); -} - -#undef CloseHandle - -static BOOL -close_handle (HANDLE h, DWORD ok) -{ - child_list *c; - for (c = &children; (c = c->next) != NULL;) - if (c->hproc == h && c->id != ok) - error (0, "Closing child handle %p", h); - return CloseHandle (h); -} diff --git a/winsup/utils/umount.cc b/winsup/utils/umount.cc deleted file mode 100644 index cff08c70a..000000000 --- a/winsup/utils/umount.cc +++ /dev/null @@ -1,210 +0,0 @@ -/* umount.cc - - Copyright 1996, 1998, 1999, 2000, 2001 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include -#include -#include -#include -#include -#include -#include - -static void remove_all_mounts (); -static void remove_all_user_mounts (); -static void remove_all_system_mounts (); -static void remove_cygdrive_prefix (int flags); - -static const char *progname; - -struct option longopts[] = -{ - {"help", no_argument, NULL, 'h' }, - {"remove-all-mounts", no_argument, NULL, 'A'}, - {"remove-cygdrive-prefix", no_argument, NULL, 'c'}, - {"remove-system-mounts", no_argument, NULL, 'S'}, - {"remove-user-mounts", no_argument, NULL, 'U'}, - {"system", no_argument, NULL, 's'}, - {"user", no_argument, NULL, 'u'}, - {NULL, 0, NULL, 0} -}; - -char opts[] = "hASUsuc"; - -static void -usage (void) -{ - fprintf (stderr, "Usage %s [OPTION] []\n\ - -A, --remove-all-mounts remove all mounts\n\ - -c, --remove-cygdrive-prefix remove cygdrive prefix\n\ - -s, --system remove system mount\n\ - -S, --remove-system-mounts remove all system mounts\n\ - -u, --user remove user mount\n\ - -U, --remove-user-mounts remove all user mounts\n\ -", progname); - exit (1); -} - -static void -error (const char *path) -{ - fprintf (stderr, "%s: %s: %s\n", progname, path, strerror (errno)); - exit (1); -} - -int -main (int argc, char **argv) -{ - int i; - int flags = 0; - progname = argv[0]; - enum do_what - { - nada, - saw_remove_all_mounts, - saw_remove_cygdrive_prefix, - saw_remove_all_system_mounts, - saw_remove_all_user_mounts - } do_what = nada; - - if (argc == 1) - usage (); - - while ((i = getopt_long (argc, argv, opts, longopts, NULL)) != EOF) - switch (i) - { - case 'A': - if (do_what != nada) - usage (); - do_what = saw_remove_all_mounts; - break; - case 'c': - if (do_what != nada) - usage (); - do_what = saw_remove_cygdrive_prefix; - break; - case 's': - flags |= MOUNT_SYSTEM; - break; - case 'S': - if (do_what != nada) - usage (); - do_what = saw_remove_all_system_mounts; - break; - case 'u': - flags &= ~MOUNT_SYSTEM; - break; - case 'U': - if (do_what != nada) - usage (); - do_what = saw_remove_all_user_mounts; - break; - default: - usage (); - } - - switch (do_what) - { - case saw_remove_all_mounts: - if (optind != argc) - usage (); - remove_all_mounts (); - break; - case saw_remove_cygdrive_prefix: - if (optind != argc) - usage (); - remove_cygdrive_prefix (flags); - break; - case saw_remove_all_system_mounts: - if (optind != argc) - usage (); - remove_all_system_mounts (); - break; - case saw_remove_all_user_mounts: - if (optind != argc) - usage (); - remove_all_user_mounts (); - break; - default: - if (optind != argc - 1) - usage (); - if (cygwin_umount (argv[optind], flags) != 0) - error (argv[optind]); - } - - return 0; -} - -/* remove_all_mounts: Unmount all mounts. */ -static void -remove_all_mounts () -{ - remove_all_user_mounts (); - remove_all_system_mounts (); -} - -/* remove_all_user_mounts: Unmount all user mounts. */ -static void -remove_all_user_mounts () -{ - FILE *m = setmntent ("/-not-used-", "r"); - struct mntent *p; - - while ((p = getmntent (m)) != NULL) - { - /* Remove the mount if it's a user mount. */ - if (strncmp (p->mnt_type, "user", 4) == 0 && - strstr (p->mnt_opts, "noumount") == NULL) - { - if (cygwin_umount (p->mnt_dir, 0)) - error (p->mnt_dir); - - /* We've modified the table so we need to start over. */ - endmntent (m); - m = setmntent ("/-not-used-", "r"); - } - } - - endmntent (m); -} - -/* remove_all_system_mounts: Unmount all system mounts. */ -static void -remove_all_system_mounts () -{ - FILE *m = setmntent ("/-not-used-", "r"); - struct mntent *p; - - while ((p = getmntent (m)) != NULL) - { - /* Remove the mount if it's a system mount. */ - if (strncmp (p->mnt_type, "system", 6) == 0 && - strstr (p->mnt_opts, "noumount") == NULL) - { - if (cygwin_umount (p->mnt_dir, MOUNT_SYSTEM)) - error (p->mnt_dir); - - /* We've modified the table so we need to start over. */ - endmntent (m); - m = setmntent ("/-not-used-", "r"); - } - } - - endmntent (m); -} - -/* remove_cygdrive_prefix: Remove cygdrive user or system path prefix. */ -static void -remove_cygdrive_prefix (int flags) -{ - int res = cygwin_umount (NULL, flags | MOUNT_AUTO); - if (res) - error ("remove_cygdrive_prefix"); - exit (0); -} diff --git a/winsup/utils/utils.sgml b/winsup/utils/utils.sgml deleted file mode 100644 index 761040430..000000000 --- a/winsup/utils/utils.sgml +++ /dev/null @@ -1,738 +0,0 @@ -Cygwin Utilities - -Cygwin comes with a number of command-line utilities that are -used to manage the UNIX emulation portion of the Cygwin environment. -While many of these reflect their UNIX counterparts, each was written -specifically for Cygwin. - -cygcheck - - -Usage: cygcheck [-s] [-v] [-r] [-h] [program ...] - -c check current package setup - -h give help about the info - -s system information - -v verbose output (indented) (for -s or programs) - -r registry search (requires -s) - -V version info -You must at least give either -s or a program name - - -The cygcheck program is a diagnostic utility -that examines your system and reports the information that is -significant to the proper operation of Cygwin programs. It can give -information about a specific program (or program) you are trying to -run, general system information, or both. If you list one or more -programs on the command line, it will diagnose the runtime environment -of that program or programs. If you specify the -s -option, it will give general system information. If you specify --s and list one or more programs on the command line, -it reports on both. - -The -c option causes the "program" arguments -to be interpreted as package names. cygcheck will -report the current version of the package that you specify. With no -arguments, cygcheck will report on all packages. - -The cygcheck program should be used to send -information about your system to Cygnus for troubleshooting (if your -support representative requests it). When asked to run this command, -include all the options plus any commands you are having trouble with, -and save the output so that you can mail it to Cygnus, like -this: - - -C:\Cygnus> cygcheck -s -v -r -h > tocygnus.txt - - -The -v option causes the output to be more -verbose. What this means is that additional information will be -reported which is usually not interesting, such as the internal -version numbers of DLLs, additional information about recursive DLL -usage, and if a file in one directory in the PATH also occurs in other -directories on the PATH. - -The -r option causes -cygcheck to search your registry for information -that is relevent to Cygnus programs. These registry entries are the -ones that have "Cygnus" in the name. If you are paranoid about -privacy, you may remove information from this report, but please keep -in mind that doing so makes it harder for Cygnus to diagnose your -problems. - -The -h option prints additional helpful -messages in the report, at the beginning of each section. It also -adds table column headings. While this is useful information, it also -adds some to the size of the report, so if you want a compact report -or if you know what everything is already, just leave this out. - - - -cygpath - - -Usage: cygpath.exe [-p|--path] (-u|--unix)|(-w|--windows [-s|--short-name]) filename - -a|--absolute output absolute path - -c|--close handle close handle (for use in captured process) - -f|--file file read file for input path information - -i|--ignore ignore missing argument - -p|--path filename argument is a path - -s|--short-name print Windows short form of filename - -u|--unix print Unix form of filename - -v|--version output version information and exit - -w|--windows print Windows form of filename - -A|--allusers use `All Users' instead of current user for -D, -P - -D|--desktop output `Desktop' directory and exit - -P|--smprograms output Start Menu `Programs' directory and exit - -S|--sysdir output system directory and exit - -W|--windir output `Windows' directory and exit - - -The cygpath program is a utility that -converts Windows native filenames to Cygwin POSIX-style pathnames and -back. It can be used when a Cygwin program needs to pass a file name -to a native Windows program, or expects to get a file name from a -native Windows program. You may use the long or short option names -interchangeably, even though only the short ones are described -here. - -The -u and -w options -indicate whether you want a conversion from Windows to UNIX (POSIX) -format (-u) or a conversion from UNIX (POSIX) to -Windows format (-w). You must give exactly -one of these. To give neither or both is an error. Use the --s option in combination with the -w - option to convert to Windows short form. - -The -p option means that you want to convert -a path-style string rather than a single filename. For example, the -PATH environment variable is semicolon-delimited in Windows, but -colon-delimited in UNIX. By giving -p you are -instructing cygpath to convert between these -formats. - -The -i option supresses the print out of the -usage message if no filename argument was given. It can be used in -make file rules converting variables to a proper format that may be -omitted. - -Example cygpath usage - -#!/bin/sh -for i in `echo *.exe | sed 's/\.exe/.cc/'` -do - notepad "`cygpath -w $i`" -done - - - -The capital options --D, -P, -S, and --W output directories used by Windows that are not the -same on all systems, for example -S might output -C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM. The -A option -forces use of the "All Users" directories instead of the current user -for the -D and -P options. -On Win9x systems with only a single user, -A has no -effect; -D and -AD would have the -same output. - - - -kill - - -Usage: kill [-f] [-sigN] pid1 [pid2 ...] - - -The kill program allows you to send arbitrary -signals to other Cygwin programs. The usual purpose is to end a -running program from some other window when ^C won't work, but you can -also send program-specified signals such as SIGUSR1 to trigger actions -within the program, like enabling debugging or re-opening log files. -Each program defines the signals they understand. - -Note that, unless you specific the -f option, -the "pid" values are the Cygwin pids, not the Windows pids. To get a -list of running programs and their Cygwin pids, use the Cygwin -ps program. ps -W will display -all windows pids. - -To send a specific signal, use the -signN -option, either with a signal number or a signal name (minus the "SIG" -part), like these examples: - -Using the kill command - -$ kill 123 -$ kill -1 123 -$ kill -HUP 123 -$ kill -f 123 - - - -Here is a list of available signals, their numbers, and some -commentary on them, from the file -<sys/signal.h>, which should be considered -the official source of this information. - - -SIGHUP 1 hangup -SIGINT 2 interrupt -SIGQUIT 3 quit -SIGILL 4 illegal instruction (not reset when caught) -SIGTRAP 5 trace trap (not reset when caught) -SIGABRT 6 used by abort -SIGEMT 7 EMT instruction -SIGFPE 8 floating point exception -SIGKILL 9 kill (cannot be caught or ignored) -SIGBUS 10 bus error -SIGSEGV 11 segmentation violation -SIGSYS 12 bad argument to system call -SIGPIPE 13 write on a pipe with no one to read it -SIGALRM 14 alarm clock -SIGTERM 15 software termination signal from kill -SIGURG 16 urgent condition on IO channel -SIGSTOP 17 sendable stop signal not from tty -SIGTSTP 18 stop signal from tty -SIGCONT 19 continue a stopped process -SIGCHLD 20 to parent on child stop or exit -SIGCLD 20 System V name for SIGCHLD -SIGTTIN 21 to readers pgrp upon background tty read -SIGTTOU 22 like TTIN for output if (tp->t_local&LTOSTOP) -SIGIO 23 input/output possible signal -SIGPOLL 23 System V name for SIGIO -SIGXCPU 24 exceeded CPU time limit -SIGXFSZ 25 exceeded file size limit -SIGVTALRM 26 virtual time alarm -SIGPROF 27 profiling time alarm -SIGWINCH 28 window changed -SIGLOST 29 resource lost (eg, record-lock lost) -SIGUSR1 30 user defined signal 1 -SIGUSR2 31 user defined signal 2 - - - - -mkgroup - - -usage: mkgroup [options] [domain] - This program prints a /etc/group file to stdout - Options: - -l,--local print local group information - -d,--domain print global group information from the domain - specified (or from the current domain if there is - no domain specified) - -o,--id-offset offset change the default offset (10000) added to uids - in domain accounts. - -s,--no-sids don't print SIDs in pwd field - (this affects ntsec) - -u,--users print user list in gr_mem field - -?,--help print this message - One of `-l' or `-d' must be given on NT/W2K. - - -The mkgroup program can be used to help -configure your Windows system to be more UNIX-like by creating an -initial /etc/group substitute (some commands need this -file) from your system information. It only works on NT. -To initially set up your machine, -you'd do something like this: - -Setting up the groups file - -$ mkdir /etc -$ mkgroup -l > /etc/group - - - -Note that this information is static. If you change the group -information in your system, you'll need to regenerate the group file -for it to have the new information. - -The -d and -l options -allow you to specify where the information comes from, either the -local machine or the default (or given) domain. - - - -mkpasswd - - -Usage: mkpasswd [options] [domain] - Usage: mkpasswd [OPTION]... [domain] - This program prints a /etc/passwd file to stdout - Options: - -l,--local print local user accounts - -d,--domain print domain accounts (from current domain - if no domain specified) - -o,--id-offset offset change the default offset (10000) added to uids - in domain accounts. - -g,--local-groups print local group information too - if no domain specified - -m,--no-mount don't use mount points for home dir - -s,--no-sids don't print SIDs in GCOS field - (this affects ntsec) - -p,--path-to-home path if user account has no home dir, use - path instead of /home/ - -u,--username username only return information for the specified user - -?,--help displays this message - One of `-l', `-d' or `-g' must be given on NT/W2K. - - -The mkpasswd program can be used to help -configure your Windows system to be more UNIX-like by creating an -initial /etc/passwd substitute (some commands -need this file) from your system information. It only works on NT. -To initially set up your machine, you'd do something like this: - -Setting up the passwd file - -$ mkdir /etc -$ mkpasswd -l > /etc/passwd - - - -Note that this information is static. If you change the user -information in your system, you'll need to regenerate the passwd file -for it to have the new information. - -The -d and -l options -allow you to specify where the information comes from, either the -local machine or the default (or given) domain. - - - -passwd - - -Usage passwd [name] - passwd [-x max] [-n min] [-i inact] [-L len] - passwd {-l|-u|-S} name - -x max set max age of passwords - -n min set min age of passwords - -i inact disables account after inact days of expiry - -L len set min password length - -l lock an account - -u unlock an account - -S show account information - - - passwd changes passwords for user accounts. -A normal user may only change the password for their own account, -the administrators may change the password for any account. -passwd also changes account information, such as -password expiry dates and intervals. - -Password changes: The user is first prompted for their old -password, if one is present. This password is then encrypted and -compared against the stored password. The user has only one chance to -enter the correct password. The administrators are permitted to -bypass this step so that forgotten passwords may be changed. - -The user is then prompted for a replacement password. -passwd will prompt again and compare the second entry -against the first. Both entries are require to match in order for the -password to be changed. - -After the password has been entered, password aging information -is checked to see if the user is permitted to change their password -at this time. If not, passwd refuses to change the -password and exits. - -Password expiry and length: The password aging information may be -changed by the administrators with the -x, --n and -i options. The --x option is used to set the maximum number of days -a password remains valid. After max days, the -password is required to be changed. The -n option is -used to set the minimum number of days before a password may be changed. -The user will not be permitted to change the password until -min days have elapsed. The -i -option is used to disable an account after the password has been expired -for a number of days. After a user account has had an expired password -for inact days, the user may no longer sign on to -the account. Allowed values for the above options are 0 to 999. The --L option sets the minimum length of allowed passwords -for users, which doesn't belong to the administrators group, to -len characters. Allowed values for the minimum -password length are 0 to 14. In any of the above cases, a value of 0 -means `no restrictions'. - -Account maintenance: User accounts may be locked and unlocked with the --l and -u flags. The --l option disables an account. The -u -option re-enables an account. - -The account status may be given with the -S -option. The status information is self explanatory. - -Limitations: Users may not be able to change their password on -some systems. - - - -mount - - -Usage mount - mount [options] <win32path> <posixpath> - - -b, --binary text files are equivalent to binary files - (newline = \n) - -c, --change-cygdrive-prefix change the cygdrive path prefix to <posixpath> - -f, --force force mount, don't warn about missing mount - point directories - -i, --import-old-mounts copy old registry mount table mounts into the current - mount areas - -p, --show-cygdrive-prefix show user and/or system cygdrive path prefix - -s, --system add mount point to system-wide registry location - -t, --text (default) text files get \r\n line endings - -u, --user (default) add mount point to user registry location - -x, --executable treat all files under mount point as executables - -X, --cygwin-executable treat all files under mount point as cygwin - executables - -m, --mount-commands write mount commands to replace user and - system mount points and cygdrive prefixes - - When invoked without any arguments, mount displays the current mount table. - - -The mount program is used to map your drives -and shares onto Cygwin's simulated POSIX directory tree, much like as is -done by mount commands on typical UNIX systems. Please see - for more information on the concepts -behind the Cygwin POSIX file system and strategies for using -mounts. - -Using mount - -If you just type mount with no parameters, it -will display the current mount table for you. - - -Displaying the current set of mount points - -c:\cygnus\> mount -Device Directory Type Flags -D: /d user textmode -C: / system textmode - - - -In this example, the C -drive is the POSIX root and D drive is mapped to -/d. Note that in this case, the root mount is a -system-wide mount point that is visible to all users running Cygwin -programs, whereas the /d mount is only visible -to the current user. - -The mount utility is also the mechanism for -adding new mounts to the mount table. The following example -demonstrates how to mount the directory -C:\cygnus\cygwin-b20\H-i586-cygwin32\bin -to /bin and the network directory -\\pollux\home\joe\data to /data. -/bin is assumed to already exist. - - -Adding mount points - -c:\cygnus\> ls /bin /data -ls: /data: No such file or directory -c:\cygnus\> mount C:\cygnus\cygwin-b20\H-i586-cygwin32\bin /bin -c:\cygnus\> mount \\pollux\home\joe\data /data -Warning: /data does not exist! -c:\cygnus\> mount -Device Directory Type Flags -\\pollux\home\joe\data /data user textmode -C:\cygnus\cygwin-b20\H-i586-cygwin32\bin /bin user textmode -D: /d user textmode -\\.\tape1: /dev/st1 user textmode -\\.\tape0: /dev/st0 user textmode -\\.\b: /dev/fd1 user textmode -\\.\a: /dev/fd0 user textmode -C: / system textmode -c:\cygnus\> ls /bin/sh -/bin/sh - - - -Note that mount was invoked from the Windows -command shell in the previous example. In many Unix shells, including -bash, it is legal and convenient to use the forward "/" in Win32 -pathnames since the "\" is the shell's escape character. - -The "-s" flag to mount is used to add a mount -in the system-wide mount table used by all Cygwin users on the system, -instead of the user-specific one. System-wide mounts are displayed -by mount as being of the "system" type, as is the -case for the / partition in the last example. -Under Windows NT, only those users with Administrator priviledges are -permitted to modify the system-wide mount table. - -Note that a given POSIX path may only exist once in the user -table and once in the global, system-wide table. Attempts to replace -the mount will fail with a busy error. The "-f" (force) flag causes -the old mount to be silently replaced with the new one. It will also -silence warnings about the non-existence of directories at the Win32 -path location. - -The "-b" flag is used to instruct Cygwin to treat binary and -text files in the same manner by default. Binary mode mounts are -marked as "binmode" in the Flags column of mount -output. By default, mounts are in text mode ("textmode" in the Flags -column). - -The "-x" flag is used to instruct Cygwin that the mounted file -is "executable". If the "-x" flag is used with a directory then -all files in the directory are executable. Files ending in certain -extensions (.exe, .com, .bat, .cmd) are assumed to be executable -by default. Files whose first two characters begin with '#!' are -also considered to be executable. This option allows other files -to be marked as executable and avoids the overhead of opening each -file to check for a '#!'. - - - -Cygdrive mount points - -Whenever Cygwin cannot use any of the existing mounts to convert -from a particular Win32 path to a POSIX one, Cygwin will, instead, -convert to a POSIX path using a default mount point: -/cygdrive. For example, if Cygwin accesses -Z:\foo and the Z drive is not currently in the -mount table, then Z:\ will be accessible as -/cygdrive/Z. The default prefix of -/cygdrive may be changed via the - command. - -The mount utility can be used to change this -default automount prefix through the use of the -"--change-cygdrive-prefix" flag. In the following example, we will -set the automount prefix to /: - - -Changing the default prefix - -c:\cygnus\> mount --change-cygdrive-prefix / - - - -Note that you if you set a new prefix in this manner, you can -specify the "-s" flag to make this the system-wide default prefix. By -default, the cygdrive-prefix applies only to the current user. In the -same way, you can specify the "-b" flag such that all new automounted -filesystems default to binary mode file accesses. - - - -Limitations - -Limitations: there is a hard-coded limit of 30 mount -points. Also, although you can mount to pathnames that do not start -with "/", there is no way to make use of such mount points. - -Normally the POSIX mount point in Cygwin is an existing empty -directory, as in standard UNIX. If this is the case, or if there is a -place-holder for the mount point (such as a file, a symbolic link -pointing anywhere, or a non-empty directory), you will get the expected -behavior. Files present in a mount point directory before the mount -become invisible to Cygwin programs. - - -It is sometimes desirable to mount to a non-existent directory, -for example to avoid cluttering the root directory with names -such as -a, b, c -pointing to disks. -Although mount will give you a warning, most -everything will work properly when you refer to the mount point -explicitly. Some strange effects can occur however. -For example if your current working directory is -/dir, -say, and /dir/mtpt is a mount point, then -mtpt will not show up in an ls -or -echo * command and find . will -not -find mtpt. - - - - - - -ps - - -Usage ps [-aefl] [-u uid] - -a, -e show processes of all users - -f show process uids, ppids - -l show process uids, ppids, pgids, winpids - -s short process listing - -u uid show processes owned by uid - -W show all windows processes, not just cygwin processes - - -The ps program gives the status of all the -Cygwin processes running on the system (ps = "process status"). Due -to the limitations of simulating a POSIX environment under Windows, -there is little information to give. The PID column is the process ID -you need to give to the kill command. The WINPID -column is the process ID that's displayed by NT's Task Manager -program. - - - -umount - - -Usage umount [options] <posixpath> - -A, --remove-all-mounts remove all mounts - -c, --remove-cygdrive-prefix remove cygdrive prefix - -s, --system remove system mount - -S, --remove-system-mounts remove all system mounts - -u, --user remove user mount - -U, --remove-user-mounts remove all user mounts - - -The umount program removes mounts from the -mount table. If you specify a POSIX path that corresponds to a -current mount point, umount will remove it from the -user-specific registry area. The -s flag may be used to specify -removing the mount from the system-wide registry area instead -(Administrator priviledges are required). - -The umount utility may also be used to remove -all mounts of a particular type. With the extended options it is -possible to remove all mounts, all automatically-mounted mounts, all -mounts in the current user's registry area, or all mounts in the -system-wide registry area (with Administrator privileges). - -See ) for more information on the mount -table. - - -strace - - -Usage strace [options] program [args...] - - -b, --buffer-size=SIZE set size of output file buffer - -d, --no-delta don't display the delta-t microsecond timestamp - -f, --trace-children also trace forked child processes - -h, --help display help info - -m, --mask=MASK set message filter mask - -n, --crack-error-numbers output descriptive text instead of error - numbers for Windows errors - -o, --output=FILENAME set output file to FILENAME - -p, --pid=pid attach to a running process - -S, --flush-period=PERIOD flush buffered strace output every PERIOD secs - -t, --timestamp use an absolute hh:mm:ss timestamp insted of the - default microsecond timestamp. Implies -d - -v, --version display version info - -w, --new-window spawn program under test in a new window - - MASK can be any combination of the following mnemonics and/or hex values - (0x is optional). Combine masks with '+' or ',' like so: - - --mask=wm+system,malloc+0x00800 - - Mnemonic Hex Corresponding Def Description - ========================================================================= - all 0x00001 (_STRACE_ALL) All strace messages. - flush 0x00002 (_STRACE_FLUSH) Flush output buffer after each message. - inherit 0x00004 (_STRACE_INHERIT) Children inherit mask from parent. - uhoh 0x00008 (_STRACE_UHOH) Unusual or weird phenomenon. - syscall 0x00010 (_STRACE_SYSCALL) System calls. - startup 0x00020 (_STRACE_STARTUP) argc/envp printout at startup. - debug 0x00040 (_STRACE_DEBUG) Info to help debugging. - paranoid 0x00080 (_STRACE_PARANOID) Paranoid info. - termios 0x00100 (_STRACE_TERMIOS) Info for debugging termios stuff. - select 0x00200 (_STRACE_SELECT) Info on ugly select internals. - wm 0x00400 (_STRACE_WM) Trace Windows msgs (enable _strace_wm). - sigp 0x00800 (_STRACE_SIGP) Trace signal and process handling. - minimal 0x01000 (_STRACE_MINIMAL) Very minimal strace output. - exitdump 0x04000 (_STRACE_EXITDUMP) Dump strace cache on exit. - system 0x08000 (_STRACE_SYSTEM) Cache strace messages. - nomutex 0x10000 (_STRACE_NOMUTEX) Don't use mutex for synchronization. - malloc 0x20000 (_STRACE_MALLOC) Trace malloc calls. - thread 0x40000 (_STRACE_THREAD) Thread-locking calls. - - -The strace program executes a program, and -optionally the children of the program, reporting any Cygwin DLL output -from the program(s) to file. This program is mainly useful for debugging -the Cygwin DLL itself. - - -regtool - - -Regtool Copyright (c) 2000 Red Hat Inc - regtool -h - print this message - regtool [-v|-p|-k|-l] list [key] - list subkeys and values - -p=postfix, like ls -p, appends / postfix to key names - -k=keys, lists only keys - -l=values, lists only values - regtool [-v] add [key\subkey] - add new subkey - regtool [-v] remove [key] - remove key - regtool [-v|-q] check [key] - exit 0 if key exists, 1 if not - regtool [-i|-s|-e|-m] set [key\value] [data ...] - set value - -i=integer -s=string -e=expand-string -m=multi-string - regtool [-v] unset [key\value] - removes value from key - regtool [-q] get [key\value] - prints value to stdout - -q=quiet, no error msg, just return nonzero exit if key/value missing - keys are like \prefix\key\key\key\value, where prefix is any of: - root HKCR HKEY_CLASSES_ROOT - config HKCC HKEY_CURRENT_CONFIG - user HKCU HKEY_CURRENT_USER - machine HKLM HKEY_LOCAL_MACHINE - users HKU HKEY_USERS - example: \user\software\Microsoft\Clock\iFormat - - -The regtool program allows shell scripts -to access and modify the Windows registry. Note that modifying the -Windows registry is dangerous, and carelessness here can result -in an unusable system. Be careful. - -The -v option means "verbose". For most -commands, this causes additional or lengthier messages to be printed. -Conversely, the -q option supresses error messages, -so you can use the exit status of the program to detect if a key -exists or not (for example). - -The list command lists the subkeys and values -belonging to the given key. The add command adds a -new key. The remove command removes a key. Note -that you may need to remove everything in the key before you may -remove it, but don't rely on this stopping you from accidentally -removing too much. The check command checks to see -if a key exists (the exit code of the program is zero if it does, -nonzero if it does not). - -The set command sets a value within a key. --i means the value is an integer (DWORD). --s means the value is a string. --e means it's an expanding string (it contains -embedded environment variables). -m means it's a -multi-string (list). If you don't specify one of these, it tries to -guess the type based on the value you give. If it looks like a -number, it's a number. If it starts with a percent, it's an expanding -string. If you give multiple values, it's a multi-string. Else, it's -a regular string. - -The unset command removes a value from a key. -The get command gets the value of a value of a key, -and prints it (and nothing else) to stdout. Note: if the value -doesn't exist, an error message is printed and the program returns a -non-zero exit code. If you give -q, it doesn't -print the message but does return the non-zero exit code. - - - - - diff --git a/winsup/w32api/CONTRIBUTIONS b/winsup/w32api/CONTRIBUTIONS deleted file mode 100644 index 1c3df0e14..000000000 --- a/winsup/w32api/CONTRIBUTIONS +++ /dev/null @@ -1,5 +0,0 @@ -2000-10-23 Danny R. Smith - * include/basetsd.h - * include/ras.h - * include/raserror.h - * include/rassapi.h diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog deleted file mode 100644 index 01693efc8..000000000 --- a/winsup/w32api/ChangeLog +++ /dev/null @@ -1,3799 +0,0 @@ -2002-02-28 dannysmith@users.sourceforge.net - - * include/windows.h; Remove test for __W32API_MAJOR_VERSION - when selecting winsock interface. - * include/winsock.h (SOCKET_ADDRESS_LIST): Add structure - and typedefs. Thanks to: 'Lorenzo' . - Expand FIXME comment. - (WSACOMPLETIONTYPE): Add enum. - (WSACOMPLETION): Add structure and typedefs. - (WSANSPIoctl): Add function prototpe and callback typedef. - (SIO_NSP_NOTIFY_CHANGE): Add define. - (sockaddr_storage): Add structure and typedefs. - -2002-02-16 Andriy Palamarchuk - - * include/winuser.h (OIC_*): Add resource constants. - -2002-02-14 Mattia Barbon - - * include/ntsecpkg.h: New file. - * include/schannel.h: New file. - * include/schnlsp.h: New file. - * include/security.h: New file. - * include/sspi.h: New file. - * include/ntsecapi.h (KERB_WRAP_NO_ENCRYPT, - MICROSOFT_KERBEROS_NAME_[AW]): Add missing constants - * include/wincrypt.h (CALG_*, X509_ASN_ENCODING. - PKCS_7_ASN_ENCODING, CERT_*, USAGE_MATCH_TYPE_AND, - USAGE_MATCH_TYPE_OR, szOID_*): Add missing constants - (struct _CRYPTOAPI_BLOB): Add structure and typedefs. - (SSL_EXTRA_CERT_CHAIN_POLICY_PARA,HTTPSPolicyCallbackData, - CERT_CHAIN_POLICY_PARA,CERT_CHAIN_POLICY_STATUS, - CRYPT_ALGORITHM_IDENTIFIER, CRYPT_BIT_BLOB, - CERT_PUBLIC_KEY_INFO, CERT_EXTENSION, CERT_INFO, CERT_CONTEXT, - CTL_USAGE, CERT_ENHKEY_USAGE, CERT_USAGE_MATCH, - CERT_CHAIN_PARA, CERT_CHAIN_FIND_BY_ISSUER_PARA, - CERT_TRUST_STATUS, CRL_ENTRY, CRL_INFO, CRL_CONTEXT, - CERT_REVOCATION_CRL_INFO, CERT_REVOCATION_INFO, - CERT_CHAIN_ELEMENT, CRYPT_ATTRIBUTE, CTL_ENTRY, CTL_INFO, - CTL_CONTEXT, CERT_TRUST_LIST_INFO, CERT_SIMPLE_CHAIN, - CERT_CHAIN_CONTEXT): Add missing structures. - (CertCloseStore, CertGetCertificateChain, - CertVerifyCertificateChainPolicy, CertFreeCertificateChain, - CertNameToStr[AW], CertOpenSystemStore[AW], CertOpenStore, - CertFindCertificateInStore, CertFreeCertificateContext, - CertGetIssuerCertificateFromStore, - CertFindChainInStore): Add missing functions. - (CertNameToStr, CertOpenSystemStore, CERT_FIND_SUBJECT_STR, - CERT_FIND_ISSUER_STR): Add Unicode mappings. - * lib/crypt32.def: New file. - * lib/secur32.def: Add mising stubs. - * lib/test.c: Include new headers. - -2002-02-14 Danny Smith - - * include/windef.h (PROC,FARPROC,NEARPROC): Remove void - parameter. - -2002-01-30 Danny Smith - - * lib/test.c: Include mapi.h. - * include/commctrl.h (TBSTYLE_*): Add missing defines. - Thanks to: "Ron" - -2002-01-30 John Fattaruso - - * include/mapi.h: New file. - * lib/mapi.def: Add missing function stubs. - -2002-01-28 Danny Smith - - * include/winuser.h (GetWindowLongPtr[AW], - SetWindowLongPtr[AW]): Add prototypes for _WIN64. - -2002-01-28 Mattia Barbon - - * include/winuser.h (GWLP_*,DWLP_*): Add missing constants. - (GetWindowLongPtr[AW], SetWindowLongPtr[AW]): Map them to - {Get Set}WindowLong[AW], as in Win32 they are equivalent. - (GetWindowLongPtr, SetWindowLongPtr): Add Unicode mappings. - -2002-01-28 Danny Smith - - * lib/test.c: Include wsnetbs.h. - -2002-01-28 Kai Henningsen - - * include/wsnetbs.h: New file. - -2002-01-25 Earnie Boyd - - * include/winnt.h: Remove merge conflict. - -2002-01-25 Danny Smith - - * include/winnt.h (_TCHAR): Add typedefs. - -2002-01-25 Tim Hughes - - * include/wininet.h (SECURITY_FLAG_IGNORE_*): Add missing - defines. - -2002-01-25 Andriy Palamarchuk - - * include/winsuser.h (ATF_AVAILABLE, SERKF_ACTIVE): - Add defines. - (LPACCESSTIMEOUT): Add typedef. - -2002-01-24 Phillip Susi - - * include/commctrl.h: Add missing HDM_*,HDN_*,LVSICF_* defines. - -2002-01-24 Danny Smith - - * include/commctrl.h (HDITEM[AW]): Rename _HD_ITEM[AW] to - _HDITEM[AW], with parallel changes to typedefs. Use defines for - backward compatability with old names. Update UNICODE mappings. - (HDLAYOUT): Remove struct _HD_LAYOUT_XP. Use new typedefs - for struct _HD_LAYOUT and add defines for backward - compatability with old names. - (NMLISTVIEW): Rename _NM_LISTVIEW to tagNMLISTVIEW, with - parallel chages to typedefs. Add defines for backward - compatability with old names. - (TCHITTESTINFO, IMAGELISTDRAWPARAMS): Fix _WIN32_IE guard. - -2002-01-21 Robert Collins - - * include/winnt.h: Add missing MEM_ defines, and convert existing to - hex for readability. - -2002-01-17 Marcus Geelnard - - * include/winsuser.h (tagKBDLLHOOKSTRUCT): Define struct - and typedefs. - (SPI_SETSCREENSAVERRUNNING): Add define. - (LLKHF_ALTDOWN): Add define. - * include/wingdi.h (PFD_GENERIC_ACCELERATED, - PFD_DEPTH_DONTCARE): Add defines. - -2002-01-17 Danny Smith - - * include/objbase.h (CoGetObject): Add prototype. - -2002-01-14 Timothy J. Wood - - * include/winuser.h (ENUM_CURRENT_SETTINGS, - ENUM_REGISTRY_SETTINGS): Add defines. - -2002-01-14 Danny Smith - - * include/winnt.h (FILE_ATTRIBUTE_ENCRYPTED): Correct constant. - (FILE_ATTRIBUTE_DEVICE): Add define. - - -2002-01-14 Corinna Vinschen - - * include/winnt.h: Add INVALID_FILE_ATTRIBUTES. - -2002-01-11 Danny Smith - - * ChangeLog: correct date in last entry. - -2002-01-11 Timothy J. Wood - - * include/winuser.h (MONITORENUMPROC): Add typedef. - (EnumDisplayMonitors): Add prototype. - * lib/user32.def (EnumDisplayMonitors): Add stub. - -2002-01-11 Ralf Habacker - - * include/ntsecapi.h: Fixed missing void parameter type in some - prototypes. - * include/objbase.h: Ditto. - * include/rapi.h: Ditto. - * include/rpc.h: Ditto. - * include/rpcdce.h: Ditto. - * include/rpcdcep.h: Ditto. - * include/rpcndr.h: Ditto. - * include/rpcnsip.h: Ditto. - * include/rpcproxy.h: Ditto. - * include/windef.h: Ditto. - -2002-01-07 Danny Smith - - * lib/vfw32.def (LIBRARY): Change to MSVFW32.DLL. - -2002-01-04 TAMURA Kent - - * include/wingdi.h (BI_JPEG, BI_PNG, GGO_BEZIER,GGO_UNHINTED, - LAYOUT_RTL, LAYOUT_BITMAPORIENTATIONPRESERVED): Add defines. - * include/winuser.h (HWND_MESSAGE, WS_EX_COMPOSITED, - WS_EX_LAYERED, WS_EX_LAYOUTRTL, WS_EX_NOACTIVATE, - WS_EX_NOINHERITLAYOUT): Add defines. - * include/winnt.h (PF_RDTSC_INSTRUCTION_AVAILABLE, - PF_PAE_ENABLED, MEM_PHYSICAL, MEM_RESET, MEM_TOP_DOWN, - MEM_WRITE_WATCH): Add defines. - - -2002-01-04 Danny Smith - - * include/winbase.h (InitializeCriticalSectionAndSpinCount): - Add prototype. - (SetCriticalSectionSpinCount): Likewise. - -2001-12-30 Guido Serassio - - * include/winsvc.h: Add EnumServiceStatusEx(), - QueryServiceStatusEx() - & RegisterServiceCtrlHandlerEx() - -2001-12-21 Robert Collins - - * include/wingdi.h: Add GetRandomRgn and SYSRGN. - -2001-12-20 Christopher Faylor - - * lib/Makefile.in: Revert inst_installdir definitions to working - versions. - -2001-12-17 Guido Serassio - - * include/winsvc.h: Add ChangeServiceConfig2() & - QueryServiceConfig2() definition - -2001-12-17 Robert Collins - - * include/commctrl.h: New typedefs for HDLAYOUT and LPHDLAYOUT based - on MSDN documentation for XP. - -2001-12-15 Andrew Begel - - *include/winbase.h (CreateHardLink): Correct typo in UNICODE - mappings. - -2001-12-11 Phillip Susi - - * include/commctrl.h (ACS_*): Add new defines. - (PGS_*): Ditto. - (CBES_*): Ditto. - (TBSTYLE_*): Ditto. - (TB_*): Ditto. - (TTS_*): Ditto. - (UDS_HOTTRACK): Add define. - (SBT_TOOLTIPS): Ditto. - (TBS_*): Add new defines. - (HDS_*): Ditto. - (LVS_EX_*) Ditto. - (LVKF_*): Ditto. - (TCM_GETEXTENDEDSTYLE): Add define. - (TVS_NOHSCROLL): Ditto. - (TVIF_INTEGRAL): Ditto. - (DTS_SHORTDATECENTURYFORMAT): Ditto. - (TCS_*): Add new defines. - (CBEM_*): Add defines. - (tagNMITEMACTIVATE): Add structure definition and typedefs. - (tagTVITEMEX[AW]: Ditto. - (tagTVINSERTSTRUCT[AW]: Add union member. - * include/winbase.h (VirtualAllocEx): Add prototype. - * include/winuser.h (SS_*): Add new defines. - -2001-12-07 Earnie Boyd - - * Makefile.in: Increment VERSION. - * include/w32api.h: Ditto. - -2001-12-07 Danny Smith - - * include/setupi.h (SetupDiCreateDeviceInterfaceRegKey[AW], - SetupDiCreateDevRegKey[AW],SetupDiDeleteDeviceInterfaceRegKey, - SetupDiDeleteDevRegKey,SetupDiOpenClassRegKey, - SetupDiOpenClassRegKeyEx[AW],SetupDiOpenDeviceInterfaceRegKey, - SetupDiOpenDevRegKey): Correct function names. - -2001-12-07 Earnie Boyd - - * Makefile.in: Increment VERSION. - * include/w32api.h: Ditto. - -2001-12-07 Danny Smith - - * include/setupi.h (SetupDiCreateDeviceInterfaceRegKey[AW], - SetupDiCreateDevRegKey[AW],SetupDiDeleteDeviceInterfaceRegKey, - SetupDiDeleteDevRegKey,SetupDiOpenClassRegKey, - SetupDiOpenClassRegKeyEx[AW],SetupDiOpenDeviceInterfaceRegKey, - SetupDiOpenDevRegKey): Correct function names. - -2001-12-04 Earnie Boyd - - * include/winuser.h (IDC_STATIC): Don't define. - -2001-12-04 Danny Smith - - Cleanup merge between SourceForge and winsup CVS. - * include/winbase.h (OSVERSIONINFO[AW], OSVERSIONINFOEX[AW]: Remove - definitions. - * include/winnt.h (VER_NT*): Remove duplicate defines. - (VER_SUITE*): Group with VER_PLATFORM*, VER_NT* defines. - -2001-12-03 Earnie Boyd - - * include/accctrl.h: Change \r\n to \n. - -2001-11-30 Danny Smith - - * include/ipexport.h (IP_UNIDIRECTIONAL_ADAPTER_ADDRESS): - Add structure definition. - * include/iptypes.h (IP_PER_ADAPTER_INFO): Ditto. - * include/iphlpapi.h (AddIPAddress,CreateProxyArpEntry, - DeleteIPAddress,DeleteProxyArpEntry,EnableRouter, - FlushIpNetTable,GetAdapterIndex,GetPerAdapterInfo, - GetUniDirectionalAdapterInfo,SendARP,SetAdapterIpAddress, - UnenableRouter) Declare functions. - * lib/iphlpapi.def: Add function names to import lib. - -2001-11-24 Danny Smith - - * include/winnt.h (PACCESS_MASK): Add typedef. - * include/aclapi.h: New file. - * include/acctrl.h: New file. - * lib/advapi32.def: Add missing symbols. - * lib/test.c: Add #include . - -2001-11-23 Danny Smith - - * include/winbase.h (OSVERSIONINFO[AW],VER_PLATFORM_WIN32s, - VER_PLATFORM_WIN32_WINDOWS,VER_PLATFORM_WIN32_NT): Move from - here ... - * include/winnt.h: ... to here. - * include/winbase.h (VerifyVersionInfo[AW]): Add declaration. - * include/winnt.h (OSVERSIONINFOEX[AW]): Add structure definitions - and typedefs. - (VER_NT_WORKSTATION,VER_NT_DOMAIN_CONTROLLER,VER_NT_SERVER): - Add defines. - -2001-11-19 Pierre Muller - - * w32api/include/winnt.h: prepare SSE register support. - (CONTEXT_EXTENDED_REGISTERS): Add new define. - (MAXIMUM_SUPPORTED_EXTENSION): New define. - (struct CONTEXT): ExtendedRegisters field added. - -2001-11-16 Danny Smith - - * include/winuser.h (tagALTTABINFO, tagCOMBOBOXINFO, - tagCURSORINFO, tagMENUBARINFO, tagMENUINFO, tagMONITORINFO - tagSCROLLBARINFO, tagTITLEBARINFO. tagWINDOWINFO, - tagLASTINPUTINFO ): Define new structures. - (EndMenu, GetAltTabInfo[AW],GetComboBoxInfo,GetCursorInfo, - GetLastInputInfo, GetListBoxInfo, GetMenuBarInfo, - GetMonitorInfo[AW], GetScrollBarInfo, GetTitleBarInfo, - GetWindowInfo, GetWindowModuleFileName[AW],GetMenuInfo - SetMenuInfo): Add new prototypes. - * lib/user32.def: Add import stubs for above functions. - - * include/winuser.h (IDC_STATIC): Protect against prior - definition. - -2001-11-12 Corinna Vinschen - - * include/winbase.h (OSVERSIONINFOEX): Add definition. - * include/winnt.h: Add VER_NT_* and VER_SUITE_* defines. - -2001-11-10 Robert Collins - - * include/winnt.h: Add Danny Smith's text comment about gcc compiler - warnings with _AUTHORITY #defines. - -2001-11-09 Robert Collins - - * include/winnt.h (GetCurrentFiber): Create a prototype before the - implementation; - (GetFiberData): Ditto. - -2001-11-09 Robert Collins - - * include/winnt.h: Backout last change. - -2001-11-08 Robert Collins - - * include/winnt.h: Define *_SID_AUTHORITY appropriately, - GetCurrentFiber: Create a prototype before the implementation; - GetFiberData: Ditto. - -2001-11-06 Danny Smith - - * include/winuser.h (IDC_STATIC): Add define. - Thanks to: Benoit Laniel. - -2001-11-05 Danny Smith - - * include/commdlg.h: Include rather than local - definition of LPUKNOWN. - * include/rpcproxy.h: Don't include if ndef CINTERFACE. - Emit warning. - -2001-11-05 Mattia Barbon - - * include/windef.h (DECLSPEC_NORTEURN): Add an empty version - for Watcom. - (DECLARE_STDCALL_P): Use it to add __stdcall decoration for - functions of the form 'type * function(...)' in a way compatible - with both Watcom and GCC. - * include/rpcdcep.h (I_RpcAllocate): Use DECLARE_STDCALL_P. - * include/rpcproxy.h (CInterfaceProxyVtbl): Do not declare - zero-sized arrays for Watcom. Mark as __extension for __GNUC__. - * include/windows.h: Watcom can use anonymous structs/unions. - * include/winnt.h: Watcom can use 64 bit ints. - (GetCurrentFiber): Add another inline definition using - Watcom inline assembly syntax. - (GetFiberData): Likewise. - * include/winsock.h (inet_ntoa): Use DECLARE_STDCALL_P. - (gethostbyname): Likewise. - (gethostbyaddr}: Likewise. - (getservbyport}: Likewise. - (getservbyname}: Likewise. - (getprotobynumber}: Likewise. - (getprotobyname}: Likewise. - * include/winsock2.h (inet_ntoa): Use DECLARE_STDCALL_P. - (gethostbyname}: Likewise. - (gethostbyaddr}: Likewise. - (getservbyport}: Likewise. - (getservbyname}: Likewise. - (getprotobynumber}: Likewise. - (getprotobyname}: Likewise. - * lib/diinut.c: Correction for Watcom. - * lib/kernel32.c (GetCurrentFiber): Add another definition - using Watcom inline assembly syntax. - (GetFiberData): Likewise. - * lib/scrnsave.c (WinMain): Add break after default: - clause. - -2001-11-04 "stefan" - - * include/winnt.h (GetCurrentFiber): Add prototype. - (GetFiberData): Likewise. - -2001-11-04 Christopher Faylor - - * lib/Makefile.in: Add .NOTPARALLEL target since dlltool cannot run in - parallel invocations. - -2001-11-03 Christopher Faylor - - * lib/scrnsave.c (WinMain): Trivial change to avoid a compiler warning. - -2001-11-01 Danny Smith - - * include/basetyps.h (DECLARE_INTERFACE): Don't add - __attribute__((com_interface)) for __GNUC__ >= 3. - -2001-11-01 Danny Smith - - * include/commdlg.h (PRINTPAGERANGE): Add structure - definition. - (PRINTDLGEX[AW]): Likewise. - (PrintDlgEx[AW]): Add function declaration. - * lib/comdlg32.def (PrintDlgEx[AW]): Add function stubs. - * ChangeLog: Fix typo in last entry. - -2001-11-01 TAMURA Kent - - * include/objbase.h (CoGetClassObject): Change third parameter - to COSERVERINFO*. - -2001-10-30 Danny Smith - - * include/winuser.h (MOUSEEVENTF_WHEEL): Define. - Thanks to: Kim Saunders. - * include/oleauto.h: Define VARIANT* flags for VariantChangeType. - Thanks to: Pat Thoyts. - * include/winnt.h: Change C++ style comment to C style. - * include/shlobj.h: Ditto. - * include/objbase.h (enum tagCOINIT): Remove comma at end of - list. - * include/oledlg.h (enum tagOLEUIPASTEFLAG): Ditto. - * include/oleidl.h (enum tagDROPEFFECT): Mark as __extension__ - (enum not limited to range of int). - * include/oaidl.h (struct tagVARIANT): Mark as __extension__ - (struct with no named members), ifndef NONAMELESSUNION. - -2001-10-30 Danny Smith - - * include/winuser.h (CREATESTRUCT): UNICODE it. - (CBT_CREATEWND): Likewise. - -2001-10-20 Corinna Vinschen - - * include/winnetwk.h (WNetGetResourceInformationA): Add declaration. - (WNetGetResourceInformationW): Ditto. - (WNetGetResourceInformation): Add define. - -2001-10-12 Pedro A Aranda - - * include/winuser.h (POINTSTOPOINT): Use explicit casts - before extracting words. - -2001-10-04 Danny Smith - - * include/winnt.h: Add PF_* defines. - Thanks to: "Wizord" - -2001-09-18 Danny Smith - - * include/winnt.h (_[U]LARGE_INTEGER): Mark nameless structure - field as _ANONYMOUS_STRUCT. - * include/setupapi.h (SP_DEVINSTALL_PARAMS): Add missing typedef - for UNICODE. - * include/ipexport.h (icmp_echo_reply): Remove extra ';'. - * lib/makefile.in: Add -pedantic switch to TEST_OPTIONS for header - test. - -2001-09-17 Mattia Barbon - - * include/commctrl.h: Add some ListView constants. - -2001-09-17 Earnie Boyd - - * lib/Makefile.in (inst_includedir): Add FIXME and remove the usr/ - portion of the directory from the install. - (inst_libdir): Ditto. - * Makefile.in (VERSION): Increment. - * include/w32api.h: Increment version. - -2001-09-13 Earnie Boyd - - * lib/Makefile.in (inst_includedir): Change to always use w32api - subdirectory for target == cygwin. - (inst_libdir): Ditto. - -2001-09-13 Earnie Boyd - - * lib/Makefile.in (config_prefix): New variable. - (inst_includedir): Manipulate special value only if target == cygwin - and build == target and prefix != config_prefix. - (inst_libdir): Ditto. - -2001-09-12 Earnie Boyd - - * Makefile.in (TARFLAGS): New variable. - (TARFILEEXT): Ditto. - -2001-09-12 Earnie Boyd - - * Makefile.in: Increment version. - * include/w32api.h: Ditto. - * lib/Makefile.in: Add usr/ to install directory special for cygwin. - -2001-09-11 Danny Smith - - * include/winnt.h (_[U]LARGE_INTEGER): Protect nameless struct with - !defined(NONAMELESSUNION), rather than defined(_ANONYMOUS_STRUCT). - (_REPARSE_DATA_BUFFER): Name union field DUMMYUNIONNAME. - -2001-09-05 Danny Smith - - * include/wininet.h (InternetAutodial): Add prototype. - (InternetAutodialHangup): Ditto. - (InternetDial): Ditto. - (InternetGetConnectedState): Ditto. - (InternetGoOnline): Ditto. - (InternetHangUp): Ditto. - (InternetSetDialState): Ditto. - Add associated INTERNET_* auto dial flags. - Guard typedefs and prototypes with #ifndef RC_INVOKED. - -2001-09-04 Earnie Boyd - - * lib/Makefile.in: Move the setting of variable libdir to after the - setting of exec_prefix since the value of libdir is dependant on it. - -Tue Sep 4 14:15:59 2001 Christopher Faylor - - * include/winbase.h: Add missing closing parentheses to - InterlockedExchangePointer declaration. - -2001-09-01 Danny Smith - - * include/shlobj.h (CFSTR_* ): Add new defines. - Thanks to: "Ron" . - Unicode them. - -Sat Sep 1 10:40:37 2001 Christopher Faylor - - * include/winnt.h: Use defined(_ANONYMOUS_STRUCT) to determine if - anonymous structs are available rather than just testing preprocessor - variable directly. - -Fri Aug 31 21:46:00 2001 Corinna Vinschen - - * include/winnt.h: Change definition of `SYSTEM_LUID' to comply - with new `LARGE_INTEGER' definition. - -Thu Aug 30 09:35:51 2001 Christopher Faylor - - * include/winsock2.h: Remove "extra token" after #endif. - -2001-08-31 Earnie Boyd - - * config.guess: Remove the \r from the end of line. - * config.sub: Ditto. - -2001-08-30 Danny Smith - - * include/winnt.h: Allow anonymous struct in [U]LARGE_INTEGER - if __cplusplus as well as if _ANONYMOUS_STRUCT. - -2001-08-29 Earnie Boyd - - * config.guess: Add the MSYS system. - * config.sub: Ditto. - * include/winsock.h: Add the __INSIDE_MSYS__ protections. - * incldue/winsock2.h: Ditto. - -2001-08-29 Eric Kohl - - * include/winnt.h: Allow anonymous (Xxx.LowPart) or - non-anonymous (Xxx.u.LowPart) access to HighPart and - LowPart of a LARGE_INTEGER or ULARGE_INTEGER. - -2001-08-24 TAMURA Kent - - * include/wingdi.h (HANGUL_CHARSET): Add define. - -2001-08-21 Earnie Boyd - - * include/setupapi.h: Formatting. - -2001-08-21 Earnie Boyd - - * include/shlobj.h: Remove \r from the line endings. - -2001-08-21 Danny Smith - - * include/setupapi.h : New file. - * lib/setupapi.def:New file. - * lib/test.c: Include setupapi.h. - -2001-08-21 Danny Smith - * include/winioctl.h (_DISK_PERFORMANCE): Correct typo. - -2001-08-21 Mattia Barbon - - * include/richedit.h (ENLINK): Add structure definition. - (EM_AUTOURLDETECT, EN_LINK, ENM_LINK): Add defines. - -2001-08-21 Danny Smith - - * include/shlobj.h (CMIC_*): Remove duplicate defines. - (CMDSTR_*): Remove duplicates; UNICODE string constants. - (GCS_*): Make UNICODE. - (CSIDL_*): Add more defines. - * include/winioctl.h (_MEDIA_TYPE): Add pointer typedef. - (_DISK_GEOMETRY): Ditto. - (_DISK_PERFORMANCE): Ditto. - * include/winbase.h (HasOverlappedIoCompleted): Add macro. - -2001-08-15 Danny Smith - - * include/winnt.h: Move CHAR, SHORT and LONG typedefs outside - of block protected by #ifndef VOID. - (This reverts 1998-12-01 Anders Norlander change.) - * include/odbcinst.h: End file with newline. - * include/raserror.h: Ditto. - -2001-08-15 Danny Smith - - * include/winsock2.h (#include - - * include/oaidl.h (tagVARIANT): Mark anonymous structs and unions - as __extension__. - (tagTYPEDESC): Ditto. - (_wireBRECORD): Add structure definition. - (_wireSAFEARR_BRECORD): Ditto. - (_wireSAFEARR_HAVEIID): Ditto. - (_wireSAFEARRAY_UNION.u): Add fields SAFEARR_BRECORD RecordStr, - SAFEARR_HAVEIID HaveIidStr. - (tagVariant): Add fields _VARIANT_BOOL bool,*pbool. - (_wireVARIANT): Change field parray to type wirePSAFEARRAY, - pparray to wirePSAFEARRAY*. - (_wireVARIANT): Add field wireBRECORD brecVal. - (wireVARIANT): Change typedef to struct _wireVariant*. - (IRecordInfo): Add interface definition. - (LPRECORDINFO): Add typedef for IRecordInfo*. - (IID_IRecordInfo): Add forward decalaration. - -2001-08-15 Danny Smith - - * include/lmcons.h: Guard CNLEN and UNCLEN against prior definition. - * include/nddeapi.h: Likewise. - -2001-08-10 Danny Smith - - * lib/test.c (Win32_Winsock): Replace with __USE_W32_SOCKETS. - Add more includes of w32api headers. - -2001-08-10 Danny Smith - - * include/winnt.h (GetCurrentFiber): Change __inline to __inline__. - Swap asm code with that of GetFiberData. - (GetFiberData): Ditto. - * lib/kernel32.c: New file, containing library versions of - GetCurrentFiber and GetFiberData. - * lib/makefile.in: Add kernel32.o as static object to libkernal32.a. - -2001-08-08 Danny Smith - - * include/winuser.h (GET_WHEEL_DELTA_WPARAM): Add macro. - Thanks to: Harold Hunt . - -2001-08-08 Danny Smith - - * lib/oleaut32.def: Regenerate. - -2001-08-04 Danny Smith - - * include/wtypes.h (DECIMAL_SETZERO): Correct typo. - -2001-08-02 Danny Smith - - Apply Dmitry Bely patch 437834 (with additions). - * include/oleidl.h (ISupportErrorInfo, ICreateInfo): Move from here - * include/oaidl.h: ... to here. - * include/oaidl.h ICreateErrorInfo): Add interface definition. - (IErrorInfo::GetGUID): Change arg to GUID. - (LPSUPPORTERRORINFO): Add typedef. - (IID_ISupportErrorInfo): Change forward decl. of type to IID. - -2001-08-02 Danny Smith - - * include/winsock2.h (WSAGET* and WSAMAKE*): Remove duplicate - defines. - -2001-07-30 Danny Smith - - * include/commctrl.h (TreeView_SetIndent): Correct typo. - -2001-07-30 Danny Smith - - * include/commctrl.h (TBSTYPE_FLAT): Remove define. - Thanks to: Jason Craig - -2001-07-30 Mattia Barbon - - * include/commctrl.h (TBBUTTONINFO[AW]): Add struct definitions, - and UNICODE mappings, if _WIN32_IE >= 0x400. - (TBIF_* and TB_SETBUTTONINFO): Add defines, if _WIN32_IE >= 0x400. - (CDIS_*,CDDS_*,CDRF_*) : Add defines. - (tagNMCUSTOMDRAWINFO): Add struct definition and typedefs. - (tagNMLVCUSTOMDRAW): Likewise. - (tagNMTVCUSTOMDRAW): Likewise. - (tagNMLVCACHEHINT): Likewise. - -2001-07-06 Danny Smith - - * include/basetsd.h (#include <_mingw.h>): Remove. - (__int64): Define. - -2001-06-28 Danny Smith - - * include/wingdi.h (AC_SRC_OVER): Add define. - (struct _BLENDFUNCTION): Add. - -2001-06-28 Danny Smith - - * include/shlobj.h: Add BIF_* defines. - -2001-06-27 Danny Smith - - * include/winerror.h (E_PENDING): Add error code define. - -2001-06-27 Danny Smith - - * include/basetsd.h (#include <_mingw.h>): Add directive. - -2001-06-25 Danny Smith - - * include/winbase.h (InterlockedCompareExchange): Change args - and return value from PVOID to LONG. - (InterlockedExchange): Change first arg to LPLONG. - (InterlockedCompareExchangePointer): New macro. - (InterlockedExchangePointer): New macro. - -2001-06-19 Danny Smith - - * lib/kernel32.def: Add LanguageGroup and UILanguage symbols. - Thanks to Kevin Chase . - -2001.06.11 TAMURA Kent - - * objidl.h (IMalloc::ReAlloc()): Correct declaration. - (IMalloc::Free()): Ditto. - -2001-06-11 Danny Smith - - * include/shlobj.h (REGSTR_PATH_EXPLORER): Unicode it. - (REGSTR_PATH_SPECIAL_FOLDERS): Ditto. - * include/regstr.h (REGSTR_PATH_EXPLORER): Add #ifndef guard. - -2001-06-11 Mattia Barbon - - * include/shlobj.h (struct _browseinfo): UNICODE it. - (SHBrowseForFolder): Ditto. - (SHGetPathFromIDList): Ditto. - -2001.06.11 Earnie Boyd - - * include/basetsd.h: RC_INVOKED protection and realignment. - Thanks to: Colin Peters - -2001.06.06 Earnie Boyd - - * Makefile.in (bindist): Reassign value of exec_prefix on make command - line. - -Tue May 22 18:58:27 2001 Christopher Faylor - - * lib/mapi32.def: Add MAPISendMail. - -2001-05-22 Earnie Boyd - - * include/w32api.h: Update version. - * Makefile.in: Ditto. - -Thu May 17 23:12:00 2001 Corinna Vinschen - - * include/winnt.h: Define SE_GROUP_LOGON_ID as unsigned to avoid - compiler warnings. - -Thu May 17 17:12:00 2001 Corinna Vinschen - - * include/ntdef.h: Protect definition of OBJECT_ATTRIBUTES against - previous definition in include/ntsecapi.h. - * include/ntsecapi.h: Vice versa. - -Wed May 16 17:59:00 2001 Corinna Vinschen - - * include/winnt.h: Add defines for group attributes. - Add define for SYSTEM_LUID. - Add missing types `PTOKEN_DEFAULT_DACL', `PTOKEN_OWNER' and - `PTOKEN_PRIMARY_GROUP'. - -Tue Apr 24 23:51:07 2001 Christopher Faylor - - * lib/Makefile.in: Install libraries in /usr/lib/w32api when building - for cygwin. - -Tue Apr 24 16:18:42 2001 Christopher Faylor - - * include/winsock2.h: Protect one *more* newlib defines when compiling - cygwin. - -Mon Apr 23 23:41:36 2001 Christopher Faylor - - * include/winsock2.h: Protect some more newlib defines when compiling - cygwin. - -Mon Apr 23 13:17:32 2001 Christopher Faylor - - * include/winsock.h: Protect some more newlib defines when compiling - cygwin. - -2001-04-17 Egor Duda - - * include/windows.h: Define _ANONYMOUS_STRUCT and _ANONYMOUS_UNION - as __extenstion__ when appropriate. - * include/mmsystem.h: Mark anonymous structs and unions as - __extension__ to prevent compiler warning when invoked with - -pedantic - * include/oaidl.h: Ditto. - * include/objidl.h: Ditto. - * include/olectl.h: Ditto. - * include/prsht.h: Ditto. - * include/shlobj.h: Ditto. - * include/winbase.h: Ditto. - * include/winnt.h: Ditto. - * include/wtypes.h: Ditto. - -2001-04-11 Danny Smith - - * include/windows.h (#include ): Include - instead if (_WIN32_WINNT >= 0x0400)&&(__W32API_MAJOR_VERSION > 0). - -2001-04-11 Danny Smith - - * include/winuser.h (WM_IME_*): Remove defines (now in imm.h). - -2001-04-11 John Fortin - - * include/windef.h (*PBOOL): Unprotect from XFree86Server. - (*LPBOOL): Ditto. - -Sun Apr 8 20:48:01 2001 Christopher Faylor - - * include/winnt.h (GetCurrentFiber): Make "external __inline" or asm - code will be included in every module which includes this header. - (GetFiberData): Ditto. - -2001-04-08 Earnie Boyd - - * include/winnt.h (GetCurrentFiber): Fix typo. - -2001-04-08 Earnie Boyd - - * include/shellapi.h: (CommandLineToArgvW): Add WINAPI declaration. - * include/winbase.h: (GetFileAttributesExW): Fix typo. - * include/wingdi.h: (StartDocA): Change LPDOCINFOA to DOCINFOA*. - (StartDocB): Chage LNPDOCINFOB to DOCINFOB*. - Thanks To: Kent Tamura - - * include/winnt.h: (GetFiberData): Add __inline assembler coding. - (GetCurrentFiber): Ditto. - Thanks to: Andy Younger - - * include/windef.h: (HMONITOR_DECLARED): New definition to stop - DirectX 8 from complaining. - Thanks to: Sigbjørn Lund Olsen - -2001-04-08 Michael Soderstrom - - * include/commctrl.h Updated TreeView and ListView defines and macros. - -2001-04-08 Danny Smith - - * include/winuser.h (MB_SERVICE_NOTIFICATION): Correct value for NT4 - and above. - -2001-03-30 Earnie Boyd - * include/winuser.h (VK_KANA): New definition. - Thanks to: "Harold Hunt" - -2001-03-29 Earnie Boyd - -2001-03-20 Danny Smith - - * include/winsock.h (_SYS_TYPES_H macro guard for int types): Remove; - use only _BSDTYPES_DEFINED macro now defined in newlib sys/types.h. - (SYS_TYPES_H macro guard for fd_set): Replace with_SYS_TYPES_FD_SET - macro now defined in newlib sys/types.h. Emit warning if defined. - * include/winsock2.h: Ditto. - * include/windows.h (Win32_Winsock): Replace with new macros - __USE_W32_SOCKETS and warn of deprecation. - -2001-03-13 Earnie Boyd - -2001-03-12 Earnie Boyd - -2001-03-01 Earnie Boyd - - * include/wingdi.h (struct _DOCINFO[AW]): UNICODE it. - (StartDoc[AW]): Use UNICODE'd LPDOCINFO[AW] - * include/winuser.h (struct tagMOUSEKEYS): Define new structure. - * include/winerror.h (NTE_*): Add CryptoAPI error codes. - -2001-02-21 Danny Smith - - * include/mswsock.h: New file. - * include/ws2tcpip.h: New file. - * include/winsock.h (IPPROTO_IGMP): New define. - (IPPROTO_GGP): Correct value. - (SO_* macros): Remove mswsock defines. - (TCP_BSDURGENT): Likewise. - (IP_* macros): Add comment warning of WinSock2 incompatibility - (WSARecvEx): Remove mswsock prototype. - (TransmitFile): Likewise. - (AcceptEx): Likewise. - (GetAcceptExSockaddrs): Likewise. - (struct _TRANSMIT_FILE_BUFFERS): Remove mswsock definition. - (#include ): Add directive and explanatory comment - * include/winsock2.h (header guard): add guard for _WINSOCK_H - (_WINSOCK_H): Define to prevent later inclusion of winsock.h - (#include ): Replace directive with winsock.h file content - The following changes apply to the merged file: - (FD_SET): Keep winsock2.h definition, delete winsock.h definition - (SOMAXCONN): Likewise - (#include ): Move - don't include until LPSOCKADDR defined - (IP_* macros): Delete WinSock1 definitions (WinSock2 definitions now - in ws2tcpip.h) - (struct ip_mreq): Delete (now defined in ws2tcpip.h for WinSock2) - (FD_*_BIT and FD_* defines): Place together and extend to - FD_MAX_EVENTS 10 - (AF* defines): Extend to AF_MAX 10 - (WSAIsBlocking): #if 0 out prototype (N/A in WinSock2) - (WSAUnhookBlockingHook): Likewise. - (WSASetBlockingHook): Likewise. - (WSACancelBlockingCall): Likewise. - (WSAEINPROGRESS): Comment as not raised in WinSock2. - (#include ): Delete directive inherited from winsock.h - (WSA_QOS* defines): Add QualityOfService error codes. - (SIO_* defines): Add new macros - * include/ipexport.h (IP_STATUS flags): Add definitions. - (IP_FLAG_DF): Likewise. - (IP_OPT_* ): Likewise. - (struct ip_option_information): Likewise. - (struct icmp_echo_reply): Likewise. - -2001-02-21 Danny Smith - - * include/commctrl.h: Revert TEXT change. - * include/lmalert.h: Ditto. - * include/lmcons.h: Ditto. - * include/lmsname.h: Ditto. - * include/lmsvc.h: Ditto. - * include/ntsecapi.h: Ditto. - * include/oledlg.h: Ditto. - * include/ras.h: Ditto. - * include/regstr.h: Ditto. - * include/richedit.h: Ditto. - * include/wininet.h: Ditto. - * include/winnt.h: Ditto. - -2001-02-15 Earnie Boyd - - * include/commctrl.h: Use _TEXT() instead of TEXT() throughout. - * include/lmalert.h: Ditto. - * include/lmcons.h: Ditto. - * include/lmsname.h: Ditto. - * include/lmsvc.h: Ditto. - * include/ntsecapi.h: Ditto. - * include/oledlg.h: Ditto. - * include/ras.h: Ditto. - * include/regstr.h: Ditto. - * include/richedit.h: Ditto. - * include/wininet.h: Ditto. - * include/w32api.h: New File. - -Tue Feb 13 22:38:00 2000 Corinna Vinschen - - * include/shlobj.h: Add missing SLR_* flags. - -2001-02-12: Earnie Boyd - - * lib/Makefile.in: (host_alias): Add variable. - (host_build): Ditto: - (xinstall): Removed - (xinstall-libraries): Ditto. - (xinstall-headers): Ditto. - (xuninstall): Ditto. - (xuninstall-libraries): Ditto. - (xuninstall-headers): Ditto. - * Makefile.in: (host_alias): Add variable. - (build_alias): Ditto. - -Fri Feb 2 13:08:09 2001 Earnie Boyd - - * include/winnt.h: (__TEXT): Add private macro. - (_TEXT): Modify definition to use __TEXT. - (_T): Ditto. - This change allows the passing of a MACRO as an argument and have that - MACRO resolved first. - Thanks to: Eric PAIRE - -Wed Jan 31 17:35:59 2001 Earnie Boyd - - * Makefile.in: Increment VERSION to 0.5 - * include/winnt.h: Change TEXT to _TEXT throughout. - (SID_RELEASE): Define. - Thanks to: Eric PAIRE - -Tue Jan 30 10:42:28 2001 Earnie Boyd - - * Apply Phil Krylov patches. - 2001-01-19 Phil Krylov - * include/commctrl.h: (HDI_IMAGE) New definition. - (HDI_DI_SETITEM) Ditto. - (HDI_ORDER) Ditto. - (HDI_FILTER) Ditto. - (HDF_BITMAP_ON_RIGHT) Ditto. - (HDF_IMAGE) Ditto. - (HDM_SETORDERARRAY) Ditto. - (Header_SetOrderArray) Ditto. - (ICC_BAR_CLASSES) Ditto. - (struct _HD_ITEMA) Change definition. - (struct _HD_ITEMW) Ditto. - (struct tagINITCOMMONCONTROLSEX) Enclose in _WIN32_IE braces. - (InitCommonControlsEx()) Ditto. - 2001-01-23 Phil Krylov - * include/richedit.h: Many Richedit 2.0 definitions. - -Tue Jan 30 09:56:50 2001 Earnie Boyd - - * include/winuser.h: (IDC_HAND) New resource identifier. - Thanks to: Mark Jordon - -Tue Jan 30 09:35:30 2001 Earnie Boyd - - * include/iptypes.h: Include for time_t declaration. - Fix typo's. - -Tue Jan 30 08:30:33 2001 Earnie Boyd - - * include/objidl.h: (GetClassID): Argument needs to be a pointer. - (GetUnmarshalClass): CLSID argument needs to be a pointer. - Thanks To: - -Tue Jan 30 07:52:54 2001 Earnie Boyd - - * Apply Danny Smith patch 102386 - 2000-11-15 Danny Smith - * lib/rasapi32.def: add symbols available in NT4 and W2k - -Sun Jan 28 12:47:31 2001 Earnie Boyd - - * Apply Danny Smith patch 102382 - 2000-11-15 Danny Smith - * lib/mswsock.def: remove leading underscores from symbol names - -Sun Jan 28 11:16:39 2001 Earnie Boyd - - * Apply Danny Smith patch 102446 - 2000-11-20 Danny Smith - * include/sql.h (ODBCVER): change default to 0x0351. - (SQLSetScrollOptions): non-core function, move prototype to sqlext.h. - (SQLColAttributes): likewise. - (SQLBindParam): add prototype for ODBC 3.x function. - (SQLCloseCursor): likewise. - (SQLColAttribute): likewise. - (SQLCopyDesc):likewise. - (SQLEndTran): likewise. - (SQLFetchScroll): likewise. - (SQLGetConnectAttr): likewise. - (SQLGetDescField): likewise. - (SQLGetDescRec): likewise. - (SQLGetDiagField): likewise. - (SQLGetDiagRec): likewise. - (SQLGetEnvAttr): likewise. - (SQLGetStmtAttr): likewise. - (SQLSetConnectAttr): likewise. - (SQLSetDescField):likewise. - (SQLSetDescRec): likewise. - (SQLSetEnvAttr): likewise. - (SQLSetStmtAttr): likewise. - (SQLINTENGER and SQLUINTEGER): replace with SQLLEN and SQLULEN for - _WIN64 compatability; - (SQL_ACCESS_MODE): Move define to sqlext.h (used in non-core functions). - (SQL_ACTIVE_CONNECTIONS): likewise. - (SQL_ACTIVE_STATEMENTS): likewise. - (SQL_ALL_EXCEPT_LIKE): likewise. - (SQL_API_ALL_FUNCTIONS): likewise. - (SQL_API_LOADBYORDINAL): likewise. - (SQL_API_SQLBINDPARAMETER): likewise. - (SQL_API_SQLBROWSECONNECT): likewise. - (SQL_API_SQLCOLATTRIBUTES): likewise. - (SQL_API_SQLCOLUMNPRIVILEGES): likewise. - (SQL_API_SQLDESCRIBEPARAM): likewise. - (SQL_API_SQLDRIVERCONNECT): likewise. - (SQL_API_SQLDRIVERS): likewise. - (SQL_API_SQLEXTENDEDFETCH): likewise. - (SQL_API_SQLFOREIGNKEYS): likewise. - (SQL_API_SQLMORERESULTS): likewise. - (SQL_API_SQLNATIVESQL): likewise. - (SQL_API_SQLNUMPARAMS): likewise. - (SQL_API_SQLPARAMOPTIONS): likewise. - (SQL_API_SQLPRIMARYKEYS): likewise. - (SQL_API_SQLPROCEDURECOLUMNS): likewise. - (SQL_API_SQLPROCEDURES): likewise. - (SQL_API_SQLSETPOS): likewise. - (SQL_API_SQLSETSCROLLOPTIONS): likewise. - (SQL_API_SQLTABLEPRIVILEGES): likewise. - (SQL_ASYNC_ENABLE): likewise. - (SQL_ASYNC_ENABLE_DEFAULT): likewise. - (SQL_ASYNC_ENABLE_OFF): likewise. - (SQL_ASYNC_ENABLE_ON): likewise. - (SQL_ATTR_READONLY): likewise. - (SQL_ATTR_READWRITE_UNKNOWN): likewise. - (SQL_ATTR_WRITE): likewise. - (SQL_AUTOCOMMIT): likewise. - (SQL_AUTOCOMMIT_DEFAULT): likewise. - (SQL_AUTOCOMMIT_OFF): likewise. - (SQL_AUTOCOMMIT_ON): likewise. - (SQL_BEST_ROWID): likewise. - (SQL_BIGINT): likewise. - (SQL_BINARY): likewise. - (SQL_BIND_BY_COLUMN): likewise. - (SQL_BIND_TYPE): likewise. - (SQL_BIND_TYPE_DEFAULT): likewise. - (SQL_BIT): likewise. - (SQL_BOOKMARK_PERSISTENCE): likewise. - (SQL_BP_CLOSE): likewise. - (SQL_BP_DELETE): likewise. - (SQL_BP_DROP): likewise. - (SQL_BP_OTHER_HSTMT): likewise. - (SQL_BP_SCROLL): likewise. - (SQL_BP_TRANSACTION): likewise. - (SQL_BP_UPDATE): likewise. - (SQL_C_BINARY): likewise. - (SQL_C_BIT): likewise. - (SQL_C_BOOKMARK): likewise. - (SQL_C_CHAR): likewise. - (SQL_C_DATE): likewise. - (SQL_C_DEFAULT): likewise. - (SQL_C_DOUBLE): likewise. - (SQL_C_FLOAT): likewise. - (SQL_C_LONG): likewise. - (SQL_C_SHORT): likewise. - (SQL_C_SLONG): likewise. - (SQL_C_SSHORT): likewise. - (SQL_C_STINYINT): likewise. - (SQL_C_TIME): likewise. - (SQL_C_TIMESTAMP): likewise. - (SQL_C_TINYINT): likewise. - (SQL_C_ULONG): likewise. - (SQL_C_USHORT): likewise. - (SQL_C_UTINYINT): likewise. - (SQL_CB_NON_NULL): likewise. - (SQL_CB_NULL): likewise. - (SQL_CC_CLOSE): likewise. - (SQL_CC_DELETE): likewise. - (SQL_CC_PRESERVE): likewise. - (SQL_CN_ANY): likewise. - (SQL_CN_DIFFERENT): likewise. - (SQL_CN_NONE): likewise. - (SQL_COLATT_OPT_MAX): likewise. - (SQL_COLATT_OPT_MIN): likewise. - (SQL_COLUMN_ALIAS): likewise. - (SQL_COLUMN_AUTO_INCREMENT): likewise. - (SQL_COLUMN_CASE_SENSITIVE): likewise. - (SQL_COLUMN_COUNT): likewise. - (SQL_COLUMN_DISPLAY_SIZE): likewise. - (SQL_COLUMN_DRIVER_START): likewise. - (SQL_COLUMN_LABEL): likewise. - (SQL_COLUMN_LENGTH): likewise. - (SQL_COLUMN_MONEY): likewise. - (SQL_COLUMN_NAME): likewise. - (SQL_COLUMN_NULLABLE): likewise. - (SQL_COLUMN_OWNER_NAME): likewise. - (SQL_COLUMN_PRECISION): likewise. - (SQL_COLUMN_QUALIFIER_NAME): likewise. - (SQL_COLUMN_SCALE): likewise. - (SQL_COLUMN_SEARCHABLE): likewise. - (SQL_COLUMN_TABLE_NAME): likewise. - (SQL_COLUMN_TYPE): likewise. - (SQL_COLUMN_TYPE_NAME): likewise. - (SQL_COLUMN_UNSIGNED): likewise. - (SQL_COLUMN_UPDATABLE): likewise. - (SQL_CONCAT_NULL_BEHAVIOR): likewise. - (SQL_CONCUR_DEFAULT): likewise. - (SQL_CONCUR_LOCK): likewise. - (SQL_CONCUR_READ_ONLY): likewise. - (SQL_CONCUR_ROWVER): likewise. - (SQL_CONCUR_TIMESTAMP): likewise. - (SQL_CONCUR_VALUES): likewise. - (SQL_CONCURRENCY): likewise. - (SQL_CONN_OPT_MAX): likewise. - (SQL_CONN_OPT_MIN): likewise. - (SQL_CONNECT_OPT_DRVR_START): likewise. - (SQL_CONVERT_BIGINT): likewise. - (SQL_CONVERT_BINARY): likewise. - (SQL_CONVERT_BIT): likewise. - (SQL_CONVERT_CHAR): likewise. - (SQL_CONVERT_DATE): likewise. - (SQL_CONVERT_DECIMAL): likewise. - (SQL_CONVERT_DOUBLE): likewise. - (SQL_CONVERT_FLOAT): likewise. - (SQL_CONVERT_FUNCTIONS): likewise. - (SQL_CONVERT_INTEGER): likewise. - (SQL_CONVERT_LONGVARBINARY): likewise. - (SQL_CONVERT_LONGVARCHAR): likewise. - (SQL_CONVERT_NUMERIC): likewise. - (SQL_CONVERT_REAL): likewise. - (SQL_CONVERT_SMALLINT): likewise. - (SQL_CONVERT_TIME): likewise. - (SQL_CONVERT_TIMESTAMP): likewise. - (SQL_CONVERT_TINYINT): likewise. - (SQL_CONVERT_VARBINARY): likewise. - (SQL_CONVERT_VARCHAR): likewise. - (SQL_CORRELATION_NAME): likewise. - (SQL_CR_CLOSE): likewise. - (SQL_CR_DELETE): likewise. - (SQL_CR_PRESERVE): likewise. - (SQL_CUR_DEFAULT): likewise. - (SQL_CUR_USE_DRIVER): likewise. - (SQL_CUR_USE_IF_NEEDED): likewise. - (SQL_CUR_USE_ODBC): likewise. - (SQL_CURRENT_QUALIFIER): likewise. - (SQL_CURSOR_DYNAMIC): likewise. - (SQL_CURSOR_FORWARD_ONLY): likewise. - (SQL_CURSOR_KEYSET_DRIVEN): likewise. - (SQL_CURSOR_ROLLBACK_BEHAVIOR): likewise. - (SQL_CURSOR_STATIC): likewise. - (SQL_CURSOR_TYPE): likewise. - (SQL_CURSOR_TYPE_DEFAULT): likewise. - (SQL_CVT_BIGINT): likewise. - (SQL_CVT_BINARY): likewise. - (SQL_CVT_BIT): likewise. - (SQL_CVT_CHAR): likewise. - (SQL_CVT_DATE): likewise. - (SQL_CVT_DECIMAL): likewise. - (SQL_CVT_DOUBLE): likewise. - (SQL_CVT_FLOAT): likewise. - (SQL_CVT_INTEGER): likewise. - (SQL_CVT_LONGVARBINARY): likewise. - (SQL_CVT_LONGVARCHAR): likewise. - (SQL_CVT_NUMERIC): likewise. - (SQL_CVT_REAL): likewise. - (SQL_CVT_SMALLINT): likewise. - (SQL_CVT_TIME): likewise. - (SQL_CVT_TIMESTAMP): likewise. - (SQL_CVT_TINYINT): likewise. - (SQL_CVT_VARBINARY): likewise. - (SQL_CVT_VARCHAR): likewise. - (SQL_DATABASE_NAME): likewise. - (SQL_DATE): likewise. - (SQL_DRIVER_HDBC): likewise. - (SQL_DRIVER_HENV): likewise. - (SQL_DRIVER_HLIB): likewise. - (SQL_DRIVER_HSTMT): likewise. - (SQL_DRIVER_NAME): likewise. - (SQL_DRIVER_ODBC_VER): likewise. - (SQL_DRIVER_VER): likewise. - (SQL_ENSURE): likewise. - (SQL_EXPRESSIONS_IN_ORDERBY): likewise. - (SQL_EXT_API_LAST): likewise. - (SQL_EXT_API_START): likewise. - (SQL_FD_FETCH_BOOKMARK): likewise. - (SQL_FD_FETCH_PREV): likewise. - (SQL_FD_FETCH_RESUME): likewise. - (SQL_FETCH_PREV): likewise. - (SQL_FETCH_RESUME): likewise. - (SQL_FILE_NOT_SUPPORTED): likewise. - (SQL_FILE_QUALIFIER): likewise. - (SQL_FILE_TABLE): likewise. - (SQL_FILE_USAGE): likewise. - (SQL_FN_CVT_CONVERT): likewise. - (SQL_FN_NUM_ABS): likewise. - (SQL_FN_NUM_ACOS): likewise. - (SQL_FN_NUM_ASIN): likewise. - (SQL_FN_NUM_ATAN): likewise. - (SQL_FN_NUM_ATAN2): likewise. - (SQL_FN_NUM_CEILING): likewise. - (SQL_FN_NUM_COS): likewise. - (SQL_FN_NUM_COT): likewise. - (SQL_FN_NUM_DEGREES): likewise. - (SQL_FN_NUM_EXP): likewise. - (SQL_FN_NUM_FLOOR): likewise. - (SQL_FN_NUM_LOG): likewise. - (SQL_FN_NUM_LOG10): likewise. - (SQL_FN_NUM_MOD): likewise. - (SQL_FN_NUM_PI): likewise. - (SQL_FN_NUM_POWER): likewise. - (SQL_FN_NUM_RADIANS): likewise. - (SQL_FN_NUM_RAND): likewise. - (SQL_FN_NUM_ROUND): likewise. - (SQL_FN_NUM_SIGN): likewise. - (SQL_FN_NUM_SIN): likewise. - (SQL_FN_NUM_SQRT): likewise. - (SQL_FN_NUM_TAN): likewise. - (SQL_FN_NUM_TRUNCATE): likewise. - (SQL_FN_STR_ASCII): likewise. - (SQL_FN_STR_CHAR): likewise. - (SQL_FN_STR_CONCAT): likewise. - (SQL_FN_STR_DIFFERENCE): likewise. - (SQL_FN_STR_INSERT): likewise. - (SQL_FN_STR_LCASE): likewise. - (SQL_FN_STR_LEFT): likewise. - (SQL_FN_STR_LENGTH): likewise. - (SQL_FN_STR_LOCATE): likewise. - (SQL_FN_STR_LOCATE_2): likewise. - (SQL_FN_STR_LTRIM): likewise. - (SQL_FN_STR_REPEAT): likewise. - (SQL_FN_STR_REPLACE): likewise. - (SQL_FN_STR_RIGHT): likewise. - (SQL_FN_STR_RTRIM): likewise. - (SQL_FN_STR_SOUNDEX): likewise. - (SQL_FN_STR_SPACE): likewise. - (SQL_FN_STR_SUBSTRING): likewise. - (SQL_FN_STR_UCASE): likewise. - (SQL_FN_SYS_DBNAME): likewise. - (SQL_FN_SYS_IFNULL): likewise. - (SQL_FN_SYS_USERNAME): likewise. - (SQL_FN_TD_CURDATE): likewise. - (SQL_FN_TD_CURTIME): likewise. - (SQL_FN_TD_DAYNAME): likewise. - (SQL_FN_TD_DAYOFMONTH): likewise. - (SQL_FN_TD_DAYOFWEEK): likewise. - (SQL_FN_TD_DAYOFYEAR): likewise. - (SQL_FN_TD_HOUR): likewise. - (SQL_FN_TD_MINUTE): likewise. - (SQL_FN_TD_MONTH): likewise. - (SQL_FN_TD_MONTHNAME): likewise. - (SQL_FN_TD_NOW): likewise. - (SQL_FN_TD_QUARTER): likewise. - (SQL_FN_TD_SECOND): likewise. - (SQL_FN_TD_TIMESTAMPadd): likewise. - (SQL_FN_TD_TIMESTAMPDIFF): likewise. - (SQL_FN_TD_WEEK): likewise. - (SQL_FN_TD_YEAR): likewise. - (SQL_FN_TSI_DAY): likewise. - (SQL_FN_TSI_FRAC_SECOND): likewise. - (SQL_FN_TSI_HOUR): likewise. - (SQL_FN_TSI_MINUTE): likewise. - (SQL_FN_TSI_MONTH): likewise. - (SQL_FN_TSI_QUARTER): likewise. - (SQL_FN_TSI_SECOND): likewise. - (SQL_FN_TSI_WEEK): likewise. - (SQL_FN_TSI_YEAR): likewise. - (SQL_GB_GROUP_BY_CONTAINS_SELECT): likewise. - (SQL_GB_GROUP_BY_EQUALS_SELECT): likewise. - (SQL_GB_NO_RELATION): likewise. - (SQL_GB_NOT_SUPPORTED): likewise. - (SQL_GD_BLOCK): likewise. - (SQL_GD_BOUND): likewise. - (SQL_GET_BOOKMARK): likewise. - (SQL_GROUP_BY): likewise. - (SQL_INFO_DRIVER_START): likewise. - (SQL_INFO_FIRST): likewise. - (SQL_INFO_LAST): likewise. - (SQL_INTERVAL_DAY): likewise. - (SQL_INTERVAL_DAY_TO_HOUR): likewise. - (SQL_INTERVAL_DAY_TO_MINUTE): likewise. - (SQL_INTERVAL_DAY_TO_SECOND): likewise. - (SQL_INTERVAL_HOUR): likewise. - (SQL_INTERVAL_HOUR_TO_MINUTE): likewise. - (SQL_INTERVAL_HOUR_TO_SECOND): likewise. - (SQL_INTERVAL_MINUTE): likewise. - (SQL_INTERVAL_MINUTE_TO_SECOND): likewise. - (SQL_INTERVAL_MONTH): likewise. - (SQL_INTERVAL_SECOND): likewise. - (SQL_INTERVAL_YEAR): likewise. - (SQL_INTERVAL_YEAR_TO_MONTH): likewise. - (SQL_KEYSET_SIZE): likewise. - (SQL_KEYSET_SIZE_DEFAULT): likewise. - (SQL_KEYWORDS): likewise. - (SQL_LCK_EXCLUSIVE): likewise. - (SQL_LCK_NO_CHANGE): likewise. - (SQL_LCK_UNLOCK): likewise. - (SQL_LIKE_ESCAPE_CLAUSE): likewise. - (SQL_LIKE_ONLY): likewise. - (SQL_LOCK_TYPES): likewise. - (SQL_LOGIN_TIMEOUT): likewise. - (SQL_LOGIN_TIMEOUT_DEFAULT): likewise. - (SQL_LONGVARBINARY): likewise. - (SQL_LONGVARCHAR): likewise. - (SQL_MAX_BINARY_LITERAL_LEN): likewise. - (SQL_MAX_CHAR_LITERAL_LEN): likewise. - (SQL_MAX_DSN_LENGTH): likewise. - (SQL_MAX_LENGTH): likewise. - (SQL_MAX_LENGTH_DEFAULT): likewise. - (SQL_MAX_OPTION_STRING_LENGTH): likewise. - (SQL_MAX_OWNER_NAME_LEN): likewise. - (SQL_MAX_PROCEDURE_NAME_LEN): likewise. - (SQL_MAX_QUALIFIER_NAME_LEN): likewise. - (SQL_MAX_ROW_SIZE_INCLUDES_LONG): likewise. - (SQL_MAX_ROWS): likewise. - (SQL_MAX_ROWS_DEFAULT): likewise. - (SQL_MODE_DEFAULT): likewise. - (SQL_MODE_READ_ONLY): likewise. - (SQL_MODE_READ_WRITE): likewise. - (SQL_MULT_RESULT_SETS): likewise. - (SQL_MULTIPLE_ACTIVE_TXN): likewise. - (SQL_NC_END): likewise. - (SQL_NC_START): likewise. - (SQL_NEED_LONG_DATA_LEN): likewise. - (SQL_NNC_NON_NULL): likewise. - (SQL_NNC_NULL): likewise. - (SQL_NO_TOTAL): likewise. - (SQL_NON_NULLABLE_COLUMNS): likewise. - (SQL_NOSCAN): likewise. - (SQL_NOSCAN_DEFAULT): likewise. - (SQL_NOSCAN_OFF): likewise. - (SQL_NOSCAN_ON): likewise. - (SQL_NUM_EXTENSIONS): likewise. - (SQL_NUM_FUNCTIONS): likewise. - (SQL_NUMERIC_FUNCTIONS): likewise. - (SQL_OAC_LEVEL1): likewise. - (SQL_OAC_LEVEL2): likewise. - (SQL_OAC_NONE): likewise. - (SQL_ODBC_API_CONFORMANCE): likewise. - (SQL_ODBC_CURSORS): likewise. - (SQL_ODBC_KEYWORDS): likewise. - (SQL_ODBC_SAG_CLI_CONFORMANCE): likewise. - (SQL_ODBC_SQL_CONFORMANCE): likewise. - (SQL_ODBC_SQL_OPT_IEF): likewise. - (SQL_ODBC_VER): likewise. - (SQL_OPT_TRACE): likewise. - (SQL_OPT_TRACE_DEFAULT): likewise. - (SQL_OPT_TRACE_FILE_DEFAULT): likewise. - (SQL_OPT_TRACE_OFF): likewise. - (SQL_OPT_TRACE_ON): likewise. - (SQL_OPT_TRACEFILE): likewise. - (SQL_OSC_CORE): likewise. - (SQL_OSC_EXTENDED): likewise. - (SQL_OSC_MINIMUM): likewise. - (SQL_OSCC_COMPLIANT): likewise. - (SQL_OSCC_NOT_COMPLIANT): likewise. - (SQL_OU_DML_STATEMENTS): likewise. - (SQL_OU_INDEX_DEFINITION): likewise. - (SQL_OU_PRIVILEGE_DEFINITION): likewise. - (SQL_OU_PROCEDURE_INVOCATION): likewise. - (SQL_OU_TABLE_DEFINITION): likewise. - (SQL_OUTER_JOINS): likewise. - (SQL_OWNER_TERM): likewise. - (SQL_OWNER_USAGE): likewise. - (SQL_PACKET_SIZE): likewise. - (SQL_PC_NOT_PSEUDO): likewise. - (SQL_POS_add): likewise. - (SQL_POS_DELETE): likewise. - (SQL_POS_OPERATIONS): likewise. - (SQL_POS_POSITION): likewise. - (SQL_POS_REFRESH): likewise. - (SQL_POS_UPDATE): likewise. - (SQL_POSITIONED_STATEMENTS): likewise. - (SQL_PROCEDURE_TERM): likewise. - (SQL_PROCEDURES): likewise. - (SQL_PS_POSITIONED_DELETE): likewise. - (SQL_PS_POSITIONED_UPDATE): likewise. - (SQL_PS_SELECT_FOR_UPDATE): likewise. - (SQL_QL_END): likewise. - (SQL_QL_START): likewise. - (SQL_QU_DML_STATEMENTS): likewise. - (SQL_QU_INDEX_DEFINITION): likewise. - (SQL_QU_PRIVILEGE_DEFINITION): likewise. - (SQL_QU_PROCEDURE_INVOCATION): likewise. - (SQL_QU_TABLE_DEFINITION): likewise. - (SQL_QUALIFIER_LOCATION): likewise. - (SQL_QUALIFIER_NAME_SEPARATOR): likewise. - (SQL_QUALIFIER_TERM): likewise. - (SQL_QUALIFIER_USAGE): likewise. - (SQL_QUERY_TIMEOUT): likewise. - (SQL_QUERY_TIMEOUT_DEFAULT): likewise. - (SQL_QUICK): likewise. - (SQL_QUIET_MODE): likewise. - (SQL_QUOTED_IDENTIFIER_CASE): likewise. - (SQL_RD_DEFAULT): likewise. - (SQL_RD_OFF): likewise. - (SQL_RD_ON): likewise. - (SQL_RETRIEVE_DATA): likewise. - (SQL_ROW_NUMBER): likewise. - (SQL_ROW_UPDATES): likewise. - (SQL_ROWSET_SIZE): likewise. - (SQL_ROWSET_SIZE_DEFAULT): likewise. - (SQL_ROWVER): likewise. - (SQL_SC_NON_UNIQUE): likewise. - (SQL_SC_TRY_UNIQUE): likewise. - (SQL_SC_UNIQUE): likewise. - (SQL_SCCO_OPT_TIMESTAMP): likewise. - (SQL_SCROLL_DYNAMIC): likewise. - (SQL_SCROLL_FORWARD_ONLY): likewise. - (SQL_SCROLL_KEYSET_DRIVEN): likewise. - (SQL_SCROLL_OPTIONS): likewise. - (SQL_SCROLL_STATIC): likewise. - (SQL_SEARCHABLE): likewise. - (SQL_SIGNED_OFFSET): likewise. - (SQL_SIMULATE_CURSOR): likewise. - (SQL_SO_DYNAMIC): likewise. - (SQL_SO_FORWARD_ONLY): likewise. - (SQL_SO_KEYSET_DRIVEN): likewise. - (SQL_SO_MIXED): likewise. - (SQL_SO_STATIC): likewise. - (SQL_SPEC_MAJOR): likewise. - (SQL_SPEC_MINOR): likewise. - (SQL_SPEC_STRING): likewise. - (SQL_SQ_COMPARISON): likewise. - (SQL_SQ_CORRELATED_SUBQUERIES): likewise. - (SQL_SQ_EXISTS): likewise. - (SQL_SQ_IN): likewise. - (SQL_SQ_QUANTIFIED): likewise. - (SQL_SQLSTATE_SIZE): likewise. - (SQL_SS_addITIONS): likewise. - (SQL_SS_DELETIONS): likewise. - (SQL_SS_UPDATES): likewise. - (SQL_STATIC_SENSITIVITY): likewise. - (SQL_STMT_OPT_MAX): likewise. - (SQL_STMT_OPT_MIN): likewise. - (SQL_STRING_FUNCTIONS): likewise. - (SQL_SUBQUERIES): likewise. - (SQL_SYSTEM_FUNCTIONS): likewise. - (SQL_TABLE_STAT): likewise. - (SQL_TABLE_TERM): likewise. - (SQL_TIME): likewise. - (SQL_TIMEDATE_add_INTERVALS): likewise. - (SQL_TIMEDATE_DIFF_INTERVALS): likewise. - (SQL_TIMEDATE_FUNCTIONS): likewise. - (SQL_TIMESTAMP): likewise. - (SQL_TINYINT): likewise. - (SQL_TRANSLATE_DLL): likewise. - (SQL_TRANSLATE_OPTION): likewise. - (SQL_TXN_ISOLATION): likewise. - (SQL_TXN_VERSIONING): likewise. - (SQL_TYPE_DRIVER_END): likewise. - (SQL_TYPE_DRIVER_START): likewise. - (SQL_TYPE_MAX): likewise. - (SQL_TYPE_MIN): likewise. - (SQL_TYPE_NULL): likewise. - (SQL_U_UNION): likewise. - (SQL_U_UNION_ALL): likewise. - (SQL_UB_DEFAULT): likewise. - (SQL_UB_OFF): likewise. - (SQL_UB_ON): likewise. - (SQL_UNICODE): likewise. - (SQL_UNICODE_CHAR): likewise. - (SQL_UNICODE_LONGVARCHAR): likewise. - (SQL_UNICODE_VARCHAR): likewise. - (SQL_UNION): likewise. - (SQL_UNSEARCHABLE): likewise. - (SQL_UNSIGNED_OFFSET): likewise. - (SQL_USE_BOOKMARKS): likewise. - (SQL_VARBINARY): likewise. - (SQL_TRUE): add define for ODBC3.x. - (SQL_FALSE): likewise. - (SQL_AM_CONNECTION): likewise. - (SQL_AM_NONE): likewise. - (SQL_AM_STATEMENT): likewise. - (SQL_API_SQLALLOCHANDLE): likewise. - (SQL_API_SQLBINDPARAM): likewise. - (SQL_API_SQLCLOSECURSOR): likewise. - (SQL_API_SQLCOLATTRIBUTE): likewise. - (SQL_API_SQLCOPYDESC): likewise. - (SQL_API_SQLENDTRAN): likewise. - (SQL_API_SQLFETCHSCROLL): likewise. - (SQL_API_SQLFREEHANDLE): likewise. - (SQL_API_SQLGETCONNECTATTR): likewise. - (SQL_API_SQLGETDESCFIELD): likewise. - (SQL_API_SQLGETDESCREC): likewise. - (SQL_API_SQLGETDIAGFIELD): likewise. - (SQL_API_SQLGETDIAGREC): likewise. - (SQL_API_SQLGETENVATTR): likewise. - (SQL_API_SQLGETSTMTATTR): likewise. - (SQL_API_SQLSETCONNECTATTR): likewise. - (SQL_API_SQLSETDESCFIELD): likewise. - (SQL_API_SQLSETDESCREC): likewise. - (SQL_API_SQLSETENVATTR): likewise. - (SQL_API_SQLSETSTMTATTR): likewise. - (SQL_ARD_TYPE): likewise. - (SQL_AT_add_CONSTRAINT): likewise. - (SQL_ATTR_APP_PARAM_DESC): likewise. - (SQL_ATTR_APP_ROW_DESC): likewise. - (SQL_ATTR_AUTO_IPD): likewise. - (SQL_ATTR_CURSOR_SCROLLABLE): likewise. - (SQL_ATTR_CURSOR_SENSITIVITY): likewise. - (SQL_ATTR_IMP_PARAM_DESC): likewise. - (SQL_ATTR_IMP_ROW_DESC): likewise. - (SQL_ATTR_METADATA_ID): likewise. - (SQL_ATTR_OUTPUT_NTS): likewise. - (SQL_CATALOG_NAME): likewise. - (SQL_CODE_DATE): likewise. - (SQL_CODE_TIME): likewise. - (SQL_CODE_TIMESTAMP): likewise. - (SQL_COLLATION_SEQ): likewise. - (SQL_CURSOR_SENSITIVITY): likewise. - (SQL_DATE_LEN): likewise. - (SQL_DATETIME): likewise. - (SQL_DEFAULT): likewise. - (SQL_DESC_ALLOC_AUTO): likewise. - (SQL_DESC_ALLOC_TYPE): likewise. - (SQL_DESC_ALLOC_USER): likewise. - (SQL_DESC_COUNT): likewise. - (SQL_DESC_DATA_PTR): likewise. - (SQL_DESC_DATETIME_INTERVAL_CODE): likewise. - (SQL_DESC_INDICATOR_PTR): likewise. - (SQL_DESC_LENGTH): likewise. - (SQL_DESC_NAME): likewise. - (SQL_DESC_NULLABLE): likewise. - (SQL_DESC_OCTET_LENGTH): likewise. - (SQL_DESC_OCTET_LENGTH_PTR): likewise. - (SQL_DESC_PRECISION): likewise. - (SQL_DESC_SCALE): likewise. - (SQL_DESC_TYPE): likewise. - (SQL_DESC_UNNAMED): likewise. - (SQL_DESCRIBE_PARAMETER): likewise. - (SQL_DIAG_ALTER_DOMAIN): likewise. - (SQL_DIAG_ALTER_TABLE): likewise. - (SQL_DIAG_CALL): likewise. - (SQL_DIAG_CLASS_ORIGIN): likewise. - (SQL_DIAG_CONNECTION_NAME): likewise. - (SQL_DIAG_CREATE_ASSERTION): likewise. - (SQL_DIAG_CREATE_CHARACTER_SET): likewise. - (SQL_DIAG_CREATE_COLLATION): likewise. - (SQL_DIAG_CREATE_DOMAIN): likewise. - (SQL_DIAG_CREATE_INDEX): likewise. - (SQL_DIAG_CREATE_SCHEMA): likewise. - (SQL_DIAG_CREATE_TABLE): likewise. - (SQL_DIAG_CREATE_TRANSLATION): likewise. - (SQL_DIAG_CREATE_VIEW): likewise. - (SQL_DIAG_DELETE_WHERE): likewise. - (SQL_DIAG_DROP_ASSERTION): likewise. - (SQL_DIAG_DROP_CHARACTER_SET): likewise. - (SQL_DIAG_DROP_COLLATION): likewise. - (SQL_DIAG_DROP_DOMAIN): likewise. - (SQL_DIAG_DROP_INDEX): likewise. - (SQL_DIAG_DROP_SCHEMA): likewise. - (SQL_DIAG_DROP_TABLE): likewise. - (SQL_DIAG_DROP_TRANSLATION): likewise. - (SQL_DIAG_DROP_VIEW): likewise. - (SQL_DIAG_DYNAMIC_DELETE_CURSOR): likewise. - (SQL_DIAG_DYNAMIC_FUNCTION): likewise. - (SQL_DIAG_DYNAMIC_FUNCTION_CODE): likewise. - (SQL_DIAG_DYNAMIC_UPDATE_CURSOR): likewise. - (SQL_DIAG_GRANT): likewise. - (SQL_DIAG_INSERT): likewise. - (SQL_DIAG_MESSAGE_TEXT): likewise. - (SQL_DIAG_NATIVE): likewise. - (SQL_DIAG_NUMBER): likewise. - (SQL_DIAG_RETURNCODE): likewise. - (SQL_DIAG_REVOKE): likewise. - (SQL_DIAG_ROW_COUNT): likewise. - (SQL_DIAG_SELECT_CURSOR): likewise. - (SQL_DIAG_SERVER_NAME): likewise. - (SQL_DIAG_SQLSTATE): likewise. - (SQL_DIAG_SUBCLASS_ORIGIN): likewise. - (SQL_DIAG_UNKNOWN_STATEMENT): likewise. - (SQL_DIAG_UPDATE_WHERE): likewise. - (SQL_FALSE): likewise. - (SQL_FETCH_ABSOLUTE): likewise. - (SQL_FETCH_LAST): likewise. - (SQL_FETCH_PRIOR): likewise. - (SQL_FETCH_RELATIVE): likewise. - (SQL_HANDLE_DBC): likewise. - (SQL_HANDLE_DESC): likewise. - (SQL_HANDLE_ENV): likewise. - (SQL_HANDLE_STMT): likewise. - (SQL_INSENSITIVE): likewise. - (SQL_INTEGRITY): likewise. - (SQL_MAX_CATALOG_NAME_LEN): likewise. - (SQL_MAX_CONCURRENT_ACTIVITIES): likewise. - (SQL_MAX_DRIVER_CONNECTIONS): likewise. - (SQL_MAX_IDENTIFIER_LEN): likewise. - (SQL_MAX_SCHEMA_NAME_LEN): likewise. - (SQL_MAXIMUM_CATALOG_NAME_LENGTH): likewise. - (SQL_MAXIMUM_COLUMN_NAME_LENGTH): likewise. - (SQL_MAXIMUM_COLUMNS_IN_GROUP_BY): likewise. - (SQL_MAXIMUM_COLUMNS_IN_INDEX): likewise. - (SQL_MAXIMUM_COLUMNS_IN_ORDER_BY): likewise. - (SQL_MAXIMUM_COLUMNS_IN_SELECT): likewise. - (SQL_MAXIMUM_CONCURRENT_ACTIVITIES): likewise. - (SQL_MAXIMUM_CURSOR_NAME_LENGTH): likewise. - (SQL_MAXIMUM_DRIVER_CONNECTIONS): likewise. - (SQL_MAXIMUM_IDENTIFIER_LENGTH): likewise. - (SQL_MAXIMUM_INDEX_SIZE): likewise. - (SQL_MAXIMUM_ROW_SIZE): likewise. - (SQL_MAXIMUM_SCHEMA_NAME_LENGTH): likewise. - (SQL_MAXIMUM_STATEMENT_LENGTH): likewise. - (SQL_MAXIMUM_TABLES_IN_SELECT): likewise. - (SQL_MAXIMUM_USER_NAME_LENGTH): likewise. - (SQL_NAMED): likewise. - (SQL_NONSCROLLABLE): likewise. - (SQL_NTSL): likewise. - (SQL_NULL_HANDLE): likewise. - (SQL_NULL_HDESC): likewise. - (SQL_OUTER_JOIN_CAPABILITIES): likewise. - (SQL_PRED_BASIC): likewise. - (SQL_PRED_CHAR): likewise. - (SQL_PRED_NONE): likewise. - (SQL_ROW_IDENTIFIER): likewise. - (SQL_SCROLLABLE): likewise. - (SQL_SENSITIVE): likewise. - (SQL_SUCCEEDED(rc)): likewise. - (SQL_TIME_LEN): likewise. - (SQL_TIMESTAMP_LEN): likewise. - (SQL_TRANSACTION_CAPABLE): likewise. - (SQL_TRANSACTION_ISOLATION_OPTION): likewise. - (SQL_TRANSACTION_READ_COMMITTED): likewise. - (SQL_TRANSACTION_READ_UNCOMMITTED): likewise. - (SQL_TRANSACTION_REPEATABLE_READ): likewise. - (SQL_TRANSACTION_SERIALIZABLE): likewise. - (SQL_TYPE_DATE): likewise. - (SQL_TYPE_TIME): likewise. - (SQL_TYPE_TIMESTAMP): likewise. - (SQL_UNKNOWN_TYPE): likewise. - (SQL_UNNAMED): likewise. - (SQL_UNSPECIFIED): likewise. - (SQL_XOPEN_CLI_YEAR): likewise. - (SQLAllocConnect): add comment marking as deperecated. - (SQLAllocEnv): likewise. - (SQLAllocStmt): likewise. - (SQLFreeConnect): likewise. - (SQLFreeEnv): likewise. - (SQLGetConnectOption): likewise. - (SQLGetStmtOption): likewise. - - * include/sqlext.h (#include ): add directive. - (SQLSetScrollOptions): non-core function, move prototype from sql.h. - (SQLColAttributes): likewise. - (SQLBulkOperations): add function prototype. - (SQLAllocHandleStd): likewise - (TraceReturn): add Trace API prototype. - (TraceVersion): likewise. - (ODBCGetTryWaitValue):likewise. - (ODBCSetTryWaitValue): likewise. - (SQL_LOCK_RECORD): correct function macro. - (SQL_REFRESH_RECORD): likewise. - (SQLINTENGER and SQLUINTEGER): replace with SQLLEN and SQLULEN for - _WIN64 compatability. - move defines for non-core functions from sql.h to sqlext.h (refer - changes for sql.h) - (SQL_ACTIVE_ENVIRONMENTS): new ODBC3.x define - (SQL_AD_ADD_CONSTRAINT_DEFERRABLE): likewise. - (SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED): likewise. - (SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE): likewise. - (SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE): likewise. - (SQL_AD_ADD_DOMAIN_CONSTRAINT): likewise. - (SQL_AD_ADD_DOMAIN_DEFAULT): likewise. - (SQL_AD_CONSTRAINT_NAME_DEFINITION): likewise. - (SQL_AD_DROP_DOMAIN_CONSTRAINT): likewise. - (SQL_AD_DROP_DOMAIN_DEFAULT): likewise. - (SQL_AF_ALL): likewise. - (SQL_AF_AVG): likewise. - (SQL_AF_COUNT): likewise. - (SQL_AF_DISTINCT): likewise. - (SQL_AF_MAX): likewise. - (SQL_AF_MIN): likewise. - (SQL_AF_SUM): likewise. - (SQL_AGGREGATE_FUNCTIONS): likewise. - (SQL_ALL_CATALOGS): likewise. - (SQL_ALL_SCHEMAS): likewise. - (SQL_ALL_TABLE_TYPES): likewise. - (SQL_ALTER_DOMAIN): likewise. - (SQL_AM_CONNECTION): likewise. - (SQL_AM_NONE): likewise. - (SQL_AM_STATEMENT): likewise. - (SQL_API_ODBC3_ALL_FUNCTIONS): likewise. - (SQL_API_ODBC3_ALL_FUNCTIONS_SIZE): likewise. - (SQL_API_SQLALLOCHANDLESTD): likewise. - (SQL_API_SQLBULKOPERATIONS): likewise. - (SQL_ASYNC_MODE): likewise. - (SQL_AT_ADD_COLUMN_COLLATION): likewise. - (SQL_AT_ADD_COLUMN_DEFAULT): likewise. - (SQL_AT_ADD_COLUMN_SINGLE): likewise. - (SQL_AT_ADD_TABLE_CONSTRAINT): likewise. - (SQL_AT_CONSTRAINT_DEFERRABLE): likewise. - (SQL_AT_CONSTRAINT_INITIALLY_DEFERRED): likewise. - (SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE): likewise. - (SQL_AT_CONSTRAINT_NAME_DEFINITION): likewise. - (SQL_AT_CONSTRAINT_NON_DEFERRABLE): likewise. - (SQL_AT_DROP_COLUMN_CASCADE): likewise. - (SQL_AT_DROP_COLUMN_DEFAULT): likewise. - (SQL_AT_DROP_COLUMN_RESTRICT): likewise. - (SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE): likewise. - (SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT): likewise. - (SQL_AT_SET_COLUMN_DEFAULT): likewise. - (SQL_ATTR_ACCESS_MODE): likewise. - (SQL_ATTR_ASYNC_ENABLE): likewise. - (SQL_ATTR_AUTOCOMMIT): likewise. - (SQL_ATTR_CONCURRENCY): likewise. - (SQL_ATTR_CONNECTION_POOLING): likewise. - (SQL_ATTR_CONNECTION_TIMEOUT): likewise. - (SQL_ATTR_CP_MATCH): likewise. - (SQL_ATTR_CURRENT_CATALOG): likewise. - (SQL_ATTR_CURSOR_TYPE): likewise. - (SQL_ATTR_DISCONNECT_BEHAVIOR): likewise. - (SQL_ATTR_ENABLE_AUTO_IPD): likewise. - (SQL_ATTR_ENLIST_IN_DTC): likewise. - (SQL_ATTR_ENLIST_IN_XA): likewise. - (SQL_ATTR_FETCH_BOOKMARK_PTR): likewise. - (SQL_ATTR_KEYSET_SIZE): likewise. - (SQL_ATTR_LOGIN_TIMEOUT): likewise. - (SQL_ATTR_MAX_LENGTH): likewise. - (SQL_ATTR_MAX_ROWS): likewise. - (SQL_ATTR_NOSCAN): likewise. - (SQL_ATTR_ODBC_CURSORS): likewise. - (SQL_ATTR_ODBC_VERSION): likewise. - (SQL_ATTR_PACKET_SIZE): likewise. - (SQL_ATTR_PARAM_BIND_OFFSET_PTR): likewise. - (SQL_ATTR_PARAM_BIND_TYPE): likewise. - (SQL_ATTR_PARAM_OPERATION_PTR): likewise. - (SQL_ATTR_PARAM_STATUS_PTR): likewise. - (SQL_ATTR_PARAMS_PROCESSED_PTR): likewise. - (SQL_ATTR_PARAMSET_SIZE): likewise. - (SQL_ATTR_QUERY_TIMEOUT): likewise. - (SQL_ATTR_QUIET_MODE): likewise. - (SQL_ATTR_RETRIEVE_DATA): likewise. - (SQL_ATTR_ROW_ARRAY_SIZE): likewise. - (SQL_ATTR_ROW_BIND_OFFSET_PTR): likewise. - (SQL_ATTR_ROW_BIND_TYPE): likewise. - (SQL_ATTR_ROW_NUMBER): likewise. - (SQL_ATTR_ROW_OPERATION_PTR): likewise. - (SQL_ATTR_ROW_STATUS_PTR): likewise. - (SQL_ATTR_ROWS_FETCHED_PTR): likewise. - (SQL_ATTR_SIMULATE_CURSOR): likewise. - (SQL_ATTR_TRACE): likewise. - (SQL_ATTR_TRACEFILE): likewise. - (SQL_ATTR_TRANSLATE_LIB): likewise. - (SQL_ATTR_TRANSLATE_OPTION): likewise. - (SQL_ATTR_TXN_ISOLATION): likewise. - (SQL_ATTR_USE_BOOKMARKS): likewise. - (SQL_BATCH_ROW_COUNT): likewise. - (SQL_BATCH_SUPPORT): likewise. - (SQL_BRC_EXPLICIT): likewise. - (SQL_BRC_PROCEDURES): likewise. - (SQL_BRC_ROLLED_UP): likewise. - (SQL_BS_ROW_COUNT_EXPLICIT): likewise. - (SQL_BS_ROW_COUNT_PROC): likewise. - (SQL_BS_SELECT_EXPLICIT): likewise. - (SQL_BS_SELECT_PROC): likewise. - (SQL_C_INTERVAL_DAY): likewise. - (SQL_C_INTERVAL_DAY_TO_HOUR): likewise. - (SQL_C_INTERVAL_DAY_TO_MINUTE): likewise. - (SQL_C_INTERVAL_DAY_TO_SECOND): likewise. - (SQL_C_INTERVAL_HOUR): likewise. - (SQL_C_INTERVAL_HOUR_TO_MINUTE): likewise. - (SQL_C_INTERVAL_HOUR_TO_SECOND): likewise. - (SQL_C_INTERVAL_MINUTE): likewise. - (SQL_C_INTERVAL_MINUTE_TO_SECOND): likewise. - (SQL_C_INTERVAL_MONTH): likewise. - (SQL_C_INTERVAL_SECOND): likewise. - (SQL_C_INTERVAL_YEAR): likewise. - (SQL_C_INTERVAL_YEAR_TO_MONTH): likewise. - (SQL_C_NUMERIC): likewise. - (SQL_C_SBIGINT): likewise. - (SQL_C_TYPE_DATE): likewise. - (SQL_C_TYPE_TIME): likewise. - (SQL_C_TYPE_TIMESTAMP): likewise. - (SQL_C_UBIGINT): likewise. - (SQL_C_VARBOOKMARK): likewise. - (SQL_CA_CONSTRAINT_DEFERRABLE): likewise. - (SQL_CA_CONSTRAINT_INITIALLY_DEFERRED): likewise. - (SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE): likewise. - (SQL_CA_CONSTRAINT_NON_DEFERRABLE): likewise. - (SQL_CA_CREATE_ASSERTION): likewise. - (SQL_CA1_ABSOLUTE): likewise. - (SQL_CA1_BOOKMARK): likewise. - (SQL_CA1_BULK_ADD): likewise. - (SQL_CA1_BULK_DELETE_BY_BOOKMARK): likewise. - (SQL_CA1_BULK_FETCH_BY_BOOKMARK): likewise. - (SQL_CA1_BULK_UPDATE_BY_BOOKMARK): likewise. - (SQL_CA1_LOCK_EXCLUSIVE): likewise. - (SQL_CA1_LOCK_NO_CHANGE): likewise. - (SQL_CA1_LOCK_UNLOCK): likewise. - (SQL_CA1_NEXT): likewise. - (SQL_CA1_POS_DELETE): likewise. - (SQL_CA1_POS_POSITION): likewise. - (SQL_CA1_POS_REFRESH): likewise. - (SQL_CA1_POS_UPDATE): likewise. - (SQL_CA1_POSITIONED_DELETE): likewise. - (SQL_CA1_POSITIONED_UPDATE): likewise. - (SQL_CA1_RELATIVE): likewise. - (SQL_CA1_SELECT_FOR_UPDATE): likewise. - (SQL_CA2_CRC_APPROXIMATE): likewise. - (SQL_CA2_CRC_EXACT): likewise. - (SQL_CA2_LOCK_CONCURRENCY): likewise. - (SQL_CA2_MAX_ROWS_AFFECTS_ALL): likewise. - (SQL_CA2_MAX_ROWS_CATALOG): likewise. - (SQL_CA2_MAX_ROWS_DELETE): likewise. - (SQL_CA2_MAX_ROWS_INSERT): likewise. - (SQL_CA2_MAX_ROWS_SELECT): likewise. - (SQL_CA2_MAX_ROWS_UPDATE): likewise. - (SQL_CA2_OPT_ROWVER_CONCURRENCY): likewise. - (SQL_CA2_OPT_VALUES_CONCURRENCY): likewise. - (SQL_CA2_READ_ONLY_CONCURRENCY): likewise. - (SQL_CA2_SENSITIVITY_ADDITIONS): likewise. - (SQL_CA2_SENSITIVITY_DELETIONS): likewise. - (SQL_CA2_SENSITIVITY_UPDATES): likewise. - (SQL_CA2_SIMULATE_NON_UNIQUE): likewise. - (SQL_CA2_SIMULATE_TRY_UNIQUE): likewise. - (SQL_CA2_SIMULATE_UNIQUE): likewise. - (SQL_CATALOG_LOCATION): likewise. - (SQL_CATALOG_NAME_SEPARATOR): likewise. - (SQL_CATALOG_TERM): likewise. - (SQL_CATALOG_USAGE): likewise. - (SQL_CCOL_CREATE_COLLATION): likewise. - (SQL_CCS_COLLATE_CLAUSE): likewise. - (SQL_CCS_CREATE_CHARACTER_SET): likewise. - (SQL_CCS_LIMITED_COLLATION): likewise. - (SQL_CDO_COLLATION): likewise. - (SQL_CDO_CONSTRAINT): likewise. - (SQL_CDO_CONSTRAINT_DEFERRABLE): likewise. - (SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED): likewise. - (SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE): likewise. - (SQL_CDO_CONSTRAINT_NAME_DEFINITION): likewise. - (SQL_CDO_CONSTRAINT_NON_DEFERRABLE): likewise. - (SQL_CDO_CREATE_DOMAIN): likewise. - (SQL_CDO_DEFAULT): likewise. - (SQL_CL_END): likewise. - (SQL_CL_START): likewise. - (SQL_COL_PRED_BASIC): likewise. - (SQL_COL_PRED_CHAR): likewise. - (SQL_COLUMN_DRIVER_START): likewise. - (SQL_COLUMN_IGNORE): likewise. - (SQL_COLUMN_NUMBER_UNKNOWN): likewise. - (SQL_CONVERT_GUID): likewise. - (SQL_CONVERT_INTERVAL_DAY_TIME): likewise. - (SQL_CONVERT_INTERVAL_YEAR_MONTH): likewise. - (SQL_CONVERT_WCHAR): likewise. - (SQL_CONVERT_WLONGVARCHAR): likewise. - (SQL_CONVERT_WVARCHAR): likewise. - (SQL_CP_DEFAULT): likewise. - (SQL_CP_MATCH_DEFAULT): likewise. - (SQL_CP_OFF): likewise. - (SQL_CP_ONE_PER_DRIVER): likewise. - (SQL_CP_ONE_PER_HENV): likewise. - (SQL_CP_RELAXED_MATCH): likewise. - (SQL_CP_STRICT_MATCH): likewise. - (SQL_CREATE_ASSERTION): likewise. - (SQL_CREATE_CHARACTER_SET): likewise. - (SQL_CREATE_COLLATION): likewise. - (SQL_CREATE_DOMAIN): likewise. - (SQL_CREATE_SCHEMA): likewise. - (SQL_CREATE_TABLE): likewise. - (SQL_CREATE_TRANSLATION): likewise. - (SQL_CREATE_VIEW): likewise. - (SQL_CS_AUTHORIZATION): likewise. - (SQL_CS_CREATE_SCHEMA): likewise. - (SQL_CS_DEFAULT_CHARACTER_SET): likewise. - (SQL_CT_COLUMN_COLLATION): likewise. - (SQL_CT_COLUMN_CONSTRAINT): likewise. - (SQL_CT_COLUMN_DEFAULT): likewise. - (SQL_CT_COMMIT_DELETE): likewise. - (SQL_CT_COMMIT_PRESERVE): likewise. - (SQL_CT_CONSTRAINT_DEFERRABLE): likewise. - (SQL_CT_CONSTRAINT_INITIALLY_DEFERRED): likewise. - (SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE): likewise. - (SQL_CT_CONSTRAINT_NAME_DEFINITION): likewise. - (SQL_CT_CONSTRAINT_NON_DEFERRABLE): likewise. - (SQL_CT_CREATE_TABLE): likewise. - (SQL_CT_GLOBAL_TEMPORARY): likewise. - (SQL_CT_LOCAL_TEMPORARY): likewise. - (SQL_CT_TABLE_CONSTRAINT): likewise. - (SQL_CTR_CREATE_TRANSLATION): likewise. - (SQL_CU_DML_STATEMENTS): likewise. - (SQL_CU_INDEX_DEFINITION): likewise. - (SQL_CU_PRIVILEGE_DEFINITION): likewise. - (SQL_CU_PROCEDURE_INVOCATION): likewise. - (SQL_CU_TABLE_DEFINITION): likewise. - (SQL_CVT_GUID): likewise. - (SQL_CVT_INTERVAL_DAY_TIME): likewise. - (SQL_CVT_INTERVAL_YEAR_MONTH): likewise. - (SQL_CVT_WCHAR): likewise. - (SQL_CVT_WLONGVARCHAR): likewise. - (SQL_CVT_WVARCHAR): likewise. - (SQL_DA_DROP_ASSERTION): likewise. - (SQL_DATETIME_LITERALS): likewise. - (SQL_DB_DEFAULT): likewise. - (SQL_DB_DISCONNECT): likewise. - (SQL_DB_RETURN_TO_POOL): likewise. - (SQL_DC_DROP_COLLATION): likewise. - (SQL_DCS_DROP_CHARACTER_SET): likewise. - (SQL_DD_CASCADE): likewise. - (SQL_DD_DROP_DOMAIN): likewise. - (SQL_DD_RESTRICT): likewise. - (SQL_DDL_INDEX): likewise. - (SQL_DELETE_BY_BOOKMARK): likewise. - (SQL_DESC_ARRAY_SIZE): likewise. - (SQL_DESC_ARRAY_STATUS_PTR): likewise. - (SQL_DESC_AUTO_UNIQUE_VALUE): likewise. - (SQL_DESC_BASE_COLUMN_NAME): likewise. - (SQL_DESC_BASE_TABLE_NAME): likewise. - (SQL_DESC_BIND_OFFSET_PTR): likewise. - (SQL_DESC_BIND_TYPE): likewise. - (SQL_DESC_CASE_SENSITIVE): likewise. - (SQL_DESC_CATALOG_NAME): likewise. - (SQL_DESC_CONCISE_TYPE): likewise. - (SQL_DESC_DATETIME_INTERVAL_PRECISION): likewise. - (SQL_DESC_DISPLAY_SIZE): likewise. - (SQL_DESC_FIXED_PREC_SCALE): likewise. - (SQL_DESC_LABEL): likewise. - (SQL_DESC_LITERAL_PREFIX): likewise. - (SQL_DESC_LITERAL_SUFFIX): likewise. - (SQL_DESC_LOCAL_TYPE_NAME): likewise. - (SQL_DESC_MAXIMUM_SCALE): likewise. - (SQL_DESC_MINIMUM_SCALE): likewise. - (SQL_DESC_NUM_PREC_RADIX): likewise. - (SQL_DESC_PARAMETER_TYPE): likewise. - (SQL_DESC_ROWS_PROCESSED_PTR): likewise. - (SQL_DESC_SCHEMA_NAME): likewise. - (SQL_DESC_SEARCHABLE): likewise. - (SQL_DESC_TABLE_NAME): likewise. - (SQL_DESC_TYPE_NAME): likewise. - (SQL_DESC_UNSIGNED): likewise. - (SQL_DESC_UPDATABLE): likewise. - (SQL_DI_CREATE_INDEX): likewise. - (SQL_DI_DROP_INDEX): likewise. - (SQL_DIAG_COLUMN_NUMBER): likewise. - (SQL_DIAG_CURSOR_ROW_COUNT): likewise. - (SQL_DIAG_ROW_NUMBER): likewise. - (SQL_DL_SQL92_DATE): likewise. - (SQL_DL_SQL92_INTERVAL_DAY): likewise. - (SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR): likewise. - (SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE): likewise. - (SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND): likewise. - (SQL_DL_SQL92_INTERVAL_HOUR): likewise. - (SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE): likewise. - (SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND): likewise. - (SQL_DL_SQL92_INTERVAL_MINUTE): likewise. - (SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND): likewise. - (SQL_DL_SQL92_INTERVAL_MONTH): likewise. - (SQL_DL_SQL92_INTERVAL_SECOND): likewise. - (SQL_DL_SQL92_INTERVAL_YEAR): likewise. - (SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH): likewise. - (SQL_DL_SQL92_TIME): likewise. - (SQL_DL_SQL92_TIMESTAMP): likewise. - (SQL_DM_VER): likewise. - (SQL_DRIVER_HDESC): likewise. - (SQL_DROP_ASSERTION): likewise. - (SQL_DROP_CHARACTER_SET): likewise. - (SQL_DROP_COLLATION): likewise. - (SQL_DROP_DOMAIN): likewise. - (SQL_DROP_SCHEMA): likewise. - (SQL_DROP_TABLE): likewise. - (SQL_DROP_TRANSLATION): likewise. - (SQL_DROP_VIEW): likewise. - (SQL_DS_CASCADE): likewise. - (SQL_DS_DROP_SCHEMA): likewise. - (SQL_DS_RESTRICT): likewise. - (SQL_DT_CASCADE): likewise. - (SQL_DT_DROP_TABLE): likewise. - (SQL_DT_RESTRICT): likewise. - (SQL_DTC_DONE): likewise. - (SQL_DTR_DROP_TRANSLATION): likewise. - (SQL_DV_CASCADE): likewise. - (SQL_DV_DROP_VIEW): likewise. - (SQL_DV_RESTRICT): likewise. - (SQL_DYNAMIC_CURSOR_ATTRIBUTES1): likewise. - (SQL_DYNAMIC_CURSOR_ATTRIBUTES2): likewise. - (SQL_EXT_API_LAST): likewise. - (SQL_EXT_API_START): likewise. - (SQL_FETCH_BY_BOOKMARK): likewise. - (SQL_FETCH_FIRST_SYSTEM): likewise. - (SQL_FETCH_FIRST_USER): likewise. - (SQL_FN_CVT_CAST): likewise. - (SQL_FN_STR_BIT_LENGTH): likewise. - (SQL_FN_STR_CHAR_LENGTH): likewise. - (SQL_FN_STR_CHARACTER_LENGTH): likewise. - (SQL_FN_STR_OCTET_LENGTH): likewise. - (SQL_FN_STR_POSITION): likewise. - (SQL_FN_TD_CURRENT_DATE): likewise. - (SQL_FN_TD_CURRENT_TIME): likewise. - (SQL_FN_TD_CURRENT_TIMESTAMP): likewise. - (SQL_FN_TD_EXTRACT): likewise. - (SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1): likewise. - (SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2): likewise. - (SQL_FUNC_EXISTS(exists,api)): likewise. - (SQL_GB_COLLATE): likewise. - (SQL_HANDLE_SENV): likewise. - (SQL_IK_ALL): likewise. - (SQL_IK_ASC): likewise. - (SQL_IK_DESC): likewise. - (SQL_IK_NONE): likewise. - (SQL_INDEX_KEYWORDS): likewise. - (SQL_INFO_DRIVER_START): likewise. - (SQL_INFO_LAST): likewise. - (SQL_INFO_SCHEMA_VIEWS): likewise. - (SQL_INITIALLY_DEFERRED): likewise. - (SQL_INITIALLY_IMMEDIATE): likewise. - (SQL_INSERT_STATEMENT): likewise. - (SQL_INTERVAL): likewise. - (SQL_IS_INSERT_LITERALS): likewise. - (SQL_IS_INSERT_SEARCHED): likewise. - (SQL_IS_INTEGER): likewise. - (SQL_IS_POINTER): likewise. - (SQL_IS_SELECT_INTO): likewise. - (SQL_IS_SMALLINT): likewise. - (SQL_IS_UINTEGER): likewise. - (SQL_IS_USMALLINT): likewise. - (SQL_ISV_ASSERTIONS): likewise. - (SQL_ISV_CHARACTER_SETS): likewise. - (SQL_ISV_CHECK_CONSTRAINTS): likewise. - (SQL_ISV_COLLATIONS): likewise. - (SQL_ISV_COLUMN_DOMAIN_USAGE): likewise. - (SQL_ISV_COLUMN_PRIVILEGES): likewise. - (SQL_ISV_COLUMNS): likewise. - (SQL_ISV_CONSTRAINT_COLUMN_USAGE): likewise. - (SQL_ISV_CONSTRAINT_TABLE_USAGE): likewise. - (SQL_ISV_DOMAIN_CONSTRAINTS): likewise. - (SQL_ISV_DOMAINS): likewise. - (SQL_ISV_KEY_COLUMN_USAGE): likewise. - (SQL_ISV_REFERENTIAL_CONSTRAINTS): likewise. - (SQL_ISV_SCHEMATA): likewise. - (SQL_ISV_SQL_LANGUAGES): likewise. - (SQL_ISV_TABLE_CONSTRAINTS): likewise. - (SQL_ISV_TABLE_PRIVILEGES): likewise. - (SQL_ISV_TABLES): likewise. - (SQL_ISV_TRANSLATIONS): likewise. - (SQL_ISV_USAGE_PRIVILEGES): likewise. - (SQL_ISV_VIEW_COLUMN_USAGE): likewise. - (SQL_ISV_VIEW_TABLE_USAGE): likewise. - (SQL_ISV_VIEWS): likewise. - (SQL_KEYSET_CURSOR_ATTRIBUTES1): likewise. - (SQL_KEYSET_CURSOR_ATTRIBUTES2): likewise. - (SQL_MAX_ASYNC_CONCURRENT_STATEMENTS): likewise. - (SQL_NO_COLUMN_NUMBER): likewise. - (SQL_NO_ROW_NUMBER): likewise. - (SQL_NOT_DEFERRABLE): likewise. - (SQL_NUM_EXTENSIONS): likewise. - (SQL_NUM_FUNCTIONS): likewise. - (SQL_ODBC_INTERFACE_CONFORMANCE): likewise. - (SQL_OIC_CORE): likewise. - (SQL_OIC_LEVEL1): likewise. - (SQL_OIC_LEVEL2): likewise. - (SQL_OV_ODBC2): likewise. - (SQL_OV_ODBC3): likewise. - (SQL_PARAM_ARRAY_ROW_COUNTS): likewise. - (SQL_PARAM_ARRAY_SELECTS): likewise. - (SQL_PARAM_BIND_BY_COLUMN): likewise. - (SQL_PARAM_BIND_TYPE_DEFAULT): likewise. - (SQL_PARAM_DIAG_UNAVAILABLE): likewise. - (SQL_PARAM_ERROR): likewise. - (SQL_PARAM_IGNORE): likewise. - (SQL_PARAM_PROCEED): likewise. - (SQL_PARAM_SUCCESS): likewise. - (SQL_PARAM_SUCCESS_WITH_INFO): likewise. - (SQL_PARAM_UNUSED): likewise. - (SQL_PARC_BATCH): likewise. - (SQL_PARC_NO_BATCH): likewise. - (SQL_PAS_BATCH): likewise. - (SQL_PAS_NO_BATCH): likewise. - (SQL_PAS_NO_SELECT): likewise. - (SQL_ROW_IGNORE): likewise. - (SQL_ROW_NUMBER_UNKNOWN): likewise. - (SQL_ROW_PROCEED): likewise. - (SQL_ROW_SUCCESS_WITH_INFO): likewise. - (SQL_SC_FIPS127_2_TRANSITIONAL): likewise. - (SQL_SC_SQL92_ENTRY): likewise. - (SQL_SC_SQL92_FULL): likewise. - (SQL_SC_SQL92_INTERMEDIATE): likewise. - (SQL_SCC_ISO92_CLI): likewise. - (SQL_SCC_XOPEN_CLI_VERSION1): likewise. - (SQL_SCHEMA_TERM): likewise. - (SQL_SCHEMA_USAGE): likewise. - (SQL_SDF_CURRENT_DATE): likewise. - (SQL_SDF_CURRENT_TIME): likewise. - (SQL_SDF_CURRENT_TIMESTAMP): likewise. - (SQL_SFKD_CASCADE): likewise. - (SQL_SFKD_NO_ACTION): likewise. - (SQL_SFKD_SET_DEFAULT): likewise. - (SQL_SFKD_SET_NULL): likewise. - (SQL_SFKU_CASCADE): likewise. - (SQL_SFKU_NO_ACTION): likewise. - (SQL_SFKU_SET_DEFAULT): likewise. - (SQL_SFKU_SET_NULL): likewise. - (SQL_SG_DELETE_TABLE): likewise. - (SQL_SG_INSERT_COLUMN): likewise. - (SQL_SG_INSERT_TABLE): likewise. - (SQL_SG_REFERENCES_COLUMN): likewise. - (SQL_SG_REFERENCES_TABLE): likewise. - (SQL_SG_SELECT_TABLE): likewise. - (SQL_SG_UPDATE_COLUMN): likewise. - (SQL_SG_UPDATE_TABLE): likewise. - (SQL_SG_USAGE_ON_CHARACTER_SET): likewise. - (SQL_SG_USAGE_ON_COLLATION): likewise. - (SQL_SG_USAGE_ON_DOMAIN): likewise. - (SQL_SG_USAGE_ON_TRANSLATION): likewise. - (SQL_SG_WITH_GRANT_OPTION): likewise. - (SQL_SNVF_BIT_LENGTH): likewise. - (SQL_SNVF_CHAR_LENGTH): likewise. - (SQL_SNVF_CHARACTER_LENGTH): likewise. - (SQL_SNVF_EXTRACT): likewise. - (SQL_SNVF_OCTET_LENGTH): likewise. - (SQL_SNVF_POSITION): likewise. - (SQL_SP_BETWEEN): likewise. - (SQL_SP_COMPARISON): likewise. - (SQL_SP_EXISTS): likewise. - (SQL_SP_IN): likewise. - (SQL_SP_ISNOTNULL): likewise. - (SQL_SP_ISNULL): likewise. - (SQL_SP_LIKE): likewise. - (SQL_SP_MATCH_FULL): likewise. - (SQL_SP_MATCH_PARTIAL): likewise. - (SQL_SP_MATCH_UNIQUE_FULL): likewise. - (SQL_SP_MATCH_UNIQUE_PARTIAL): likewise. - (SQL_SP_OVERLAPS): likewise. - (SQL_SP_QUANTIFIED_COMPARISON): likewise. - (SQL_SP_UNIQUE): likewise. - (SQL_SQL_CONFORMANCE): likewise. - (SQL_SQL92_DATETIME_FUNCTIONS): likewise. - (SQL_SQL92_FOREIGN_KEY_DELETE_RULE): likewise. - (SQL_SQL92_FOREIGN_KEY_UPDATE_RULE): likewise. - (SQL_SQL92_GRANT): likewise. - (SQL_SQL92_NUMERIC_VALUE_FUNCTIONS): likewise. - (SQL_SQL92_PREDICATES): likewise. - (SQL_SQL92_RELATIONAL_JOIN_OPERATORS): likewise. - (SQL_SQL92_REVOKE): likewise. - (SQL_SQL92_ROW_VALUE_CONSTRUCTOR): likewise. - (SQL_SQL92_STRING_FUNCTIONS): likewise. - (SQL_SQL92_VALUE_EXPRESSIONS): likewise. - (SQL_SR_CASCADE): likewise. - (SQL_SR_DELETE_TABLE): likewise. - (SQL_SR_GRANT_OPTION_FOR): likewise. - (SQL_SR_INSERT_COLUMN): likewise. - (SQL_SR_INSERT_TABLE): likewise. - (SQL_SR_REFERENCES_COLUMN): likewise. - (SQL_SR_REFERENCES_TABLE): likewise. - (SQL_SR_RESTRICT): likewise. - (SQL_SR_SELECT_TABLE): likewise. - (SQL_SR_UPDATE_COLUMN): likewise. - (SQL_SR_UPDATE_TABLE): likewise. - (SQL_SR_USAGE_ON_CHARACTER_SET): likewise. - (SQL_SR_USAGE_ON_COLLATION): likewise. - (SQL_SR_USAGE_ON_DOMAIN): likewise. - (SQL_SR_USAGE_ON_TRANSLATION): likewise. - (SQL_SRJO_CORRESPONDING_CLAUSE): likewise. - (SQL_SRJO_CROSS_JOIN): likewise. - (SQL_SRJO_EXCEPT_JOIN): likewise. - (SQL_SRJO_FULL_OUTER_JOIN): likewise. - (SQL_SRJO_INNER_JOIN): likewise. - (SQL_SRJO_INTERSECT_JOIN): likewise. - (SQL_SRJO_LEFT_OUTER_JOIN): likewise. - (SQL_SRJO_NATURAL_JOIN): likewise. - (SQL_SRJO_RIGHT_OUTER_JOIN): likewise. - (SQL_SRJO_UNION_JOIN): likewise. - (SQL_SRVC_DEFAULT): likewise. - (SQL_SRVC_NULL): likewise. - (SQL_SRVC_ROW_SUBQUERY): likewise. - (SQL_SRVC_VALUE_EXPRESSION): likewise. - (SQL_SSF_CONVERT): likewise. - (SQL_SSF_LOWER): likewise. - (SQL_SSF_SUBSTRING): likewise. - (SQL_SSF_TRANSLATE): likewise. - (SQL_SSF_TRIM_BOTH): likewise. - (SQL_SSF_TRIM_LEADING): likewise. - (SQL_SSF_TRIM_TRAILING): likewise. - (SQL_SSF_UPPER): likewise. - (SQL_STANDARD_CLI_CONFORMANCE): likewise. - (SQL_STATIC_CURSOR_ATTRIBUTES1): likewise. - (SQL_STATIC_CURSOR_ATTRIBUTES2): likewise. - (SQL_SU_DML_STATEMENTS): likewise. - (SQL_SU_INDEX_DEFINITION): likewise. - (SQL_SU_PRIVILEGE_DEFINITION): likewise. - (SQL_SU_PROCEDURE_INVOCATION): likewise. - (SQL_SU_TABLE_DEFINITION): likewise. - (SQL_SVE_CASE): likewise. - (SQL_SVE_CAST): likewise. - (SQL_SVE_COALESCE): likewise. - (SQL_SVE_NULLIF): likewise. - (SQL_UB_FIXED): likewise. - (SQL_UB_VARIABLE): likewise. - (SQL_UNION_STATEMENT): likewise. - (SQL_UPDATE_BY_BOOKMARK): likewise. - (SQL_US_UNION): likewise. - (SQL_US_UNION_ALL): likewise. - (SQL_DESC_ROWVER): likewise. - (SQL_GUID): likewise. - (SQL_C_GUID): likewise. - (ODBC_STD): likewise. - (SQLAllocHandle): likewise. - (SQLAllocEnv(p)): likewise. - (SQL_YEAR): likewise. - (SQL_MONTH): likewise. - (SQL_DAY): likewise. - (SQL_HOUR): likewise. - (SQL_MINUTE): likewise. - (SQL_SECOND): likewise. - (SQL_YEAR_TO_MONTH): likewise. - (SQL_DAY_TO_HOUR): likewise. - (SQL_DAY_TO_MINUTE): likewise. - (SQL_DAY_TO_SECOND): likewise. - (SQL_HOUR_TO_MINUTE): likewise. - (SQL_HOUR_TO_SECOND): likewise. - (SQL_MINUTE_TO_SECOND): likewise. - (SQL_ATTR_ANSI_APP): likewise. - (SQL_AA_TRUE): likewise. - (SQL_AA_FALSE): likewise. - - * include/sqltypes.h (#pragma pack(push,1), #pragma pack(pop)): remove. - (struct tagSQL_YEAR_MONTH): add for ODBC3.x. - (struct tagSQL_DAY_SECOND): likewise. - (struct tagSQL_INTERVAL_STRUCT): likewise. - (struct tagSQL_NUMERIC_STRUCT): likewise. - (struct tagSQLGUID): add for 0DBC3.50. - (enum SQLINTERVAL): add for ODBC3.x. - (SQLWCHAR): add typedef. - (SQLTCHAR): add typedef, conditional on UNICODE. - (SQLLEN): add typedef for _WIN64, define for _WIN32. - (SQLULEN): likewise. - (SQLROWOFFSET): likewise. - (SQLROWCOUNT): likewise. - (SQLTRANSID): likewise. - (SQLSETPOSIROW): likewise. - (SQLHANDLE): add ODBC3.x typedef. - (SQLHDESC): likewise. - (SQLDATE): likewise. - (SQLDECIMAL): likewise. - (SQLDOUBLE): likewise. - (SQLFLOAT): likewise. - (SQLNUMERIC): likewise. - (SQLREAL): likewise. - (SQLTIME): likewise. - (SQLTIMESTAMP): likewise. - (SQLVARCHAR): likewise. - (SQLBIGINT): likewise. - (SQLUBIGINT): likewise. - (SQL_DATE_STRUCT): likewise. - (SQL_TIME_STRUCT): likewise. - (SQL_TIMESTAMP_STRUCT): likewise. - (ODBCINT64): add ODBC3.x define. - - * lib/odbc32.def : regenerate. - -Fri Jan 26 15:59:31 2001 Earnie Boyd - * include/objbase.h: (COM_RIGHTS): Add definition. - (tagSTDMSHLFLAGS): add enumeration. - (CoInitializeEx): Add prototypes. - (CoGetStdMarshalEx): ditto. - (CoCreateInstanceEx): ditto. - (CoInitializeSecurity): ditto. - (CoGetCallContext): ditto. - (CoQueryProxyBlanket): ditto. - (CoSetProxyBlanket): ditto. - (CoCopyProxy): ditto. - (CoQueryClientBlanket): ditto. - (CoImpersonateClient): ditto. - (CoRevertToSelf): ditto. - (CoQueryAuthenticationServices): ditto. - (CoSwitchCallContext): ditto. - (CoGetInstanceFromFile): ditto. - (CoGetInstanceFromIStorage): ditto. - * include/objidl.h: (SOLE_AUTHENTICATION_SERVICE): Add structure. - (SOLE_AUTHENTICATION_INFO): ditto. - (EOLE_AUTHENTICATION_CAPABILITIES): Add enumeration. - (COLE_DEFAULT_PRINCIPAL): Add definition. - (COLE_DEFAULT_AUTHINFO): Ditto. - * include/rpcdce.h: (RPC_C_AUTHZ_DEFAULT): Add definition. - (RPC_PROTSEQ_VECTOR) Fix typo. - (RpcRaiseException): add DECLSPEC_NORETURN attribute. - * include/winbase.h: (FreeLibraryAndExitThread): add DECLSPEC_NORETURN - attribute. - -Fri Jan 26 13:34:55 2001 Earnie Boyde - - * lib/msvcp60.def: Apply Danny Smith patch 103321. - 2001-01-17 Danny Smith . - New file. - -Fri Jan 26 11:34:04 2001 Christopher Faylor - - * include/winnt.h: Add PTOKEN_USER. - -Tue Jan 16 13:53:30 2001 Earnie Boyd - - * include/sqlucode.h: Apply Danny Smith patch 102443 - 2000-11-20 Danny Smith - New file. - -Tue Jan 16 13:36:45 2001 Earnie Boyd - - * lib/odbccp32.def: Apply Danny Smith patch 102442 - 2000-11-20 Danny Smith - New file. - -Tue Jan 16 12:45:20 2001 Earnie Boyd - - * include/odbcinst.h: Apply Danny Smith patch 102441 - 2000-11-20 Danny Smith - New file. - -Mon Dec 25 12:22:19 2000 Christopher Faylor - - * lib/Makefile.in: Don't make "links" to include/w32api directory. - -Wed Dec 20 13:34:00 2000 Corinna Vinschen - - * include/winbase.h: Add prototype for SetSecurityDescriptorControl. - -Mon Dec 11 13:11:36 2000 Christopher Faylor - - * lib/Makefile.in: Install headers and libraries in tooldir. - -2000-12-04 Danny Smith - - * include/winnls.h: NORM_IGNORE* remove duplicate defines. - SORT_STRINGSORT: ditto. - CMAP*: ditto. - CTRY_*: add new defines. - LGRPID_*: ditto. - LCMAP*: change defines to hex notation. - CALID: change from ULONG to DWORD. - CALTYPE: ditto. - _cpinfoex[AW]: add structure. - FoldString: correct Unicode mappings. - GetCPInfoEx[AW]: add prototypes. - EnumCalendarInfoEx[AW]: ditto. - EnumDateFormatsEx[AW]: ditto. - EnumSystemLanguageGroups[AW]: ditto. - EnumLanguageGroupLocales[AW]: ditto. - EnumUILanguages[AW]: ditto. - GetSystemDefaultUILanguage[AW]: ditto. - GetUserDefaultUILanguage[AW]: ditto. - IsValidLanguageGroup[AW]: ditto. - CALINFO_ENUMPROCEX[AW]: add function pointer typedef - LANGUAGEGROUP_ENUMPROC[AW]: ditto - LANGGROUPLOCALE_ENUMPROC[AW]: ditto - UILANGUAGE_ENUMPROC[AW]: ditto - DATEFMT_ENUMPROCEX[AW]: ditto - LPCURRENCYFMT[AW]: add structure pointer typedef - LPNUMBERFMT[AW]: ditto - -Sun Dec 02 14:21:02 2000 Matt Hargett - - * include/winbase.h: Added a define for INVALID_SET_FILE_POINTER, a - possible return code for the SetFilePointer() win32 API call. - -Mon Oct 9 11:49:00 2000 Corinna Vinschen - - * include/winnt.h: Add missing FILE_NAMED_STREAMS define. - -2000-11-06 Earnie Boyd - - * Makefile.in: increment VERSION. - (dist:) Rename to srcdist. Create new dist target to call - srcdist and bindist targets. - (srcdist:) New target. - (clean-top:) add call to mostlyclean-top and add rm of distribution - tarballs. - * lib/Makefile.in: (uninstall:) modify to remove files from the - new w32api subdirectory and to remove w32api subdirectory. - (xuninstall:) Ditto. - TODO: Add a task to redo the clean targets of Makefile.in - -Fri Nov 3 21:50:47 2000 Christopher Faylor - - * lib/Makefile.in: Install header files in w32api subdirectory. - -2000-10-31 Earnie Boyd - - * CONTRIBUTIONS: New file. - * README: Change the maintained by header. - * TODO: Add a note about checking the TODO. - -2000-10-31 Earnie Boyd - - * Merge in accepted changes from - 2000-10-23 Danny Smith - * include/basetyps.h: add comment for GUID_DEFINED - * include/lm.h: add includes for lmerr.h and lmserver.h - * include/lmcons.h: add W2K typedefs LMSTR, LMCSTR - * include/lmerr.h: add error codes - * include/lmserver.h: replace LPTSTR with LPWSTR, - LPTCSTR with LPWCSTR in structures and prototypes - * include/lmshare.h: ditto - * include/lmuse.h: ditto - * include/lmstats.h: ditto - * include/oleauto.h: add function prototype SystemTimeToVariantTime - * include/winbase.h: change first argument of CommConfigDialog to const - * include/windowsx.h: add macros defining FAR versions of - mem and string functions for porting from Win16 code - * include/winioctl.h: added IOCTL_STORAGE defines - * include/winnetwk.h: added WNNC_NET flags - * include/winnt.h: add include of ; - add structs; add pointer typedefs for TOKEN structs - * include/winsock.h: add guard around BSD-ish typedefs - * include/wtypes.h: new VARENUM enums, new WIN32/WIN64 compat. macros - * include/basetsd.h: new file - * include/raserror.h: ditto - * include/rassapi.h: ditto - * include/ras.h: ditto - comment from Earnie: replaced original ras.h contribution with Danny's - contribution as it is more complete. - * include/rpcndr.h: add default definition for __RPCNDR_H_VERSION__ - -Mon Oct 19 13:55:00 2000 Earnie Boyd - - * Makefile.in: increment VERSION. Change tar file name for dist and - bindist targets to be more standard. - * config.guess: Update with the currently published file. - * config.sub: ditto. - * configure.in: Use value of build_alias instead of testing for - directory names to set BUILDENV. - * configure: ditto. - * lib/Makefile.in: Change the name of the targets install, - install-headers and install-libraries to xinstall, xinstall-headers - and xinstall-libraries for system target specified installation. - Recreate targets install, install-headers and install-libraries for - exec-prefix specified installation. Ditto for the uninstall targets of - the same name. - -Mon Oct 9 11:49:00 2000 Corinna Vinschen - - * include/iprtrmib.h: Further layout changes according to standard. - * include/iptypes.h: Ditto. - * include/ntdef.h: Ditto. - * include/ntsecapi.h: Ditto. - * include/subauth.h: Ditto. - -Mon Oct 9 11:32:00 2000 Corinna Vinschen - - * include/ntsecapi.h: Fix PLSA_UNICODE_STRING define. - -Sun Oct 8 18:26:00 2000 Corinna Vinschen - - * include/ntsecapi.h: New file. - * include/subauth.h: Ditto. - * include/ipexport.h: Fix global header define not to contain - trailing underscore. Change layout according to standard. - * include/iphlpapi.h: Ditto. - * include/ipifcons.h: Ditto. - * include/iprtrmib.h: Ditto. - * include/iptypes.h: Ditto. - * include/ntdef.h: Ditto. Define conditional datatypes dependent - of inclusion of ntsecapi.h and subauth.h. - * lib/secur32.def: New stub for secur32.dll. - -Mon Oct 2 11:15:00 2000 Corinna Vinschen - - * include/ras.h: New file. - * lib/rasapi32.def: Add symbols for RasEnumDevicesA and - RasEnumDevicesW. - -Mon Oct 2 10:56:00 2000 Corinna Vinschen - - * include/ntdef.h: Add define for NTAPI. - -Sun Oct 1 23:55:00 2000 Corinna Vinschen - - * include/ipexport.h: Add missing `extern "C"' directives. - * include/iphlpapi.h: Ditto. - * include/iprtrmib.h: Ditto. - * include/iptypes.h: Ditto. - -Sun Oct 1 22:09:00 2000 Corinna Vinschen - - * include/ipifcons.h: New header file. - * include/iprtrmib.h: Move operational states to ipifcons.h. - * include/iphlpapi.h: Add missing parameters to GetIfTable() - declaration. - -Sun Oct 1 16:30:00 2000 Corinna Vinschen - - * include/iprtrmib.h: Add missing MIB_IF_OPER_STATUS_xxx definitions. - -Sun Oct 1 16:13:00 2000 Corinna Vinschen - - * lib/iphlpapi.def: New stub for iphlpapi.dll. - * include/iptypes.h: New header file. - * include/ipexport.h: Ditto. - * include/iphlpapi.h: Ditto. - * include/iprtrmib.h: Ditto. - -Sun Oct 1 2:54:00 2000 Corinna Vinschen - - * include/ntdef.h: New file. - -Fri Aug 18 17:17:00 2000 Corinna Vinschen - - * include/winnt.h:Add enums for TokenRestrictedSids and TokenSessionId - to TOKEN_INFORMATION_CLASS type. - Add QUOTA_LIMITS type. - -Tue Aug 8 21:29:00 2000 Corinna Vinschen - - * include/userenv.h: New header file. - * lib/userenv.def: New stub for userenv.dll. - -Tue Aug 8 10:25:14 2000 Christopher Faylor - - * include/winuser.h: Correct PCWPSTRUCT typo. - (discovered by Axel Riese) - -2000-07-27 DJ Delorie - - * include/windows.h: optimize non-inclusion of repeat headers - -Fri Jul 21 12:10:00 2000 Corinna Vinschen - - * include/winnt.h: Add missing typedefs for PTOKEN_SOURCE and - LPTOKEN_SOURCE. - -2000-07-11 DJ Delorie - - * include/shlobj.h: add CSIDL_COMMON_* - -Tue Jun 27 19:35:00 2000 Corinna Vinschen - - * include/winbase.h: Add stream ids BACKUP_OBJECT_ID, - BACKUP_REPARSE_DATA and BACKUP_SPARSE_BLOCK. - Add file open flags FILE_FLAG_OPEN_REPARSE_POINT and - FILE_FLAG_OPEN_NO_RECALL. - * winioctl.h: Add device io control codes FSCTL_GET_REPARSE_POINT, - FSCTL_SET_REPARSE_POINT and FSCTL_DELETE_REPARSE_POINT. - * winnt.h: Add typedef for GUID. - Add file attributes FILE_ATTRIBUTE_ENCRYPTED, - FILE_ATTRIBUTE_SPARSE_FILE, FILE_ATTRIBUTE_REPARSE_POINT and - FILE_ATTRIBUTE_NOT_CONTENT_INDEXED. - Add volume attributes FILE_VOLUME_QUOTAS, FILE_SUPPORTS_SPARSE_FILES, - FILE_SUPPORTS_REPARSE_POINTS, FILE_SUPPORTS_REMOTE_STORAGE, - FILE_SUPPORTS_OBJECT_IDS and FILE_SUPPORTS_ENCRYPTION. - Add several reparse point defines and typedefs for REPARSE_DATA_BUFFER, - REPARSE_GUID_DATA_BUFFER and REPARSE_POINT_INFORMATION. - * lib/psapi.def: New file. - -Thu Jun 22 14:36:19 2000 Christopher Faylor - - * rpcdce.h: Protect OPTIONAL definition since it may be (legally) - previously defined. - * windef.h : Ditto. - -2000-06-14 Kazuhiro Fujieda - - * include/winnt.h: Add some missing defines related to locale - identifiers. Translate values of LANG_* and SUBLANG_* into hexadecimal. - -Thu May 27 15:57:00 2000 Corinna Vinschen - - * include/wincrypt.h: Add missing CRYPT_MACHINE_KEYSET define. - -Thu May 18 11:37:00 2000 Corinna Vinschen - - * include/winnt.h: Add some missing TAPE_DRIVE_* defines. - -Wed Apr 26 11:04:18 2000 Christopher Faylor - - * include/wininet.h: Add another "INTERNET_OPTIONS". - -2000-04-25 Mumit Khan - - * include/winspool.h: Add 2 more PRINTER_ATTRIBUTE_* macros. - -2000-04-25 Martin Kotulla - - * include/ddeml.h (DdeCreateStringHandle{A,W}): Fix prototype. - * include/shlobj.h (IShellLink{A,W}::GetPath): Fix prototype. - * include/wingdi.h: Add LPFNDEVMODE and LPFNDEVCAPS callbacks. - * include/winuser.h: Add WM_* macros. Add PCOPYDATASTRUCT typedef. - -Mon Apr 10 22:58:25 2000 Christopher Faylor - - * include/winbase.h: Change first argument of ENUMRES* types to - coincide with Microsoft usage. - -Sat Apr 1 20:51:47 2000 Christopher Faylor - - * include/wininet.h: Add three more "INTERNET_OPTIONS". - -2000-03-30 Mumit Khan - - * include/winbase.h (CreateHardLink{A,W}): Add prototypes. - * include/winerror.h (ERROR_TOO_MANY_LINKS): Add macro. - * include/winnt.h (SEC_*): Add macros. - * lib/th32.def: Use Kernel32.dll instead of TH32.DLL. - * include/ole.h: Workaround for C++ parser bug. - * include/rpcdcep.h: Likewise. - * include/winsock.h: Likewise. - -Sun Mar 26 13:41:47 2000 Christopher Faylor - - * include/winnt.h: Eliminate duplicate PCONTEXT and LPCONTEXT typedefs. - -2000-02-28 Mumit Khan - - Patches from Jan Nijtmans : - * include/wtypes.h (PBLOB, LPBLOB): Define. - * include/winsock2.h: Much more complete version. - (FD_SET, SOMAXCONN): Protect common macros defined by winsock.h. - - Patches from Jan Nijtmans : - * include/winsock.h (FD_CLR): Add missing ')'. - (timercmp): Fix macro to handle all 6 comparison operators. - (AF_FIREFOX, AF_UNKNOWN1, AF_BAN, AF_ATM, AF_INET6): Define. - (AF_MAX): Update. - (PF_FIREFOX, PF_UNKNOWN1, PF_BAN, PF_ATM, PF_INET6): Define. - - * include/largeint.h: Rename HAVE_INT64 macro to _HAVE_INT64 to avoid - namespace pollution. - * include/rpcndr.h: Likewise. - * include/winnt.h: Likewise. - * include/shlobj.h (SHGetDataFromIDList{A,W}): Fix typo. - (SHGetSpecialFolderPath{A,W}): Add prototypes. - * lib/ole32.def: Add missing exports. - * include/winbase.h (TLS_MINIMUM_AVAILABLE): Move macro from here - * include/winnt.h (TLS_MINIMUM_AVAILABLE): to here. - (NT_TIB): Define. - * include/tlhelp32.h: New file. - -Mon Feb 28 17:08:03 2000 Christopher Faylor - - * include/rapi.h: New file. - * lib/rapi.def: New file. - -2000-02-11 Axel Riese - - * oaidl.h (LPTYPECOMP): Remove multiple definition. - -2000-02-03 Mumit Khan - - * Snapshot 2000-02-03. - -2000-01-21 Chris Faylor - - * include/winnt.h: Add ARM support. - -2000-01-19 Mumit Khan - - From Greg Primes : - * include/oaidl.h (DESCKIND): Define macro. - (ITypeComp): Define interface. - (ITypeComp): Likewise. - * rpcndr.h (DECLSPEC_UUID): Define macro. - (MIDL_INTERFACE): Likewise. - - * include/psapi.h: New file. - * include/imagehlp.h: New file. - * lib/imagehlp.def: New file. - - * include/oaidl.h (tagVARIANT): Update fields. - - From Craig Lanning : - * include/commctrl.h: Add some TCS_* macros. - * include/winnls.h (IsValidLocale): Add prototype. - -2000-01-18 Mumit Khan - - * include/oaidl.h: OLE Patches from "Fifer, Eric" - needed to build Win32::OLE perl module. - * include/objbase.h: Likewise. - * include/objidl.h: Likewise. - * include/ocidl.h: New file. - * include/oleauto.h: Likewise. - * include/wtypes.h: Likewise. - * lib/oleaut32.def: Likewise. - - * include/lmserver.h (NetServerTransportAddEx): Fix prototype. - Thanks to "Jon Leichter" . - * include/commctrl.h (LVM_FINDITEM): Fix typo in macro. - * include/winbase.h: Add GetLongPathName{A,W} prototypes. - * include/shellapi.h (SHGetFileInfo): Add macro. Thanks to - "Axel Riese" . - (CommandLineToArgvW): Fix prototype. Thanks to "Frans E. van - Dorsselaer" . - * include/httpext.h: New file. Thanks to Jan Nijtmans - . - * include/mmsystem.h (WAVEFORMATEX): Guard definition to avoid - redefinition of LPCWAVEFORMATEX in DirectX headers. - (CALLBACK_NULL): Define to be 0. Thanks to Krzysztof Nikiel - . - * include/sqlext.h (SQLDriverConnnect): Fix prototype. - * include/windef.h (HRESULT): Guard definition to avoid - redefinition in DirectX headers. - * include/winnt.h: Add target macros from windows.h. - * include/windows.h: Update synch comment for target macros. - (_ANONYMOUS_STRUCT): Define for GCC 2.95 and newer. - (_ANONYMOUS_UNION): Likewise. - * include/wingdi.h (AbortPrinter): Move from here ... - * include/winspool.h (AbortPrinter): to here and fix linkage. - (MONITOR_INFO_2{A,W}): Define. - * include/winsock.h (htons): Fix argument. - (htonl): Likewise. - * include/winsock2.h (SO_*, MAX_*, WSA_*): Add macros. - (GROUP): Define. - (GUID): Define conditionally. - (WSAPROTOCOLCHAIN, WSAPROTOCOL_INFO): Define. - (WSASocket*): Declare. - * include/basetyps.h (GUID): Guard REGUID and LPGUID as well. - - * lib/dsetup.def: Remove leading underscore. - * lib/dsound.def: Likewise. - * lib/ws2_32.def: Likewise. - -Wed Dec 22 02:53:22 1999 Mumit Khan - - * include/windef.h (HMONITOR, HTERMINAL, HWINEVENTHOOK): Define - handles. - - * lib/Makefile.in (EXTRA_OBJS): Add dinput.o. - * lib/dinput.c: Include windows.h for GCC. - * lib/dxguid.c: Likewise. - (INITGUID): Define macro. - - * include/objidl.h (ISequentialStream): Define interface. - (IStream): Derive from ISequentialStream. - - * include/objidl.h (IStream::{LockRegion, UnlockRegion, Stat, - Clone}): Mark as PURE. - (IDataObject::EnumDAdvise): Likewise. - * include/oleidl.h (IDropSource::GiveFeedback): Likewise. - (IViewObject::Unfreeze): Likewise. - (IViewObject2::Unfreeze): Likewise. - - * include/objidl.h: Add various IID_ declarations. - * include/olectl.h: Likewise. - * include/oleidl.h: Likewise. - -Tue Dec 21 02:22:14 1999 Mumit Khan - - * Snapshot 1999-12-21. - - * include/winbase.h (CancelIO): Rename to CancelIo. - * include/winsvc.h (LPHANDLER_FUNCTION): Fix prototype. - * include/winuser.h (PEVENTMSG, LPEVENTMSG): Declare. - - * Merge with winsup-19991218. - * include/winnt.h: Add defines for W2K ACL control flags. - - * Merge with Anders Norlander's 19991130 snapshot. - - * include/windows.h: #include mmsystem.h ifndef WIN32_LEAN_AND_MEAN. - * include/winbase.h (EXCEPTION_INVALID_HANDLE): Define. - - Patch from Harold Weissfield - * include/shellapi.h: Added some ABN_* defines. - - * include/commctrl.h (_TrackMouseEvent): Add prototype. - * lib/comctl32.def (_TrackMouseEvent): Import. - * include/winuser.h: Misc. fixes from Sang Cho - . - * include/winuser.h (SM_CMETRICS): Define to 76 or 83 depending on - value of _WIN32_WINNT. - * include/winuser.h: Reorganize SM_* defines in numerical order. - -Tue Dec 14 21:58:03 1999 Mumit Khan - - * include/windef.h: Make RECTL a distinct type from RECT. - * include/windows.h: Define upto 8 DUMMYUNIONNAMEs for DirectX. - * include/winuser.h (CDS_): Update (Franco Bez ). - (COMPAREITEMSTRUCT): Fix fields. - (SERIALKEYSA): Likewise. - (SERIALKEYSW): Likewise.. - * include/winbase.h (CRITICAL_SECTION_DEBUG): Likewise. - (WIN32_FIND_DATAA): Likewise. - (WIN32_FIND_DATAW): Likewise. - * include/commdlg.h (SNDMSG): Define. - * include/winsock.h (SO_UPDATE_ACCEPT_CONTEXT): Define. - (SO_CONNECT_TIME): Likewise. - (AcceptEx): Declare. - (GetAcceptExSockaddrs): Likewise. - * include/winsock2.h: Fix typo in #ifdef __cplusplus. - * include/winspool.h: Add RC_INVOKED guard. - * lib/wsock32.def (AcceptEx@32): Export. - (GetAcceptExSockaddrs@32): Likewise. - -Thu Nov 18 00:12:43 1999 Mumit Khan - - * Snapshot 1999-11-18. - - * include/oaidl.h (tagVARIANT): Rename pbool to pboolVal needed by - Octopod C++ IDE (and MSVC compatibility). - * include/oleauto.h (V_BOOLREF(X)): Likewise. - * include/shellapi.h (ShellAbout*): Fix typo. - * wingdi.h (FW_ULTRABOLD): Likewise. - * include/winnt.h (_TAPE_ERASE, _TAPE_PREPARE, _TAPE_SET_POSITION, - _TAPE_WRITE_MARKS): Add missing fields and fix existing ones. - Add packing directives for various structures. All structure - sizes now conform to MSVC. - -Sun Nov 7 02:50:09 1999 Mumit Khan - - Released 1999-11-07. - -Sat Nov 6 21:25:48 1999 Mumit Khan - - * include/winsock2.h: New file. Mostly a stub for now. - * include/winbase.h (DllMain): Delete prototype. - * include/commctrl.h (Header_SetItem): Fix macro. - * include/{isguids.h, lmerrlog.h, mcx.h, objfwd.h, olectl.h, - regstr.h, richole.h, rpcdce.h, rpcdcep.h, rpcnsi.h, rpcproxy.h, - shlguid.h, sqltypes.h, winperf.h}: Enclose in extern "C" if c++. - - Merge in changes from wxWindows. - * include/basetyps.h (GUID_DEFINED, UUID_DEFINED): Add guards. - * include/oaidl.h (DISPID_*): Add macros. - (IID_ITypeLib, IID_ICreateTypeInfo, IID_ICreateTypeInfo2, - IID_ICreateTypeLib, IID_ICreateTypeLib2, IID_ITypeInfo, - IID_IErrorInfo, IID_IDispatch, IID_ICreateErrorInfo): Declare. - * include/objidl.h (IDataObject): Fix EnumFormatEtc parameter. - - Merge in changes from Octopod C++ IDE group. - * include/commctrl.h (NMHEADERA, NMHEADERW): Define. - (Header_InsertItem): Fix macro. - * include/oaidl.h (IID_IDispatch): Declare. - (IID_ISupportErrorInfo): Likewise. - (IDispatch): Rename Invoked to Invoke. - * include/objidl.h (IPersist): Fix GetClassID. - * include/oleauto.h (VectorFromBstr): Declare. - (BstrFromVector): Likewise. - * include/olectl.h (OLEMISC_*): Update. - * include/olectlid.h (IID_IDispatch): Declare. - * include/oleidl.h (IOleObject): Fix GetExtent and SetExtent. - (IOleInPlaceFrame): Fix. - (ISupportErrorInfo): Define. - (IErrorInfo): Define. - * include/winuser.h (SIF_TRACKPOS): Define. - -Wed Nov 3 19:34:12 1999 Mumit Khan - - Fix Merge errors: - * include/winnt.h (PSID): Uncomment definition. - (PISID): Rename from PSID. - (struct _TAPE_GET_MEDIA_PARAMETER): Remove reserved field. - (struct _SECURITY_ATTRIBUTES): Remove multiple definition. - - * include/lmalert.h, include/lmbrowsr.h, include/lmchdev.h, - include/lmconfig.h, include/lmerrlog.h, include/lmmsg.h, - include/lmremutl.h, include/lmrepl.h, include/lmserver.h, - include/lmsvc.h, include/lmwksta.h, include/oaidl.h, - include/shellapi.h, include/winbase.h, include/wingdi.h, - include/winnt.h, include/winsock.h: Merged with winsup-19991026. - -Sun Oct 31 00:23:50 1999 Mumit Khan - - * include/wingdi.h (PHYSICAL*, SCALINGFACTOR*): New. From - Marius Kjeldahl . - -Sun Aug 29 18:07:42 1999 Mumit Khan - - * include/winnt.h (APPLICATION_ERROR_MASK): Add macros. - (ERROR_SEVERITY_*): Likewise. - -Tue Aug 17 21:05:21 1999 Mumit Khan - - * include/winbase.h (TLS_OUT_OF_INDEXES): Add macro. - (DllMain): Fix prototype. - -Mon Aug 2 23:31:30 1999 Mumit Khan - - * include/commdlg.h: Enclose within pack(push,1) and pack(pop). - (cderr.h): Don't include. - * include/winuser.h: Fix macro definitions. - -Mon Aug 02 14:31:37 1999 Anders Norlander - - Merge with winsup 1999-07-29: - * include/wincon.h (MOUSE_WHEELED): Define. - * include/winnt.h (PSECURITY_ATTRIBUTES): Add type. - (SECURITY_DESCRIPTOR): Add struct type. - (PSECURITY_DESCRIPTOR): Pointer to above type. BEWARE: this type - is equal to PVOID in the Platform SDK! So don't depend on accessing - members through ->. - -Mon Aug 02 13:58:52 1999 Anders Norlander - - * lib/Makefile.in (install-headers): Don't @ commands. - (install-libraries): Ditto. - -Mon Aug 02 13:49:01 1999 Anders Norlander - - * include/sqlext.h: Use #include instead of "sql.h". - -Mon Aug 02 13:47:15 1999 Anders Norlander - - Patch from Mumit Khan: - * include/windows.h: Fix typo in winsock.h include guard and add - _UWIN to the list. - * include/winnt.h (__int64): Undefine first. - (struct _SID): Declare. - -Mon Aug 02 13:40:28 1999 Anders Norlander - - * include/winnt.h: Add some REG_* defines reported by Boris Lantrewitz. - -Mon Aug 02 13:33:11 1999 Anders Norlander - - Patch from Mumit Khan: - * Makefile.in: Do the right thing when cross-compiling. - * include/windef.h: Don't define _export and __export if already - defined. - -Mon Aug 02 13:24:43 1999 Anders Norlander - - * include/basetyps.h (DECLARE_INTERFACE): Use com_interface attribute. - (DECLARE_INTERFACE_): Ditto. - -Mon Aug 02 13:17:26 1999 Anders Norlander - - * include/mmsystem.h (HWAVEOUT): Fix missing ')' - - Reported by Brad Porter - * include/wingdi.h (FW_ULTRALIGHT): Add. - (FW_DEMIBOLD): Add. - (FW_ULTRABOLD): Add. - (FW_BLACK): Add. - (JOHAB_CHARSET): Add. - (VIETNAMESE_CHARSET): Add. - - -1999-05-15 Anders Norlander - - * lib/scrnsave.c (WinMain): Remove dependencies on C library. - * lib/Makefile.in (Makefile): Regenerate. - * include/pshpack[1248].h: New files, if a program would use any of - them. - * include/poppack.h: Ditto. - * include/windef.h (_WIN32_WINNT): Define - * include/windows.h: Remove DUMMYUNIONNAME[45]. - * include/windows.h: Correctly define _M_IX86 to reflect the target - processor. - * include/windows.h: Add preliminary support for other architectures. - * include/winnt.h: Add CONTEXT structure for PPC and ALPHA. - * include/winnt.h: Remove PACKED from U/LARGE_INTEGER - * include/winnt.h (LUID_AND_ATTRIBUTES): Use pack(4) to solve alignment - issue with LARGE_INTEGER. - (ANSI_NULL): Define. - (PSZ): Define. - (ACL_REVISION[1234]): Define. - (MIN/MAX_ACL_REVISION): Define. - (PTCHAR): Define. - (LANG_USER_DEFAULT): Define. - (LANG_SYSTEM_DEFAULT): Define. - (LOCALE_NEUTRAL): Define. - (SORTVERSIONFROMLCID): Define. - * include/windef.h (UNREFERENCED_PARAMETER): Define. - (UNREFERENCED_LOCAL_VARIABLE): Define. - (DBG_UNREFERENCED_PARAMETER): Define. - (DBG_UNREFERENCED_LOCAL_VARIABLE): Define. - * lib/mswsock.def: New file. Imports for mswsock.dll. - * include/custcntl.h: New file. Necessary to compile some SDK - samples. - * include/winuser.h (SM_MOUSEWHEELPRESENT): Define. - (WM_MOUSEWHEEL): Define. - (WHEEL_DELTA): Define. - (WM_MOUSELAST): Redefine to reflect WM_MOUSEWHEEL. - (WM_NEXTMENU): Define. - (CharNextA): Fix prototype. - (CharNextW): Ditto. - -1999-05-14 Anders Norlander - - * include/winsock.h: Enclose in extern "C" if C++, huh? - * include/winuser.h(WM_SYNCPAINT): Define. From fltk. - -1999-05-13 Anders Norlander - - * include/windef.h (NULL): Define only ifndef - (TRUE): Ditto, was previously only defined ifndef FALSE - (PASCAL): Define as _pascal - (__pascal): Define - (WINAPIV): Define - (min,max): Define only ifndef NOMINMAX - -1999-05-10 Anders Norlander - - * include/commctrl.h: Support for Date/Calendar controls + IE controls. - You must define _WIN32_IE if you want support for it. - Modified patch from Nirmal Prasad . - -1999-05-10 Ron Aaron - - * include/wincon.h: Add some ButtonState flags and EventFlags. - -1999-05-10 Anders Norlander - - * include/basetyps.h: Don't support COM when __OBJC__ defined because - interface define causes mayhem. - (DEFINE_INTERFACE): Use comobject attribute only if HAVE_COMOBJECT is - defined. - * include/windows.h: Undefine BOOL if __OBJC__ defined - -1999-05-09 Chris Faylor - - * include/winnls.h: Define additional code pages. - -1999-05-09 Anders Norlander - - * include/winbase.h(RtlFillMemory): Parameters got passed in wrong - order, corrected. - (RtlZeroMemory): Use RtlFillMemory - -1999-05-04 Anders Norlander - - * include/winnt.h: Add PACKED to LARGE_INTEGER and ULARGE_INTEGER - to get the correct size when used in some structs. - (ULARGE_INTEGER): Ditto. - * include/winnt.h (TAPE_CREATE_PARTITION): Add struct. - * include/winnt.h: Add TAPE_* pointer types PTAPE_* - -1999-05-02 Nirmal Prasad - - * include/wininet.h: Enclose in extern "C" if c++ - (INTERNET_BUFFERSA/W): Define struct - * include/wininet.h: Add some HSR_* defines - -1999-05-02 Anders Norlander - - * include/winnt.h (IMAGE_FIRST_SECTION): Prepend missing paren - * include/winnt.h (UNALIGNED): Define - * include/windef.h (DECLSPEC_NORETURN): Define - - * include/wininet.h (INTERNET_MAX_NAME): Remove - (INTERNET_MAX_SCHEME_LENGTH): Define - (INTERNET_MAX_URL_LENGTH): Use INTERNET_MAX_SCHEME_LENGTH - * include/wininet.def: Completely redone, it was losing badly. - -1999-05-01 Anders Norlander - - * lib/dplayx.def: Remove '_' prefixes - * lib/shell32.def: Remove imports for IID_ContextMenu - -1999-04-29 Anders Norlander - - * Makefile.in (dist): Support dist target - * lib/Makefile.in (dist): Likewise - * lib/Makefile.in (uninstall-headers): Fix command - * Makefile.in (bindist): Target to build a prebuilt dist - - * lib/ws2_32.def: Winsock2 implib - - * include/largeint.h: New header - * include/largeint.c: Large integer support library - * lib/Makefile.in(EXTRA_LIBS): Add liblargeint.a - (EXTRA_OBJS): Add largeint.o - - * include/Makefile: Remove - * lib/Makefile: Remove - * Makefile: Remove - * configure.in: New autoconf script - * configure: generated configure script - * Makefile.in: autoconf makefile template - * lib/Makefile.in: Ditto - * include/test.c: mv to lib/test.c - * include/res.rc: mv to lib/res.rc - * include/TODO: mv to . - * include/Notes: mv to ./NOTES - -1999-04-28 Anders Norlander - - * include/zmouse.h (WHEEL_DELTA): Define - -Mon Apr 26 16:36:49 1999 Mumit Khan - - * include/ddeml.h (HSZPAIR): Declare. - * include/zmouse.h: New file. - -1999-04-27 Daniel Guerrero Miralles - - * lib/d3dim.def: New implib - * lib/d3drm.def: Ditto - * lib/d3dxof.def: Ditto - * lib/ddraw.def: Ditto - * lib/dinput.def: Ditto - * lib/dplayx.def: Ditto - * lib/dsetup.def: Ditto - * lib/dsound.def: Ditto - * lib/dinput.c: Guid library for DirectInput - * lib/dxguid.c: Guid library for DirectX - -1999-04-21 Anders Norlander - - * include/windowsx.h (GET_X_LPARAM): Missing macro added (reported - by Ron Aaron). - * include/windowsx.h (GET_Y_LPARAM): Also missing - * include/winnls.h (IsValidCodePage): Missing prototype added (reported - by Mumit Khan). - -1999-04-18 Anders Norlander - - * include/scrnsave.h: New header file for screen saver library - * lib/scrnsave.c: New file: screen saver library - -1999-04-17 Anders Norlander - - * include/regstr.h: Enclosed all strings in TEXT() macros so it - works well in when UNICODE is defined - -1999-04-17 Nirmal Prasad - - * include/winuser.h(STYLESTRUCT): New struct - * include/wingdi.h:(GOBJENUMPROC): This function type should - return void. - -1999-04-17 Anders Norlander - - * include/basetyps.h (LPGUID): New typedef - * lib/glut.def: Import library defintions for glut.dll - * lib/glu32.def: Ditto for glut32.dll - * include/winnt.h: Fixed handling of wchar_t typedef - * include/sql.h(SQL_NO_DATA_FOUND): Replace with SQL_NO_DATA - * include/sqlext.h(SQL_NO_DATA_FOUND): Define as SQL_NO_DATA - -1999-03-20 Anders Norlander - - * include/winbase.h(AbnormalTermination): Define as FALSE - * include/commctrl.h: Support for new progress bar messages/styles - -1999-03-20 Geoffrey Noer - - * include/commdlg.h(PageSetupDlg): New define - * include/richedit.h: Missing SCF_* defines - * include/winnt.h: Lots o' defines - * include/winbase.h(AllocateAndInitializeSid): Corrected prototype - -1999-03-09 Anders Norlander - - * include/commdlg.h: Removed pack pragma - * lib/comctl32.def(InitCommonControlsEx@4): Added import - -1999-03-08 Anders Norlander - - * Makefile: Set version to 0.1.5 - * lib/Makefile (clean): Fix typo - - * include/commctrl.h: Removed pack pragma - * include/cpl.h: Likewise - * include/dbt.h: Likewise - * include/dde.h: Likewise - * include/nddeapi.h: Likewise - * include/shellapi.h: Likewise - * include/wincrypt.h: Likewise - * include/lmaccess.h: Fixed USER_PRIV_ADMIN typo - - * include/winsock.h (netent): Define only ifndef __INSIDE_CYGWIN__ - (servent): Likewise - (protoent): Likewise - - * include/windows.h: Prevent inclusion of winsock.h if we are - using or compiling cygwin. Define Win32_Winsock to force inclusion. - -1999-01-08 Anders Norlander - - * include/winbase.h (CREATE_FORCEDOS): New define - -1999-01-07 Anders Norlander - - * include/wincon.h(KEY_EVENT_RECORD): Fixed packing problem on - (COORD): Likewise - * include/wingdi.h (BITMAPFILEHEADER): Fixed packing - * include/windows.h: Added DUMMYUNIONNAME4 and 5 - * include/winnt.h (LUID_AND_ATTRIBUTES_ARRAY): New type - (PLUID_AND_ATTRIBUTES_ARRAY): New type - - * include/ddeml.h: Removed unnecessary `#pragma pack' - * include/imm.h: Likewise - * include/nddeapi.h: Likewise - * include/nspapi.h: Likewise - * include/regstr.h: Likewise - * include/wincon.h: Likewise - * include/windef.h: Likewise - * include/winioctl.h: Likewise - * include/winnls.h: Likewise - * include/winsvc.h: Likewise - * include/winuser.h: Likewise - * include/winver.h: Likewise - * include/wtypes.h: Likewise - -1999-01-05 Anders Norlander - - * Makefile (VERSION): Set to 0.1.4 - * include/basetyps.h: Check for NOCOMOBJECT - * include/Makefile: Pass -DNOCOMOBJECT to g++ to avoid warnings - on comobject attribute. - * lib/kernel32.def: Added a few functions - * include/windef.h (DWORD): Changed back to unsigned long - - * include/windows.h: Include only winresrc.h if RC_INVOKED is defined, - winresrc.h in turn includes the necessary headers. This makes things - much simpler, no need to protect blocks of code in headers that - should not be seen by the resource compiler. - -1999-01-05 Geoffrey Noer - - * include/winbase.h (STATUS_INVALID_HANDLE): Added define - * include/wincon.h: Added console event type flags - * include/winnt.h (FILE_SHARE_DELETE): Added - (SECURITY_DESCRIPTOR): typedef as DWORD - - * include/winuser.h (WM_PENWINFIRST): Fixed typo - * include/winsock.h: Protect some blocks with __INSIDE_CYGWIN_ and - define u_* types only if _SYS_TYPES_H is not defined. - -1999-01-02 Anders Norlander - - * COPYING.LIB: Deleted - * README: Updated to reflect license changes - * include/shlobj.h: Remove extra comma on some enums - * include/windef.h: Changed DWORD typedef from unsigned long to - unsigned int in order to avoid warnings on bit fields that - use DWORD. - * include/Makefile (test): Compile with all warnings - * include/unknwn.h: Include objfwd.h - * include/winsock.h: Added missing copyright notices. - -1999-01-01 Anders Norlander - - * lib/winmm.def: Corrected LIBRARY statement - * include/mmsystem.h: Define mmioSeek codes if not already defined - * include/commctrl.h (CreateStatusWindowA): Corrected prototype - (CreateStatusWindowW): Likewise - - * include/winresrc.h: Include only files necessary instead of windows.h - * include/dde.h: Allow inclusion in resource scripts. - * include/winnt.h: Likewise - * include/commctrl.h: Likewise - * include/prsht.h: Likewise - * README: Updated - -1998-12-10 Anders Norlander - - * include/sqltypes.h (SQLHANDLE): Added this type - (SQLHDESC): Likewise - * include/sql.h (SQLFreeHandle): Added this prototype - (SQLAllocHandle): Likewise - -1998-12-08 Anders Norlander - - * include/winsock.h: Define _GNU_H_WINDOWS32_SOCKETS to avoid - conflicts with cygwin headers. - -1998-12-06 Anders Norlander - - * Makefile: Changed VERSION to 0.1.3 - * Makefile (dist-lib): New target to make import library only - distribution - * Makefile (dist-hdr): New target to make headers only distribution - * Makefile (dist): Now depends on dist-lib and dist-hdr instead of - building one single distribution file. - * dist.mak: Deleted - - * include/lm.h: New file - * include/lmcons.h: New file - * include/lmalert.h: New file - * include/lmaudit.h: New file - * include/lmconfig.h: New file - * include/lmapibuf.h: New file - * include/lmaccess.h: New file - * include/lmchdev.h: New file - * include/lmremutl.h: New file - * include/lmrepl.h: New file - * include/lmerrlog.h: New file - * include/lmat.h: New file - * include/lmuse.h: New file - * include/lmuseflg.h: New file - * include/lmserver.h: New file - * include/lmerr.h: New file - * include/lmsname.h: New file - * include/lmstats.h: New file - * include/lmsvc.h: New file - * include/lmwksta.h: New file - * include/lmbrowsr.h: New file - -1998-12-05 Anders Norlander - - * include/unknwn.h: Fixed IClassFactory declaration; INTERFACE was missing - * include/unknwn.h: Added extern declaration for IID_IClassFactory - - * include/initguid.h: New file - - * include/rpcndr.h: Defined hyper and MIDL_hyper as double if 64 bit - int not supported - - * include/winnt.h: Added USN - * include/winnt.h: Changed handling of 64 bit int support - - * include/windows.h: Added support for BC,LCC and MSVC - - * include/windows.h: Changed handling machine architecture defines - - * include/olectl.h: New file - -1998-12-04 Anders Norlander - - * include/oleidl.h: Added IViewObject and IViewObject2 - - * include/objidl: Corrected prototype for IStorage::DestroyElement and - IStorage::MoveElement - - * include/oledlg.h: New file - - * include/winresrc.h: New file - - * include/wingdi.h: Added LPDOCINFO - - * include/commctrl.h: Added SBARS_SIZEGRIP and TVM_SETINDENT - * include/commctrl.h: Added TCM_SETITEM to UNICODE/ANSI block - * include/commctrl.h: Added ListView_GetSelectedCount, ListView_GetItemSpacing, - TabCtrl_SetImageList and TabCtrl_GetItemCount - * include/commctrl.h: Added TVM_FIRST, HDM_FIRST and TV_FIRST - - * include/windowsx.h: Added missing ListBox_xx ComboBox_xx etc. macros - - * include/wingdi.h: Added (L)PBITMAP,(L)PBITMAPCOREHEADER, - PBITMAPINFOHEADER, (L)PBITMAPCOREINFO and (L)PBITMAPFILEHEADER. - - * include/commdlg.h: Added LPDEVNAMES - - * include/windows.h: Include excpt.h - - * include/excpt.h: New file. This file just contains some - stubs for SEH that do nothing. - - * include/commctrl.h: Added general WM_NOTIFY codes - - * include/winuser.h: Added ICON_SMALL and ICON_BIG - * include/winuser.h: Removed VK_0-VK_9 VK_A-VK_Z; they should obviously - not be in the headers. - * include/winuser.h: Added LPCBTACTIVATESTRUCT and LPCLIENTCREATESTRUCT - * include/winuser.h: Added old WM_SIZE parameter names so - wxWindows compiles. - * include/winuser.h: Added IDC_SIZE and IDC_ICON - * include/winuser.h: Added LPDLGITEMTEMPLATE - * include/winuser.h: HTCAPTION was missing value - * include/winuser.h: Added WM_ACTIVE flags - - * include/windowsx.h: Added _fmemcpy so V compiles; also added - _fxx defines for memmove, memset and memcmp - - * include/windef.h: Changed _export and __export to empty defines - - * include/shellapi.h: Corrected prototypes for ExtractIcon functions. - String parameters were not const and ExtractAssociatedIcon takes - a WORD pointer not DWORD pointer as last parameter. - - * Makefile: Changed VERSION to 0.1.2 - - * include/ole2ver.h: New file - - * Makefile: Removed all dependencies on GLUT - - * include/GL/glut.h: Removed file because of decision to remove - files that are not part of the library. - * lib/glut.def: Likewise - * lib/glut32.def: Likewise - - * include/windows.h: Include winperf.h - - * include/winperf.h: New file - - * lib/gdi32.def: Added GetEnhMetaFilePixelFormat - - * include/winnls.h: Added calendar types - * include/winnls.h: Added country codes - -1998-12-03 Anders Norlander - - * include/windef.h: Added PROC and NEARPROC - - * include/wingdi.h: Added ChoosePixelFormat, DescribePixelFormat - * include/wingdi.h: Added OpenGL types and prototypes - * include/wingdi.h: Added ENHMETA_STOCK_OBJECT - * include/wingdi.h: Added DCTT_DOWNLOAD_OUTLINE - * include/wingdi.h: Added POINTFX, TTPOLYCURVE and TTPOLYGONHEADER - * include/wingdi.h: Added truetype character outline types - * include/wingdi.h: Added DEVMODE initialization flags - * include/wingdi.h: Added panose codes - * include/wingdi.h: Added missing character sets - * include/wingdi.h: Added ANTIALIASED_QUALITY and - NONANTIALIASED_QUALITY - * include/wingdi.h: Added ENUMLOGFONTA/W and ENUMLOGFONTEXA/W - * include/wingdi.h: Added pointer types for EXTLOGPEN - * include/wingdi.h: Added PATTERN type - * include/wingdi.h: Added NEWTEXTMETRICA/W and NEWTEXTMETRICEXA/W - * include/wingdi.h: Added new text metric flags - * include/wingdi.h: Added pitch and family flags - * include/wingdi.h: Moved BCHAR defintion from winnt.h here - * include/wingdi.h: Added METAHEADER - * include/wingdi.h: Fixed packing of RGBTRIPLE and BITMAPFILEHEADER - * include/wingdi.h: Added TA_MASK - * include/wingdi.h: Added MAXSTRETCHBLTMODE - * include/wingdi.h: Added error codes - - * include/winuser.h: Added missing winhelp structures - * include/winuser.h: Added dialog flags/styles/messages - * include/winuser.h: Added EM_SETMARGIN codes - * include/winuser.h: Made it possiblie to use IDI_XX values - in resource files. - * include/winuser.h: Added missing LoadImage load flags - * include/winuser.h: Added missing message box flags - * include/winuser.h: Added ScrollWindow codes - * include/winuser.h: Added DT_WORD_ELLIPSIS - * include/winuser.h: Added drag and drop support - * include/winuser.h: Added WM_MENUCHAR return codes - * include/winuser.h: Added DLGWINDOWEXTRA - * include/winuser.h: Added missing SetWindowPos flags. - * include/winuser.h: Added BSF_NOTIMEOUTIFNOTHUNG - * include/winuser.h: Added IDHOT_xx defines - * include/winuser.h: Added MOD_WIN - * include/winuser.h: Added missing defines and structs for owner draw - controls. - * include/winuser.h: Added WPF_RESTORETOMAXIMIZED and - WPF_SETMINPOSITION - * include/winuser.h: Added DrawAnimatedRects flags - * include/winuser.h: Added WM_PRINT codes - * include/winuser.h: Added CS_IME class style - * include/winuser.h: Added WM_SIZE codes - * include/winuser.h: Added WM_MOUSEACTIVATE return codes - * include/winuser.h: Added WM_NCHITTEST return codes - * include/winuser.h: Added WM_SIZING parameters - * include/winuser.h: Added WM_NEXTMENU and MDINEXTMENU - * include/winuser.h: Added menu loop codes. - * include/winuser.h: Added NFR_ANSI, NFR_UNICODE, NF_QUERY and - NF_REQUERY - * include/winuser.h: Added WM_POWER flags - * include/winuser.h: Added KL_NAMELENGTH, WSF_VISIBLE - * include/winuser.h: Added missing message filter codes - * include/winuser.h: Added WM_KEYXX message flags - * include/winuser.h: Added WM_SHOWMESSAGE flags - * include/winuser.h: Added old ShowWindow commands - * include/winuser.h: Fixed packing of DLGITEMTEMPLATE and DLGTEMPLATE - structures. - - * include/mciavi.h: New file for the MCI AVI driver that for some - reason is not in mmsystem.h. - - * include/winbase.h: Added PIPE_UNLIMITED_INSTANCES and INVALID_FILE_SIZE - * include/winbase.h: Added SECURITY_xx for CreateFile - * include/winbase.h: Added RTS and DTS control values - * include/winbase.h: Fixed SYSTEM_INFO structure - * include/winbase.h: Added CREATE_NO_WINDOW, CREATE_SHARED_WOW_VDM - * include/winbase.h: Added FILE_TYPE_REMOTE - * include/winbase.h: Added modem status flags - * include/winbase.h: Added HINSTANCE_ERROR - * include/winbase.h: Added DefineDosDevice defines - * include/winbase.h: Added power management flags AC_xx BATTERY_xx - * include/winbase.h: Added STARTF_XX flags - * include/winbase.h: Fixed typo on _lcreat prototype. - * include/winbase.h: Moved DBG_XX to winnt.h - * include/winbase.h: Moved TOKEN_XX, DLL_PROCESS_XX and DLL_THREAD_XX to - winnt.h - - * include/unknwn.h: Added extern declaration of IID_IUnknown - - * include/windowsx.h: Added hmemcpy. - - * include/winnt.h: Added dummy member to DECLARE_HANDLE struct - * include/winnt.h: Added PACCESS_TOKEN - * include/winnt.h: Added TAPE_XX defines and moved some from winbase.h - * include/winnt.h: Added SE_IMPERSONATION_STATE and TOKEN_SOURCE_LENGTH - * include/winnt.h: Added SE_PRIVILEGE_ENABLED_BY_DEFAULT, SE_PRIVILEGE_ENABLED, - SE_PRIVILEGE_USED_FOR_ACCESS, PRIVILEGE_SET_ALL_NECESSARY, - SECURITY_MAX_IMPERSONATION_LEVEL, DEFAULT_IMPERSONATION_LEVEL, - SECURITY_DYNAMIC_TRACKING and SECURITY_STATIC_TRACKING. - - * include/winnt.h: Added SE_OWNER_DEFAULTED, SE_GROUP_DEFAULTED, SE_DACL_XX, - SE_SACL_XX, SE_SELF_RELATIVE, SECURITY_DESCRIPTOR_MIN_LENGTH, - SECURITY_DESCRIPTOR_REVISION and SECURITY_DESCRIPTOR_REVISION1. - - * include/winsvc.h: Removed conflicting defines which were supposed - to be in winnt.h - - * include/winnt.h: Added SERVICE_NODE_TYPE, SERVICE_LOAD_TYPE - and SERVICE_ERROR_TYPE. - - * include/winnt.h: Added SERVICE_XX defines. - * include/winsvc.h: Added SERVICES_ACTIVE_DATABASEA/W, - SERVICES_FAILED_DATABASEA/W and SC_GROUP_IDENTIFIERA/W. - - * include/winsvc.h: Added SERVICE_STATE_ALL, SERVICE_QUERY_CONFIG, - SERVICE_CHANGE_CONFIG, SERVICE_QUERY_STATUS, SERVICE_ENUMERATE_DEPENDENTS, - SERVICE_START, SERVICE_STOP, SERVICE_PAUSE_CONTINUE, - SERVICE_USER_DEFINED_CONTROL and SERVICE_ALL_ACCESS - -1998-12-02 Anders Norlander - - * include/winbase.h: Corrected prototype for CreateProcessA - - * include/mmsystem.h: Added CAPS1 and C1_TRANSPARENT for display - driver extensions. - - * include/shlobj.h: Corrected prototype for SHGetDesktopFolder, should - be LPSHELLFOLDER* not LPSHELLFOLDER. - - * include/windows.h: Include commdlg.h - - * include/winuser.h: Added MDICREATESTRUCT - - * include/winuser.h: Added LB_ERR, LB_ERRSPACE, LB_OKAY, CB_ERR, - CB_ERRSPACE, and CB_OKAY - - * include/wingdi.h: Added LPBITMAPINFOHEADER - - * include/rpcproxy.h: Removed IN, OUT and OPTIONAL since they - are meaningless. - * include/rpcdce2.h: Likewise. - - * lib/shell32.c: Moved GUID defintions from shlguid.h to this file. - - * include/richole.h: Replaced DEFINE_GUID with extern const GUID - * include/olectlid.h: Likewise - * include/shlguid.h: Likewise - - * include/coguid.h: Delete file since it was for 16 bit windows only. - - * lib/*.def: Appended .dll to library name where needed. - - * include/windef.h: Define _stdcall and __stdcall only if not - previously defined instead of undefining first. - - * include/dlgs.h: Put RC_INVOKED around structure defs - - * include/intshcut.h: New file - * include/isguids.h: New file - - * lib/uuid.c: Added all COM/OLE GUIDS I know and do not know about. - -1998-12-01 Anders Norlander - - * include/winnt.h: Added check if _T is defined before defining it - - * include/windows.h: Include dlgs.h if WIN32_LEAN_AND_MEAN not defined - - * include/dlgs.h: New file - - * include/winbase.h: Removed DllEntryPoint define - - * include/winbase.h: Added SetupComm prototype - - * include/rpc.h: SEH RPC functions no longer defined since they weren't - supported anyway. - - * include/basetyps.h: Removed use of COMOBJECT define, instead - DECLARE_INTERFACE directly uses comobject attribute when GCC - is used. - - * include/wtypes.h: STGC enum was missing typedef - - * include/objidl.h: ADVC enum was missing typedef - - * include/winnt.h: Moved CHAR, SHORT and LONG definitions so - they are nested within the VOID definition. - - * include/winbase.h: Added stream ids and attributes - - * include/winbase.h: Changed WIN32_STREAM_ID member cStreamName - to an ANYSIZE_ARRAY array. - -1998-11-26 Anders Norlander - - * include/windef.h: defined _declspec as __declspec since - some programs (like VWCL) use _declspec instead of __declspec - - * include/winnt.h: added COMPRESS_FORMAT defines - - * include/winbase.h: moved IS_TEXT_XXX defines to winnt.h - - * include/winnt.h: added HEAP_XXXX defines - - * include/winbase.h: moved HEAP_XXXX defines to winnt.h - - * include/winnt.h: added defintions for PE/COFF from the PE and COFF - specification. - - * include/winnt.h: added NTAPI define - -1998-11-25 Anders Norlander - - * include/winnt.h: defined TBYTE,LPTSTR etc in terms of TCHAR - instead of CHAR or WCHAR. - - * include/winnt.h: added _T define - - * include/winnt.h: added test for _TCHAR_DEFINED - - * include/winnt.h: included string.h for memory macros - - * include/prsht.h: added PSM_SETFINISHTEXT to UNICODE/ANSI test - - * include/prsht.h: moved PSM_SETTITLEA/W to UNICODE test at end of file - - * include/prsht.h: added PropSheet_XXX macros - - -1998-11-24 Anders Norlander - - * include/winspool.h: Changed DeletePrinterProcessor and - DeletePrinterProvidor to DeletePrintXX. - - * include/wingdi.h: Changed EMRCREATECOLORSPACE lcs member type to - LOGCOLORSPACEW. - - * include/wingdi.h: Changed prototype for CreateColorSpace to A and W - variants - - * include/wingdi.h: Likewise for GetLogColorSpace - - * include/wingdi.h: Changed LOGCOLORSPACE to LOGCOLORSPACEA/W. - - * include/richedit.h: Added missing defines and structures - - * include/winuser.h: Moved EDITWORDBREAKPROCEX to include/richedit.h - - * include/winuser.h: Added HWND_DESKTOP - -1998-11-23 Anders Norlander - - * Makefile: Include ChangeLog when building source - distribution (srcdist) - - * include/oleauto.h: Changed WINOLEAUTAPI and WINOLEAUTAPI_ so they - are always defined as STDAPI and STDAPI_ - - * include/objbase.h: Changed WINOLEAPI and WINOLEAPI_ so they - are always defined as STDAPI and STDAPI_ - - * include/objidl.h: Removed extra ';' on IStorage SetClass method - - * include/rpcndr.h: Removed all IN and OUT from function prototypes - - * ChangeLog started diff --git a/winsup/w32api/Makefile.in b/winsup/w32api/Makefile.in deleted file mode 100644 index c3b31653c..000000000 --- a/winsup/w32api/Makefile.in +++ /dev/null @@ -1,150 +0,0 @@ -# -# Makefile.in -# -# This file is part of a free library for the Win32 API. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# start config section - -SHELL = @SHELL@ - -srcdir = @srcdir@ -VPATH = @srcdir@ - -build_alias = @build_alias@ -host_alias = @host_alias@ -target_alias = @target_alias@ -prefix = @prefix@ - -program_transform_name = @program_transform_name@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -libdir = @libdir@ -tooldir = $(exec_prefix)/$(target_alias) -datadir = @datadir@ -infodir = @infodir@ -includedir = @includedir@ - -CC = @CC@ -CC_FOR_TARGET = $(CC) -CFLAGS = @CFLAGS@ - -DLLTOOL = @DLLTOOL@ -AS = @AS@ -AS_FOR_TARGET = $(AS_FOR_TARGET) -WINDRES = @WINDRES@ - -RANLIB = @RANLIB@ -AR = @AR@ -LD = @LD@ - -TAR = tar -TARFLAGS = z -TARFILEEXT = .tar.gz - -FLAGS_TO_PASS = \ - AS="$(AS)" \ - CC="$(CC)" \ - CPPFLAGS="$(CPPFLAGS)" \ - CFLAGS="$(CFLAGS)" \ - CXXFLAGS="$(CXXFLAGS)" \ - AR="$(AR)" \ - RANLIB="$(RANLIB)" \ - LD="$(LD)" \ - DLLTOOL="$(DLLTOOL)" \ - TAR="$(TAR)" \ - TARFLAGS="$(TARFLAGS)" \ - TARFILEEXT="$(TARFILEEXT)" \ - WINDRES="$(WINDRES)" - -# end config section - -SUBDIRS = lib - -PACKAGE = w32api -VERSION = 1.3 -CYGRELEASE = 1 - -DIST_FILES = Makefile.in configure.in configure config.guess config.sub \ -install-sh README ChangeLog TODO CONTRIBUTIONS - -all: lib - -%-subdirs: - for i in $(SUBDIRS); do \ - $(MAKE) $(FLAGS_TO_PASS) -C $$i $*; \ - done - -lib: - $(MAKE) $(FLAGS_TO_PASS) -C $@ - -test: - $(MAKE) -C lib test $(FLAGS_TO_PASS) - -install uninstall: - for i in $(SUBDIRS); do \ - (cd $$i; $(MAKE) $@); \ - done - -ifdef SNAPDATE - distdir = $(PACKAGE)-$(VERSION)-$(SNAPDATE) -else - ifneq (,$(findstring cygwin, $(target_alias))) - distdir=$(PACKAGE)-$(VERSION)-$(CYGRELEASE) - else - distdir=$(PACKAGE)-$(VERSION) - endif -endif - -ifneq (,$(findstring cygwin, $(target_alias))) - TARFLAGS = j - TARFILEEXT = .tar.bz2 -endif - -dist: srcdist bindist - -srcdist: - rm -rf $(distdir) - mkdir $(distdir) - chmod 755 $(distdir) - for i in $(DIST_FILES); do \ - cp -p $(srcdir)/$$i $(distdir)/$$i ; \ - done - for i in $(SUBDIRS); do \ - (cd $$i; $(MAKE) distdir=../$(distdir) dist); \ - done - rm -f $(distdir)-src$(TARFILEEXT) - $(TAR) $(TARFLAGS)cf $(distdir)-src$(TARFILEEXT) $(distdir) - -bindist: - rm -rf $(distdir) - mkdir $(distdir) - chmod 755 $(distdir) - $(MAKE) install prefix=../$(distdir) exec_prefix=../$(distdir) - rm -f $(distdir)$(TARFILEEXT) - cd $(distdir); $(TAR) $(TARFLAGS)cf ../$(distdir)$(TARFILEEXT) . - -snapshot: - make dist SNAPDATE=$(shell date '+%Y%m%d') - -Makefile: Makefile.in config.status configure - $(SHELL) config.status - -mostlyclean-top: - rm -f *~ -clean-top: mostlyclean-top - rm -rf $(distdir) - rm -f $(distdir)*$(TARFILEEXT) -maintainer-clean-top: - -mostlyclean: mostlyclean-top mostlyclean-subdirs -clean: mostlyclean-top clean-subdirs -distclean: clean-top - rm -f Makefile config.status config.log config.cache TAGS *~ - $(MAKE) -C lib distclean -maintainer-clean: maintainer-clean-subdirs - -.PHONY: lib test diff --git a/winsup/w32api/README b/winsup/w32api/README deleted file mode 100644 index a34153111..000000000 --- a/winsup/w32api/README +++ /dev/null @@ -1,94 +0,0 @@ - Free headers and libraries for the Win32 API - - Written by Anders Norlander - URL: http://www.acc.umu.se/~anorland/gnu-win32/ - - Maintained by MinGW Developers - Send bug reports and questions to MinGW-users@lists.sourceforge.net - URL: http://www.mingw.org - -* License - - You are free to use, modify and copy this package. No restrictions - are imposed on programs or object files compiled with this library. - - You may not restrict the the usage of this library. - - You may distribute this library as part of another package or as a - modified package if and only if you do *not* restrict the usage of - the portions consisting of this (optionally modified) library. - - If distributed as part of another package, please notify the author - of what you are going to do. If distributed as a modified package, - this file *must* be included. - - This library is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -* What is it? - - This is a free set of headers and import libraries for the Win32 - API. The library differs from the GNU Windows32 library in that I - have tried to use a file structure that mirrors Microsoft's. I - don't like having *all* definitions in one single header as in the - GNU Windows32 library, I want a clean separation between different - parts of the API. - - Daniel Guerrero Miralles contributed the DirectX 6.1 import - libraries and DirectX GUID definitions. - - See the files NOTES and TODO for what needs to be done. - -* Size does matter - - Since the WIN32 API is severely bloated (as most MS products seem to - be) the headers are designed to be as compact as possible, while - still being readable, in order to minimize parsing time. - - The convention is to omit parameter names for function prototypes, - no excessive white space. Struct/union members are indented with tab - characters to make them readable. Comment only when necessary. - - If you are contributing a patch please follow the above mentioned - convention. Make sure your editor does not convert tabs to spaces. - -* What do I need to use it? - - The library is intended for use with egcs 1.1 or later but it is - possible to use with some other tools as well (although it is not - very useful). LCC-Win32, MSVC and Borland C++ 5.01 or higher may - work as well. The import libraries are for GNU tools only. - - The library requires egcs 1.1 or later, since the `#pragma pack' - feature is used. Mumit Khan provides egcs patches and binaries for - win32 at `http://www.xraylith.wisc.edu/~khan/software/gnu-win32/'. - - If you are going to use C++ COM objects, you will need a version of - egcs that recognizes the `comobject' attribute and then define - HAVE_COMOBJECT when compiling your program. Antonio Mendes de - Oliveira Neto has a prebuilt version at - `http://li.facens.br/EGCS-WIN32/english/index.html'. Note that this - is very experimental. If you want to use COM objects in C++ but with - C interfaces you must define CINTERFACE. - - Objective-C programs cannot use COM functionality because of - conflicts between the interface define and the Objective-C - @interface directive. There is also a conflict between the windows - Obj-C BOOL types. To avoid this conflict you should use WINBOOL in - all places where you would use BOOL in a C/C++ windows program. If - you include any windows headers *after* `windows.h' you must use the - method outlined below: - - /* non-windows includes */ - #include - ... - /* windows specific headers */ - #include - #define BOOL WINBOOL - #include - ... - #undef BOOL - ... - /* include other headers */ - diff --git a/winsup/w32api/TODO b/winsup/w32api/TODO deleted file mode 100644 index 7ad7801b7..000000000 --- a/winsup/w32api/TODO +++ /dev/null @@ -1,65 +0,0 @@ -Makefile.in: Need to redo the clean targets - -**Check to see if the rest of this is still valid?** - -winsock2.h - Possible to merge with winsock.h? -listview control -_WIN32_IE issue - -Missing functions/defines/structs -================================= -CS_ENABLE -CS_DISABLE -CS_DELETE_TRANSFORM -ATF_AVAILABLE -SERKF_ACTIVE -TIMER_ALL_ACCESS,TIMER_MODIFY_STATE (new style Win32 Access Control: accctrl) -AbnormalTermination and other low-level exception handling macros/functions. -GetExceptionCode -GetExceptionInformation -GetAuditedPermissionsFromAcl -GetEffectiveRightsFromAcl -GetExplicitEntriesFromAcl -AcsLan -BuildExplicitAccessWithName -BuildImpersonateExplicitAccessWithName -BuildImpersonateTrustee -BuildSecurityDescriptor -BuildTrusteeWithName -BuildTrusteeWithSid -GetMultipleTrustee -GetMultipleTrusteeOperation -GetNamedSecurityInfo -GetSecurityInfo -GetTrusteeForm -GetTrusteeName -GetTrusteeType -PF_XXXX defines for IsProcessorFeaturePresent -LookupSecurityDescriptorParts -LSXXXX lsapi functions/types -RASADFunc through RasValidateEntryName (RASAPI ras.h) -SetEntriesInAcl -SetNamedSecurityInfo -SetSecurityInfo -SetServiceBits -SnmpExtensionInit through SnmpUtilVarBindListFree (mgmtapi.h/snmp.h - Simple Network Management Protocol(SNMP)) -SOBailOut through SUUserSaveData, VwStreamCloseFunc through VwStreamTellFunc - (File viewer/parser (quick view)) -WinSubmitCertificate (wintrust.h) -WinTrustProviderClientInitialize through WinVerifyTrust -EXPLICIT_ACCESS -INotifyReplica (reconcil) - -OLE/COM: -======== -oleidl.h -oaidl.h -ocidl.h -Some GUIDs should be in libole32.a instead of libuuid.a - -Low priority -============ -RASAPI -MAPI -directx (what about existing ports?) diff --git a/winsup/w32api/config.guess b/winsup/w32api/config.guess deleted file mode 100755 index 5ae199a4d..000000000 --- a/winsup/w32api/config.guess +++ /dev/null @@ -1,1362 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. - -timestamp='2001-06-12' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Written by Per Bothner . -# Please send patches to . -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - - -dummy=dummy-$$ -trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int dummy(){}" > $dummy.c - for c in cc gcc c89 ; do - ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 - if test $? = 0 ; then - CC_FOR_BUILD="$c"; break - fi - done - rm -f $dummy.c $dummy.o $dummy.rel - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 8/24/94.) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # Netbsd (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # Determine the machine/vendor (is the vendor relevant). - case "${UNAME_MACHINE}" in - amiga) machine=m68k-unknown ;; - arm32) machine=arm-unknown ;; - atari*) machine=m68k-atari ;; - sun3*) machine=m68k-sun ;; - mac68k) machine=m68k-apple ;; - macppc) machine=powerpc-apple ;; - hp3[0-9][05]) machine=m68k-hp ;; - ibmrt|romp-ibm) machine=romp-ibm ;; - *) machine=${UNAME_MACHINE}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE}" in - i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k) - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - cat <$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `./$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - esac - fi - rm -f $dummy.s $dummy - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - arc64:OpenBSD:*:*) - echo mips64el-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hkmips:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - atari*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - sun3*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy \ - && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - case "${HPUX_REV}" in - 11.[0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - esac ;; - esac - fi ;; - esac - if [ "${HP_ARCH}" = "" ]; then - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy - fi ;; - esac - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - hppa*:OpenBSD:*:*) - echo hppa-unknown-openbsd - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*X-MP:*:*:*) - echo xmp-cray-unicos - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} - exit 0 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - exit 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY-2:*:*:*) - echo cray2-cray-unicos - exit 0 ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - i*:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i386-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - cat >$dummy.c < /* for printf() prototype */ -int main (int argc, char *argv[]) { -#else -int main (argc, argv) int argc; char *argv[]; { -#endif -#ifdef __MIPSEB__ - printf ("%s-unknown-linux-gnu\n", argv[1]); -#endif -#ifdef __MIPSEL__ - printf ("%sel-unknown-linux-gnu\n", argv[1]); -#endif - return 0; -} -EOF - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - ;; - ppc:Linux:*:*) - # Determine Lib Version - cat >$dummy.c < -#if defined(__GLIBC__) -extern char __libc_version[]; -extern char __libc_release[]; -#endif -main(argc, argv) - int argc; - char *argv[]; -{ -#if defined(__GLIBC__) - printf("%s %s\n", __libc_version, __libc_release); -#else - printf("unknown\n"); -#endif - return 0; -} -EOF - LIBC="" - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null - if test "$?" = 0 ; then - ./$dummy | grep 1\.99 > /dev/null - if test "$?" = 0 ; then LIBC="libc1" ; fi - fi - rm -f $dummy.c $dummy - echo powerpc-unknown-linux-gnu${LIBC} - exit 0 ;; - alpha:Linux:*:*) - cat <$dummy.s - .data - \$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - .text - .globl main - .align 4 - .ent main - main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - LIBC="" - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `./$dummy` in - 0-0) UNAME_MACHINE="alpha" ;; - 1-0) UNAME_MACHINE="alphaev5" ;; - 1-1) UNAME_MACHINE="alphaev56" ;; - 1-101) UNAME_MACHINE="alphapca56" ;; - 2-303) UNAME_MACHINE="alphaev6" ;; - 2-307) UNAME_MACHINE="alphaev67" ;; - esac - objdump --private-headers $dummy | \ - grep ld.so.1 > /dev/null - if test "$?" = 0 ; then - LIBC="libc1" - fi - fi - rm -f $dummy.s $dummy - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - ld_supported_targets=`cd /; ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - cat >$dummy.c < -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif -#ifdef __ELF__ -# ifdef __GLIBC__ -# if __GLIBC__ >= 2 - printf ("%s-pc-linux-gnu\n", argv[1]); -# else - printf ("%s-pc-linux-gnulibc1\n", argv[1]); -# endif -# else - printf ("%s-pc-linux-gnulibc1\n", argv[1]); -# endif -#else - printf ("%s-pc-linux-gnuaout\n", argv[1]); -#endif - return 0; -} -EOF - $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; -# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions -# are messed up and put the nodename in both sysname and nodename. - i*86:DYNIX/ptx:4*:*) - echo i386-sequent-sysv4 - exit 0 ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i*86:*:5:[78]*) - case `/bin/uname -X | grep ^Machine` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium*) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - if test "${UNAME_MACHINE}" = "x86pc"; then - UNAME_MACHINE=pc - fi - echo `uname -p`-${UNAME_MACHINE}-nto-qnx - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-[KW]:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 -rm -f $dummy.c $dummy - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/winsup/w32api/config.sub b/winsup/w32api/config.sub deleted file mode 100755 index cfd20b35a..000000000 --- a/winsup/w32api/config.sub +++ /dev/null @@ -1,1383 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. - -timestamp='2001-06-08' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Please send patches to . -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \ - | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \ - | pyramid | mn10200 | mn10300 | tron | a29k \ - | 580 | i960 | h8300 \ - | x86 | ppcbe | mipsbe | mipsle | shbe | shle \ - | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \ - | hppa64 \ - | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \ - | alphaev6[78] \ - | we32k | ns16k | clipper | i370 | sh | sh[34] \ - | powerpc | powerpcle \ - | 1750a | dsp16xx | pdp10 | pdp11 \ - | mips16 | mips64 | mipsel | mips64el \ - | mips64orion | mips64orionel | mipstx39 | mipstx39el \ - | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \ - | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \ - | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \ - | v850 | c4x \ - | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \ - | pj | pjl | h8500 | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - # FIXME: clean up the formatting here. - vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \ - | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \ - | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ - | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \ - | xmp-* | ymp-* \ - | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \ - | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \ - | hppa2.0n-* | hppa64-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \ - | alphaev6[78]-* \ - | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \ - | clipper-* | orion-* \ - | sparclite-* | pdp10-* | pdp11-* | sh-* | sh[34]-* | sh[34]eb-* \ - | powerpc-* | powerpcle-* | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \ - | mips16-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* \ - | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \ - | mipstx39-* | mipstx39el-* | mcore-* \ - | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \ - | [cjt]90-* \ - | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \ - | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \ - | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | ymp) - basic_machine=ymp-cray - os=-unicos - ;; - cray2) - basic_machine=cray2-cray - os=-unicos - ;; - [cjt]90) - basic_machine=${basic_machine}-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - cygwin*) - basic_machine=i386-pc - os=-cygwin - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mipsel*-linux*) - basic_machine=mipsel-unknown - os=-linux-gnu - ;; - mips*-linux*) - basic_machine=mips-unknown - os=-linux-gnu - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - msys) - basic_machine=i386-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon) - basic_machine=i686-pc - ;; - pentiumii | pentium2) - basic_machine=i686-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sparclite-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=t3e-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - windows32) - basic_machine=i386-pc - os=-windows32-msvcrt - ;; - xmp) - basic_machine=xmp-cray - os=-unicos - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - mips) - if [ x$os = x-linux-gnu ]; then - basic_machine=mips-unknown - else - basic_machine=mips-mips - fi - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh3 | sh4) - basic_machine=sh-unknown - ;; - sparc | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - c4x*) - basic_machine=c4x-none - os=-coff - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto*) - os=-nto-qnx - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -vxsim* | -vxworks*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/winsup/w32api/configure b/winsup/w32api/configure deleted file mode 100755 index 3d0556f2c..000000000 --- a/winsup/w32api/configure +++ /dev/null @@ -1,1479 +0,0 @@ -#! /bin/sh - -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# Defaults: -ac_help= -ac_default_prefix=/usr/local -# Any additions from configure.in: - -# Initialize some variables set by options. -# The variables have the same names as the options, with -# dashes changed to underlines. -build=NONE -cache_file=./config.cache -exec_prefix=NONE -host=NONE -no_create= -nonopt=NONE -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -target=NONE -verbose= -x_includes=NONE -x_libraries=NONE -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - -ac_prev= -for ac_option -do - - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case "$ac_option" in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir="$ac_optarg" ;; - - -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; - - -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "enable_${ac_feature}='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; - - -host | --host | --hos | --ho) - ac_prev=host ;; - -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; - - -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; - *) ac_optarg=yes ;; - esac - eval "with_${ac_package}='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` - # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; - - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } - ;; - - *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" - ;; - - esac -done - -if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } -fi - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 - -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg -do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; - esac -done - -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h - -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=lib/scrnsave.c - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } - else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } - fi -fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` - -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file -else - echo "creating cache $cache_file" - > $cache_file -fi - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - - - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } -fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. - - -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET --build=BUILD NONOPT -# -# The rules are: -# 1. You are not allowed to specify --host, --target, and nonopt at the -# same time. -# 2. Host defaults to nonopt. -# 3. If nonopt is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target and build default to nonopt. -# 5. If nonopt is not specified, then target and build default to host. - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -case $host---$target---$nonopt in -NONE---*---* | *---NONE---* | *---*---NONE) ;; -*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; -esac - - -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } -fi - -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:573: checking host system type" >&5 - -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac - -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 - -echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:594: checking target system type" >&5 - -target_alias=$target -case "$target_alias" in -NONE) - case $nonopt in - NONE) target_alias=$host_alias ;; - *) target_alias=$nonopt ;; - esac ;; -esac - -target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` -target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$target" 1>&6 - -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:612: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -test "$host_alias" != "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:647: checking for a BSD compatible install" >&5 -if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - done - ;; - esac - done - IFS="$ac_save_IFS" - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL="$ac_install_sh" - fi -fi -echo "$ac_t""$INSTALL" 1>&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -CFLAGS=${CFLAGS-"-O2 -g"} -if test $host != $build; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi - -# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:710: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_CC"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:742: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="gcc" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - CC="gcc" -fi -fi - - - -# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:779: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -AR="$ac_cv_prog_AR" -if test -n "$AR"; then - echo "$ac_t""$AR" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_AR"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:811: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AR="ar" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" -fi -fi -AR="$ac_cv_prog_AR" -if test -n "$AR"; then - echo "$ac_t""$AR" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - AR="ar" -fi -fi - - -# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:847: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AS="${ac_tool_prefix}as" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -AS="$ac_cv_prog_AS" -if test -n "$AS"; then - echo "$ac_t""$AS" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_AS"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "as", so it can be a program name with args. -set dummy as; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:879: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AS="as" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" -fi -fi -AS="$ac_cv_prog_AS" -if test -n "$AS"; then - echo "$ac_t""$AS" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - AS="as" -fi -fi - - -# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:915: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_RANLIB"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:947: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB="ranlib" -fi -fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - RANLIB="ranlib" -fi -fi - - -# Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args. -set dummy ${ac_tool_prefix}ld; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:983: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$LD"; then - ac_cv_prog_LD="$LD" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_LD="${ac_tool_prefix}ld" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -LD="$ac_cv_prog_LD" -if test -n "$LD"; then - echo "$ac_t""$LD" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_LD"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "ld", so it can be a program name with args. -set dummy ld; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1015: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$LD"; then - ac_cv_prog_LD="$LD" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_LD="ld" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_LD" && ac_cv_prog_LD="ld" -fi -fi -LD="$ac_cv_prog_LD" -if test -n "$LD"; then - echo "$ac_t""$LD" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - LD="ld" -fi -fi - - -# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1051: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -DLLTOOL="$ac_cv_prog_DLLTOOL" -if test -n "$DLLTOOL"; then - echo "$ac_t""$DLLTOOL" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_DLLTOOL"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1083: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_DLLTOOL="dlltool" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_DLLTOOL" && ac_cv_prog_DLLTOOL="dlltool" -fi -fi -DLLTOOL="$ac_cv_prog_DLLTOOL" -if test -n "$DLLTOOL"; then - echo "$ac_t""$DLLTOOL" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - DLLTOOL="dlltool" -fi -fi - - -# Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. -set dummy ${ac_tool_prefix}windres; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1119: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$WINDRES"; then - ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_WINDRES="${ac_tool_prefix}windres" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -WINDRES="$ac_cv_prog_WINDRES" -if test -n "$WINDRES"; then - echo "$ac_t""$WINDRES" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - -if test -z "$ac_cv_prog_WINDRES"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "windres", so it can be a program name with args. -set dummy windres; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1151: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$WINDRES"; then - ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_WINDRES="windres" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_WINDRES" && ac_cv_prog_WINDRES="windres" -fi -fi -WINDRES="$ac_cv_prog_WINDRES" -if test -n "$WINDRES"; then - echo "$ac_t""$WINDRES" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -else - WINDRES="windres" -fi -fi - - - -echo $ac_n "checking for build environment""... $ac_c" 1>&6 -echo "configure:1186: checking for build environment" >&5 -case "$build_alias" in -*-mingw*) BUILDENV=mingw;; -*-cygwin*) BUILDENV=cygwin;; -esac -if test -z "$BUILDENV"; then - echo "$ac_t""standard" 1>&6 -else - echo "$ac_t""$BUILDENV" 1>&6 -fi - - -trap '' 1 2 15 -cat > confcache <<\EOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' -fi - -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -cat > conftest.defs <<\EOF -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g -s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g -s%\[%\\&%g -s%\]%\\&%g -s%\$%$$%g -EOF -DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` -rm -f conftest.defs - - -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} - -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS </dev/null | sed 1q`: -# -# $0 $ac_configure_args -# -# Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. - -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option -do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac -done - -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" - -trap 'rm -fr `echo "Makefile lib/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@target@%$target%g -s%@target_alias@%$target_alias%g -s%@target_cpu@%$target_cpu%g -s%@target_vendor@%$target_vendor%g -s%@target_os@%$target_os%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@CC@%$CC%g -s%@AR@%$AR%g -s%@AS@%$AS%g -s%@RANLIB@%$RANLIB%g -s%@LD@%$LD%g -s%@DLLTOOL@%$DLLTOOL%g -s%@WINDRES@%$WINDRES%g -s%@BUILDENV@%$BUILDENV%g - -CEOF -EOF - -cat >> $CONFIG_STATUS <<\EOF - -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file - else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file - fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file - else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` - fi -done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat -fi -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; - esac - - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. - - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= - fi - - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; - esac - - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* - -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF - -exit 0 -EOF -chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - diff --git a/winsup/w32api/configure.in b/winsup/w32api/configure.in deleted file mode 100644 index 2c6066e86..000000000 --- a/winsup/w32api/configure.in +++ /dev/null @@ -1,49 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. - -dnl This file is part of a free win32 library -dnl -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. - -AC_PREREQ(2.12) -AC_INIT(lib/scrnsave.c) - -AC_CANONICAL_SYSTEM - -dnl Find install command -AC_PROG_INSTALL - -dnl check for cc and CFLAGS -CFLAGS=${CFLAGS-"-O2 -g"} -AC_CHECK_TOOL(CC, gcc, gcc) -AC_SUBST(CC) - -dnl check for various tools -AC_CHECK_TOOL(AR, ar, ar) -AC_SUBST(AR) -AC_CHECK_TOOL(AS, as, as) -AC_SUBST(AS) -AC_CHECK_TOOL(RANLIB, ranlib, ranlib) -AC_SUBST(RANLIB) -AC_CHECK_TOOL(LD, ld, ld) -AC_SUBST(LD) -AC_CHECK_TOOL(DLLTOOL, dlltool, dlltool) -AC_SUBST(DLLTOOL) -AC_CHECK_TOOL(WINDRES, windres, windres) -AC_SUBST(WINDRES) - -AC_MSG_CHECKING([for build environment]) -case "$build_alias" in -*-mingw*) BUILDENV=mingw;; -*-cygwin*) BUILDENV=cygwin;; -esac -if test -z "$BUILDENV"; then - AC_MSG_RESULT(standard) -else - AC_MSG_RESULT($BUILDENV) -fi -AC_SUBST(BUILDENV) - -AC_OUTPUT(Makefile lib/Makefile) diff --git a/winsup/w32api/include/accctrl.h b/winsup/w32api/include/accctrl.h deleted file mode 100644 index 3db42795b..000000000 --- a/winsup/w32api/include/accctrl.h +++ /dev/null @@ -1,312 +0,0 @@ -#ifndef _ACCCRTL_H -#define _ACCCRTL_H -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define AccFree LocalFree -#define ACTRL_RESERVED 0x00000000 -#define ACTRL_ACCESS_PROTECTED 0x00000001 -#define ACTRL_ACCESS_ALLOWED 0x00000001 -#define ACTRL_ACCESS_DENIED 0x00000002 -#define ACTRL_AUDIT_SUCCESS 0x00000004 -#define ACTRL_AUDIT_FAILURE 0x00000008 -#define ACTRL_SYSTEM_ACCESS 0x04000000 -#define ACTRL_DELETE 0x08000000 -#define ACTRL_READ_CONTROL 0x10000000 -#define ACTRL_CHANGE_ACCESS 0x20000000 -#define ACTRL_CHANGE_OWNER 0x40000000 -#define ACTRL_SYNCHRONIZE 0x80000000 -#define ACTRL_STD_RIGHTS_ALL 0xf8000000 - -#define ACTRL_FILE_READ 0x00000001 -#define ACTRL_FILE_WRITE 0x00000002 -#define ACTRL_FILE_APPEND 0x00000004 -#define ACTRL_FILE_READ_PROP 0x00000008 -#define ACTRL_FILE_WRITE_PROP 0x00000010 -#define ACTRL_FILE_EXECUTE 0x00000020 -#define ACTRL_FILE_READ_ATTRIB 0x00000080 -#define ACTRL_FILE_WRITE_ATTRIB 0x00000100 -#define ACTRL_FILE_CREATE_PIPE 0x00000200 -#define ACTRL_DIR_LIST 0x00000001 -#define ACTRL_DIR_CREATE_OBJECT 0x00000002 -#define ACTRL_DIR_CREATE_CHILD 0x00000004 -#define ACTRL_DIR_DELETE_CHILD 0x00000040 -#define ACTRL_DIR_TRAVERSE 0x00000020 -#define ACTRL_KERNEL_TERMINATE 0x00000001 -#define ACTRL_KERNEL_THREAD 0x00000002 -#define ACTRL_KERNEL_VM 0x00000004 -#define ACTRL_KERNEL_VM_READ 0x00000008 -#define ACTRL_KERNEL_VM_WRITE 0x00000010 -#define ACTRL_KERNEL_DUP_HANDLE 0x00000020 -#define ACTRL_KERNEL_PROCESS 0x00000040 -#define ACTRL_KERNEL_SET_INFO 0x00000080 -#define ACTRL_KERNEL_GET_INFO 0x00000100 -#define ACTRL_KERNEL_CONTROL 0x00000200 -#define ACTRL_KERNEL_ALERT 0x00000400 -#define ACTRL_KERNEL_GET_CONTEXT 0x00000800 -#define ACTRL_KERNEL_SET_CONTEXT 0x00001000 -#define ACTRL_KERNEL_TOKEN 0x00002000 -#define ACTRL_KERNEL_IMPERSONATE 0x00004000 -#define ACTRL_KERNEL_DIMPERSONATE 0x00008000 -#define ACTRL_PRINT_SADMIN 0x00000001 -#define ACTRL_PRINT_SLIST 0x00000002 -#define ACTRL_PRINT_PADMIN 0x00000004 -#define ACTRL_PRINT_PUSE 0x00000008 -#define ACTRL_PRINT_JADMIN 0x00000010 -#define ACTRL_SVC_GET_INFO 0x00000001 -#define ACTRL_SVC_SET_INFO 0x00000002 -#define ACTRL_SVC_STATUS 0x00000004 -#define ACTRL_SVC_LIST 0x00000008 -#define ACTRL_SVC_START 0x00000010 -#define ACTRL_SVC_STOP 0x00000020 -#define ACTRL_SVC_PAUSE 0x00000040 -#define ACTRL_SVC_INTERROGATE 0x00000080 -#define ACTRL_SVC_UCONTROL 0x00000100 -#define ACTRL_REG_QUERY 0x00000001 -#define ACTRL_REG_SET 0x00000002 -#define ACTRL_REG_CREATE_CHILD 0x00000004 -#define ACTRL_REG_LIST 0x00000008 -#define ACTRL_REG_NOTIFY 0x00000010 -#define ACTRL_REG_LINK 0x00000020 -#define ACTRL_WIN_CLIPBRD 0x00000001 -#define ACTRL_WIN_GLOBAL_ATOMS 0x00000002 -#define ACTRL_WIN_CREATE 0x00000004 -#define ACTRL_WIN_LIST_DESK 0x00000008 -#define ACTRL_WIN_LIST 0x00000010 -#define ACTRL_WIN_READ_ATTRIBS 0x00000020 -#define ACTRL_WIN_WRITE_ATTRIBS 0x00000040 -#define ACTRL_WIN_SCREEN 0x00000080 -#define ACTRL_WIN_EXIT 0x00000100 -#define ACTRL_ACCESS_NO_OPTIONS 0x00000000 -#define ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES 0x00000001 -#define ACCCTRL_DEFAULT_PROVIDERA "Windows NT Access Provider" -#define ACCCTRL_DEFAULT_PROVIDERW L"Windows NT Access Provider" -#define TRUSTEE_ACCESS_ALLOWED 0x00000001L -#define TRUSTEE_ACCESS_READ 0x00000002L -#define TRUSTEE_ACCESS_WRITE 0x00000004L -#define TRUSTEE_ACCESS_EXPLICIT 0x00000001L -#define TRUSTEE_ACCESS_READ_WRITE (TRUSTEE_ACCESS_READ | TRUSTEE_ACCESS_WRITE) -#define TRUSTEE_ACCESS_ALL 0xFFFFFFFFL -#define NO_INHERITANCE 0x0 -#define SUB_OBJECTS_ONLY_INHERIT 0x1 -#define SUB_CONTAINERS_ONLY_INHERIT 0x2 -#define SUB_CONTAINERS_AND_OBJECTS_INHERIT 0x3 -#define INHERIT_NO_PROPAGATE 0x4 -#define INHERIT_ONLY 0x8 -#define INHERITED_ACCESS_ENTRY 0x10 -#define INHERITED_PARENT 0x10000000 -#define INHERITED_GRANDPARENT 0x20000000 - -typedef ULONG INHERIT_FLAGS, *PINHERIT_FLAGS; -typedef ULONG ACCESS_RIGHTS, *PACCESS_RIGHTS; - -typedef enum _ACCESS_MODE { - NOT_USED_ACCESS = 0, - GRANT_ACCESS, - SET_ACCESS, - DENY_ACCESS, - REVOKE_ACCESS, - SET_AUDIT_SUCCESS, - SET_AUDIT_FAILURE -} ACCESS_MODE; -typedef enum _SE_OBJECT_TYPE { - SE_UNKNOWN_OBJECT_TYPE = 0, - SE_FILE_OBJECT, - SE_SERVICE, - SE_PRINTER, - SE_REGISTRY_KEY, - SE_LMSHARE, - SE_KERNEL_OBJECT, - SE_WINDOW_OBJECT, - SE_DS_OBJECT, - SE_DS_OBJECT_ALL, - SE_PROVIDER_DEFINED_OBJECT, - SE_WMIGUID_OBJECT -} SE_OBJECT_TYPE; -typedef enum _TRUSTEE_TYPE { - TRUSTEE_IS_UNKNOWN, - TRUSTEE_IS_USER, - TRUSTEE_IS_GROUP, - TRUSTEE_IS_DOMAIN, - TRUSTEE_IS_ALIAS, - TRUSTEE_IS_WELL_KNOWN_GROUP, - TRUSTEE_IS_DELETED, - TRUSTEE_IS_INVALID, - TRUSTEE_IS_COMPUTER -} TRUSTEE_TYPE; -typedef enum _TRUSTEE_FORM { - TRUSTEE_IS_SID, - TRUSTEE_IS_NAME, - TRUSTEE_BAD_FORM, - TRUSTEE_IS_OBJECTS_AND_SID, - TRUSTEE_IS_OBJECTS_AND_NAME -} TRUSTEE_FORM; -typedef enum _MULTIPLE_TRUSTEE_OPERATION { - NO_MULTIPLE_TRUSTEE, - TRUSTEE_IS_IMPERSONATE -} MULTIPLE_TRUSTEE_OPERATION; -typedef struct _TRUSTEE_A { - struct _TRUSTEE_A *pMultipleTrustee; - MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation; - TRUSTEE_FORM TrusteeForm; - TRUSTEE_TYPE TrusteeType; - LPSTR ptstrName; -} TRUSTEE_A, *PTRUSTEE_A, TRUSTEEA, *PTRUSTEEA; -typedef struct _TRUSTEE_W { - struct _TRUSTEE_W *pMultipleTrustee; - MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation; - TRUSTEE_FORM TrusteeForm; - TRUSTEE_TYPE TrusteeType; - LPWSTR ptstrName; -} TRUSTEE_W, *PTRUSTEE_W, TRUSTEEW, *PTRUSTEEW; -typedef struct _ACTRL_ACCESS_ENTRYA { - TRUSTEE_A Trustee; - ULONG fAccessFlags; - ACCESS_RIGHTS Access; - ACCESS_RIGHTS ProvSpecificAccess; - INHERIT_FLAGS Inheritance; - LPSTR lpInheritProperty; -} ACTRL_ACCESS_ENTRYA, *PACTRL_ACCESS_ENTRYA; -typedef struct _ACTRL_ACCESS_ENTRYW { - TRUSTEE_W Trustee; - ULONG fAccessFlags; - ACCESS_RIGHTS Access; - ACCESS_RIGHTS ProvSpecificAccess; - INHERIT_FLAGS Inheritance; - LPWSTR lpInheritProperty; -} ACTRL_ACCESS_ENTRYW, *PACTRL_ACCESS_ENTRYW; -typedef struct _ACTRL_ACCESS_ENTRY_LISTA { - ULONG cEntries; - ACTRL_ACCESS_ENTRYA *pAccessList; -} ACTRL_ACCESS_ENTRY_LISTA, *PACTRL_ACCESS_ENTRY_LISTA; -typedef struct _ACTRL_ACCESS_ENTRY_LISTW { - ULONG cEntries; - ACTRL_ACCESS_ENTRYW *pAccessList; -} ACTRL_ACCESS_ENTRY_LISTW, *PACTRL_ACCESS_ENTRY_LISTW; -typedef struct _ACTRL_PROPERTY_ENTRYA { - LPSTR lpProperty; - PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList; - ULONG fListFlags; -} ACTRL_PROPERTY_ENTRYA, *PACTRL_PROPERTY_ENTRYA; -typedef struct _ACTRL_PROPERTY_ENTRYW { - LPWSTR lpProperty; - PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList; - ULONG fListFlags; -} ACTRL_PROPERTY_ENTRYW, *PACTRL_PROPERTY_ENTRYW; -typedef struct _ACTRL_ALISTA { - ULONG cEntries; - PACTRL_PROPERTY_ENTRYA pPropertyAccessList; -} ACTRL_ACCESSA, *PACTRL_ACCESSA, ACTRL_AUDITA, *PACTRL_AUDITA; -typedef struct _ACTRL_ALISTW { - ULONG cEntries; - PACTRL_PROPERTY_ENTRYW pPropertyAccessList; -} ACTRL_ACCESSW, *PACTRL_ACCESSW, ACTRL_AUDITW, *PACTRL_AUDITW; -typedef struct _TRUSTEE_ACCESSA { - LPSTR lpProperty; - ACCESS_RIGHTS Access; - ULONG fAccessFlags; - ULONG fReturnedAccess; -} TRUSTEE_ACCESSA, *PTRUSTEE_ACCESSA; -typedef struct _TRUSTEE_ACCESSW { - LPWSTR lpProperty; - ACCESS_RIGHTS Access; - ULONG fAccessFlags; - ULONG fReturnedAccess; -} TRUSTEE_ACCESSW, *PTRUSTEE_ACCESSW; -typedef struct _ACTRL_OVERLAPPED { - _ANONYMOUS_UNION - union { - PVOID Provider; - ULONG Reserved1; - } DUMMYUNIONNAME; - ULONG Reserved2; - HANDLE hEvent; -} ACTRL_OVERLAPPED, *PACTRL_OVERLAPPED; -typedef struct _ACTRL_ACCESS_INFOA { - ULONG fAccessPermission; - LPSTR lpAccessPermissionName; -} ACTRL_ACCESS_INFOA, *PACTRL_ACCESS_INFOA; -typedef struct _ACTRL_ACCESS_INFOW { - ULONG fAccessPermission; - LPWSTR lpAccessPermissionName; -} ACTRL_ACCESS_INFOW, *PACTRL_ACCESS_INFOW; -typedef struct _ACTRL_CONTROL_INFOA { - LPSTR lpControlId; - LPSTR lpControlName; -} ACTRL_CONTROL_INFOA, *PACTRL_CONTROL_INFOA; -typedef struct _ACTRL_CONTROL_INFOW { - LPWSTR lpControlId; - LPWSTR lpControlName; -} ACTRL_CONTROL_INFOW, *PACTRL_CONTROL_INFOW; -typedef struct _EXPLICIT_ACCESS_A { - DWORD grfAccessPermissions; - ACCESS_MODE grfAccessMode; - DWORD grfInheritance; - TRUSTEE_A Trustee; -} EXPLICIT_ACCESS_A, *PEXPLICIT_ACCESS_A, EXPLICIT_ACCESSA, *PEXPLICIT_ACCESSA; -typedef struct _EXPLICIT_ACCESS_W { - DWORD grfAccessPermissions; - ACCESS_MODE grfAccessMode; - DWORD grfInheritance; - TRUSTEE_W Trustee; -} EXPLICIT_ACCESS_W, *PEXPLICIT_ACCESS_W, EXPLICIT_ACCESSW, *PEXPLICIT_ACCESSW; -typedef struct _OBJECTS_AND_SID { - DWORD ObjectsPresent; - GUID ObjectTypeGuid; - GUID InheritedObjectTypeGuid; - SID * pSid; -} OBJECTS_AND_SID, *POBJECTS_AND_SID; -typedef struct _OBJECTS_AND_NAME_A { - DWORD ObjectsPresent; - SE_OBJECT_TYPE ObjectType; - LPSTR ObjectTypeName; - LPSTR InheritedObjectTypeName; - LPSTR ptstrName; -} OBJECTS_AND_NAME_A, *POBJECTS_AND_NAME_A; -typedef struct _OBJECTS_AND_NAME_W { - DWORD ObjectsPresent; - SE_OBJECT_TYPE ObjectType; - LPWSTR ObjectTypeName; - LPWSTR InheritedObjectTypeName; - LPWSTR ptstrName; -} OBJECTS_AND_NAME_W, *POBJECTS_AND_NAME_W; - - -#ifdef UNICODE -#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERW -typedef TRUSTEE_W TRUSTEE_, *PTRUSTEE_; -typedef TRUSTEEW TRUSTEE, *PTRUSTEE; -typedef ACTRL_ACCESSW ACTRL_ACCESS, *PACTRL_ACCESS; -typedef ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST; -typedef ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO; -typedef ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY; -typedef ACTRL_AUDITW ACTRL_AUDIT, *PACTRL_AUDIT; -typedef ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO; -typedef EXPLICIT_ACCESS_W EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_; -typedef EXPLICIT_ACCESSW EXPLICIT_ACCESS, *PEXPLICIT_ACCESS; -typedef TRUSTEE_ACCESSW TRUSTEE_ACCESS, *PTRUSTEE_ACCESS; -typedef OBJECTS_AND_NAME_W OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_; -#else -#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERA -typedef TRUSTEE_A TRUSTEE_, *PTRUSTEE_; -typedef TRUSTEEA TRUSTEE, *PTRUSTEE; -typedef ACTRL_ACCESSA ACTRL_ACCESS, *PACTRL_ACCESS; -typedef ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST; -typedef ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO; -typedef ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY; -typedef ACTRL_AUDITA ACTRL_AUDIT, *PACTRL_AUDIT; -typedef ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO; -typedef EXPLICIT_ACCESS_A EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_; -typedef EXPLICIT_ACCESSA EXPLICIT_ACCESS, *PEXPLICIT_ACCESS; -typedef TRUSTEE_ACCESSA TRUSTEE_ACCESS, *PTRUSTEE_ACCESS; -typedef OBJECTS_AND_NAME_A OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_; -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _ACCCRTL_H */ diff --git a/winsup/w32api/include/aclapi.h b/winsup/w32api/include/aclapi.h deleted file mode 100644 index 7e7e62960..000000000 --- a/winsup/w32api/include/aclapi.h +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef _ACLAPI_H -#define _ACLAPI_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif -VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD); -VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD); -DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A, - ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*); -DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W, - ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*); -VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR); -VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR); -VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE, - LPSTR,LPSTR,LPSTR); -VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE, - LPWSTR,LPWSTR,LPWSTR); -VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID); -VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID); -VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID); -VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID); -DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK); -DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK); -DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK); -DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK); -DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*); -DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*); -DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION, - PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); -DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION, - PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); -DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION, - PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); -TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A); -TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W); -LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A); -LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W); -TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A); -TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W); -DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*, - PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR); -DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*, - PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR); -DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*); -DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*); -DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); -DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); -DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); - -/* These are deprecated by MS and not documented in Aug 2001 PSDK -BuildImpersonateExplicitAccessWithName[AW] -BuildImpersonateTrustee[AW] -GetMultipleTrustee[AW] -GetMultipleTrusteeOperation[AW] -*/ - -#ifdef UNICODE -#define BuildExplicitAccessWithName BuildExplicitAccessWithNameW -#define BuildSecurityDescriptor BuildSecurityDescriptorW -#define BuildTrusteeWithName BuildTrusteeWithNameW -#define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameW -#define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidW -#define BuildTrusteeWithSid BuildTrusteeWithSidW -#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW -#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW -#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW -#define GetNamedSecurityInfo GetNamedSecurityInfoW -#define GetTrusteeForm GetTrusteeFormW -#define GetTrusteeName GetTrusteeNameW -#define GetTrusteeType GetTrusteeTypeW -#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW -#define SetEntriesInAcl SetEntriesInAclW -#define SetNamedSecurityInfo SetNamedSecurityInfoW -#else -#define BuildExplicitAccessWithName BuildExplicitAccessWithNameA -#define BuildSecurityDescriptor BuildSecurityDescriptorA -#define BuildTrusteeWithName BuildTrusteeWithNameA -#define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameA -#define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidA -#define BuildTrusteeWithSid BuildTrusteeWithSidA -#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA -#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA -#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA -#define GetNamedSecurityInfo GetNamedSecurityInfoA -#define GetTrusteeForm GetTrusteeFormA -#define GetTrusteeName GetTrusteeNameA -#define GetTrusteeType GetTrusteeTypeA -#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA -#define SetEntriesInAcl SetEntriesInAclA -#define SetNamedSecurityInfo SetNamedSecurityInfoA -#endif /* UNICODE */ - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/winsup/w32api/include/basetsd.h b/winsup/w32api/include/basetsd.h deleted file mode 100644 index 1b382e2e3..000000000 --- a/winsup/w32api/include/basetsd.h +++ /dev/null @@ -1,116 +0,0 @@ -#ifndef _BASETSD_H -#define _BASETSD_H - -#ifdef __GNUC__ -#ifndef __int64 -#define __int64 long long -#endif -#endif - -#if defined(_WIN64) -#define __int3264 __int64 -#define ADDRESS_TAG_BIT 0x40000000000UI64 -#else /* !_WIN64 */ -#define __int3264 __int32 -#define ADDRESS_TAG_BIT 0x80000000UL -#define HandleToUlong( h ) ((ULONG)(ULONG_PTR)(h) ) -#define HandleToLong( h ) ((LONG)(LONG_PTR) (h) ) -#define LongToHandle( h) ((HANDLE)(LONG_PTR) (h)) -#define PtrToUlong( p ) ((ULONG)(ULONG_PTR) (p) ) -#define PtrToLong( p ) ((LONG)(LONG_PTR) (p) ) -#define PtrToUint( p ) ((UINT)(UINT_PTR) (p) ) -#define PtrToInt( p ) ((INT)(INT_PTR) (p) ) -#define PtrToUshort( p ) ((unsigned short)(ULONG_PTR)(p) ) -#define PtrToShort( p ) ((short)(LONG_PTR)(p) ) -#define IntToPtr( i ) ((VOID*)(INT_PTR)((int)i)) -#define UIntToPtr( ui ) ((VOID*)(UINT_PTR)((unsigned int)ui)) -#define LongToPtr( l ) ((VOID*)(LONG_PTR)((long)l)) -#define ULongToPtr( ul ) ((VOID*)(ULONG_PTR)((unsigned long)ul)) -#endif /* !_WIN64 */ - -#define UlongToPtr(ul) ULongToPtr(ul) -#define UintToPtr(ui) UIntToPtr(ui) -#define MAXUINT_PTR (~((UINT_PTR)0)) -#define MAXINT_PTR ((INT_PTR)(MAXUINT_PTR >> 1)) -#define MININT_PTR (~MAXINT_PTR) -#define MAXULONG_PTR (~((ULONG_PTR)0)) -#define MAXLONG_PTR ((LONG_PTR)(MAXULONG_PTR >> 1)) -#define MINLONG_PTR (~MAXLONG_PTR) -#define MAXUHALF_PTR ((UHALF_PTR)~0) -#define MAXHALF_PTR ((HALF_PTR)(MAXUHALF_PTR >> 1)) -#define MINHALF_PTR (~MAXHALF_PTR) - -#ifndef RC_INVOKED -#ifdef __cplusplus -extern "C" { -#endif -typedef int LONG32, *PLONG32; -#ifndef XFree86Server -typedef int INT32, *PINT32; -#endif /* ndef XFree86Server */ -typedef unsigned int ULONG32, *PULONG32; -typedef unsigned int DWORD32, *PDWORD32; -typedef unsigned int UINT32, *PUINT32; - -#if defined(_WIN64) -typedef __int64 INT_PTR, *PINT_PTR; -typedef unsigned __int64 UINT_PTR, *PUINT_PTR; -typedef __int64 LONG_PTR, *PLONG_PTR; -typedef unsigned __int64 ULONG_PTR, *PULONG_PTR; -typedef unsigned __int64 HANDLE_PTR; -typedef unsigned int UHALF_PTR, *PUHALF_PTR; -typedef int HALF_PTR, *PHALF_PTR; - -#if 0 /* TODO when WIN64 is here */ -inline unsigned long HandleToUlong(const void* h ) - { return((unsigned long) h ); } -inline long HandleToLong( const void* h ) - { return((long) h ); } -inline void* LongToHandle( const long h ) - { return((void*) (INT_PTR) h ); } -inline unsigned long PtrToUlong( const void* p) - { return((unsigned long) p ); } -inline unsigned int PtrToUint( const void* p ) - { return((unsigned int) p ); } -inline unsigned short PtrToUshort( const void* p ) - { return((unsigned short) p ); } -inline long PtrToLong( const void* p ) - { return((long) p ); } -inline int PtrToInt( const void* p ) - { return((int) p ); } -inline short PtrToShort( const void* p ) - { return((short) p ); } -inline void* IntToPtr( const int i ) - { return( (void*)(INT_PTR)i ); } -inline void* UIntToPtr(const unsigned int ui) - { return( (void*)(UINT_PTR)ui ); } -inline void* LongToPtr( const long l ) - { return( (void*)(LONG_PTR)l ); } -inline void* ULongToPtr( const unsigned long ul ) - { return( (void*)(ULONG_PTR)ul ); } -#endif /* 0_ */ - -#else /* !_WIN64 */ -typedef int INT_PTR, *PINT_PTR; -typedef unsigned int UINT_PTR, *PUINT_PTR; -typedef long LONG_PTR, *PLONG_PTR; -typedef unsigned long ULONG_PTR, *PULONG_PTR; -typedef unsigned short UHALF_PTR, *PUHALF_PTR; -typedef short HALF_PTR, *PHALF_PTR; -typedef unsigned long HANDLE_PTR; -#endif /* !_WIN64 */ - -typedef ULONG_PTR SIZE_T, *PSIZE_T; -typedef LONG_PTR SSIZE_T, *PSSIZE_T; -typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; -typedef __int64 LONG64, *PLONG64; -typedef __int64 INT64, *PINT64; -typedef unsigned __int64 ULONG64, *PULONG64; -typedef unsigned __int64 DWORD64, *PDWORD64; -typedef unsigned __int64 UINT64, *PUINT64; -#ifdef __cplusplus -} -#endif -#endif /* !RC_INVOKED */ - -#endif /* _BASETSD_H */ diff --git a/winsup/w32api/include/basetyps.h b/winsup/w32api/include/basetyps.h deleted file mode 100644 index ed0912c26..000000000 --- a/winsup/w32api/include/basetyps.h +++ /dev/null @@ -1,141 +0,0 @@ -#ifndef _BASETYPS_H -#define _BASETYPS_H - -#ifndef __OBJC__ -#ifdef __cplusplus -#define EXTERN_C extern "C" -#else -#define EXTERN_C extern -#endif -#define STDMETHODCALLTYPE __stdcall -#define STDMETHODVCALLTYPE __cdecl -#define STDAPICALLTYPE __stdcall -#define STDAPIVCALLTYPE __cdecl -#define STDAPI EXTERN_C HRESULT STDAPICALLTYPE -#define STDAPI_(t) EXTERN_C t STDAPICALLTYPE -#define STDMETHODIMP HRESULT STDMETHODCALLTYPE -#define STDMETHODIMP_(t) t STDMETHODCALLTYPE -#define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE -#define STDAPIV_(t) EXTERN_C t STDAPIVCALLTYPE -#define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE -#define STDMETHODIMPV_(t) t STDMETHODVCALLTYPE -#define interface struct -#if defined(__cplusplus) && !defined(CINTERFACE) -#define STDMETHOD(m) virtual HRESULT STDMETHODCALLTYPE m -#define STDMETHOD_(t,m) virtual t STDMETHODCALLTYPE m -#define PURE =0 -#define THIS_ -#define THIS void -/* - __attribute__((com_interface)) is obsolete in __GNUC__ >= 3 - g++ vtables are now COM-compatible by default -*/ -#if defined(__GNUC__) && __GNUC__ < 3 && !defined(NOCOMATTRIBUTE) -#define DECLARE_INTERFACE(i) interface __attribute__((com_interface)) i -#define DECLARE_INTERFACE_(i,b) interface __attribute__((com_interface)) i : public b -#else -#define DECLARE_INTERFACE(i) interface i -#define DECLARE_INTERFACE_(i,b) interface i : public b -#endif -#else -#define STDMETHOD(m) HRESULT(STDMETHODCALLTYPE *m) -#define STDMETHOD_(t,m) t(STDMETHODCALLTYPE *m) -#define PURE -#define THIS_ INTERFACE *, -#define THIS INTERFACE * -#ifndef CONST_VTABLE -#define CONST_VTABLE -#endif -#define DECLARE_INTERFACE(i) \ -typedef interface i { CONST_VTABLE struct i##Vtbl *lpVtbl; } i; \ -typedef CONST_VTABLE struct i##Vtbl i##Vtbl; \ -CONST_VTABLE struct i##Vtbl -#define DECLARE_INTERFACE_(i,b) DECLARE_INTERFACE(i) -#endif -#define BEGIN_INTERFACE -#define END_INTERFACE - -#define FWD_DECL(i) typedef interface i i -#if defined(__cplusplus) && !defined(CINTERFACE) -#define IENUM_THIS(T) -#define IENUM_THIS_(T) -#else -#define IENUM_THIS(T) T* -#define IENUM_THIS_(T) T*, -#endif -#define DECLARE_ENUMERATOR_(I,T) \ -DECLARE_INTERFACE_(I,IUnknown) \ -{ \ - STDMETHOD(QueryInterface)(IENUM_THIS_(I) REFIID,PVOID*) PURE; \ - STDMETHOD_(ULONG,AddRef)(IENUM_THIS(I)) PURE; \ - STDMETHOD_(ULONG,Release)(IENUM_THIS(I)) PURE; \ - STDMETHOD(Next)(IENUM_THIS_(I) ULONG,T*,ULONG*) PURE; \ - STDMETHOD(Skip)(IENUM_THIS_(I) ULONG) PURE; \ - STDMETHOD(Reset)(IENUM_THIS(I)) PURE; \ - STDMETHOD(Clone)(IENUM_THIS_(I) I**) PURE; \ -} -#define DECLARE_ENUMERATOR(T) DECLARE_ENUMERATOR_(IEnum##T,T) - -#endif /* __OBJC__ */ - -#ifndef _GUID_DEFINED /* also defined in winnt.h */ -#define _GUID_DEFINED -typedef struct _GUID -{ - unsigned long Data1; - unsigned short Data2; - unsigned short Data3; - unsigned char Data4[8]; -} GUID,*REFGUID,*LPGUID; -#endif /* _GUID_DEFINED */ -#ifndef UUID_DEFINED -#define UUID_DEFINED -typedef GUID UUID; -#endif /* UUID_DEFINED */ -typedef GUID IID; -typedef GUID CLSID; -typedef CLSID *LPCLSID; -typedef IID *LPIID; -typedef IID *REFIID; -typedef CLSID *REFCLSID; -typedef GUID FMTID; -typedef FMTID *REFFMTID; -typedef unsigned long error_status_t; -#define uuid_t UUID -typedef unsigned long PROPID; - -#ifndef _REFGUID_DEFINED -#ifdef __cplusplus -#define REFGUID const GUID& -#define REFIID const IID& -#define REFCLSID const CLSID& -#else -#define REFGUID const GUID* const -#define REFIID const IID* const -#define REFCLSID const CLSID* const -#endif -#define _REFGUID_DEFINED -#define _REFGIID_DEFINED -#define _REFCLSID_DEFINED -#endif -#ifndef GUID_SECTION -#define GUID_SECTION ".text" -#endif -#ifdef __GNUC__ -#define GUID_SECT __attribute__ ((section (GUID_SECTION))) -#else -#define GUID_SECT -#endif -#if !defined(INITGUID) || (defined(INITGUID) && defined(__cplusplus)) -#define GUID_EXT EXTERN_C -#else -#define GUID_EXT -#endif -#ifdef INITGUID -#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) GUID_EXT const GUID n GUID_SECT = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} -#define DEFINE_OLEGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46) -#else -#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) GUID_EXT const GUID n -#define DEFINE_OLEGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46) -#endif -#endif diff --git a/winsup/w32api/include/cderr.h b/winsup/w32api/include/cderr.h deleted file mode 100644 index f148fc4d3..000000000 --- a/winsup/w32api/include/cderr.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef _CDERR_H -#define _CDERR_H -#define CDERR_DIALOGFAILURE 0xFFFF -#define CDERR_GENERALCODES 0x0000 -#define CDERR_STRUCTSIZE 0x0001 -#define CDERR_INITIALIZATION 0x0002 -#define CDERR_NOTEMPLATE 0x0003 -#define CDERR_NOHINSTANCE 0x0004 -#define CDERR_LOADSTRFAILURE 0x0005 -#define CDERR_FINDRESFAILURE 0x0006 -#define CDERR_LOADRESFAILURE 0x0007 -#define CDERR_LOCKRESFAILURE 0x0008 -#define CDERR_MEMALLOCFAILURE 0x0009 -#define CDERR_MEMLOCKFAILURE 0x000A -#define CDERR_NOHOOK 0x000B -#define CDERR_REGISTERMSGFAIL 0x000C -#define PDERR_PRINTERCODES 0x1000 -#define PDERR_SETUPFAILURE 0x1001 -#define PDERR_PARSEFAILURE 0x1002 -#define PDERR_RETDEFFAILURE 0x1003 -#define PDERR_LOADDRVFAILURE 0x1004 -#define PDERR_GETDEVMODEFAIL 0x1005 -#define PDERR_INITFAILURE 0x1006 -#define PDERR_NODEVICES 0x1007 -#define PDERR_NODEFAULTPRN 0x1008 -#define PDERR_DNDMMISMATCH 0x1009 -#define PDERR_CREATEICFAILURE 0x100A -#define PDERR_PRINTERNOTFOUND 0x100B -#define PDERR_DEFAULTDIFFERENT 0x100C -#define CFERR_CHOOSEFONTCODES 0x2000 -#define CFERR_NOFONTS 0x2001 -#define CFERR_MAXLESSTHANMIN 0x2002 -#define FNERR_FILENAMECODES 0x3000 -#define FNERR_SUBCLASSFAILURE 0x3001 -#define FNERR_INVALIDFILENAME 0x3002 -#define FNERR_BUFFERTOOSMALL 0x3003 -#define FRERR_FINDREPLACECODES 0x4000 -#define FRERR_BUFFERLENGTHZERO 0x4001 -#define CCERR_CHOOSECOLORCODES 0x5000 -#endif diff --git a/winsup/w32api/include/cguid.h b/winsup/w32api/include/cguid.h deleted file mode 100644 index 9f08f5a62..000000000 --- a/winsup/w32api/include/cguid.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef _CGUID_H -#define _CGUID_H -#ifdef __cplusplus -extern "C" { -#endif -extern const IID GUID_NULL; -extern const IID IID_IRpcChannel; -extern const IID IID_IRpcStub; -extern const IID IID_IStubManager; -extern const IID IID_IRpcProxy; -extern const IID IID_IProxyManager; -extern const IID IID_IPSFactory; -extern const IID IID_IInternalMoniker; -extern const IID IID_IDfReserved1; -extern const IID IID_IDfReserved2; -extern const IID IID_IDfReserved3; -extern const CLSID CLSID_StdMarshal; -extern const IID IID_IStub; -extern const IID IID_IProxy; -extern const IID IID_IEnumGeneric; -extern const IID IID_IEnumHolder; -extern const IID IID_IEnumCallback; -extern const IID IID_IOleManager; -extern const IID IID_IOlePresObj; -extern const IID IID_IDebug; -extern const IID IID_IDebugStream; -extern const CLSID CLSID_PSGenObject; -extern const CLSID CLSID_PSClientSite; -extern const CLSID CLSID_PSClassObject; -extern const CLSID CLSID_PSInPlaceActive; -extern const CLSID CLSID_PSInPlaceFrame; -extern const CLSID CLSID_PSDragDrop; -extern const CLSID CLSID_PSBindCtx; -extern const CLSID CLSID_PSEnumerators; -extern const CLSID CLSID_StaticMetafile; -extern const CLSID CLSID_StaticDib; -extern const CLSID CID_CDfsVolume; -extern const CLSID CLSID_CCDFormKrnl; -extern const CLSID CLSID_CCDPropertyPage; -extern const CLSID CLSID_CCDFormDialog; -extern const CLSID CLSID_CCDCommandButton; -extern const CLSID CLSID_CCDComboBox; -extern const CLSID CLSID_CCDTextBox; -extern const CLSID CLSID_CCDCheckBox; -extern const CLSID CLSID_CCDLabel; -extern const CLSID CLSID_CCDOptionButton; -extern const CLSID CLSID_CCDListBox; -extern const CLSID CLSID_CCDScrollBar; -extern const CLSID CLSID_CCDGroupBox; -extern const CLSID CLSID_CCDGeneralPropertyPage; -extern const CLSID CLSID_CCDGenericPropertyPage; -extern const CLSID CLSID_CCDFontPropertyPage; -extern const CLSID CLSID_CCDColorPropertyPage; -extern const CLSID CLSID_CCDLabelPropertyPage; -extern const CLSID CLSID_CCDCheckBoxPropertyPage; -extern const CLSID CLSID_CCDTextBoxPropertyPage; -extern const CLSID CLSID_CCDOptionButtonPropertyPage; -extern const CLSID CLSID_CCDListBoxPropertyPage; -extern const CLSID CLSID_CCDCommandButtonPropertyPage; -extern const CLSID CLSID_CCDComboBoxPropertyPage; -extern const CLSID CLSID_CCDScrollBarPropertyPage; -extern const CLSID CLSID_CCDGroupBoxPropertyPage; -extern const CLSID CLSID_CCDXObjectPropertyPage; -extern const CLSID CLSID_CStdPropertyFrame; -extern const CLSID CLSID_CFormPropertyPage; -extern const CLSID CLSID_CGridPropertyPage; -extern const CLSID CLSID_CWSJArticlePage; -extern const CLSID CLSID_CSystemPage; -extern const CLSID CLSID_IdentityUnmarshal; -extern const CLSID CLSID_InProcFreeMarshaler; -extern const CLSID CLSID_Picture_Metafile; -extern const CLSID CLSID_Picture_EnhMetafile; -extern const CLSID CLSID_Picture_Dib; -extern const GUID GUID_TRISTATE; -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/commctrl.h b/winsup/w32api/include/commctrl.h deleted file mode 100644 index 9e3658d52..000000000 --- a/winsup/w32api/include/commctrl.h +++ /dev/null @@ -1,2542 +0,0 @@ -#ifndef _COMMCTRL_H -#define _COMMCTRL_H -#include -#ifdef __cplusplus -extern "C" { -#endif -#ifndef _WIN32_IE -/* define _WIN32_IE if you really want it */ -#if 0 -#define _WIN32_IE 0x0300 -#endif -#endif - -#define DRAGLISTMSGSTRING TEXT("commctrl_DragListMsg") -#define ANIMATE_CLASSW L"SysAnimate32" -#define ANIMATE_CLASSA "SysAnimate32" -#define HOTKEY_CLASSA "msctls_hotkey32" -#define HOTKEY_CLASSW L"msctls_hotkey32" -#define PROGRESS_CLASSA "msctls_progress32" -#define PROGRESS_CLASSW L"msctls_progress32" -#define STATUSCLASSNAMEA "msctls_statusbar32" -#define STATUSCLASSNAMEW L"msctls_statusbar32" -#define TOOLBARCLASSNAMEW L"ToolbarWindow32" -#define TOOLBARCLASSNAMEA "ToolbarWindow32" -#define TOOLTIPS_CLASSW L"tooltips_class32" -#define TOOLTIPS_CLASSA "tooltips_class32" -#define TRACKBAR_CLASSA "msctls_trackbar32" -#define TRACKBAR_CLASSW L"msctls_trackbar32" -#define UPDOWN_CLASSA "msctls_updown32" -#define UPDOWN_CLASSW L"msctls_updown32" -#define WC_LISTVIEWA "SysListView32" -#define WC_LISTVIEWW L"SysListView32" -#define WC_TABCONTROLA "SysTabControl32" -#define WC_TABCONTROLW L"SysTabControl32" -#define WC_TREEVIEWA "SysTreeView32" -#define WC_TREEVIEWW L"SysTreeView32" -#define WC_HEADERA "SysHeader32" -#define WC_HEADERW L"SysHeader32" -#define DATETIMEPICK_CLASSW L"SysDateTimePick32" -#define DATETIMEPICK_CLASSA "SysDateTimePick32" -#define MONTHCAL_CLASSW L"SysMonthCal32" -#define MONTHCAL_CLASSA "SysMonthCal32" -#define REBARCLASSNAMEW L"ReBarWindow32" -#define REBARCLASSNAMEA "ReBarWindow32" -#define LVM_FIRST 0x1000 -#define TV_FIRST 0x1100 -#define HDM_FIRST 0x1200 -#define ACM_OPENA (WM_USER+100) -#define ACM_PLAY (WM_USER+101) -#define ACM_STOP (WM_USER+102) -#define ACM_OPENW (WM_USER+103) -#define ACN_START 1 -#define ACN_STOP 2 -#define DL_BEGINDRAG 1157 -#define DL_CANCELDRAG 1160 -#define DL_DRAGGING 1158 -#define DL_DROPPED 1159 -#define DL_CURSORSET 0 -#define DL_STOPCURSOR 1 -#define DL_COPYCURSOR 2 -#define DL_MOVECURSOR 3 -#define CCS_TOP 1 -#define CCS_NOMOVEY 2 -#define CCS_BOTTOM 3 -#define CCS_NORESIZE 4 -#define CCS_NOPARENTALIGN 8 -#define CCS_ADJUSTABLE 32 -#define CCS_NODIVIDER 64 -#if (_WIN32_IE >= 0x0300) -#define CCS_VERT 128 -#define CCS_LEFT 129 -#define CCS_NOMOVEX 130 -#define CCS_RIGHT 131 -#endif -#define ACS_CENTER 0x0001 -#define ACS_TRANSPARENT 0x0002 -#define ACS_AUTOPLAY 0x0004 -#define ACS_TIMER 0x0008 -#define PGS_VERT 0x00000000 -#define PGS_HORZ 0x00000001 -#define PGS_AUTOSCROLL 0x00000002 -#define PGS_DRAGNDROP 0x00000004 -#define CMB_MASKED 2 -#define MINSYSCOMMAND SC_SIZE -#define SBT_OWNERDRAW 0x1000 -#define SBT_NOBORDERS 256 -#define SBT_POPOUT 512 -#define SBT_RTLREADING 1024 -#define SB_SETTEXTA (WM_USER+1) -#define SB_SETTEXTW (WM_USER+11) -#define SB_GETTEXTA (WM_USER+2) -#define SB_GETTEXTW (WM_USER+13) -#define SB_GETTEXTLENGTHA (WM_USER+3) -#define SB_GETTEXTLENGTHW (WM_USER+12) -#define SB_SETPARTS (WM_USER+4) -#define SB_GETPARTS (WM_USER+6) -#define SB_GETBORDERS (WM_USER+7) -#define SB_SETMINHEIGHT (WM_USER+8) -#define SB_SIMPLE (WM_USER+9) -#define SB_GETRECT (WM_USER+10) -#define MSGF_COMMCTRL_BEGINDRAG 0x4200 -#define MSGF_COMMCTRL_SIZEHEADER 0x4201 -#define MSGF_COMMCTRL_DRAGSELECT 0x4202 -#define MSGF_COMMCTRL_TOOLBARCUST 0x4203 -#define ILC_COLOR 0 -#define ILC_COLOR4 4 -#define ILC_COLOR8 8 -#define ILC_COLOR16 16 -#define ILC_COLOR24 24 -#define ILC_COLOR32 32 -#define ILC_COLORDDB 254 -#define ILC_MASK 1 -#define ILC_PALETTE 2048 -#define ILD_BLEND25 2 -#define ILD_BLEND50 4 -#define ILD_SELECTED 4 -#define ILD_BLEND 4 -#define ILD_FOCUS 2 -#define ILD_MASK 16 -#define ILD_NORMAL 0 -#define ILD_TRANSPARENT 1 -#define HDS_HORZ 0 -#define HDS_BUTTONS 2 -#define HDS_HIDDEN 8 -#define NM_FIRST 0 -#define NM_LAST (-99) -#define LVN_FIRST (-100) -#define LVN_LAST (-199) -#define HDN_FIRST (-300) -#define HDN_LAST (-399) -#define TVN_FIRST (-400) -#define TVN_LAST (-499) -#define TTN_FIRST (-520) -#define TTN_LAST (-549) -#define TCN_FIRST (-550) -#define TCN_LAST (-580) -#define CDN_FIRST (-601) -#define CDN_LAST (-699) -#define TBN_FIRST (-700) -#define TBN_LAST (-720) -#define UDN_FIRST (-721) -#define UDN_LAST (-740) -#if (_WIN32_IE >= 0x0300) -#define RBN_FIRST (-831) -#define RBN_LAST (-859) -#define MCN_FIRST (-750) -#define MCN_LAST (-759) -#define DTN_FIRST (-760) -#define DTN_LAST (-799) -#define CBEN_FIRST (-800) -#define CBEN_LAST (-830) -#endif /* _WIN32_IE */ -#define HDI_WIDTH 1 -#define HDI_HEIGHT 1 -#define HDI_TEXT 2 -#define HDI_FORMAT 4 -#define HDI_LPARAM 8 -#define HDI_BITMAP 16 -#if (_WIN32_IE >= 0x0300) -#define HDI_IMAGE 32 -#define HDI_DI_SETITEM 64 -#define HDI_ORDER 128 -#endif -#define CBES_EX_NOEDITIMAGE 0x00000001 -#define CBES_EX_NOEDITIMAGEINDENT 0x00000002 -#define CBES_EX_PATHWORDBREAKPROC 0x00000004 -#if (_WIN32_IE >= 0x0400) -#define CBES_EX_NOSIZELIMIT 0x00000008 -#define CBES_EX_CASESENSITIVE 0x00000010 -#endif /* _WIN32_IE >= 0x0400 */ -#if (_WIN32_IE >= 0x0500) -#define HDI_FILTER 256 -#endif -#define HDF_LEFT 0 -#define HDF_RIGHT 1 -#define HDF_CENTER 2 -#define HDF_JUSTIFYMASK3 -#define HDF_RTLREADING 4 -#define HDF_OWNERDRAW 0x8000 -#define HDF_STRING 0x4000 -#define HDF_BITMAP 0x2000 -#if (_WIN32_IE >= 0x0300) -#define HDF_BITMAP_ON_RIGHT 0x1000 -#define HDF_IMAGE 0x0800 -#endif -#define HDM_GETITEMCOUNT HDM_FIRST -#define HDM_INSERTITEMA (HDM_FIRST+1) -#define HDM_INSERTITEMW (HDM_FIRST+10) -#define HDM_DELETEITEM (HDM_FIRST+2) -#define HDM_GETITEMA (HDM_FIRST+3) -#define HDM_GETITEMW (HDM_FIRST+11) -#define HDM_SETITEMA (HDM_FIRST+4) -#define HDM_SETITEMW (HDM_FIRST+12) -#define HDM_LAYOUT (HDM_FIRST+5) -#if (_WIN32_IE >= 0x0300) -#define HDM_GETITEMRECT (HDM_FIRST+7) -#define HDM_GETORDERARRAY (HDM_FIRST+17) -#define HDM_SETORDERARRAY (HDM_FIRST+18) -#endif -#define HHT_NOWHERE 1 -#define HHT_ONHEADER 2 -#define HHT_ONDIVIDER 4 -#define HHT_ONDIVOPEN 8 -#define HHT_ABOVE 256 -#define HHT_BELOW 512 -#define HHT_TORIGHT 1024 -#define HHT_TOLEFT 2048 -#define HDM_HITTEST (HDM_FIRST+6) -#define HDN_ITEMCHANGINGA (HDN_FIRST-0) -#define HDN_ITEMCHANGINGW (HDN_FIRST-20) -#define HDN_ITEMCHANGEDA (HDN_FIRST-1) -#define HDN_ITEMCHANGEDW (HDN_FIRST-21) -#define HDN_ITEMCLICKA (HDN_FIRST-2) -#define HDN_ITEMCLICKW (HDN_FIRST-22) -#define HDN_ITEMDBLCLICKA (HDN_FIRST-3) -#define HDN_ITEMDBLCLICKW (HDN_FIRST-23) -#define HDN_DIVIDERDBLCLICKA (HDN_FIRST-5) -#define HDN_DIVIDERDBLCLICKW (HDN_FIRST-25) -#define HDN_BEGINTRACKA (HDN_FIRST-6) -#define HDN_BEGINTRACKW (HDN_FIRST-26) -#define HDN_ENDTRACKA (HDN_FIRST-7) -#define HDN_ENDTRACKW (HDN_FIRST-27) -#define HDN_TRACKA (HDN_FIRST-8) -#define HDN_TRACKW (HDN_FIRST-28) -#if _WIN32_IE >= 0x0300 -#define HDN_ENDDRAG (HDN_FIRST-11) -#define HDN_BEGINDRAG (HDN_FIRST-10) -#endif -#define CMB_MASKED 2 -#define TBSTATE_CHECKED 1 -#define TBSTATE_PRESSED 2 -#define TBSTATE_ENABLED 4 -#define TBSTATE_HIDDEN 8 -#define TBSTATE_INDETERMINATE 16 -#define TBSTATE_WRAP 32 -#define TBSTYLE_BUTTON 0 -#define TBSTYLE_SEP 1 -#define TBSTYLE_CHECK 2 -#define TBSTYLE_GROUP 4 -#define TBSTYLE_CHECKGROUP (TBSTYLE_GROUP|TBSTYLE_CHECK) -#if (_WIN32_IE >= 0x0300) -#define TBSTYLE_DROPDOWN 8 -#endif -#if (_WIN32_IE >= 0x0400) -#define TBSTYLE_AUTOSIZE 16 -#define TBSTYLE_NOPREFIX 32 -#endif -#define TBSTYLE_TOOLTIPS 256 -#define TBSTYLE_WRAPABLE 512 -#define TBSTYLE_ALTDRAG 1024 -#if (_WIN32_IE >= 0x0300) -#define TBSTYLE_FLAT 2048 -#define TBSTYLE_LIST 4096 -#define TBSTYLE_CUSTOMERASE 8192 -#endif -#if (_WIN32_IE >= 0x0400) -#define TBSTYLE_REGISTERDROP 0x4000 -#define TBSTYLE_TRANSPARENT 0x8000 -#define TBSTYLE_EX_DRAWDDARROWS 0x00000001 -#endif /* _WIN32_IE >= 0x0400 */ -#define TB_ENABLEBUTTON (WM_USER+1) -#define TB_CHECKBUTTON (WM_USER+2) -#define TB_PRESSBUTTON (WM_USER+3) -#define TB_HIDEBUTTON (WM_USER+4) -#define TB_INDETERMINATE (WM_USER+5) -#define TB_ISBUTTONENABLED (WM_USER+9) -#define TB_ISBUTTONCHECKED (WM_USER+10) -#define TB_ISBUTTONPRESSED (WM_USER+11) -#define TB_ISBUTTONHIDDEN (WM_USER+12) -#define TB_ISBUTTONINDETERMINATE (WM_USER+13) -#define TB_SETSTATE (WM_USER+17) -#define TB_GETSTATE (WM_USER+18) -#define TB_ADDBITMAP (WM_USER+19) -#define TB_GETBUTTONSIZE (WM_USER+58) -#define HINST_COMMCTRL ((HINSTANCE)-1) -#define IDB_STD_SMALL_COLOR 0 -#define IDB_STD_LARGE_COLOR 1 -#define IDB_VIEW_SMALL_COLOR 4 -#define IDB_VIEW_LARGE_COLOR 5 -#define STD_CUT 0 -#define STD_COPY 1 -#define STD_PASTE 2 -#define STD_UNDO 3 -#define STD_REDOW 4 -#define STD_DELETE 5 -#define STD_FILENEW 6 -#define STD_FILEOPEN 7 -#define STD_FILESAVE 8 -#define STD_PRINTPRE 9 -#define STD_PROPERTIES 10 -#define STD_HELP 11 -#define STD_FIND 12 -#define STD_REPLACE 13 -#define STD_PRINT 14 -#define VIEW_LARGEICONS 0 -#define VIEW_SMALLICONS 1 -#define VIEW_LIST 2 -#define VIEW_DETAILS 3 -#define VIEW_SORTNAME 4 -#define VIEW_SORTSIZE 5 -#define VIEW_SORTDATE 6 -#define VIEW_SORTTYPE 7 -#define VIEW_PARENTFOLDER 8 -#define VIEW_NETCONNECT 9 -#define VIEW_NETDISCONNECT 10 -#define VIEW_NEWFOLDER 11 -#define TB_ADDBUTTONS (WM_USER+20) -#define TB_INSERTBUTTON (WM_USER+21) -#define TB_DELETEBUTTON (WM_USER+22) -#define TB_GETBUTTON (WM_USER+23) -#define TB_BUTTONCOUNT (WM_USER+24) -#define TB_COMMANDTOINDEX (WM_USER+25) -#define TB_SAVERESTOREA (WM_USER+26) -#define TB_SAVERESTOREW (WM_USER+76) -#define TB_CUSTOMIZE (WM_USER+27) -#define TB_ADDSTRINGA (WM_USER+28) -#define TB_ADDSTRINGW (WM_USER+77) -#define TB_GETITEMRECT (WM_USER+29) -#define TB_BUTTONSTRUCTSIZE (WM_USER+30) -#define TB_SETBUTTONSIZE (WM_USER+31) -#define TB_SETBITMAPSIZE (WM_USER+32) -#define TB_AUTOSIZE (WM_USER+33) -#define TB_GETTOOLTIPS (WM_USER+35) -#define TB_SETTOOLTIPS (WM_USER+36) -#define TB_SETPARENT (WM_USER+37) -#define TB_SETROWS (WM_USER+39) -#define TB_GETROWS (WM_USER+40) -#define TB_SETCMDID (WM_USER+42) -#define TB_CHANGEBITMAP (WM_USER+43) -#define TB_GETBITMAP (WM_USER+44) -#define TB_GETBUTTONTEXTA (WM_USER+45) -#define TB_GETBUTTONTEXTW (WM_USER+75) -#define TB_REPLACEBITMAP (WM_USER+46) -#define TBBF_LARGE 1 -#define TB_GETBITMAPFLAGS (WM_USER+41) -#if _WIN32_IE >= 0x400 -#define TB_SETBUTTONINFO (WM_USER+66) -#define TB_SETEXTENDEDSTYLE (WM_USER+84) -#define TB_GETEXTENDEDSTYLE (WM_USER+85) -#endif -#define TBN_GETBUTTONINFOA (TBN_FIRST-0) -#define TBN_GETBUTTONINFOW (TBN_FIRST-20) -#define TBN_BEGINDRAG (TBN_FIRST-1) -#define TBN_ENDDRAG (TBN_FIRST-2) -#define TBN_BEGINADJUST (TBN_FIRST-3) -#define TBN_ENDADJUST (TBN_FIRST-4) -#define TBN_RESET (TBN_FIRST-5) -#define TBN_QUERYINSERT (TBN_FIRST-6) -#define TBN_QUERYDELETE (TBN_FIRST-7) -#define TBN_TOOLBARCHANGE (TBN_FIRST-8) -#define TBN_CUSTHELP (TBN_FIRST-9) -#define TTS_ALWAYSTIP 1 -#define TTS_NOPREFIX 2 -#if( _WIN32_IE >= 0x0500 ) -#define TTS_NOANIMATE 0x10 -#define TTS_NOFADE 0x20 -#define TTS_BALLOON 0x40 -#define TTS_CLOSE 0x80 -#endif /* _WIN32_IE >= 0x0500 */ -#define TTF_IDISHWND 1 -#define TTF_CENTERTIP 2 -#define TTF_RTLREADING 4 -#define TTF_SUBCLASS 16 -#define TTDT_AUTOMATIC 0 -#define TTDT_RESHOW 1 -#define TTDT_AUTOPOP 2 -#define TTDT_INITIAL 3 -#define TTM_ACTIVATE (WM_USER+1) -#define TTM_SETDELAYTIME (WM_USER+3) -#define TTM_ADDTOOLA (WM_USER+4) -#define TTM_ADDTOOLW (WM_USER+50) -#define TTM_DELTOOLA (WM_USER+5) -#define TTM_DELTOOLW (WM_USER+51) -#define TTM_NEWTOOLRECTA (WM_USER+6) -#define TTM_NEWTOOLRECTW (WM_USER+52) -#define TTM_RELAYEVENT (WM_USER+7) -#define TTM_GETTOOLINFOA (WM_USER+8) -#define TTM_GETTOOLINFOW (WM_USER+53) -#define TTM_SETTOOLINFOA (WM_USER+9) -#define TTM_SETTOOLINFOW (WM_USER+54) -#define TTM_HITTESTA (WM_USER+10) -#define TTM_HITTESTW (WM_USER+55) -#define TTM_GETTEXTA (WM_USER+11) -#define TTM_GETTEXTW (WM_USER+56) -#define TTM_UPDATETIPTEXTA (WM_USER+12) -#define TTM_UPDATETIPTEXTW (WM_USER+57) -#define TTM_GETTOOLCOUNT (WM_USER +13) -#define TTM_ENUMTOOLSA (WM_USER+14) -#define TTM_ENUMTOOLSW (WM_USER+58) -#define TTM_GETCURRENTTOOLA (WM_USER+15) -#define TTM_GETCURRENTTOOLW (WM_USER+59) -#define TTM_WINDOWFROMPOINT (WM_USER+16) -#if (_WIN32_IE >= 0x0300) -#define TTM_TRACKACTIVATE (WM_USER+17) -#define TTM_TRACKPOSITION (WM_USER+18) -#define TTM_SETTIPBKCOLOR (WM_USER+19) -#define TTM_SETTIPTEXTCOLOR (WM_USER+20) -#define TTM_GETDELAYTIME (WM_USER+21) -#define TTM_GETTIPBKCOLOR (WM_USER+22) -#define TTM_GETTIPTEXTCOLOR (WM_USER+23) -#define TTM_SETMAXTIPWIDTH (WM_USER+24) -#define TTM_GETMAXTIPWIDTH (WM_USER+25) -#define TTM_SETMARGIN (WM_USER+26) -#define TTM_GETMARGIN (WM_USER+27) -#define TTM_POP (WM_USER+28) -#endif /* _WIN32_IE */ -#if (_WIN32_IE >= 0x0400) /* IE4.0 ??? */ -#define TTM_UPDATE (WM_USER+29) -#endif -#define TTN_NEEDTEXTA (TTN_FIRST-0) -#define TTN_NEEDTEXTW (TTN_FIRST-10) -#define TTN_SHOW (TTN_FIRST-1) -#define TTN_POP (TTN_FIRST-2) -#define UD_MAXVAL 0x7fff -#define UD_MINVAL (-UD_MAXVAL) -#define UDN_DELTAPOS (UDN_FIRST-1) -#define UDS_WRAP 1 -#define UDS_SETBUDDYINT 2 -#define UDS_ALIGNRIGHT 4 -#define UDS_ALIGNLEFT 8 -#define UDS_AUTOBUDDY 16 -#define UDS_ARROWKEYS 32 -#define UDS_HORZ 64 -#define UDS_NOTHOUSANDS 128 -#if ( _WIN32_IE >= 0x0300 ) -#define UDS_HOTTRACK 0x0100 -#endif /* _WIN32_IE >= 0x0300 */ -#define UDM_SETRANGE (WM_USER+101) -#define UDM_GETRANGE (WM_USER+102) -#define UDM_SETPOS (WM_USER+103) -#define UDM_GETPOS (WM_USER+104) -#define UDM_SETBUDDY (WM_USER+105) -#define UDM_GETBUDDY (WM_USER+106) -#define UDM_SETACCEL (WM_USER+107) -#define UDM_GETACCEL (WM_USER+108) -#define UDM_SETBASE (WM_USER+109) -#define UDM_GETBASE (WM_USER+110) -#define SB_SETTEXTA (WM_USER+1) -#define SB_SETTEXTW (WM_USER+11) -#define SB_GETTEXTA (WM_USER+2) -#define SB_GETTEXTW (WM_USER+13) -#define SB_GETTEXTLENGTHA (WM_USER+3) -#define SB_GETTEXTLENGTHW (WM_USER+12) -#define SB_SETPARTS (WM_USER+4) -#define SB_GETPARTS (WM_USER+6) -#define SB_GETBORDERS (WM_USER+7) -#define SB_SETMINHEIGHT (WM_USER+8) -#define SB_SIMPLE (WM_USER+9) -#define SB_GETRECT (WM_USER+10) -#define SBT_OWNERDRAW 0x1000 -#define SBT_NOBORDERS 256 -#define SBT_POPOUT 512 -#define SBT_RTLREADING 1024 -#if( _WIN32_IE >= 0x0400 ) -#define SBT_TOOLTIPS 0x0800 -#endif /* _WIN32_IE >= 0x0400 */ -#define TBS_AUTOTICKS 1 -#define TBS_VERT 2 -#define TBS_HORZ 0 -#define TBS_TOP 4 -#define TBS_BOTTOM 0 -#define TBS_LEFT 4 -#define TBS_RIGHT 0 -#define TBS_BOTH 8 -#define TBS_NOTICKS 16 -#define TBS_ENABLESELRANGE 32 -#define TBS_FIXEDLENGTH 64 -#define TBS_NOTHUMB 128 -#define TBS_TOOLTIPS 0x0100 -#define TBS_REVERSED 0x0200 -#if _WIN32_IE >= 0x400 -#define TBIF_BYINDEX -2147483648 -#define TBIF_COMMAND 32 -#define TBIF_IMAGE 1 -#define TBIF_LPARAM 16 -#define TBIF_SIZE 64 -#define TBIF_STATE 4 -#define TBIF_STYLE 8 -#define TBIF_TEXT 2 -#endif -#define TBM_GETPOS (WM_USER) -#define TBM_GETRANGEMIN (WM_USER+1) -#define TBM_GETRANGEMAX (WM_USER+2) -#define TBM_GETTIC (WM_USER+3) -#define TBM_SETTIC (WM_USER+4) -#define TBM_SETPOS (WM_USER+5) -#define TBM_SETRANGE (WM_USER+6) -#define TBM_SETRANGEMIN (WM_USER+7) -#define TBM_SETRANGEMAX (WM_USER+8) -#define TBM_CLEARTICS (WM_USER+9) -#define TBM_SETSEL (WM_USER+10) -#define TBM_SETSELSTART (WM_USER+11) -#define TBM_SETSELEND (WM_USER+12) -#define TBM_GETPTICS (WM_USER+14) -#define TBM_GETTICPOS (WM_USER+15) -#define TBM_GETNUMTICS (WM_USER+16) -#define TBM_GETSELSTART (WM_USER+17) -#define TBM_GETSELEND (WM_USER+18) -#define TBM_CLEARSEL (WM_USER+19) -#define TBM_SETTICFREQ (WM_USER+20) -#define TBM_SETPAGESIZE (WM_USER+21) -#define TBM_GETPAGESIZE (WM_USER+22) -#define TBM_SETLINESIZE (WM_USER+23) -#define TBM_GETLINESIZE (WM_USER+24) -#define TBM_GETTHUMBRECT (WM_USER+25) -#define TBM_GETCHANNELRECT (WM_USER+26) -#define TBM_SETTHUMBLENGTH (WM_USER+27) -#define TBM_GETTHUMBLENGTH (WM_USER+28) -#define TB_LINEUP 0 -#define TB_LINEDOWN 1 -#define TB_PAGEUP 2 -#define TB_PAGEDOWN 3 -#define TB_THUMBPOSITION 4 -#define TB_THUMBTRACK 5 -#define TB_TOP 6 -#define TB_BOTTOM 7 -#define TB_ENDTRACK 8 -#define HOTKEYF_SHIFT 1 -#define HOTKEYF_CONTROL 2 -#define HOTKEYF_ALT 4 -#define HOTKEYF_EXT 8 -#define HKCOMB_NONE 1 -#define HKCOMB_S 2 -#define HKCOMB_C 4 -#define HKCOMB_A 8 -#define HKCOMB_SC 16 -#define HKCOMB_SA 32 -#define HKCOMB_CA 64 -#define HKCOMB_SCA 128 -#define HKM_SETHOTKEY (WM_USER+1) -#define HKM_GETHOTKEY (WM_USER+2) -#define HKM_SETRULES (WM_USER+3) -#define PBM_SETRANGE (WM_USER+1) -#define PBM_SETPOS (WM_USER+2) -#define PBM_DELTAPOS (WM_USER+3) -#define PBM_SETSTEP (WM_USER+4) -#define PBM_STEPIT (WM_USER+5) -#define PBM_SETRANGE32 1030 -#define PBM_GETRANGE 1031 -#define PBM_GETPOS 1032 -#define PBM_SETBARCOLOR 1033 -#define PBM_SETBKCOLOR CCM_SETBKCOLOR -#define PBS_SMOOTH 1 -#define PBS_VERTICAL 4 -#define LVS_ICON 0 -#define LVS_REPORT 1 -#define LVS_SMALLICON 2 -#define LVS_LIST 3 -#define LVS_TYPEMASK 3 -#define LVS_SINGLESEL 4 -#define LVS_SHOWSELALWAYS 8 -#define LVS_SORTASCENDING 16 -#define LVS_SORTDESCENDING 32 -#define LVS_SHAREIMAGELISTS 64 -#define LVS_NOLABELWRAP 128 -#define LVS_AUTOARRANGE 256 -#define LVS_EDITLABELS 512 -#define LVS_NOSCROLL 0x2000 -#define LVS_TYPESTYLEMASK 0xfc00 -#define LVS_ALIGNTOP 0 -#define LVS_ALIGNLEFT 0x800 -#define LVS_ALIGNMASK 0xc00 -#define LVS_OWNERDRAWFIXED 0x400 -#define LVS_NOCOLUMNHEADER 0x4000 -#define LVS_NOSORTHEADER 0x8000 -#if (_WIN32_IE >= 0x0300) -#define HDS_HOTTRACK 0x0004 -#define HDS_DRAGDROP 0x0040 -#define HDS_FULLDRAG 0x0080 -#define HDS_FILTERBAR 0x0100 -/* FIXME: missing CDIS_INDETERMINATE,CDIS_MARKED, - CDDS_SUBITEM, CDRF_NOTIFYSUBITEMDRAW */ -#define CDIS_CHECKED 8 -#define CDIS_DEFAULT 32 -#define CDIS_DISABLED 4 -#define CDIS_FOCUS 16 -#define CDIS_GRAYED 2 -#define CDIS_HOT 64 -#define CDIS_SELECTED 1 -#define CDDS_POSTERASE 4 -#define CDDS_POSTPAINT 2 -#define CDDS_PREERASE 3 -#define CDDS_PREPAINT 1 -#define CDDS_ITEM 65536 -#define CDDS_ITEMPOSTERASE 65540 -#define CDDS_ITEMPOSTPAINT 65538 -#define CDDS_ITEMPREERASE 65539 -#define CDDS_ITEMPREPAINT 65537 -#define CDRF_DODEFAULT 0 -#define CDRF_NOTIFYITEMDRAW 32 -#define CDRF_NOTIFYITEMERASE 128 -#define CDRF_NOTIFYPOSTERASE 64 -#define CDRF_NOTIFYPOSTPAINT 16 -#define CDRF_NEWFONT 2 -#define CDRF_SKIPDEFAULT 4 -#define LVS_OWNERDATA 4096 -#define LVS_EX_CHECKBOXES 4 -#define LVS_EX_FULLROWSELECT 32 -#define LVS_EX_GRIDLINES 1 -#define LVS_EX_HEADERDRAGDROP 16 -#define LVS_EX_ONECLICKACTIVATE 64 -#define LVS_EX_SUBITEMIMAGES 2 -#define LVS_EX_TRACKSELECT 8 -#define LVS_EX_TWOCLICKACTIVATE 128 -#define LVSICF_NOINVALIDATEALL 0x00000001 -#define LVSICF_NOSCROLL 0x00000002 -#if( _WIN32_IE >= 0x0400 ) -#define LVS_EX_FLATSB 0x00000100 -#define LVS_EX_REGIONAL 0x00000200 -#define LVS_EX_INFOTIP 0x00000400 -#define LVS_EX_UNDERLINEHOT 0x00000800 -#define LVS_EX_UNDERLINECOLD 0x00001000 -#define LVS_EX_MULTIWORKAREAS 0x00002000 -#endif /* _WIN32_IE >=0x0400 */ -#if( _WIN32_IE >= 0x0500 ) -#define LVS_EX_LABELTIP 0x00004000 -#define LVS_EX_BORDERSELECT 0x00008000 -#endif /* _WIN32_IE >= 0x0500 */ -#endif /* _WIN32_IE >= 0x0300 */ -#define LVSIL_NORMAL 0 -#define LVSIL_SMALL 1 -#define LVSIL_STATE 2 -#define LVM_GETBKCOLOR LVM_FIRST -#define LVM_SETBKCOLOR (LVM_FIRST+1) -#define LVM_GETIMAGELIST (LVM_FIRST+2) -#define LVM_SETIMAGELIST (LVM_FIRST+3) -#define LVM_GETITEMCOUNT (LVM_FIRST+4) -#define LVIF_TEXT 1 -#define LVIF_IMAGE 2 -#define LVIF_PARAM 4 -#define LVIF_STATE 8 -#define LVIS_FOCUSED 1 -#define LVIS_SELECTED 2 -#define LVIS_CUT 4 -#define LVIS_DROPHILITED 8 -#define LVIS_OVERLAYMASK 0xF00 -#define LVIS_STATEIMAGEMASK 0xF000 -#define LPSTR_TEXTCALLBACKW ((LPWSTR)-1) -#define LPSTR_TEXTCALLBACKA ((LPSTR)-1) -#define I_IMAGECALLBACK (-1) -#define LVM_GETITEMA (LVM_FIRST+5) -#define LVM_GETITEMW (LVM_FIRST+75) -#define LVM_SETITEMA (LVM_FIRST+6) -#define LVM_SETITEMW (LVM_FIRST+76) -#define LVM_INSERTITEMA (LVM_FIRST+7) -#define LVM_INSERTITEMW (LVM_FIRST+77) -#define LVM_DELETEITEM (LVM_FIRST+8) -#define LVM_DELETEALLITEMS (LVM_FIRST+9) -#define LVM_GETCALLBACKMASK (LVM_FIRST+10) -#define LVM_SETCALLBACKMASK (LVM_FIRST+11) -#define LVNI_ALL 0 -#define LVNI_FOCUSED 1 -#define LVNI_SELECTED 2 -#define LVNI_CUT 4 -#define LVNI_DROPHILITED 8 -#define LVNI_ABOVE 256 -#define LVNI_BELOW 512 -#define LVNI_TOLEFT 1024 -#define LVNI_TORIGHT 2048 -#define LVM_GETNEXTITEM (LVM_FIRST+12) -#define LVFI_PARAM 1 -#define LVFI_STRING 2 -#define LVFI_PARTIAL 8 -#define LVFI_WRAP 32 -#define LVFI_NEARESTXY 64 -#define LVIF_DI_SETITEM 0x1000 -#define LVM_FINDITEMA (LVM_FIRST+13) -#define LVM_FINDITEMW (LVM_FIRST+83) -#define LVIR_BOUNDS 0 -#define LVIR_ICON 1 -#define LVIR_LABEL 2 -#define LVIR_SELECTBOUNDS 3 -#define LVM_GETITEMRECT (LVM_FIRST+14) -#define LVM_SETITEMPOSITION (LVM_FIRST+15) -#define LVM_GETITEMPOSITION (LVM_FIRST+16) -#define LVM_GETSTRINGWIDTHA (LVM_FIRST+17) -#define LVM_GETSTRINGWIDTHW (LVM_FIRST+87) -#define LVHT_NOWHERE 1 -#define LVHT_ONITEMICON 2 -#define LVHT_ONITEMLABEL 4 -#define LVHT_ONITEMSTATEICON 8 -#define LVHT_ONITEM (LVHT_ONITEMICON|LVHT_ONITEMLABEL|LVHT_ONITEMSTATEICON) -#define LVHT_ABOVE 8 -#define LVHT_BELOW 16 -#define LVHT_TORIGHT 32 -#define LVHT_TOLEFT 64 -#define LVM_HITTEST (LVM_FIRST+18) -#define LVM_ENSUREVISIBLE (LVM_FIRST+19) -#define LVM_SCROLL (LVM_FIRST+20) -#define LVM_REDRAWITEMS (LVM_FIRST+21) -#define LVA_DEFAULT 0 -#define LVA_ALIGNLEFT 1 -#define LVA_ALIGNTOP 2 -#define LVA_SNAPTOGRID 5 -#define LVM_ARRANGE (LVM_FIRST+22) -#define LVM_EDITLABELA (LVM_FIRST+23) -#define LVM_EDITLABELW (LVM_FIRST+118) -#define LVM_GETEDITCONTROL (LVM_FIRST+24) -#define LVCF_FMT 1 -#define LVCF_WIDTH 2 -#define LVCF_TEXT 4 -#define LVCF_SUBITEM 8 -#if (_WIN32_IE >= 0x0300) -#define LVCF_IMAGE 16 -#define LVCF_ORDER 32 -#endif -#define LVCFMT_LEFT 0 -#define LVCFMT_RIGHT 1 -#define LVCFMT_CENTER 2 -#define LVCFMT_JUSTIFYMASK 3 -#if (_WIN32_IE >= 0x0300) -#define LVCFMT_BITMAP_ON_RIGHT 4096 -#define LVCFMT_COL_HAS_IMAGES 32768 -#define LVCFMT_IMAGE 2048 -#endif -#define LVM_GETCOLUMNA (LVM_FIRST+25) -#define LVM_GETCOLUMNW (LVM_FIRST+95) -#define LVM_SETCOLUMNA (LVM_FIRST+26) -#define LVM_SETCOLUMNW (LVM_FIRST+96) -#define LVM_INSERTCOLUMNA (LVM_FIRST+27) -#define LVM_INSERTCOLUMNW (LVM_FIRST+97) -#define LVM_DELETECOLUMN (LVM_FIRST+28) -#define LVM_GETCOLUMNWIDTH (LVM_FIRST+29) -#define LVSCW_AUTOSIZE (-1) -#define LVSCW_AUTOSIZE_USEHEADER (-2) -#define LVM_SETCOLUMNWIDTH (LVM_FIRST+30) -#define LVM_CREATEDRAGIMAGE (LVM_FIRST+33) -#define LVM_GETVIEWRECT (LVM_FIRST+34) -#define LVM_GETTEXTCOLOR (LVM_FIRST+35) -#define LVM_SETTEXTCOLOR (LVM_FIRST+36) -#define LVM_GETTEXTBKCOLOR (LVM_FIRST+37) -#define LVM_SETTEXTBKCOLOR (LVM_FIRST+38) -#define LVM_GETTOPINDEX (LVM_FIRST+39) -#define LVM_GETCOUNTPERPAGE (LVM_FIRST+40) -#define LVM_GETORIGIN (LVM_FIRST+41) -#define LVM_GETORIGIN (LVM_FIRST+41) -#define LVM_UPDATE (LVM_FIRST+42) -#define LVM_SETITEMSTATE (LVM_FIRST+43) -#define LVM_GETITEMSTATE (LVM_FIRST+44) -#define LVM_GETITEMTEXTA (LVM_FIRST+45) -#define LVM_GETITEMTEXTW (LVM_FIRST+115) -#define LVM_SETITEMTEXTA (LVM_FIRST+46) -#define LVM_SETITEMTEXTW (LVM_FIRST+116) -#define LVM_SETITEMCOUNT (LVM_FIRST+47) -#define LVM_SORTITEMS (LVM_FIRST+48) -#define LVM_SETITEMPOSITION32 (LVM_FIRST+49) -#define LVM_GETSELECTEDCOUNT (LVM_FIRST+50) -#define LVM_GETITEMSPACING (LVM_FIRST+51) -#define LVM_GETISEARCHSTRINGA (LVM_FIRST+52) -#define LVM_GETISEARCHSTRINGW (LVM_FIRST+117) -#if (_WIN32_IE >= 0x0300) -#define LVM_APPROXIMATEVIEWRECT (LVM_FIRST+64) -#define LVM_SETEXTENDEDLISTVIEWSTYLE (LVM_FIRST+54) -#define LVM_GETEXTENDEDLISTVIEWSTYLE (LVM_FIRST+55) -#define LVM_SETCOLUMNORDERARRAY (LVM_FIRST+58) -#define LVM_GETCOLUMNORDERARRAY (LVM_FIRST+59) -#define LVM_GETHEADER (LVM_FIRST+31) -#define LVM_GETHOTCURSOR (LVM_FIRST+63) -#define LVM_GETHOTITEM (LVM_FIRST+61) -#define LVM_GETSUBITEMRECT (LVM_FIRST+56) -#define LVM_SETHOTCURSOR (LVM_FIRST+62) -#define LVM_SETHOTITEM (LVM_FIRST+60) -#define LVM_SETICONSPACING (LVM_FIRST+53) -#define LVM_SUBITEMHITTEST (LVM_FIRST+57) -#endif -#define LVN_ITEMCHANGING LVN_FIRST -#define LVN_ITEMCHANGED (LVN_FIRST-1) -#define LVN_INSERTITEM (LVN_FIRST-2) -#define LVN_DELETEITEM (LVN_FIRST-3) -#define LVN_DELETEALLITEMS (LVN_FIRST-4) -#define LVN_BEGINLABELEDITA (LVN_FIRST-5) -#define LVN_BEGINLABELEDITW (LVN_FIRST-75) -#define LVN_ENDLABELEDITA (LVN_FIRST-6) -#define LVN_ENDLABELEDITW (LVN_FIRST-76) -#define LVN_COLUMNCLICK (LVN_FIRST-8) -#define LVN_BEGINDRAG (LVN_FIRST-9) -#define LVN_BEGINRDRAG (LVN_FIRST-11) -#define LVN_GETDISPINFOA (LVN_FIRST-50) -#define LVN_GETDISPINFOW (LVN_FIRST-77) -#define LVN_SETDISPINFOA (LVN_FIRST-51) -#define LVN_SETDISPINFOW (LVN_FIRST-78) -#define LVN_KEYDOWN (LVN_FIRST-55) -#if (_WIN32_IE >= 0x0400) -#define LVKF_ALT 0x0001 -#define LVKF_CONTROL 0x0002 -#define LVKF_SHIFT 0x0004 -#endif -#define TVS_HASBUTTONS 1 -#define TVS_HASLINES 2 -#define TVS_LINESATROOT 4 -#define TVS_EDITLABELS 8 -#define TVS_DISABLEDRAGDROP 16 -#define TVS_SHOWSELALWAYS 32 -#if (_WIN32_IE >= 0x0300) -#define TVS_CHECKBOXES 256 -#define TVS_NOTOOLTIPS 128 -#define TVS_RTLREADING 64 -#define TVS_TRACKSELECT 512 -#endif -#if (_WIN32_IE >= 0x0400) -#define TVS_FULLROWSELECT 4096 -#define TVS_INFOTIP 2048 -#define TVS_NONEVENHEIGHT 16384 -#define TVS_NOSCROLL 8192 -#define TVS_SINGLEEXPAND 1024 -#endif -#if( _WIN32_IE >= 0x0500 ) -#define TVS_NOHSCROLL 0x8000 -#endif /* _WIN32_IE >= 0x0500 */ -#define TVIF_TEXT 1 -#define TVIF_IMAGE 2 -#define TVIF_PARAM 4 -#define TVIF_STATE 8 -#define TVIF_HANDLE 16 -#define TVIF_SELECTEDIMAGE 32 -#define TVIF_CHILDREN 64 -#if (_WIN32_IE >= 0x0400) -#define TVIF_INTEGRAL 0x0080 -#endif /* _WIN32_IE >= 0x0400 */ -#define TVIS_FOCUSED 1 -#define TVIS_SELECTED 2 -#define TVIS_CUT 4 -#define TVIS_DROPHILITED 8 -#define TVIS_BOLD 16 -#define TVIS_EXPANDED 32 -#define TVIS_EXPANDEDONCE 64 -#define TVIS_OVERLAYMASK 0xF00 -#define TVIS_STATEIMAGEMASK 0xF000 -#define TVIS_USERMASK 0xF000 -#define I_CHILDRENCALLBACK (-1) -#define TVI_ROOT ((HTREEITEM)0xFFFF0000) -#define TVI_FIRST ((HTREEITEM)0xFFFF0001) -#define TVI_LAST ((HTREEITEM)0xFFFF0002) -#define TVI_SORT ((HTREEITEM)0xFFFF0003) -#define TVSIL_NORMAL 0 -#define TVSIL_STATE 2 -#define TVM_INSERTITEMA TV_FIRST -#define TVM_INSERTITEMW (TV_FIRST+50) -#define TVM_DELETEITEM (TV_FIRST+1) -#define TVM_EXPAND (TV_FIRST+2) -#define TVM_GETITEMRECT (TV_FIRST+4) -#define TVM_GETCOUNT (TV_FIRST+5) -#define TVM_GETINDENT (TV_FIRST+6) -#define TVM_SETINDENT (TV_FIRST+7) -#define TVM_GETIMAGELIST (TV_FIRST+8) -#define TVM_SETIMAGELIST (TV_FIRST+9) -#define TVM_GETNEXTITEM (TV_FIRST+10) -#define TVM_SELECTITEM (TV_FIRST+11) -#define TVM_GETITEMA (TV_FIRST+12) -#define TVM_GETITEMW (TV_FIRST+62) -#define TVM_SETITEMA (TV_FIRST+13) -#define TVM_SETITEMW (TV_FIRST+63) -#define TVM_EDITLABELA (TV_FIRST+14) -#define TVM_EDITLABELW (TV_FIRST+65) -#define TVM_GETEDITCONTROL (TV_FIRST+15) -#define TVM_GETVISIBLECOUNT (TV_FIRST+16) -#define TVM_HITTEST (TV_FIRST+17) -#define TVM_CREATEDRAGIMAGE (TV_FIRST+18) -#define TVM_SORTCHILDREN (TV_FIRST+19) -#define TVM_ENSUREVISIBLE (TV_FIRST+20) -#define TVM_SORTCHILDRENCB (TV_FIRST+21) -#define TVM_ENDEDITLABELNOW (TV_FIRST+22) -#define TVM_GETISEARCHSTRINGA (TV_FIRST+23) -#define TVM_GETISEARCHSTRINGW (TV_FIRST+64) -#if (_WIN32_IE >= 0x0300) -#define TVM_GETTOOLTIPS (TV_FIRST+25) -#define TVM_SETTOOLTIPS (TV_FIRST+24) -#endif -#if (_WIN32_IE >= 0x0400) -#define TVM_GETBKCOLOR (TV_FIRST+31) -#define TVM_GETINSERTMARKCOLOR (TV_FIRST+38) -#define TVM_GETITEMHEIGHT (TV_FIRST+28) -#define TVM_GETTEXTCOLOR (TV_FIRST+32) -#define TVM_SETBKCOLOR (TV_FIRST+29) -#define TVM_SETINSERTMARK (TV_FIRST+26) -#define TVM_SETINSERTMARKCOLOR (TV_FIRST+37) -#define TVM_SETITEMHEIGHT (TV_FIRST+27) -#define TVM_SETTEXTCOLOR (TV_FIRST+30) -#endif -#define TVE_COLLAPSE 1 -#define TVE_EXPAND 2 -#define TVE_TOGGLE 3 -#define TVE_COLLAPSERESET 0x8000 -#define TVC_UNKNOWN 0 -#define TVC_BYMOUSE 1 -#define TVC_BYKEYBOARD 2 -#define TVGN_ROOT 0 -#define TVGN_NEXT 1 -#define TVGN_PREVIOUS 2 -#define TVGN_PARENT 3 -#define TVGN_CHILD 4 -#define TVGN_FIRSTVISIBLE 5 -#define TVGN_NEXTVISIBLE 6 -#define TVGN_PREVIOUSVISIBLE 7 -#define TVGN_DROPHILITE 8 -#define TVGN_CARET 9 -#define TVN_SELCHANGINGA (TVN_FIRST-1) -#define TVN_SELCHANGINGW (TVN_FIRST-50) -#define TVN_SELCHANGEDA (TVN_FIRST-2) -#define TVN_SELCHANGEDW (TVN_FIRST-51) -#define TVN_GETDISPINFOA (TVN_FIRST-3) -#define TVN_GETDISPINFOW (TVN_FIRST-52) -#define TVN_SETDISPINFOA (TVN_FIRST-4) -#define TVN_SETDISPINFOW (TVN_FIRST-53) -#define TVN_ITEMEXPANDINGA (TVN_FIRST-5) -#define TVN_ITEMEXPANDINGW (TVN_FIRST-54) -#define TVN_ITEMEXPANDEDA (TVN_FIRST-6) -#define TVN_ITEMEXPANDEDW (TVN_FIRST-55) -#define TVN_BEGINDRAGA (TVN_FIRST-7) -#define TVN_BEGINDRAGW (TVN_FIRST-56) -#define TVN_BEGINRDRAGA (TVN_FIRST-8) -#define TVN_BEGINRDRAGW (TVN_FIRST-57) -#define TVN_DELETEITEMA (TVN_FIRST-9) -#define TVN_DELETEITEMW (TVN_FIRST-58) -#define TVN_BEGINLABELEDITA (TVN_FIRST-10) -#define TVN_BEGINLABELEDITW (TVN_FIRST-59) -#define TVN_ENDLABELEDITA (TVN_FIRST-11) -#define TVN_ENDLABELEDITW (TVN_FIRST-60) -#define TVN_KEYDOWN (TVN_FIRST-12) -#define TVIF_DI_SETITEM 0x1000 -#define TVHT_NOWHERE 1 -#define TVHT_ONITEMICON 2 -#define TVHT_ONITEMLABEL 4 -#define TVHT_ONITEM (TVHT_ONITEMICON|TVHT_ONITEMLABEL|TVHT_ONITEMSTATEICON) -#define TVHT_ONITEMINDENT 8 -#define TVHT_ONITEMBUTTON 16 -#define TVHT_ONITEMRIGHT 32 -#define TVHT_ONITEMSTATEICON 64 -#define TVHT_ABOVE 256 -#define TVHT_BELOW 512 -#define TVHT_TORIGHT 1024 -#define TVHT_TOLEFT 2048 -#define TCHT_NOWHERE 1 -#define TCHT_ONITEMICON 2 -#define TCHT_ONITEMLABEL 4 -#define TCHT_ONITEM (TCHT_ONITEMICON|TCHT_ONITEMLABEL) -#define TCS_FORCEICONLEFT 16 -#define TCS_FORCELABELLEFT 32 -#define TCS_TABS 0 -#define TCS_BUTTONS 256 -#define TCS_SINGLELINE 0 -#define TCS_MULTILINE 512 -#define TCS_RIGHTJUSTIFY 0 -#define TCS_FIXEDWIDTH 1024 -#define TCS_RAGGEDRIGHT 2048 -#define TCS_FOCUSONBUTTONDOWN 0x1000 -#define TCS_OWNERDRAWFIXED 0x2000 -#define TCS_TOOLTIPS 0x4000 -#define TCS_FOCUSNEVER 0x8000 -#if (_WIN32_IE >= 0x0300) -#define TCS_BOTTOM 2 -#define TCS_RIGHT 2 -#define TCS_VERTICAL 128 -#define TCS_SCROLLOPPOSITE 0x0001 -#define TCS_HOTTRACK 0x0040 -#define TCS_MULTISELECT 0x0004 -#endif -#if( _WIN32_IE >= 0x0400 ) -#define TCS_FLATBUTTONS 0x0008 -#define TCS_EX_FLATSEPARATORS 0x00000001 -#define TCS_EX_REGISTERDROP 0x00000002 -#endif /* _WIN32_IE >= 0x0400 */ -#define TCIF_TEXT 1 -#define TCIF_IMAGE 2 -#define TCIF_RTLREADING 4 -#define TCIF_PARAM 8 -#define TCM_FIRST 0x1300 -#define TCM_GETIMAGELIST (TCM_FIRST+2) -#define TCM_SETIMAGELIST (TCM_FIRST+3) -#define TCM_GETITEMCOUNT (TCM_FIRST+4) -#define TCM_GETITEMA (TCM_FIRST+5) -#define TCM_GETITEMW (TCM_FIRST+60) -#define TCM_SETITEMA (TCM_FIRST+6) -#define TCM_SETITEMW (TCM_FIRST+61) -#define TCM_INSERTITEMA (TCM_FIRST+7) -#define TCM_INSERTITEMW (TCM_FIRST+62) -#define TCM_DELETEITEM (TCM_FIRST+8) -#define TCM_DELETEALLITEMS (TCM_FIRST+9) -#define TCM_GETITEMRECT (TCM_FIRST+10) -#define TCM_GETCURSEL (TCM_FIRST+11) -#define TCM_SETCURSEL (TCM_FIRST+12) -#define TCM_HITTEST (TCM_FIRST+13) -#define TCM_SETITEMEXTRA (TCM_FIRST+14) -#define TCM_ADJUSTRECT (TCM_FIRST+40) -#define TCM_SETITEMSIZE (TCM_FIRST+41) -#define TCM_REMOVEIMAGE (TCM_FIRST+42) -#define TCM_SETPADDING (TCM_FIRST+43) -#define TCM_GETROWCOUNT (TCM_FIRST+44) -#define TCM_GETTOOLTIPS (TCM_FIRST+45) -#define TCM_SETTOOLTIPS (TCM_FIRST+46) -#define TCM_GETCURFOCUS (TCM_FIRST+47) -#define TCM_SETCURFOCUS (TCM_FIRST+48) -#define TCM_GETEXTENDEDSTYLE (TCM_FIRST + 53) -#define TCN_KEYDOWN TCN_FIRST -#define TCN_SELCHANGE (TCN_FIRST-1) -#define TCN_SELCHANGING (TCN_FIRST-2) -#define NM_OUTOFMEMORY (NM_FIRST-1) -#define NM_CLICK (NM_FIRST-2) -#define NM_DBLCLK (NM_FIRST-3) -#define NM_RETURN (NM_FIRST-4) -#define NM_RCLICK (NM_FIRST-5) -#define NM_RDBLCLK (NM_FIRST-6) -#define NM_SETFOCUS (NM_FIRST-7) -#define NM_KILLFOCUS (NM_FIRST-8) -#define NM_CUSTOMDRAW (NM_FIRST-12) -#define NM_HOVER (NM_FIRST-13) -#define NM_NCHITTEST (NM_FIRST-14) -#define NM_KEYDOWN (NM_FIRST-15) -#define NM_RELEASEDCAPTURE (NM_FIRST-16) -#define NM_SETCURSOR (NM_FIRST-17) -#define NM_CHAR (NM_FIRST-18) -#define SBARS_SIZEGRIP 256 -#define CCM_SETBKCOLOR 8193 -#define CCM_SETCOLORSCHEME 8194 -#define CCM_GETCOLORSCHEME 8195 -#define CCM_GETDROPTARGET 8196 -#define CCM_SETUNICODEFORMAT 8197 -#define CCM_GETUNICODEFORMAT 8198 -#define ICC_LISTVIEW_CLASSES 1 -#define ICC_TREEVIEW_CLASSES 2 -#define ICC_BAR_CLASSES 4 -#define ICC_TAB_CLASSES 8 -#define ICC_UPDOWN_CLASS 16 -#define ICC_PROGRESS_CLASS 32 -#define ICC_HOTKEY_CLASS 64 -#define ICC_ANIMATE_CLASS 128 -#define ICC_WIN95_CLASSES 255 -#define ICC_DATE_CLASSES 256 -#define ICC_USEREX_CLASSES 512 -#define ICC_COOL_CLASSES 1024 -#if (_WIN32_IE >= 0x0400) -#define ICC_INTERNET_CLASSES 2048 -#define ICC_PAGESCROLLER_CLASS 4096 -#define ICC_NATIVEFNTCTL_CLASS 8192 -#define INFOTIPSIZE -#endif /* _WIN32_IE */ -#define GDTR_MIN 1 -#define GDTR_MAX 2 -#define GMR_VISIBLE 0 -#define GMR_DAYSTATE 1 -#define GDT_ERROR -1 -#define GDT_VALID 0 -#define GDT_NONE 1 -#define DTS_UPDOWN 1 -#define DTS_SHOWNONE 2 -#define DTS_SHORTDATEFORMAT 0 -#define DTS_LONGDATEFORMAT 4 -#define DTS_TIMEFORMAT 9 -#define DTS_APPCANPARSE 16 -#define DTS_RIGHTALIGN 32 -#if ( _WIN32_IE >= 0x500 ) -#define DTS_SHORTDATECENTURYFORMAT 0x000C -#endif /* _WIN32_IE >= 0x500 */ -#define MCS_DAYSTATE 1 -#define MCS_MULTISELECT 2 -#define MCS_WEEKNUMBERS 4 -#if (_WIN32_IE >= 0x0400) -#define MCS_NOTODAYCIRCLE 0x0008 -#define MCS_NOTODAY 0x0010 -#else /* _WIN32_IE >= 0x0400 */ -#define MCS_NOTODAY 0x0008 -#endif /* _WIN32_IE >= 0x0400 */ -#define DTM_GETSYSTEMTIME 0x1001 -#define DTM_SETSYSTEMTIME 0x1002 -#define DTM_GETRANGE 0x1003 -#define DTM_SETRANGE 0x1004 -#define DTM_SETFORMATA 0x1005 -#define DTM_SETFORMATW 0x1050 -#define DTM_SETMCCOLOR 0x1006 -#define DTM_GETMCCOLOR 0x1007 -#define DTM_GETMONTHCAL 0x1008 -#define DTM_SETMCFONT 0x1009 -#define DTM_GETMCFONT 0x100a -#define DTN_USERSTRINGA (-758) -#define DTN_USERSTRINGW (-745) -#define DTN_WMKEYDOWNA (-757) -#define DTN_WMKEYDOWNW (-744) -#define DTN_FORMATA (-756) -#define DTN_FORMATW (-743) -#define DTN_FORMATQUERYA (-755) -#define DTN_FORMATQUERYW (-742) -#define DTN_DROPDOWN (-754) -#define DTN_CLOSEUP (-753) -#define DTN_DATETIMECHANGE (-759) -#define MCM_GETCURSEL 0x1001 -#define MCM_SETCURSEL 0x1002 -#define MCM_GETMAXSELCOUNT 0x1003 -#define MCM_SETMAXSELCOUNT 0x1004 -#define MCM_GETSELRANGE 0x1005 -#define MCM_SETSELRANGE 0x1006 -#define MCM_GETMONTHRANGE 0x1007 -#define MCM_SETDAYSTATE 0x1008 -#define MCM_GETMINREQRECT 0x1009 -#define MCM_SETCOLOR 0x100a -#define MCM_GETCOLOR 0x100b -#define MCM_SETTODAY 0x100c -#define MCM_GETTODAY 0x100d -#define MCM_HITTEST 0x100e -#define MCM_SETFIRSTDAYOFWEEK 0x100f -#define MCM_GETFIRSTDAYOFWEEK 0x1010 -#define MCM_GETRANGE 0x1011 -#define MCM_SETRANGE 0x1012 -#define MCM_GETMONTHDELTA 0x1013 -#define MCM_SETMONTHDELTA 0x1014 -#define MCN_SELCHANGE (-749) -#define MCN_GETDAYSTATE (-747) -#define MCN_SELECT (-746) -#define ODT_HEADER 100 -#define ODT_TAB 101 -#define ODT_LISTVIEW -#define SB_SETBKCOLOR 0x2001 -#if (_WIN32_IE >= 0x0300) -#define SB_ISSIMPLE 1038 -#endif -#define RBS_TOOLTIPS 256 -#define RBS_VARHEIGHT 512 -#define RBS_BANDBORDERS 1024 -#define RBS_FIXEDORDER 2048 -#define RBIM_IMAGELIST 1 -#define RB_SETCOLORSCHEME CCM_SETCOLORSCHEME -#define RB_GETCOLORSCHEME CCM_GETCOLORSCHEME -#define RBBS_BREAK 1 -#define RBBS_FIXEDSIZE 2 -#define RBBS_CHILDEDGE 4 -#define RBBS_HIDDEN 8 -#define RBBS_NOVERT 16 -#define RBBS_FIXEDBMP 32 -#define RBBIM_STYLE 1 -#define RBBIM_COLORS 2 -#define RBBIM_TEXT 4 -#define RBBIM_IMAGE 8 -#define RBBIM_CHILD 16 -#define RBBIM_CHILDSIZE 32 -#define RBBIM_SIZE 64 -#define RBBIM_BACKGROUND 128 -#define RBBIM_ID 256 -#define RB_INSERTBANDA (WM_USER+1) -#define RB_INSERTBANDW (WM_USER+10) -#define RB_DELETEBAND (WM_USER+2) -#define RB_GETBARINFO (WM_USER+3) -#define RB_SETBARINFO (WM_USER+4) -#define RB_GETBANDCOUNT (WM_USER+12) -#define RB_GETROWCOUNT (WM_USER+13) -#define RB_GETROWHEIGHT (WM_USER+14) -#define RB_SETBANDINFOA (WM_USER+6) -#define RB_SETBANDINFOW (WM_USER+11) -#define RB_SETPARENT (WM_USER+7) -#define RBN_HEIGHTCHANGE RBN_FIRST -#if (_WIN32_IE >= 0x0300) -#define LVN_ODCACHEHINT (LVN_FIRST-13) -#define LVN_ODFINDITEMA (LVN_FIRST-52) -#define LVN_ODFINDITEMW (LVN_FIRST-79) -#define LVN_ITEMACTIVATE (LVN_FIRST-14) -#define LVN_ODSTATECHANGED (LVN_FIRST-15) -#ifdef UNICODE -#define LVN_ODFINDITEM LVN_ODFINDITEMW -#else -#define LVN_ODFINDITEM LVN_ODFINDITEMA -#endif -#endif /* _WIN32_IE */ -#if (_WIN32_IE >= 0x0400) -#define UDM_SETRANGE32 1135 -#define UDM_GETRANGE32 1136 -#define SB_SETICON 1039 -#define SB_SETTIPTEXTA 1040 -#define SB_SETTIPTEXTW 1041 -#define SB_GETTIPTEXTA 1042 -#define SB_GETTIPTEXTW 1043 -#define SB_GETICON 1044 -#define SB_SETUNICODEFORMAT 0x2005 -#define SB_GETUNICODEFORMAT 0x2006 -#define RBS_REGISTERDROP 4096 -#define RBS_AUTOSIZE 8192 -#define RBS_VERTICALGRIPPER 16384 -#define RBS_DBLCLKTOGGLE 32768 -#define RBBS_VARIABLEHEIGHT 64 -#define RBBS_GRIPPERALWAYS 128 -#define RBBS_NOGRIPPER 256 -#define RBBIM_IDEALSIZE 512 -#define RBBIM_LPARAM 1024 -#define RBBIM_HEADERSIZE 2048 -#define RB_HITTEST (WM_USER+8) -#define RB_GETRECT (WM_USER+9) -#define RB_IDTOINDEX (WM_USER+16) -#define RB_GETTOOLTIPS (WM_USER+17) -#define RB_SETTOOLTIPS (WM_USER+18) -#define RB_SETBKCOLOR (WM_USER+19) -#define RB_GETBKCOLOR (WM_USER+20) -#define RB_SETTEXTCOLOR (WM_USER+21) -#define RB_GETTEXTCOLOR (WM_USER+22) -#define RB_SIZETORECT (WM_USER+23) -#define RB_BEGINDRAG (WM_USER+24) -#define RB_ENDDRAG (WM_USER+25) -#define RB_DRAGMOVE (WM_USER+26) -#define RB_GETBARHEIGHT (WM_USER+27) -#define RB_GETBANDINFOW (WM_USER+28) -#define RB_GETBANDINFOA (WM_USER+29) -#define RB_MINIMIZEBAND (WM_USER+30) -#define RB_MAXIMIZEBAND (WM_USER+31) -#define RB_GETDROPTARGET CCM_GETDROPTARGET -#define RB_GETBANDBORDERS (WM_USER+34) -#define RB_SHOWBAND (WM_USER+35) -#define RB_SETPALETTE (WM_USER+37) -#define RB_GETPALETTE (WM_USER+38) -#define RB_MOVEBAND (WM_USER+39) -#define RB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT -#define RB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT -#define RBN_GETOBJECT (RBN_FIRST-1) -#define RBN_LAYOUTCHANGED (RBN_FIRST-2) -#define RBN_AUTOSIZE (RBN_FIRST-3) -#define RBN_BEGINDRAG (RBN_FIRST-4) -#define RBN_ENDDRAG (RBN_FIRST-5) -#define RBN_DELETINGBAND (RBN_FIRST-6) -#define RBN_DELETEDBAND (RBN_FIRST-7) -#define RBN_CHILDSIZE (RBN_FIRST-8) -#define RBNM_ID 1 -#define RBNM_STYLE 2 -#define RBNM_LPARAM 4 -#define RBHT_NOWHERE 1 -#define RBHT_CAPTION 2 -#define RBHT_CLIENT 3 -#define RBHT_GRABBER 4 -#ifdef UNICODE -#define SB_SETTIPTEXT SB_SETTIPTEXTW -#define SB_GETTIPTEXT SB_GETTIPTEXTW -#define RB_GETBANDINFO RB_GETBANDINFOW -#else -#define SB_SETTIPTEXT SB_SETTIPTEXTA -#define SB_GETTIPTEXT SB_GETTIPTEXTA -#define RB_GETBANDINFO RB_GETBANDINFOA -#endif -#else -#define RB_GETBANDINFO (WM_USER+5) -#endif /* _WIN32_IE >= 0x0400 */ -#define CBEM_INSERTITEMA (WM_USER + 1) -#define CBEM_SETIMAGELIST (WM_USER + 2) -#define CBEM_GETIMAGELIST (WM_USER + 3) -#define CBEM_GETITEMA (WM_USER + 4) -#define CBEM_SETITEMA (WM_USER + 5) -#define CBEM_DELETEITEM CB_DELETESTRING -#define CBEM_GETCOMBOCONTROL (WM_USER + 6) -#define CBEM_GETEDITCONTROL (WM_USER + 7) -#define CBEM_SETEXSTYLE (WM_USER + 8) -#define CBEM_GETEXSTYLE (WM_USER + 9) -#if (_WIN32_IE >= 0x0400) -#define CBEM_SETEXTENDEDSTYLE (WM_USER + 14) -#define CBEM_GETEXTENDEDSTYLE (WM_USER + 9) -#define CBEM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT -#define CBEM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT -#endif /* _WIN32_IE >= 0x0400 */ -#define CBEM_HASEDITCHANGED (WM_USER + 10) -#define CBEM_INSERTITEMW (WM_USER + 11) -#define CBEM_SETITEMW (WM_USER + 12) -#define CBEM_GETITEMW (WM_USER + 13) - -#ifndef RC_INVOKED -typedef struct _COLORMAP { - COLORREF from; - COLORREF to; -} COLORMAP,*LPCOLORMAP; -typedef struct { - UINT uNotification; - HWND hWnd; - POINT ptCursor; -} DRAGLISTINFO,*LPDRAGLISTINFO; -typedef struct _TBBUTTON { - int iBitmap; - int idCommand; - BYTE fsState; - BYTE fsStyle; - BYTE bReserved[2]; - DWORD dwData; - int iString; -} TBBUTTON,*PTBBUTTON,*LPTBBUTTON; -typedef const TBBUTTON *LPCTBBUTTON; -#if _WIN32_IE >= 0x400 -typedef struct { - UINT cbSize; - DWORD dwMask; - int idCommand; - int iImage; - BYTE fsState; - BYTE fsStyle; - WORD cx; - DWORD lParam; - LPSTR pszText; - int cchText; -} TBBUTTONINFOA, *LPTBBUTTONINFOA; -typedef struct { - UINT cbSize; - DWORD dwMask; - int idCommand; - int iImage; - BYTE fsState; - BYTE fsStyle; - WORD cx; - DWORD lParam; - LPWSTR pszText; - int cchText; -} TBBUTTONINFOW, *LPTBBUTTONINFOW; -#endif -typedef struct { - NMHDR hdr; - int iItem; - TBBUTTON tbButton; - int cchText; - LPTSTR pszText; -} TBNOTIFY,*LPTBNOTIFY; -typedef struct { - HKEY hkr; - LPCTSTR pszSubKey; - LPCTSTR pszValueName; -} TBSAVEPARAMS; -typedef struct _IMAGEINFO { - HBITMAP hbmImage; - HBITMAP hbmMask; - int Unused1; - int Unused2; - RECT rcImage; -} IMAGEINFO; -DECLARE_HANDLE(HIMAGELIST); -typedef struct _HDITEMA { - UINT mask; - int cxy; - LPSTR pszText; - HBITMAP hbm; - int cchTextMax; - int fmt; - LPARAM lParam; -#if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -#endif -#if (_WIN32_IE >= 0x0500) - UINT type; - LPVOID pvFilter; -#endif -} HDITEMA, * LPHDITEMA; -typedef struct _HDITEMW { - UINT mask; - int cxy; - LPWSTR pszText; - HBITMAP hbm; - int cchTextMax; - int fmt; - LPARAM lParam; -#if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -#endif -#if (_WIN32_IE >= 0x0500) - UINT type; - LPVOID pvFilter; -#endif -} HDITEMW, * LPHDITEMW; -/* for backward compatability */ -#define HD_ITEMA HDITEMA -#define HD_ITEMW HDITEMW -#define HD_ITEM HDITEM -typedef struct _HD_LAYOUT { - RECT *prc; - WINDOWPOS *pwpos; -} HDLAYOUT, *LPHDLAYOUT; -#define HD_LAYOUT HDLAYOUT /* backward compatability */ -typedef struct _HD_HITTESTINFO { - POINT pt; - UINT flags; - int iItem; -} HD_HITTESTINFO; -typedef struct _HD_NOTIFYA { - NMHDR hdr; - int iItem; - int iButton; - HD_ITEMA *pitem; -} HD_NOTIFYA; -typedef struct _HD_NOTIFYW { - NMHDR hdr; - int iItem; - int iButton; - HD_ITEMW *pitem; -} HD_NOTIFYW; -/* FIXME: NMHEADER structure (base for all events of the comctl controls) - is the same as HD_NOTIFY depending on the value of _WIN32_IE macro. - I'm defining both for now. */ -typedef struct _NMHEADERA { - NMHDR hdr; - int iItem; - int iButton; - HD_ITEMA* pitem; -} NMHEADERA, *LPNMHEADERA; - -typedef struct _NMHEADERW { - NMHDR hdr; - int iItem; - int iButton; - HD_ITEMW* pitem; -} NMHEADERW, *LPNMHEADERW; -#ifdef UNICODE -#define NMHEADER NMHEADERW -#define LPNMHEADER LPNMHEADERW -#else -#define NMHEADER NMHEADERA -#define LPNMHEADER LPNMHEADERA -#endif -/* End FIXME. */ -typedef struct tagNMCUSTOMDRAWINFO { - NMHDR hdr; - DWORD dwDrawStage; - HDC hdc; - RECT rc; - DWORD dwItemSpec; - UINT uItemState; - LPARAM lItemParam; -} NMCUSTOMDRAW, *LPNMCUSTOMDRAW; -typedef struct tagNMLVCUSTOMDRAW { - NMCUSTOMDRAW nmcd; - COLORREF clrText; - COLORREF clrTextBk; -#if _WIN32_IE >= 0x0400 - int iSubItem; -#endif -} NMLVCUSTOMDRAW, *LPNMLVCUSTOMDRAW; -typedef struct tagNMTVCUSTOMDRAW { - NMCUSTOMDRAW nmcd; - COLORREF clrText; - COLORREF clrTextBk; -#if _WIN32_IE >= 0x0400 - int iLevel; -#endif -} NMTVCUSTOMDRAW, *LPNMTVCUSTOMDRAW; -#if (_WIN32_IE >= 0x400) -typedef struct tagNMITEMACTIVATE { - NMHDR hdr; - int iItem; - int iSubItem; - UINT uNewState; - UINT uOldState; - UINT uChanged; - POINT ptAction; - LPARAM lParam; - UINT uKeyFlags; -} NMITEMACTIVATE, *LPNMITEMACTIVATE; -#endif /* _WIN32_IE >= 0x0400 */ -typedef struct tagTBADDBITMAP { - HINSTANCE hInst; - UINT nID; -} TBADDBITMAP,*LPTBADDBITMAP; -typedef struct tagTBSAVEPARAMSA { - HKEY hkr; - LPCSTR pszSubKey; - LPCSTR pszValueName; -} TBSAVEPARAMSA; -typedef struct tagTBSAVEPARAMSW { - HKEY hkr; - LPCWSTR pszSubKey; - LPCWSTR pszValueName; -} TBSAVEPARAMSW; -typedef struct { - HINSTANCE hInstOld; - UINT nIDOld; - HINSTANCE hInstNew; - UINT nIDNew; - int nButtons; -} TBREPLACEBITMAP,*LPTBREPLACEBITMAP; -typedef struct tagTBNOTIFYA { - NMHDR hdr; - int iItem; - TBBUTTON tbButton; - int cchText; - LPSTR pszText; -} TBNOTIFYA,*LPTBNOTIFYA; -typedef struct tagTBNOTIFYW { - NMHDR hdr; - int iItem; - TBBUTTON tbButton; - int cchText; - LPWSTR pszText; -} TBNOTIFYW,*LPTBNOTIFYW; -typedef struct tagTOOLINFOA { - UINT cbSize; - UINT uFlags; - HWND hwnd; - UINT uId; - RECT rect; - HINSTANCE hinst; - LPSTR lpszText; -} TOOLINFOA,*PTOOLINFOA,*LPTOOLINFOA; -typedef struct tagTOOLINFOW { - UINT cbSize; - UINT uFlags; - HWND hwnd; - UINT uId; - RECT rect; - HINSTANCE hinst; - LPWSTR lpszText; -} TOOLINFOW,*PTOOLINFOW,*LPTOOLINFOW; -typedef struct _TT_HITTESTINFOA { - HWND hwnd; - POINT pt; - TOOLINFOA ti; -} TTHITTESTINFOA,*LPHITTESTINFOA; -typedef struct _TT_HITTESTINFOW { - HWND hwnd; - POINT pt; - TOOLINFOW ti; -} TTHITTESTINFOW,*LPHITTESTINFOW; -typedef struct tagTOOLTIPTEXTA { - NMHDR hdr; - LPSTR lpszText; - char szText[80]; - HINSTANCE hinst; - UINT uFlags; -} TOOLTIPTEXTA,*LPTOOLTIPTEXTA; -typedef struct tagTOOLTIPTEXTW { - NMHDR hdr; - LPWSTR lpszText; - WCHAR szText[80]; - HINSTANCE hinst; - UINT uFlags; -} TOOLTIPTEXTW,*LPTOOLTIPTEXTW; -typedef struct _UDACCEL { - UINT nSec; - UINT nInc; -} UDACCEL,*LPUDACCEL; -typedef struct _NM_UPDOWN { - NMHDR hdr; - int iPos; - int iDelta; -} NM_UPDOWN,*LPNM_UPDOWN; -typedef struct _LVITEMA { - UINT mask; - int iItem; - int iSubItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -#if (_WIN32_IE >= 0x0300) - int iIndent; -#endif -} LVITEMA, FAR *LPLVITEMA; -#define _LV_ITEMA _LVITEMA -#define LV_ITEMA LVITEMA -typedef struct _LVITEMW { - UINT mask; - int iItem; - int iSubItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -#if (_WIN32_IE >= 0x0300) - int iIndent; -#endif -} LVITEMW, FAR *LPLVITEMW; -#define _LV_ITEMW _LVITEMW -#define LV_ITEMW LVITEMW -typedef struct tagLVFINDINFOA { - UINT flags; - LPCSTR psz; - LPARAM lParam; - POINT pt; - UINT vkDirection; -} LVFINDINFOA, FAR* LPFINDINFOA; -#define _LV_FINDINFOA tagLVFINDINFOA -#define LV_FINDINFOA LVFINDINFOA -typedef struct tagLVFINDINFOW { - UINT flags; - LPCWSTR psz; - LPARAM lParam; - POINT pt; - UINT vkDirection; -} LVFINDINFOW, FAR* LPFINDINFOW; -#define _LV_FINDINFOW tagLVFINDINFOW -#define LV_FINDINFOW LVFINDINFOW -typedef struct _LVHITTESTINFO { - POINT pt; - UINT flags; - int iItem; -} LVHITTESTINFO; -#define _LV_HITTESTINFO _LVHITTESTINFO -#define LV_HITTESTINFO LVHITTESTINFO -typedef struct _LVCOLUMNA { - UINT mask; - int fmt; - int cx; - LPSTR pszText; - int cchTextMax; - int iSubItem; -#if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -#endif -} LVCOLUMNA, FAR *LPLVCOLUMNA; -#define _LV_COLUMNA _LVCOLUMNA -#define LV_COLUMNA LVCOLUMNA -typedef struct _LVCOLUMNW { - UINT mask; - int fmt; - int cx; - LPWSTR pszText; - int cchTextMax; - int iSubItem; -#if (_WIN32_IE >= 0x0300) - int iImage; - int iOrder; -#endif -} LVCOLUMNW, FAR *LPLVCOLUMNW; -#define _LV_COLUMNW _LVCOLUMNW -#define LV_COLUMNW LVCOLUMNW -typedef int(CALLBACK *PFNLVCOMPARE)(LPARAM,LPARAM,LPARAM); -typedef struct tagNMLISTVIEW { - NMHDR hdr; - int iItem; - int iSubItem; - UINT uNewState; - UINT uOldState; - UINT uChanged; - POINT ptAction; - LPARAM lParam; -} NMLISTVIEW, *LPNMLISTVIEW; -/* for backward compatability */ -#define _NM_LISTVIEW tagNMLISTVIEW -#define NM_LISTVIEW NMLISTVIEW -#define LPNM_LISTVIEW LPNMLISTVIEW -typedef struct tagNMLVDISPINFOA { - NMHDR hdr; - LV_ITEMA item; -} NMLVDISPINFOA, FAR *LPNMLVDISPINFOA; -#define _LV_DISPINFOA tagNMLVDISPINFOA -#define LV_DISPINFOA NMLVDISPINFOA -typedef struct tagNMLVDISPINFOW { - NMHDR hdr; - LV_ITEMW item; -} NMLVDISPINFOW, FAR *LPNMLVDISPINFOW; -#define _LV_DISPINFOW tagNMLVDISPINFOW -#define LV_DISPINFOW NMLVDISPINFOW -typedef struct _LV_KEYDOWN { - NMHDR hdr; - WORD wVKey; - UINT flags; -} LV_KEYDOWN; -typedef struct tagNMLVCACHEHINT { - NMHDR hdr; - int iFrom; - int iTo; -} NMLVCACHEHINT, *PNMLVCACHEHINT; -#define NM_CACHEHINT NMLVCACHEHINT -DECLARE_HANDLE(HTREEITEM); -typedef struct tagTVITEMA { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; -} TVITEMA,*LPTVITEMA; -#define _TV_ITEMA tagTVITEMA -#define TV_ITEMA TVITEMA -#define LPTV_ITEMA LPTVITEMA -typedef struct tagTVITEMW { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; -} TVITEMW,*LPTVITEMW; -#define _TV_ITEMW tagTVITEMW -#define TV_ITEMW TVITEMW -#define LPTV_ITEMW LPTVITEMW -#if (_WIN32_IE >= 0x0400) -typedef struct tagTVITEMEXA { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; - int iIntegral; -} TVITEMEXA, *LPTVITEMEXA; -typedef struct tagTVITEMEXW { - UINT mask; - HTREEITEM hItem; - UINT state; - UINT stateMask; - LPWSTR pszText; - int cchTextMax; - int iImage; - int iSelectedImage; - int cChildren; - LPARAM lParam; - int iIntegral; -} TVITEMEXW, *LPTVITEMEXW; -#endif /* _WIN32_IE >= 0x0400 */ -typedef struct tagTVINSERTSTRUCTA { - HTREEITEM hParent; - HTREEITEM hInsertAfter; -#if (_WIN32_IE >= 0x0400) - _ANONYMOUS_UNION union { - TVITEMEXA itemex; - TV_ITEMA item; - } DUMMYUNIONNAME; -#else - TV_ITEMA item; -#endif -} TVINSERTSTRUCTA,*LPTVINSERTSTRUCTA; -#define _TV_INSERTSTRUCTA tagTVINSERTSTRUCTA -#define TV_INSERTSTRUCTA TVINSERTSTRUCTA -#define LPTV_INSERTSTRUCTA LPTVINSERTSTRUCTA -typedef struct tagTVINSERTSTRUCTW { - HTREEITEM hParent; - HTREEITEM hInsertAfter; -#if (_WIN32_IE >= 0x0400) - _ANONYMOUS_UNION union { - TVITEMEXW itemex; - TV_ITEMW item; - } DUMMYUNIONNAME; -#else - TV_ITEMW item; -#endif -} TVINSERTSTRUCTW,*LPTVINSERTSTRUCTW; -#define _TV_INSERTSTRUCTW tagTVINSERTSTRUCTW -#define TV_INSERTSTRUCTW TVINSERTSTRUCTW -#define LPTV_INSERTSTRUCTW LPTVINSERTSTRUCTW -typedef struct _TV_HITTESTINFO { - POINT pt; - UINT flags; - HTREEITEM hItem; -} TV_HITTESTINFO,*LPTV_HITTESTINFO; -typedef int(CALLBACK *PFNTVCOMPARE)(LPARAM,LPARAM,LPARAM); -typedef struct _TV_SORTCB { - HTREEITEM hParent; - PFNTVCOMPARE lpfnCompare; - LPARAM lParam; -} TV_SORTCB,*LPTV_SORTCB; -typedef struct tagNMTREEVIEWA { - NMHDR hdr; - UINT action; - TV_ITEMA itemOld; - TV_ITEMA itemNew; - POINT ptDrag; -} NMTREEVIEWA,*LPNMTREEVIEWA; -#define _NM_TREEVIEWA tagNMTREEVIEWA -#define NM_TREEVIEWA NMTREEVIEWA -#define LPNM_TREEVIEWA LPNMTREEVIEWA -typedef struct tagNMTREEVIEWW { - NMHDR hdr; - UINT action; - TV_ITEMW itemOld; - TV_ITEMW itemNew; - POINT ptDrag; -} NMTREEVIEWW,*LPNMTREEVIEWW; -#define _NM_TREEVIEWW tagNMTREEVIEWW -#define NM_TREEVIEWW NMTREEVIEWW -#define LPNM_TREEVIEWW LPNMTREEVIEWW -typedef struct _TV_DISPINFOA { - NMHDR hdr; - TV_ITEMA item; -} TV_DISPINFOA; -typedef struct _TV_DISPINFOW { - NMHDR hdr; - TV_ITEMW item; -} TV_DISPINFOW; -typedef struct _TV_KEYDOWN { - NMHDR hdr; - WORD wVKey; - UINT flags; -} TV_KEYDOWN; -typedef struct _TC_ITEMHEADERA { - UINT mask; - UINT lpReserved1; - UINT lpReserved2; - LPSTR pszText; - int cchTextMax; - int iImage; -} TC_ITEMHEADERA; -typedef struct _TC_ITEMHEADERW { - UINT mask; - UINT lpReserved1; - UINT lpReserved2; - LPWSTR pszText; - int cchTextMax; - int iImage; -} TC_ITEMHEADERW; -typedef struct _TC_ITEMA { - UINT mask; - UINT lpReserved1; - UINT lpReserved2; - LPSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} TC_ITEMA; -typedef struct _TC_ITEMW { - UINT mask; - UINT lpReserved1; - UINT lpReserved2; - LPWSTR pszText; - int cchTextMax; - int iImage; - LPARAM lParam; -} TC_ITEMW; -typedef struct _TC_HITTESTINFO { - POINT pt; - UINT flags; -} TC_HITTESTINFO,*LPTC_HITTESTINFO; -typedef struct _TC_KEYDOWN { - NMHDR hdr; - WORD wVKey; - UINT flags; -} TC_KEYDOWN; -#if (_WIN32_IE >= 0x0300) -typedef struct tagINITCOMMONCONTROLSEX { - DWORD dwSize; - DWORD dwICC; -} INITCOMMONCONTROLSEX,*LPINITCOMMONCONTROLSEX; -#endif -typedef struct tagPBRANGE { - int iLow; - int iHigh; -} PBRANGE,*PPBRANGE; -typedef struct tagCOLORSCHEME { - DWORD dwSize; - COLORREF clrBtnHighlight; - COLORREF clrBtnShadow; -} COLORSCHEME,*LPCOLORSCHEME; -typedef struct tagTCITEM { - UINT mask; -#if (_WIN32_IE >= 0x0300) - DWORD dwState; - DWORD dwStateMask; -#else - UINT lpReserved1; - UINT lpReserved2; -#endif -#ifdef UNICODE - LPWSTR pszText; -#else - LPSTR pszText; -#endif - int cchTextMax; - int iImage; - LPARAM lParam; -} TCITEM,*LPTCITEM; -typedef struct tagMCHITTESTINFO { - UINT cbSize; - POINT pt; - UINT uHit; - SYSTEMTIME st; -}MCHITTESTINFO, *PMCHITTESTINFO; -typedef DWORD MONTHDAYSTATE; -typedef MONTHDAYSTATE *LPMONTHDAYSTATE; -typedef struct tagNMDAYSTATE { - NMHDR nmhdr; - SYSTEMTIME stStart; - int cDayState; - LPMONTHDAYSTATE prgDayState; -}NMDAYSTATE,*LPNMDAYSTATE; -typedef struct tagREBARINFO { - UINT cbSize; - UINT fMask; - HIMAGELIST himl; -} REBARINFO,*LPREBARINFO; -typedef struct tagREBARBANDINFOA { - UINT cbSize; - UINT fMask; - UINT fStyle; - COLORREF clrFore; - COLORREF clrBack; - LPSTR lpText; - UINT cch; - int iImage; - HWND hwndChild; - UINT cxMinChild; - UINT cyMinChild; - UINT cx; - HBITMAP hbmBack; - UINT wID; -#if (_WIN32_IE >= 0x0400) - UINT cyChild; - UINT cyMaxChild; - UINT cyIntegral; - UINT cxIdeal; - LPARAM lParam; - UINT cxHeader; -#endif -} REBARBANDINFOA,*LPREBARBANDINFOA; -typedef struct tagREBARBANDINFOW { - UINT cbSize; - UINT fMask; - UINT fStyle; - COLORREF clrFore; - COLORREF clrBack; - LPWSTR lpText; - UINT cch; - int iImage; - HWND hwndChild; - UINT cxMinChild; - UINT cyMinChild; - UINT cx; - HBITMAP hbmBack; - UINT wID; -#if (_WIN32_IE >= 0x0400) - UINT cyChild; - UINT cyMaxChild; - UINT cyIntegral; - UINT cxIdeal; - LPARAM lParam; - UINT cxHeader; -#endif -} REBARBANDINFOW,*LPREBARBANDINFOW; -typedef REBARBANDINFOA const *LPCREBARBANDINFOA; -typedef REBARBANDINFOW const *LPCREBARBANDINFOW; -#define REBARBANDINFOA_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA,wID) -#define REBARBANDINFOW_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW, wID) - -#if (_WIN32_IE >= 0x0300) -typedef struct tagTCHITTESTINFO { - POINT pt; - UINT flags; -} TCHITTESTINFO,*LPTCHITTESTINFO; -typedef struct tagIMAGELISTDRAWPARAMS { - DWORD cbSize; - HIMAGELIST himl; - int i; - HDC hdcDst; - int x; - int y; - int cx; - int cy; - int xBitmap; - int yBitmap; - COLORREF rgbBk; - COLORREF rgbFg; - UINT fStyle; - DWORD dwRop; -} IMAGELISTDRAWPARAMS,*LPIMAGELISTDRAWPARAMS; -#endif /* (_WIN32_IE >= 0x0300) */ -#if (_WIN32_IE >= 0x0400) -typedef struct tagNMREBARCHILDSIZE { - NMHDR hdr; - UINT uBand; - UINT wID; - RECT rcChild; - RECT rcBand; -} NMREBARCHILDSIZE,*LPNMREBARCHILDSIZE; -typedef struct tagNMREBAR { - NMHDR hdr; - DWORD dwMask; - UINT uBand; - UINT fStyle; - UINT wID; - LPARAM lParam; -} NMREBAR,*LPNMREBAR; -typedef struct tagNMRBAUTOSIZE { - NMHDR hdr; - BOOL fChanged; - RECT rcTarget; - RECT rcActual; -} NMRBAUTOSIZE,*LPNMRBAUTOSIZE; -typedef struct _RB_HITTESTINFO { - POINT pt; - UINT flags; - int iBand; -} RBHITTESTINFO,*LPRBHITTESTINFO; -#endif - -#define INDEXTOOVERLAYMASK(i) ((i)<<8) -#define INDEXTOSTATEIMAGEMASK(i) ((i)<<12) -#define HANDLE_WM_NOTIFY(h,w,l,f) (f)((h),(int)(w),(NMHDR*)(l)) -#define FORWARD_WM_NOTIFY(h,i,p,f) (LRESULT)(f)((h),WM_NOTIFY,(WPARAM)(int)(i),(LPARAM)(NMHDR*)(p)) -#define CCSIZEOF_STRUCT(n,m) (((int)((PBYTE)(&((s*)0)->m)-((PBYTE)((s*)0))))+sizeof(((s*)0)->m)) -#define Animate_Create(w,i,s,hI) CreateWindow(ANIMATE_CLASS,NULL,s,0,0,0,0,w,(HMENU)(i),hI,NULL) -#define Animate_Open(w,f) (BOOL)SendMessage(w,ACM_OPEN,0,(LPARAM)f) -#define Animate_Play(w,f,t,r) (BOOL)SendMessage(w,ACM_PLAY,(r),(LPARAM)MAKELONG(f,t)) -#define Animate_Stop(w) (BOOL)SendMessage(w,ACM_STOP,0,0) -#define Animate_Close(w) Animate_Open(w,NULL) -#define Animate_Seek(w,f) Animate_Play(w,f,f,1) -HBITMAP WINAPI CreateMappedBitmap(HINSTANCE,int,UINT,LPCOLORMAP,int); -HWND WINAPI CreateStatusWindowA(LONG,LPCSTR,HWND,UINT); -HWND WINAPI CreateStatusWindowW(LONG,LPCWSTR,HWND,UINT); -HWND WINAPI CreateToolbarEx(HWND,DWORD,UINT,int,HINSTANCE,UINT,LPCTBBUTTON,int,int,int,int,int,UINT); -HWND WINAPI CreateUpDownControl(DWORD,int,int,int,int,HWND,int,HINSTANCE,HWND,int,int,int); -#define DateTime_GetMonthCal(hwnd) SendMessage(hwnd, DTM_GETMONTHCAL, 0, 0) -#define DateTime_GetMonthCalColor(hwnd, icolor) SendMessage(hwnd, DTM_GETMONTHCAL, (WPARAM)icolor,0) -#define DateTime_GetMonthCalFont(hwnd) SendMessage(hwnd,DTM_GETMCFONT,0,0) -#define DateTime_GetRange(hwnd,lpsystimearray) SendMessage(hwnd,DTM_GETRANGE,0,(LPARAM)lpsystimearray) -#define DateTime_GetSystemTime(hwnd,lpsystime) SendMessage(hwnd,DTM_GETSYSTEMTIME,0,(LPARAM)lpsystime) -#define DateTime_SetFormat(hwnd,lpszformat) SendMessage(hwnd,DTM_SETFORMAT,0,(LPARAM)lpszformat) -#define DateTime_SetMonthCalColor(hwnd,icolor,clr) SendMessage(hwnd,DTM_SETMCCOLOR,(WPARAM)icolor,(LPARAM)clr) -#define DateTime_SetMonthCalFont(hwnd,hfont,lparam) SendMessage(hwnd,DTM_SETMCFONT,(WPARAM)hfont,(LPARAM)lparam) -#define DateTime_SetRange(hwnd,flags,lpsystimearray) SendMessage(hwnd,DTM_SETRANGE,(WPARAM)flags,(LPARAM)lpsystimearray) -#define DateTime_SetSystemTime(hwnd,flag,lpsystime) SendMessage(hwnd,DTM_SETSYSTEMTIME,(WPARAM)flag,(LPARAM)lpsystime) -void WINAPI DrawInsert(HWND,HWND,int); -void WINAPI DrawStatusTextA(HDC,LPRECT,LPCSTR,UINT); -void WINAPI DrawStatusTextW(HDC,LPRECT,LPCWSTR,UINT); -void WINAPI GetEffectiveClientRect(HWND,LPRECT,LPINT); -#define Header_GetItemCount(w) (int)SendMessage((w),HDM_GETITEMCOUNT,0,0) -#define Header_InsertItem(w,i,phdi) (int)SendMessage((w),HDM_INSERTITEM,(WPARAM)(int)(i),(LPARAM)(const HD_ITEM*)(phdi)) -#define Header_DeleteItem(w,i) (BOOL)SendMessage((w),HDM_DELETEITEM,(WPARAM)(int)(i),0) -#define Header_GetItem(w,i,phdi) (BOOL)SendMessage((w),HDM_GETITEM,(WPARAM)(int)(i),(LPARAM)(HD_ITEM*)(phdi)) -#define Header_SetItem(w,i,phdi) (BOOL)SendMessage((w),HDM_SETITEM,(WPARAM)(int)(i),(LPARAM)(const HD_ITEM*)(phdi)) -#define Header_Layout(w,l) (BOOL)SendMessage((w),HDM_LAYOUT,0,(LPARAM)(HD_LAYOUT*)(l)) -#if (_WIN32_IE >= 0x0300) -#define Header_GetItemRect(w,i,r) (BOOL)SendMessage((w),HDM_GETITEMRECT,(WPARAM)(i),(LPARAM)(r)) -#define Header_SetOrderArray(w,l,a) (BOOL)SendMessage((w),HDM_SETORDERARRAY,(WPARAM)(l),(LPARAM)(a)) -#endif -int WINAPI ImageList_Add(HIMAGELIST,HBITMAP,HBITMAP); -#define ImageList_AddIcon(l,i) ImageList_ReplaceIcon(l,-1,i) -int WINAPI ImageList_AddMasked(HIMAGELIST,HBITMAP,COLORREF); -BOOL WINAPI ImageList_BeginDrag(HIMAGELIST,int,int,int); -HIMAGELIST WINAPI ImageList_Create(int,int,UINT,int,int); -BOOL WINAPI ImageList_Destroy(HIMAGELIST); -BOOL WINAPI ImageList_DragEnter(HWND,int,int); -BOOL WINAPI ImageList_DragLeave(HWND); -BOOL WINAPI ImageList_DragMove(int,int); -BOOL WINAPI ImageList_DragShowNolock(BOOL); -BOOL WINAPI ImageList_Draw(HIMAGELIST,int,HDC,int,int,UINT); -BOOL WINAPI ImageList_DrawEx(HIMAGELIST,int,HDC,int,int,int,int,COLORREF,COLORREF,UINT); -void WINAPI ImageList_EndDrag(VOID); -#define ImageList_ExtractIcon(h,l,i) ImageList_GetIcon(l,i,0) -COLORREF WINAPI ImageList_GetBkColor(HIMAGELIST); -HIMAGELIST WINAPI ImageList_GetDragImage(LPPOINT,LPPOINT); -HICON WINAPI ImageList_GetIcon(HIMAGELIST,int,UINT); -BOOL WINAPI ImageList_GetIconSize(HIMAGELIST,int*,int*); -int WINAPI ImageList_GetImageCount(HIMAGELIST); -BOOL WINAPI ImageList_GetImageInfo(HIMAGELIST,int,IMAGEINFO*); -#define ImageList_LoadBitmap(h,l,x,G,M) ImageList_LoadImage(h,l,x,G,M,IMAGE_BITMAP,0) -HIMAGELIST WINAPI ImageList_LoadImageA(HINSTANCE,LPCSTR,int,int,COLORREF,UINT,UINT); -HIMAGELIST WINAPI ImageList_LoadImageW(HINSTANCE,LPCWSTR,int,int,COLORREF,UINT,UINT); -HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST,int,HIMAGELIST,int,int,int); -BOOL WINAPI ImageList_Remove(HIMAGELIST,int); -#define ImageList_RemoveAll(l) ImageList_Remove(l,-1) -BOOL WINAPI ImageList_Replace(HIMAGELIST,int,HBITMAP,HBITMAP); -int WINAPI ImageList_ReplaceIcon(HIMAGELIST,int,HICON); -COLORREF WINAPI ImageList_SetBkColor(HIMAGELIST,COLORREF); -BOOL WINAPI ImageList_SetDragCursorImage(HIMAGELIST,int,int,int); -BOOL WINAPI ImageList_SetIconSize(HIMAGELIST,int,int); -BOOL WINAPI ImageList_SetOverlayImage(HIMAGELIST,int,int); -#ifdef _OBJIDL_H -HIMAGELIST WINAPI ImageList_Read(LPSTREAM); -BOOL WINAPI ImageList_Write(HIMAGELIST,LPSTREAM); -#endif -void WINAPI InitCommonControls(void); -#if (_WIN32_IE >= 0x0300) -BOOL WINAPI InitCommonControlsEx(LPINITCOMMONCONTROLSEX); -#endif -WINBOOL WINAPI ImageList_DragShowNolock(BOOL); -int WINAPI LBItemFromPt(HWND,POINT,BOOL); -#define ListView_GetBkColor(w) (COLORREF)SendMessage((w),LVM_GETBKCOLOR,0,0) -#define ListView_GetImageList(w,i) (HIMAGELIST)SendMessage((w),LVM_GETIMAGELIST,(i),0) -#define ListView_GetItemCount(w) (int)SendMessage((w),LVM_GETITEMCOUNT,0,0) -#define ListView_GetItem(w,i) (BOOL)SendMessage((w),LVM_GETITEM,0,(LPARAM)(i)) -#define ListView_SetBkColor(w,c) (BOOL)SendMessage((w),LVM_SETBKCOLOR,0,(LPARAM)c) -#define ListView_SetImageList(w,h,i) (HIMAGELIST)(UINT)SendMessage((w),LVM_SETIMAGELIST,(i),(LPARAM)(h)) -#define ListView_SetItem(w,i) (BOOL)SendMessage((w),LVM_SETITEM,0,(LPARAM)(const LV_ITEM*)(i)) -#define ListView_InsertItem(w,i) (int)SendMessage((w),LVM_INSERTITEM,0,(LPARAM)(const LV_ITEM*)(i)) -#define ListView_DeleteItem(w,i) (BOOL)SendMessage((w),LVM_DELETEITEM,i,0) -#define ListView_DeleteAllItems(w) (BOOL)SendMessage((w),LVM_DELETEALLITEMS,0,0) -#define ListView_GetCallbackMask(w) (BOOL)SendMessage((w),LVM_GETCALLBACKMASK,0,0) -#define ListView_SetCallbackMask(w,m) (BOOL)SendMessage((w),LVM_SETCALLBACKMASK,m,0) -#define ListView_GetNextItem(w,i,f) (int)SendMessage((w),LVM_GETNEXTITEM,i,MAKELPARAM((f),0)) -#define ListView_FindItem(w,i,p) (int)SendMessage((w), LVM_FINDITEM,i,(LPARAM)(const LV_FINDINFO*)(p)) -#define ListView_GetItemRect(w,i,p,c) (BOOL)SendMessage((w),LVM_GETITEMRECT,i,((p)?(((LPRECT)(p))->left=(c),(LPARAM)(LPRECT)(p)):0)) -#define ListView_SetItemPosition(w,i,x,y) (BOOL)SendMessage((w),LVM_SETITEMPOSITION,i,MAKELPARAM(x,y)) -#define ListView_GetItemPosition(w,i,p) (BOOL)SendMessage((w),LVM_GETITEMPOSITION,i,(LPARAM)p) -#define ListView_GetItemSpacing(w,f) (DWORD)SendMessage((w),LVM_GETITEMSPACING,f,0) -#define ListView_GetStringWidth(w,s) (int)SendMessage((w),LVM_GETSTRINGWIDTH,0,(LPARAM)s) -#define ListView_HitTest(w,p) (int)SendMessage((w),LVM_HITTEST,0,(LPARAM)(LV_HITTESTINFO*)(p)) -#define ListView_EnsureVisible(w,i,f) (BOOL)SendMessage((w),LVM_ENSUREVISIBLE,i,MAKELPARAM((f),0)) -#define ListView_Scroll(w,dx,dy) (BOOL)SendMessage((w),LVM_SCROLL,dx,dy) -#define ListView_RedrawItems(w,f,l) (BOOL)SendMessage((w),LVM_REDRAWITEMS,f,l) -#define ListView_Arrange(w,c) (BOOL)SendMessage((w),LVM_ARRANGE,c,0) -#define ListView_EditLabel(w,i) (HWND)SendMessage((w),LVM_EDITLABEL,i,0) -#define ListView_GetEditControl(w) (HWND)SendMessage((w),LVM_GETEDITCONTROL,0,0) -#define ListView_GetColumn(w,i,p) (BOOL)SendMessage((w),LVM_GETCOLUMN,i,(LPARAM)(LV_COLUMN*)(p)) -#define ListView_SetColumn(w,i,p) (BOOL)SendMessage((w),LVM_SETCOLUMN,i,(LPARAM)(const LV_COLUMN*)(p)) -#define ListView_InsertColumn(w,i,p) (int)SendMessage((w),LVM_INSERTCOLUMN,i,(LPARAM)(const LV_COLUMN*)(p)) -#define ListView_DeleteColumn(w,i) (BOOL)SendMessage((w),LVM_DELETECOLUMN,i,0) -#define ListView_GetColumnWidth(w,i) (int)SendMessage((w),LVM_GETCOLUMNWIDTH,i,0) -#define ListView_SetColumnWidth(w,i,x) (BOOL)SendMessage((w),LVM_SETCOLUMNWIDTH,i,MAKELPARAM((x),0)) -#define ListView_CreateDragImage(w,i,p) (HIMAGELIST)SendMessage((w),LVM_CREATEDRAGIMAGE,i,(LPARAM)(LPPOINT)(p)) -#define ListView_GetViewRect(w,p) (BOOL)SendMessage((w),LVM_GETVIEWRECT,0,(LPARAM)(LPRECT)(p)) -#define ListView_GetTextColor(w) (COLORREF)SendMessage((w),LVM_GETTEXTCOLOR,0,0) -#define ListView_SetTextColor(w,c) (BOOL)SendMessage((w),LVM_SETTEXTCOLOR,0,(LPARAM)(COLORREF)(c)) -#define ListView_GetTextBkColor(w) (COLORREF)SendMessage((w),LVM_GETTEXTBKCOLOR,0,0) -#define ListView_SetTextBkColor(w,c) (BOOL)SendMessage((w),LVM_SETTEXTBKCOLOR,0,(LPARAM)(COLORREF)(c)) -#define ListView_GetTopIndex(w) (int)SendMessage((w),LVM_GETTOPINDEX,0,0) -#define ListView_GetCountPerPage(w) (int)SendMessage((w),LVM_GETCOUNTPERPAGE,0,0) -#define ListView_GetOrigin(w,p) (BOOL)SendMessage((w),LVM_GETORIGIN,0,(LPARAM)(POINT*)(p)) -#define ListView_GetOrigin(w,p) (BOOL)SendMessage((w),LVM_GETORIGIN,0,(LPARAM)(POINT*)(p)) -#define ListView_Update(w,i) (BOOL)SendMessage((w),LVM_UPDATE,i,0) -#define ListView_SetItemState(w,i,d,m) \ -{ \ - LV_ITEM _lvi;\ - _lvi.stateMask=m;\ - _lvi.state=d;\ - SendMessage((w),LVM_SETITEMSTATE,i,(LPARAM)(LV_ITEM*)&_lvi);\ -} -#define ListView_GetItemState(w,i,m) (UINT)SendMessage((w),LVM_GETITEMSTATE,i,m) -#define ListView_GetItemText(w,i,iS,s,n) \ -{ \ - LV_ITEM _lvi;\ - _lvi.iSubItem=iS;\ - _lvi.cchTextMax=n;\ - _lvi.pszText=s;\ - SendMessage((w),LVM_GETITEMTEXT,i,(LPARAM)(LV_ITEM*)&_lvi);\ -} -#define ListView_SetItemText(w,i,iS,s) \ -{ \ - LV_ITEM _lvi;\ - _lvi.iSubItem=iS;\ - _lvi.pszText=s;\ - SendMessage((w),LVM_SETITEMTEXT,i,(LPARAM)(LV_ITEM*)&_lvi);\ -} -#define ListView_SetItemCount(w,n) SendMessage((w),LVM_SETITEMCOUNT,n,0) -#define ListView_SortItems(w,f,l) (BOOL)SendMessage((w),LVM_SORTITEMS,l,(LPARAM)f) -#define ListView_SetItemPosition32(w,i,x,y) \ -{ \ - POINT p={x,y}; \ - SendMessage((w),LVM_SETITEMPOSITION32,i,(LPARAM)&p);\ -} -#define ListView_GetSelectedCount(w) (UINT)SendMessage((w),LVM_GETSELECTEDCOUNT,0,0) -BOOL WINAPI MakeDragList(HWND); -void WINAPI MenuHelp(UINT,WPARAM,LPARAM,HMENU,HINSTANCE,HWND,PUINT); -#define MonthCal_GetColor(hwnd,icolor) SendMessage(hwnd,MCM_GETCOLOR,(WPARAM)icolor,(LPARAM)0) -#define MonthCal_GetCurSel(hwnd,lpsystime) SendMessage(hwnd,MCM_GETCURSEL,0,(LPARAM)lpsystime) -#define MonthCal_GetFirstDayOfWeek(hwnd) SendMessage(hwnd,MCM_GETFIRSTDAYOFWEEK,0,0) -#define MonthCal_GetMaxSelCount(hwnd) SendMessage(hwnd,MCM_GETMAXSELCOUNT,0,0) -#define MonthCal_GetMaxTodayWidth(hwnd) SendMessage(hwnd,MCM_GETMAXTODAYWIDTH,0,0) -#define MonthCal_GetMinReqRect(hwnd,lpRectInfo) SendMessage(hwnd,MCM_GETMINREQRECT,0,(LPARAM)lpRectInfo) -#define MonthCal_GetMonthDelta(hwnd) SendMessage(hwnd,MCM_GETMONTHDELTA,0,0) -#define MonthCal_GetMonthRange(hwnd,flag,systimearray) SendMessage(hwnd,MCM_GETMONTHRANGE,(WPARAM)flag,(LPARAM)systimearray) -#define MonthCal_GetRange(hwnd,systimearray) SendMessage(hwnd,MCM_GETRANGE,0,(LPARAM)systimearray) -#define MonthCal_GetSelRange(hwnd,systimearray) SendMessage(hwnd,MCM_GETSELRANGE,0,(LPARAM)systimearray) -#define MonthCal_GetToday(hwnd,systime) SendMessage(hwnd,MCM_GETTODAY,0,(LPARAM)systime) -#define MonthCal_GetUnicodeFormat(hwnd) SendMessage(hwnd,MCM_GETUNICODEFORMAT,0,0) -#define MonthCal_HitTest(hwnd,pmchittest) SendMessage(hwnd,MCM_HITTEST,0,(LPARAM)pmchittest) -#define MonthCal_SetColor(hwnd,icolor,clr) SendMessage(hwnd,MCM_SETCOLOR,(WPARAM)icolor,(LPARAM)clr) -#define MonthCal_SetCurSel(hwnd,lpsystime) SendMessage(hwnd,MCM_SETCURSEL,0,(LPARAM)lpsystime) -#define MonthCal_SetDayState(hwnd,imonths,lpdatestatearray) SendMessage(hwnd,MCM_SETDAYSTATE,(WPARAM)imonths,(LPARAM)lpdatestatearray) -#define MonthCal_SetFirstDayOfWeek(hwnd,iday) SendMessage(hwnd,MCM_SETFIRSTDAYOFWEEK,0,(LPARAM)iday) -#define MonthCal_SetMaxSelCount(hwnd,imax) SendMessage(hwnd,MCM_SETMAXSELCOUNT,(WPARAM)imax,0) -#define MonthCal_SetMonthDelta(hwnd,idelta) SendMessage(hwnd,MCM_SETMONTHDELTA,(WPARAM)idelta,0) -#define MonthCal_SetRange(hwnd,whichlimit,systimearray) SendMessage(hwnd,MCM_SETRANGE,whichlimit,systimearray) -#define MonthCal_SetSelRange(hwnd,systimearray) SendMessage(hwnd,MCM_SETSELRANGE,0,(LPARAM)systimearray) -#define MonthCal_SetToday(hwnd,systime) SendMessage(hwnd,MCM_SETTODAY,0,(LPARAM)systime) -#define MonthCal_SetUnicodeFormat(hwnd,unicode) SendMessage(hwnd,MCM_SETUNICODEFORMAT,(WPARAM)unicode,0) -BOOL WINAPI ShowHideMenuCtl(HWND,UINT,PINT); -#define TabCtrl_GetItem(w,i,p) (BOOL)SendMessage((w),TCM_GETITEM,i,(LPARAM)(TC_ITEM*)(p)) -#define TabCtrl_SetItem(w,i,p) (BOOL)SendMessage((w),TCM_SETITEM,i,(LPARAM)(TC_ITEM*)(p)) -#define TabCtrl_InsertItem(w,i,p) (int)SendMessage((w),TCM_INSERTITEM,i,(LPARAM)(const TC_ITEM*)(p)) -#define TabCtrl_DeleteItem(w,i) (BOOL)SendMessage((w),TCM_DELETEITEM,i,0) -#define TabCtrl_DeleteAllItems(w) (BOOL)SendMessage((w),TCM_DELETEALLITEMS,0,0) -#define TabCtrl_GetItemRect(w,i,p) (BOOL)SendMessage((w),TCM_GETITEMRECT,i,(LPARAM)(LPRECT)(p)) -#define TabCtrl_GetCurSel(w) (int)SendMessage((w),TCM_GETCURSEL,0,0) -#define TabCtrl_SetCurSel(w,i) (int)SendMessage((w),TCM_SETCURSEL,i,0) -#define TabCtrl_HitTest(w,p) (int)SendMessage((w),TCM_HITTEST,0,(LPARAM)(TC_HITTESTINFO*)(p)) -#define TabCtrl_SetItemExtra(w,c) (BOOL)SendMessage((w),TCM_SETITEMEXTRA,c,0) -#define TabCtrl_AdjustRect(w,b,p) (int)SendMessage((w),TCM_ADJUSTRECT,b,(LPARAM)(LPRECT)p) -#define TabCtrl_SetItemSize(w,x,y) (DWORD)SendMessage((w),TCM_SETITEMSIZE,0,MAKELPARAM(x,y)) -#define TabCtrl_RemoveImage(w,i) (void)SendMessage((w),TCM_REMOVEIMAGE,i,0) -#define TabCtrl_SetPadding(w,x,y) (void)SendMessage((w),TCM_SETPADDING,0,MAKELPARAM(x,y)) -#define TabCtrl_GetRowCount(w) (int)SendMessage((w),TCM_GETROWCOUNT,0,0) -#define TabCtrl_GetToolTips(w) (HWND)SendMessage((w),TCM_GETTOOLTIPS,0,0) -#define TabCtrl_SetToolTips(w,t) (void)SendMessage((w),TCM_SETTOOLTIPS,(WPARAM)t,0) -#define TabCtrl_GetCurFocus(w) (int)SendMessage((w),TCM_GETCURFOCUS,0,0) -#define TabCtrl_SetCurFocus(w,i) (void)SendMessage((w),TCM_SETCURFOCUS,i,0) -#define TabCtrl_SetImageList(w,h) (HIMAGELIST)SendMessage((w),TCM_SETIMAGELIST,0,(LPARAM)(UINT)(h)) -#define TabCtrl_GetItemCount(w) (int)SendMessage((w),TCM_GETITEMCOUNT,0,0) -BOOL WINAPI _TrackMouseEvent(LPTRACKMOUSEEVENT); -#define TreeView_InsertItem(w,i) (HTREEITEM)SendMessage((w),TVM_INSERTITEM,0,(LPARAM)(LPTV_INSERTSTRUCT)(i)) -#define TreeView_DeleteItem(w,i) (BOOL)SendMessage((w),TVM_DELETEITEM,0,(LPARAM)(HTREEITEM)(i)) -#define TreeView_DeleteAllItems(w) (BOOL)SendMessage((w),TVM_DELETEITEM,0,(LPARAM)TVI_ROOT) -#define TreeView_Expand(w,i,c) (BOOL)SendMessage((w),TVM_EXPAND,c,(LPARAM)(HTREEITEM)(i)) -#define TreeView_GetItemRect(w,i,p,c) (*(HTREEITEM*)p=(i),(BOOL)SendMessage((w),TVM_GETITEMRECT,c,(LPARAM)(LPRECT)(p))) -#define TreeView_GetCount(w) (UINT)SendMessage((w),TVM_GETCOUNT,0,0) -#define TreeView_GetIndent(w) (UINT)SendMessage((w),TVM_GETINDENT,0,0) -#define TreeView_SetIndent(w,i) (BOOL)SendMessage((w),TVM_SETINDENT,i,0) -#define TreeView_GetImageList(w,i) (HIMAGELIST)SendMessage((w),TVM_GETIMAGELIST,i,0) -#define TreeView_SetImageList(w,h,i) (HIMAGELIST)SendMessage((w),TVM_SETIMAGELIST,i,(LPARAM)(HIMAGELIST)(h)) -#define TreeView_GetNextItem(w,i,c) (HTREEITEM)SendMessage((w),TVM_GETNEXTITEM,c,(LPARAM)(HTREEITEM)(i)) -#define TreeView_GetChild(w,i) TreeView_GetNextItem(w,i,TVGN_CHILD) -#define TreeView_GetNextSibling(w,i) TreeView_GetNextItem(w,i,TVGN_NEXT) -#define TreeView_GetPrevSibling(w,i) TreeView_GetNextItem(w,i,TVGN_PREVIOUS) -#define TreeView_GetParent(w,i) TreeView_GetNextItem(w,i,TVGN_PARENT) -#define TreeView_GetFirstVisible(w) TreeView_GetNextItem(w,NULL,TVGN_FIRSTVISIBLE) -#define TreeView_GetNextVisible(w,i) TreeView_GetNextItem(w,i,TVGN_NEXTVISIBLE) -#define TreeView_GetPrevVisible(w,i) TreeView_GetNextItem(w,i,TVGN_PREVIOUSVISIBLE) -#define TreeView_GetSelection(w) TreeView_GetNextItem(w,NULL,TVGN_CARET) -#define TreeView_GetDropHilight(w) TreeView_GetNextItem(w,NULL,TVGN_DROPHILITE) -#define TreeView_GetRoot(w) TreeView_GetNextItem(w,NULL,TVGN_ROOT) -#define TreeView_Select(w,i,c) (HTREEITEM)SendMessage((w),TVM_SELECTITEM,c,(LPARAM)(HTREEITEM)(i)) -#define TreeView_SelectItem(w,i) TreeView_Select(w,i,TVGN_CARET) -#define TreeView_SelectDropTarget(w,i) TreeView_Select(w,i,TVGN_DROPHILITE) -#define TreeView_SelectSetFirstVisible(w,i) TreeView_Select(w,i,TVGN_FIRSTVISIBLE) -#define TreeView_GetItem(w,i) (BOOL)SendMessage((w),TVM_GETITEM,0,(LPARAM)(TV_ITEM*)(i)) -#define TreeView_SetItem(w,i) (BOOL)SendMessage((w),TVM_SETITEM,0,(LPARAM)(const TV_ITEM*)(i)) -#define TreeView_EditLabel(w,i) (HWND)SendMessage((w),TVM_EDITLABEL,0,(LPARAM)(HTREEITEM)(i)) -#define TreeView_GetEditControl(w) (HWND)SendMessage((w),TVM_GETEDITCONTROL,0,0) -#define TreeView_GetVisibleCount(w) (UINT)SendMessage((w),TVM_GETVISIBLECOUNT,0,0) -#define TreeView_HitTest(w,p) (HTREEITEM)SendMessage((w),TVM_HITTEST,0,(LPARAM)(LPTV_HITTESTINFO)(p)) -#define TreeView_CreateDragImage(w,i) (HIMAGELIST)SendMessage((w),TVM_CREATEDRAGIMAGE,0,(LPARAM)(HTREEITEM)(i)) -#define TreeView_SortChildren(w,i,r) (BOOL)SendMessage((w),TVM_SORTCHILDREN,r,(LPARAM)(HTREEITEM)(i)) -#define TreeView_EnsureVisible(w,i) (BOOL)SendMessage((w),TVM_ENSUREVISIBLE,0,(LPARAM)(HTREEITEM)(i)) -#define TreeView_SortChildrenCB(w,s,r) (BOOL)SendMessage((w),TVM_SORTCHILDRENCB,r,(LPARAM)(LPTV_SORTCB)(s)) -#define TreeView_EndEditLabelNow(w,f) (BOOL)SendMessage((w),TVM_ENDEDITLABELNOW,f,0) -#define TreeView_GetISearchString(w,s) (BOOL)SendMessage((w),TVM_GETISEARCHSTRING,0,(LPARAM)s) -#if (_WIN32_IE >= 0x0300) -#define ListView_ApproximateViewRect(w,iw,ih,i) (DWORD)SendMessage((w),LVM_APPROXIMATEVIEWRECT,(i),MAKELPARAM((iw),(ih))) -#define ListView_SetExtendedListViewStyle(w,s) (DWORD)SendMessage((w),LVM_SETEXTENDEDLISTVIEWSTYLE,0,(s)) -#define ListView_GetExtendedListViewStyle(w) (DWORD)SendMessage((w),LVM_GETEXTENDEDLISTVIEWSTYLE,0,0) -#define ListView_SetColumnOrderArray(w,i,a) (BOOL)SendMessage((w),LVM_SETCOLUMNORDERARRAY,(WPARAM)(i),(LPARAM)(LPINT)(a)) -#define ListView_GetColumnOrderArray(w,i,a) (BOOL)SendMessage((w),LVM_GETCOLUMNORDERARRAY,(WPARAM)(i),(LPARAM)(LPINT)(a)) -#define ListView_GetHeader(w) (HWND)SendMessage((w),LVM_GETHEADER,0,0) -#define ListView_GetHotCursor(w) (HCURSOR)SendMessage((w),LVM_GETHOTCURSOR,0,0) -#define ListView_GetHotItem(w) (INT)SendMessage((w),LVM_GETHOTITEM,0,0) -#define ListView_GetSubItemRect(w,i,is,c,p) (BOOL)SendMessage((w),LVM_GETSUBITEMRECT,(WPARAM)(int)(i),((p)?(((LPRECT)(p))->left=(c),(((LPRECT)(p))->top=(is)),(LPARAM)(LPRECT)(p)):0)) -#define ListView_SetHotCursor(w,c) (HCURSOR)SendMessage((w),LVM_SETHOTCURSOR,0,(LPARAM)(c)) -#define ListView_SetHotItem(w,i) (int)SendMessage((w),LVM_SETHOTITEM,(WPARAM)(i),0) -#define ListView_SetIconSpacing(w,x,y) (DWORD)SendMessage((w),LVM_SETICONSPACING,0,MAKELONG(x,y)) -#define ListView_SubItemHitTest(w,p) (int)SendMessage((w),LVM_SUBITEMHITTEST,0,(LPARAM)(LPLVHITTESTINFO)(p)) -WINBOOL WINAPI ImageList_SetImageCount(HIMAGELIST,UINT); -WINBOOL WINAPI ImageList_Copy(HIMAGELIST,int,HIMAGELIST,int,UINT); -WINBOOL WINAPI ImageList_DrawIndirect(IMAGELISTDRAWPARAMS*); -#define TabCtrl_SetMinTabWidth(hwnd, x) SendMessage((hwnd), TCM_SETMINTABWIDTH, 0, x) -#define TabCtrl_DeselectAll(hwnd, fExcludeFocus) SendMessage((hwnd), TCM_DESELECTALL, fExcludeFocus, 0) -#define TreeView_GetToolTips(w) (HWND)SendMessage((w),TVM_GETTOOLTIPS,0,0) -#define TreeView_SetToolTips(w,wt) (HWND)SendMessage((w),TVM_SETTOOLTIPS,(WPARAM)(wt),0) -#endif -#if (_WIN32_IE >= 0x0400) -#define TabCtrl_HighlightItem(hwnd, i, fHighlight) SendMessage((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)i, (LPARAM)MAKELONG (fHighlight, 0)) -#define TabCtrl_SetExtendedStyle(hwnd, dw) SendMessage((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw) -#define TabCtrl_GetExtendedStyle(hwnd) SendMessage((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0) -#define TabCtrl_SetUnicodeFormat(hwnd, fUnicode) SendMessage((hwnd), TCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0) -#define TabCtrl_GetUnicodeFormat(hwnd) SendMessage((hwnd), TCM_GETUNICODEFORMAT, 0, 0) -#define TreeView_GetBkColor(w) (COLORREF)SendMessage((w),TVM_GETBKCOLOR,0,0) -#define TreeView_GetInsertMarkColor(w) (COLORREF)SendMessage((w),TVM_GETINSERTMARKCOLOR,0,0) -#define TreeView_GetItemHeight(w) (int)SendMessage((w),TVM_GETITEMHEIGHT,0,0) -#define TreeView_GetTextColor(w) (COLORREF)SendMessage((w),TVM_GETTEXTCOLOR,0,0) -#define TreeView_SetBkColor(w,c) (COLORREF)SendMessage((w),TVM_SETBKCOLOR,0,(LPARAM)(c)) -#define TreeView_SetInsertMarkColor(w,c) (COLORREF)SendMessage((w),TVM_SETINSERTMARKCOLOR,0,(LPARAM)(c)) -#define TreeView_SetItemHeight(w,h) (int)SendMessage((w),TVM_SETITEMHEIGHT,(WPARAM)(h),0) -#define TreeView_SetTextColor(w,c) (COLORREF)SendMessage((w),TVM_SETTEXTCOLOR,0,(LPARAM)(c)) -#endif - -#ifdef UNICODE -#define ANIMATE_CLASS ANIMATE_CLASSW -#define HOTKEY_CLASS HOTKEY_CLASSW -#define PROGRESS_CLASS PROGRESS_CLASSW -#define STATUSCLASSNAME STATUSCLASSNAMEW -#define TOOLBARCLASSNAME TOOLBARCLASSNAMEW -#define TOOLTIPS_CLASS TOOLTIPS_CLASSW -#define TRACKBAR_CLASS TRACKBAR_CLASSW -#define UPDOWN_CLASS UPDOWN_CLASSW -#define WC_HEADER WC_HEADERW -#define WC_LISTVIEW WC_LISTVIEWW -#define WC_TABCONTROL WC_TABCONTROLW -#define WC_TREEVIEW WC_TREEVIEWW -typedef HDITEMW HDITEM; -typedef TOOLINFOW TOOLINFO,*PTOOLINFO,*LPTOOLINFO; -typedef TTHITTESTINFOW TTHITTESTINFO,*LPHITTESTINFO; -typedef TOOLTIPTEXTW TOOLTIPTEXT,*LPTOOLTIPTEXT; -typedef TV_ITEMW TV_ITEM,*LPTV_ITEM; -typedef TVITEMW TVITEM,*LPTVITEM; -#if (_WIN32_IE >= 0x0400) -typedef TVITEMEXW TVITEMEX,*LPTVITEMEX; -#endif -typedef TV_INSERTSTRUCTW TV_INSERTSTRUCT,*LPTV_INSERTSTRUCT; -typedef TVINSERTSTRUCTW TVINSERTSTRUCT,*LPTVINSERTSTRUCT; -typedef NM_TREEVIEWW NM_TREEVIEW,*LPNM_TREEVIEW; -typedef NMTREEVIEWW NMTREEVIEW,*LPNMTREEVIEW; -#define ACM_OPEN ACM_OPENW -#define SB_GETTEXT SB_GETTEXTW -#define SB_SETTEXT SB_SETTEXTW -#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHW -#define STATUSCLASSNAME STATUSCLASSNAMEW -#define WC_HEADER WC_HEADERW -#define HDM_INSERTITEM HDM_INSERTITEMW -#define HDM_GETITEM HDM_GETITEMW -#define HDM_SETITEM HDM_SETITEMW -#define HDN_ITEMCHANGING HDN_ITEMCHANGINGW -#define HDN_ITEMCHANGED HDN_ITEMCHANGEDW -#define HDN_ITEMCLICK HDN_ITEMCLICKW -#define HDN_ITEMDBLCLICK HDN_ITEMDBLCLICKW -#define HDN_DIVIDERDBLCLICK HDN_DIVIDERDBLCLICKW -#define HDN_BEGINTRACK HDN_BEGINTRACKW -#define HDN_ENDTRACK HDN_ENDTRACKW -#define HDN_TRACK HDN_TRACKW -#define HD_NOTIFY HD_NOTIFYW -#define TOOLBARCLASSNAME TOOLBARCLASSNAMEW -#define TBSAVEPARAMS TBSAVEPARAMSW -#define TB_GETBUTTONTEXT TB_GETBUTTONTEXTW -#define TB_SAVERESTORE TB_SAVERESTOREW -#define TB_ADDSTRING TB_ADDSTRINGW -#define TBN_GETBUTTONINFO TBN_GETBUTTONINFOW -#if _WIN32_IE >= 0x400 -#define TBBUTTONINFO TBBUTTONINFOW -#define LPTBBUTTONINFO LPTBBUTTONINFOW -#endif -#define TBNOTIFY TBNOTIFYW -#define LPTBNOTIFY LPTBNOTIFYW -#define TOOLTIPS_CLASS TOOLTIPS_CLASSW -#define TTM_ADDTOOL TTM_ADDTOOLW -#define TTM_DELTOOL TTM_DELTOOLW -#define TTM_NEWTOOLRECT TTM_NEWTOOLRECTW -#define TTM_GETTOOLINFO TTM_GETTOOLINFOW -#define TTM_SETTOOLINFO TTM_SETTOOLINFOW -#define TTM_HITTEST TTM_HITTESTW -#define TTM_GETTEXT TTM_GETTEXTW -#define TTM_UPDATETIPTEXT TTM_UPDATETIPTEXTW -#define TTM_ENUMTOOLS TTM_ENUMTOOLSW -#define TTM_GETCURRENTTOOL TTM_GETCURRENTTOOLW -#define TTN_NEEDTEXT TTN_NEEDTEXTW -#define SB_GETTEXT SB_GETTEXTW -#define SB_SETTEXT SB_SETTEXTW -#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHW -#define TRACKBAR_CLASS TRACKBAR_CLASSW -#define UPDOWN_CLASS UPDOWN_CLASSW -#define PROGRESS_CLASS PROGRESS_CLASSW -#define HOTKEY_CLASS HOTKEY_CLASSW -#define WC_LISTVIEW WC_LISTVIEWW -#define LV_ITEM LV_ITEMW -#define LVITEM LVITEMW -#define LPSTR_TEXTCALLBACK LPSTR_TEXTCALLBACKW -#define LVM_GETITEM LVM_GETITEMW -#define LVM_SETITEM LVM_SETITEMW -#define LVM_INSERTITEM LVM_INSERTITEMW -#define LV_FINDINFO LV_FINDINFOW -#define LVFINDINFO LVFINDINFOW -#define LVM_FINDITEM LVM_FINDITEMW -#define LVM_GETSTRINGWIDTH LVM_GETSTRINGWIDTHW -#define LVM_EDITLABEL LVM_EDITLABELW -#define LV_COLUMN LV_COLUMNW -#define LVCOLUMN LVCOLUMNW -#define LVM_GETCOLUMN LVM_GETCOLUMNW -#define LVM_SETCOLUMN LVM_SETCOLUMNW -#define LVM_INSERTCOLUMN LVM_INSERTCOLUMNW -#define LVM_GETITEMTEXT LVM_GETITEMTEXTW -#define LVM_SETITEMTEXT LVM_SETITEMTEXTW -#define LVM_GETISEARCHSTRING LVM_GETISEARCHSTRINGW -#define LVN_BEGINLABELEDIT LVN_BEGINLABELEDITW -#define LVN_ENDLABELEDIT LVN_ENDLABELEDITW -#define LVN_GETDISPINFO LVN_GETDISPINFOW -#define LVN_SETDISPINFO LVN_SETDISPINFOW -#define LV_DISPINFO LV_DISPINFOW -#define NMLVDISPINFO NMLVDISPINFOW -#define WC_TREEVIEW WC_TREEVIEWW -#define TVM_INSERTITEM TVM_INSERTITEMW -#define TVM_GETITEM TVM_GETITEMW -#define TVM_SETITEM TVM_SETITEMW -#define TVM_EDITLABEL TVM_EDITLABELW -#define TVM_GETISEARCHSTRING TVM_GETISEARCHSTRINGW -#define TV_DISPINFO TV_DISPINFOW -#define TVN_SELCHANGING TVN_SELCHANGINGW -#define TVN_SELCHANGED TVN_SELCHANGEDW -#define TVN_GETDISPINFO TVN_GETDISPINFOW -#define TVN_SETDISPINFO TVN_SETDISPINFOW -#define TVN_ITEMEXPANDING TVN_ITEMEXPANDINGW -#define TVN_ITEMEXPANDED TVN_ITEMEXPANDEDW -#define TVN_BEGINDRAG TVN_BEGINDRAGW -#define TVN_BEGINRDRAG TVN_BEGINRDRAGW -#define TVN_DELETEITEM TVN_DELETEITEMW -#define TVN_BEGINLABELEDIT TVN_BEGINLABELEDITW -#define TVN_ENDLABELEDIT TVN_ENDLABELEDITW -#define WC_TABCONTROL WC_TABCONTROLW -#define TC_ITEMHEADER TC_ITEMHEADERW -#define TC_ITEM TC_ITEMW -#define TCM_GETITEM TCM_GETITEMW -#define TCM_SETITEM TCM_SETITEMW -#define TCM_INSERTITEM TCM_INSERTITEMW -#define CreateStatusWindow CreateStatusWindowW -#define DrawStatusText DrawStatusTextW -#define ImageList_LoadImage ImageList_LoadImageW -#define DTM_SETFORMAT DTM_SETFORMATW -#define DTN_USERSTRING DTN_USERSTRINGW -#define DTN_WMKEYDOWN DTN_WMKEYDOWNW -#define DTN_FORMAT DTN_FORMATW -#define DTN_FORMATQUERY DTN_FORMATQUERYW -#define DATETIMEPICK_CLASS DATETIMEPICK_CLASSW -#define MONTHCAL_CLASS MONTHCAL_CLASSW -#define REBARCLASSNAME REBARCLASSNAMEW -typedef REBARBANDINFOW REBARBANDINFO,*LPREBARBANDINFO; -#define LPCREBARBANDINFO LPCREBARBANDINFOW -#define REBARBANDINFO_V3_SIZE REBARBANDINFOW_V3_SIZE -#define RB_INSERTBAND RB_INSERTBANDW -#define RB_SETBANDINFO RB_SETBANDINFOW -#else -#define ANIMATE_CLASS ANIMATE_CLASSA -#define HOTKEY_CLASS HOTKEY_CLASSA -#define PROGRESS_CLASS PROGRESS_CLASSA -#define STATUSCLASSNAME STATUSCLASSNAMEA -#define TOOLBARCLASSNAME TOOLBARCLASSNAMEA -#define TOOLTIPS_CLASS TOOLTIPS_CLASSA -#define TRACKBAR_CLASS TRACKBAR_CLASSA -#define UPDOWN_CLASS UPDOWN_CLASSA -#define WC_HEADER WC_HEADERA -#define WC_LISTVIEW WC_LISTVIEWA -#define WC_TABCONTROL WC_TABCONTROLA -#define WC_TREEVIEW WC_TREEVIEWA -typedef HDITEMA HDITEM; -typedef TOOLINFOA TOOLINFO,*PTOOLINFO,*LPTOOLINFO; -typedef TTHITTESTINFOA TTHITTESTINFO,*LPHITTESTINFO; -typedef TOOLTIPTEXTA TOOLTIPTEXT,*LPTOOLTIPTEXT; -typedef TV_ITEMA TV_ITEM,*LPTV_ITEM; -typedef TVITEMA TVITEM,*LPTVITEM; -#if (_WIN32_IE >= 0x0400) -typedef TVITEMEXA TVITEMEX,*LPTVITEMEX; -#endif -typedef TV_INSERTSTRUCTA TV_INSERTSTRUCT,*LPTV_INSERTSTRUCT; -typedef TVINSERTSTRUCTA TVINSERTSTRUCT,*LPTVINSERTSTRUCT; -typedef NM_TREEVIEWA NM_TREEVIEW,*LPNM_TREEVIEW; -typedef NMTREEVIEWA NMTREEVIEW,*LPNMTREEVIEW; -#define ACM_OPEN ACM_OPENA -#define SB_GETTEXT SB_GETTEXTA -#define SB_SETTEXT SB_SETTEXTA -#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHA -#define HDM_INSERTITEM HDM_INSERTITEMA -#define HDM_GETITEM HDM_GETITEMA -#define HDM_SETITEM HDM_SETITEMA -#define HDN_ITEMCHANGING HDN_ITEMCHANGINGA -#define HDN_ITEMCHANGED HDN_ITEMCHANGEDA -#define HDN_ITEMCLICK HDN_ITEMCLICKA -#define HDN_ITEMDBLCLICK HDN_ITEMDBLCLICKA -#define HDN_DIVIDERDBLCLICK HDN_DIVIDERDBLCLICKA -#define HDN_BEGINTRACK HDN_BEGINTRACKA -#define HDN_ENDTRACK HDN_ENDTRACKA -#define HDN_TRACK HDN_TRACKA -#define HD_NOTIFY HD_NOTIFYA -#define TBSAVEPARAMS TBSAVEPARAMSA -#define TB_GETBUTTONTEXT TB_GETBUTTONTEXTA -#define TB_SAVERESTORE TB_SAVERESTOREA -#define TB_ADDSTRING TB_ADDSTRINGA -#define TBN_GETBUTTONINFO TBN_GETBUTTONINFOA -#if _WIN32_IE >= 0x400 -#define TBBUTTONINFO TBBUTTONINFOA -#define LPTBBUTTONINFO LPTBBUTTONINFOA -#endif -#define TBNOTIFY TBNOTIFYA -#define LPTBNOTIFY LPTBNOTIFYA -#define TTM_ADDTOOL TTM_ADDTOOLA -#define TTM_DELTOOL TTM_DELTOOLA -#define TTM_NEWTOOLRECT TTM_NEWTOOLRECTA -#define TTM_GETTOOLINFO TTM_GETTOOLINFOA -#define TTM_SETTOOLINFO TTM_SETTOOLINFOA -#define TTM_HITTEST TTM_HITTESTA -#define TTM_GETTEXT TTM_GETTEXTA -#define TTM_UPDATETIPTEXT TTM_UPDATETIPTEXTA -#define TTM_ENUMTOOLS TTM_ENUMTOOLSA -#define TTM_GETCURRENTTOOL TTM_GETCURRENTTOOLA -#define TTN_NEEDTEXT TTN_NEEDTEXTA -#define SB_GETTEXT SB_GETTEXTA -#define SB_SETTEXT SB_SETTEXTA -#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHA -#define LV_ITEM LV_ITEMA -#define LVITEM LVITEMA -#define LPSTR_TEXTCALLBACK LPSTR_TEXTCALLBACKA -#define LVM_GETITEM LVM_GETITEMA -#define LVM_SETITEM LVM_SETITEMA -#define LVM_INSERTITEM LVM_INSERTITEMA -#define LV_FINDINFO LV_FINDINFOA -#define LVFINDINFO LVFINDINFOA -#define LVM_FINDITEM LVM_FINDITEMA -#define LVM_GETSTRINGWIDTH LVM_GETSTRINGWIDTHA -#define LVM_EDITLABEL LVM_EDITLABELA -#define LV_COLUMN LV_COLUMNA -#define LVCOLUMN LVCOLUMNA -#define LVM_GETCOLUMN LVM_GETCOLUMNA -#define LVM_SETCOLUMN LVM_SETCOLUMNA -#define LVM_INSERTCOLUMN LVM_INSERTCOLUMNA -#define LVM_GETITEMTEXT LVM_GETITEMTEXTA -#define LVM_SETITEMTEXT LVM_SETITEMTEXTA -#define LVM_GETISEARCHSTRING LVM_GETISEARCHSTRINGA -#define LVN_BEGINLABELEDIT LVN_BEGINLABELEDITA -#define LVN_ENDLABELEDIT LVN_ENDLABELEDITA -#define LVN_GETDISPINFO LVN_GETDISPINFOA -#define LVN_SETDISPINFO LVN_SETDISPINFOA -#define LV_DISPINFO LV_DISPINFOA -#define NMLVDISPINFO NMLVDISPINFOA -#define TVM_INSERTITEM TVM_INSERTITEMA -#define TVM_GETITEM TVM_GETITEMA -#define TVM_SETITEM TVM_SETITEMA -#define TVM_EDITLABEL TVM_EDITLABELA -#define TVM_GETISEARCHSTRING TVM_GETISEARCHSTRINGA -#define TV_DISPINFO TV_DISPINFOA -#define TVN_SELCHANGING TVN_SELCHANGINGA -#define TVN_SELCHANGED TVN_SELCHANGEDA -#define TVN_GETDISPINFO TVN_GETDISPINFOA -#define TVN_SETDISPINFO TVN_SETDISPINFOA -#define TVN_ITEMEXPANDING TVN_ITEMEXPANDINGA -#define TVN_ITEMEXPANDED TVN_ITEMEXPANDEDA -#define TVN_BEGINDRAG TVN_BEGINDRAGA -#define TVN_BEGINRDRAG TVN_BEGINRDRAGA -#define TVN_DELETEITEM TVN_DELETEITEMA -#define TVN_BEGINLABELEDIT TVN_BEGINLABELEDITA -#define TVN_ENDLABELEDIT TVN_ENDLABELEDITA -#define TC_ITEMHEADER TC_ITEMHEADERA -#define TC_ITEM TC_ITEMA -#define TCM_GETITEM TCM_GETITEMA -#define TCM_SETITEM TCM_SETITEMA -#define TCM_INSERTITEM TCM_INSERTITEMA -#define CreateStatusWindow CreateStatusWindowA -#define DrawStatusText DrawStatusTextA -#define ImageList_LoadImage ImageList_LoadImageA -#define DTM_SETFORMAT DTM_SETFORMATA -#define DTN_USERSTRING DTN_USERSTRINGA -#define DTN_WMKEYDOWN DTN_WMKEYDOWNA -#define DTN_FORMAT DTN_FORMATA -#define DTN_FORMATQUERY DTN_FORMATQUERYA -#define DATETIMEPICK_CLASS DATETIMEPICK_CLASSA -#define MONTHCAL_CLASS MONTHCAL_CLASSA -#define REBARCLASSNAME REBARCLASSNAMEA -typedef REBARBANDINFOA REBARBANDINFO,*LPREBARBANDINFO; -#define LPCREBARBANDINFO LPCREBARBANDINFOA -#define REBARBANDINFO_V3_SIZE REBARBANDINFOA_V3_SIZE -#define RB_INSERTBAND RB_INSERTBANDA -#define RB_SETBANDINFO RB_SETBANDINFOA -#endif -#endif - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/winsup/w32api/include/commdlg.h b/winsup/w32api/include/commdlg.h deleted file mode 100644 index d1a4433ee..000000000 --- a/winsup/w32api/include/commdlg.h +++ /dev/null @@ -1,569 +0,0 @@ -#ifndef _COMMDLG_H -#define _COMMDLG_H -#ifdef __cplusplus -extern "C" { -#endif -#pragma pack(push,1) - -#define LBSELCHSTRINGA "commdlg_LBSelChangedNotify" -#define SHAREVISTRINGA "commdlg_ShareViolation" -#define FILEOKSTRINGA "commdlg_FileNameOK" -#define COLOROKSTRINGA "commdlg_ColorOK" -#define SETRGBSTRINGA "commdlg_SetRGBColor" -#define HELPMSGSTRINGA "commdlg_help" -#define FINDMSGSTRINGA "commdlg_FindReplace" -#define LBSELCHSTRINGW L"commdlg_LBSelChangedNotify" -#define SHAREVISTRINGW L"commdlg_ShareViolation" -#define FILEOKSTRINGW L"commdlg_FileNameOK" -#define COLOROKSTRINGW L"commdlg_ColorOK" -#define SETRGBSTRINGW L"commdlg_SetRGBColor" -#define HELPMSGSTRINGW L"commdlg_help" -#define FINDMSGSTRINGW L"commdlg_FindReplace" -#define CDN_FIRST (-601) -#define CDN_LAST (-699) -#define CDN_INITDONE CDN_FIRST -#define CDN_SELCHANGE (CDN_FIRST-1) -#define CDN_FOLDERCHANGE (CDN_FIRST-2) -#define CDN_SHAREVIOLATION (CDN_FIRST-3) -#define CDN_HELP (CDN_FIRST-4) -#define CDN_FILEOK (CDN_FIRST-5) -#define CDN_TYPECHANGE (CDN_FIRST-6) -#define CDM_FIRST (WM_USER+100) -#define CDM_LAST (WM_USER+200) -#define CDM_GETSPEC CDM_FIRST -#define CDM_GETFILEPATH (CDM_FIRST+1) -#define CDM_GETFOLDERPATH (CDM_FIRST+2) -#define CDM_GETFOLDERIDLIST (CDM_FIRST+3) -#define CDM_SETCONTROLTEXT (CDM_FIRST+4) -#define CDM_HIDECONTROL (CDM_FIRST+5) -#define CDM_SETDEFEXT (CDM_FIRST+6) -#define CC_RGBINIT 1 -#define CC_FULLOPEN 2 -#define CC_PREVENTFULLOPEN 4 -#define CC_SHOWHELP 8 -#define CC_ENABLEHOOK 16 -#define CC_ENABLETEMPLATE 32 -#define CC_ENABLETEMPLATEHANDLE 64 -#define CC_SOLIDCOLOR 128 -#define CC_ANYCOLOR 256 -#define CF_SCREENFONTS 1 -#define CF_PRINTERFONTS 2 -#define CF_BOTH 3 -#define CF_SHOWHELP 4 -#define CF_ENABLEHOOK 8 -#define CF_ENABLETEMPLATE 16 -#define CF_ENABLETEMPLATEHANDLE 32 -#define CF_INITTOLOGFONTSTRUCT 64 -#define CF_USESTYLE 128 -#define CF_EFFECTS 256 -#define CF_APPLY 512 -#define CF_ANSIONLY 1024 -#define CF_SCRIPTSONLY CF_ANSIONLY -#define CF_NOVECTORFONTS 2048 -#define CF_NOOEMFONTS 2048 -#define CF_NOSIMULATIONS 4096 -#define CF_LIMITSIZE 8192 -#define CF_FIXEDPITCHONLY 16384 -#define CF_WYSIWYG 32768 -#define CF_FORCEFONTEXIST 65536 -#define CF_SCALABLEONLY 131072 -#define CF_TTONLY 262144 -#define CF_NOFACESEL 524288 -#define CF_NOSTYLESEL 1048576 -#define CF_NOSIZESEL 2097152 -#define CF_SELECTSCRIPT 4194304 -#define CF_NOSCRIPTSEL 8388608 -#define CF_NOVERTFONTS 0x1000000 -#define SIMULATED_FONTTYPE 0x8000 -#define PRINTER_FONTTYPE 0x4000 -#define SCREEN_FONTTYPE 0x2000 -#define BOLD_FONTTYPE 0x100 -#define ITALIC_FONTTYPE 0x0200 -#define REGULAR_FONTTYPE 0x0400 -#define WM_CHOOSEFONT_GETLOGFONT (WM_USER+1) -#define WM_CHOOSEFONT_SETLOGFONT (WM_USER+101) -#define WM_CHOOSEFONT_SETFLAGS (WM_USER+102) -#define OFN_ALLOWMULTISELECT 512 -#define OFN_CREATEPROMPT 0x2000 -#define OFN_ENABLEHOOK 32 -#define OFN_ENABLETEMPLATE 64 -#define OFN_ENABLETEMPLATEHANDLE 128 -#define OFN_EXPLORER 0x80000 -#define OFN_EXTENSIONDIFFERENT 0x400 -#define OFN_FILEMUSTEXIST 0x1000 -#define OFN_HIDEREADONLY 4 -#define OFN_LONGNAMES 0x200000 -#define OFN_NOCHANGEDIR 8 -#define OFN_NODEREFERENCELINKS 0x100000 -#define OFN_NOLONGNAMES 0x40000 -#define OFN_NONETWORKBUTTON 0x20000 -#define OFN_NOREADONLYRETURN 0x8000 -#define OFN_NOTESTFILECREATE 0x10000 -#define OFN_NOVALIDATE 256 -#define OFN_OVERWRITEPROMPT 2 -#define OFN_PATHMUSTEXIST 0x800 -#define OFN_READONLY 1 -#define OFN_SHAREAWARE 0x4000 -#define OFN_SHOWHELP 16 -#define OFN_SHAREFALLTHROUGH 2 -#define OFN_SHARENOWARN 1 -#define OFN_SHAREWARN 0 -#define OFN_NODEREFERENCELINKS 0x100000 -#define FR_DIALOGTERM 64 -#define FR_DOWN 1 -#define FR_ENABLEHOOK 256 -#define FR_ENABLETEMPLATE 512 -#define FR_ENABLETEMPLATEHANDLE 0x2000 -#define FR_FINDNEXT 8 -#define FR_HIDEUPDOWN 0x4000 -#define FR_HIDEMATCHCASE 0x8000 -#define FR_HIDEWHOLEWORD 0x10000 -#define FR_MATCHCASE 4 -#define FR_NOMATCHCASE 0x800 -#define FR_NOUPDOWN 0x400 -#define FR_NOWHOLEWORD 4096 -#define FR_REPLACE 16 -#define FR_REPLACEALL 32 -#define FR_SHOWHELP 128 -#define FR_WHOLEWORD 2 -#define PD_ALLPAGES 0 -#define PD_SELECTION 1 -#define PD_PAGENUMS 2 -#define PD_NOSELECTION 4 -#define PD_NOPAGENUMS 8 -#define PD_COLLATE 16 -#define PD_PRINTTOFILE 32 -#define PD_PRINTSETUP 64 -#define PD_NOWARNING 128 -#define PD_RETURNDC 256 -#define PD_RETURNIC 512 -#define PD_RETURNDEFAULT 1024 -#define PD_SHOWHELP 2048 -#define PD_ENABLEPRINTHOOK 4096 -#define PD_ENABLESETUPHOOK 8192 -#define PD_ENABLEPRINTTEMPLATE 16384 -#define PD_ENABLESETUPTEMPLATE 32768 -#define PD_ENABLEPRINTTEMPLATEHANDLE 65536 -#define PD_ENABLESETUPTEMPLATEHANDLE 0x20000 -#define PD_USEDEVMODECOPIES 0x40000 -#define PD_USEDEVMODECOPIESANDCOLLATE 0x40000 -#define PD_DISABLEPRINTTOFILE 0x80000 -#define PD_HIDEPRINTTOFILE 0x100000 -#define PD_NONETWORKBUTTON 0x200000 -#define PSD_DEFAULTMINMARGINS 0 -#define PSD_INWININIINTLMEASURE 0 -#define PSD_MINMARGINS 1 -#define PSD_MARGINS 2 -#define PSD_INTHOUSANDTHSOFINCHES 4 -#define PSD_INHUNDREDTHSOFMILLIMETERS 8 -#define PSD_DISABLEMARGINS 16 -#define PSD_DISABLEPRINTER 32 -#define PSD_NOWARNING 128 -#define PSD_DISABLEORIENTATION 256 -#define PSD_DISABLEPAPER 512 -#define PSD_RETURNDEFAULT 1024 -#define PSD_SHOWHELP 2048 -#define PSD_ENABLEPAGESETUPHOOK 8192 -#define PSD_ENABLEPAGESETUPTEMPLATE 0x8000 -#define PSD_ENABLEPAGESETUPTEMPLATEHANDLE 0x20000 -#define PSD_ENABLEPAGEPAINTHOOK 0x40000 -#define PSD_DISABLEPAGEPAINTING 0x80000 -#define WM_PSD_PAGESETUPDLG WM_USER -#define WM_PSD_FULLPAGERECT (WM_USER+1) -#define WM_PSD_MINMARGINRECT (WM_USER+2) -#define WM_PSD_MARGINRECT (WM_USER+3) -#define WM_PSD_GREEKTEXTRECT (WM_USER+4) -#define WM_PSD_ENVSTAMPRECT (WM_USER+5) -#define WM_PSD_YAFULLPAGERECT (WM_USER+6) -#define CD_LBSELNOITEMS (-1) -#define CD_LBSELCHANGE 0 -#define CD_LBSELSUB 1 -#define CD_LBSELADD 2 -#define DN_DEFAULTPRN 1 - -#ifndef SNDMSG -#define SNDMSG SendMessage -#endif - -#define CommDlg_OpenSave_GetSpec(d,s,m) (int)SNDMSG(d,CDM_GETSPEC,m,(LPARAM)s) -#define CommDlg_OpenSave_GetSpecA CommDlg_OpenSave_GetSpec -#define CommDlg_OpenSave_GetSpecW CommDlg_OpenSave_GetSpec -#define CommDlg_OpenSave_GetFilePath(d,s,m) (int)SNDMSG(d,CDM_GETFILEPATH,m,(LPARAM)s) -#define CommDlg_OpenSave_GetFilePathA CommDlg_OpenSave_GetFilePath -#define CommDlg_OpenSave_GetFilePathW CommDlg_OpenSave_GetFilePath -#define CommDlg_OpenSave_GetFolderPath(d,s,m) (int)SendMessage(d,CDM_GETFOLDERPATH,m,(LPARAM)(LPSTR)s) -#define CommDlg_OpenSave_GetFolderPathA CommDlg_OpenSave_GetFolderPath -#define CommDlg_OpenSave_GetFolderPathW CommDlg_OpenSave_GetFolderPath -#define CommDlg_OpenSave_GetFolderIDList(d,i,m) (int)SendMessage(d,CDM_GETFOLDERIDLIST,m,(LPARAM)i) -#define CommDlg_OpenSave_SetControlText(d,i,t) (void)SendMessage(d,CDM_SETCONTROLTEXT,i,(LPARAM)t) -#define CommDlg_OpenSave_HideControl(d,i) (void)SendMessage(d,CDM_HIDECONTROL,i,0) -#define CommDlg_OpenSave_SetDefExt(d,e) (void)SendMessage(d,CDM_SETDEFEXT,0,(LPARAM)e) - -typedef UINT (APIENTRY *__CDHOOKPROC)(HWND,UINT,WPARAM,LPARAM); -typedef __CDHOOKPROC LPCCHOOKPROC; -typedef __CDHOOKPROC LPCFHOOKPROC; -typedef __CDHOOKPROC LPFRHOOKPROC; -typedef __CDHOOKPROC LPOFNHOOKPROC; -typedef __CDHOOKPROC LPPAGEPAINTHOOK; -typedef __CDHOOKPROC LPPAGESETUPHOOK; -typedef __CDHOOKPROC LPSETUPHOOKPROC; -typedef __CDHOOKPROC LPPRINTHOOKPROC; -typedef struct tagCHOOSECOLORA { - DWORD lStructSize; - HWND hwndOwner; - HWND hInstance; - COLORREF rgbResult; - COLORREF* lpCustColors; - DWORD Flags; - LPARAM lCustData; - LPCCHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -} CHOOSECOLORA,*LPCHOOSECOLORA; -typedef struct tagCHOOSECOLORW { - DWORD lStructSize; - HWND hwndOwner; - HWND hInstance; - COLORREF rgbResult; - COLORREF* lpCustColors; - DWORD Flags; - LPARAM lCustData; - LPCCHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -} CHOOSECOLORW,*LPCHOOSECOLORW; -typedef struct tagCHOOSEFONTA { - DWORD lStructSize; - HWND hwndOwner; - HDC hDC; - LPLOGFONTA lpLogFont; - INT iPointSize; - DWORD Flags; - DWORD rgbColors; - LPARAM lCustData; - LPCFHOOKPROC lpfnHook; - LPCSTR lpTemplateName; - HINSTANCE hInstance; - LPSTR lpszStyle; - WORD nFontType; - WORD ___MISSING_ALIGNMENT__; - INT nSizeMin; - INT nSizeMax; -} CHOOSEFONTA,*LPCHOOSEFONTA; -typedef struct tagCHOOSEFONTW { - DWORD lStructSize; - HWND hwndOwner; - HDC hDC; - LPLOGFONTW lpLogFont; - INT iPointSize; - DWORD Flags; - DWORD rgbColors; - LPARAM lCustData; - LPCFHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; - HINSTANCE hInstance; - LPWSTR lpszStyle; - WORD nFontType; - WORD ___MISSING_ALIGNMENT__; - INT nSizeMin; - INT nSizeMax; -} CHOOSEFONTW,*LPCHOOSEFONTW; -typedef struct tagDEVNAMES { - WORD wDriverOffset; - WORD wDeviceOffset; - WORD wOutputOffset; - WORD wDefault; -} DEVNAMES,*LPDEVNAMES; -typedef struct { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - DWORD Flags; - LPSTR lpstrFindWhat; - LPSTR lpstrReplaceWith; - WORD wFindWhatLen; - WORD wReplaceWithLen; - LPARAM lCustData; - LPFRHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -} FINDREPLACEA,*LPFINDREPLACEA; -typedef struct { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - DWORD Flags; - LPWSTR lpstrFindWhat; - LPWSTR lpstrReplaceWith; - WORD wFindWhatLen; - WORD wReplaceWithLen; - LPARAM lCustData; - LPFRHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -} FINDREPLACEW,*LPFINDREPLACEW; -typedef struct tagOFNA { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCSTR lpstrFilter; - LPSTR lpstrCustomFilter; - DWORD nMaxCustFilter; - DWORD nFilterIndex; - LPSTR lpstrFile; - DWORD nMaxFile; - LPSTR lpstrFileTitle; - DWORD nMaxFileTitle; - LPCSTR lpstrInitialDir; - LPCSTR lpstrTitle; - DWORD Flags; - WORD nFileOffset; - WORD nFileExtension; - LPCSTR lpstrDefExt; - DWORD lCustData; - LPOFNHOOKPROC lpfnHook; - LPCSTR lpTemplateName; -} OPENFILENAMEA,*LPOPENFILENAMEA; -typedef struct tagOFNW { - DWORD lStructSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCWSTR lpstrFilter; - LPWSTR lpstrCustomFilter; - DWORD nMaxCustFilter; - DWORD nFilterIndex; - LPWSTR lpstrFile; - DWORD nMaxFile; - LPWSTR lpstrFileTitle; - DWORD nMaxFileTitle; - LPCWSTR lpstrInitialDir; - LPCWSTR lpstrTitle; - DWORD Flags; - WORD nFileOffset; - WORD nFileExtension; - LPCWSTR lpstrDefExt; - DWORD lCustData; - LPOFNHOOKPROC lpfnHook; - LPCWSTR lpTemplateName; -} OPENFILENAMEW,*LPOPENFILENAMEW; -typedef struct _OFNOTIFYA { - NMHDR hdr; - LPOPENFILENAMEA lpOFN; - LPSTR pszFile; -} OFNOTIFYA,*LPOFNOTIFYA; -typedef struct _OFNOTIFYW { - NMHDR hdr; - LPOPENFILENAMEW lpOFN; - LPWSTR pszFile; -} OFNOTIFYW,*LPOFNOTIFYW; -typedef struct tagPSDA { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - DWORD Flags; - POINT ptPaperSize; - RECT rtMinMargin; - RECT rtMargin; - HINSTANCE hInstance; - LPARAM lCustData; - LPPAGESETUPHOOK lpfnPageSetupHook; - LPPAGEPAINTHOOK lpfnPagePaintHook; - LPCSTR lpPageSetupTemplateName; - HGLOBAL hPageSetupTemplate; -} PAGESETUPDLGA,*LPPAGESETUPDLGA; -typedef struct tagPSDW { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - DWORD Flags; - POINT ptPaperSize; - RECT rtMinMargin; - RECT rtMargin; - HINSTANCE hInstance; - LPARAM lCustData; - LPPAGESETUPHOOK lpfnPageSetupHook; - LPPAGEPAINTHOOK lpfnPagePaintHook; - LPCWSTR lpPageSetupTemplateName; - HGLOBAL hPageSetupTemplate; -} PAGESETUPDLGW,*LPPAGESETUPDLGW; -typedef struct tagPDA { - DWORD lStructSize; - HWND hwndOwner; - HANDLE hDevMode; - HANDLE hDevNames; - HDC hDC; - DWORD Flags; - WORD nFromPage; - WORD nToPage; - WORD nMinPage; - WORD nMaxPage; - WORD nCopies; - HINSTANCE hInstance; - DWORD lCustData; - LPPRINTHOOKPROC lpfnPrintHook; - LPSETUPHOOKPROC lpfnSetupHook; - LPCSTR lpPrintTemplateName; - LPCSTR lpSetupTemplateName; - HANDLE hPrintTemplate; - HANDLE hSetupTemplate; -} PRINTDLGA,*LPPRINTDLGA; -typedef struct tagPDW { - DWORD lStructSize; - HWND hwndOwner; - HANDLE hDevMode; - HANDLE hDevNames; - HDC hDC; - DWORD Flags; - WORD nFromPage; - WORD nToPage; - WORD nMinPage; - WORD nMaxPage; - WORD nCopies; - HINSTANCE hInstance; - DWORD lCustData; - LPPRINTHOOKPROC lpfnPrintHook; - LPSETUPHOOKPROC lpfnSetupHook; - LPCWSTR lpPrintTemplateName; - LPCWSTR lpSetupTemplateName; - HANDLE hPrintTemplate; - HANDLE hSetupTemplate; -} PRINTDLGW,*LPPRINTDLGW; -#if (WINVER >= 0x0500) -#include /* for LPUNKNOWN */ -#include /* for HPROPSHEETPAGE */ -typedef struct tagPRINTPAGERANGE { - DWORD nFromPage; - DWORD nToPage; -} PRINTPAGERANGE, *LPPRINTPAGERANGE; -typedef struct tagPDEXA { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - HDC hDC; - DWORD Flags; - DWORD Flags2; - DWORD ExclusionFlags; - DWORD nPageRanges; - DWORD nMaxPageRanges; - LPPRINTPAGERANGE lpPageRanges; - DWORD nMinPage; - DWORD nMaxPage; - DWORD nCopies; - HINSTANCE hInstance; - LPCSTR lpPrintTemplateName; - LPUNKNOWN lpCallback; - DWORD nPropertyPages; - HPROPSHEETPAGE *lphPropertyPages; - DWORD nStartPage; - DWORD dwResultAction; -} PRINTDLGEXA, *LPPRINTDLGEXA; -typedef struct tagPDEXW { - DWORD lStructSize; - HWND hwndOwner; - HGLOBAL hDevMode; - HGLOBAL hDevNames; - HDC hDC; - DWORD Flags; - DWORD Flags2; - DWORD ExclusionFlags; - DWORD nPageRanges; - DWORD nMaxPageRanges; - LPPRINTPAGERANGE lpPageRanges; - DWORD nMinPage; - DWORD nMaxPage; - DWORD nCopies; - HINSTANCE hInstance; - LPCWSTR lpPrintTemplateName; - LPUNKNOWN lpCallback; - DWORD nPropertyPages; - HPROPSHEETPAGE *lphPropertyPages; - DWORD nStartPage; - DWORD dwResultAction; -} PRINTDLGEXW, *LPPRINTDLGEXW; -#endif /* WINVER >= 0x0500 */ - -BOOL WINAPI ChooseColorA(LPCHOOSECOLORA); -BOOL WINAPI ChooseColorW(LPCHOOSECOLORW); -BOOL WINAPI ChooseFontA(LPCHOOSEFONTA); -BOOL WINAPI ChooseFontW(LPCHOOSEFONTW); -DWORD WINAPI CommDlgExtendedError(void); -HWND WINAPI FindTextA(LPFINDREPLACEA); -HWND WINAPI FindTextW(LPFINDREPLACEW); -short WINAPI GetFileTitleA(LPCSTR,LPSTR,WORD); -short WINAPI GetFileTitleW(LPCWSTR,LPWSTR,WORD); -BOOL WINAPI GetOpenFileNameA(LPOPENFILENAMEA); -BOOL WINAPI GetOpenFileNameW(LPOPENFILENAMEW); -BOOL WINAPI GetSaveFileNameA(LPOPENFILENAMEA); -BOOL WINAPI GetSaveFileNameW(LPOPENFILENAMEW); -BOOL WINAPI PageSetupDlgA(LPPAGESETUPDLGA); -BOOL WINAPI PageSetupDlgW(LPPAGESETUPDLGW); -BOOL WINAPI PrintDlgA(LPPRINTDLGA); -BOOL WINAPI PrintDlgW(LPPRINTDLGW); -HWND WINAPI ReplaceTextA(LPFINDREPLACEA); -HWND WINAPI ReplaceTextW(LPFINDREPLACEW); -#if (WINVER >= 0x0500) -HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA); -HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW); -#endif /* WINVER >= 0x0500 */ - -#ifdef UNICODE -#define LBSELCHSTRING LBSELCHSTRINGW -#define SHAREVISTRING SHAREVISTRINGW -#define FILEOKSTRING FILEOKSTRINGW -#define COLOROKSTRING COLOROKSTRINGW -#define SETRGBSTRING SETRGBSTRINGW -#define HELPMSGSTRING HELPMSGSTRINGW -#define FINDMSGSTRING FINDMSGSTRINGW -typedef CHOOSECOLORW CHOOSECOLOR,*LPCHOOSECOLOR; -typedef CHOOSEFONTW CHOOSEFONT,*LPCHOOSEFONT; -typedef FINDREPLACEW FINDREPLACE,*LPFINDREPLACE; -typedef OPENFILENAMEW OPENFILENAME,*LPOPENFILENAME; -typedef OFNOTIFYW OFNOTIFY,*LPOFNOTIFY; -typedef PAGESETUPDLGW PAGESETUPDLG,*LPPAGESETUPDLG; -typedef PRINTDLGW PRINTDLG,*LPPRINTDLG; -#define ChooseColor ChooseColorW -#define ChooseFont ChooseFontW -#define FindText FindTextW -#define GetFileTitle GetFileTitleW -#define GetOpenFileName GetOpenFileNameW -#define GetSaveFileName GetSaveFileNameW -#define PageSetupDlg PageSetupDlgW -#define PrintDlg PrintDlgW -#define ReplaceText ReplaceTextW -#if (WINVER >= 0x0500) -typedef PRINTDLGEXW PRINTDLGEX, *LPPRINTDLGEX; -#define PrintDlgEx PrintDlgExW -#endif /* WINVER >= 0x0500 */ -#else /* UNICODE */ -#define LBSELCHSTRING LBSELCHSTRINGA -#define SHAREVISTRING SHAREVISTRINGA -#define FILEOKSTRING FILEOKSTRINGA -#define COLOROKSTRING COLOROKSTRINGA -#define SETRGBSTRING SETRGBSTRINGA -#define HELPMSGSTRING HELPMSGSTRINGA -#define FINDMSGSTRING FINDMSGSTRINGA -typedef CHOOSECOLORA CHOOSECOLOR,*LPCHOOSECOLOR; -typedef CHOOSEFONTA CHOOSEFONT,*LPCHOOSEFONT; -typedef FINDREPLACEA FINDREPLACE,*LPFINDREPLACE; -typedef OPENFILENAMEA OPENFILENAME,*LPOPENFILENAME; -typedef OFNOTIFYA OFNOTIFY,*LPOFNOTIFY; -typedef PAGESETUPDLGA PAGESETUPDLG,*LPPAGESETUPDLG; -typedef PRINTDLGA PRINTDLG,*LPPRINTDLG; -#define ChooseColor ChooseColorA -#define ChooseFont ChooseFontA -#define FindText FindTextA -#define GetFileTitle GetFileTitleA -#define GetOpenFileName GetOpenFileNameA -#define GetSaveFileName GetSaveFileNameA -#define PageSetupDlg PageSetupDlgA -#define PrintDlg PrintDlgA -#define ReplaceText ReplaceTextA -#if (WINVER >= 0x0500) -typedef PRINTDLGEXA PRINTDLGEX, *LPPRINTDLGEX; -#define PrintDlgEx PrintDlgExA -#endif /* WINVER >= 0x0500 */ -#endif /* UNICODE */ -#pragma pack(pop) -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/cpl.h b/winsup/w32api/include/cpl.h deleted file mode 100644 index f5ce29d00..000000000 --- a/winsup/w32api/include/cpl.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef _CPL_H -#define _CPL_H -#ifdef __cplusplus -extern "C" { -#endif -#define WM_CPL_LAUNCH (WM_USER+1000) -#define WM_CPL_LAUNCHED (WM_USER+1001) -#define CPL_DYNAMIC_RES 0 -#define CPL_INIT 1 -#define CPL_GETCOUNT 2 -#define CPL_INQUIRE 3 -#define CPL_SELECT 4 -#define CPL_DBLCLK 5 -#define CPL_STOP 6 -#define CPL_EXIT 7 -#define CPL_NEWINQUIRE 8 -#define CPL_STARTWPARMS 9 -#define CPL_SETUP 200 -typedef LONG(APIENTRY *APPLET_PROC)(HWND,UINT,LONG,LONG); -typedef struct tagCPLINFO { - int idIcon; - int idName; - int idInfo; - LONG lData; -} CPLINFO,*LPCPLINFO; -typedef struct tagNEWCPLINFOA { - DWORD dwSize; - DWORD dwFlags; - DWORD dwHelpContext; - LONG lData; - HICON hIcon; - CHAR szName[32]; - CHAR szInfo[64]; - CHAR szHelpFile[128]; -} NEWCPLINFOA,*LPNEWCPLINFOA; -typedef struct tagNEWCPLINFOW { - DWORD dwSize; - DWORD dwFlags; - DWORD dwHelpContext; - LONG lData; - HICON hIcon; - WCHAR szName[32]; - WCHAR szInfo[64]; - WCHAR szHelpFile[128]; -} NEWCPLINFOW,*LPNEWCPLINFOW; -#ifdef UNICODE -typedef NEWCPLINFOW NEWCPLINFO,*LPNEWCPLINFO; -#else -typedef NEWCPLINFOA NEWCPLINFO,*LPNEWCPLINFO; -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/cplext.h b/winsup/w32api/include/cplext.h deleted file mode 100644 index 8c2207d16..000000000 --- a/winsup/w32api/include/cplext.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _CPLEXT_H -#define _CPLEXT_H -#define CPLPAGE_MOUSE_BUTTONS 1 -#define CPLPAGE_MOUSE_PTRMOTION 2 -#define CPLPAGE_KEYBOARD_SPEED 1 -#endif diff --git a/winsup/w32api/include/custcntl.h b/winsup/w32api/include/custcntl.h deleted file mode 100644 index 8c3d463ab..000000000 --- a/winsup/w32api/include/custcntl.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef _CUSTCNTL_H -#define _CUSTCNTL_H -#ifdef __cplusplus -extern "C" { -#endif - -#define CCF_NOTEXT 1 -#define CCHCCCLASS 32 -#define CCHCCDESC 32 -#define CCHCCTEXT 256 - -typedef struct tagCCSTYLEA { - DWORD flStyle; - DWORD flExtStyle; - CHAR szText[CCHCCTEXT]; - LANGID lgid; - WORD wReserved1; -} CCSTYLEA,*LPCCSTYLEA; -typedef struct tagCCSTYLEW { - DWORD flStyle; - DWORD flExtStyle; - WCHAR szText[CCHCCTEXT]; - LANGID lgid; - WORD wReserved1; -} CCSTYLEW,*LPCCSTYLEW; -typedef struct tagCCSTYLEFLAGA { - DWORD flStyle; - DWORD flStyleMask; - LPSTR pszStyle; -} CCSTYLEFLAGA,*LPCCSTYLEFLAGA; -typedef struct tagCCSTYLEFLAGW { - DWORD flStyle; - DWORD flStyleMask; - LPWSTR pszStyle; -} CCSTYLEFLAGW,*LPCCSTYLEFLAGW; -typedef BOOL(CALLBACK* LPFNCCSTYLEA)(HWND,LPCCSTYLEA); -typedef INT(CALLBACK* LPFNCCSIZETOTEXTA)(DWORD,DWORD,HFONT,LPSTR); -typedef struct tagCCINFOA { - CHAR szClass[CCHCCCLASS]; - DWORD flOptions; - CHAR szDesc[CCHCCDESC]; - UINT cxDefault; - UINT cyDefault; - DWORD flStyleDefault; - DWORD flExtStyleDefault; - DWORD flCtrlTypeMask; - CHAR szTextDefault[CCHCCTEXT]; - INT cStyleFlags; - LPCCSTYLEFLAGA aStyleFlags; - LPFNCCSTYLEA lpfnStyle; - LPFNCCSIZETOTEXTA lpfnSizeToText; - DWORD dwReserved1; - DWORD dwReserved2; -} CCINFOA,*LPCCINFOA; -typedef UINT(CALLBACK* LPFNCCINFOA)(LPCCINFOA); -typedef BOOL(CALLBACK* LPFNCCSTYLEW)(HWND,LPCCSTYLEW); -typedef INT (CALLBACK* LPFNCCSIZETOTEXTW)(DWORD,DWORD,HFONT,LPWSTR); -typedef struct tagCCINFOW { - WCHAR szClass[CCHCCCLASS]; - DWORD flOptions; - WCHAR szDesc[CCHCCDESC]; - UINT cxDefault; - UINT cyDefault; - DWORD flStyleDefault; - DWORD flExtStyleDefault; - DWORD flCtrlTypeMask; - WCHAR szTextDefault[CCHCCTEXT]; - INT cStyleFlags; - LPCCSTYLEFLAGW aStyleFlags; - LPFNCCSTYLEW lpfnStyle; - LPFNCCSIZETOTEXTW lpfnSizeToText; - DWORD dwReserved1; - DWORD dwReserved2; -} CCINFOW,*LPCCINFOW; -typedef UINT(CALLBACK* LPFNCCINFOW)(LPCCINFOW); - -UINT CALLBACK CustomControlInfoA(LPCCINFOA acci); -UINT CALLBACK CustomControlInfoW(LPCCINFOW acci); - -#ifdef UNICODE -typedef CCSTYLEW CCSTYLE,*LPCCSTYLE; -typedef CCSTYLEFLAGW CCSTYLEFLAG,*LPCCSTYLEFLAG; -typedef CCINFOW CCINFO,*LPCCINFO; -#define LPFNCCSTYLE LPFNCCSTYLEW -#define LPFNCCSIZETOTEXT LPFNCCSIZETOTEXTW -#define LPFNCCINFO LPFNCCINFOW -#else -typedef CCSTYLEA CCSTYLE,*LPCCSTYLE; -typedef CCSTYLEFLAGA CCSTYLEFLAG,*LPCCSTYLEFLAG; -typedef CCINFOA CCINFO,*LPCCINFO; -#define LPFNCCSTYLE LPFNCCSTYLEA -#define LPFNCCSIZETOTEXT LPFNCCSIZETOTEXTA -#define LPFNCCINFO LPFNCCINFOA -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/dbt.h b/winsup/w32api/include/dbt.h deleted file mode 100644 index 071b0077b..000000000 --- a/winsup/w32api/include/dbt.h +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef _DBT_H -#define _DBT_H -#ifdef __cplusplus -extern "C" { -#endif -#define DBT_NO_DISK_SPACE 0x47 -#define DBT_CONFIGMGPRIVATE 0x7FFF -#define DBT_DEVICEARRIVAL 0x8000 -#define DBT_DEVICEQUERYREMOVE 0x8001 -#define DBT_DEVICEQUERYREMOVEFAILED 0x8002 -#define DBT_DEVICEREMOVEPENDING 0x8003 -#define DBT_DEVICEREMOVECOMPLETE 0x8004 -#define DBT_DEVICETYPESPECIFIC 0x8005 -#define DBT_DEVTYP_OEM 0 -#define DBT_DEVTYP_DEVNODE 1 -#define DBT_DEVTYP_VOLUME 2 -#define DBT_DEVTYP_PORT 3 -#define DBT_DEVTYP_NET 4 -#define DBT_APPYBEGIN 0 -#define DBT_APPYEND 1 -#define DBT_DEVNODES_CHANGED 7 -#define DBT_QUERYCHANGECONFIG 0x17 -#define DBT_CONFIGCHANGED 0x18 -#define DBT_CONFIGCHANGECANCELED 0x19 -#define DBT_MONITORCHANGE 0x1B -#define DBT_SHELLLOGGEDON 32 -#define DBT_CONFIGMGAPI32 34 -#define DBT_VXDINITCOMPLETE 35 -#define DBT_VOLLOCKQUERYLOCK 0x8041 -#define DBT_VOLLOCKLOCKTAKEN 0x8042 -#define DBT_VOLLOCKLOCKFAILED 0x8043 -#define DBT_VOLLOCKQUERYUNLOCK 0x8044 -#define DBT_VOLLOCKLOCKRELEASED 0x8045 -#define DBT_VOLLOCKUNLOCKFAILED 0x8046 -#define DBT_USERDEFINED 0xFFFF -#define DBTF_MEDIA 1 -#define DBTF_NET 2 -#define BSM_ALLCOMPONENTS 0 -#define BSM_VXDS 1 -#define BSM_NETDRIVER 2 -#define BSM_INSTALLABLEDRIVERS 4 -#define BSM_APPLICATIONS 8 -#define BSF_QUERY 1 -#define BSF_IGNORECURRENTTASK 2 -#define BSF_FLUSHDISK 4 -#define BSF_NOHANG 8 -#define BSF_POSTMESSAGE 16 -#define BSF_FORCEIFHUNG 32 -#define BSF_NOTIMEOUTIFNOTHUNG 64 -#define BSF_MSGSRV32ISOK_BIT 31 -#define BSF_MSGSRV32ISOK 0x80000000 - -typedef struct _DEV_BROADCAST_HDR { - DWORD dbch_size; - DWORD dbch_devicetype; - DWORD dbch_reserved; -} DEV_BROADCAST_HDR,*PDEV_BROADCAST_HDR; -typedef struct _DEV_BROADCAST_OEM { - DWORD dbco_size; - DWORD dbco_devicetype; - DWORD dbco_reserved; - DWORD dbco_identifier; - DWORD dbco_suppfunc; -} DEV_BROADCAST_OEM,*PDEV_BROADCAST_OEM; -typedef struct _DEV_BROADCAST_PORT { - DWORD dbcp_size; - DWORD dbcp_devicetype; - DWORD dbcp_reserved; - char dbcp_name[1]; -} DEV_BROADCAST_PORT,*PDEV_BROADCAST_PORT; -typedef struct _DEV_BROADCAST_USERDEFINED { - struct _DEV_BROADCAST_HDR dbud_dbh; - char dbud_szName[1]; -} DEV_BROADCAST_USERDEFINED; -typedef struct _DEV_BROADCAST_VOLUME { - DWORD dbcv_size; - DWORD dbcv_devicetype; - DWORD dbcv_reserved; - DWORD dbcv_unitmask; - WORD dbcv_flags; -} DEV_BROADCAST_VOLUME,*PDEV_BROADCAST_VOLUME; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/dde.h b/winsup/w32api/include/dde.h deleted file mode 100644 index 474f12691..000000000 --- a/winsup/w32api/include/dde.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef _DDE_H -#define _DDE_H -#ifdef __cplusplus -extern "C" { -#endif -#define WM_DDE_FIRST 0x03E0 -#define WM_DDE_INITIATE (WM_DDE_FIRST) -#define WM_DDE_TERMINATE (WM_DDE_FIRST+1) -#define WM_DDE_ADVISE (WM_DDE_FIRST+2) -#define WM_DDE_UNADVISE (WM_DDE_FIRST+3) -#define WM_DDE_ACK (WM_DDE_FIRST+4) -#define WM_DDE_DATA (WM_DDE_FIRST+5) -#define WM_DDE_REQUEST (WM_DDE_FIRST+6) -#define WM_DDE_POKE (WM_DDE_FIRST+7) -#define WM_DDE_EXECUTE (WM_DDE_FIRST+8) -#define WM_DDE_LAST (WM_DDE_FIRST+8) - -#ifndef RC_INVOKED -typedef struct { - unsigned short bAppReturnCode:8,reserved:6,fBusy:1,fAck:1; -} DDEACK; -typedef struct { - unsigned short reserved:14,fDeferUpd:1,fAckReq:1; - short cfFormat; -} DDEADVISE; -typedef struct { - unsigned short unused:12,fResponse:1,fRelease:1,reserved:1,fAckReq:1; - short cfFormat; - BYTE Value[1]; -} DDEDATA; -typedef struct { - unsigned short unused:13,fRelease:1,fReserved:2; - short cfFormat; - BYTE Value[1]; -} DDEPOKE; -typedef struct { - unsigned short unused:13, - fRelease:1, - fDeferUpd:1, - fAckReq:1; - short cfFormat; -} DDELN; - -typedef struct { - unsigned short unused:12,fAck:1,fRelease:1,fReserved:1,fAckReq:1; - short cfFormat; - BYTE rgb[1]; -} DDEUP; -BOOL WINAPI DdeSetQualityOfService(HWND,const SECURITY_QUALITY_OF_SERVICE*,PSECURITY_QUALITY_OF_SERVICE); -BOOL WINAPI ImpersonateDdeClientWindow(HWND,HWND); -LONG WINAPI PackDDElParam(UINT,UINT,UINT); -BOOL WINAPI UnpackDDElParam(UINT,LONG,PUINT,PUINT); -BOOL WINAPI FreeDDElParam(UINT,LONG); -LONG WINAPI ReuseDDElParam(LONG,UINT,UINT,UINT,UINT); -#endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/ddeml.h b/winsup/w32api/include/ddeml.h deleted file mode 100644 index 3f44c76f3..000000000 --- a/winsup/w32api/include/ddeml.h +++ /dev/null @@ -1,241 +0,0 @@ -#ifndef _DDEML_H -#define _DDEML_H -#ifdef __cplusplus -extern "C" { -#endif - -#define EXPENTRY CALLBACK -#define CP_WINANSI 1004 -#define CP_WINUNICODE 1200 -#define XTYPF_NOBLOCK 2 -#define XTYPF_NODATA 4 -#define XTYPF_ACKREQ 8 -#define XCLASS_MASK 0xFC00 -#define XCLASS_BOOL 0x1000 -#define XCLASS_DATA 0x2000 -#define XCLASS_FLAGS 0x4000 -#define XCLASS_NOTIFICATION 0x8000 -#define XST_NULL 0 -#define XST_INCOMPLETE 1 -#define XST_CONNECTED 2 -#define XST_INIT1 3 -#define XST_INIT2 4 -#define XST_REQSENT 5 -#define XST_DATARCVD 6 -#define XST_POKESENT 7 -#define XST_POKEACKRCVD 8 -#define XST_EXECSENT 9 -#define XST_EXECACKRCVD 10 -#define XST_ADVSENT 11 -#define XST_UNADVSENT 12 -#define XST_ADVACKRCVD 13 -#define XST_UNADVACKRCVD 14 -#define XST_ADVDATASENT 15 -#define XST_ADVDATAACKRCVD 16 -#define XTYP_ERROR (XCLASS_NOTIFICATION|XTYPF_NOBLOCK) -#define XTYP_ADVDATA (16|XCLASS_FLAGS) -#define XTYP_ADVREQ (32|XCLASS_DATA|XTYPF_NOBLOCK) -#define XTYP_ADVSTART (0x30|XCLASS_BOOL) -#define XTYP_ADVSTOP (0x0040|XCLASS_NOTIFICATION) -#define XTYP_EXECUTE (0x0050|XCLASS_FLAGS) -#define XTYP_CONNECT (0x0060|XCLASS_BOOL|XTYPF_NOBLOCK) -#define XTYP_CONNECT_CONFIRM (0x0070|XCLASS_NOTIFICATION|XTYPF_NOBLOCK) -#define XTYP_XACT_COMPLETE (0x0080|XCLASS_NOTIFICATION) -#define XTYP_POKE (0x0090|XCLASS_FLAGS) -#define XTYP_REGISTER (0x00A0|XCLASS_NOTIFICATION|XTYPF_NOBLOCK) -#define XTYP_REQUEST (0x00B0|XCLASS_DATA) -#define XTYP_DISCONNECT (0x00C0|XCLASS_NOTIFICATION|XTYPF_NOBLOCK) -#define XTYP_UNREGISTER (0x00D0|XCLASS_NOTIFICATION|XTYPF_NOBLOCK) -#define XTYP_WILDCONNECT (0x00E0|XCLASS_DATA|XTYPF_NOBLOCK) -#define XTYP_MASK 0xF0 -#define XTYP_SHIFT 4 -#define TIMEOUT_ASYNC 0xFFFFFFFF -#define QID_SYNC 0xFFFFFFFF -#define ST_CONNECTED 1 -#define ST_ADVISE 2 -#define ST_ISLOCAL 4 -#define ST_BLOCKED 8 -#define ST_CLIENT 16 -#define ST_TERMINATED 32 -#define ST_INLIST 64 -#define ST_BLOCKNEXT 128 -#define ST_ISSELF 256 -#define CADV_LATEACK 0xFFFF -#define DMLERR_NO_ERROR 0 -#define DMLERR_FIRST 0x4000 -#define DMLERR_ADVACKTIMEOUT 0x4000 -#define DMLERR_BUSY 0x4001 -#define DMLERR_DATAACKTIMEOUT 0x4002 -#define DMLERR_DLL_NOT_INITIALIZED 0x4003 -#define DMLERR_DLL_USAGE 0x4004 -#define DMLERR_EXECACKTIMEOUT 0x4005 -#define DMLERR_INVALIDPARAMETER 0x4006 -#define DMLERR_LOW_MEMORY 0x4007 -#define DMLERR_MEMORY_ERROR 0x4008 -#define DMLERR_NOTPROCESSED 0x4009 -#define DMLERR_NO_CONV_ESTABLISHED 0x400a -#define DMLERR_POKEACKTIMEOUT 0x400b -#define DMLERR_POSTMSG_FAILED 0x400c -#define DMLERR_REENTRANCY 0x400d -#define DMLERR_SERVER_DIED 0x400e -#define DMLERR_SYS_ERROR 0x400f -#define DMLERR_UNADVACKTIMEOUT 0x4010 -#define DMLERR_UNFOUND_QUEUE_ID 0x4011 -#define DMLERR_LAST 0x4011 -#define DDE_FACK 0x8000 -#define DDE_FBUSY 0x4000 -#define DDE_FDEFERUPD 0x4000 -#define DDE_FACKREQ 0x8000 -#define DDE_FRELEASE 0x2000 -#define DDE_FREQUESTED 0x1000 -#define DDE_FAPPSTATUS 0x00ff -#define DDE_FNOTPROCESSED 0 -#define DDE_FACKRESERVED (~(DDE_FACK|DDE_FBUSY|DDE_FAPPSTATUS)) -#define DDE_FADVRESERVED (~(DDE_FACKREQ|DDE_FDEFERUPD)) -#define DDE_FDATRESERVED (~(DDE_FACKREQ|DDE_FRELEASE|DDE_FREQUESTED)) -#define DDE_FPOKRESERVED (~DDE_FRELEASE) -#define MSGF_DDEMGR 0x8001 -#define CBR_BLOCK ((HDDEDATA)0xffffffff) -#define CBF_FAIL_SELFCONNECTIONS 0x1000 -#define CBF_FAIL_CONNECTIONS 0x2000 -#define CBF_FAIL_ADVISES 0x4000 -#define CBF_FAIL_EXECUTES 0x8000 -#define CBF_FAIL_POKES 0x10000 -#define CBF_FAIL_REQUESTS 0x20000 -#define CBF_FAIL_ALLSVRXACTIONS 0x3f000 -#define CBF_SKIP_CONNECT_CONFIRMS 0x40000 -#define CBF_SKIP_REGISTRATIONS 0x80000 -#define CBF_SKIP_UNREGISTRATIONS 0x100000 -#define CBF_SKIP_DISCONNECTS 0x200000 -#define CBF_SKIP_ALLNOTIFICATIONS 0x3c0000 -#define APPCMD_CLIENTONLY 0x10L -#define APPCMD_FILTERINITS 0x20L -#define APPCMD_MASK 0xFF0L -#define APPCLASS_STANDARD 0 -#define APPCLASS_MASK 0xFL -#define EC_ENABLEALL 0 -#define EC_ENABLEONE ST_BLOCKNEXT -#define EC_DISABLE ST_BLOCKED -#define EC_QUERYWAITING 2 -#define DNS_REGISTER 1 -#define DNS_UNREGISTER 2 -#define DNS_FILTERON 4 -#define DNS_FILTEROFF 8 -#define HDATA_APPOWNED 1 -#define MAX_MONITORS 4 -#define APPCLASS_MONITOR 1L -#define XTYP_MONITOR (XCLASS_NOTIFICATION|XTYPF_NOBLOCK|0xF0) -#define MF_HSZ_INFO 0x1000000 -#define MF_SENDMSGS 0x2000000 -#define MF_POSTMSGS 0x4000000 -#define MF_CALLBACKS 0x8000000 -#define MF_ERRORS 0x10000000 -#define MF_LINKS 0x20000000 -#define MF_CONV 0x40000000 -#define MF_MASK 0xFF000000 - -DECLARE_HANDLE(HCONVLIST); -DECLARE_HANDLE(HCONV); -DECLARE_HANDLE(HSZ); -DECLARE_HANDLE(HDDEDATA); -typedef HDDEDATA CALLBACK FNCALLBACK(UINT,UINT,HCONV,HSZ,HSZ,HDDEDATA,DWORD,DWORD); -typedef HDDEDATA(CALLBACK *PFNCALLBACK)(UINT,UINT,HCONV,HSZ,HSZ,HDDEDATA,DWORD,DWORD); -typedef struct tagHSZPAIR { - HSZ hszSvc; - HSZ hszTopic; -} HSZPAIR, *PHSZPAIR; -typedef struct tagCONVCONTEXT { - UINT cb; - UINT wFlags; - UINT wCountryID; - int iCodePage; - DWORD dwLangID; - DWORD dwSecurity; - SECURITY_QUALITY_OF_SERVICE qos; -} CONVCONTEXT,*PCONVCONTEXT; -typedef struct tagCONVINFO { - DWORD cb; - DWORD hUser; - HCONV hConvPartner; - HSZ hszSvcPartner; - HSZ hszServiceReq; - HSZ hszTopic; - HSZ hszItem; - UINT wFmt; - UINT wType; - UINT wStatus; - UINT wConvst; - UINT wLastError; - HCONVLIST hConvList; - CONVCONTEXT ConvCtxt; - HWND hwnd; - HWND hwndPartner; -} CONVINFO,*PCONVINFO; -typedef struct tagDDEML_MSG_HOOK_DATA { - UINT uiLo; - UINT uiHi; - DWORD cbData; - DWORD Data[8]; -} DDEML_MSG_HOOK_DATA; - -BOOL WINAPI DdeAbandonTransaction(DWORD,HCONV,DWORD); -PBYTE WINAPI DdeAccessData(HDDEDATA,PDWORD); -HDDEDATA WINAPI DdeAddData(HDDEDATA,PBYTE,DWORD,DWORD); -HDDEDATA WINAPI DdeClientTransaction(PBYTE,DWORD,HCONV,HSZ,UINT,UINT,DWORD,PDWORD); -int WINAPI DdeCmpStringHandles(HSZ,HSZ); -HCONV WINAPI DdeConnect(DWORD,HSZ,HSZ,PCONVCONTEXT); -HCONVLIST WINAPI DdeConnectList(DWORD,HSZ,HSZ,HCONVLIST,PCONVCONTEXT); -HDDEDATA WINAPI DdeCreateDataHandle(DWORD,PBYTE,DWORD,DWORD,HSZ,UINT,UINT); -HSZ WINAPI DdeCreateStringHandleA(DWORD,LPCSTR,int); -HSZ WINAPI DdeCreateStringHandleW(DWORD,LPCWSTR,int); -BOOL WINAPI DdeDisconnect(HCONV); -BOOL WINAPI DdeDisconnectList(HCONVLIST); -BOOL WINAPI DdeEnableCallback(DWORD,HCONV,UINT); -BOOL WINAPI DdeFreeDataHandle(HDDEDATA); -BOOL WINAPI DdeFreeStringHandle(DWORD,HSZ); -DWORD WINAPI DdeGetData(HDDEDATA,PBYTE,DWORD,DWORD); -UINT WINAPI DdeGetLastError(DWORD); -BOOL WINAPI DdeImpersonateClient(HCONV); -UINT WINAPI DdeInitializeA(PDWORD,PFNCALLBACK,DWORD,DWORD); -UINT WINAPI DdeInitializeW(PDWORD,PFNCALLBACK,DWORD,DWORD); -BOOL WINAPI DdeKeepStringHandle(DWORD,HSZ); -HDDEDATA WINAPI DdeNameService(DWORD,HSZ,HSZ,UINT); -BOOL WINAPI DdePostAdvise(DWORD,HSZ,HSZ); -UINT WINAPI DdeQueryConvInfo(HCONV,DWORD,PCONVINFO); -HCONV WINAPI DdeQueryNextServer(HCONVLIST,HCONV); -DWORD WINAPI DdeQueryStringA(DWORD,HSZ,LPSTR,DWORD,int); -DWORD WINAPI DdeQueryStringW(DWORD,HSZ,LPWSTR,DWORD,int); -HCONV WINAPI DdeReconnect(HCONV); -BOOL WINAPI DdeSetUserHandle(HCONV,DWORD,DWORD); -BOOL WINAPI DdeUnaccessData(HDDEDATA); -BOOL WINAPI DdeUninitialize(DWORD); - -#ifdef UNICODE -#define SZDDESYS_TOPIC L"System" -#define SZDDESYS_ITEM_TOPICS L"Topics" -#define SZDDESYS_ITEM_SYSITEMS L"SysItems" -#define SZDDESYS_ITEM_RTNMSG L"ReturnMessage" -#define SZDDESYS_ITEM_STATUS L"Status" -#define SZDDESYS_ITEM_FORMATS L"Formats" -#define SZDDESYS_ITEM_HELP L"Help" -#define SZDDE_ITEM_ITEMLIST L"TopicItemList" -#define DdeCreateStringHandle DdeCreateStringHandleW -#define DdeInitialize DdeInitializeW -#define DdeQueryString DdeQueryStringW -#else -#define SZDDESYS_TOPIC "System" -#define SZDDESYS_ITEM_TOPICS "Topics" -#define SZDDESYS_ITEM_SYSITEMS "SysItems" -#define SZDDESYS_ITEM_RTNMSG "ReturnMessage" -#define SZDDESYS_ITEM_STATUS "Status" -#define SZDDESYS_ITEM_FORMATS "Formats" -#define SZDDESYS_ITEM_HELP "Help" -#define SZDDE_ITEM_ITEMLIST "TopicItemList" -#define DdeCreateStringHandle DdeCreateStringHandleA -#define DdeInitialize DdeInitializeA -#define DdeQueryString DdeQueryStringA -#endif -#ifdef __cplusplus -} -#endif -#endif /* _DDEML_H */ diff --git a/winsup/w32api/include/dlgs.h b/winsup/w32api/include/dlgs.h deleted file mode 100644 index d26e19156..000000000 --- a/winsup/w32api/include/dlgs.h +++ /dev/null @@ -1,182 +0,0 @@ -#ifndef _DLGS_H -#define _DLGS_H -#ifdef __cplusplus -extern "C" { -#endif -#define FILEOPENORD 1536 -#define MULTIFILEOPENORD 1537 -#define PRINTDLGORD 1538 -#define PRNSETUPDLGORD 1539 -#define FINDDLGORD 1540 -#define REPLACEDLGORD 1541 -#define FONTDLGORD 1542 -#define FORMATDLGORD31 1543 -#define FORMATDLGORD30 1544 -#define PAGESETUPDLGORD 1546 -#define ctlFirst 0x400 -#define ctlLast 0x4ff -#define chx1 0x410 -#define chx2 0x411 -#define chx3 0x412 -#define chx4 0x413 -#define chx5 0x414 -#define chx6 0x415 -#define chx7 0x416 -#define chx8 0x417 -#define chx9 0x418 -#define chx10 0x419 -#define chx11 0x41a -#define chx12 0x41b -#define chx13 0x41c -#define chx14 0x41d -#define chx15 0x41e -#define chx16 0x41f -#define cmb1 0x470 -#define cmb2 0x471 -#define cmb3 0x472 -#define cmb4 0x473 -#define cmb5 0x474 -#define cmb6 0x475 -#define cmb7 0x476 -#define cmb8 0x477 -#define cmb9 0x478 -#define cmb10 0x479 -#define cmb11 0x47a -#define cmb12 0x47b -#define cmb13 0x47c -#define cmb14 0x47d -#define cmb15 0x47e -#define cmb16 0x47f -#define edt1 0x480 -#define edt2 0x481 -#define edt3 0x482 -#define edt4 0x483 -#define edt5 0x484 -#define edt6 0x485 -#define edt7 0x486 -#define edt8 0x487 -#define edt9 0x488 -#define edt10 0x489 -#define edt11 0x48a -#define edt12 0x48b -#define edt13 0x48c -#define edt14 0x48d -#define edt15 0x48e -#define edt16 0x48f -#define frm1 0x434 -#define frm2 0x435 -#define frm3 0x436 -#define frm4 0x437 -#define grp1 0x430 -#define grp2 0x431 -#define grp3 0x432 -#define grp4 0x433 -#define ico1 0x43c -#define ico2 0x43d -#define ico3 0x43e -#define ico4 0x43f -#define lst1 0x460 -#define lst2 0x461 -#define lst3 0x462 -#define lst4 0x463 -#define lst5 0x464 -#define lst6 0x465 -#define lst7 0x466 -#define lst8 0x467 -#define lst9 0x468 -#define lst10 0x469 -#define lst11 0x46a -#define lst12 0x46b -#define lst13 0x46c -#define lst14 0x46d -#define lst15 0x46e -#define lst16 0x46f -#define psh1 0x400 -#define psh2 0x401 -#define psh3 0x402 -#define psh4 0x403 -#define psh5 0x404 -#define psh6 0x405 -#define psh7 0x406 -#define psh8 0x407 -#define psh9 0x408 -#define psh10 0x409 -#define psh11 0x40a -#define psh12 0x40b -#define psh13 0x40c -#define psh14 0x40d -#define psh15 0x40e -#define pshHelp 0x40e -#define psh16 0x40f -#define rad1 0x420 -#define rad2 0x421 -#define rad3 0x422 -#define rad4 0x423 -#define rad5 0x424 -#define rad6 0x425 -#define rad7 0x426 -#define rad8 0x427 -#define rad9 0x428 -#define rad10 0x429 -#define rad11 0x42a -#define rad12 0x42b -#define rad13 0x42c -#define rad14 0x42d -#define rad15 0x42e -#define rad16 0x42f -#define rct1 0x438 -#define rct2 0x439 -#define rct3 0x43a -#define rct4 0x43b -#define scr1 0x490 -#define scr2 0x491 -#define scr3 0x492 -#define scr4 0x493 -#define scr5 0x494 -#define scr6 0x495 -#define scr7 0x496 -#define scr8 0x497 -#define stc1 0x440 -#define stc2 0x441 -#define stc3 0x442 -#define stc4 0x443 -#define stc5 0x444 -#define stc6 0x445 -#define stc7 0x446 -#define stc8 0x447 -#define stc9 0x448 -#define stc10 0x449 -#define stc11 0x44a -#define stc12 0x44b -#define stc13 0x44c -#define stc14 0x44d -#define stc15 0x44e -#define stc16 0x44f -#define stc17 0x450 -#define stc18 0x451 -#define stc19 0x452 -#define stc20 0x453 -#define stc21 0x454 -#define stc22 0x455 -#define stc23 0x456 -#define stc24 0x457 -#define stc25 0x458 -#define stc26 0x459 -#define stc27 0x45a -#define stc28 0x45b -#define stc29 0x45c -#define stc30 0x45d -#define stc31 0x45e -#define stc32 0x45f -#ifndef RC_INVOKED -typedef struct tagCRGB { - BYTE bRed; - BYTE bGreen; - BYTE bBlue; - BYTE bExtra; -} CRGB; -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/excpt.h b/winsup/w32api/include/excpt.h deleted file mode 100644 index 39621a8f6..000000000 --- a/winsup/w32api/include/excpt.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _EXCPT_H -#define _EXCPT_H - -/* FIXME: This will make some code compile. The programs will most - likely crash when an exception is raised, but at least they will - compile. */ -#ifdef __GNUC__ -#define __try -#define __except(x) if (0) /* don't execute handler */ -#define __finally - -#define _try __try -#define _except __except -#define _finally __finally -#endif - -#endif diff --git a/winsup/w32api/include/httpext.h b/winsup/w32api/include/httpext.h deleted file mode 100644 index 4b6f9e282..000000000 --- a/winsup/w32api/include/httpext.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - httpext.h - Header for ISAPI extensions. - - This file is part of a free library for the Win32 API. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -*/ - -#ifndef _HTTPEXT_H -#define _HTTPEXT_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define HSE_VERSION_MAJOR 2 -#define HSE_VERSION_MINOR 0 -#define HSE_LOG_BUFFER_LEN 80 -#define HSE_MAX_EXT_DLL_NAME_LEN 256 -#define HSE_STATUS_SUCCESS 1 -#define HSE_STATUS_SUCCESS_AND_KEEP_CONN 2 -#define HSE_STATUS_PENDING 3 -#define HSE_STATUS_ERROR 4 -#define HSE_REQ_BASE 0 -#define HSE_REQ_SEND_URL_REDIRECT_RESP 1 -#define HSE_REQ_SEND_URL 2 -#define HSE_REQ_SEND_RESPONSE_HEADER 3 -#define HSE_REQ_DONE_WITH_SESSION 4 -#define HSE_REQ_END_RESERVED 1000 -#define HSE_TERM_ADVISORY_UNLOAD 0x00000001 -#define HSE_TERM_MUST_UNLOAD 0x00000002 -#define HSE_IO_SYNC 0x00000001 -#define HSE_IO_ASYNC 0x00000002 -#define HSE_IO_DISCONNECT_AFTER_SEND 0x00000004 -#define HSE_IO_SEND_HEADERS 0x00000008 -typedef LPVOID HCONN; -typedef struct _HSE_VERSION_INFO { - DWORD dwExtensionVersion; - CHAR lpszExtensionDesc[HSE_MAX_EXT_DLL_NAME_LEN]; -} HSE_VERSION_INFO, *LPHSE_VERSION_INFO; -typedef struct _EXTENSION_CONTROL_BLOCK { - DWORD cbSize; - DWORD dwVersion; - HCONN ConnID; - DWORD dwHttpStatusCode; - CHAR lpszLogData[HSE_LOG_BUFFER_LEN]; - LPSTR lpszMethod; - LPSTR lpszQueryString; - LPSTR lpszPathInfo; - LPSTR lpszPathTranslated; - DWORD cbTotalBytes; - DWORD cbAvailable; - LPBYTE lpbData; - LPSTR lpszContentType; - BOOL (PASCAL *GetServerVariable)(HCONN,LPSTR,LPVOID,LPDWORD); - BOOL (PASCAL *WriteClient)(HCONN,LPVOID,LPDWORD,DWORD); - BOOL (PASCAL *ReadClient)(HCONN,LPVOID,LPDWORD); - BOOL (PASCAL *ServerSupportFunction)(HCONN,DWORD,LPVOID,LPDWORD,LPDWORD); -} EXTENSION_CONTROL_BLOCK, *LPEXTENSION_CONTROL_BLOCK; -typedef BOOL (PASCAL *PFN_GETEXTENSIONVERSION)(HSE_VERSION_INFO*); -typedef DWORD (PASCAL *PFN_HTTPEXTENSIONPROC)(EXTENSION_CONTROL_BLOCK*); -typedef BOOL (PASCAL *PFN_TERMINATEEXTENSION)(DWORD); -typedef VOID (PASCAL *PFN_HSE_IO_COMPLETION)(EXTENSION_CONTROL_BLOCK*,PVOID,DWORD,DWORD); -typedef struct _HSE_TF_INFO { - PFN_HSE_IO_COMPLETION pfnHseIO; - PVOID pContext; - HANDLE hFile; - LPCSTR pszStatusCode; - DWORD BytesToWrite; - DWORD Offset; - PVOID pHead; - DWORD HeadLength; - PVOID pTail; - DWORD TailLength; - DWORD dwFlags; -} HSE_TF_INFO, *LPHSE_TF_INFO; -BOOL PASCAL GetExtensionVersion(HSE_VERSION_INFO*); -DWORD PASCAL HttpExtensionProc(EXTENSION_CONTROL_BLOCK*); -BOOL PASCAL TerminateExtension(DWORD); -#ifdef __cplusplus -} -#endif -#endif /* _HTTPEXT_H */ diff --git a/winsup/w32api/include/imagehlp.h b/winsup/w32api/include/imagehlp.h deleted file mode 100644 index 2a3eb6f08..000000000 --- a/winsup/w32api/include/imagehlp.h +++ /dev/null @@ -1,326 +0,0 @@ -/* - imagehlp.h - Include file for IMAGEHLP.DLL APIs - - Written by Mumit Khan - - This file is part of a free library for the Win32 API. - - NOTE: This strictly does not belong in the Win32 API since it's - really part of Platform SDK. However,GDB needs it and we might - as well provide it here. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -*/ - -#ifndef _IMAGEHLP_H -#define _IMAGEHLP_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define API_VERSION_NUMBER 7 -#define BIND_NO_BOUND_IMPORTS 0x00000001 -#define BIND_NO_UPDATE 0x00000002 -#define BIND_ALL_IMAGES 0x00000004 -#define BIND_CACHE_IMPORT_DLLS 0x00000008 -#define CBA_DEFERRED_SYMBOL_LOAD_START 1 -#define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 2 -#define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 3 -#define CBA_SYMBOLS_UNLOADED 4 -#define CBA_DUPLICATE_SYMBOL 5 -#define CERT_PE_IMAGE_DIGEST_DEBUG_INFO 1 -#define CERT_PE_IMAGE_DIGEST_RESOURCES 2 -#define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 4 -#define CERT_PE_IMAGE_DIGEST_NON_PE_INFO 8 -#define CERT_SECTION_TYPE_ANY 255 -#define CHECKSUM_SUCCESS 0 -#define CHECKSUM_OPEN_FAILURE 1 -#define CHECKSUM_MAP_FAILURE 2 -#define CHECKSUM_MAPVIEW_FAILURE 3 -#define CHECKSUM_UNICODE_FAILURE 4 -#define IMAGE_SEPARATION 65536 -#define SPLITSYM_REMOVE_PRIVATE 1 -#define SPLITSYM_EXTRACT_ALL 2 -#define SPLITSYM_SYMBOLPATH_IS_SRC 4 -#define SYMF_OMAP_GENERATED 1 -#define SYMF_OMAP_MODIFIED 2 -#define SYMOPT_CASE_INSENSITIVE 1 -#define SYMOPT_UNDNAME 2 -#define SYMOPT_DEFERRED_LOADS 4 -#define SYMOPT_NO_CPP 8 -#define SYMOPT_LOAD_LINES 16 -#define SYMOPT_OMAP_FIND_NEAREST 32 -#define UNDNAME_COMPLETE 0 -#define UNDNAME_NO_LEADING_UNDERSCORES 1 -#define UNDNAME_NO_MS_KEYWORDS 2 -#define UNDNAME_NO_FUNCTION_RETURNS 4 -#define UNDNAME_NO_ALLOCATION_MODEL 8 -#define UNDNAME_NO_ALLOCATION_LANGUAGE 16 -#define UNDNAME_NO_MS_THISTYPE 32 -#define UNDNAME_NO_CV_THISTYPE 64 -#define UNDNAME_NO_THISTYPE 96 -#define UNDNAME_NO_ACCESS_SPECIFIERS 128 -#define UNDNAME_NO_THROW_SIGNATURES 256 -#define UNDNAME_NO_MEMBER_TYPE 512 -#define UNDNAME_NO_RETURN_UDT_MODEL 1024 -#define UNDNAME_32_BIT_DECODE 2048 -#define UNDNAME_NAME_ONLY 4096 -#define UNDNAME_NO_ARGUMENTS 8192 -#define UNDNAME_NO_SPECIAL_SYMS 16384 - -#define _IMAGEHLPAPI DECLSPEC_IMPORT WINAPI - -#ifndef RC_INVOKED - -typedef enum _IMAGEHLP_STATUS_REASON { - BindOutOfMemory, - BindRvaToVaFailed, - BindNoRoomInImage, - BindImportModuleFailed, - BindImportProcedureFailed, - BindImportModule, - BindImportProcedure, - BindForwarder, - BindForwarderNOT, - BindImageModified, - BindExpandFileHeaders, - BindImageComplete, - BindMismatchedSymbols, - BindSymbolsNotUpdated -} IMAGEHLP_STATUS_REASON; -typedef BOOL(STDCALL*PIMAGEHLP_STATUS_ROUTINE)(IMAGEHLP_STATUS_REASON,LPSTR,LPSTR,ULONG,ULONG); -typedef struct _LOADED_IMAGE { - LPSTR ModuleName; - HANDLE hFile; - PUCHAR MappedAddress; - PIMAGE_NT_HEADERS FileHeader; - PIMAGE_SECTION_HEADER LastRvaSection; - ULONG NumberOfSections; - PIMAGE_SECTION_HEADER Sections; - ULONG Characteristics; - BOOLEAN fSystemImage; - BOOLEAN fDOSImage; - LIST_ENTRY Links; - ULONG SizeOfImage; -} LOADED_IMAGE,*PLOADED_IMAGE; -typedef struct _IMAGE_DEBUG_INFORMATION { - LIST_ENTRY List; - DWORD Size; - PVOID MappedBase; - USHORT Machine; - USHORT Characteristics; - DWORD CheckSum; - DWORD ImageBase; - DWORD SizeOfImage; - DWORD NumberOfSections; - PIMAGE_SECTION_HEADER Sections; - DWORD ExportedNamesSize; - LPSTR ExportedNames; - DWORD NumberOfFunctionTableEntries; - PIMAGE_FUNCTION_ENTRY FunctionTableEntries; - DWORD LowestFunctionStartingAddress; - DWORD HighestFunctionEndingAddress; - DWORD NumberOfFpoTableEntries; - PFPO_DATA FpoTableEntries; - DWORD SizeOfCoffSymbols; - PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols; - DWORD SizeOfCodeViewSymbols; - PVOID CodeViewSymbols; - LPSTR ImageFilePath; - LPSTR ImageFileName; - LPSTR DebugFilePath; - DWORD TimeDateStamp; - BOOL RomImage; - PIMAGE_DEBUG_DIRECTORY DebugDirectory; - DWORD NumberOfDebugDirectories; - DWORD Reserved[3]; -} IMAGE_DEBUG_INFORMATION,*PIMAGE_DEBUG_INFORMATION; -typedef enum { - AddrMode1616, - AddrMode1632, - AddrModeReal, - AddrModeFlat -} ADDRESS_MODE; -typedef struct _tagADDRESS { - DWORD Offset; - WORD Segment; - ADDRESS_MODE Mode; -} ADDRESS,*LPADDRESS; -typedef struct _KDHELP { - DWORD Thread; - DWORD ThCallbackStack; - DWORD NextCallback; - DWORD FramePointer; - DWORD KiCallUserMode; - DWORD KeUserCallbackDispatcher; - DWORD SystemRangeStart; -} KDHELP,*PKDHELP; -typedef struct _tagSTACKFRAME { - ADDRESS AddrPC; - ADDRESS AddrReturn; - ADDRESS AddrFrame; - ADDRESS AddrStack; - LPVOID FuncTableEntry; - DWORD Params[4]; - BOOL Far; - BOOL Virtual; - DWORD Reserved[3]; - KDHELP KdHelp; -} STACKFRAME,*LPSTACKFRAME; -typedef BOOL(STDCALL*PREAD_PROCESS_MEMORY_ROUTINE)(HANDLE ,LPCVOID,LPVOID,DWORD,LPDWORD); -typedef LPVOID(STDCALL*PFUNCTION_TABLE_ACCESS_ROUTINE)(HANDLE,DWORD); -typedef DWORD(STDCALL*PGET_MODULE_BASE_ROUTINE)(HANDLE,DWORD); -typedef DWORD(STDCALL*PTRANSLATE_ADDRESS_ROUTINE)(HANDLE,HANDLE,LPADDRESS); -typedef struct API_VERSION { - USHORT MajorVersion; - USHORT MinorVersion; - USHORT Revision; - USHORT Reserved; -} API_VERSION,*LPAPI_VERSION; -typedef BOOL(CALLBACK*PSYM_ENUMMODULES_CALLBACK)(LPSTR,ULONG,PVOID); -typedef BOOL(CALLBACK*PSYM_ENUMSYMBOLS_CALLBACK)(LPSTR,ULONG,ULONG,PVOID); -typedef BOOL(CALLBACK*PENUMLOADED_MODULES_CALLBACK)(LPSTR,ULONG,ULONG,PVOID); -typedef BOOL(CALLBACK*PSYMBOL_REGISTERED_CALLBACK)(HANDLE,ULONG,PVOID,PVOID); -typedef enum { - SymNone, - SymCoff, - SymCv, - SymPdb, - SymExport, - SymDeferred, - SymSym -} SYM_TYPE; -typedef struct _IMAGEHLP_SYMBOL { - DWORD SizeOfStruct; - DWORD Address; - DWORD Size; - DWORD Flags; - DWORD MaxNameLength; - CHAR Name[1]; -} IMAGEHLP_SYMBOL,*PIMAGEHLP_SYMBOL; -typedef struct _IMAGEHLP_MODULE { - DWORD SizeOfStruct; - DWORD BaseOfImage; - DWORD ImageSize; - DWORD TimeDateStamp; - DWORD CheckSum; - DWORD NumSyms; - SYM_TYPE SymType; - CHAR ModuleName[32]; - CHAR ImageName[256]; - CHAR LoadedImageName[256]; -} IMAGEHLP_MODULE,*PIMAGEHLP_MODULE; -typedef struct _IMAGEHLP_LINE { - DWORD SizeOfStruct; - DWORD Key; - DWORD LineNumber; - PCHAR FileName; - DWORD Address; -} IMAGEHLP_LINE,*PIMAGEHLP_LINE; -typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD { - DWORD SizeOfStruct; - DWORD BaseOfImage; - DWORD CheckSum; - DWORD TimeDateStamp; - CHAR FileName[MAX_PATH]; - BOOLEAN Reparse; -} IMAGEHLP_DEFERRED_SYMBOL_LOAD,*PIMAGEHLP_DEFERRED_SYMBOL_LOAD; -typedef struct _IMAGEHLP_DUPLICATE_SYMBOL { - DWORD SizeOfStruct; - DWORD NumberOfDups; - PIMAGEHLP_SYMBOL Symbol; - ULONG SelectedSymbol; -} IMAGEHLP_DUPLICATE_SYMBOL,*PIMAGEHLP_DUPLICATE_SYMBOL; -typedef PVOID DIGEST_HANDLE; -typedef BOOL(WINAPI*DIGEST_FUNCTION)(DIGEST_HANDLE refdata,PBYTE pData,DWORD dwLength); - -PIMAGE_NT_HEADERS _IMAGEHLPAPI CheckSumMappedFile(LPVOID,DWORD,LPDWORD,LPDWORD); -DWORD _IMAGEHLPAPI MapFileAndCheckSumA(LPSTR,LPDWORD,LPDWORD); -DWORD _IMAGEHLPAPI MapFileAndCheckSumW(PWSTR,LPDWORD,LPDWORD); -BOOL _IMAGEHLPAPI TouchFileTimes(HANDLE,LPSYSTEMTIME); -BOOL _IMAGEHLPAPI SplitSymbols(LPSTR,LPSTR,LPSTR,DWORD); -HANDLE _IMAGEHLPAPI FindDebugInfoFile(LPSTR,LPSTR,LPSTR); -HANDLE _IMAGEHLPAPI FindExecutableImage(LPSTR,LPSTR,LPSTR); -BOOL _IMAGEHLPAPI UpdateDebugInfoFile(LPSTR,LPSTR,LPSTR,PIMAGE_NT_HEADERS); -BOOL _IMAGEHLPAPI UpdateDebugInfoFileEx(LPSTR,LPSTR,LPSTR,PIMAGE_NT_HEADERS,DWORD); -BOOL _IMAGEHLPAPI BindImage(IN LPSTR,IN LPSTR,IN LPSTR); -BOOL _IMAGEHLPAPI BindImageEx(IN DWORD,IN LPSTR,IN LPSTR,IN LPSTR,IN PIMAGEHLP_STATUS_ROUTINE); -BOOL _IMAGEHLPAPI ReBaseImage(IN LPSTR,IN LPSTR,IN BOOL, IN BOOL,IN BOOL, IN ULONG, OUT ULONG*, OUT ULONG*, OUT ULONG*, IN OUT ULONG*, IN ULONG); - -PLOADED_IMAGE _IMAGEHLPAPI ImageLoad(LPSTR,LPSTR); -BOOL _IMAGEHLPAPI ImageUnload(PLOADED_IMAGE); -PIMAGE_NT_HEADERS _IMAGEHLPAPI ImageNtHeader(IN PVOID); -PVOID _IMAGEHLPAPI ImageDirectoryEntryToData(IN PVOID,IN BOOLEAN,IN USHORT,OUT PULONG); -PIMAGE_SECTION_HEADER _IMAGEHLPAPI ImageRvaToSection(IN PIMAGE_NT_HEADERS,IN PVOID,IN ULONG); -PVOID _IMAGEHLPAPI ImageRvaToVa(IN PIMAGE_NT_HEADERS,IN PVOID,IN ULONG,IN OUT PIMAGE_SECTION_HEADER*); -BOOL _IMAGEHLPAPI MapAndLoad(LPSTR,LPSTR,PLOADED_IMAGE,BOOL,BOOL); -BOOL _IMAGEHLPAPI GetImageConfigInformation(PLOADED_IMAGE,PIMAGE_LOAD_CONFIG_DIRECTORY); -DWORD _IMAGEHLPAPI GetImageUnusedHeaderBytes(PLOADED_IMAGE,LPDWORD); -BOOL _IMAGEHLPAPI SetImageConfigInformation(PLOADED_IMAGE,PIMAGE_LOAD_CONFIG_DIRECTORY); -BOOL _IMAGEHLPAPI UnMapAndLoad(PLOADED_IMAGE); -PIMAGE_DEBUG_INFORMATION _IMAGEHLPAPI MapDebugInformation(HANDLE,LPSTR,LPSTR,DWORD); -BOOL _IMAGEHLPAPI UnmapDebugInformation(PIMAGE_DEBUG_INFORMATION); -HANDLE _IMAGEHLPAPI FindExecutableImage(LPSTR,LPSTR,LPSTR); -BOOL _IMAGEHLPAPI SearchTreeForFile(LPSTR,LPSTR,LPSTR); -BOOL _IMAGEHLPAPI MakeSureDirectoryPathExists(LPCSTR); -DWORD _IMAGEHLPAPI WINAPI UnDecorateSymbolName(LPCSTR,LPSTR,DWORD, DWORD); -BOOL -_IMAGEHLPAPI -StackWalk(DWORD,HANDLE,HANDLE,LPSTACKFRAME,LPVOID,PREAD_PROCESS_MEMORY_ROUTINE,PFUNCTION_TABLE_ACCESS_ROUTINE,PGET_MODULE_BASE_ROUTINE,PTRANSLATE_ADDRESS_ROUTINE); -LPAPI_VERSION _IMAGEHLPAPI ImagehlpApiVersion(VOID); -LPAPI_VERSION _IMAGEHLPAPI ImagehlpApiVersionEx(LPAPI_VERSION); -DWORD _IMAGEHLPAPI GetTimestampForLoadedLibrary(HMODULE); -BOOL _IMAGEHLPAPI RemovePrivateCvSymbolic(PCHAR,PCHAR*,ULONG*); -VOID _IMAGEHLPAPI RemoveRelocations(PCHAR); -DWORD _IMAGEHLPAPI SymSetOptions(IN DWORD); -DWORD _IMAGEHLPAPI SymGetOptions(VOID); -BOOL _IMAGEHLPAPI SymCleanup(IN HANDLE); -BOOL _IMAGEHLPAPI SymEnumerateModules(IN HANDLE,IN PSYM_ENUMMODULES_CALLBACK,IN PVOID); -BOOL _IMAGEHLPAPI SymEnumerateSymbols(IN HANDLE,IN DWORD,IN PSYM_ENUMSYMBOLS_CALLBACK,IN PVOID); -BOOL _IMAGEHLPAPI EnumerateLoadedModules(IN HANDLE,IN PENUMLOADED_MODULES_CALLBACK,IN PVOID); -LPVOID _IMAGEHLPAPI SymFunctionTableAccess(HANDLE,DWORD); -BOOL _IMAGEHLPAPI SymGetModuleInfo(IN HANDLE,IN DWORD,OUT PIMAGEHLP_MODULE); -DWORD _IMAGEHLPAPI SymGetModuleBase(IN HANDLE,IN DWORD); -BOOL _IMAGEHLPAPI SymGetSymFromAddr(IN HANDLE,IN DWORD,OUT PDWORD,OUT PIMAGEHLP_SYMBOL); -BOOL _IMAGEHLPAPI SymGetSymFromName(IN HANDLE,IN LPSTR,OUT PIMAGEHLP_SYMBOL); -BOOL _IMAGEHLPAPI SymGetSymNext(IN HANDLE,IN OUT PIMAGEHLP_SYMBOL); -BOOL _IMAGEHLPAPI SymGetSymPrev(IN HANDLE,IN OUT PIMAGEHLP_SYMBOL); -BOOL _IMAGEHLPAPI SymGetLineFromAddr(IN HANDLE,IN DWORD,OUT PDWORD,OUT PIMAGEHLP_LINE); -BOOL _IMAGEHLPAPI SymGetLineFromName(IN HANDLE,IN LPSTR,IN LPSTR,IN DWORD,OUT PLONG,IN OUT PIMAGEHLP_LINE); -BOOL _IMAGEHLPAPI SymGetLineNext(IN HANDLE,IN OUT PIMAGEHLP_LINE); -BOOL _IMAGEHLPAPI SymGetLinePrev(IN HANDLE,IN OUT PIMAGEHLP_LINE); -BOOL _IMAGEHLPAPI SymMatchFileName(IN LPSTR,IN LPSTR,OUT LPSTR*,OUT LPSTR*); -BOOL _IMAGEHLPAPI SymInitialize(IN HANDLE,IN LPSTR,IN BOOL); -BOOL _IMAGEHLPAPI SymGetSearchPath(IN HANDLE,OUT LPSTR,IN DWORD); -BOOL _IMAGEHLPAPI SymSetSearchPath(IN HANDLE,IN LPSTR); -BOOL _IMAGEHLPAPI SymLoadModule(IN HANDLE,IN HANDLE,IN PSTR,IN PSTR,IN DWORD,IN DWORD); -BOOL _IMAGEHLPAPI SymUnloadModule(IN HANDLE,IN DWORD); -BOOL _IMAGEHLPAPI SymUnDName(IN PIMAGEHLP_SYMBOL,OUT LPSTR,IN DWORD); -BOOL _IMAGEHLPAPI SymRegisterCallback(IN HANDLE,IN PSYMBOL_REGISTERED_CALLBACK,IN PVOID); -BOOL _IMAGEHLPAPI ImageGetDigestStream(IN HANDLE,IN DWORD,IN DIGEST_FUNCTION,IN DIGEST_HANDLE); -BOOL _IMAGEHLPAPI ImageAddCertificate(IN HANDLE,IN LPWIN_CERTIFICATE,OUT PDWORD); -BOOL _IMAGEHLPAPI ImageRemoveCertificate(IN HANDLE,IN DWORD); -BOOL _IMAGEHLPAPI ImageEnumerateCertificates(IN HANDLE,IN WORD,OUT PDWORD,IN OUT PDWORD OPTIONAL,IN OUT DWORD OPTIONAL); -BOOL _IMAGEHLPAPI ImageGetCertificateData(IN HANDLE,IN DWORD,OUT LPWIN_CERTIFICATE,IN OUT PDWORD); -BOOL _IMAGEHLPAPI ImageGetCertificateHeader(IN HANDLE,IN DWORD,IN OUT LPWIN_CERTIFICATE); -BOOL _IMAGEHLPAPI CopyPdb(CHAR const*,CHAR const*,BOOL); -BOOL _IMAGEHLPAPI RemovePrivateCvSymbolicEx(PCHAR,ULONG,PCHAR*,ULONG*); - -#endif /* RC_INVOKED */ - -#ifdef UNICODE -#define MapFileAndCheckSum MapFileAndCheckSumW -#else -#define MapFileAndCheckSum MapFileAndCheckSumA -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _IMAGEHLP_H */ - diff --git a/winsup/w32api/include/imm.h b/winsup/w32api/include/imm.h deleted file mode 100644 index 30d97013c..000000000 --- a/winsup/w32api/include/imm.h +++ /dev/null @@ -1,420 +0,0 @@ -#ifndef _IMM_H -#define _IMM_H -#ifdef __cplusplus -extern "C" { -#endif -#define WM_CONVERTREQUESTEX 0x108 -#define WM_IME_STARTCOMPOSITION 0x10D -#define WM_IME_ENDCOMPOSITION 0x10E -#define WM_IME_COMPOSITION 0x10F -#define WM_IME_KEYLAST 0x10F -#define WM_IME_SETCONTEXT 0x281 -#define WM_IME_NOTIFY 0x282 -#define WM_IME_CONTROL 0x283 -#define WM_IME_COMPOSITIONFULL 0x284 -#define WM_IME_SELECT 0x285 -#define WM_IME_CHAR 0x286 -#define WM_IME_KEYDOWN 0x290 -#define WM_IME_KEYUP 0x291 -#define IMC_GETCANDIDATEPOS 7 -#define IMC_SETCANDIDATEPOS 8 -#define IMC_GETCOMPOSITIONFONT 9 -#define IMC_SETCOMPOSITIONFONT 10 -#define IMC_GETCOMPOSITIONWINDOW 11 -#define IMC_SETCOMPOSITIONWINDOW 12 -#define IMC_GETSTATUSWINDOWPOS 15 -#define IMC_SETSTATUSWINDOWPOS 16 -#define IMC_CLOSESTATUSWINDOW 0x21 -#define IMC_OPENSTATUSWINDOW 0x22 -#define IMN_CLOSESTATUSWINDOW 1 -#define IMN_OPENSTATUSWINDOW 2 -#define IMN_CHANGECANDIDATE 3 -#define IMN_CLOSECANDIDATE 4 -#define IMN_OPENCANDIDATE 5 -#define IMN_SETCONVERSIONMODE 6 -#define IMN_SETSENTENCEMODE 7 -#define IMN_SETOPENSTATUS 8 -#define IMN_SETCANDIDATEPOS 9 -#define IMN_SETCOMPOSITIONFONT 10 -#define IMN_SETCOMPOSITIONWINDOW 11 -#define IMN_SETSTATUSWINDOWPOS 12 -#define IMN_GUIDELINE 13 -#define IMN_PRIVATE 14 -#define NI_OPENCANDIDATE 16 -#define NI_CLOSECANDIDATE 17 -#define NI_SELECTCANDIDATESTR 18 -#define NI_CHANGECANDIDATELIST 19 -#define NI_FINALIZECONVERSIONRESULT 20 -#define NI_COMPOSITIONSTR 21 -#define NI_SETCANDIDATE_PAGESTART 22 -#define NI_SETCANDIDATE_PAGESIZE 23 -#define NI_IMEMENUSELECTED 24 -#define ISC_SHOWUICANDIDATEWINDOW 1 -#define ISC_SHOWUICOMPOSITIONWINDOW 0x80000000 -#define ISC_SHOWUIGUIDELINE 0x40000000 -#define ISC_SHOWUIALLCANDIDATEWINDOW 15 -#define ISC_SHOWUIALL 0xC000000F -#define CPS_COMPLETE 1 -#define CPS_CONVERT 2 -#define CPS_REVERT 3 -#define CPS_CANCEL 4 -#define IME_CHOTKEY_IME_NONIME_TOGGLE 16 -#define IME_CHOTKEY_SHAPE_TOGGLE 17 -#define IME_CHOTKEY_SYMBOL_TOGGLE 18 -#define IME_JHOTKEY_CLOSE_OPEN 0x30 -#define IME_KHOTKEY_SHAPE_TOGGLE 0x50 -#define IME_KHOTKEY_HANJACONVERT 0x51 -#define IME_KHOTKEY_ENGLISH 0x52 -#define IME_THOTKEY_IME_NONIME_TOGGLE 0x70 -#define IME_THOTKEY_SHAPE_TOGGLE 0x71 -#define IME_THOTKEY_SYMBOL_TOGGLE 0x72 -#define IME_HOTKEY_DSWITCH_FIRST 256 -#define IME_HOTKEY_DSWITCH_LAST 0x11F -#define IME_ITHOTKEY_RESEND_RESULTSTR 512 -#define IME_ITHOTKEY_PREVIOUS_COMPOSITION 513 -#define IME_ITHOTKEY_UISTYLE_TOGGLE 514 -#define GCS_COMPREADSTR 1 -#define GCS_COMPREADATTR 2 -#define GCS_COMPREADCLAUSE 4 -#define GCS_COMPSTR 8 -#define GCS_COMPATTR 16 -#define GCS_COMPCLAUSE 32 -#define GCS_CURSORPOS 128 -#define GCS_DELTASTART 256 -#define GCS_RESULTREADSTR 512 -#define GCS_RESULTREADCLAUSE 1024 -#define GCS_RESULTSTR 2048 -#define GCS_RESULTCLAUSE 4096 -#define CS_INSERTCHAR 0x2000 -#define CS_NOMOVECARET 0x4000 -#define IMEVER_0310 0x3000A -#define IMEVER_0400 0x40000 -#define IME_PROP_AT_CARET 0x10000 -#define IME_PROP_SPECIAL_UI 0x20000 -#define IME_PROP_CANDLIST_START_FROM_1 0x40000 -#define IME_PROP_UNICODE 0x80000 -#define UI_CAP_2700 1 -#define UI_CAP_ROT90 2 -#define UI_CAP_ROTANY 4 -#define SCS_CAP_COMPSTR 1 -#define SCS_CAP_MAKEREAD 2 -#define SELECT_CAP_CONVERSION 1 -#define SELECT_CAP_SENTENCE 2 -#define GGL_LEVEL 1 -#define GGL_INDEX 2 -#define GGL_STRING 3 -#define GGL_PRIVATE 4 -#define GL_LEVEL_NOGUIDELINE 0 -#define GL_LEVEL_FATAL 1 -#define GL_LEVEL_ERROR 2 -#define GL_LEVEL_WARNING 3 -#define GL_LEVEL_INFORMATION 4 -#define GL_ID_UNKNOWN 0 -#define GL_ID_NOMODULE 1 -#define GL_ID_NODICTIONARY 16 -#define GL_ID_CANNOTSAVE 17 -#define GL_ID_NOCONVERT 32 -#define GL_ID_TYPINGERROR 33 -#define GL_ID_TOOMANYSTROKE 34 -#define GL_ID_READINGCONFLICT 35 -#define GL_ID_INPUTREADING 36 -#define GL_ID_INPUTRADICAL 37 -#define GL_ID_INPUTCODE 38 -#define GL_ID_INPUTSYMBOL 39 -#define GL_ID_CHOOSECANDIDATE 40 -#define GL_ID_REVERSECONVERSION 41 -#define GL_ID_PRIVATE_FIRST 0x8000 -#define GL_ID_PRIVATE_LAST 0xFFFF -#define IGP_GETIMEVERSION (DWORD)(-4) -#define IGP_PROPERTY 4 -#define IGP_CONVERSION 8 -#define IGP_SENTENCE 12 -#define IGP_UI 16 -#define IGP_SETCOMPSTR 0x14 -#define IGP_SELECT 0x18 -#define SCS_SETSTR (GCS_COMPREADSTR|GCS_COMPSTR) -#define SCS_CHANGEATTR (GCS_COMPREADATTR|GCS_COMPATTR) -#define SCS_CHANGECLAUSE (GCS_COMPREADCLAUSE|GCS_COMPCLAUSE) -#define ATTR_INPUT 0 -#define ATTR_TARGET_CONVERTED 1 -#define ATTR_CONVERTED 2 -#define ATTR_TARGET_NOTCONVERTED 3 -#define ATTR_INPUT_ERROR 4 -#define ATTR_FIXEDCONVERTED 5 -#define CFS_DEFAULT 0 -#define CFS_RECT 1 -#define CFS_POINT 2 -#define CFS_SCREEN 4 -#define CFS_FORCE_POSITION 32 -#define CFS_CANDIDATEPOS 64 -#define CFS_EXCLUDE 128 -#define GCL_CONVERSION 1 -#define GCL_REVERSECONVERSION 2 -#define GCL_REVERSE_LENGTH 3 -#define IME_CMODE_ALPHANUMERIC 0 -#define IME_CMODE_NATIVE 1 -#define IME_CMODE_CHINESE IME_CMODE_NATIVE -#define IME_CMODE_HANGEUL IME_CMODE_NATIVE -#define IME_CMODE_HANGUL IME_CMODE_NATIVE -#define IME_CMODE_JAPANESE IME_CMODE_NATIVE -#define IME_CMODE_KATAKANA 2 -#define IME_CMODE_LANGUAGE 3 -#define IME_CMODE_FULLSHAPE 8 -#define IME_CMODE_ROMAN 16 -#define IME_CMODE_CHARCODE 32 -#define IME_CMODE_HANJACONVERT 64 -#define IME_CMODE_SOFTKBD 128 -#define IME_CMODE_NOCONVERSION 256 -#define IME_CMODE_EUDC 512 -#define IME_CMODE_SYMBOL 1024 -#define IME_CMODE_FIXED 2048 -#define IME_SMODE_NONE 0 -#define IME_SMODE_PLAURALCLAUSE 1 -#define IME_SMODE_SINGLECONVERT 2 -#define IME_SMODE_AUTOMATIC 4 -#define IME_SMODE_PHRASEPREDICT 8 -#define IME_CAND_UNKNOWN 0 -#define IME_CAND_READ 1 -#define IME_CAND_CODE 2 -#define IME_CAND_MEANING 3 -#define IME_CAND_RADICAL 4 -#define IME_CAND_STROKE 5 -#define IMM_ERROR_NODATA (-1) -#define IMM_ERROR_GENERAL (-2) -#define IME_CONFIG_GENERAL 1 -#define IME_CONFIG_REGISTERWORD 2 -#define IME_CONFIG_SELECTDICTIONARY 3 -#define IME_ESC_QUERY_SUPPORT 3 -#define IME_ESC_RESERVED_FIRST 4 -#define IME_ESC_RESERVED_LAST 0x7FF -#define IME_ESC_PRIVATE_FIRST 0x800 -#define IME_ESC_PRIVATE_LAST 0xFFF -#define IME_ESC_SEQUENCE_TO_INTERNAL 0x1001 -#define IME_ESC_GET_EUDC_DICTIONARY 0x1003 -#define IME_ESC_SET_EUDC_DICTIONARY 0x1004 -#define IME_ESC_MAX_KEY 0x1005 -#define IME_ESC_IME_NAME 0x1006 -#define IME_ESC_SYNC_HOTKEY 0x1007 -#define IME_ESC_HANJA_MODE 0x1008 -#define IME_ESC_AUTOMATA 0x1009 -#define IME_REGWORD_STYLE_EUDC 1 -#define IME_REGWORD_STYLE_USER_FIRST 0x80000000 -#define IME_REGWORD_STYLE_USER_LAST 0xFFFFFFFF -#define SOFTKEYBOARD_TYPE_T1 1 -#define SOFTKEYBOARD_TYPE_C1 2 -#define IMEMENUITEM_STRING_SIZE 80 -#define MOD_ALT 1 -#define MOD_CONTROL 2 -#define MOD_SHIFT 4 -#define MOD_WIN 8 -#define MOD_IGNORE_ALL_MODIFIER 1024 -#define MOD_ON_KEYUP 2048 -#define MOD_RIGHT 16384 -#define MOD_LEFT 32768 -#define IACE_CHILDREN 1 -#define IACE_DEFAULT 16 -#define IACE_IGNORENOCONTEXT 32 -#define IGIMIF_RIGHTMENU 1 -#define IGIMII_CMODE 1 -#define IGIMII_SMODE 2 -#define IGIMII_CONFIGURE 4 -#define IGIMII_TOOLS 8 -#define IGIMII_HELP 16 -#define IGIMII_OTHER 32 -#define IGIMII_INPUTTOOLS 64 -#define IMFT_RADIOCHECK 1 -#define IMFT_SEPARATOR 2 -#define IMFT_SUBMENU 4 -#define IMFS_GRAYED MFS_GRAYED -#define IMFS_DISABLED MFS_DISABLED -#define IMFS_CHECKED MFS_CHECKED -#define IMFS_HILITE MFS_HILITE -#define IMFS_ENABLED MFS_ENABLED -#define IMFS_UNCHECKED MFS_UNCHECKED -#define IMFS_UNHILITE MFS_UNHILITE -#define IMFS_DEFAULT MFS_DEFAULT -#ifndef VK_PROCESSKEY -#define VK_PROCESSKEY 0x0E5 -#endif -#define STYLE_DESCRIPTION_SIZE 32 -typedef DWORD HIMC; -typedef DWORD HIMCC; -typedef HKL *LPHKL; -typedef struct tagCOMPOSITIONFORM { - DWORD dwStyle; - POINT ptCurrentPos; - RECT rcArea; -} COMPOSITIONFORM,*PCOMPOSITIONFORM,*LPCOMPOSITIONFORM; -typedef struct tagCANDIDATEFORM { - DWORD dwIndex; - DWORD dwStyle; - POINT ptCurrentPos; - RECT rcArea; -} CANDIDATEFORM,*PCANDIDATEFORM,*LPCANDIDATEFORM; -typedef struct tagCANDIDATELIST { - DWORD dwSize; - DWORD dwStyle; - DWORD dwCount; - DWORD dwSelection; - DWORD dwPageStart; - DWORD dwPageSize; - DWORD dwOffset[1]; -} CANDIDATELIST,*PCANDIDATELIST,*LPCANDIDATELIST; -typedef struct tagREGISTERWORDA { - LPSTR lpReading; - LPSTR lpWord; -} REGISTERWORDA,*PREGISTERWORDA,*LPREGISTERWORDA; -typedef struct tagREGISTERWORDW { - LPWSTR lpReading; - LPWSTR lpWord; -} REGISTERWORDW,*PREGISTERWORDW,*LPREGISTERWORDW; -typedef struct tagSTYLEBUFA { - DWORD dwStyle; - CHAR szDescription[STYLE_DESCRIPTION_SIZE]; -} STYLEBUFA,*PSTYLEBUFA,*LPSTYLEBUFA; -typedef struct tagSTYLEBUFW { - DWORD dwStyle; - WCHAR szDescription[STYLE_DESCRIPTION_SIZE]; -} STYLEBUFW,*PSTYLEBUFW,*LPSTYLEBUFW; -typedef struct tagIMEMENUITEMINFOA { - UINT cbSize; - UINT fType; - UINT fState; - UINT wID; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - CHAR szString[IMEMENUITEM_STRING_SIZE]; - HBITMAP hbmpItem; -} IMEMENUITEMINFOA,*PIMEMENUITEMINFOA,*LPIMEMENUITEMINFOA; -typedef struct tagIMEMENUITEMINFOW { - UINT cbSize; - UINT fType; - UINT fState; - UINT wID; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - WCHAR szString[IMEMENUITEM_STRING_SIZE]; - HBITMAP hbmpItem; -} IMEMENUITEMINFOW,*PIMEMENUITEMINFOW,*LPIMEMENUITEMINFOW; -typedef int (CALLBACK *REGISTERWORDENUMPROCA)(LPCSTR, DWORD, LPCSTR, LPVOID); -typedef int (CALLBACK *REGISTERWORDENUMPROCW)(LPCWSTR, DWORD, LPCWSTR, LPVOID); -#ifdef UNICODE -#define REGISTERWORDENUMPROC REGISTERWORDENUMPROCW -typedef REGISTERWORDW REGISTERWORD,*PREGISTERWORD,*LPREGISTERWORD; -typedef STYLEBUFW STYLEBUF,*PSTYLEBUF,*LPSTYLEBUF; -typedef IMEMENUITEMINFOW IMEMENUITEMINFO,*PIMEMENUITEMINFO,*LPIMEMENUITEMINFO; -#else -#define REGISTERWORDENUMPROC REGISTERWORDENUMPROCA -typedef REGISTERWORDA REGISTERWORD,*PREGISTERWORD,*LPREGISTERWORD; -typedef STYLEBUFA STYLEBUF,*PSTYLEBUF,*LPSTYLEBUF; -typedef IMEMENUITEMINFOA IMEMENUITEMINFO,*PIMEMENUITEMINFO,*LPIMEMENUITEMINFO; -#endif -HKL WINAPI ImmInstallIMEA(LPCSTR,LPCSTR); -HKL WINAPI ImmInstallIMEW(LPCWSTR,LPCWSTR); -HWND WINAPI ImmGetDefaultIMEWnd(HWND); -UINT WINAPI ImmGetDescriptionA(HKL,LPSTR,UINT); -UINT WINAPI ImmGetDescriptionW(HKL,LPWSTR,UINT); -UINT WINAPI ImmGetIMEFileNameA(HKL,LPSTR,UINT); -UINT WINAPI ImmGetIMEFileNameW(HKL,LPWSTR,UINT); -DWORD WINAPI ImmGetProperty(HKL,DWORD); -BOOL WINAPI ImmIsIME(HKL); -BOOL WINAPI ImmSimulateHotKey(HWND,DWORD); -HIMC WINAPI ImmCreateContext(void); -BOOL WINAPI ImmDestroyContext(HIMC); -HIMC WINAPI ImmGetContext(HWND); -BOOL WINAPI ImmReleaseContext(HWND,HIMC); -HIMC WINAPI ImmAssociateContext(HWND,HIMC); -LONG WINAPI ImmGetCompositionStringA(HIMC,DWORD,PVOID,DWORD); -LONG WINAPI ImmGetCompositionStringW(HIMC,DWORD,PVOID,DWORD); -BOOL WINAPI ImmSetCompositionStringA(HIMC,DWORD,PCVOID,DWORD,PCVOID,DWORD); -BOOL WINAPI ImmSetCompositionStringW(HIMC,DWORD,PCVOID,DWORD,PCVOID,DWORD); -DWORD WINAPI ImmGetCandidateListCountA(HIMC,PDWORD); -DWORD WINAPI ImmGetCandidateListCountW(HIMC,PDWORD); -DWORD WINAPI ImmGetCandidateListA(HIMC,DWORD,PCANDIDATELIST,DWORD); -DWORD WINAPI ImmGetCandidateListW(HIMC,DWORD,PCANDIDATELIST,DWORD); -DWORD WINAPI ImmGetGuideLineA(HIMC,DWORD,LPSTR,DWORD); -DWORD WINAPI ImmGetGuideLineW(HIMC,DWORD,LPWSTR,DWORD); -BOOL WINAPI ImmGetConversionStatus(HIMC,LPDWORD,PDWORD); -BOOL WINAPI ImmSetConversionStatus(HIMC,DWORD,DWORD); -BOOL WINAPI ImmGetOpenStatus(HIMC); -BOOL WINAPI ImmSetOpenStatus(HIMC,BOOL); -BOOL WINAPI ImmGetCompositionFontA(HIMC,LPLOGFONTA); -BOOL WINAPI ImmGetCompositionFontW(HIMC,LPLOGFONTW); -BOOL WINAPI ImmSetCompositionFontA(HIMC,LPLOGFONTA); -BOOL WINAPI ImmSetCompositionFontW(HIMC,LPLOGFONTW); -BOOL WINAPI ImmConfigureIMEA(HKL,HWND,DWORD,PVOID); -BOOL WINAPI ImmConfigureIMEW(HKL,HWND,DWORD,PVOID); -LRESULT WINAPI ImmEscapeA(HKL,HIMC,UINT,PVOID); -LRESULT WINAPI ImmEscapeW(HKL,HIMC,UINT,PVOID); -DWORD WINAPI ImmGetConversionListA(HKL,HIMC,LPCSTR,PCANDIDATELIST,DWORD,UINT); -DWORD WINAPI ImmGetConversionListW(HKL,HIMC,LPCWSTR,PCANDIDATELIST,DWORD,UINT); -BOOL WINAPI ImmNotifyIME(HIMC,DWORD,DWORD,DWORD); -BOOL WINAPI ImmGetStatusWindowPos(HIMC,LPPOINT); -BOOL WINAPI ImmSetStatusWindowPos(HIMC,LPPOINT); -BOOL WINAPI ImmGetCompositionWindow(HIMC,PCOMPOSITIONFORM); -BOOL WINAPI ImmSetCompositionWindow(HIMC,PCOMPOSITIONFORM); -BOOL WINAPI ImmGetCandidateWindow(HIMC,DWORD,PCANDIDATEFORM); -BOOL WINAPI ImmSetCandidateWindow(HIMC,PCANDIDATEFORM); -BOOL WINAPI ImmIsUIMessageA(HWND,UINT,WPARAM,LPARAM); -BOOL WINAPI ImmIsUIMessageW(HWND,UINT,WPARAM,LPARAM); -UINT WINAPI ImmGetVirtualKey(HWND); -BOOL WINAPI ImmRegisterWordA(HKL,LPCSTR,DWORD,LPCSTR); -BOOL WINAPI ImmRegisterWordW(HKL,LPCWSTR,DWORD,LPCWSTR); -BOOL WINAPI ImmUnregisterWordA(HKL,LPCSTR,DWORD,LPCSTR); -BOOL WINAPI ImmUnregisterWordW(HKL,LPCWSTR,DWORD,LPCWSTR); -UINT WINAPI ImmGetRegisterWordStyleA(HKL,UINT,PSTYLEBUFA); -UINT WINAPI ImmGetRegisterWordStyleW(HKL,UINT,PSTYLEBUFW); -UINT WINAPI ImmEnumRegisterWordA(HKL,REGISTERWORDENUMPROCA,LPCSTR,DWORD,LPCSTR,PVOID); -UINT WINAPI ImmEnumRegisterWordW(HKL,REGISTERWORDENUMPROCW,LPCWSTR,DWORD,LPCWSTR,PVOID); -BOOL WINAPI EnableEUDC(BOOL); -BOOL WINAPI ImmDisableIME(DWORD); -DWORD WINAPI ImmGetImeMenuItemsA(HIMC,DWORD,DWORD,LPIMEMENUITEMINFOA,LPIMEMENUITEMINFOA,DWORD); -DWORD WINAPI ImmGetImeMenuItemsW(HIMC,DWORD,DWORD,LPIMEMENUITEMINFOW,LPIMEMENUITEMINFOW,DWORD); - -#ifdef UNICODE -#define ImmEnumRegisterWord ImmEnumRegisterWordW -#define ImmGetRegisterWordStyle ImmGetRegisterWordStyleW -#define ImmUnregisterWord ImmUnregisterWordW -#define ImmRegisterWord ImmRegisterWordW -#define ImmInstallIME ImmInstallIMEW -#define ImmIsUIMessage ImmIsUIMessageW -#define ImmGetConversionList ImmGetConversionListW -#define ImmEscape ImmEscapeW -#define ImmConfigureIME ImmConfigureIMEW -#define ImmSetCompositionFont ImmSetCompositionFontW -#define ImmGetCompositionFont ImmGetCompositionFontW -#define ImmGetGuideLine ImmGetGuideLineW -#define ImmGetCandidateList ImmGetCandidateListW -#define ImmGetCandidateListCount ImmGetCandidateListCountW -#define ImmSetCompositionString ImmSetCompositionStringW -#define ImmGetCompositionString ImmGetCompositionStringW -#define ImmGetDescription ImmGetDescriptionW -#define ImmGetIMEFileName ImmGetIMEFileNameW -#define ImmGetImeMenuItems ImmGetImeMenuItemsW -#else -#define ImmEnumRegisterWord ImmEnumRegisterWordA -#define ImmGetRegisterWordStyle ImmGetRegisterWordStyleA -#define ImmUnregisterWord ImmUnregisterWordA -#define ImmRegisterWord ImmRegisterWordA -#define ImmInstallIME ImmInstallIMEA -#define ImmIsUIMessage ImmIsUIMessageA -#define ImmGetConversionList ImmGetConversionListA -#define ImmEscape ImmEscapeA -#define ImmConfigureIME ImmConfigureIMEA -#define ImmSetCompositionFont ImmSetCompositionFontA -#define ImmGetCompositionFont ImmGetCompositionFontA -#define ImmGetGuideLine ImmGetGuideLineA -#define ImmGetCandidateList ImmGetCandidateListA -#define ImmGetCandidateListCount ImmGetCandidateListCountA -#define ImmSetCompositionString ImmSetCompositionStringA -#define ImmGetCompositionString ImmGetCompositionStringA -#define ImmGetDescription ImmGetDescriptionA -#define ImmGetIMEFileName ImmGetIMEFileNameA -#define ImmGetImeMenuItems ImmGetImeMenuItemsW -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/initguid.h b/winsup/w32api/include/initguid.h deleted file mode 100644 index 08092a299..000000000 --- a/winsup/w32api/include/initguid.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _INITGUID_H -#define _INITGUID_H -#ifndef DEFINE_GUID -#include -#endif -#undef DEFINE_GUID -#define DEFINE_GUID(n,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) const GUID n GUID_SECT = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} -#endif diff --git a/winsup/w32api/include/intshcut.h b/winsup/w32api/include/intshcut.h deleted file mode 100644 index a9d7ee008..000000000 --- a/winsup/w32api/include/intshcut.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef _INTSHCUT_H -#define _INTSHCUT_H -#include -#ifdef __cplusplus -extern "C" { -#endif -#define INTSHCUTAPI DECLSPEC_IMPORT -#define E_FLAGS MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1000) -#define IS_E_EXEC_FAILED MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x2002) -#define URL_E_INVALID_SYNTAX MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1001) -#define URL_E_UNREGISTERED_PROTOCOL MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1002) -typedef enum iurl_seturl_flags { - IURL_SETURL_FL_GUESS_PROTOCOL=1, - IURL_SETURL_FL_USE_DEFAULT_PROTOCOL, - ALL_IURL_SETURL_FLAGS=(IURL_SETURL_FL_GUESS_PROTOCOL|IURL_SETURL_FL_USE_DEFAULT_PROTOCOL) -} IURL_SETURL_FLAGS; -typedef enum iurl_invokecommand_flags { - IURL_INVOKECOMMAND_FL_ALLOW_UI=1, - IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB, - ALL_IURL_INVOKECOMMAND_FLAGS=(IURL_INVOKECOMMAND_FL_ALLOW_UI|IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB) -} IURL_INVOKECOMMAND_FLAGS; -typedef enum translateurl_in_flags { - TRANSLATEURL_FL_GUESS_PROTOCOL=1, - TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL, - ALL_TRANSLATEURL_FLAGS=(TRANSLATEURL_FL_GUESS_PROTOCOL|TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL) -} TRANSLATEURL_IN_FLAGS; -typedef enum urlassociationdialog_in_flags { - URLASSOCDLG_FL_USE_DEFAULT_NAME=1, - URLASSOCDLG_FL_REGISTER_ASSOC, - ALL_URLASSOCDLG_FLAGS=(URLASSOCDLG_FL_USE_DEFAULT_NAME|URLASSOCDLG_FL_REGISTER_ASSOC) -} URLASSOCIATIONDIALOG_IN_FLAGS; -typedef enum mimeassociationdialog_in_flags { - MIMEASSOCDLG_FL_REGISTER_ASSOC=1, - ALL_MIMEASSOCDLG_FLAGS=MIMEASSOCDLG_FL_REGISTER_ASSOC -} MIMEASSOCIATIONDIALOG_IN_FLAGS; -typedef struct urlinvokecommandinfo { - DWORD dwcbSize; - DWORD dwFlags; - HWND hwndParent; - PCSTR pcszVerb; -} URLINVOKECOMMANDINFO,*PURLINVOKECOMMANDINFO; -typedef const URLINVOKECOMMANDINFO CURLINVOKECOMMANDINFO; -typedef const URLINVOKECOMMANDINFO *PCURLINVOKECOMMANDINFO; -#undef INTERFACE -#define INTERFACE IUniformResourceLocator -DECLARE_INTERFACE_(IUniformResourceLocator,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(SetURL)(THIS_ PCSTR,DWORD) PURE; - STDMETHOD(GetURL)(THIS_ PSTR*) PURE; - STDMETHOD(InvokeCommand)(THIS_ PURLINVOKECOMMANDINFO) PURE; -}; -typedef IUniformResourceLocator *PIUniformResourceLocator; -typedef const IUniformResourceLocator CIUniformResourceLocator; -typedef const IUniformResourceLocator *PCIUniformResourceLocator; - -BOOL WINAPI InetIsOffline(DWORD); -HRESULT WINAPI MIMEAssociationDialogA(HWND,DWORD,PCSTR,PCSTR,PSTR,UINT); -HRESULT WINAPI MIMEAssociationDialogW(HWND,DWORD,PCWSTR,PCWSTR,PWSTR,UINT); -HRESULT WINAPI TranslateURLA(PCSTR,DWORD,PSTR*); -HRESULT WINAPI TranslateURLW(PCWSTR,DWORD,PWSTR*); -HRESULT WINAPI URLAssociationDialogA(HWND,DWORD,PCSTR,PCSTR,PSTR,UINT); -HRESULT WINAPI URLAssociationDialogW(HWND,DWORD,PCWSTR,PCWSTR,PWSTR,UINT); -#ifdef UNICODE -#define TranslateURL TranslateURLW -#define MIMEAssociationDialog MIMEAssociationDialogW -#define URLAssociationDialog URLAssociationDialogW -#else -#define TranslateURL TranslateURLA -#define MIMEAssociationDialog MIMEAssociationDialogA -#define URLAssociationDialog URLAssociationDialogA -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/ipexport.h b/winsup/w32api/include/ipexport.h deleted file mode 100644 index d2c755330..000000000 --- a/winsup/w32api/include/ipexport.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef _IPEXPORT_H -#define _IPEXPORT_H -#ifdef __cplusplus -extern "C" { -#endif -#ifndef ANY_SIZE -#define ANY_SIZE 1 -#endif -#define MAX_ADAPTER_NAME 128 -/* IP STATUS flags */ -#define IP_STATUS_BASE 11000 -#define IP_SUCCESS 0 -#define IP_BUF_TOO_SMALL (IP_STATUS_BASE + 1) -#define IP_DEST_NET_UNREACHABLE (IP_STATUS_BASE + 2) -#define IP_DEST_HOST_UNREACHABLE (IP_STATUS_BASE + 3) -#define IP_DEST_PROT_UNREACHABLE (IP_STATUS_BASE + 4) -#define IP_DEST_PORT_UNREACHABLE (IP_STATUS_BASE + 5) -#define IP_NO_RESOURCES (IP_STATUS_BASE + 6) -#define IP_BAD_OPTION (IP_STATUS_BASE + 7) -#define IP_HW_ERROR (IP_STATUS_BASE + 8) -#define IP_PACKET_TOO_BIG (IP_STATUS_BASE + 9) -#define IP_REQ_TIMED_OUT (IP_STATUS_BASE + 10) -#define IP_BAD_REQ (IP_STATUS_BASE + 11) -#define IP_BAD_ROUTE (IP_STATUS_BASE + 12) -#define IP_TTL_EXPIRED_TRANSIT (IP_STATUS_BASE + 13) -#define IP_TTL_EXPIRED_REASSEM (IP_STATUS_BASE + 14) -#define IP_PARAM_PROBLEM (IP_STATUS_BASE + 15) -#define IP_SOURCE_QUENCH (IP_STATUS_BASE + 16) -#define IP_OPTION_TOO_BIG (IP_STATUS_BASE + 17) -#define IP_BAD_DESTINATION (IP_STATUS_BASE + 18) -#define IP_ADDR_DELETED (IP_STATUS_BASE + 19) -#define IP_SPEC_MTU_CHANGE (IP_STATUS_BASE + 20) -#define IP_MTU_CHANGE (IP_STATUS_BASE + 21) -#define IP_UNLOAD (IP_STATUS_BASE + 22) -#define IP_GENERAL_FAILURE (IP_STATUS_BASE + 50) -#define MAX_IP_STATUS IP_GENERAL_FAILURE -#define IP_PENDING (IP_STATUS_BASE + 255) -/* IP header Flags values */ -#define IP_FLAG_DF 0x2 -/* IP Option types */ -#define IP_OPT_EOL 0 -#define IP_OPT_NOP 1 -#define IP_OPT_SECURITY 0x82 -#define IP_OPT_LSRR 0x83 -#define IP_OPT_SSRR 0x89 -#define IP_OPT_RR 0x7 -#define IP_OPT_TS 0x44 -#define IP_OPT_SID 0x88 -#define IP_OPT_ROUTER_ALERT 0x94 -#define MAX_OPT_SIZE 40 - -typedef unsigned long IPAddr, IPMask, IP_STATUS; -typedef struct ip_option_information { - unsigned char Ttl; - unsigned char Tos; - unsigned char Flags; - unsigned char OptionsSize; - unsigned char* OptionsData; -}IP_OPTION_INFORMATION, *PIP_OPTION_INFORMATION; -typedef struct icmp_echo_reply { - IPAddr Address; - unsigned long Status; - unsigned long RoundTripTime; - unsigned short DataSize; - unsigned short Reserved; - void* Data; - struct ip_option_information Options; -} ICMP_ECHO_REPLY, *PICMP_ECHO_REPLY; -typedef struct { - ULONG Index; - WCHAR Name[MAX_ADAPTER_NAME]; -} IP_ADAPTER_INDEX_MAP, *PIP_ADAPTER_INDEX_MAP; -typedef struct { - LONG NumAdapters; - IP_ADAPTER_INDEX_MAP Adapter[ANY_SIZE]; -} IP_INTERFACE_INFO, *PIP_INTERFACE_INFO; -typedef struct _IP_UNIDIRECTIONAL_ADAPTER_ADDRESS { - ULONG NumAdapters; - IPAddr Address[1]; -} IP_UNIDIRECTIONAL_ADAPTER_ADDRESS, *PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS; -#ifdef __cplusplus -} -#endif -#endif /* _IPEXPORT_H */ diff --git a/winsup/w32api/include/iphlpapi.h b/winsup/w32api/include/iphlpapi.h deleted file mode 100644 index d2d112d3c..000000000 --- a/winsup/w32api/include/iphlpapi.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef _IPHLPAPI_H -#define _IPHLPAPI_H -#include -#include -#include -#ifdef __cplusplus -extern "C" { -#endif -DWORD WINAPI AddIPAddress(IPAddr,IPMask,DWORD,PULONG,PULONG); -DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW); -DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW); -DWORD WINAPI CreateProxyArpEntry(DWORD,DWORD,DWORD); -DWORD WINAPI DeleteIPAddress(ULONG); -DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW); -DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW); -DWORD WINAPI DeleteProxyArpEntry(DWORD,DWORD,DWORD); -DWORD WINAPI EnableRouter(HANDLE*,OVERLAPPED*); -DWORD WINAPI FlushIpNetTable(DWORD); -DWORD WINAPI GetAdapterIndex(LPWSTR,PULONG); -DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO,PULONG); -DWORD WINAPI GetBestInterface(IPAddr,PDWORD); -DWORD WINAPI GetBestRoute(DWORD,DWORD,PMIB_IPFORWARDROW); -DWORD WINAPI GetFriendlyIfIndex(DWORD); -DWORD WINAPI GetIcmpStatistics(PMIB_ICMP); -DWORD WINAPI GetIfEntry(PMIB_IFROW); -DWORD WINAPI GetIfTable(PMIB_IFTABLE,PULONG,BOOL); -DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO,PULONG); -DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE,PULONG,BOOL); -DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE,PULONG,BOOL); -DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE,PULONG,BOOL); -DWORD WINAPI GetIpStatistics(PMIB_IPSTATS); -DWORD WINAPI GetNetworkParams(PFIXED_INFO,PULONG); -DWORD WINAPI GetNumberOfInterfaces(PDWORD); -DWORD WINAPI GetPerAdapterInfo(ULONG,PIP_PER_ADAPTER_INFO, PULONG); -BOOL WINAPI GetRTTAndHopCount(IPAddr,PULONG,ULONG,PULONG); -DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS); -DWORD WINAPI GetTcpTable(PMIB_TCPTABLE,PDWORD,BOOL); -DWORD WINAPI GetUniDirectionalAdapterInfo(PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS,PULONG); -DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS); -DWORD WINAPI GetUdpTable(PMIB_UDPTABLE,PDWORD,BOOL); -DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP); -DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP); -DWORD WINAPI NotifyAddrChange(PHANDLE,LPOVERLAPPED); -DWORD WINAPI NotifyRouteChange(PHANDLE,LPOVERLAPPED); -DWORD WINAPI SendARP(IPAddr,IPAddr,PULONG,PULONG); -DWORD WINAPI SetIfEntry(PMIB_IFROW); -DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW); -DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW); -DWORD WINAPI SetIpStatistics(PMIB_IPSTATS); -DWORD WINAPI SetIpTTL(UINT); -DWORD WINAPI SetTcpEntry(PMIB_TCPROW); -DWORD WINAPI UnenableRouter(OVERLAPPED*, LPDWORD); -#ifdef __cplusplus -} -#endif -#endif /* _IPHLPAPI_H */ diff --git a/winsup/w32api/include/ipifcons.h b/winsup/w32api/include/ipifcons.h deleted file mode 100644 index 16ef16880..000000000 --- a/winsup/w32api/include/ipifcons.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _IPIFCONS_H -#define _IPIFCONS_H -#define MIB_IF_ADMIN_STATUS_UP 1 -#define MIB_IF_ADMIN_STATUS_DOWN 2 -#define MIB_IF_ADMIN_STATUS_TESTING 3 -#define MIB_IF_OPER_STATUS_NON_OPERATIONAL 0 -#define MIB_IF_OPER_STATUS_UNREACHABLE 1 -#define MIB_IF_OPER_STATUS_DISCONNECTED 2 -#define MIB_IF_OPER_STATUS_CONNECTING 3 -#define MIB_IF_OPER_STATUS_CONNECTED 4 -#define MIB_IF_OPER_STATUS_OPERATIONAL 5 -#define MIB_IF_TYPE_OTHER 1 -#define MIB_IF_TYPE_ETHERNET 6 -#define MIB_IF_TYPE_TOKENRING 9 -#define MIB_IF_TYPE_FDDI 15 -#define MIB_IF_TYPE_PPP 23 -#define MIB_IF_TYPE_LOOPBACK 24 -#define MIB_IF_TYPE_SLIP 28 -#endif /* _IPIFCONS_H */ diff --git a/winsup/w32api/include/iprtrmib.h b/winsup/w32api/include/iprtrmib.h deleted file mode 100644 index c8c7bea7f..000000000 --- a/winsup/w32api/include/iprtrmib.h +++ /dev/null @@ -1,205 +0,0 @@ -#ifndef _IPRTRMIB_H -#define _IPRTRMIB_H -#include -#ifdef __cplusplus -extern "C" { -#endif -#ifndef ANY_SIZE -#define ANY_SIZE 1 -#endif -#define MAXLEN_PHYSADDR 8 -#define MAXLEN_IFDESCR 256 -#ifndef MAX_INTERFACE_NAME_LEN -#define MAX_INTERFACE_NAME_LEN 256 -#endif -#define MIB_IPNET_TYPE_OTHER 1 -#define MIB_IPNET_TYPE_INVALID 2 -#define MIB_IPNET_TYPE_DYNAMIC 3 -#define MIB_IPNET_TYPE_STATIC 4 -#define MIB_TCP_RTO_OTHER 1 -#define MIB_TCP_RTO_CONSTANT 2 -#define MIB_TCP_RTO_RSRE 3 -#define MIB_TCP_RTO_VANJ 4 -#define MIB_TCP_STATE_CLOSED 1 -#define MIB_TCP_STATE_LISTEN 2 -#define MIB_TCP_STATE_SYN_SENT 3 -#define MIB_TCP_STATE_SYN_RCVD 4 -#define MIB_TCP_STATE_ESTAB 5 -#define MIB_TCP_STATE_FIN_WAIT1 6 -#define MIB_TCP_STATE_FIN_WAIT2 7 -#define MIB_TCP_STATE_CLOSE_WAIT 8 -#define MIB_TCP_STATE_CLOSING 9 -#define MIB_TCP_STATE_LAST_ACK 10 -#define MIB_TCP_STATE_TIME_WAIT 11 -#define MIB_TCP_STATE_DELETE_TCB 12 -#define MIB_USE_CURRENT_TTL ((DWORD)-1) -#define MIB_USE_CURRENT_FORWARDING ((DWORD)-1) -#define MIB_TCP_MAXCONN_DYNAMIC ((DWORD)-1) -typedef struct { - DWORD dwAddr; - DWORD dwIndex; - DWORD dwMask; - DWORD dwBCastAddr; - DWORD dwReasmSize; - unsigned short unused1; - unsigned short unused2; -} MIB_IPADDRROW, *PMIB_IPADDRROW; -typedef struct { - DWORD dwNumEntries; - MIB_IPADDRROW table[ANY_SIZE]; -} MIB_IPADDRTABLE, *PMIB_IPADDRTABLE; -typedef struct { - DWORD dwForwardDest; - DWORD dwForwardMask; - DWORD dwForwardPolicy; - DWORD dwForwardNextHop; - DWORD dwForwardIfIndex; - DWORD dwForwardType; - DWORD dwForwardProto; - DWORD dwForwardAge; - DWORD dwForwardNextHopAS; - DWORD dwForwardMetric1; - DWORD dwForwardMetric2; - DWORD dwForwardMetric3; - DWORD dwForwardMetric4; - DWORD dwForwardMetric5; -} MIB_IPFORWARDROW, *PMIB_IPFORWARDROW; -typedef struct { - DWORD dwNumEntries; - MIB_IPFORWARDROW table[ANY_SIZE]; -} MIB_IPFORWARDTABLE, *PMIB_IPFORWARDTABLE; -typedef struct { - DWORD dwIndex; - DWORD dwPhysAddrLen; - BYTE bPhysAddr[MAXLEN_PHYSADDR]; - DWORD dwAddr; - DWORD dwType; -} MIB_IPNETROW, *PMIB_IPNETROW; -typedef struct { - DWORD dwNumEntries; - MIB_IPNETROW table[ANY_SIZE]; -} MIB_IPNETTABLE, *PMIB_IPNETTABLE; -typedef struct { - DWORD dwMsgs; - DWORD dwErrors; - DWORD dwDestUnreachs; - DWORD dwTimeExcds; - DWORD dwParmProbs; - DWORD dwSrcQuenchs; - DWORD dwRedirects; - DWORD dwEchos; - DWORD dwEchoReps; - DWORD dwTimestamps; - DWORD dwTimestampReps; - DWORD dwAddrMasks; - DWORD dwAddrMaskReps; -} MIBICMPSTATS, *PMIBICMPSTATS; -typedef struct { - MIBICMPSTATS icmpInStats; - MIBICMPSTATS icmpOutStats; -} MIBICMPINFO, *PMIBICMPINFO; -typedef struct { - MIBICMPINFO stats; -} MIB_ICMP, *PMIB_ICMP; -typedef struct { - WCHAR wszName[MAX_INTERFACE_NAME_LEN]; - DWORD dwIndex; - DWORD dwType; - DWORD dwMtu; - DWORD dwSpeed; - DWORD dwPhysAddrLen; - BYTE bPhysAddr[MAXLEN_PHYSADDR]; - DWORD dwAdminStatus; - DWORD dwOperStatus; - DWORD dwLastChange; - DWORD dwInOctets; - DWORD dwInUcastPkts; - DWORD dwInNUcastPkts; - DWORD dwInDiscards; - DWORD dwInErrors; - DWORD dwInUnknownProtos; - DWORD dwOutOctets; - DWORD dwOutUcastPkts; - DWORD dwOutNUcastPkts; - DWORD dwOutDiscards; - DWORD dwOutErrors; - DWORD dwOutQLen; - DWORD dwDescrLen; - BYTE bDescr[MAXLEN_IFDESCR]; -} MIB_IFROW, *PMIB_IFROW; -typedef struct { - DWORD dwNumEntries; - MIB_IFROW table[ANY_SIZE]; -} MIB_IFTABLE, *PMIB_IFTABLE; -typedef struct { - DWORD dwForwarding; - DWORD dwDefaultTTL; - DWORD dwInReceives; - DWORD dwInHdrErrors; - DWORD dwInAddrErrors; - DWORD dwForwDatagrams; - DWORD dwInUnknownProtos; - DWORD dwInDiscards; - DWORD dwInDelivers; - DWORD dwOutRequests; - DWORD dwRoutingDiscards; - DWORD dwOutDiscards; - DWORD dwOutNoRoutes; - DWORD dwReasmTimeout; - DWORD dwReasmReqds; - DWORD dwReasmOks; - DWORD dwReasmFails; - DWORD dwFragOks; - DWORD dwFragFails; - DWORD dwFragCreates; - DWORD dwNumIf; - DWORD dwNumAddr; - DWORD dwNumRoutes; -} MIB_IPSTATS, *PMIB_IPSTATS; -typedef struct { - DWORD dwRtoAlgorithm; - DWORD dwRtoMin; - DWORD dwRtoMax; - DWORD dwMaxConn; - DWORD dwActiveOpens; - DWORD dwPassiveOpens; - DWORD dwAttemptFails; - DWORD dwEstabResets; - DWORD dwCurrEstab; - DWORD dwInSegs; - DWORD dwOutSegs; - DWORD dwRetransSegs; - DWORD dwInErrs; - DWORD dwOutRsts; - DWORD dwNumConns; -} MIB_TCPSTATS, *PMIB_TCPSTATS; -typedef struct { - DWORD dwState; - DWORD dwLocalAddr; - DWORD dwLocalPort; - DWORD dwRemoteAddr; - DWORD dwRemotePort; -} MIB_TCPROW, *PMIB_TCPROW; -typedef struct { - DWORD dwNumEntries; - MIB_TCPROW table[ANY_SIZE]; -} MIB_TCPTABLE, *PMIB_TCPTABLE; -typedef struct { - DWORD dwInDatagrams; - DWORD dwNoPorts; - DWORD dwInErrors; - DWORD dwOutDatagrams; - DWORD dwNumAddrs; -} MIB_UDPSTATS, *PMIB_UDPSTATS; -typedef struct { - DWORD dwLocalAddr; - DWORD dwLocalPort; -} MIB_UDPROW, *PMIB_UDPROW; -typedef struct { - DWORD dwNumEntries; - MIB_UDPROW table[ANY_SIZE]; -} MIB_UDPTABLE, *PMIB_UDPTABLE; -#ifdef __cplusplus -} -#endif -#endif /* _IPRTRMIB_H */ diff --git a/winsup/w32api/include/iptypes.h b/winsup/w32api/include/iptypes.h deleted file mode 100644 index 8b5e8ae5e..000000000 --- a/winsup/w32api/include/iptypes.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef _IPTYPES_H -#define _IPTYPES_H -#include -#ifdef __cplusplus -extern "C" { -#endif -#define DEFAULT_MINIMUM_ENTITIES 32 -#define MAX_ADAPTER_ADDRESS_LENGTH 8 -#define MAX_ADAPTER_DESCRIPTION_LENGTH 128 -#define MAX_ADAPTER_NAME_LENGTH 256 -#define MAX_DOMAIN_NAME_LEN 128 -#define MAX_HOSTNAME_LEN 128 -#define MAX_SCOPE_ID_LEN 256 -#define BROADCAST_NODETYPE 1 -#define PEER_TO_PEER_NODETYPE 2 -#define MIXED_NODETYPE 4 -#define HYBRID_NODETYPE 8 -#define IF_OTHER_ADAPTERTYPE 0 -#define IF_ETHERNET_ADAPTERTYPE 1 -#define IF_TOKEN_RING_ADAPTERTYPE 2 -#define IF_FDDI_ADAPTERTYPE 3 -#define IF_PPP_ADAPTERTYPE 4 -#define IF_LOOPBACK_ADAPTERTYPE 5 -typedef struct { - char String[16]; -} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING; -typedef struct _IP_ADDR_STRING { - struct _IP_ADDR_STRING* Next; - IP_ADDRESS_STRING IpAddress; - IP_MASK_STRING IpMask; - DWORD Context; -} IP_ADDR_STRING, *PIP_ADDR_STRING; -typedef struct _IP_ADAPTER_INFO { - struct _IP_ADAPTER_INFO* Next; - DWORD ComboIndex; - char AdapterName[MAX_ADAPTER_NAME_LENGTH+4]; - char Description[MAX_ADAPTER_DESCRIPTION_LENGTH+4]; - UINT AddressLength; - BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH]; - DWORD Index; - UINT Type; - UINT DhcpEnabled; - PIP_ADDR_STRING CurrentIpAddress; - IP_ADDR_STRING IpAddressList; - IP_ADDR_STRING GatewayList; - IP_ADDR_STRING DhcpServer; - BOOL HaveWins; - IP_ADDR_STRING PrimaryWinsServer; - IP_ADDR_STRING SecondaryWinsServer; - time_t LeaseObtained; - time_t LeaseExpires; -} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO; -typedef struct _IP_PER_ADAPTER_INFO { - UINT AutoconfigEnabled; - UINT AutoconfigActive; - PIP_ADDR_STRING CurrentDnsServer; - IP_ADDR_STRING DnsServerList; -} IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO; -typedef struct _FIXED_INFO { - char HostName[MAX_HOSTNAME_LEN+4] ; - char DomainName[MAX_DOMAIN_NAME_LEN+4]; - PIP_ADDR_STRING CurrentDnsServer; - IP_ADDR_STRING DnsServerList; - UINT NodeType; - char ScopeId[MAX_SCOPE_ID_LEN+4]; - UINT EnableRouting; - UINT EnableProxy; - UINT EnableDns; -} FIXED_INFO, *PFIXED_INFO; - -#ifdef __cplusplus -} -#endif -#endif /* _IPTYPES_H */ diff --git a/winsup/w32api/include/isguids.h b/winsup/w32api/include/isguids.h deleted file mode 100644 index 6518e66a6..000000000 --- a/winsup/w32api/include/isguids.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _ISGUID_H -#define _ISGUID_H -#ifdef __cplusplus -extern "C" { -#endif -extern const GUID CLSID_InternetShortcut; -extern const GUID IID_IUniformResourceLocator; -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/largeint.h b/winsup/w32api/include/largeint.h deleted file mode 100644 index c36db31ef..000000000 --- a/winsup/w32api/include/largeint.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - largeint.h - - Header for 64 bit integer arithmetics library - - */ -#ifndef _LARGEINT_H -#define _LARGEINT_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _HAVE_INT64 -#define _toi (__int64) -#define _toui (unsigned __int64) -#else -#error "64 bit integers not supported" -#endif - -/* - We don't let the compiler see the prototypes if we are compiling the - library because if it does it will choke on conflicting types in the - prototypes. -*/ - -#if defined(LARGEINT_PROTOS) || defined(__COMPILING_LARGEINT) - -#ifndef __COMPILING_LARGEINT -/* addition/subtraction */ -LARGE_INTEGER WINAPI LargeIntegerAdd (LARGE_INTEGER, LARGE_INTEGER); -LARGE_INTEGER WINAPI LargeIntegerSubtract (LARGE_INTEGER, LARGE_INTEGER); - -/* bit operations */ -LARGE_INTEGER WINAPI LargeIntegerArithmeticShift (LARGE_INTEGER, int); -LARGE_INTEGER WINAPI LargeIntegerShiftLeft (LARGE_INTEGER, int); -LARGE_INTEGER WINAPI LargeIntegerShiftRight (LARGE_INTEGER, int); -LARGE_INTEGER WINAPI LargeIntegerNegate (LARGE_INTEGER); - -/* conversion */ -LARGE_INTEGER WINAPI ConvertLongToLargeInteger (LONG); -LARGE_INTEGER WINAPI ConvertUlongToLargeInteger (ULONG); - -/* multiplication */ -LARGE_INTEGER WINAPI EnlargedIntegerMultiply (LONG, LONG); -LARGE_INTEGER WINAPI EnlargedUnsignedMultiply (ULONG, ULONG); -LARGE_INTEGER WINAPI ExtendedIntegerMultiply (LARGE_INTEGER, LONG); -/* FIXME: is this not part of largeint? */ -LARGE_INTEGER WINAPI LargeIntegerMultiply (LARGE_INTEGER, LARGE_INTEGER); -#endif /* __COMPILING_LARGEINT */ - -#else - -#define LargeIntegerAdd(a,b) (LARGE_INTEGER)(_toi(a) + _toi(b)) -#define LargeIntegerSubtract(a,b) (LARGE_INTEGER)(_toi(a) - _toi(b)) -#define LargeIntegerRightShift(i,n) (LARGE_INTEGER)(_toi(i) >> (n)) -#define LargeIntegerArithmeticShift LargeIntegerRightShift -#define LargeIntegerLeftShift(i,n) (LARGE_INTEGER)(_toi(i) << (n)) -#define LargeIntegerNegate(i) (LARGE_INTEGER)(- _toi(i)) -#define EnlargedIntegerMultiply(a,b) (LARGE_INTEGER)(_toi(a) * _toi(b)) -#define EnlargedUnsignedMultiply(a,b) (LARGE_INTEGER)(_toui(a) * _toui(b)) -#define ExtendedIntegerMultiply(a,b) (LARGE_INTEGER)(_toi(a) * _toi(b)) -/* FIXME: should this exist */ -#define LargeIntegerMultiply(a,b) (LARGE_INTEGER)(_toi(a) * _toi(b)) -#define ConvertLongToLargeInteger(l) (LARGE_INTEGER)(_toi(l)) -#define ConvertUlongToLargeInteger(ul) (LARGE_INTEGER)(_toui(ul)) - -#endif /* LARGEINT_PROTOS || __COMPILING_LARGEINT */ - -#ifndef __COMPILING_LARGEINT -/* division; no macros of these because of multiple expansion */ -LARGE_INTEGER WINAPI LargeIntegerDivide (LARGE_INTEGER, LARGE_INTEGER, PLARGE_INTEGER); -ULONG WINAPI EnlargedUnsignedDivide (ULARGE_INTEGER, ULONG, PULONG); -LARGE_INTEGER WINAPI ExtendedLargeIntegerDivide (LARGE_INTEGER, ULONG, PULONG); -LARGE_INTEGER WINAPI ExtendedMagicDivide (LARGE_INTEGER, LARGE_INTEGER, int); -#endif /* __COMPILING_LARGEINT */ - -#define LargeIntegerAnd(dest, src, m) \ -{ \ - dest._STRUCT_NAME(u.)LowPart = s._STRUCT_NAME(u.)LowPart & m._STRUCT_NAME(u.)LowPart; \ - dest._STRUCT_NAME(u.)HighPart = s._STRUCT_NAME(u.)HighPart & m._STRUCT_NAME(u.)HighPart; \ -} - -/* comparision */ -#define LargeIntegerGreaterThan(a,b) (_toi(a) > _toi(b)) -#define LargeIntegerGreaterThanOrEqual(a,b) (_toi(a) >= _toi(b)) -#define LargeIntegerEqualTo(a,b) (_toi(a) == _toi(b)) -#define LargeIntegerNotEqualTo(a,b) (_toi(a) != _toi(b)) -#define LargeIntegerLessThan(a,b) (_toi(a) < _toi(b)) -#define LargeIntegerLessThanOrEqualTo(a,b) (_toi(a) <= _toi(b)) -#define LargeIntegerGreaterThanZero(a) (_toi(a) > 0) -#define LargeIntegerGreaterOrEqualToZero(a) ((a)._STRUCT_NAME(u.)HighPart > 0) -#define LargeIntegerEqualToZero(a) !((a)._STRUCT_NAME(u.)LowPart | (a)._STRUCT_NAME(u.)HighPart) -#define LargeIntegerNotEqualToZero(a) ((a)._STRUCT_NAME(u.)LowPart | (a)._STRUCT_NAME(u.)HighPart) -#define LargeIntegerLessThanZero(a) ((a)._STRUCT_NAME(u.)HighPart < 0) -#define LargeIntegerLessOrEqualToZero(a) (_toi(a) <= 0) - -#ifndef __COMPILING_LARGEINT -#undef _toi -#undef _toui -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _LARGEINT_H */ diff --git a/winsup/w32api/include/lm.h b/winsup/w32api/include/lm.h deleted file mode 100644 index 040d13ae7..000000000 --- a/winsup/w32api/include/lm.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _LM_H -#define _LM_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif diff --git a/winsup/w32api/include/lmaccess.h b/winsup/w32api/include/lmaccess.h deleted file mode 100644 index 8a7b9ba88..000000000 --- a/winsup/w32api/include/lmaccess.h +++ /dev/null @@ -1,605 +0,0 @@ -#ifndef _LMACCESS_H -#define _LMACCESS_H -#ifdef __cplusplus -extern "C" { -#endif -#include -#define GROUP_SPECIALGRP_USERS L"USERS" -#define GROUP_SPECIALGRP_ADMINS L"ADMINS" -#define GROUP_SPECIALGRP_GUESTS L"GUESTS" -#define GROUP_SPECIALGRP_LOCAL L"LOCAL" -#define ACCESS_LETTERS "RWCXDAP " -#define NETLOGON_CONTROL_QUERY 1 -#define NETLOGON_CONTROL_REPLICATE 2 -#define NETLOGON_CONTROL_SYNCHRONIZE 3 -#define NETLOGON_CONTROL_PDC_REPLICATE 4 -#define NETLOGON_CONTROL_REDISCOVER 5 -#define NETLOGON_CONTROL_TC_QUERY 6 -#define NETLOGON_CONTROL_BACKUP_CHANGE_LOG 65532 -#define NETLOGON_CONTROL_TRUNCATE_LOG 65533 -#define NETLOGON_CONTROL_SET_DBFLAG 65534 -#define NETLOGON_CONTROL_BREAKPOINT 65535 -#define UF_SCRIPT 1 -#define UF_ACCOUNTDISABLE 2 -#define UF_HOMEDIR_REQUIRED 8 -#define UF_LOCK 16 -#define UF_PASSWD_NOTREQD 32 -#define UF_PASSWD_CANT_CHANGE 64 -#define UF_TEMP_DUPLICATE_ACCOUNT 256 -#define UF_NORMAL_ACCOUNT 512 -#define UF_INTERDOMAIN_TRUST_ACCOUNT 2048 -#define UF_WORKSTATION_TRUST_ACCOUNT 4096 -#define UF_SERVER_TRUST_ACCOUNT 8192 -#define UF_MACHINE_ACCOUNT_MASK (UF_INTERDOMAIN_TRUST_ACCOUNT|UF_WORKSTATION_TRUST_ACCOUNT|UF_SERVER_TRUST_ACCOUNT) -#define UF_ACCOUNT_TYPE_MASK (UF_TEMP_DUPLICATE_ACCOUNT|UF_NORMAL_ACCOUNT|UF_INTERDOMAIN_TRUST_ACCOUNT|UF_WORKSTATION_TRUST_ACCOUNT|UF_SERVER_TRUST_ACCOUNT) -#define UF_DONT_EXPIRE_PASSWD 65536 -#define UF_SETTABLE_BITS (UF_SCRIPT|UF_ACCOUNTDISABLE|UF_LOCK|UF_HOMEDIR_REQUIRED|UF_PASSWD_NOTREQD|UF_PASSWD_CANT_CHANGE|UF_ACCOUNT_TYPE_MASK|UF_DONT_EXPIRE_PASSWD) -#define FILTER_TEMP_DUPLICATE_ACCOUNT 1 -#define FILTER_NORMAL_ACCOUNT 2 -#define FILTER_INTERDOMAIN_TRUST_ACCOUNT 8 -#define FILTER_WORKSTATION_TRUST_ACCOUNT 16 -#define FILTER_SERVER_TRUST_ACCOUNT 32 -#define LG_INCLUDE_INDIRECT 1 -#define AF_OP_PRINT 1 -#define AF_OP_COMM 2 -#define AF_OP_SERVER 4 -#define AF_OP_ACCOUNTS 8 -#define AF_SETTABLE_BITS (AF_OP_PRINT|AF_OP_COMM|AF_OP_SERVER|AF_OP_ACCOUNTS) -#define UAS_ROLE_STANDALONE 0 -#define UAS_ROLE_MEMBER 1 -#define UAS_ROLE_BACKUP 2 -#define UAS_ROLE_PRIMARY 3 -#define USER_NAME_PARMNUM 1 -#define USER_PASSWORD_PARMNUM 3 -#define USER_PASSWORD_AGE_PARMNUM 4 -#define USER_PRIV_PARMNUM 5 -#define USER_HOME_DIR_PARMNUM 6 -#define USER_COMMENT_PARMNUM 7 -#define USER_FLAGS_PARMNUM 8 -#define USER_SCRIPT_PATH_PARMNUM 9 -#define USER_AUTH_FLAGS_PARMNUM 10 -#define USER_FULL_NAME_PARMNUM 11 -#define USER_USR_COMMENT_PARMNUM 12 -#define USER_PARMS_PARMNUM 13 -#define USER_WORKSTATIONS_PARMNUM 14 -#define USER_LAST_LOGON_PARMNUM 15 -#define USER_LAST_LOGOFF_PARMNUM 16 -#define USER_ACCT_EXPIRES_PARMNUM 17 -#define USER_MAX_STORAGE_PARMNUM 18 -#define USER_UNITS_PER_WEEK_PARMNUM 19 -#define USER_LOGON_HOURS_PARMNUM 20 -#define USER_PAD_PW_COUNT_PARMNUM 21 -#define USER_NUM_LOGONS_PARMNUM 22 -#define USER_LOGON_SERVER_PARMNUM 23 -#define USER_COUNTRY_CODE_PARMNUM 24 -#define USER_CODE_PAGE_PARMNUM 25 -#define USER_PRIMARY_GROUP_PARMNUM 51 -#define USER_PROFILE 52 -#define USER_PROFILE_PARMNUM 52 -#define USER_HOME_DIR_DRIVE_PARMNUM 53 -#define USER_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_NAME_PARMNUM) -#define USER_PASSWORD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PASSWORD_PARMNUM) -#define USER_PASSWORD_AGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PASSWORD_AGE_PARMNUM) -#define USER_PRIV_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PRIV_PARMNUM) -#define USER_HOME_DIR_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_HOME_DIR_PARMNUM) -#define USER_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_COMMENT_PARMNUM) -#define USER_FLAGS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_FLAGS_PARMNUM) -#define USER_SCRIPT_PATH_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_SCRIPT_PATH_PARMNUM) -#define USER_AUTH_FLAGS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_AUTH_FLAGS_PARMNUM) -#define USER_FULL_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_FULL_NAME_PARMNUM) -#define USER_USR_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_USR_COMMENT_PARMNUM) -#define USER_PARMS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PARMS_PARMNUM) -#define USER_WORKSTATIONS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_WORKSTATIONS_PARMNUM) -#define USER_LAST_LOGON_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LAST_LOGON_PARMNUM) -#define USER_LAST_LOGOFF_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LAST_LOGOFF_PARMNUM) -#define USER_ACCT_EXPIRES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_ACCT_EXPIRES_PARMNUM) -#define USER_MAX_STORAGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_MAX_STORAGE_PARMNUM) -#define USER_UNITS_PER_WEEK_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_UNITS_PER_WEEK_PARMNUM) -#define USER_LOGON_HOURS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LOGON_HOURS_PARMNUM) -#define USER_PAD_PW_COUNT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PAD_PW_COUNT_PARMNUM) -#define USER_NUM_LOGONS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_NUM_LOGONS_PARMNUM) -#define USER_LOGON_SERVER_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_LOGON_SERVER_PARMNUM) -#define USER_COUNTRY_CODE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_COUNTRY_CODE_PARMNUM) -#define USER_CODE_PAGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_CODE_PAGE_PARMNUM) -#define USER_PRIMARY_GROUP_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_PRIMARY_GROUP_PARMNUM) -#define USER_POSIX_ID_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_POSIX_ID_PARMNUM) -#define USER_HOME_DIR_DRIVE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+USER_HOME_DIR_DRIVE_PARMNUM) -#define NULL_USERSETINFO_PASSWD " " -#define TIMEQ_FOREVER ((ULONG)-1) -#define USER_MAXSTORAGE_UNLIMITED ((ULONG)-1) -#define USER_NO_LOGOFF ((ULONG)-1L) -#define UNITS_PER_DAY 24 -#define UNITS_PER_WEEK 168 -#define USER_PRIV_MASK 3 -#define USER_PRIV_GUEST 0 -#define USER_PRIV_USER 1 -#define USER_PRIV_ADMIN 2 -#define MAX_PASSWD_LEN PWLEN -#define DEF_MIN_PWLEN 6 -#define DEF_PWUNIQUENESS 5 -#define DEF_MAX_PWHIST 8 -#define DEF_MAX_PWAGE TIMEQ_FOREVER -#define DEF_MIN_PWAGE 0 -#define DEF_FORCE_LOGOFF (ULONG)0xffffffff -#define DEF_MAX_BADPW 0 -#define ONE_DAY 86400 -#define VALIDATED_LOGON 0 -#define PASSWORD_EXPIRED 2 -#define NON_VALIDATED_LOGON 3 -#define VALID_LOGOFF 1 -#define MODALS_MIN_PASSWD_LEN_PARMNUM 1 -#define MODALS_MAX_PASSWD_AGE_PARMNUM 2 -#define MODALS_MIN_PASSWD_AGE_PARMNUM 3 -#define MODALS_FORCE_LOGOFF_PARMNUM 4 -#define MODALS_PASSWD_HIST_LEN_PARMNUM 5 -#define MODALS_ROLE_PARMNUM 6 -#define MODALS_PRIMARY_PARMNUM 7 -#define MODALS_DOMAIN_NAME_PARMNUM 8 -#define MODALS_DOMAIN_ID_PARMNUM 9 -#define MODALS_LOCKOUT_DURATION_PARMNUM 10 -#define MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM 11 -#define MODALS_LOCKOUT_THRESHOLD_PARMNUM 12 -#define MODALS_MIN_PASSWD_LEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_MIN_PASSWD_LEN_PARMNUM) -#define MODALS_MAX_PASSWD_AGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_MAX_PASSWD_AGE_PARMNUM) -#define MODALS_MIN_PASSWD_AGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_MIN_PASSWD_AGE_PARMNUM) -#define MODALS_FORCE_LOGOFF_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_FORCE_LOGOFF_PARMNUM) -#define MODALS_PASSWD_HIST_LEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_PASSWD_HIST_LEN_PARMNUM) -#define MODALS_ROLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_ROLE_PARMNUM) -#define MODALS_PRIMARY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_PRIMARY_PARMNUM) -#define MODALS_DOMAIN_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_DOMAIN_NAME_PARMNUM) -#define MODALS_DOMAIN_ID_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+MODALS_DOMAIN_ID_PARMNUM) -#define GROUPIDMASK 0x8000 -#define GROUP_ALL_PARMNUM 0 -#define GROUP_NAME_PARMNUM 1 -#define GROUP_COMMENT_PARMNUM 2 -#define GROUP_ATTRIBUTES_PARMNUM 3 -#define GROUP_ALL_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_ALL_PARMNUM) -#define GROUP_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_NAME_PARMNUM) -#define GROUP_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_COMMENT_PARMNUM) -#define GROUP_ATTRIBUTES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_ATTRIBUTES_PARMNUM) -#define GROUP_POSIX_ID_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+GROUP_POSIX_ID_PARMNUM) -#define LOCALGROUP_NAME_PARMNUM 1 -#define LOCALGROUP_COMMENT_PARMNUM 2 -#define MAXPERMENTRIES 64 -#define ACCESS_NONE 0 -#define ACCESS_ALL (ACCESS_READ|ACCESS_WRITE|ACCESS_CREATE|ACCESS_EXEC|ACCESS_DELETE|ACCESS_ATRIB|ACCESS_PERM) -#define ACCESS_READ 1 -#define ACCESS_WRITE 2 -#define ACCESS_CREATE 4 -#define ACCESS_EXEC 8 -#define ACCESS_DELETE 16 -#define ACCESS_ATRIB 32 -#define ACCESS_PERM 64 -#define ACCESS_GROUP 0x8000 -#define ACCESS_AUDIT 1 -#define ACCESS_SUCCESS_OPEN 16 -#define ACCESS_SUCCESS_WRITE 32 -#define ACCESS_SUCCESS_DELETE 64 -#define ACCESS_SUCCESS_ACL 128 -#define ACCESS_SUCCESS_MASK 240 -#define ACCESS_FAIL_OPEN 256 -#define ACCESS_FAIL_WRITE 512 -#define ACCESS_FAIL_DELETE 1024 -#define ACCESS_FAIL_ACL 2048 -#define ACCESS_FAIL_MASK 3840 -#define ACCESS_FAIL_SHIFT 4 -#define ACCESS_RESOURCE_NAME_PARMNUM 1 -#define ACCESS_ATTR_PARMNUM 2 -#define ACCESS_COUNT_PARMNUM 3 -#define ACCESS_ACCESS_LIST_PARMNUM 4 -#define ACCESS_RESOURCE_NAME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_RESOURCE_NAME_PARMNUM) -#define ACCESS_ATTR_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_ATTR_PARMNUM) -#define ACCESS_COUNT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_COUNT_PARMNUM) -#define ACCESS_ACCESS_LIST_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+ACCESS_ACCESS_LIST_PARMNUM) -#define NETLOGON_REPLICATION_NEEDED 1 -#define NETLOGON_REPLICATION_IN_PROGRESS 2 -#define NETLOGON_FULL_SYNC_REPLICATION 4 -#define NETLOGON_REDO_NEEDED 8 - -typedef struct _USER_INFO_0 { LPWSTR usri0_name; }USER_INFO_0,*PUSER_INFO_0,*LPUSER_INFO_0; -typedef struct _USER_INFO_1 { - LPWSTR usri1_name; - LPWSTR usri1_password; - DWORD usri1_password_age; - DWORD usri1_priv; - LPWSTR usri1_home_dir; - LPWSTR usri1_comment; - DWORD usri1_flags; - LPWSTR usri1_script_path; -}USER_INFO_1,*PUSER_INFO_1,*LPUSER_INFO_1; -typedef struct _USER_INFO_2 { - LPWSTR usri2_name; - LPWSTR usri2_password; - DWORD usri2_password_age; - DWORD usri2_priv; - LPWSTR usri2_home_dir; - LPWSTR usri2_comment; - DWORD usri2_flags; - LPWSTR usri2_script_path; - DWORD usri2_auth_flags; - LPWSTR usri2_full_name; - LPWSTR usri2_usr_comment; - LPWSTR usri2_parms; - LPWSTR usri2_workstations; - DWORD usri2_last_logon; - DWORD usri2_last_logoff; - DWORD usri2_acct_expires; - DWORD usri2_max_storage; - DWORD usri2_units_per_week; - PBYTE usri2_logon_hours; - DWORD usri2_bad_pw_count; - DWORD usri2_num_logons; - LPWSTR usri2_logon_server; - DWORD usri2_country_code; - DWORD usri2_code_page; -}USER_INFO_2,*PUSER_INFO_2,*LPUSER_INFO_2; -typedef struct _USER_INFO_3 { - LPWSTR usri3_name; - LPWSTR usri3_password; - DWORD usri3_password_age; - DWORD usri3_priv; - LPWSTR usri3_home_dir; - LPWSTR usri3_comment; - DWORD usri3_flags; - LPWSTR usri3_script_path; - DWORD usri3_auth_flags; - LPWSTR usri3_full_name; - LPWSTR usri3_usr_comment; - LPWSTR usri3_parms; - LPWSTR usri3_workstations; - DWORD usri3_last_logon; - DWORD usri3_last_logoff; - DWORD usri3_acct_expires; - DWORD usri3_max_storage; - DWORD usri3_units_per_week; - PBYTE usri3_logon_hours; - DWORD usri3_bad_pw_count; - DWORD usri3_num_logons; - LPWSTR usri3_logon_server; - DWORD usri3_country_code; - DWORD usri3_code_page; - DWORD usri3_user_id; - DWORD usri3_primary_group_id; - LPWSTR usri3_profile; - LPWSTR usri3_home_dir_drive; - DWORD usri3_password_expired; -}USER_INFO_3,*PUSER_INFO_3,*LPUSER_INFO_3; -typedef struct _USER_INFO_10 { - LPWSTR usri10_name; - LPWSTR usri10_comment; - LPWSTR usri10_usr_comment; - LPWSTR usri10_full_name; -}USER_INFO_10,*PUSER_INFO_10,*LPUSER_INFO_10; -typedef struct _USER_INFO_11 { - LPWSTR usri11_name; - LPWSTR usri11_comment; - LPWSTR usri11_usr_comment; - LPWSTR usri11_full_name; - DWORD usri11_priv; - DWORD usri11_auth_flags; - DWORD usri11_password_age; - LPWSTR usri11_home_dir; - LPWSTR usri11_parms; - DWORD usri11_last_logon; - DWORD usri11_last_logoff; - DWORD usri11_bad_pw_count; - DWORD usri11_num_logons; - LPWSTR usri11_logon_server; - DWORD usri11_country_code; - LPWSTR usri11_workstations; - DWORD usri11_max_storage; - DWORD usri11_units_per_week; - PBYTE usri11_logon_hours; - DWORD usri11_code_page; -}USER_INFO_11,*PUSER_INFO_11,*LPUSER_INFO_11; -typedef struct _USER_INFO_20 { - LPWSTR usri20_name; - LPWSTR usri20_full_name; - LPWSTR usri20_comment; - DWORD usri20_flags; - DWORD usri20_user_id; -}USER_INFO_20,*PUSER_INFO_20,*LPUSER_INFO_20; -typedef struct _USER_INFO_21 { - BYTE usri21_password[ENCRYPTED_PWLEN]; -}USER_INFO_21,*PUSER_INFO_21,*LPUSER_INFO_21; -typedef struct _USER_INFO_22 { - LPWSTR usri22_name; - BYTE usri22_password[ENCRYPTED_PWLEN]; - DWORD usri22_password_age; - DWORD usri22_priv; - LPWSTR usri22_home_dir; - LPWSTR usri22_comment; - DWORD usri22_flags; - LPWSTR usri22_script_path; - DWORD usri22_auth_flags; - LPWSTR usri22_full_name; - LPWSTR usri22_usr_comment; - LPWSTR usri22_parms; - LPWSTR usri22_workstations; - DWORD usri22_last_logon; - DWORD usri22_last_logoff; - DWORD usri22_acct_expires; - DWORD usri22_max_storage; - DWORD usri22_units_per_week; - PBYTE usri22_logon_hours; - DWORD usri22_bad_pw_count; - DWORD usri22_num_logons; - LPWSTR usri22_logon_server; - DWORD usri22_country_code; - DWORD usri22_code_page; - }USER_INFO_22,*PUSER_INFO_22,*LPUSER_INFO_22; -typedef struct _USER_INFO_1003 { - LPWSTR usri1003_password; -} USER_INFO_1003,*PUSER_INFO_1003,*LPUSER_INFO_1003; -typedef struct _USER_INFO_1005 { - DWORD usri1005_priv; -} USER_INFO_1005,*PUSER_INFO_1005,*LPUSER_INFO_1005; -typedef struct _USER_INFO_1006 { - LPWSTR usri1006_home_dir; -} USER_INFO_1006,*PUSER_INFO_1006,*LPUSER_INFO_1006; -typedef struct _USER_INFO_1007 { - LPWSTR usri1007_comment; -} USER_INFO_1007,*PUSER_INFO_1007,*LPUSER_INFO_1007; -typedef struct _USER_INFO_1008 { - DWORD usri1008_flags; -} USER_INFO_1008,*PUSER_INFO_1008,*LPUSER_INFO_1008; -typedef struct _USER_INFO_1009 { - LPWSTR usri1009_script_path; -} USER_INFO_1009,*PUSER_INFO_1009,*LPUSER_INFO_1009; -typedef struct _USER_INFO_1010 { - DWORD usri1010_auth_flags; -} USER_INFO_1010,*PUSER_INFO_1010,*LPUSER_INFO_1010; -typedef struct _USER_INFO_1011 { - LPWSTR usri1011_full_name; -} USER_INFO_1011,*PUSER_INFO_1011,*LPUSER_INFO_1011; -typedef struct _USER_INFO_1012 { - LPWSTR usri1012_usr_comment; -} USER_INFO_1012,*PUSER_INFO_1012,*LPUSER_INFO_1012; -typedef struct _USER_INFO_1013 { - LPWSTR usri1013_parms; -} USER_INFO_1013,*PUSER_INFO_1013,*LPUSER_INFO_1013; -typedef struct _USER_INFO_1014 { - LPWSTR usri1014_workstations; -} USER_INFO_1014,*PUSER_INFO_1014,*LPUSER_INFO_1014; -typedef struct _USER_INFO_1017 { - DWORD usri1017_acct_expires; -} USER_INFO_1017,*PUSER_INFO_1017,*LPUSER_INFO_1017; -typedef struct _USER_INFO_1018 { - DWORD usri1018_max_storage; -} USER_INFO_1018,*PUSER_INFO_1018,*LPUSER_INFO_1018; -typedef struct _USER_INFO_1020 { - DWORD usri1020_units_per_week; - PBYTE usri1020_logon_hours; -} USER_INFO_1020,*PUSER_INFO_1020,*LPUSER_INFO_1020; -typedef struct _USER_INFO_1023 { - LPWSTR usri1023_logon_server; -} USER_INFO_1023,*PUSER_INFO_1023,*LPUSER_INFO_1023; -typedef struct _USER_INFO_1024 { - DWORD usri1024_country_code; -} USER_INFO_1024,*PUSER_INFO_1024,*LPUSER_INFO_1024; -typedef struct _USER_INFO_1025 { - DWORD usri1025_code_page; -} USER_INFO_1025,*PUSER_INFO_1025,*LPUSER_INFO_1025; -typedef struct _USER_INFO_1051 { - DWORD usri1051_primary_group_id; -} USER_INFO_1051,*PUSER_INFO_1051,*LPUSER_INFO_1051; -typedef struct _USER_INFO_1052 { - LPWSTR usri1052_profile; -} USER_INFO_1052,*PUSER_INFO_1052,*LPUSER_INFO_1052; -typedef struct _USER_INFO_1053 { - LPWSTR usri1053_home_dir_drive; -} USER_INFO_1053,*PUSER_INFO_1053,*LPUSER_INFO_1053; -typedef struct _USER_MODALS_INFO_0 { - DWORD usrmod0_min_passwd_len; - DWORD usrmod0_max_passwd_age; - DWORD usrmod0_min_passwd_age; - DWORD usrmod0_force_logoff; - DWORD usrmod0_password_hist_len; -}USER_MODALS_INFO_0,*PUSER_MODALS_INFO_0,*LPUSER_MODALS_INFO_0; -typedef struct _USER_MODALS_INFO_1 { - DWORD usrmod1_role; - LPWSTR usrmod1_primary; -}USER_MODALS_INFO_1,*PUSER_MODALS_INFO_1,*LPUSER_MODALS_INFO_1; -typedef struct _USER_MODALS_INFO_2 { - LPWSTR usrmod2_domain_name; - PSID usrmod2_domain_id; -}USER_MODALS_INFO_2,*PUSER_MODALS_INFO_2,*LPUSER_MODALS_INFO_2; -typedef struct _USER_MODALS_INFO_3 { - DWORD usrmod3_lockout_duration; - DWORD usrmod3_lockout_observation_window; - DWORD usrmod3_lockout_threshold; -}USER_MODALS_INFO_3,*PUSER_MODALS_INFO_3,*LPUSER_MODALS_INFO_3; -typedef struct _USER_MODALS_INFO_1001 { - DWORD usrmod1001_min_passwd_len; -} USER_MODALS_INFO_1001,*PUSER_MODALS_INFO_1001,*LPUSER_MODALS_INFO_1001; -typedef struct _USER_MODALS_INFO_1002 { - DWORD usrmod1002_max_passwd_age; -} USER_MODALS_INFO_1002,*PUSER_MODALS_INFO_1002,*LPUSER_MODALS_INFO_1002; -typedef struct _USER_MODALS_INFO_1003 { - DWORD usrmod1003_min_passwd_age; -} USER_MODALS_INFO_1003,*PUSER_MODALS_INFO_1003,*LPUSER_MODALS_INFO_1003; -typedef struct _USER_MODALS_INFO_1004 { - DWORD usrmod1004_force_logoff; -} USER_MODALS_INFO_1004,*PUSER_MODALS_INFO_1004,*LPUSER_MODALS_INFO_1004; -typedef struct _USER_MODALS_INFO_1005 { - DWORD usrmod1005_password_hist_len; -} USER_MODALS_INFO_1005,*PUSER_MODALS_INFO_1005,*LPUSER_MODALS_INFO_1005; -typedef struct _USER_MODALS_INFO_1006 { - DWORD usrmod1006_role; -} USER_MODALS_INFO_1006,*PUSER_MODALS_INFO_1006,*LPUSER_MODALS_INFO_1006; -typedef struct _USER_MODALS_INFO_1007 { - LPWSTR usrmod1007_primary; -} USER_MODALS_INFO_1007,*PUSER_MODALS_INFO_1007,*LPUSER_MODALS_INFO_1007; -typedef struct _GROUP_INFO_0 { - LPWSTR grpi0_name; -}GROUP_INFO_0,*PGROUP_INFO_0,*LPGROUP_INFO_0; -typedef struct _GROUP_INFO_1 { - LPWSTR grpi1_name; - LPWSTR grpi1_comment; -}GROUP_INFO_1,*PGROUP_INFO_1,*LPGROUP_INFO_1; -typedef struct _GROUP_INFO_2 { - LPWSTR grpi2_name; - LPWSTR grpi2_comment; - DWORD grpi2_group_id; - DWORD grpi2_attributes; -}GROUP_INFO_2,*PGROUP_INFO_2; -typedef struct _GROUP_INFO_1002 { - LPWSTR grpi1002_comment; -} GROUP_INFO_1002,*PGROUP_INFO_1002,*LPGROUP_INFO_1002; -typedef struct _GROUP_INFO_1005 { - DWORD grpi1005_attributes; -} GROUP_INFO_1005,*PGROUP_INFO_1005,*LPGROUP_INFO_1005; -typedef struct _GROUP_USERS_INFO_0 { - LPWSTR grui0_name; -} GROUP_USERS_INFO_0,*PGROUP_USERS_INFO_0,*LPGROUP_USERS_INFO_0; -typedef struct _GROUP_USERS_INFO_1 { - LPWSTR grui1_name; - DWORD grui1_attributes; -} GROUP_USERS_INFO_1,*PGROUP_USERS_INFO_1,*LPGROUP_USERS_INFO_1; -typedef struct _LOCALGROUP_INFO_0 { - LPWSTR lgrpi0_name; -}LOCALGROUP_INFO_0,*PLOCALGROUP_INFO_0,*LPLOCALGROUP_INFO_0; -typedef struct _LOCALGROUP_INFO_1 { - LPWSTR lgrpi1_name; - LPWSTR lgrpi1_comment; -}LOCALGROUP_INFO_1,*PLOCALGROUP_INFO_1,*LPLOCALGROUP_INFO_1; -typedef struct _LOCALGROUP_INFO_1002 { - LPWSTR lgrpi1002_comment; -}LOCALGROUP_INFO_1002,*PLOCALGROUP_INFO_1002,*LPLOCALGROUP_INFO_1002; -typedef struct _LOCALGROUP_MEMBERS_INFO_0 { - PSID lgrmi0_sid; -} LOCALGROUP_MEMBERS_INFO_0,*PLOCALGROUP_MEMBERS_INFO_0,*LPLOCALGROUP_MEMBERS_INFO_0; -typedef struct _LOCALGROUP_MEMBERS_INFO_1 { - PSID lgrmi1_sid; - SID_NAME_USE lgrmi1_sidusage; - LPWSTR lgrmi1_name; -} LOCALGROUP_MEMBERS_INFO_1,*PLOCALGROUP_MEMBERS_INFO_1,*LPLOCALGROUP_MEMBERS_INFO_1; -typedef struct _LOCALGROUP_MEMBERS_INFO_2 { - PSID lgrmi2_sid; - SID_NAME_USE lgrmi2_sidusage; - LPWSTR lgrmi2_domainandname; -} LOCALGROUP_MEMBERS_INFO_2,*PLOCALGROUP_MEMBERS_INFO_2,*LPLOCALGROUP_MEMBERS_INFO_2; -typedef struct _LOCALGROUP_MEMBERS_INFO_3 { - LPWSTR lgrmi3_domainandname; -} LOCALGROUP_MEMBERS_INFO_3,*PLOCALGROUP_MEMBERS_INFO_3, -*LPLOCALGROUP_MEMBERS_INFO_3; -typedef struct _LOCALGROUP_USERS_INFO_0 { - LPWSTR lgrui0_name; -} LOCALGROUP_USERS_INFO_0,*PLOCALGROUP_USERS_INFO_0,*LPLOCALGROUP_USERS_INFO_0; -typedef struct _NET_DISPLAY_USER { - LPWSTR usri1_name; - LPWSTR usri1_comment; - DWORD usri1_flags; - LPWSTR usri1_full_name; - DWORD usri1_user_id; - DWORD usri1_next_index; -} NET_DISPLAY_USER,*PNET_DISPLAY_USER; -typedef struct _NET_DISPLAY_MACHINE { - LPWSTR usri2_name; - LPWSTR usri2_comment; - DWORD usri2_flags; - DWORD usri2_user_id; - DWORD usri2_next_index; -} NET_DISPLAY_MACHINE,*PNET_DISPLAY_MACHINE; -typedef struct _NET_DISPLAY_GROUP { - LPWSTR grpi3_name; - LPWSTR grpi3_comment; - DWORD grpi3_group_id; - DWORD grpi3_attributes; - DWORD grpi3_next_index; -} NET_DISPLAY_GROUP,*PNET_DISPLAY_GROUP; -typedef struct _ACCESS_INFO_0 { - LPTSTR acc0_resource_name; -}ACCESS_INFO_0,*PACCESS_INFO_0,*LPACCESS_INFO_0; -typedef struct _ACCESS_INFO_1 { - LPTSTR acc1_resource_name; - DWORD acc1_attr; - DWORD acc1_count; -}ACCESS_INFO_1,*PACCESS_INFO_1,*LPACCESS_INFO_1; -typedef struct _ACCESS_INFO_1002 { - DWORD acc1002_attr; -} ACCESS_INFO_1002,*PACCESS_INFO_1002,*LPACCESS_INFO_1002; -typedef struct _ACCESS_LIST { - LPTSTR acl_ugname; - DWORD acl_access; -}ACCESS_LIST,*PACCESS_LIST,*LPACCESS_LIST; -typedef struct _NETLOGON_INFO_1 { - DWORD netlog1_flags; - NET_API_STATUS netlog1_pdc_connection_status; -} NETLOGON_INFO_1,*PNETLOGON_INFO_1; -typedef struct _NETLOGON_INFO_2 { - DWORD netlog2_flags; - NET_API_STATUS netlog2_pdc_connection_status; - LPWSTR netlog2_trusted_dc_name; - NET_API_STATUS netlog2_tc_connection_status; -} NETLOGON_INFO_2,*PNETLOGON_INFO_2; -typedef struct _NETLOGON_INFO_3 { - DWORD netlog3_flags; - DWORD netlog3_logon_attempts; - DWORD netlog3_reserved1; - DWORD netlog3_reserved2; - DWORD netlog3_reserved3; - DWORD netlog3_reserved4; - DWORD netlog3_reserved5; -} NETLOGON_INFO_3,*PNETLOGON_INFO_3; - -#if 0 -/* MS has these defined, but the RxNetAccessXX functions aren't documented nor do - they exist in any headers */ -#define NetAccessAdd RxNetAccessAdd -#define NetAccessEnum RxNetAccessEnum -#define NetAccessGetInfo RxNetAccessGetInfo -#define NetAccessSetInfo RxNetAccessSetInfo -#define NetAccessDel RxNetAccessDel -#define NetAccessGetUserPerms RxNetAccessGetUserPerms -/* These are obsolete */ -NET_API_STATUS WINAPI NetAccessAdd(LPTSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetAccessEnum(LPTSTR,LPTSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetAccessGetInfo(LPTSTR,LPTSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetAccessSetInfo(LPTSTR,LPTSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetAccessDel(LPTSTR,LPTSTR); -NET_API_STATUS WINAPI NetAccessGetUserPerms(LPTSTR,LPTSTR,LPTSTR,PDWORD); -#endif - -NET_API_STATUS WINAPI NetUserAdd(LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetUserEnum(LPWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetUserGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetUserSetInfo(LPWSTR,LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetUserDel(LPWSTR,LPWSTR); -NET_API_STATUS WINAPI NetUserGetGroups(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetUserSetGroups(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD); -NET_API_STATUS WINAPI NetUserGetLocalGroups(LPWSTR,LPWSTR,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetUserModalsGet(LPWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetUserModalsSet(LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetUserChangePassword(LPWSTR,LPWSTR,LPWSTR,LPWSTR); -NET_API_STATUS WINAPI NetGroupAdd(LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetGroupAddUser(LPWSTR,LPWSTR,LPWSTR); -NET_API_STATUS WINAPI NetGroupEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetGroupGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetGroupSetInfo(LPWSTR,LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetGroupDel(LPWSTR,LPWSTR); -NET_API_STATUS WINAPI NetGroupDelUser(LPWSTR,LPWSTR,LPWSTR); -NET_API_STATUS WINAPI NetGroupGetUsers(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetGroupSetUsers(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD); -NET_API_STATUS WINAPI NetLocalGroupAdd(LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetLocalGroupAddMember(LPWSTR,LPWSTR,PSID); -NET_API_STATUS WINAPI NetLocalGroupEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetLocalGroupGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetLocalGroupSetInfo(LPWSTR,LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetLocalGroupDel(LPWSTR,LPWSTR); -NET_API_STATUS WINAPI NetLocalGroupDelMember(LPWSTR,LPWSTR,PSID); -NET_API_STATUS WINAPI NetLocalGroupGetMembers(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD, -PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetLocalGroupSetMembers(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD); -NET_API_STATUS WINAPI NetLocalGroupAddMembers(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD); -NET_API_STATUS WINAPI NetLocalGroupDelMembers(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD); -NET_API_STATUS WINAPI NetQueryDisplayInformation(LPWSTR,DWORD,DWORD,DWORD,DWORD,PDWORD,PVOID*); -NET_API_STATUS WINAPI NetGetDisplayInformationIndex(LPWSTR,DWORD,LPWSTR,PDWORD); -NET_API_STATUS WINAPI NetGetDCName(LPWSTR,LPWSTR,PBYTE*); -NET_API_STATUS WINAPI NetGetAnyDCName(LPWSTR,LPWSTR,PBYTE*); -NET_API_STATUS WINAPI I_NetLogonControl(LPWSTR,DWORD,DWORD,PBYTE*); -NET_API_STATUS WINAPI I_NetLogonControl2(LPWSTR,DWORD,DWORD,PBYTE,PBYTE*); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmalert.h b/winsup/w32api/include/lmalert.h deleted file mode 100644 index d4899bc30..000000000 --- a/winsup/w32api/include/lmalert.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef _LMALERT_H -#define _LMALERT_H -#define ALERTER_MAILSLOT TEXT("\\\\.\\MAILSLOT\\Alerter") -#define ALERT_PRINT_EVENT TEXT("PRINTING") -#define ALERT_MESSAGE_EVENT TEXT("MESSAGE") -#define ALERT_ERRORLOG_EVENT TEXT("ERRORLOG") -#define ALERT_ADMIN_EVENT TEXT("ADMIN") -#define ALERT_USER_EVENT TEXT("USER") -#define ALERT_OTHER_INFO(x) ((PBYTE)(x)+sizeof(STD_ALERT)) -#define ALERT_VAR_DATA(p) ((PBYTE)(p)+sizeof(*p)) -#define PRJOB_QSTATUS 3 -#define PRJOB_DEVSTATUS 508 -#define PRJOB_COMPLETE 4 -#define PRJOB_INTERV 8 -#define PRJOB_ 16 -#define PRJOB_DESTOFFLINE 32 -#define PRJOB_DESTPAUSED 64 -#define PRJOB_NOTIFY 128 -#define PRJOB_DESTNOPAPER 256 -#define PRJOB_DELETED 32768 -#define PRJOB_QS_QUEUED 0 -#define PRJOB_QS_PAUSED 1 -#define PRJOB_QS_SPOOLING 2 -#define PRJOB_QS_PRINTING 3 -#ifdef __cplusplus -extern "C" { -#endif -typedef struct _ADMIN_OTHER_INFO { - DWORD alrtad_errcode; - DWORD alrtad_numstrings; -}ADMIN_OTHER_INFO,*PADMIN_OTHER_INFO,*LPADMIN_OTHER_INFO; -typedef struct _STD_ALERT { - DWORD alrt_timestamp; - TCHAR alrt_eventname[EVLEN+1]; - TCHAR alrt_servicename[SNLEN+1]; -}STD_ALERT,*PSTD_ALERT,*LPSTD_ALERT; -typedef struct _ERRLOG_OTHER_INFO { - DWORD alrter_errcode; - DWORD alrter_offset; -}ERRLOG_OTHER_INFO,*PERRLOG_OTHER_INFO,*LPERRLOG_OTHER_INFO; -typedef struct _PRINT_OTHER_INFO { - DWORD alrtpr_jobid; - DWORD alrtpr_status; - DWORD alrtpr_submitted; - DWORD alrtpr_size; -}PRINT_OTHER_INFO,*PPRINT_OTHER_INFO,*LPPRINT_OTHER_INFO; -typedef struct _USER_OTHER_INFO { - DWORD alrtus_errcode; - DWORD alrtus_numstrings; -}USER_OTHER_INFO,*PUSER_OTHER_INFO,*LPUSER_OTHER_INFO; -NET_API_STATUS WINAPI NetAlertRaise(LPCWSTR,PVOID,DWORD); -NET_API_STATUS WINAPI NetAlertRaiseEx(LPCWSTR,PVOID,DWORD,LPCWSTR); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmapibuf.h b/winsup/w32api/include/lmapibuf.h deleted file mode 100644 index 2340d6d10..000000000 --- a/winsup/w32api/include/lmapibuf.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _LMAPIBUF_H -#define _LMAPIBUF_H -#ifdef __cplusplus -extern "C" { -#endif -NET_API_STATUS WINAPI NetApiBufferAllocate(DWORD,PVOID*); -NET_API_STATUS WINAPI NetApiBufferFree(PVOID); -NET_API_STATUS WINAPI NetApiBufferReallocate(PVOID,DWORD,PVOID*); -NET_API_STATUS WINAPI NetApiBufferSize(PVOID,PDWORD); -NET_API_STATUS WINAPI NetapipBufferAllocate(DWORD,PVOID*); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmat.h b/winsup/w32api/include/lmat.h deleted file mode 100644 index 4d2cf8c11..000000000 --- a/winsup/w32api/include/lmat.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef _LMAT_H -#define _LMAT_H -#ifdef __cplusplus -extern "C" { -#endif -#define JOB_RUN_PERIODICALLY 1 -#define JOB_EXEC_ERROR 2 -#define JOB_RUNS_TODAY 4 -#define JOB_ADD_CURRENT_DATE 8 -#define JOB_NONINTERACTIVE 16 -#define JOB_INPUT_FLAGS (JOB_RUN_PERIODICALLY|JOB_ADD_CURRENT_DATE|JOB_NONINTERACTIVE) -#define JOB_OUTPUT_FLAGS (JOB_RUN_PERIODICALLY|JOB_EXEC_ERROR|JOB_RUNS_TODAY|JOB_NONINTERACTIVE) -typedef struct _AT_ENUM { - DWORD JobId; - DWORD JobTime; - DWORD DaysOfMonth; - UCHAR DaysOfWeek; - UCHAR Flags; - LPWSTR Command; -} AT_ENUM,*PAT_ENUM,*LPAT_ENUM; -typedef struct _AT_INFO { - DWORD JobTime; - DWORD DaysOfMonth; - UCHAR DaysOfWeek; - UCHAR Flags; - LPWSTR Command; -} AT_INFO,*PAT_INFO,*LPAT_INFO; -NET_API_STATUS WINAPI NetScheduleJobAdd(LPWSTR,PBYTE,LPDWORD); -NET_API_STATUS WINAPI NetScheduleJobDel(LPWSTR,DWORD,DWORD); -NET_API_STATUS WINAPI NetScheduleJobEnum(LPWSTR,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetScheduleJobGetInfo(LPWSTR,DWORD,PBYTE*); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmaudit.h b/winsup/w32api/include/lmaudit.h deleted file mode 100644 index 1d944b2cb..000000000 --- a/winsup/w32api/include/lmaudit.h +++ /dev/null @@ -1,246 +0,0 @@ -#ifndef _LMAUDIT_H -#define _LMAUDIT_H -#ifdef __cplusplus -extern "C" { -#endif -#define REVISED_AUDIT_ENTRY_STRUCT -#define LOGFLAGS_FORWARD 0 -#define LOGFLAGS_BACKWARD 1 -#define LOGFLAGS_SEEK 2 -#define ACTION_LOCKOUT 0 -#define ACTION_ADMINUNLOCK 1 -#define AE_GUEST 0 -#define AE_USER 1 -#define AE_ADMIN 2 -#define AE_NORMAL 0 -#define AE_USERLIMIT 0 -#define AE_GENERAL 0 -#define AE_ERROR 1 -#define AE_SESSDIS 1 -#define AE_BADPW 1 -#define AE_AUTODIS 2 -#define AE_UNSHARE 2 -#define AE_ADMINPRIVREQD 2 -#define AE_ADMINDIS 3 -#define AE_NOACCESSPERM 3 -#define AE_ACCRESTRICT 4 -#define AE_NORMAL_CLOSE 0 -#define AE_SES_CLOSE 1 -#define AE_ADMIN_CLOSE 2 -#define AE_LIM_UNKNOWN 0 -#define AE_LIM_LOGONHOURS 1 -#define AE_LIM_EXPIRED 2 -#define AE_LIM_INVAL_WKSTA 3 -#define AE_LIM_DISABLED 4 -#define AE_LIM_DELETED 5 -#define AE_MOD 0 -#define AE_DELETE 1 -#define AE_ADD 2 -#define AE_UAS_USER 0 -#define AE_UAS_GROUP 1 -#define AE_UAS_MODALS 2 -#define SVAUD_SERVICE 1 -#define SVAUD_GOODSESSLOGON 6 -#define SVAUD_BADSESSLOGON 24 -#define SVAUD_SESSLOGON (SVAUD_GOODSESSLOGON|SVAUD_BADSESSLOGON) -#define SVAUD_GOODNETLOGON 96 -#define SVAUD_BADNETLOGON 384 -#define SVAUD_NETLOGON (SVAUD_GOODNETLOGON|SVAUD_BADNETLOGON) -#define SVAUD_LOGON (SVAUD_NETLOGON|SVAUD_SESSLOGON) -#define SVAUD_GOODUSE 0x600 -#define SVAUD_BADUSE 0x1800 -#define SVAUD_USE (SVAUD_GOODUSE|SVAUD_BADUSE) -#define SVAUD_USERLIST 8192 -#define SVAUD_PERMISSIONS 16384 -#define SVAUD_RESOURCE 32768 -#define SVAUD_LOGONLIM 65536 -#define AA_AUDIT_ALL 1 -#define AA_A_OWNER 4 -#define AA_CLOSE 8 -#define AA_S_OPEN 16 -#define AA_S_WRITE 32 -#define AA_S_CREATE 32 -#define AA_S_DELETE 64 -#define AA_S_ACL 128 -#define AA_S_ALL 253 -#define AA_F_OPEN 256 -#define AA_F_WRITE 512 -#define AA_F_CREATE 512 -#define AA_F_DELETE 1024 -#define AA_F_ACL 2048 -#define AA_F_ALL (AA_F_OPEN|AA_F_WRITE|AA_F_DELETE|AA_F_ACL) -#define AA_A_OPEN 2048 -#define AA_A_WRITE 4096 -#define AA_A_CREATE 8192 -#define AA_A_DELETE 16384 -#define AA_A_ACL 32768 -#define AA_A_ALL (AA_F_OPEN|AA_F_WRITE|AA_F_DELETE|AA_F_ACL) -typedef struct _AUDIT_ENTRY { - DWORD ae_len; - DWORD ae_reserved; - DWORD ae_time; - DWORD ae_type; - DWORD ae_data_offset; - DWORD ae_data_size; -} AUDIT_ENTRY,*PAUDIT_ENTRY,*LPAUDIT_ENTRY; -typedef struct _HLOG { - DWORD time; - DWORD last_flags; - DWORD offset; - DWORD rec_offset; -} HLOG,*PHLOG,*LPHLOG; -typedef struct _AE_SRVSTATUS { - DWORD ae_sv_status; -} AE_SRVSTATUS,*PAE_SRVSTATUS,*LPAE_SRVSTATUS; -typedef struct _AE_SESSLOGON { - DWORD ae_so_compname; - DWORD ae_so_username; - DWORD ae_so_privilege; -} AE_SESSLOGON,*PAE_SESSLOGON,*LPAE_SESSLOGON; -typedef struct _AE_SESSLOGOFF { - DWORD ae_sf_compname; - DWORD ae_sf_username; - DWORD ae_sf_reason; -} AE_SESSLOGOFF,*PAE_SESSLOGOFF,*LPAE_SESSLOGOFF; -typedef struct _AE_SESSPWERR { - DWORD ae_sp_compname; - DWORD ae_sp_username; -} AE_SESSPWERR,*PAE_SESSPWERR,*LPAE_SESSPWERR; -typedef struct _AE_CONNSTART { - DWORD ae_ct_compname; - DWORD ae_ct_username; - DWORD ae_ct_netname; - DWORD ae_ct_connid; -} AE_CONNSTART,*PAE_CONNSTART,*LPAE_CONNSTART; -typedef struct _AE_CONNSTOP { - DWORD ae_cp_compname; - DWORD ae_cp_username; - DWORD ae_cp_netname; - DWORD ae_cp_connid; - DWORD ae_cp_reason; -} AE_CONNSTOP,*PAE_CONNSTOP,*LPAE_CONNSTOP; -typedef struct _AE_CONNREJ { - DWORD ae_cr_compname; - DWORD ae_cr_username; - DWORD ae_cr_netname; - DWORD ae_cr_reason; -} AE_CONNREJ,*PAE_CONNREJ,*LPAE_CONNREJ; -typedef struct _AE_RESACCESS { - DWORD ae_ra_compname; - DWORD ae_ra_username; - DWORD ae_ra_resname; - DWORD ae_ra_operation; - DWORD ae_ra_returncode; - DWORD ae_ra_restype; - DWORD ae_ra_fileid; -} AE_RESACCESS,*PAE_RESACCESS,*LPAE_RESACCESS; -typedef struct _AE_RESACCESSREJ { - DWORD ae_rr_compname; - DWORD ae_rr_username; - DWORD ae_rr_resname; - DWORD ae_rr_operation; -} AE_RESACCESSREJ,*PAE_RESACCESSREJ,*LPAE_RESACCESSREJ; -typedef struct _AE_CLOSEFILE { - DWORD ae_cf_compname; - DWORD ae_cf_username; - DWORD ae_cf_resname; - DWORD ae_cf_fileid; - DWORD ae_cf_duration; - DWORD ae_cf_reason; -} AE_CLOSEFILE,*PAE_CLOSEFILE,*LPAE_CLOSEFILE; -typedef struct _AE_SERVICESTAT { - DWORD ae_ss_compname; - DWORD ae_ss_username; - DWORD ae_ss_svcname; - DWORD ae_ss_status; - DWORD ae_ss_code; - DWORD ae_ss_text; - DWORD ae_ss_returnval; -} AE_SERVICESTAT,*PAE_SERVICESTAT,*LPAE_SERVICESTAT; -typedef struct _AE_ACLMOD { - DWORD ae_am_compname; - DWORD ae_am_username; - DWORD ae_am_resname; - DWORD ae_am_action; - DWORD ae_am_datalen; -} AE_ACLMOD,*PAE_ACLMOD,*LPAE_ACLMOD; -typedef struct _AE_UASMOD { - DWORD ae_um_compname; - DWORD ae_um_username; - DWORD ae_um_resname; - DWORD ae_um_rectype; - DWORD ae_um_action; - DWORD ae_um_datalen; -} AE_UASMOD,*PAE_UASMOD,*LPAE_UASMOD; -typedef struct _AE_NETLOGON { - DWORD ae_no_compname; - DWORD ae_no_username; - DWORD ae_no_privilege; - DWORD ae_no_authflags; -} AE_NETLOGON,*PAE_NETLOGON,*LPAE_NETLOGON; -typedef struct _AE_NETLOGOFF { - DWORD ae_nf_compname; - DWORD ae_nf_username; - DWORD ae_nf_reserved1; - DWORD ae_nf_reserved2; -} AE_NETLOGOFF,*PAE_NETLOGOFF,*LPAE_NETLOGOFF; -typedef struct _AE_ACCLIM { - DWORD ae_al_compname; - DWORD ae_al_username; - DWORD ae_al_resname; - DWORD ae_al_limit; -} AE_ACCLIM,*PAE_ACCLIM,*LPAE_ACCLIM; -typedef struct _AE_LOCKOUT { - DWORD ae_lk_compname; - DWORD ae_lk_username; - DWORD ae_lk_action; - DWORD ae_lk_bad_pw_count; -} AE_LOCKOUT,*PAE_LOCKOUT,*LPAE_LOCKOUT; -typedef struct _AE_GENERIC { - DWORD ae_ge_msgfile; - DWORD ae_ge_msgnum; - DWORD ae_ge_params; - DWORD ae_ge_param1; - DWORD ae_ge_param2; - DWORD ae_ge_param3; - DWORD ae_ge_param4; - DWORD ae_ge_param5; - DWORD ae_ge_param6; - DWORD ae_ge_param7; - DWORD ae_ge_param8; - DWORD ae_ge_param9; -} AE_GENERIC,*PAE_GENERIC,*LPAE_GENERIC; -NET_API_STATUS WINAPI NetAuditClear(LPCWSTR,LPCWSTR,LPCWSTR); -NET_API_STATUS WINAPI NetAuditRead(LPTSTR,LPTSTR,LPHLOG,DWORD,PDWORD,DWORD,DWORD,PBYTE*,DWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetAuditWrite(DWORD,PBYTE,DWORD,LPTSTR,PBYTE); - -/* These conflict with struct typedefs, why? */ -#define AE_SRVSTATUS 0 -#define AE_SESSLOGON 1 -#define AE_SESSLOGOFF 2 -#define AE_SESSPWERR 3 -#define AE_CONNSTART 4 -#define AE_CONNSTOP 5 -#define AE_CONNREJ 6 -#define AE_RESACCESS 7 -#define AE_RESACCESSREJ 8 -#define AE_CLOSEFILE 9 -#define AE_SERVICESTAT 11 -#define AE_ACLMOD 12 -#define AE_UASMOD 13 -#define AE_NETLOGON 14 -#define AE_NETLOGOFF 15 -#define AE_NETLOGDENIED 16 -#define AE_ACCLIMITEXCD 17 -#define AE_RESACCESS2 18 -#define AE_ACLMODFAIL 19 -#define AE_LOCKOUT 20 -#define AE_GENERIC_TYPE 21 -#define AE_SRVSTART 0 -#define AE_SRVPAUSED 1 -#define AE_SRVCONT 2 -#define AE_SRVSTOP 3 -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmbrowsr.h b/winsup/w32api/include/lmbrowsr.h deleted file mode 100644 index 85e40bbdb..000000000 --- a/winsup/w32api/include/lmbrowsr.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef _LMBROWSR_H -#define _LMBROWSR_H -#ifdef __cplusplus -extern "C" { -#endif -#define BROWSER_ROLE_PDC 1 -#define BROWSER_ROLE_BDC 2 -typedef struct _BROWSER_STATISTICS { - LARGE_INTEGER StatisticsStartTime; - LARGE_INTEGER NumberOfServerAnnouncements; - LARGE_INTEGER NumberOfDomainAnnouncements; - ULONG NumberOfElectionPackets; - ULONG NumberOfMailslotWrites; - ULONG NumberOfGetBrowserServerListRequests; - ULONG NumberOfServerEnumerations; - ULONG NumberOfDomainEnumerations; - ULONG NumberOfOtherEnumerations; - ULONG NumberOfMissedServerAnnouncements; - ULONG NumberOfMissedMailslotDatagrams; - ULONG NumberOfMissedGetBrowserServerListRequests; - ULONG NumberOfFailedServerAnnounceAllocations; - ULONG NumberOfFailedMailslotAllocations; - ULONG NumberOfFailedMailslotReceives; - ULONG NumberOfFailedMailslotWrites; - ULONG NumberOfFailedMailslotOpens; - ULONG NumberOfDuplicateMasterAnnouncements; -LARGE_INTEGER NumberOfIllegalDatagrams; -} BROWSER_STATISTICS,*PBROWSER_STATISTICS,*LPBROWSER_STATISTICS; -typedef struct _BROWSER_STATISTICS_100 { - LARGE_INTEGER StartTime; - LARGE_INTEGER NumberOfServerAnnouncements; - LARGE_INTEGER NumberOfDomainAnnouncements; - ULONG NumberOfElectionPackets; - ULONG NumberOfMailslotWrites; - ULONG NumberOfGetBrowserServerListRequests; - LARGE_INTEGER NumberOfIllegalDatagrams; -} BROWSER_STATISTICS_100,*PBROWSER_STATISTICS_100; -typedef struct _BROWSER_STATISTICS_101 { - LARGE_INTEGER StartTime; - LARGE_INTEGER NumberOfServerAnnouncements; - LARGE_INTEGER NumberOfDomainAnnouncements; - ULONG NumberOfElectionPackets; - ULONG NumberOfMailslotWrites; - ULONG NumberOfGetBrowserServerListRequests; - LARGE_INTEGER NumberOfIllegalDatagrams; - ULONG NumberOfMissedServerAnnouncements; - ULONG NumberOfMissedMailslotDatagrams; - ULONG NumberOfMissedGetBrowserServerListRequests; - ULONG NumberOfFailedServerAnnounceAllocations; - ULONG NumberOfFailedMailslotAllocations; - ULONG NumberOfFailedMailslotReceives; - ULONG NumberOfFailedMailslotWrites; - ULONG NumberOfFailedMailslotOpens; - ULONG NumberOfDuplicateMasterAnnouncements; -} BROWSER_STATISTICS_101,*PBROWSER_STATISTICS_101; - -NET_API_STATUS WINAPI I_BrowserServerEnum(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,PDWORD); -NET_API_STATUS WINAPI I_BrowserServerEnumEx(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,LPCWSTR); -NET_API_STATUS I_BrowserQueryEmulatedDomains(LPWSTR,PBYTE*,PDWORD); -NET_API_STATUS I_BrowserQueryOtherDomains(LPCWSTR,PBYTE*,PDWORD,PDWORD); -NET_API_STATUS I_BrowserResetNetlogonState(LPCWSTR); -NET_API_STATUS I_BrowserSetNetlogonState(LPWSTR,LPWSTR,LPWSTR,DWORD); -NET_API_STATUS I_BrowserQueryStatistics(LPCWSTR,LPBROWSER_STATISTICS*); -NET_API_STATUS I_BrowserResetStatistics(LPCWSTR); -WORD I_BrowserServerEnumForXactsrv(LPCWSTR,LPCWSTR,ULONG,USHORT,PVOID,WORD,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,LPCWSTR,PWORD); -NET_API_STATUS I_BrowserDebugTrace(PWCHAR,PCHAR); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmchdev.h b/winsup/w32api/include/lmchdev.h deleted file mode 100644 index c7a6814f7..000000000 --- a/winsup/w32api/include/lmchdev.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef _LMCHDEV_H -#define _LMCHDEV_H -#ifdef __cplusplus -extern "C" { -#endif -#define CHARDEVQ_NO_REQUESTS (-1) -#define CHARDEV_CLOSE 0 -#define CHARDEVQ_MAX_PRIORITY 1 -#define CHARDEVQ_DEV_PARMNUM 1 -#define HANDLE_INFO_LEVEL_1 1 -#define HANDLE_CHARTIME_PARMNUM 1 -#define HANDLE_CHARCOUNT_PARMNUM 2 -#define CHARDEV_STAT_OPENED 2 -#define CHARDEVQ_PRIORITY_PARMNUM 2 -#define CHARDEVQ_DEVS_PARMNUM 3 -#define CHARDEV_STAT_ERROR 4 -#define CHARDEVQ_NUMUSERS_PARMNUM 4 -#define CHARDEVQ_NUMAHEAD_PARMNUM 5 -#define CHARDEVQ_DEF_PRIORITY 5 -#define CHARDEVQ_PRIORITY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+CHARDEVQ_PRIORITY_PARMNUM) -#define CHARDEVQ_DEVS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+CHARDEVQ_DEVS_PARMNUM) -#define CHARDEVQ_MIN_PRIORITY 9 -typedef struct _CHARDEV_INFO_0 { LPWSTR ch0_dev; } CHARDEV_INFO_0,*PCHARDEV_INFO_0,*LPCHARDEV_INFO_0; -typedef struct _CHARDEV_INFO_1 { - LPWSTR ch1_dev; - DWORD ch1_status; - LPWSTR ch1_username; - DWORD ch1_time; -} CHARDEV_INFO_1,*PCHARDEV_INFO_1,*LPCHARDEV_INFO_1; -typedef struct _CHARDEVQ_INFO_0 { LPWSTR cq0_dev; } CHARDEVQ_INFO_0,*PCHARDEVQ_INFO_0,*LPCHARDEVQ_INFO_0; -typedef struct _CHARDEVQ_INFO_1 { - LPWSTR cq1_dev; - DWORD cq1_priority; - LPWSTR cq1_devs; - DWORD cq1_numusers; - DWORD cq1_numahead; -} CHARDEVQ_INFO_1,*PCHARDEVQ_INFO_1,*LPCHARDEVQ_INFO_1; -typedef struct _CHARDEVQ_INFO_1002 { DWORD cq1002_priority; } CHARDEVQ_INFO_1002,*PCHARDEVQ_INFO_1002,*LPCHARDEVQ_INFO_1002; -typedef struct _CHARDEVQ_INFO_1003 { LPWSTR cq1003_devs; } CHARDEVQ_INFO_1003,*PCHARDEVQ_INFO_1003,*LPCHARDEVQ_INFO_1003; -typedef struct _HANDLE_INFO_1 { - DWORD hdli1_chartime; - DWORD hdli1_charcount; -}HANDLE_INFO_1,*PHANDLE_INFO_1,*LPHANDLE_INFO_1; -NET_API_STATUS WINAPI NetCharDevEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetCharDevGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetCharDevControl(LPCWSTR,LPCWSTR,DWORD); -NET_API_STATUS WINAPI NetCharDevQEnum(LPCWSTR,LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetCharDevQGetInfo(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetCharDevQSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetCharDevQPurge(LPCWSTR,LPCWSTR); -NET_API_STATUS WINAPI NetCharDevQPurgeSelf(LPCWSTR,LPCWSTR,LPCWSTR); -NET_API_STATUS WINAPI NetHandleGetInfo(HANDLE,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetHandleSetInfo(HANDLE,DWORD,PBYTE,DWORD,PDWORD); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmconfig.h b/winsup/w32api/include/lmconfig.h deleted file mode 100644 index 746a5ddc8..000000000 --- a/winsup/w32api/include/lmconfig.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _LMCONFIG_H -#define _LMCONFIG_H -#ifdef __cplusplus -extern "C" { -#endif -#define REVISED_CONFIG_APIS -typedef struct _CONFIG_INFO_0 { - LPWSTR cfgi0_key; - LPWSTR cfgi0_data; -} CONFIG_INFO_0,*PCONFIG_INFO_0,*LPCONFIG_INFO_0; -NET_API_STATUS WINAPI NetConfigGet(LPCWSTR,LPCWSTR,LPCWSTR,PBYTE*); -NET_API_STATUS WINAPI NetConfigGetAll(LPCWSTR,LPCWSTR,PBYTE*); -NET_API_STATUS WINAPI NetConfigSet(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE,DWORD); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmcons.h b/winsup/w32api/include/lmcons.h deleted file mode 100644 index c82837f25..000000000 --- a/winsup/w32api/include/lmcons.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef _LMCONS_H -#define _LMCONS_H -#define MESSAGE_FILENAME TEXT("NETMSG") -#define OS2MSG_FILENAME TEXT("BASE") -#define HELP_MSG_FILENAME TEXT("NETH") -#define NET_API_FUNCTION __stdcall -#define NET_API_STATUS DWORD -#define API_RET_TYPE NET_API_STATUS -#define MIN_LANMAN_MESSAGE_ID NERR_BASE -#define MAX_LANMAN_MESSAGE_ID 5799 -#ifndef CNLEN /* also in nddeapi.h */ -#define CNLEN 15 -#define UNCLEN (CNLEN + 2) -#endif -#define DNLEN 15 -#define LM20_CNLEN 15 -#define LM20_DNLEN 15 -#define LM20_SNLEN 15 -#define LM20_STXTLEN 63 -#define LM20_UNCLEN (LM20_CNLEN+2) -#define LM20_NNLEN 12 -#define LM20_RMLEN (LM20_UNCLEN+1+LM20_NNLEN) -#define NNLEN 80 -#define RMLEN (UNCLEN+1+NNLEN) -#define SNLEN 80 -#define STXTLEN 256 -#define PATHLEN 256 -#define LM20_PATHLEN 256 -#define DEVLEN 80 -#define LM20_DEVLEN 8 -#define EVLEN 16 -#define UNLEN 256 -#define LM20_UNLEN 20 -#define GNLEN UNLEN -#define LM20_GNLEN LM20_UNLEN -#define PWLEN 256 -#define LM20_PWLEN 14 -#define SHPWLEN 8 -#define CLTYPE_LEN 12 -#define MAXCOMMENTSZ 256 -#define LM20_MAXCOMMENTSZ 48 -#define QNLEN NNLEN -#define LM20_QNLEN LM20_NNLEN -#define ALERTSZ 128 -#define MAXDEVENTRIES (sizeof(int)*8) -#define NETBIOS_NAME_LEN 16 -#define MAX_PREFERRED_LENGTH ((DWORD)-1) -#define CRYPT_KEY_LEN 7 -#define CRYPT_TXT_LEN 8 -#define ENCRYPTED_PWLEN 16 -#define SESSION_PWLEN 24 -#define SESSION_CRYPT_KLEN 21 -#define PARMNUM_ALL 0 -#define PARM_ERROR_UNKNOWN ((DWORD)-1) -#define PARM_ERROR_NONE 0 -#define PARMNUM_BASE_INFOLEVEL 1000 -#define PLATFORM_ID_DOS 300 -#define PLATFORM_ID_OS2 400 -#define PLATFORM_ID_NT 500 -#define PLATFORM_ID_OSF 600 -#define PLATFORM_ID_VMS 700 -/* new typedef in W2K */ -#if defined( _WIN32_WINNT ) || defined( WINNT ) || defined( FORCE_UNICODE ) -#define LMSTR LPWSTR -#define LMCSTR LPCWSTR -#else -#define LMSTR LPSTR -#define LMCSTR LPCSTR -#endif - -#endif diff --git a/winsup/w32api/include/lmerr.h b/winsup/w32api/include/lmerr.h deleted file mode 100644 index 308a91253..000000000 --- a/winsup/w32api/include/lmerr.h +++ /dev/null @@ -1,302 +0,0 @@ -#ifndef _LMERR_H -#define _LMERR_H -#include -#define NERR_Success 0 -#define NERR_BASE 2100 -#define NERR_NetNotStarted (NERR_BASE+2) -#define NERR_UnknownServer (NERR_BASE+3) -#define NERR_ShareMem (NERR_BASE+4) -#define NERR_NoNetworkResource (NERR_BASE+5) -#define NERR_RemoteOnly (NERR_BASE+6) -#define NERR_DevNotRedirected (NERR_BASE+7) -#define NERR_ServerNotStarted (NERR_BASE+14) -#define NERR_ItemNotFound (NERR_BASE+15) -#define NERR_UnknownDevDir (NERR_BASE+16) -#define NERR_RedirectedPath (NERR_BASE+17) -#define NERR_DuplicateShare (NERR_BASE+18) -#define NERR_NoRoom (NERR_BASE+19) -#define NERR_TooManyItems (NERR_BASE+21) -#define NERR_InvalidMaxUsers (NERR_BASE+22) -#define NERR_BufTooSmall (NERR_BASE+23) -#define NERR_RemoteErr (NERR_BASE+27) -#define NERR_LanmanIniError (NERR_BASE+31) -#define NERR_NetworkError (NERR_BASE+36) -#define NERR_WkstaInconsistentState (NERR_BASE+37) -#define NERR_WkstaNotStarted (NERR_BASE+38) -#define NERR_BrowserNotStarted (NERR_BASE+39) -#define NERR_InternalError (NERR_BASE+40) -#define NERR_BadTransactConfig (NERR_BASE+41) -#define NERR_InvalidAPI (NERR_BASE+42) -#define NERR_BadEventName (NERR_BASE+43) -#define NERR_DupNameReboot (NERR_BASE+44) -#define NERR_CfgCompNotFound (NERR_BASE+46) -#define NERR_CfgParamNotFound (NERR_BASE+47) -#define NERR_LineTooLong (NERR_BASE+49) -#define NERR_QNotFound (NERR_BASE+50) -#define NERR_JobNotFound (NERR_BASE+51) -#define NERR_DestNotFound (NERR_BASE+52) -#define NERR_DestExists (NERR_BASE+53) -#define NERR_QExists (NERR_BASE+54) -#define NERR_QNoRoom (NERR_BASE+55) -#define NERR_JobNoRoom (NERR_BASE+56) -#define NERR_DestNoRoom (NERR_BASE+57) -#define NERR_DestIdle (NERR_BASE+58) -#define NERR_DestInvalidOp (NERR_BASE+59) -#define NERR_ProcNoRespond (NERR_BASE+60) -#define NERR_SpoolerNotLoaded (NERR_BASE+61) -#define NERR_DestInvalidState (NERR_BASE+62) -#define NERR_QInvalidState (NERR_BASE+63) -#define NERR_JobInvalidState (NERR_BASE+64) -#define NERR_SpoolNoMemory (NERR_BASE+65) -#define NERR_DriverNotFound (NERR_BASE+66) -#define NERR_DataTypeInvalid (NERR_BASE+67) -#define NERR_ProcNotFound (NERR_BASE+68) -#define NERR_ServiceTableLocked (NERR_BASE+80) -#define NERR_ServiceTableFull (NERR_BASE+81) -#define NERR_ServiceInstalled (NERR_BASE+82) -#define NERR_ServiceEntryLocked (NERR_BASE+83) -#define NERR_ServiceNotInstalled (NERR_BASE+84) -#define NERR_BadServiceName (NERR_BASE+85) -#define NERR_ServiceCtlTimeout (NERR_BASE+86) -#define NERR_ServiceCtlBusy (NERR_BASE+87) -#define NERR_BadServiceProgName (NERR_BASE+88) -#define NERR_ServiceNotCtrl (NERR_BASE+89) -#define NERR_ServiceKillProc (NERR_BASE+90) -#define NERR_ServiceCtlNotValid (NERR_BASE+91) -#define NERR_NotInDispatchTbl (NERR_BASE+92) -#define NERR_BadControlRecv (NERR_BASE+93) -#define NERR_ServiceNotStarting (NERR_BASE+94) -#define NERR_AlreadyLoggedOn (NERR_BASE+100) -#define NERR_NotLoggedOn (NERR_BASE+101) -#define NERR_BadUsername (NERR_BASE+102) -#define NERR_BadPassword (NERR_BASE+103) -#define NERR_UnableToAddName_W (NERR_BASE+104) -#define NERR_UnableToAddName_F (NERR_BASE+105) -#define NERR_UnableToDelName_W (NERR_BASE+106) -#define NERR_UnableToDelName_F (NERR_BASE+107) -#define NERR_LogonsPaused (NERR_BASE+109) -#define NERR_LogonServerConflict (NERR_BASE+110) -#define NERR_LogonNoUserPath (NERR_BASE+111) -#define NERR_LogonScriptError (NERR_BASE+112) -#define NERR_StandaloneLogon (NERR_BASE+114) -#define NERR_LogonServerNotFound (NERR_BASE+115) -#define NERR_LogonDomainExists (NERR_BASE+116) -#define NERR_NonValidatedLogon (NERR_BASE+117) -#define NERR_ACFNotFound (NERR_BASE+119) -#define NERR_GroupNotFound (NERR_BASE+120) -#define NERR_UserNotFound (NERR_BASE+121) -#define NERR_ResourceNotFound (NERR_BASE+122) -#define NERR_GroupExists (NERR_BASE+123) -#define NERR_UserExists (NERR_BASE+124) -#define NERR_ResourceExists (NERR_BASE+125) -#define NERR_NotPrimary (NERR_BASE+126) -#define NERR_ACFNotLoaded (NERR_BASE+127) -#define NERR_ACFNoRoom (NERR_BASE+128) -#define NERR_ACFFileIOFail (NERR_BASE+129) -#define NERR_ACFTooManyLists (NERR_BASE+130) -#define NERR_UserLogon (NERR_BASE+131) -#define NERR_ACFNoParent (NERR_BASE+132) -#define NERR_CanNotGrowSegment (NERR_BASE+133) -#define NERR_SpeGroupOp (NERR_BASE+134) -#define NERR_NotInCache (NERR_BASE+135) -#define NERR_UserInGroup (NERR_BASE+136) -#define NERR_UserNotInGroup (NERR_BASE+137) -#define NERR_AccountUndefined (NERR_BASE+138) -#define NERR_AccountExpired (NERR_BASE+139) -#define NERR_InvalidWorkstation (NERR_BASE+140) -#define NERR_InvalidLogonHours (NERR_BASE+141) -#define NERR_PasswordExpired (NERR_BASE+142) -#define NERR_PasswordCantChange (NERR_BASE+143) -#define NERR_PasswordHistConflict (NERR_BASE+144) -#define NERR_PasswordTooShort (NERR_BASE+145) -#define NERR_PasswordTooRecent (NERR_BASE+146) -#define NERR_InvalidDatabase (NERR_BASE+147) -#define NERR_DatabaseUpToDate (NERR_BASE+148) -#define NERR_SyncRequired (NERR_BASE+149) -#define NERR_UseNotFound (NERR_BASE+150) -#define NERR_BadAsgType (NERR_BASE+151) -#define NERR_DeviceIsShared (NERR_BASE+152) -#define NERR_NoComputerName (NERR_BASE+170) -#define NERR_MsgAlreadyStarted (NERR_BASE+171) -#define NERR_MsgInitFailed (NERR_BASE+172) -#define NERR_NameNotFound (NERR_BASE+173) -#define NERR_AlreadyForwarded (NERR_BASE+174) -#define NERR_AddForwarded (NERR_BASE+175) -#define NERR_AlreadyExists (NERR_BASE+176) -#define NERR_TooManyNames (NERR_BASE+177) -#define NERR_DelComputerName (NERR_BASE+178) -#define NERR_LocalForward (NERR_BASE+179) -#define NERR_GrpMsgProcessor (NERR_BASE+180) -#define NERR_PausedRemote (NERR_BASE+181) -#define NERR_BadReceive (NERR_BASE+182) -#define NERR_NameInUse (NERR_BASE+183) -#define NERR_MsgNotStarted (NERR_BASE+184) -#define NERR_NotLocalName (NERR_BASE+185) -#define NERR_NoForwardName (NERR_BASE+186) -#define NERR_RemoteFull (NERR_BASE+187) -#define NERR_NameNotForwarded (NERR_BASE+188) -#define NERR_TruncatedBroadcast (NERR_BASE+189) -#define NERR_InvalidDevice (NERR_BASE+194) -#define NERR_WriteFault (NERR_BASE+195) -#define NERR_DuplicateName (NERR_BASE+197) -#define NERR_DeleteLater (NERR_BASE+198) -#define NERR_IncompleteDel (NERR_BASE+199) -#define NERR_MultipleNets (NERR_BASE+200) -#define NERR_NetNameNotFound (NERR_BASE+210) -#define NERR_DeviceNotShared (NERR_BASE+211) -#define NERR_ClientNameNotFound (NERR_BASE+212) -#define NERR_FileIdNotFound (NERR_BASE+214) -#define NERR_ExecFailure (NERR_BASE+215) -#define NERR_TmpFile (NERR_BASE+216) -#define NERR_TooMuchData (NERR_BASE+217) -#define NERR_DeviceShareConflict (NERR_BASE+218) -#define NERR_BrowserTableIncomplete (NERR_BASE+219) -#define NERR_NotLocalDomain (NERR_BASE+220) -#define NERR_DevInvalidOpCode (NERR_BASE+231) -#define NERR_DevNotFound (NERR_BASE+232) -#define NERR_DevNotOpen (NERR_BASE+233) -#define NERR_BadQueueDevString (NERR_BASE+234) -#define NERR_BadQueuePriority (NERR_BASE+235) -#define NERR_NoCommDevs (NERR_BASE+237) -#define NERR_QueueNotFound (NERR_BASE+238) -#define NERR_BadDevString (NERR_BASE+240) -#define NERR_BadDev (NERR_BASE+241) -#define NERR_InUseBySpooler (NERR_BASE+242) -#define NERR_CommDevInUse (NERR_BASE+243) -#define NERR_InvalidComputer (NERR_BASE+251) -#define NERR_MaxLenExceeded (NERR_BASE+254) -#define NERR_BadComponent (NERR_BASE+256) -#define NERR_CantType (NERR_BASE+257) -#define NERR_TooManyEntries (NERR_BASE+262) -#define NERR_ProfileFileTooBig (NERR_BASE+270) -#define NERR_ProfileOffset (NERR_BASE+271) -#define NERR_ProfileCleanup (NERR_BASE+272) -#define NERR_ProfileUnknownCmd (NERR_BASE+273) -#define NERR_ProfileLoadErr (NERR_BASE+274) -#define NERR_ProfileSaveErr (NERR_BASE+275) -#define NERR_LogOverflow (NERR_BASE+277) -#define NERR_LogFileChanged (NERR_BASE+278) -#define NERR_LogFileCorrupt (NERR_BASE+279) -#define NERR_SourceIsDir (NERR_BASE+280) -#define NERR_BadSource (NERR_BASE+281) -#define NERR_BadDest (NERR_BASE+282) -#define NERR_DifferentServers (NERR_BASE+283) -#define NERR_RunSrvPaused (NERR_BASE+285) -#define NERR_ErrCommRunSrv (NERR_BASE+289) -#define NERR_ErrorExecingGhost (NERR_BASE+291) -#define NERR_ShareNotFound (NERR_BASE+292) -#define NERR_InvalidLana (NERR_BASE+300) -#define NERR_OpenFiles (NERR_BASE+301) -#define NERR_ActiveConns (NERR_BASE+302) -#define NERR_BadPasswordCore (NERR_BASE+303) -#define NERR_DevInUse (NERR_BASE+304) -#define NERR_LocalDrive (NERR_BASE+305) -#define NERR_AlertExists (NERR_BASE+330) -#define NERR_TooManyAlerts (NERR_BASE+331) -#define NERR_NoSuchAlert (NERR_BASE+332) -#define NERR_BadRecipient (NERR_BASE+333) -#define NERR_AcctLimitExceeded (NERR_BASE+334) -#define NERR_InvalidLogSeek (NERR_BASE+340) -#define NERR_BadUasConfig (NERR_BASE+350) -#define NERR_InvalidUASOp (NERR_BASE+351) -#define NERR_LastAdmin (NERR_BASE+352) -#define NERR_DCNotFound (NERR_BASE+353) -#define NERR_LogonTrackingError (NERR_BASE+354) -#define NERR_NetlogonNotStarted (NERR_BASE+355) -#define NERR_CanNotGrowUASFile (NERR_BASE+356) -#define NERR_TimeDiffAtDC (NERR_BASE+357) -#define NERR_PasswordMismatch (NERR_BASE+358) -#define NERR_NoSuchServer (NERR_BASE+360) -#define NERR_NoSuchSession (NERR_BASE+361) -#define NERR_NoSuchConnection (NERR_BASE+362) -#define NERR_TooManyServers (NERR_BASE+363) -#define NERR_TooManySessions (NERR_BASE+364) -#define NERR_TooManyConnections (NERR_BASE+365) -#define NERR_TooManyFiles (NERR_BASE+366) -#define NERR_NoAlternateServers (NERR_BASE+367) -#define NERR_TryDownLevel (NERR_BASE+370) -#define NERR_UPSDriverNotStarted (NERR_BASE+380) -#define NERR_UPSInvalidConfig (NERR_BASE+381) -#define NERR_UPSInvalidCommPort (NERR_BASE+382) -#define NERR_UPSSignalAsserted (NERR_BASE+383) -#define NERR_UPSShutdownFailed (NERR_BASE+384) -#define NERR_BadDosRetCode (NERR_BASE+400) -#define NERR_ProgNeedsExtraMem (NERR_BASE+401) -#define NERR_BadDosFunction (NERR_BASE+402) -#define NERR_RemoteBootFailed (NERR_BASE+403) -#define NERR_BadFileCheckSum (NERR_BASE+404) -#define NERR_NoRplBootSystem (NERR_BASE+405) -#define NERR_RplLoadrNetBiosErr (NERR_BASE+406) -#define NERR_RplLoadrDiskErr (NERR_BASE+407) -#define NERR_ImageParamErr (NERR_BASE+408) -#define NERR_TooManyImageParams (NERR_BASE+409) -#define NERR_NonDosFloppyUsed (NERR_BASE+410) -#define NERR_RplBootRestart (NERR_BASE+411) -#define NERR_RplSrvrCallFailed (NERR_BASE+412) -#define NERR_CantConnectRplSrvr (NERR_BASE+413) -#define NERR_CantOpenImageFile (NERR_BASE+414) -#define NERR_CallingRplSrvr (NERR_BASE+415) -#define NERR_StartingRplBoot (NERR_BASE+416) -#define NERR_RplBootServiceTerm (NERR_BASE+417) -#define NERR_RplBootStartFailed (NERR_BASE+418) -#define NERR_RPL_CONNECTED (NERR_BASE+419) -#define NERR_BrowserConfiguredToNotRun (NERR_BASE+450) -#define NERR_RplNoAdaptersStarted (NERR_BASE+510) -#define NERR_RplBadRegistry (NERR_BASE+511) -#define NERR_RplBadDatabase (NERR_BASE+512) -#define NERR_RplRplfilesShare (NERR_BASE+513) -#define NERR_RplNotRplServer (NERR_BASE+514) -#define NERR_RplCannotEnum (NERR_BASE+515) -#define NERR_RplWkstaInfoCorrupted (NERR_BASE+516) -#define NERR_RplWkstaNotFound (NERR_BASE+517) -#define NERR_RplWkstaNameUnavailable (NERR_BASE+518) -#define NERR_RplProfileInfoCorrupted (NERR_BASE+519) -#define NERR_RplProfileNotFound (NERR_BASE+520) -#define NERR_RplProfileNameUnavailable (NERR_BASE+521) -#define NERR_RplProfileNotEmpty (NERR_BASE+522) -#define NERR_RplConfigInfoCorrupted (NERR_BASE+523) -#define NERR_RplConfigNotFound (NERR_BASE+524) -#define NERR_RplAdapterInfoCorrupted (NERR_BASE+525) -#define NERR_RplInternal (NERR_BASE+526) -#define NERR_RplVendorInfoCorrupted (NERR_BASE+527) -#define NERR_RplBootInfoCorrupted (NERR_BASE+528) -#define NERR_RplWkstaNeedsUserAcct (NERR_BASE+529) -#define NERR_RplNeedsRPLUSERAcct (NERR_BASE+530) -#define NERR_RplBootNotFound (NERR_BASE+531) -#define NERR_RplIncompatibleProfile (NERR_BASE+532) -#define NERR_RplAdapterNameUnavailable (NERR_BASE+533) -#define NERR_RplConfigNotEmpty (NERR_BASE+534) -#define NERR_RplBootInUse (NERR_BASE+535) -#define NERR_RplBackupDatabase (NERR_BASE+536) -#define NERR_RplAdapterNotFound (NERR_BASE+537) -#define NERR_RplVendorNotFound (NERR_BASE+538) -#define NERR_RplVendorNameUnavailable (NERR_BASE+539) -#define NERR_RplBootNameUnavailable (NERR_BASE+540) -#define NERR_RplConfigNameUnavailable (NERR_BASE+541) -#define NERR_DfsInternalCorruption (NERR_BASE+560) -#define NERR_DfsVolumeDataCorrupt (NERR_BASE+561) -#define NERR_DfsNoSuchVolume (NERR_BASE+562) -#define NERR_DfsVolumeAlreadyExists (NERR_BASE+563) -#define NERR_DfsAlreadyShared (NERR_BASE+564) -#define NERR_DfsNoSuchShare (NERR_BASE+565) -#define NERR_DfsNotALeafVolume (NERR_BASE+566) -#define NERR_DfsLeafVolume (NERR_BASE+567) -#define NERR_DfsVolumeHasMultipleServers (NERR_BASE+568) -#define NERR_DfsCantCreateJunctionPoint (NERR_BASE+569) -#define NERR_DfsServerNotDfsAware (NERR_BASE+570) -#define NERR_DfsBadRenamePath (NERR_BASE+571) -#define NERR_DfsVolumeIsOffline (NERR_BASE+572) -#define NERR_DfsNoSuchServer (NERR_BASE+573) -#define NERR_DfsCyclicalName (NERR_BASE+574) -#define NERR_DfsNotSupportedInServerDfs (NERR_BASE+575) -#define NERR_DfsDuplicateService (NERR_BASE+576) -#define NERR_DfsCantRemoveLastServerShare (NERR_BASE+577) -#define NERR_DfsVolumeIsInterDfs (NERR_BASE+578) -#define NERR_DfsInconsistent (NERR_BASE+579) -#define NERR_DfsServerUpgraded (NERR_BASE+580) -#define NERR_DfsDataIsIdentical (NERR_BASE+581) -#define NERR_DfsCantRemoveDfsRoot (NERR_BASE+582) -#define NERR_DfsChildOrParentInDfs (NERR_BASE+583) -#define NERR_DfsInternalError (NERR_BASE+590) -#define MAX_NERR (NERR_BASE+899) -#endif diff --git a/winsup/w32api/include/lmerrlog.h b/winsup/w32api/include/lmerrlog.h deleted file mode 100644 index 7948af28f..000000000 --- a/winsup/w32api/include/lmerrlog.h +++ /dev/null @@ -1,207 +0,0 @@ -#ifndef _LMERRLOG_H -#define _LMERRLOG_H -#ifdef __cplusplus -extern "C" { -#endif -#define ERRLOG_BASE 3100 -#define ERRLOG2_BASE 5700 -#define LOGFLAGS_FORWARD 0 -#define LOGFLAGS_BACKWARD 1 -#define LOGFLAGS_SEEK 2 -#define NELOG_Internal_Error ERRLOG_BASE -#define NELOG_Resource_Shortage (ERRLOG_BASE+1) -#define NELOG_Unable_To_Lock_Segment (ERRLOG_BASE+2) -#define NELOG_Unable_To_Unlock_Segment (ERRLOG_BASE+3) -#define NELOG_Uninstall_Service (ERRLOG_BASE+4) -#define NELOG_Init_Exec_Fail (ERRLOG_BASE+5) -#define NELOG_Ncb_Error (ERRLOG_BASE+6) -#define NELOG_Net_Not_Started (ERRLOG_BASE+7) -#define NELOG_Ioctl_Error (ERRLOG_BASE+8) -#define NELOG_System_Semaphore (ERRLOG_BASE+9) -#define NELOG_Init_OpenCreate_Err (ERRLOG_BASE+10) -#define NELOG_NetBios (ERRLOG_BASE+11) -#define NELOG_SMB_Illegal (ERRLOG_BASE+12) -#define NELOG_Service_Fail (ERRLOG_BASE+13) -#define NELOG_Entries_Lost (ERRLOG_BASE+14) -#define NELOG_Init_Seg_Overflow (ERRLOG_BASE+20) -#define NELOG_Srv_No_Mem_Grow (ERRLOG_BASE+21) -#define NELOG_Access_File_Bad (ERRLOG_BASE+22) -#define NELOG_Srvnet_Not_Started (ERRLOG_BASE+23) -#define NELOG_Init_Chardev_Err (ERRLOG_BASE+24) -#define NELOG_Remote_API (ERRLOG_BASE+25) -#define NELOG_Ncb_TooManyErr (ERRLOG_BASE+26) -#define NELOG_Mailslot_err (ERRLOG_BASE+27) -#define NELOG_ReleaseMem_Alert (ERRLOG_BASE+28) -#define NELOG_AT_cannot_write (ERRLOG_BASE+29) -#define NELOG_Cant_Make_Msg_File (ERRLOG_BASE+30) -#define NELOG_Exec_Netservr_NoMem (ERRLOG_BASE+31) -#define NELOG_Server_Lock_Failure (ERRLOG_BASE+32) -#define NELOG_Msg_Shutdown (ERRLOG_BASE+40) -#define NELOG_Msg_Sem_Shutdown (ERRLOG_BASE+41) -#define NELOG_Msg_Log_Err (ERRLOG_BASE+50) -#define NELOG_VIO_POPUP_ERR (ERRLOG_BASE+51) -#define NELOG_Msg_Unexpected_SMB_Type (ERRLOG_BASE+52) -#define NELOG_Wksta_Infoseg (ERRLOG_BASE+60) -#define NELOG_Wksta_Compname (ERRLOG_BASE+61) -#define NELOG_Wksta_BiosThreadFailure (ERRLOG_BASE+62) -#define NELOG_Wksta_IniSeg (ERRLOG_BASE+63) -#define NELOG_Wksta_HostTab_Full (ERRLOG_BASE+64) -#define NELOG_Wksta_Bad_Mailslot_SMB (ERRLOG_BASE+65) -#define NELOG_Wksta_UASInit (ERRLOG_BASE+66) -#define NELOG_Wksta_SSIRelogon (ERRLOG_BASE+67) -#define NELOG_Build_Name (ERRLOG_BASE+70) -#define NELOG_Name_Expansion (ERRLOG_BASE+71) -#define NELOG_Message_Send (ERRLOG_BASE+72) -#define NELOG_Mail_Slt_Err (ERRLOG_BASE+73) -#define NELOG_AT_cannot_read (ERRLOG_BASE+74) -#define NELOG_AT_sched_err (ERRLOG_BASE+75) -#define NELOG_AT_schedule_file_created (ERRLOG_BASE+76) -#define NELOG_Srvnet_NB_Open (ERRLOG_BASE+77) -#define NELOG_AT_Exec_Err (ERRLOG_BASE+78) -#define NELOG_Lazy_Write_Err (ERRLOG_BASE+80) -#define NELOG_HotFix (ERRLOG_BASE+81) -#define NELOG_HardErr_From_Server (ERRLOG_BASE+82) -#define NELOG_LocalSecFail1 (ERRLOG_BASE+83) -#define NELOG_LocalSecFail2 (ERRLOG_BASE+84) -#define NELOG_LocalSecFail3 (ERRLOG_BASE+85) -#define NELOG_LocalSecGeneralFail (ERRLOG_BASE+86) -#define NELOG_NetWkSta_Internal_Error (ERRLOG_BASE+90) -#define NELOG_NetWkSta_No_Resource (ERRLOG_BASE+91) -#define NELOG_NetWkSta_SMB_Err (ERRLOG_BASE+92) -#define NELOG_NetWkSta_VC_Err (ERRLOG_BASE+93) -#define NELOG_NetWkSta_Stuck_VC_Err (ERRLOG_BASE+94) -#define NELOG_NetWkSta_NCB_Err (ERRLOG_BASE+95) -#define NELOG_NetWkSta_Write_Behind_Err (ERRLOG_BASE+96) -#define NELOG_NetWkSta_Reset_Err (ERRLOG_BASE+97) -#define NELOG_NetWkSta_Too_Many (ERRLOG_BASE+98) -#define NELOG_Srv_Thread_Failure (ERRLOG_BASE+104) -#define NELOG_Srv_Close_Failure (ERRLOG_BASE+105) -#define NELOG_ReplUserCurDir (ERRLOG_BASE+106) -#define NELOG_ReplCannotMasterDir (ERRLOG_BASE+107) -#define NELOG_ReplUpdateError (ERRLOG_BASE+108) -#define NELOG_ReplLostMaster (ERRLOG_BASE+109) -#define NELOG_NetlogonAuthDCFail (ERRLOG_BASE+110) -#define NELOG_ReplLogonFailed (ERRLOG_BASE+111) -#define NELOG_ReplNetErr (ERRLOG_BASE+112) -#define NELOG_ReplMaxFiles (ERRLOG_BASE+113) -#define NELOG_ReplMaxTreeDepth (ERRLOG_BASE+114) -#define NELOG_ReplBadMsg (ERRLOG_BASE+115) -#define NELOG_ReplSysErr (ERRLOG_BASE+116) -#define NELOG_ReplUserLoged (ERRLOG_BASE+117) -#define NELOG_ReplBadImport (ERRLOG_BASE+118) -#define NELOG_ReplBadExport (ERRLOG_BASE+119) -#define NELOG_ReplSignalFileErr (ERRLOG_BASE+120) -#define NELOG_DiskFT (ERRLOG_BASE+121) -#define NELOG_ReplAccessDenied (ERRLOG_BASE+122) -#define NELOG_NetlogonFailedPrimary (ERRLOG_BASE+123) -#define NELOG_NetlogonPasswdSetFailed (ERRLOG_BASE+124) -#define NELOG_NetlogonTrackingError (ERRLOG_BASE+125) -#define NELOG_NetlogonSyncError (ERRLOG_BASE+126) -#define NELOG_UPS_PowerOut (ERRLOG_BASE+130) -#define NELOG_UPS_Shutdown (ERRLOG_BASE+131) -#define NELOG_UPS_CmdFileError (ERRLOG_BASE+132) -#define NELOG_UPS_CannotOpenDriver (ERRLOG_BASE+133) -#define NELOG_UPS_PowerBack (ERRLOG_BASE+134) -#define NELOG_UPS_CmdFileConfig (ERRLOG_BASE+135) -#define NELOG_UPS_CmdFileExec (ERRLOG_BASE+136) -#define NELOG_Missing_Parameter (ERRLOG_BASE+150) -#define NELOG_Invalid_Config_Line (ERRLOG_BASE+151) -#define NELOG_Invalid_Config_File (ERRLOG_BASE+152) -#define NELOG_File_Changed (ERRLOG_BASE+153) -#define NELOG_Files_Dont_Fit (ERRLOG_BASE+154) -#define NELOG_Wrong_DLL_Version (ERRLOG_BASE+155) -#define NELOG_Error_in_DLL (ERRLOG_BASE+156) -#define NELOG_System_Error (ERRLOG_BASE+157) -#define NELOG_FT_ErrLog_Too_Large (ERRLOG_BASE+158) -#define NELOG_FT_Update_In_Progress (ERRLOG_BASE+159) -#define NELOG_OEM_Code (ERRLOG_BASE+199) -#define NELOG_NetlogonSSIInitError ERRLOG2_BASE -#define NELOG_NetlogonFailedToUpdateTrustList (ERRLOG2_BASE+1) -#define NELOG_NetlogonFailedToAddRpcInterface (ERRLOG2_BASE+2) -#define NELOG_NetlogonFailedToReadMailslot (ERRLOG2_BASE+3) -#define NELOG_NetlogonFailedToRegisterSC (ERRLOG2_BASE+4) -#define NELOG_NetlogonChangeLogCorrupt (ERRLOG2_BASE+5) -#define NELOG_NetlogonFailedToCreateShare (ERRLOG2_BASE+6) -#define NELOG_NetlogonDownLevelLogonFailed (ERRLOG2_BASE+7) -#define NELOG_NetlogonDownLevelLogoffFailed (ERRLOG2_BASE+8) -#define NELOG_NetlogonNTLogonFailed (ERRLOG2_BASE+9) -#define NELOG_NetlogonNTLogoffFailed (ERRLOG2_BASE+10) -#define NELOG_NetlogonPartialSyncCallSuccess (ERRLOG2_BASE+11) -#define NELOG_NetlogonPartialSyncCallFailed (ERRLOG2_BASE+12) -#define NELOG_NetlogonFullSyncCallSuccess (ERRLOG2_BASE+13) -#define NELOG_NetlogonFullSyncCallFailed (ERRLOG2_BASE+14) -#define NELOG_NetlogonPartialSyncSuccess (ERRLOG2_BASE+15) -#define NELOG_NetlogonPartialSyncFailed (ERRLOG2_BASE+16) -#define NELOG_NetlogonFullSyncSuccess (ERRLOG2_BASE+17) -#define NELOG_NetlogonFullSyncFailed (ERRLOG2_BASE+18) -#define NELOG_NetlogonAuthNoDomainController (ERRLOG2_BASE+19) -#define NELOG_NetlogonAuthNoTrustLsaSecret (ERRLOG2_BASE+20) -#define NELOG_NetlogonAuthNoTrustSamAccount (ERRLOG2_BASE+21) -#define NELOG_NetlogonServerAuthFailed (ERRLOG2_BASE+22) -#define NELOG_NetlogonServerAuthNoTrustSamAccount (ERRLOG2_BASE+23) -#define NELOG_FailedToRegisterSC (ERRLOG2_BASE+24) -#define NELOG_FailedToSetServiceStatus (ERRLOG2_BASE+25) -#define NELOG_FailedToGetComputerName (ERRLOG2_BASE+26) -#define NELOG_DriverNotLoaded (ERRLOG2_BASE+27) -#define NELOG_NoTranportLoaded (ERRLOG2_BASE+28) -#define NELOG_NetlogonFailedDomainDelta (ERRLOG2_BASE+29) -#define NELOG_NetlogonFailedGlobalGroupDelta (ERRLOG2_BASE+30) -#define NELOG_NetlogonFailedLocalGroupDelta (ERRLOG2_BASE+31) -#define NELOG_NetlogonFailedUserDelta (ERRLOG2_BASE+32) -#define NELOG_NetlogonFailedPolicyDelta (ERRLOG2_BASE+33) -#define NELOG_NetlogonFailedTrustedDomainDelta (ERRLOG2_BASE+34) -#define NELOG_NetlogonFailedAccountDelta (ERRLOG2_BASE+35) -#define NELOG_NetlogonFailedSecretDelta (ERRLOG2_BASE+36) -#define NELOG_NetlogonSystemError (ERRLOG2_BASE+37) -#define NELOG_NetlogonDuplicateMachineAccounts (ERRLOG2_BASE+38) -#define NELOG_NetlogonTooManyGlobalGroups (ERRLOG2_BASE+39) -#define NELOG_NetlogonBrowserDriver (ERRLOG2_BASE+40) -#define NELOG_NetlogonAddNameFailure (ERRLOG2_BASE+41) -#define NELOG_RplMessages (ERRLOG2_BASE+42) -#define NELOG_RplXnsBoot (ERRLOG2_BASE+43) -#define NELOG_RplSystem (ERRLOG2_BASE+44) -#define NELOG_RplWkstaTimeout (ERRLOG2_BASE+45) -#define NELOG_RplWkstaFileOpen (ERRLOG2_BASE+46) -#define NELOG_RplWkstaFileRead (ERRLOG2_BASE+47) -#define NELOG_RplWkstaMemory (ERRLOG2_BASE+48) -#define NELOG_RplWkstaFileChecksum (ERRLOG2_BASE+49) -#define NELOG_RplWkstaFileLineCount (ERRLOG2_BASE+50) -#define NELOG_RplWkstaBbcFile (ERRLOG2_BASE+51) -#define NELOG_RplWkstaFileSize (ERRLOG2_BASE+52) -#define NELOG_RplWkstaInternal (ERRLOG2_BASE+53) -#define NELOG_RplWkstaWrongVersion (ERRLOG2_BASE+54) -#define NELOG_RplWkstaNetwork (ERRLOG2_BASE+55) -#define NELOG_RplAdapterResource (ERRLOG2_BASE+56) -#define NELOG_RplFileCopy (ERRLOG2_BASE+57) -#define NELOG_RplFileDelete (ERRLOG2_BASE+58) -#define NELOG_RplFilePerms (ERRLOG2_BASE+59) -#define NELOG_RplCheckConfigs (ERRLOG2_BASE+60) -#define NELOG_RplCreateProfiles (ERRLOG2_BASE+61) -#define NELOG_RplRegistry (ERRLOG2_BASE+62) -#define NELOG_RplReplaceRPLDISK (ERRLOG2_BASE+63) -#define NELOG_RplCheckSecurity (ERRLOG2_BASE+64) -#define NELOG_RplBackupDatabase (ERRLOG2_BASE+65) -#define NELOG_RplInitDatabase (ERRLOG2_BASE+66) -#define NELOG_RplRestoreDatabaseFailure (ERRLOG2_BASE+67) -#define NELOG_RplRestoreDatabaseSuccess (ERRLOG2_BASE+68) -#define NELOG_RplInitRestoredDatabase (ERRLOG2_BASE+69) -#define NELOG_NetlogonSessionTypeWrong (ERRLOG2_BASE+70) -#define REVISED_ERROR_LOG_STRUCT -typedef struct _ERROR_LOG { - DWORD el_len; - DWORD el_reserved; - DWORD el_time; - DWORD el_error; - LPWSTR el_name; - LPWSTR el_text; - LPBYTE el_data; - DWORD el_data_size; - DWORD el_nstrings; -} ERROR_LOG,*PERROR_LOG,*LPERROR_LOG; -NET_API_STATUS WINAPI NetErrorLogClear(LPCWSTR,LPCWSTR,LPBYTE); -NET_API_STATUS WINAPI NetErrorLogRead(LPCWSTR,LPWSTR,LPHLOG,DWORD,LPDWORD,DWORD,DWORD,LPBYTE*,DWORD,LPDWORD,LPDWORD); -NET_API_STATUS WINAPI NetErrorLogWrite(LPBYTE,DWORD,LPCWSTR,LPBYTE,DWORD,LPBYTE,DWORD,LPBYTE); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmmsg.h b/winsup/w32api/include/lmmsg.h deleted file mode 100644 index 01689812e..000000000 --- a/winsup/w32api/include/lmmsg.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _LMMSG_H -#define _LMMSG_H -#ifdef __cplusplus -extern "C" { -#endif -#define MSGNAME_NOT_FORWARDED 0 -#define MSGNAME_FORWARDED_TO 4 -#define MSGNAME_FORWARDED_FROM 16 -typedef struct _MSG_INFO_0 { LPWSTR msgi0_name; }MSG_INFO_0,*PMSG_INFO_0,*LPMSG_INFO_0; -typedef struct _MSG_INFO_1 { - LPWSTR msgi1_name; - DWORD msgi1_forward_flag; - LPWSTR msgi1_forward; -}MSG_INFO_1,*PMSG_INFO_1,*LPMSG_INFO_1; -NET_API_STATUS WINAPI NetMessageBufferSend(LPCWSTR,LPCWSTR,LPCWSTR,PBYTE,DWORD); -NET_API_STATUS WINAPI NetMessageNameAdd(LPCWSTR,LPCWSTR); -NET_API_STATUS WINAPI NetMessageNameDel(LPCWSTR,LPCWSTR); -NET_API_STATUS WINAPI NetMessageNameEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetMessageNameGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmremutl.h b/winsup/w32api/include/lmremutl.h deleted file mode 100644 index 553bdbd5b..000000000 --- a/winsup/w32api/include/lmremutl.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef _LMREMUTL_H -#define _LMREMUTL_H -#ifdef __cplusplus -extern "C" { -#endif -#define SUPPORTS_REMOTE_ADMIN_PROTOCOL 2 -#define SUPPORTS_RPC 4 -#define SUPPORTS_SAM_PROTOCOL 8 -#define SUPPORTS_UNICODE 16 -#define SUPPORTS_LOCAL 32 -#define SUPPORTS_ANY 0xFFFFFFFF -#define NO_PERMISSION_REQUIRED 1 -#define ALLOCATE_RESPONSE 2 -#define USE_SPECIFIC_TRANSPORT 0x80000000 -#ifndef DESC_CHAR_UNICODE -typedef CHAR DESC_CHAR; -#else -typedef WCHAR DESC_CHAR; -#endif -typedef DESC_CHAR *LPDESC; -typedef struct _TIME_OF_DAY_INFO { - DWORD tod_elapsedt; - DWORD tod_msecs; - DWORD tod_hours; - DWORD tod_mins; - DWORD tod_secs; - DWORD tod_hunds; - LONG tod_timezone; - DWORD tod_tinterval; - DWORD tod_day; - DWORD tod_month; - DWORD tod_year; - DWORD tod_weekday; -} TIME_OF_DAY_INFO,*PTIME_OF_DAY_INFO,*LPTIME_OF_DAY_INFO; -NET_API_STATUS WINAPI NetRemoteTOD(LPCWSTR,PBYTE*); -NET_API_STATUS WINAPI NetRemoteComputerSupports(LPCWSTR,DWORD,PDWORD); -NET_API_STATUS RxRemoteApi(DWORD,LPCWSTR,LPDESC,LPDESC,LPDESC,LPDESC,LPDESC,LPDESC,LPDESC,DWORD,... ); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmrepl.h b/winsup/w32api/include/lmrepl.h deleted file mode 100644 index f0ca544a7..000000000 --- a/winsup/w32api/include/lmrepl.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef _LMREPL_H -#define _LMREPL_H -#ifdef __cplusplus -extern "C" { -#endif -#define REPL_ROLE_EXPORT 1 -#define REPL_ROLE_IMPORT 2 -#define REPL_ROLE_BOTH 3 -#define REPL_INTERVAL_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+0) -#define REPL_PULSE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+1) -#define REPL_GUARDTIME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+2) -#define REPL_RANDOM_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+3) -#define REPL_UNLOCK_NOFORCE 0 -#define REPL_UNLOCK_FORCE 1 -#define REPL_STATE_OK 0 -#define REPL_STATE_NO_MASTER 1 -#define REPL_STATE_NO_SYNC 2 -#define REPL_STATE_NEVER_REPLICATED 3 -#define REPL_INTEGRITY_FILE 1 -#define REPL_INTEGRITY_TREE 2 -#define REPL_EXTENT_FILE 1 -#define REPL_EXTENT_TREE 2 -#define REPL_EXPORT_INTEGRITY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+0) -#define REPL_EXPORT_EXTENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+1) -typedef struct _REPL_INFO_0 { - DWORD rp0_role; - LPWSTR rp0_exportpath; - LPWSTR rp0_exportlist; - LPWSTR rp0_importpath; - LPWSTR rp0_importlist; - LPWSTR rp0_logonusername; - DWORD rp0_interval; - DWORD rp0_pulse; - DWORD rp0_guardtime; - DWORD rp0_random; -} REPL_INFO_0,*PREPL_INFO_0,*LPREPL_INFO_0; -typedef struct _REPL_INFO_1000 { DWORD rp1000_interval; } REPL_INFO_1000,*PREPL_INFO_1000,*LPREPL_INFO_1000; -typedef struct _REPL_INFO_1001 { DWORD rp1001_pulse; } REPL_INFO_1001,*PREPL_INFO_1001,*LPREPL_INFO_1001; -typedef struct _REPL_INFO_1002 { DWORD rp1002_guardtime; } REPL_INFO_1002,*PREPL_INFO_1002,*LPREPL_INFO_1002; -typedef struct _REPL_INFO_1003 { DWORD rp1003_random; } REPL_INFO_1003,*PREPL_INFO_1003,*LPREPL_INFO_1003; - -NET_API_STATUS WINAPI NetReplGetInfo(LPCWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetReplSetInfo(LPCWSTR,DWORD,PBYTE,PDWORD); -typedef struct _REPL_EDIR_INFO_0 { - LPWSTR rped0_dirname; -} REPL_EDIR_INFO_0,*PREPL_EDIR_INFO_0,*LPREPL_EDIR_INFO_0; -typedef struct _REPL_EDIR_INFO_1 { - LPWSTR rped1_dirname; - DWORD rped1_integrity; - DWORD rped1_extent; -} REPL_EDIR_INFO_1,*PREPL_EDIR_INFO_1,*LPREPL_EDIR_INFO_1; -typedef struct _REPL_EDIR_INFO_2 { - LPWSTR rped2_dirname; - DWORD rped2_integrity; - DWORD rped2_extent; - DWORD rped2_lockcount; - DWORD rped2_locktime; -} REPL_EDIR_INFO_2,*PREPL_EDIR_INFO_2,*LPREPL_EDIR_INFO_2; -typedef struct _REPL_EDIR_INFO_1000 { - DWORD rped1000_integrity; -} REPL_EDIR_INFO_1000,*PREPL_EDIR_INFO_1000,*LPREPL_EDIR_INFO_1000; -typedef struct _REPL_EDIR_INFO_1001 { - DWORD rped1001_extent; -} REPL_EDIR_INFO_1001,*PREPL_EDIR_INFO_1001,*LPREPL_EDIR_INFO_1001; -typedef struct _REPL_IDIR_INFO_0 { LPWSTR rpid0_dirname; } REPL_IDIR_INFO_0,*PREPL_IDIR_INFO_0,*LPREPL_IDIR_INFO_0; -typedef struct _REPL_IDIR_INFO_1 { - LPWSTR rpid1_dirname; - DWORD rpid1_state; - LPWSTR rpid1_mastername; - DWORD rpid1_last_update_time; - DWORD rpid1_lockcount; - DWORD rpid1_locktime; -} REPL_IDIR_INFO_1,*PREPL_IDIR_INFO_1,*LPREPL_IDIR_INFO_1; -NET_API_STATUS WINAPI NetReplExportDirAdd(LPCWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetReplExportDirDel(LPCWSTR,LPCWSTR); -NET_API_STATUS WINAPI NetReplExportDirEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetReplExportDirGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetReplExportDirSetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetReplExportDirLock(LPCWSTR,LPCWSTR); -NET_API_STATUS WINAPI NetReplExportDirUnlock(LPCWSTR,LPCWSTR,DWORD); -NET_API_STATUS WINAPI NetReplImportDirAdd(LPCWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetReplImportDirDel(LPCWSTR,LPCWSTR); -NET_API_STATUS WINAPI NetReplImportDirEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetReplImportDirGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetReplImportDirLock(LPCWSTR,LPCWSTR); -NET_API_STATUS WINAPI NetReplImportDirUnlock(LPCWSTR,LPCWSTR,DWORD); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmserver.h b/winsup/w32api/include/lmserver.h deleted file mode 100644 index f9445884c..000000000 --- a/winsup/w32api/include/lmserver.h +++ /dev/null @@ -1,602 +0,0 @@ -#ifndef _LMSERVER_H -#define _LMSERVER_H -#ifdef __cplusplus -extern "C" { -#endif -#include -#include -typedef struct _SERVER_INFO_100 { -DWORD sv100_platform_id; -LPWSTR sv100_name; -} SERVER_INFO_100,*PSERVER_INFO_100,*LPSERVER_INFO_100; -typedef struct _SERVER_INFO_101 { -DWORD sv101_platform_id; -LPWSTR sv101_name; -DWORD sv101_version_major; -DWORD sv101_version_minor; -DWORD sv101_type; -LPWSTR sv101_comment; -} SERVER_INFO_101,*PSERVER_INFO_101,*LPSERVER_INFO_101; -typedef struct _SERVER_INFO_102 { -DWORD sv102_platform_id; -LPWSTR sv102_name; -DWORD sv102_version_major; -DWORD sv102_version_minor; -DWORD sv102_type; -LPWSTR sv102_comment; -DWORD sv102_users; -LONG sv102_disc; -BOOL sv102_hidden; -DWORD sv102_announce; -DWORD sv102_anndelta; -DWORD sv102_licenses; -LPWSTR sv102_userpath; -} SERVER_INFO_102,*PSERVER_INFO_102,*LPSERVER_INFO_102; -typedef struct _SERVER_INFO_402 { -DWORD sv402_ulist_mtime; -DWORD sv402_glist_mtime; -DWORD sv402_alist_mtime; -LPWSTR sv402_alerts; -DWORD sv402_security; -DWORD sv402_numadmin; -DWORD sv402_lanmask; -LPWSTR sv402_guestacct; -DWORD sv402_chdevs; -DWORD sv402_chdevq; -DWORD sv402_chdevjobs; -DWORD sv402_connections; -DWORD sv402_shares; -DWORD sv402_openfiles; -DWORD sv402_sessopens; -DWORD sv402_sessvcs; -DWORD sv402_sessreqs; -DWORD sv402_opensearch; -DWORD sv402_activelocks; -DWORD sv402_numreqbuf; -DWORD sv402_sizreqbuf; -DWORD sv402_numbigbuf; -DWORD sv402_numfiletasks; -DWORD sv402_alertsched; -DWORD sv402_erroralert; -DWORD sv402_logonalert; -DWORD sv402_accessalert; -DWORD sv402_diskalert; -DWORD sv402_netioalert; -DWORD sv402_maxauditsz; -LPWSTR sv402_srvheuristics; -} SERVER_INFO_402,*PSERVER_INFO_402,*LPSERVER_INFO_402; -typedef struct _SERVER_INFO_403 { -DWORD sv403_ulist_mtime; -DWORD sv403_glist_mtime; -DWORD sv403_alist_mtime; -LPWSTR sv403_alerts; -DWORD sv403_security; -DWORD sv403_numadmin; -DWORD sv403_lanmask; -LPWSTR sv403_guestacct; -DWORD sv403_chdevs; -DWORD sv403_chdevq; -DWORD sv403_chdevjobs; -DWORD sv403_connections; -DWORD sv403_shares; -DWORD sv403_openfiles; -DWORD sv403_sessopens; -DWORD sv403_sessvcs; -DWORD sv403_sessreqs; -DWORD sv403_opensearch; -DWORD sv403_activelocks; -DWORD sv403_numreqbuf; -DWORD sv403_sizreqbuf; -DWORD sv403_numbigbuf; -DWORD sv403_numfiletasks; -DWORD sv403_alertsched; -DWORD sv403_erroralert; -DWORD sv403_logonalert; -DWORD sv403_accessalert; -DWORD sv403_diskalert; -DWORD sv403_netioalert; -DWORD sv403_maxauditsz; -LPWSTR sv403_srvheuristics; -DWORD sv403_auditedevents; -DWORD sv403_autoprofile; -LPWSTR sv403_autopath; -} SERVER_INFO_403,*PSERVER_INFO_403,*LPSERVER_INFO_403; -typedef struct _SERVER_INFO_502 { -DWORD sv502_sessopens; -DWORD sv502_sessvcs; -DWORD sv502_opensearch; -DWORD sv502_sizreqbuf; -DWORD sv502_initworkitems; -DWORD sv502_maxworkitems; -DWORD sv502_rawworkitems; -DWORD sv502_irpstacksize; -DWORD sv502_maxrawbuflen; -DWORD sv502_sessusers; -DWORD sv502_sessconns; -DWORD sv502_maxpagedmemoryusage; -DWORD sv502_maxnonpagedmemoryusage; -BOOL sv502_enablesoftcompat; -BOOL sv502_enableforcedlogoff; -BOOL sv502_timesource; -BOOL sv502_acceptdownlevelapis; -BOOL sv502_lmannounce; -} SERVER_INFO_502,*PSERVER_INFO_502,*LPSERVER_INFO_502; -typedef struct _SERVER_INFO_503 { -DWORD sv503_sessopens; -DWORD sv503_sessvcs; -DWORD sv503_opensearch; -DWORD sv503_sizreqbuf; -DWORD sv503_initworkitems; -DWORD sv503_maxworkitems; -DWORD sv503_rawworkitems; -DWORD sv503_irpstacksize; -DWORD sv503_maxrawbuflen; -DWORD sv503_sessusers; -DWORD sv503_sessconns; -DWORD sv503_maxpagedmemoryusage; -DWORD sv503_maxnonpagedmemoryusage; -BOOL sv503_enablesoftcompat; -BOOL sv503_enableforcedlogoff; -BOOL sv503_timesource; -BOOL sv503_acceptdownlevelapis; -BOOL sv503_lmannounce; -LPWSTR sv503_domain; -DWORD sv503_maxcopyreadlen; -DWORD sv503_maxcopywritelen; -DWORD sv503_minkeepsearch; -DWORD sv503_maxkeepsearch; -DWORD sv503_minkeepcomplsearch; -DWORD sv503_maxkeepcomplsearch; -DWORD sv503_threadcountadd; -DWORD sv503_numblockthreads; -DWORD sv503_scavtimeout; -DWORD sv503_minrcvqueue; -DWORD sv503_minfreeworkitems; -DWORD sv503_xactmemsize; -DWORD sv503_threadpriority; -DWORD sv503_maxmpxct; -DWORD sv503_oplockbreakwait; -DWORD sv503_oplockbreakresponsewait; -BOOL sv503_enableoplocks; -BOOL sv503_enableoplockforceclose; -BOOL sv503_enablefcbopens; -BOOL sv503_enableraw; -BOOL sv503_enablesharednetdrives; -DWORD sv503_minfreeconnections; -DWORD sv503_maxfreeconnections; -} SERVER_INFO_503,*PSERVER_INFO_503,*LPSERVER_INFO_503; -typedef struct _SERVER_INFO_599 { -DWORD sv599_sessopens; -DWORD sv599_sessvcs; -DWORD sv599_opensearch; -DWORD sv599_sizreqbuf; -DWORD sv599_initworkitems; -DWORD sv599_maxworkitems; -DWORD sv599_rawworkitems; -DWORD sv599_irpstacksize; -DWORD sv599_maxrawbuflen; -DWORD sv599_sessusers; -DWORD sv599_sessconns; -DWORD sv599_maxpagedmemoryusage; -DWORD sv599_maxnonpagedmemoryusage; -BOOL sv599_enablesoftcompat; -BOOL sv599_enableforcedlogoff; -BOOL sv599_timesource; -BOOL sv599_acceptdownlevelapis; -BOOL sv599_lmannounce; -LPWSTR sv599_domain; -DWORD sv599_maxcopyreadlen; -DWORD sv599_maxcopywritelen; -DWORD sv599_minkeepsearch; -DWORD sv599_maxkeepsearch; -DWORD sv599_minkeepcomplsearch; -DWORD sv599_maxkeepcomplsearch; -DWORD sv599_threadcountadd; -DWORD sv599_numblockthreads; -DWORD sv599_scavtimeout; -DWORD sv599_minrcvqueue; -DWORD sv599_minfreeworkitems; -DWORD sv599_xactmemsize; -DWORD sv599_threadpriority; -DWORD sv599_maxmpxct; -DWORD sv599_oplockbreakwait; -DWORD sv599_oplockbreakresponsewait; -BOOL sv599_enableoplocks; -BOOL sv599_enableoplockforceclose; -BOOL sv599_enablefcbopens; -BOOL sv599_enableraw; -BOOL sv599_enablesharednetdrives; -DWORD sv599_minfreeconnections; -DWORD sv599_maxfreeconnections; -DWORD sv599_initsesstable; -DWORD sv599_initconntable; -DWORD sv599_initfiletable; -DWORD sv599_initsearchtable; -DWORD sv599_alertschedule; -DWORD sv599_errorthreshold; -DWORD sv599_networkerrorthreshold; -DWORD sv599_diskspacethreshold; -DWORD sv599_reserved; -DWORD sv599_maxlinkdelay; -DWORD sv599_minlinkthroughput; -DWORD sv599_linkinfovalidtime; -DWORD sv599_scavqosinfoupdatetime; -DWORD sv599_maxworkitemidletime; -} SERVER_INFO_599,*PSERVER_INFO_599,*LPSERVER_INFO_599; -typedef struct _SERVER_INFO_598 { -DWORD sv598_maxrawworkitems; -DWORD sv598_maxthreadsperqueue; -DWORD sv598_producttype; -DWORD sv598_serversize; -DWORD sv598_connectionlessautodisc; -DWORD sv598_sharingviolationretries; -DWORD sv598_sharingviolationdelay; -DWORD sv598_maxglobalopensearch; -DWORD sv598_removeduplicatesearches; -DWORD sv598_lockviolationoffset; -DWORD sv598_lockviolationdelay; -DWORD sv598_mdlreadswitchover; -DWORD sv598_cachedopenlimit; -DWORD sv598_otherqueueaffinity; -BOOL sv598_restrictnullsessaccess; -BOOL sv598_enablewfw311directipx; -DWORD sv598_queuesamplesecs; -DWORD sv598_balancecount; -DWORD sv598_preferredaffinity; -DWORD sv598_maxfreerfcbs; -DWORD sv598_maxfreemfcbs; -DWORD sv598_maxfreelfcbs; -DWORD sv598_maxfreepagedpoolchunks; -DWORD sv598_minpagedpoolchunksize; -DWORD sv598_maxpagedpoolchunksize; -BOOL sv598_sendsfrompreferredprocessor; -} SERVER_INFO_598,*PSERVER_INFO_598,*LPSERVER_INFO_598; -typedef struct _SERVER_INFO_1005 {LPWSTR sv1005_comment; } SERVER_INFO_1005,*PSERVER_INFO_1005,*LPSERVER_INFO_1005; -typedef struct _SERVER_INFO_1107 { DWORD sv1107_users; } SERVER_INFO_1107,*PSERVER_INFO_1107,*LPSERVER_INFO_1107; -typedef struct _SERVER_INFO_1010 { LONG sv1010_disc; } SERVER_INFO_1010,*PSERVER_INFO_1010,*LPSERVER_INFO_1010; -typedef struct _SERVER_INFO_1016 { BOOL sv1016_hidden; } SERVER_INFO_1016,*PSERVER_INFO_1016,*LPSERVER_INFO_1016; -typedef struct _SERVER_INFO_1017 { DWORD sv1017_announce; } SERVER_INFO_1017,*PSERVER_INFO_1017,*LPSERVER_INFO_1017; -typedef struct _SERVER_INFO_1018 { DWORD sv1018_anndelta; } SERVER_INFO_1018,*PSERVER_INFO_1018,*LPSERVER_INFO_1018; -typedef struct _SERVER_INFO_1501 { DWORD sv1501_sessopens; } SERVER_INFO_1501,*PSERVER_INFO_1501,*LPSERVER_INFO_1501; -typedef struct _SERVER_INFO_1502 { DWORD sv1502_sessvcs; } SERVER_INFO_1502,*PSERVER_INFO_1502,*LPSERVER_INFO_1502; -typedef struct _SERVER_INFO_1503 { DWORD sv1503_opensearch; } SERVER_INFO_1503,*PSERVER_INFO_1503,*LPSERVER_INFO_1503; -typedef struct _SERVER_INFO_1506 { DWORD sv1506_maxworkitems; } SERVER_INFO_1506,*PSERVER_INFO_1506,*LPSERVER_INFO_1506; -typedef struct _SERVER_INFO_1509 { DWORD sv1509_maxrawbuflen; } SERVER_INFO_1509,*PSERVER_INFO_1509,*LPSERVER_INFO_1509; -typedef struct _SERVER_INFO_1510 { DWORD sv1510_sessusers; } SERVER_INFO_1510,*PSERVER_INFO_1510,*LPSERVER_INFO_1510; -typedef struct _SERVER_INFO_1511 { DWORD sv1511_sessconns; } SERVER_INFO_1511,*PSERVER_INFO_1511,*LPSERVER_INFO_1511; -typedef struct _SERVER_INFO_1512 { DWORD sv1512_maxnonpagedmemoryusage; } SERVER_INFO_1512,*PSERVER_INFO_1512,*LPSERVER_INFO_1512; -typedef struct _SERVER_INFO_1513 { DWORD sv1513_maxpagedmemoryusage; } SERVER_INFO_1513,*PSERVER_INFO_1513,*LPSERVER_INFO_1513; -typedef struct _SERVER_INFO_1514 { BOOL sv1514_enablesoftcompat; } SERVER_INFO_1514,*PSERVER_INFO_1514,*LPSERVER_INFO_1514; -typedef struct _SERVER_INFO_1515 { BOOL sv1515_enableforcedlogoff; } SERVER_INFO_1515,*PSERVER_INFO_1515,*LPSERVER_INFO_1515; -typedef struct _SERVER_INFO_1516 { BOOL sv1516_timesource; } SERVER_INFO_1516,*PSERVER_INFO_1516,*LPSERVER_INFO_1516; -typedef struct _SERVER_INFO_1518 { BOOL sv1518_lmannounce; } SERVER_INFO_1518,*PSERVER_INFO_1518,*LPSERVER_INFO_1518; -typedef struct _SERVER_INFO_1520 { DWORD sv1520_maxcopyreadlen; } SERVER_INFO_1520,*PSERVER_INFO_1520,*LPSERVER_INFO_1520; -typedef struct _SERVER_INFO_1521 { DWORD sv1521_maxcopywritelen; } SERVER_INFO_1521,*PSERVER_INFO_1521,*LPSERVER_INFO_1521; -typedef struct _SERVER_INFO_1522 { DWORD sv1522_minkeepsearch; } SERVER_INFO_1522,*PSERVER_INFO_1522,*LPSERVER_INFO_1522; -typedef struct _SERVER_INFO_1523 { DWORD sv1523_maxkeepsearch; } SERVER_INFO_1523,*PSERVER_INFO_1523,*LPSERVER_INFO_1523; -typedef struct _SERVER_INFO_1524 { DWORD sv1524_minkeepcomplsearch; } SERVER_INFO_1524,*PSERVER_INFO_1524,*LPSERVER_INFO_1524; -typedef struct _SERVER_INFO_1525 { DWORD sv1525_maxkeepcomplsearch; } SERVER_INFO_1525,*PSERVER_INFO_1525,*LPSERVER_INFO_1525; -typedef struct _SERVER_INFO_1528 { DWORD sv1528_scavtimeout; } SERVER_INFO_1528,*PSERVER_INFO_1528,*LPSERVER_INFO_1528; -typedef struct _SERVER_INFO_1529 { DWORD sv1529_minrcvqueue; } SERVER_INFO_1529,*PSERVER_INFO_1529,*LPSERVER_INFO_1529; -typedef struct _SERVER_INFO_1530 { DWORD sv1530_minfreeworkitems; } SERVER_INFO_1530,*PSERVER_INFO_1530,*LPSERVER_INFO_1530; -typedef struct _SERVER_INFO_1533 { DWORD sv1533_maxmpxct; } SERVER_INFO_1533,*PSERVER_INFO_1533,*LPSERVER_INFO_1533; -typedef struct _SERVER_INFO_1534 { DWORD sv1534_oplockbreakwait; } SERVER_INFO_1534,*PSERVER_INFO_1534,*LPSERVER_INFO_1534; -typedef struct _SERVER_INFO_1535 { DWORD sv1535_oplockbreakresponsewait; } SERVER_INFO_1535,*PSERVER_INFO_1535,*LPSERVER_INFO_1535; -typedef struct _SERVER_INFO_1536 { BOOL sv1536_enableoplocks; } SERVER_INFO_1536,*PSERVER_INFO_1536,*LPSERVER_INFO_1536; -typedef struct _SERVER_INFO_1537 { BOOL sv1537_enableoplockforceclose; } SERVER_INFO_1537,*PSERVER_INFO_1537,*LPSERVER_INFO_1537; -typedef struct _SERVER_INFO_1538 { BOOL sv1538_enablefcbopens; } SERVER_INFO_1538,*PSERVER_INFO_1538,*LPSERVER_INFO_1538; -typedef struct _SERVER_INFO_1539 { BOOL sv1539_enableraw; } SERVER_INFO_1539,*PSERVER_INFO_1539,*LPSERVER_INFO_1539; -typedef struct _SERVER_INFO_1540 { BOOL sv1540_enablesharednetdrives; } SERVER_INFO_1540,*PSERVER_INFO_1540,*LPSERVER_INFO_1540; -typedef struct _SERVER_INFO_1541 { BOOL sv1541_minfreeconnections; } SERVER_INFO_1541,*PSERVER_INFO_1541,*LPSERVER_INFO_1541; -typedef struct _SERVER_INFO_1542 { BOOL sv1542_maxfreeconnections; } SERVER_INFO_1542,*PSERVER_INFO_1542,*LPSERVER_INFO_1542; -typedef struct _SERVER_INFO_1543 { DWORD sv1543_initsesstable; } SERVER_INFO_1543,*PSERVER_INFO_1543,*LPSERVER_INFO_1543; -typedef struct _SERVER_INFO_1544 { DWORD sv1544_initconntable; } SERVER_INFO_1544,*PSERVER_INFO_1544,*LPSERVER_INFO_1544; -typedef struct _SERVER_INFO_1545 { DWORD sv1545_initfiletable; } SERVER_INFO_1545,*PSERVER_INFO_1545,*LPSERVER_INFO_1545; -typedef struct _SERVER_INFO_1546 { DWORD sv1546_initsearchtable; } SERVER_INFO_1546,*PSERVER_INFO_1546,*LPSERVER_INFO_1546; -typedef struct _SERVER_INFO_1547 { DWORD sv1547_alertschedule; } SERVER_INFO_1547,*PSERVER_INFO_1547,*LPSERVER_INFO_1547; -typedef struct _SERVER_INFO_1548 { DWORD sv1548_errorthreshold; } SERVER_INFO_1548,*PSERVER_INFO_1548,*LPSERVER_INFO_1548; -typedef struct _SERVER_INFO_1549 { DWORD sv1549_networkerrorthreshold; } SERVER_INFO_1549,*PSERVER_INFO_1549,*LPSERVER_INFO_1549; -typedef struct _SERVER_INFO_1550 { DWORD sv1550_diskspacethreshold; } SERVER_INFO_1550,*PSERVER_INFO_1550,*LPSERVER_INFO_1550; -typedef struct _SERVER_INFO_1552 { DWORD sv1552_maxlinkdelay; } SERVER_INFO_1552,*PSERVER_INFO_1552,*LPSERVER_INFO_1552; -typedef struct _SERVER_INFO_1553 { DWORD sv1553_minlinkthroughput; } SERVER_INFO_1553,*PSERVER_INFO_1553,*LPSERVER_INFO_1553; -typedef struct _SERVER_INFO_1554 { DWORD sv1554_linkinfovalidtime; } SERVER_INFO_1554,*PSERVER_INFO_1554,*LPSERVER_INFO_1554; -typedef struct _SERVER_INFO_1555 { DWORD sv1555_scavqosinfoupdatetime; } SERVER_INFO_1555,*PSERVER_INFO_1555,*LPSERVER_INFO_1555; -typedef struct _SERVER_INFO_1556 { DWORD sv1556_maxworkitemidletime; } SERVER_INFO_1556,*PSERVER_INFO_1556,*LPSERVER_INFO_1556; -typedef struct _SERVER_INFO_1557 { DWORD sv1557_maxrawworkitems; } SERVER_INFO_1557,*PSERVER_INFO_1557,*LPSERVER_INFO_1557; -typedef struct _SERVER_INFO_1560 { DWORD sv1560_producttype; } SERVER_INFO_1560,*PSERVER_INFO_1560,*LPSERVER_INFO_1560; -typedef struct _SERVER_INFO_1561 { DWORD sv1561_serversize; } SERVER_INFO_1561,*PSERVER_INFO_1561,*LPSERVER_INFO_1561; -typedef struct _SERVER_INFO_1562 { DWORD sv1562_connectionlessautodisc; } SERVER_INFO_1562,*PSERVER_INFO_1562,*LPSERVER_INFO_1562; -typedef struct _SERVER_INFO_1563 { DWORD sv1563_sharingviolationretries; } SERVER_INFO_1563,*PSERVER_INFO_1563,*LPSERVER_INFO_1563; -typedef struct _SERVER_INFO_1564 { DWORD sv1564_sharingviolationdelay; } SERVER_INFO_1564,*PSERVER_INFO_1564,*LPSERVER_INFO_1564; -typedef struct _SERVER_INFO_1565 { DWORD sv1565_maxglobalopensearch; } SERVER_INFO_1565,*PSERVER_INFO_1565,*LPSERVER_INFO_1565; -typedef struct _SERVER_INFO_1566 { BOOL sv1566_removeduplicatesearches; } SERVER_INFO_1566,*PSERVER_INFO_1566,*LPSERVER_INFO_1566; -typedef struct _SERVER_INFO_1567 { DWORD sv1567_lockviolationretries; } SERVER_INFO_1567,*PSERVER_INFO_1567,*LPSERVER_INFO_1567; -typedef struct _SERVER_INFO_1568 { DWORD sv1568_lockviolationoffset; } SERVER_INFO_1568,*PSERVER_INFO_1568,*LPSERVER_INFO_1568; -typedef struct _SERVER_INFO_1569 { DWORD sv1569_lockviolationdelay; } SERVER_INFO_1569,*PSERVER_INFO_1569,*LPSERVER_INFO_1569; -typedef struct _SERVER_INFO_1570 { DWORD sv1570_mdlreadswitchover; } SERVER_INFO_1570,*PSERVER_INFO_1570,*LPSERVER_INFO_1570; -typedef struct _SERVER_INFO_1571 { DWORD sv1571_cachedopenlimit; } SERVER_INFO_1571,*PSERVER_INFO_1571,*LPSERVER_INFO_1571; -typedef struct _SERVER_INFO_1572 { DWORD sv1572_criticalthreads; } SERVER_INFO_1572,*PSERVER_INFO_1572,*LPSERVER_INFO_1572; -typedef struct _SERVER_INFO_1573 { DWORD sv1573_restrictnullsessaccess; } SERVER_INFO_1573,*PSERVER_INFO_1573,*LPSERVER_INFO_1573; -typedef struct _SERVER_INFO_1574 { DWORD sv1574_enablewfw311directipx;} SERVER_INFO_1574,*PSERVER_INFO_1574,*LPSERVER_INFO_1574; -typedef struct _SERVER_INFO_1575 { DWORD sv1575_otherqueueaffinity; } SERVER_INFO_1575,*PSERVER_INFO_1575,*LPSERVER_INFO_1575; -typedef struct _SERVER_INFO_1576 { DWORD sv1576_queuesamplesecs; } SERVER_INFO_1576,*PSERVER_INFO_1576,*LPSERVER_INFO_1576; -typedef struct _SERVER_INFO_1577 { DWORD sv1577_balancecount; } SERVER_INFO_1577,*PSERVER_INFO_1577,*LPSERVER_INFO_1577; -typedef struct _SERVER_INFO_1578 { DWORD sv1578_preferredaffinity; } SERVER_INFO_1578,*PSERVER_INFO_1578,*LPSERVER_INFO_1578; -typedef struct _SERVER_INFO_1579 { DWORD sv1579_maxfreerfcbs; } SERVER_INFO_1579,*PSERVER_INFO_1579,*LPSERVER_INFO_1579; -typedef struct _SERVER_INFO_1580 { DWORD sv1580_maxfreemfcbs; } SERVER_INFO_1580,*PSERVER_INFO_1580,*LPSERVER_INFO_1580; -typedef struct _SERVER_INFO_1581 { DWORD sv1581_maxfreemlcbs; } SERVER_INFO_1581,*PSERVER_INFO_1581,*LPSERVER_INFO_1581; -typedef struct _SERVER_INFO_1582 { DWORD sv1582_maxfreepagedpoolchunks; } SERVER_INFO_1582,*PSERVER_INFO_1582,*LPSERVER_INFO_1582; -typedef struct _SERVER_INFO_1583 { DWORD sv1583_minpagedpoolchunksize; } SERVER_INFO_1583,*PSERVER_INFO_1583,*LPSERVER_INFO_1583; -typedef struct _SERVER_INFO_1584 { DWORD sv1584_maxpagedpoolchunksize; } SERVER_INFO_1584,*PSERVER_INFO_1584,*LPSERVER_INFO_1584; -typedef struct _SERVER_INFO_1585 { BOOL sv1585_sendsfrompreferredprocessor; } SERVER_INFO_1585,*PSERVER_INFO_1585,*LPSERVER_INFO_1585; -typedef struct _SERVER_INFO_1586 { BOOL sv1586_maxthreadsperqueue; } SERVER_INFO_1586,*PSERVER_INFO_1586,*LPSERVER_INFO_1586; -typedef struct _SERVER_TRANSPORT_INFO_0 { -DWORD svti0_numberofvcs; -LPWSTR svti0_transportname; -PBYTE svti0_transportaddress; -DWORD svti0_transportaddresslength; -LPWSTR svti0_networkaddress; -} SERVER_TRANSPORT_INFO_0,*PSERVER_TRANSPORT_INFO_0,*LPSERVER_TRANSPORT_INFO_0; - -NET_API_STATUS WINAPI NetServerEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,PDWORD); -NET_API_STATUS WINAPI NetServerEnumEx(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,DWORD,LPCWSTR,LPCWSTR); -NET_API_STATUS WINAPI NetServerGetInfo(LPWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetServerSetInfo(LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS NetServerSetInfoCommandLine(WORD,LPWSTR*); -NET_API_STATUS WINAPI NetServerDiskEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetServerComputerNameAdd(LPWSTR,LPWSTR,LPWSTR); -NET_API_STATUS WINAPI NetServerComputerNameDel(LPWSTR,LPWSTR); -NET_API_STATUS WINAPI NetServerTransportAdd(LPWSTR,DWORD,PBYTE); -NET_API_STATUS WINAPI NetServerTransportAddEx(LPWSTR,DWORD,PBYTE); -NET_API_STATUS WINAPI NetServerTransportDel(LPWSTR,DWORD,PBYTE); -NET_API_STATUS WINAPI NetServerTransportEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -BOOL SetServiceBits(SERVICE_STATUS_HANDLE,DWORD,BOOL,BOOL); - -#define SVI1_NUM_ELEMENTS 5 -#define SVI2_NUM_ELEMENTS 40 -#define SVI3_NUM_ELEMENTS 44 -#define SV_MAX_CMD_LEN PATHLEN -#define SW_AUTOPROF_LOAD_MASK 1 -#define SW_AUTOPROF_SAVE_MASK 2 -#define SV_MAX_SRV_HEUR_LEN 32 -#define SV_USERS_PER_LICENSE 5 -#define SV_PLATFORM_ID_OS2 400 -#define SV_PLATFORM_ID_NT 500 -#define MAJOR_VERSION_MASK 15 -#define SV_TYPE_WORKSTATION 1 -#define SV_TYPE_SERVER 2 -#define SV_TYPE_SQLSERVER 4 -#define SV_TYPE_DOMAIN_CTRL 8 -#define SV_TYPE_DOMAIN_BAKCTRL 16 -#define SV_TYPE_TIME_SOURCE 32 -#define SV_TYPE_AFP 64 -#define SV_TYPE_NOVELL 128 -#define SV_TYPE_DOMAIN_MEMBER 256 -#define SV_TYPE_PRINTQ_SERVER 512 -#define SV_TYPE_DIALIN_SERVER 1024 -#define SV_TYPE_XENIX_SERVER 2048 -#define SV_TYPE_SERVER_UNIX SV_TYPE_XENIX_SERVER -#define SV_TYPE_NT 4096 -#define SV_TYPE_WFW 8192 -#define SV_TYPE_SERVER_MFPN 16384 -#define SV_TYPE_SERVER_NT 32768 -#define SV_TYPE_POTENTIAL_BROWSER 65536 -#define SV_TYPE_BACKUP_BROWSER 0x20000 -#define SV_TYPE_MASTER_BROWSER 0x40000 -#define SV_TYPE_DOMAIN_MASTER 0x80000 -#define SV_TYPE_SERVER_OSF 0x100000 -#define SV_TYPE_SERVER_VMS 0x200000 -#define SV_TYPE_WINDOWS 0x400000 -#define SV_TYPE_ALTERNATE_XPORT 0x20000000 -#define SV_TYPE_LOCAL_LIST_ONLY 0x40000000 -#define SV_TYPE_DOMAIN_ENUM 0x80000000 -#define SV_TYPE_ALL 0xFFFFFFFF -#define SV_NODISC (-1) -#define SV_USERSECURITY 1 -#define SV_SHARESECURITY 0 -#define SV_HIDDEN 1 -#define SV_VISIBLE 0 -#define SV_PLATFORM_ID_PARMNUM 101 -#define SV_NAME_PARMNUM 102 -#define SV_VERSION_MAJOR_PARMNUM 103 -#define SV_VERSION_MINOR_PARMNUM 104 -#define SV_TYPE_PARMNUM 105 -#define SV_COMMENT_PARMNUM 5 -#define SV_USERS_PARMNUM 107 -#define SV_DISC_PARMNUM 10 -#define SV_HIDDEN_PARMNUM 16 -#define SV_ANNOUNCE_PARMNUM 17 -#define SV_ANNDELTA_PARMNUM 18 -#define SV_USERPATH_PARMNUM 112 -#define SV_ULIST_MTIME_PARMNUM 401 -#define SV_GLIST_MTIME_PARMNUM 402 -#define SV_ALIST_MTIME_PARMNUM 403 -#define SV_ALERTS_PARMNUM 11 -#define SV_SECURITY_PARMNUM 405 -#define SV_NUMADMIN_PARMNUM 406 -#define SV_LANMASK_PARMNUM 407 -#define SV_GUESTACC_PARMNUM 408 -#define SV_CHDEVQ_PARMNUM 410 -#define SV_CHDEVJOBS_PARMNUM 411 -#define SV_CONNECTIONS_PARMNUM 412 -#define SV_SHARES_PARMNUM 413 -#define SV_OPENFILES_PARMNUM 414 -#define SV_SESSREQS_PARMNUM 417 -#define SV_ACTIVELOCKS_PARMNUM 419 -#define SV_NUMREQBUF_PARMNUM 420 -#define SV_NUMBIGBUF_PARMNUM 422 -#define SV_NUMFILETASKS_PARMNUM 423 -#define SV_ALERTSCHED_PARMNUM 37 -#define SV_ERRORALERT_PARMNUM 38 -#define SV_LOGONALERT_PARMNUM 39 -#define SV_ACCESSALERT_PARMNUM 40 -#define SV_DISKALERT_PARMNUM 41 -#define SV_NETIOALERT_PARMNUM 42 -#define SV_MAXAUDITSZ_PARMNUM 43 -#define SV_SRVHEURISTICS_PARMNUM 431 -#define SV_SESSOPENS_PARMNUM 501 -#define SV_SESSVCS_PARMNUM 502 -#define SV_OPENSEARCH_PARMNUM 503 -#define SV_SIZREQBUF_PARMNUM 504 -#define SV_INITWORKITEMS_PARMNUM 505 -#define SV_MAXWORKITEMS_PARMNUM 506 -#define SV_RAWWORKITEMS_PARMNUM 507 -#define SV_IRPSTACKSIZE_PARMNUM 508 -#define SV_MAXRAWBUFLEN_PARMNUM 509 -#define SV_SESSUSERS_PARMNUM 510 -#define SV_SESSCONNS_PARMNUM 511 -#define SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM 512 -#define SV_MAXPAGEDMEMORYUSAGE_PARMNUM 513 -#define SV_ENABLESOFTCOMPAT_PARMNUM 514 -#define SV_ENABLEFORCEDLOGOFF_PARMNUM 515 -#define SV_TIMESOURCE_PARMNUM 516 -#define SV_ACCEPTDOWNLEVELAPIS_PARMNUM 517 -#define SV_LMANNOUNCE_PARMNUM 518 -#define SV_DOMAIN_PARMNUM 519 -#define SV_MAXCOPYREADLEN_PARMNUM 520 -#define SV_MAXCOPYWRITELEN_PARMNUM 521 -#define SV_MINKEEPSEARCH_PARMNUM 522 -#define SV_MAXKEEPSEARCH_PARMNUM 523 -#define SV_MINKEEPCOMPLSEARCH_PARMNUM 524 -#define SV_MAXKEEPCOMPLSEARCH_PARMNUM 525 -#define SV_THREADCOUNTADD_PARMNUM 526 -#define SV_NUMBLOCKTHREADS_PARMNUM 527 -#define SV_SCAVTIMEOUT_PARMNUM 528 -#define SV_MINRCVQUEUE_PARMNUM 529 -#define SV_MINFREEWORKITEMS_PARMNUM 530 -#define SV_XACTMEMSIZE_PARMNUM 531 -#define SV_THREADPRIORITY_PARMNUM 532 -#define SV_MAXMPXCT_PARMNUM 533 -#define SV_OPLOCKBREAKWAIT_PARMNUM 534 -#define SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM 535 -#define SV_ENABLEOPLOCKS_PARMNUM 536 -#define SV_ENABLEOPLOCKFORCECLOSE_PARMNUM 537 -#define SV_ENABLEFCBOPENS_PARMNUM 538 -#define SV_ENABLERAW_PARMNUM 539 -#define SV_ENABLESHAREDNETDRIVES_PARMNUM 540 -#define SV_MINFREECONNECTIONS_PARMNUM 541 -#define SV_MAXFREECONNECTIONS_PARMNUM 542 -#define SV_INITSESSTABLE_PARMNUM 543 -#define SV_INITCONNTABLE_PARMNUM 544 -#define SV_INITFILETABLE_PARMNUM 545 -#define SV_INITSEARCHTABLE_PARMNUM 546 -#define SV_ALERTSCHEDULE_PARMNUM 547 -#define SV_ERRORTHRESHOLD_PARMNUM 548 -#define SV_NETWORKERRORTHRESHOLD_PARMNUM 549 -#define SV_DISKSPACETHRESHOLD_PARMNUM 550 -#define SV_MAXLINKDELAY_PARMNUM 552 -#define SV_MINLINKTHROUGHPUT_PARMNUM 553 -#define SV_LINKINFOVALIDTIME_PARMNUM 554 -#define SV_SCAVQOSINFOUPDATETIME_PARMNUM 555 -#define SV_MAXWORKITEMIDLETIME_PARMNUM 556 -#define SV_MAXRAWWORKITEMS_PARMNUM 557 -#define SV_PRODUCTTYPE_PARMNUM 560 -#define SV_SERVERSIZE_PARMNUM 561 -#define SV_CONNECTIONLESSAUTODISC_PARMNUM 562 -#define SV_SHARINGVIOLATIONRETRIES_PARMNUM 563 -#define SV_SHARINGVIOLATIONDELAY_PARMNUM 564 -#define SV_MAXGLOBALOPENSEARCH_PARMNUM 565 -#define SV_REMOVEDUPLICATESEARCHES_PARMNUM 566 -#define SV_LOCKVIOLATIONRETRIES_PARMNUM 567 -#define SV_LOCKVIOLATIONOFFSET_PARMNUM 568 -#define SV_LOCKVIOLATIONDELAY_PARMNUM 569 -#define SV_MDLREADSWITCHOVER_PARMNUM 570 -#define SV_CACHEDOPENLIMIT_PARMNUM 571 -#define SV_CRITICALTHREADS_PARMNUM 572 -#define SV_RESTRICTNULLSESSACCESS_PARMNUM 573 -#define SV_ENABLEWFW311DIRECTIPX_PARMNUM 574 -#define SV_OTHERQUEUEAFFINITY_PARMNUM 575 -#define SV_QUEUESAMPLESECS_PARMNUM 576 -#define SV_BALANCECOUNT_PARMNUM 577 -#define SV_PREFERREDAFFINITY_PARMNUM 578 -#define SV_MAXFREERFCBS_PARMNUM 579 -#define SV_MAXFREEMFCBS_PARMNUM 580 -#define SV_MAXFREELFCBS_PARMNUM 581 -#define SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM 582 -#define SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM 583 -#define SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM 584 -#define SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM 585 -#define SV_MAXTHREADSPERQUEUE_PARMNUM 586 -#define SV_COMMENT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_COMMENT_PARMNUM) -#define SV_USERS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_USERS_PARMNUM) -#define SV_DISC_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_DISC_PARMNUM) -#define SV_HIDDEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_HIDDEN_PARMNUM) -#define SV_ANNOUNCE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ANNOUNCE_PARMNUM) -#define SV_ANNDELTA_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ANNDELTA_PARMNUM) -#define SV_SESSOPENS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SESSOPENS_PARMNUM) -#define SV_SESSVCS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SESSVCS_PARMNUM) -#define SV_OPENSEARCH_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_OPENSEARCH_PARMNUM) -#define SV_MAXWORKITEMS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXWORKITEMS_PARMNUM) -#define SV_MAXRAWBUFLEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXRAWBUFLEN_PARMNUM) -#define SV_SESSUSERS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SESSUSERS_PARMNUM) -#define SV_SESSCONNS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SESSCONNS_PARMNUM) -#define SV_MAXNONPAGEDMEMORYUSAGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM) -#define SV_MAXPAGEDMEMORYUSAGE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXPAGEDMEMORYUSAGE_PARMNUM) -#define SV_ENABLESOFTCOMPAT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLESOFTCOMPAT_PARMNUM) -#define SV_ENABLEFORCEDLOGOFF_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLEFORCEDLOGOFF_PARMNUM) -#define SV_TIMESOURCE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_TIMESOURCE_PARMNUM) -#define SV_LMANNOUNCE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_LMANNOUNCE_PARMNUM) -#define SV_MAXCOPYREADLEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXCOPYREADLEN_PARMNUM) -#define SV_MAXCOPYWRITELEN_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXCOPYWRITELEN_PARMNUM) -#define SV_MINKEEPSEARCH_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINKEEPSEARCH_PARMNUM) -#define SV_MAXKEEPSEARCH_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXKEEPSEARCH_PARMNUM) -#define SV_MINKEEPCOMPLSEARCH_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINKEEPCOMPLSEARCH_PARMNUM) -#define SV_MAXKEEPCOMPLSEARCH_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXKEEPCOMPLSEARCH_PARMNUM) -#define SV_SCAVTIMEOUT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SCAVTIMEOUT_PARMNUM) -#define SV_MINRCVQUEUE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINRCVQUEUE_PARMNUM) -#define SV_MINFREEWORKITEMS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINFREEWORKITEMS_PARMNUM) -#define SV_MAXMPXCT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXMPXCT_PARMNUM) -#define SV_OPLOCKBREAKWAIT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_OPLOCKBREAKWAIT_PARMNUM) -#define SV_OPLOCKBREAKRESPONSEWAIT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM) -#define SV_ENABLEOPLOCKS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLEOPLOCKS_PARMNUM) -#define SV_ENABLEOPLOCKFORCECLOSE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLEOPLOCKFORCECLOSE_PARMNUM) -#define SV_ENABLEFCBOPENS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLEFCBOPENS_PARMNUM) -#define SV_ENABLERAW_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLERAW_PARMNUM) -#define SV_ENABLESHAREDNETDRIVES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLESHAREDNETDRIVES_PARMNUM) -#define SV_MINFREECONNECTIONS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINFREECONNECTIONS_PARMNUM) -#define SV_MAXFREECONNECTIONS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXFREECONNECTIONS_PARMNUM) -#define SV_INITSESSTABLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_INITSESSTABLE_PARMNUM) -#define SV_INITCONNTABLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_INITCONNTABLE_PARMNUM) -#define SV_INITFILETABLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_INITFILETABLE_PARMNUM) -#define SV_INITSEARCHTABLE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_INITSEARCHTABLE_PARMNUM) -#define SV_ALERTSCHEDULE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ALERTSCHEDULE_PARMNUM) -#define SV_ERRORTHRESHOLD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_ERRORTHRESHOLD_PARMNUM) -#define SV_NETWORKERRORTHRESHOLD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_NETWORKERRORTHRESHOLD_PARMNUM) -#define SV_DISKSPACETHRESHOLD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_DISKSPACETHRESHOLD_PARMNUM) -#define SV_MAXLINKDELAY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXLINKDELAY_PARMNUM) -#define SV_MINLINKTHROUGHPUT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINLINKTHROUGHPUT_PARMNUM) -#define SV_LINKINFOVALIDTIME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_LINKINFOVALIDTIME_PARMNUM) -#define SV_SCAVQOSINFOUPDATETIME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SCAVQOSINFOUPDATETIME_PARMNUM) -#define SV_MAXWORKITEMIDLETIME_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXWORKITEMIDLETIME_PARMNUM) -#define SV_MAXRAWWORKITEMS_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXRAWWORKITEMS_PARMNUM) -#define SV_PRODUCTTYPE_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_PRODUCTTYPE_PARMNUM) -#define SV_SERVERSIZE_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_SERVERSIZE_PARMNUM) -#define SV_CONNECTIONLESSAUTODISC_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_CONNECTIONLESSAUTODISC_PARMNUM) -#define SV_SHARINGVIOLATIONRETRIES_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_SHARINGVIOLATIONRETRIES_PARMNUM) -#define SV_SHARINGVIOLATIONDELAY_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_SHARINGVIOLATIONDELAY_PARMNUM) -#define SV_MAXGLOBALOPENSEARCH_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXGLOBALOPENSEARCH_PARMNUM) -#define SV_REMOVEDUPLICATESEARCHES_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_REMOVEDUPLICATESEARCHES_PARMNUM) -#define SV_LOCKVIOLATIONRETRIES_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONRETRIES_PARMNUM) -#define SV_LOCKVIOLATIONOFFSET_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONOFFSET_PARMNUM) -#define SV_LOCKVIOLATIONDELAY_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONDELAY_PARMNUM) -#define SV_MDLREADSWITCHOVER_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_MDLREADSWITCHOVER_PARMNUM) -#define SV_CACHEDOPENLIMIT_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_CACHEDOPENLIMIT_PARMNUM) -#define SV_CRITICALTHREADS_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_CRITICALTHREADS_PARMNUM) -#define SV_RESTRICTNULLSESSACCESS_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_RESTRICTNULLSESSACCESS_PARMNUM) -#define SV_ENABLEWFW311DIRECTIPX_INFOLOEVEL (PARMNUM_BASE_INFOLEVEL+SV_ENABLEWFW311DIRECTIPX_PARMNUM) -#define SV_OTHERQUEUEAFFINITY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_OTHERQUEUEAFFINITY_PARMNUM) -#define SV_QUEUESAMPLESECS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_QUEUESAMPLESECS_PARMNUM) -#define SV_BALANCECOUNT_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_BALANCECOUNT_PARMNUM) -#define SV_PREFERREDAFFINITY_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_PREFERREDAFFINITY_PARMNUM) -#define SV_MAXFREERFCBS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXFREERFCBS_PARMNUM) -#define SV_MAXFREEMFCBS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXFREEMFCBS_PARMNUM) -#define SV_MAXFREELFCBS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXFREELFCBS_PARMNUM) -#define SV_MAXFREEPAGEDPOOLCHUNKS_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM) -#define SV_MINPAGEDPOOLCHUNKSIZE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM) -#define SV_MAXPAGEDPOOLCHUNKSIZE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM) -#define SV_SENDSFROMPREFERREDPROCESSOR_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM) -#define SV_MAXTHREADSPERQUEUE_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SV_MAXTHREADSPERQUEUE_PARMNUM) -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmshare.h b/winsup/w32api/include/lmshare.h deleted file mode 100644 index 326ad8575..000000000 --- a/winsup/w32api/include/lmshare.h +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef _LMSHARE_H -#define _LMSHARE_H -#ifdef __cplusplus -extern "C" { -#endif -#include -#define SHARE_NETNAME_PARMNUM 1 -#define SHARE_TYPE_PARMNUM 3 -#define SHARE_REMARK_PARMNUM 4 -#define SHARE_PERMISSIONS_PARMNUM 5 -#define SHARE_MAX_USES_PARMNUM 6 -#define SHARE_CURRENT_USES_PARMNUM 7 -#define SHARE_PATH_PARMNUM 8 -#define SHARE_PASSWD_PARMNUM 9 -#define SHARE_FILE_SD_PARMNUM 501 -#define SHARE_REMARK_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SHARE_REMARK_PARMNUM) -#define SHARE_MAX_USES_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SHARE_MAX_USES_PARMNUM) -#define SHARE_FILE_SD_INFOLEVEL (PARMNUM_BASE_INFOLEVEL+SHARE_FILE_SD_PARMNUM) -#define SHI1_NUM_ELEMENTS 4 -#define SHI2_NUM_ELEMENTS 10 -#define STYPE_DISKTREE 0 -#define STYPE_PRINTQ 1 -#define STYPE_DEVICE 2 -#define STYPE_IPC 3 -#define STYPE_DFS 100 -#define STYPE_SPECIAL 0x80000000 -#define SHI_USES_UNLIMITED (DWORD)(-1) -#define SESS_GUEST 1 -#define SESS_NOENCRYPTION 2 -#define SESI1_NUM_ELEMENTS 8 -#define SESI2_NUM_ELEMENTS 9 -#define PERM_FILE_READ 1 -#define PERM_FILE_WRITE 2 -#define PERM_FILE_CREATE 4 -typedef struct _FILE_INFO_2 { DWORD fi2_id;} FILE_INFO_2,*PFILE_INFO_2,*LPFILE_INFO_2; -typedef struct _FILE_INFO_3 { - DWORD fi3_id; - DWORD fi3_permissions; - DWORD fi3_num_locks; - LPTSTR fi3_pathname; - LPTSTR fi3_username; -} FILE_INFO_3,*PFILE_INFO_3,*LPFILE_INFO_3; -typedef struct _SHARE_INFO_0 { LPTSTR shi0_netname; } SHARE_INFO_0,*PSHARE_INFO_0,*LPSHARE_INFO_0; -typedef struct _SHARE_INFO_1 { - LPTSTR shi1_netname; - DWORD shi1_type; - LPTSTR shi1_remark; -} SHARE_INFO_1,*PSHARE_INFO_1,*LPSHARE_INFO_1; -typedef struct _SHARE_INFO_2 { - LPTSTR shi2_netname; - DWORD shi2_type; - LPTSTR shi2_remark; - DWORD shi2_permissions; - DWORD shi2_max_uses; - DWORD shi2_current_uses; - LPTSTR shi2_path; - LPTSTR shi2_passwd; -} SHARE_INFO_2,*PSHARE_INFO_2,*LPSHARE_INFO_2; -typedef struct _SHARE_INFO_502 { - LPTSTR shi502_netname; - DWORD shi502_type; - LPTSTR shi502_remark; - DWORD shi502_permissions; - DWORD shi502_max_uses; - DWORD shi502_current_uses; - LPTSTR shi502_path; - LPTSTR shi502_passwd; - DWORD shi502_reserved; - PSECURITY_DESCRIPTOR shi502_security_descriptor; -} SHARE_INFO_502,*PSHARE_INFO_502,*LPSHARE_INFO_502; -typedef struct _SHARE_INFO_1004 { - LPTSTR shi1004_remark; -} SHARE_INFO_1004,*PSHARE_INFO_1004,*LPSHARE_INFO_1004; -typedef struct _SHARE_INFO_1006 { - DWORD shi1006_max_uses; -} SHARE_INFO_1006,*PSHARE_INFO_1006,*LPSHARE_INFO_1006; -typedef struct _SHARE_INFO_1501 { - DWORD shi1501_reserved; - PSECURITY_DESCRIPTOR shi1501_security_descriptor; -} SHARE_INFO_1501,*PSHARE_INFO_1501,*LPSHARE_INFO_1501; -typedef struct _SESSION_INFO_0 { LPWSTR sesi0_cname; } SESSION_INFO_0,*PSESSION_INFO_0,*LPSESSION_INFO_0; -typedef struct _SESSION_INFO_1 { - LPTSTR sesi1_cname; - LPTSTR sesi1_username; - DWORD sesi1_num_opens; - DWORD sesi1_time; - DWORD sesi1_idle_time; - DWORD sesi1_user_flags; -} SESSION_INFO_1,*PSESSION_INFO_1,*LPSESSION_INFO_1; -typedef struct _SESSION_INFO_2 { - LPTSTR sesi2_cname; - LPTSTR sesi2_username; - DWORD sesi2_num_opens; - DWORD sesi2_time; - DWORD sesi2_idle_time; - DWORD sesi2_user_flags; - LPWSTR sesi2_cltype_name; -} SESSION_INFO_2,*PSESSION_INFO_2,*LPSESSION_INFO_2; -typedef struct _SESSION_INFO_10 { - LPWSTR sesi10_cname; - LPWSTR sesi10_username; - DWORD sesi10_time; - DWORD sesi10_idle_time; -} SESSION_INFO_10,*PSESSION_INFO_10,*LPSESSION_INFO_10; -typedef struct _SESSION_INFO_502 { - LPWSTR sesi502_cname; - LPWSTR sesi502_username; - DWORD sesi502_num_opens; - DWORD sesi502_time; - DWORD sesi502_idle_time; - DWORD sesi502_user_flags; - LPWSTR sesi502_cltype_name; - LPWSTR sesi502_transport; -} SESSION_INFO_502,*PSESSION_INFO_502,*LPSESSION_INFO_502; -typedef struct _CONNECTION_INFO_0 { DWORD coni0_id; } CONNECTION_INFO_0,*PCONNECTION_INFO_0,*LPCONNECTION_INFO_0; -typedef struct _CONNECTION_INFO_1 { - DWORD coni1_id; - DWORD coni1_type; - DWORD coni1_num_opens; - DWORD coni1_num_users; - DWORD coni1_time; - LPWSTR coni1_username; - LPWSTR coni1_netname; -} CONNECTION_INFO_1,*PCONNECTION_INFO_1,*LPCONNECTION_INFO_1; -NET_API_STATUS WINAPI NetShareAdd(LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetShareEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetShareEnumSticky(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD resume_handle); -NET_API_STATUS WINAPI NetShareGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetShareSetInfo(LPWSTR,LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetShareDel(LPWSTR,LPWSTR,DWORD); -NET_API_STATUS WINAPI NetShareDelSticky(LPWSTR,LPWSTR,DWORD); -NET_API_STATUS WINAPI NetShareCheck(LPWSTR,LPWSTR,PDWORD); -NET_API_STATUS WINAPI NetSessionEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetSessionDel(LPWSTR,LPWSTR,LPWSTR); -NET_API_STATUS WINAPI NetSessionGetInfo(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetConnectionEnum(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetFileClose(LPWSTR,DWORD); -NET_API_STATUS WINAPI NetFileEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetFileGetInfo(LPWSTR,DWORD,DWORD,PBYTE*); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmsname.h b/winsup/w32api/include/lmsname.h deleted file mode 100644 index 2a0f42bcd..000000000 --- a/winsup/w32api/include/lmsname.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef _LMSNAME_H -#define _LMSNAME_H -#define SERVICE_WORKSTATION TEXT("LanmanWorkstation") -#define SERVICE_LM20_WORKSTATION TEXT("WORKSTATION") -#define WORKSTATION_DISPLAY_NAME TEXT("Workstation") -#define SERVICE_SERVER TEXT("LanmanServer") -#define SERVICE_LM20_SERVER TEXT("SERVER") -#define SERVER_DISPLAY_NAME TEXT("Server") -#define SERVICE_BROWSER TEXT("BROWSER") -#define SERVICE_LM20_BROWSER SERVICE_BROWSER -#define SERVICE_MESSENGER TEXT("MESSENGER") -#define SERVICE_LM20_MESSENGER SERVICE_MESSENGER -#define SERVICE_NETRUN TEXT("NETRUN") -#define SERVICE_LM20_NETRUN SERVICE_NETRUN -#define SERVICE_SPOOLER TEXT("SPOOLER") -#define SERVICE_LM20_SPOOLER SERVICE_SPOOLER -#define SERVICE_ALERTER TEXT("ALERTER") -#define SERVICE_LM20_ALERTER SERVICE_ALERTER -#define SERVICE_NETLOGON TEXT("NETLOGON") -#define SERVICE_LM20_NETLOGON SERVICE_NETLOGON -#define SERVICE_NETPOPUP TEXT("NETPOPUP") -#define SERVICE_LM20_NETPOPUP SERVICE_NETPOPUP -#define SERVICE_SQLSERVER TEXT("SQLSERVER") -#define SERVICE_LM20_SQLSERVER SERVICE_SQLSERVER -#define SERVICE_REPL TEXT("REPLICATOR") -#define SERVICE_LM20_REPL SERVICE_REPL -#define SERVICE_RIPL TEXT("REMOTEBOOT") -#define SERVICE_LM20_RIPL SERVICE_RIPL -#define SERVICE_TIMESOURCE TEXT("TIMESOURCE") -#define SERVICE_LM20_TIMESOURCE SERVICE_TIMESOURCE -#define SERVICE_AFP TEXT("AFP") -#define SERVICE_LM20_AFP SERVICE_AFP -#define SERVICE_UPS TEXT("UPS") -#define SERVICE_LM20_UPS SERVICE_UPS -#define SERVICE_XACTSRV TEXT("XACTSRV") -#define SERVICE_LM20_XACTSRV SERVICE_XACTSRV -#define SERVICE_TCPIP TEXT("TCPIP") -#define SERVICE_LM20_TCPIP SERVICE_TCPIP -#define SERVICE_NBT TEXT("NBT") -#define SERVICE_LM20_NBT SERVICE_NBT -#define SERVICE_LMHOSTS TEXT("LMHOSTS") -#define SERVICE_LM20_LMHOSTS SERVICE_LMHOSTS -#define SERVICE_TELNET TEXT("Telnet") -#define SERVICE_LM20_TELNET SERVICE_TELNET -#define SERVICE_SCHEDULE TEXT("Schedule") -#define SERVICE_LM20_SCHEDULE SERVICE_SCHEDULE -#define SERVICE_NTLMSSP TEXT("NtLmSsp") -#define SERVICE_DHCP TEXT("DHCP") -#define SERVICE_LM20_DHCP SERVICE_DHCP -#define SERVICE_NWSAP TEXT("NwSapAgent") -#define SERVICE_LM20_NWSAP SERVICE_NWSAP -#define NWSAP_DISPLAY_NAME TEXT("NW Sap Agent") -#define SERVICE_NWCS TEXT("NWCWorkstation") -#endif diff --git a/winsup/w32api/include/lmstats.h b/winsup/w32api/include/lmstats.h deleted file mode 100644 index 23820d72f..000000000 --- a/winsup/w32api/include/lmstats.h +++ /dev/null @@ -1,110 +0,0 @@ -#ifndef _LMSTATS_H -#define _LMSTATS_H -#ifdef __cplusplus -extern "C" { -#endif -#define STATSOPT_CLR 1 -#define STATS_NO_VALUE ((ULONG)-1) -#define STATS_OVERFLOW ((ULONG)-2) -typedef struct _STAT_SERVER_0 { - DWORD sts0_start; - DWORD sts0_fopens; - DWORD sts0_devopens; - DWORD sts0_jobsqueued; - DWORD sts0_sopens; - DWORD sts0_stimedout; - DWORD sts0_serrorout; - DWORD sts0_pwerrors; - DWORD sts0_permerrors; - DWORD sts0_syserrors; - DWORD sts0_bytessent_low; - DWORD sts0_bytessent_high; - DWORD sts0_bytesrcvd_low; - DWORD sts0_bytesrcvd_high; - DWORD sts0_avresponse; - DWORD sts0_reqbufneed; - DWORD sts0_bigbufneed; -} STAT_SERVER_0,*PSTAT_SERVER_0,*LPSTAT_SERVER_0; -#ifdef LM20_WORKSTATION_STATISTICS -typedef struct _STAT_WORKSTATION_0 { - DWORD stw0_start; - DWORD stw0_numNCB_r; - DWORD stw0_numNCB_s; - DWORD stw0_numNCB_a; - DWORD stw0_fiNCB_r; - DWORD stw0_fiNCB_s; - DWORD stw0_fiNCB_a; - DWORD stw0_fcNCB_r; - DWORD stw0_fcNCB_s; - DWORD stw0_fcNCB_a; - DWORD stw0_sesstart; - DWORD stw0_sessfailcon; - DWORD stw0_sessbroke; - DWORD stw0_uses; - DWORD stw0_usefail; - DWORD stw0_autorec; - DWORD stw0_bytessent_r_lo; - DWORD stw0_bytessent_r_hi; - DWORD stw0_bytesrcvd_r_lo; - DWORD stw0_bytesrcvd_r_hi; - DWORD stw0_bytessent_s_lo; - DWORD stw0_bytessent_s_hi; - DWORD stw0_bytesrcvd_s_lo; - DWORD stw0_bytesrcvd_s_hi; - DWORD stw0_bytessent_a_lo; - DWORD stw0_bytessent_a_hi; - DWORD stw0_bytesrcvd_a_lo; - DWORD stw0_bytesrcvd_a_hi; - DWORD stw0_reqbufneed; - DWORD stw0_bigbufneed; -} STAT_WORKSTATION_0,*PSTAT_WORKSTATION_0,*LPSTAT_WORKSTATION_0; -#else -typedef struct _STAT_WORKSTATION_0 { - LARGE_INTEGER StatisticsStartTime; - LARGE_INTEGER BytesReceived; - LARGE_INTEGER SmbsReceived; - LARGE_INTEGER PagingReadBytesRequested; - LARGE_INTEGER NonPagingReadBytesRequested; - LARGE_INTEGER CacheReadBytesRequested; - LARGE_INTEGER NetworkReadBytesRequested; - LARGE_INTEGER BytesTransmitted; - LARGE_INTEGER SmbsTransmitted; - LARGE_INTEGER PagingWriteBytesRequested; - LARGE_INTEGER NonPagingWriteBytesRequested; - LARGE_INTEGER CacheWriteBytesRequested; - LARGE_INTEGER NetworkWriteBytesRequested; - DWORD InitiallyFailedOperations; - DWORD FailedCompletionOperations; - DWORD ReadOperations; - DWORD RandomReadOperations; - DWORD ReadSmbs; - DWORD LargeReadSmbs; - DWORD SmallReadSmbs; - DWORD WriteOperations; - DWORD RandomWriteOperations; - DWORD WriteSmbs; - DWORD LargeWriteSmbs; - DWORD SmallWriteSmbs; - DWORD RawReadsDenied; - DWORD RawWritesDenied; - DWORD NetworkErrors; - DWORD Sessions; - DWORD FailedSessions; - DWORD Reconnects; - DWORD CoreConnects; - DWORD Lanman20Connects; - DWORD Lanman21Connects; - DWORD LanmanNtConnects; - DWORD ServerDisconnects; - DWORD HungSessions; - DWORD UseCount; - DWORD FailedUseCount; - DWORD CurrentCommands; -} STAT_WORKSTATION_0,*PSTAT_WORKSTATION_0,*LPSTAT_WORKSTATION_0; -#endif - -NET_API_STATUS WINAPI NetStatisticsGet(LPWSTR,LPWSTR,DWORD,DWORD,PBYTE*); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmsvc.h b/winsup/w32api/include/lmsvc.h deleted file mode 100644 index a129bb0b4..000000000 --- a/winsup/w32api/include/lmsvc.h +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef _LMSVC_H -#define _LMSVC_H -#ifdef __cplusplus -extern "C" { -#endif -#include -#define SERVICE_DOS_ENCRYPTION TEXT("ENCRYPT") -#define SERVICE_UNINSTALLED 0 -#define SERVICE_INSTALL_PENDING 1 -#define SERVICE_UNINSTALL_PENDING 2 -#define SERVICE_INSTALLED 3 -#define SERVICE_INSTALL_STATE 3 -#define SERVICE_PAUSE_STATE 18 -#define LM20_SERVICE_ACTIVE 0 -#define LM20_SERVICE_CONTINUE_PENDING 4 -#define LM20_SERVICE_PAUSE_PENDING 8 -#define LM20_SERVICE_PAUSED 18 -#define SERVICE_NOT_UNINSTALLABLE 0 -#define SERVICE_UNINSTALLABLE 16 -#define SERVICE_NOT_PAUSABLE 0 -#define SERVICE_PAUSABLE 32 -#define SERVICE_REDIR_PAUSED 0x700 -#define SERVICE_REDIR_DISK_PAUSED 256 -#define SERVICE_REDIR_PRINT_PAUSED 512 -#define SERVICE_REDIR_COMM_PAUSED 1024 -#define SERVICE_CTRL_INTERROGATE 0 -#define SERVICE_CTRL_PAUSE 1 -#define SERVICE_CTRL_CONTINUE 2 -#define SERVICE_CTRL_UNINSTALL 3 -#define SERVICE_CTRL_REDIR_DISK 1 -#define SERVICE_CTRL_REDIR_PRINT 2 -#define SERVICE_CTRL_REDIR_COMM 4 -#define SERVICE_IP_NO_HINT 0 -#define SERVICE_CCP_NO_HINT 0 -#define SERVICE_IP_QUERY_HINT 0x10000 -#define SERVICE_CCP_QUERY_HINT 0x10000 -#define SERVICE_IP_CHKPT_NUM 255 -#define SERVICE_CCP_CHKPT_NUM 255 -#define SERVICE_IP_WAIT_TIME 0xFF00 -#define SERVICE_CCP_WAIT_TIME 0xFF00 -#define SERVICE_IP_WAITTIME_SHIFT 8 -#define SERVICE_NTIP_WAITTIME_SHIFT 12 -#define UPPER_HINT_MASK 0xFF00 -#define LOWER_HINT_MASK 255 -#define UPPER_GET_HINT_MASK 0xFF00000 -#define LOWER_GET_HINT_MASK 0xFF00 -#define SERVICE_NT_MAXTIME 0xFFFF -#define SERVICE_RESRV_MASK 0x1FFFF -#define SERVICE_MAXTIME 255 -#define SERVICE_BASE 3050 -#define SERVICE_UIC_NORMAL 0 -#define SERVICE_UIC_BADPARMVAL (SERVICE_BASE+1) -#define SERVICE_UIC_MISSPARM (SERVICE_BASE+2) -#define SERVICE_UIC_UNKPARM (SERVICE_BASE+3) -#define SERVICE_UIC_RESOURCE (SERVICE_BASE+4) -#define SERVICE_UIC_CONFIG (SERVICE_BASE+5) -#define SERVICE_UIC_SYSTEM (SERVICE_BASE+6) -#define SERVICE_UIC_INTERNAL (SERVICE_BASE+7) -#define SERVICE_UIC_AMBIGPARM (SERVICE_BASE+8) -#define SERVICE_UIC_DUPPARM (SERVICE_BASE+9) -#define SERVICE_UIC_KILL (SERVICE_BASE+10) -#define SERVICE_UIC_EXEC (SERVICE_BASE+11) -#define SERVICE_UIC_SUBSERV (SERVICE_BASE+12) -#define SERVICE_UIC_CONFLPARM (SERVICE_BASE+13) -#define SERVICE_UIC_FILE (SERVICE_BASE+14) -#define SERVICE_UIC_M_NULL 0 -#define SERVICE_UIC_M_MEMORY (SERVICE_BASE+20) -#define SERVICE_UIC_M_DISK (SERVICE_BASE+21) -#define SERVICE_UIC_M_THREADS (SERVICE_BASE+22) -#define SERVICE_UIC_M_PROCESSES (SERVICE_BASE+23) -#define SERVICE_UIC_M_SECURITY (SERVICE_BASE+24) -#define SERVICE_UIC_M_LANROOT (SERVICE_BASE+25) -#define SERVICE_UIC_M_REDIR (SERVICE_BASE+26) -#define SERVICE_UIC_M_SERVER (SERVICE_BASE+27) -#define SERVICE_UIC_M_SEC_FILE_ERR (SERVICE_BASE+28) -#define SERVICE_UIC_M_FILES (SERVICE_BASE+29) -#define SERVICE_UIC_M_LOGS (SERVICE_BASE+30) -#define SERVICE_UIC_M_LANGROUP (SERVICE_BASE+31) -#define SERVICE_UIC_M_MSGNAME (SERVICE_BASE+32) -#define SERVICE_UIC_M_ANNOUNCE (SERVICE_BASE+33) -#define SERVICE_UIC_M_UAS (SERVICE_BASE+34) -#define SERVICE_UIC_M_SERVER_SEC_ERR (SERVICE_BASE+35) -#define SERVICE_UIC_M_WKSTA (SERVICE_BASE+37) -#define SERVICE_UIC_M_ERRLOG (SERVICE_BASE+38) -#define SERVICE_UIC_M_FILE_UW (SERVICE_BASE+39) -#define SERVICE_UIC_M_ADDPAK (SERVICE_BASE+40) -#define SERVICE_UIC_M_LAZY (SERVICE_BASE+41) -#define SERVICE_UIC_M_UAS_MACHINE_ACCT (SERVICE_BASE+42) -#define SERVICE_UIC_M_UAS_SERVERS_NMEMB (SERVICE_BASE+43) -#define SERVICE_UIC_M_UAS_SERVERS_NOGRP (SERVICE_BASE+44) -#define SERVICE_UIC_M_UAS_INVALID_ROLE (SERVICE_BASE+45) -#define SERVICE_UIC_M_NETLOGON_NO_DC (SERVICE_BASE+46) -#define SERVICE_UIC_M_NETLOGON_DC_CFLCT (SERVICE_BASE+47) -#define SERVICE_UIC_M_NETLOGON_AUTH (SERVICE_BASE+48) -#define SERVICE_UIC_M_UAS_PROLOG (SERVICE_BASE+49) -#define SERVICE2_BASE 5600 -#define SERVICE_UIC_M_NETLOGON_MPATH (SERVICE2_BASE+0) -#define SERVICE_UIC_M_LSA_MACHINE_ACCT (SERVICE2_BASE+1) -#define SERVICE_UIC_M_DATABASE_ERROR (SERVICE2_BASE+2) - -typedef struct _SERVICE_INFO_0 { LPWSTR svci0_name;} SERVICE_INFO_0,*PSERVICE_INFO_0,* LPSERVICE_INFO_0; -typedef struct _SERVICE_INFO_1 { - LPWSTR svci1_name; - DWORD svci1_status; - DWORD svci1_code; - DWORD svci1_pid; -} SERVICE_INFO_1,*PSERVICE_INFO_1,* LPSERVICE_INFO_1; -typedef struct _SERVICE_INFO_2 { - LPWSTR svci2_name; - DWORD svci2_status; - DWORD svci2_code; - DWORD svci2_pid; - LPWSTR svci2_text; - DWORD svci2_specific_error; - LPWSTR svci2_display_name; -} SERVICE_INFO_2,*PSERVICE_INFO_2,* LPSERVICE_INFO_2; - -NET_API_STATUS WINAPI NetServiceControl(LPCWSTR,LPCWSTR,DWORD,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetServiceEnum(LPCWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetServiceGetInfo(LPCWSTR,LPCWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetServiceInstall(LPCWSTR,LPCWSTR,DWORD,LPCWSTR*,PBYTE*); -#define SERVICE_IP_CODE(t,n) ((long)SERVICE_IP_QUERY_HINT|(long)(n|(t<>SERVICE_NTIP_WAITTIME_SHIFT)|(((c)&LOWER_GET_HINT_MASK)>>SERVICE_IP_WAITTIME_SHIFT)) -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmuse.h b/winsup/w32api/include/lmuse.h deleted file mode 100644 index 528e1ff3f..000000000 --- a/winsup/w32api/include/lmuse.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef _LMUSE_H -#define _LMUSE_H -#ifdef __cplusplus -extern "C" { -#endif -#include -#define USE_LOCAL_PARMNUM 1 -#define USE_REMOTE_PARMNUM 2 -#define USE_PASSWORD_PARMNUM 3 -#define USE_ASGTYPE_PARMNUM 4 -#define USE_USERNAME_PARMNUM 5 -#define USE_DOMAINNAME_PARMNUM 6 -#define USE_OK 0 -#define USE_PAUSED 1 -#define USE_SESSLOST 2 -#define USE_DISCONN 2 -#define USE_NETERR 3 -#define USE_CONN 4 -#define USE_RECONN 5 -#define USE_WILDCARD ((DWORD)-1) -#define USE_DISKDEV 0 -#define USE_SPOOLDEV 1 -#define USE_CHARDEV 2 -#define USE_IPC 3 -typedef struct _USE_INFO_0 { - LPWSTR ui0_local; - LPWSTR ui0_remote; -}USE_INFO_0,*PUSE_INFO_0,*LPUSE_INFO_0; -typedef struct _USE_INFO_1 { - LPWSTR ui1_local; - LPWSTR ui1_remote; - LPWSTR ui1_password; - DWORD ui1_status; - DWORD ui1_asg_type; - DWORD ui1_refcount; - DWORD ui1_usecount; -}USE_INFO_1,*PUSE_INFO_1,*LPUSE_INFO_1; -typedef struct _USE_INFO_2 { - LPWSTR ui2_local; - LPWSTR ui2_remote; - LPWSTR ui2_password; - DWORD ui2_status; - DWORD ui2_asg_type; - DWORD ui2_refcount; - DWORD ui2_usecount; - LPWSTR ui2_username; - LPWSTR ui2_domainname; -}USE_INFO_2,*PUSE_INFO_2,*LPUSE_INFO_2; -NET_API_STATUS WINAPI NetUseAdd(LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetUseDel(LPWSTR,LPWSTR,DWORD); -NET_API_STATUS WINAPI NetUseEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetUseGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lmuseflg.h b/winsup/w32api/include/lmuseflg.h deleted file mode 100644 index 7984b1969..000000000 --- a/winsup/w32api/include/lmuseflg.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _LMUSEFLG_H -#define _LMUSEFLG_H -#define USE_NOFORCE 0 -#define USE_FORCE 1 -#define USE_LOTS_OF_FORCE 2 -#endif diff --git a/winsup/w32api/include/lmwksta.h b/winsup/w32api/include/lmwksta.h deleted file mode 100644 index 6538fc9d1..000000000 --- a/winsup/w32api/include/lmwksta.h +++ /dev/null @@ -1,229 +0,0 @@ -#ifndef _LMWKSTA_H -#define _LMWKSTA_H -#ifdef __cplusplus -extern "C" { -#endif -#include -#define WKSTA_PLATFORM_ID_PARMNUM 100 -#define WKSTA_COMPUTERNAME_PARMNUM 1 -#define WKSTA_LANGROUP_PARMNUM 2 -#define WKSTA_VER_MAJOR_PARMNUM 4 -#define WKSTA_VER_MINOR_PARMNUM 5 -#define WKSTA_LOGGED_ON_USERS_PARMNUM 6 -#define WKSTA_LANROOT_PARMNUM 7 -#define WKSTA_LOGON_DOMAIN_PARMNUM 8 -#define WKSTA_LOGON_SERVER_PARMNUM 9 -#define WKSTA_CHARWAIT_PARMNUM 10 -#define WKSTA_CHARTIME_PARMNUM 11 -#define WKSTA_CHARCOUNT_PARMNUM 12 -#define WKSTA_KEEPCONN_PARMNUM 13 -#define WKSTA_KEEPSEARCH_PARMNUM 14 -#define WKSTA_MAXCMDS_PARMNUM 15 -#define WKSTA_NUMWORKBUF_PARMNUM 16 -#define WKSTA_MAXWRKCACHE_PARMNUM 17 -#define WKSTA_SESSTIMEOUT_PARMNUM 18 -#define WKSTA_SIZERROR_PARMNUM 19 -#define WKSTA_NUMALERTS_PARMNUM 20 -#define WKSTA_NUMSERVICES_PARMNUM 21 -#define WKSTA_NUMCHARBUF_PARMNUM 22 -#define WKSTA_SIZCHARBUF_PARMNUM 23 -#define WKSTA_ERRLOGSZ_PARMNUM 27 -#define WKSTA_PRINTBUFTIME_PARMNUM 28 -#define WKSTA_SIZWORKBUF_PARMNUM 29 -#define WKSTA_MAILSLOTS_PARMNUM 30 -#define WKSTA_NUMDGRAMBUF_PARMNUM 31 -#define WKSTA_WRKHEURISTICS_PARMNUM 32 -#define WKSTA_MAXTHREADS_PARMNUM 33 -#define WKSTA_LOCKQUOTA_PARMNUM 41 -#define WKSTA_LOCKINCREMENT_PARMNUM 42 -#define WKSTA_LOCKMAXIMUM_PARMNUM 43 -#define WKSTA_PIPEINCREMENT_PARMNUM 44 -#define WKSTA_PIPEMAXIMUM_PARMNUM 45 -#define WKSTA_DORMANTFILELIMIT_PARMNUM 46 -#define WKSTA_CACHEFILETIMEOUT_PARMNUM 47 -#define WKSTA_USEOPPORTUNISTICLOCKING_PARMNUM 48 -#define WKSTA_USEUNLOCKBEHIND_PARMNUM 49 -#define WKSTA_USECLOSEBEHIND_PARMNUM 50 -#define WKSTA_BUFFERNAMEDPIPES_PARMNUM 51 -#define WKSTA_USELOCKANDREADANDUNLOCK_PARMNUM 52 -#define WKSTA_UTILIZENTCACHING_PARMNUM 53 -#define WKSTA_USERAWREAD_PARMNUM 54 -#define WKSTA_USERAWWRITE_PARMNUM 55 -#define WKSTA_USEWRITERAWWITHDATA_PARMNUM 56 -#define WKSTA_USEENCRYPTION_PARMNUM 57 -#define WKSTA_BUFFILESWITHDENYWRITE_PARMNUM 58 -#define WKSTA_BUFFERREADONLYFILES_PARMNUM 59 -#define WKSTA_FORCECORECREATEMODE_PARMNUM 60 -#define WKSTA_USE512BYTESMAXTRANSFER_PARMNUM 61 -#define WKSTA_READAHEADTHRUPUT_PARMNUM 62 -#define WKSTA_OTH_DOMAINS_PARMNUM 101 -#define TRANSPORT_QUALITYOFSERVICE_PARMNUM 201 -#define TRANSPORT_NAME_PARMNUM 202 - -typedef struct _WKSTA_INFO_100 { - DWORD wki100_platform_id; - LPWSTR wki100_computername; - LPWSTR wki100_langroup; - DWORD wki100_ver_major; - DWORD wki100_ver_minor; -}WKSTA_INFO_100,*PWKSTA_INFO_100,*LPWKSTA_INFO_100; -typedef struct _WKSTA_INFO_101 { - DWORD wki101_platform_id; - LPWSTR wki101_computername; - LPWSTR wki101_langroup; - DWORD wki101_ver_major; - DWORD wki101_ver_minor; - LPWSTR wki101_lanroot; -}WKSTA_INFO_101,*PWKSTA_INFO_101,*LPWKSTA_INFO_101; -typedef struct _WKSTA_INFO_102 { - DWORD wki102_platform_id; - LPWSTR wki102_computername; - LPWSTR wki102_langroup; - DWORD wki102_ver_major; - DWORD wki102_ver_minor; - LPWSTR wki102_lanroot; - DWORD wki102_logged_on_users; -}WKSTA_INFO_102,*PWKSTA_INFO_102,*LPWKSTA_INFO_102; -typedef struct _WKSTA_INFO_302{ - DWORD wki302_char_wait; - DWORD wki302_collection_time; - DWORD wki302_maximum_collection_count; - DWORD wki302_keep_conn; - DWORD wki302_keep_search; - DWORD wki302_max_cmds; - DWORD wki302_num_work_buf; - DWORD wki302_siz_work_buf; - DWORD wki302_max_wrk_cache; - DWORD wki302_sess_timeout; - DWORD wki302_siz_error; - DWORD wki302_num_alerts; - DWORD wki302_num_services; - DWORD wki302_errlog_sz; - DWORD wki302_print_buf_time; - DWORD wki302_num_char_buf; - DWORD wki302_siz_char_buf; - LPWSTR wki302_wrk_heuristics; - DWORD wki302_mailslots; - DWORD wki302_num_dgram_buf; -}WKSTA_INFO_302,*PWKSTA_INFO_302,*LPWKSTA_INFO_302; -typedef struct _WKSTA_INFO_402{ - DWORD wki402_char_wait; - DWORD wki402_collection_time; - DWORD wki402_maximum_collection_count; - DWORD wki402_keep_conn; - DWORD wki402_keep_search; - DWORD wki402_max_cmds; - DWORD wki402_num_work_buf; - DWORD wki402_siz_work_buf; - DWORD wki402_max_wrk_cache; - DWORD wki402_sess_timeout; - DWORD wki402_siz_error; - DWORD wki402_num_alerts; - DWORD wki402_num_services; - DWORD wki402_errlog_sz; - DWORD wki402_print_buf_time; - DWORD wki402_num_char_buf; - DWORD wki402_siz_char_buf; - LPWSTR wki402_wrk_heuristics; - DWORD wki402_mailslots; - DWORD wki402_num_dgram_buf; - DWORD wki402_max_threads; -}WKSTA_INFO_402,*PWKSTA_INFO_402,*LPWKSTA_INFO_402; -typedef struct _WKSTA_INFO_502{ - DWORD wki502_char_wait; - DWORD wki502_collection_time; - DWORD wki502_maximum_collection_count; - DWORD wki502_keep_conn; - DWORD wki502_max_cmds; - DWORD wki502_sess_timeout; - DWORD wki502_siz_char_buf; - DWORD wki502_max_threads; - DWORD wki502_lock_quota; - DWORD wki502_lock_increment; - DWORD wki502_lock_maximum; - DWORD wki502_pipe_increment; - DWORD wki502_pipe_maximum; - DWORD wki502_cache_file_timeout; - DWORD wki502_dormant_file_limit; - DWORD wki502_read_ahead_throughput; - DWORD wki502_num_mailslot_buffers; - DWORD wki502_num_srv_announce_buffers; - DWORD wki502_max_illegal_datagram_events; - DWORD wki502_illegal_datagram_event_reset_frequency; - BOOL wki502_log_election_packets; - BOOL wki502_use_opportunistic_locking; - BOOL wki502_use_unlock_behind; - BOOL wki502_use_close_behind; - BOOL wki502_buf_named_pipes; - BOOL wki502_use_lock_read_unlock; - BOOL wki502_utilize_nt_caching; - BOOL wki502_use_raw_read; - BOOL wki502_use_raw_write; - BOOL wki502_use_write_raw_data; - BOOL wki502_use_encryption; - BOOL wki502_buf_files_deny_write; - BOOL wki502_buf_read_only_files; - BOOL wki502_force_core_create_mode; - BOOL wki502_use_512_byte_max_transfer; -}WKSTA_INFO_502,*PWKSTA_INFO_502,*LPWKSTA_INFO_502; -typedef struct _WKSTA_INFO_1010 { DWORD wki1010_char_wait;} WKSTA_INFO_1010,*PWKSTA_INFO_1010,*LPWKSTA_INFO_1010; -typedef struct _WKSTA_INFO_1011 { DWORD wki1011_collection_time;} WKSTA_INFO_1011,*PWKSTA_INFO_1011,*LPWKSTA_INFO_1011; -typedef struct _WKSTA_INFO_1012 { DWORD wki1012_maximum_collection_count;} WKSTA_INFO_1012,*PWKSTA_INFO_1012,*LPWKSTA_INFO_1012; -typedef struct _WKSTA_INFO_1027 { DWORD wki1027_errlog_sz;} WKSTA_INFO_1027,*PWKSTA_INFO_1027,*LPWKSTA_INFO_1027; -typedef struct _WKSTA_INFO_1028 { DWORD wki1028_print_buf_time;} WKSTA_INFO_1028,*PWKSTA_INFO_1028,*LPWKSTA_INFO_1028; -typedef struct _WKSTA_INFO_1032 { DWORD wki1032_wrk_heuristics;} WKSTA_INFO_1032,*PWKSTA_INFO_1032,*LPWKSTA_INFO_1032; -typedef struct _WKSTA_INFO_1013 { DWORD wki1013_keep_conn;} WKSTA_INFO_1013,*PWKSTA_INFO_1013,*LPWKSTA_INFO_1013; -typedef struct _WKSTA_INFO_1018 { DWORD wki1018_sess_timeout;} WKSTA_INFO_1018,*PWKSTA_INFO_1018,*LPWKSTA_INFO_1018; -typedef struct _WKSTA_INFO_1023 { DWORD wki1023_siz_char_buf;} WKSTA_INFO_1023,*PWKSTA_INFO_1023,*LPWKSTA_INFO_1023; -typedef struct _WKSTA_INFO_1033 { DWORD wki1033_max_threads;} WKSTA_INFO_1033,*PWKSTA_INFO_1033,*LPWKSTA_INFO_1033; -typedef struct _WKSTA_INFO_1041 { DWORD wki1041_lock_quota;} WKSTA_INFO_1041,*PWKSTA_INFO_1041,*LPWKSTA_INFO_1041; -typedef struct _WKSTA_INFO_1042 { DWORD wki1042_lock_increment;} WKSTA_INFO_1042,*PWKSTA_INFO_1042,*LPWKSTA_INFO_1042; -typedef struct _WKSTA_INFO_1043 { DWORD wki1043_lock_maximum;} WKSTA_INFO_1043,*PWKSTA_INFO_1043,*LPWKSTA_INFO_1043; -typedef struct _WKSTA_INFO_1044 { DWORD wki1044_pipe_increment;} WKSTA_INFO_1044,*PWKSTA_INFO_1044,*LPWKSTA_INFO_1044; -typedef struct _WKSTA_INFO_1045 { DWORD wki1045_pipe_maximum;} WKSTA_INFO_1045,*PWKSTA_INFO_1045,*LPWKSTA_INFO_1045; -typedef struct _WKSTA_INFO_1046 { DWORD wki1046_dormant_file_limit;} WKSTA_INFO_1046,*PWKSTA_INFO_1046,*LPWKSTA_INFO_1046; -typedef struct _WKSTA_INFO_1047 { DWORD wki1047_cache_file_timeout;} WKSTA_INFO_1047,*PWKSTA_INFO_1047,*LPWKSTA_INFO_1047; -typedef struct _WKSTA_INFO_1048 { BOOL wki1048_use_opportunistic_locking;} WKSTA_INFO_1048,*PWKSTA_INFO_1048,*LPWKSTA_INFO_1048; -typedef struct _WKSTA_INFO_1049 { BOOL wki1049_use_unlock_behind;} WKSTA_INFO_1049,*PWKSTA_INFO_1049,*LPWKSTA_INFO_1049; -typedef struct _WKSTA_INFO_1050 { BOOL wki1050_use_close_behind;} WKSTA_INFO_1050,*PWKSTA_INFO_1050,*LPWKSTA_INFO_1050; -typedef struct _WKSTA_INFO_1051 { BOOL wki1051_buf_named_pipes;} WKSTA_INFO_1051,*PWKSTA_INFO_1051,*LPWKSTA_INFO_1051; -typedef struct _WKSTA_INFO_1052 { BOOL wki1052_use_lock_read_unlock;} WKSTA_INFO_1052,*PWKSTA_INFO_1052,*LPWKSTA_INFO_1052; -typedef struct _WKSTA_INFO_1053 { BOOL wki1053_utilize_nt_caching;} WKSTA_INFO_1053,*PWKSTA_INFO_1053,*LPWKSTA_INFO_1053; -typedef struct _WKSTA_INFO_1054 { BOOL wki1054_use_raw_read;} WKSTA_INFO_1054,*PWKSTA_INFO_1054,*LPWKSTA_INFO_1054; -typedef struct _WKSTA_INFO_1055 { BOOL wki1055_use_raw_write;} WKSTA_INFO_1055,*PWKSTA_INFO_1055,*LPWKSTA_INFO_1055; -typedef struct _WKSTA_INFO_1056 { BOOL wki1056_use_write_raw_data;} WKSTA_INFO_1056,*PWKSTA_INFO_1056,*LPWKSTA_INFO_1056; -typedef struct _WKSTA_INFO_1057 { BOOL wki1057_use_encryption;} WKSTA_INFO_1057,*PWKSTA_INFO_1057,*LPWKSTA_INFO_1057; -typedef struct _WKSTA_INFO_1058 { BOOL wki1058_buf_files_deny_write;} WKSTA_INFO_1058,*PWKSTA_INFO_1058,*LPWKSTA_INFO_1058; -typedef struct _WKSTA_INFO_1059 { BOOL wki1059_buf_read_only_files;} WKSTA_INFO_1059,*PWKSTA_INFO_1059,*LPWKSTA_INFO_1059; -typedef struct _WKSTA_INFO_1060 { BOOL wki1060_force_core_create_mode;} WKSTA_INFO_1060,*PWKSTA_INFO_1060,*LPWKSTA_INFO_1060; -typedef struct _WKSTA_INFO_1061 { BOOL wki1061_use_512_byte_max_transfer;} WKSTA_INFO_1061,*PWKSTA_INFO_1061,*LPWKSTA_INFO_1061; -typedef struct _WKSTA_INFO_1062 { DWORD wki1062_read_ahead_throughput;} WKSTA_INFO_1062,*PWKSTA_INFO_1062,*LPWKSTA_INFO_1062; -typedef struct _WKSTA_USER_INFO_0 { LPWSTR wkui0_username;}WKSTA_USER_INFO_0,*PWKSTA_USER_INFO_0,*LPWKSTA_USER_INFO_0; -typedef struct _WKSTA_USER_INFO_1 { - LPWSTR wkui1_username; - LPWSTR wkui1_logon_domain; - LPWSTR wkui1_oth_domains; - LPWSTR wkui1_logon_server; -}WKSTA_USER_INFO_1,*PWKSTA_USER_INFO_1,*LPWKSTA_USER_INFO_1; -typedef struct _WKSTA_USER_INFO_1101 { LPWSTR wkui1101_oth_domains;} WKSTA_USER_INFO_1101,*PWKSTA_USER_INFO_1101,*LPWKSTA_USER_INFO_1101; -typedef struct _WKSTA_TRANSPORT_INFO_0 { - DWORD wkti0_quality_of_service; - DWORD wkti0_number_of_vcs; - LPWSTR wkti0_transport_name; - LPWSTR wkti0_transport_address; - BOOL wkti0_wan_ish; -}WKSTA_TRANSPORT_INFO_0,*PWKSTA_TRANSPORT_INFO_0,*LPWKSTA_TRANSPORT_INFO_0; - -NET_API_STATUS WINAPI NetWkstaGetInfo(LPWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetWkstaSetInfo(LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetWkstaUserGetInfo(LPWSTR,DWORD,PBYTE*); -NET_API_STATUS WINAPI NetWkstaUserSetInfo(LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetWkstaUserEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); -NET_API_STATUS WINAPI NetWkstaTransportAdd(LPWSTR,DWORD,PBYTE,PDWORD); -NET_API_STATUS WINAPI NetWkstaTransportDel(LPWSTR,LPWSTR,DWORD); -NET_API_STATUS WINAPI NetWkstaTransportEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/lzexpand.h b/winsup/w32api/include/lzexpand.h deleted file mode 100644 index 5c06d14e4..000000000 --- a/winsup/w32api/include/lzexpand.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef _LZEXPAND_H -#define _LZEXPAND_H -#ifdef __cplusplus -extern "C" { -#endif -#define LZERROR_BADINHANDLE (-1) -#define LZERROR_BADOUTHANDLE (-2) -#define LZERROR_READ (-3) -#define LZERROR_WRITE (-4) -#define LZERROR_GLOBALLOC (-5) -#define LZERROR_GLOBLOCK (-6) -#define LZERROR_BADVALUE (-7) -#define LZERROR_UNKNOWNALG (-8) -LONG WINAPI CopyLZFile(INT,INT); -INT WINAPI GetExpandedNameA(LPSTR,LPSTR); -INT WINAPI GetExpandedNameW(LPWSTR,LPWSTR); -VOID APIENTRY LZClose(INT); -LONG APIENTRY LZCopy(INT,INT); -VOID WINAPI LZDone(VOID); -INT WINAPI LZInit(INT); -INT WINAPI LZOpenFileA(LPSTR,LPOFSTRUCT,WORD); -INT WINAPI LZOpenFileW(LPWSTR,LPOFSTRUCT,WORD); -INT WINAPI LZRead(INT,LPSTR,INT); -LONG WINAPI LZSeek(INT,LONG,INT); -INT WINAPI LZStart(VOID); -#ifdef UNICODE -#define GetExpandedName GetExpandedNameW -#define LZOpenFile LZOpenFileW -#else -#define GetExpandedName GetExpandedNameA -#define LZOpenFile LZOpenFileA -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/mapi.h b/winsup/w32api/include/mapi.h deleted file mode 100644 index 42755028a..000000000 --- a/winsup/w32api/include/mapi.h +++ /dev/null @@ -1,160 +0,0 @@ -#ifndef _MAPI_H_ -#define _MAPI_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#define SUCCESS_SUCCESS 0 -#define MAPI_USER_ABORT 1 -#define MAPI_E_USER_ABORT 1 -#define MAPI_E_FAILURE 2 -#define MAPI_E_LOGIN_FAILURE 3 -#define MAPI_E_LOGON_FAILURE 3 -#define MAPI_E_DISK_FULL 4 -#define MAPI_E_INSUFFICIENT_MEMORY 5 -#define MAPI_E_ACCESS_DENIED 6 -#define MAPI_E_BLK_TOO_SMALL 6 -#define MAPI_E_TOO_MANY_SESSIONS 8 -#define MAPI_E_TOO_MANY_FILES 9 -#define MAPI_E_TOO_MANY_RECIPIENTS 10 -#define MAPI_E_ATTACHMENT_NOT_FOUND 11 -#define MAPI_E_ATTACHMENT_OPEN_FAILURE 12 -#define MAPI_E_ATTACHMENT_WRITE_FAILURE 13 -#define MAPI_E_UNKNOWN_RECIPIENT 14 -#define MAPI_E_BAD_RECIPTYPE 15 -#define MAPI_E_NO_MESSAGES 16 -#define MAPI_E_INVALID_MESSAGE 17 -#define MAPI_E_TEXT_TOO_LARGE 18 -#define MAPI_E_INVALID_SESSION 19 -#define MAPI_E_TYPE_NOT_SUPPORTED 20 -#define MAPI_E_AMBIGUOUS_RECIPIENT 21 -#define MAPI_E_AMBIGUOUS_RECIP 21 -#define MAPI_E_MESSAGE_IN_USE 22 -#define MAPI_E_NETWORK_FAILURE 23 -#define MAPI_E_INVALID_EDITFIELDS 24 -#define MAPI_E_INVALID_RECIPS 25 -#define MAPI_E_NOT_SUPPORTED 26 - -#define MAPI_ORIG 0 -#define MAPI_TO 1 -#define MAPI_CC 2 -#define MAPI_BCC 3 - -#define MAPI_LOGON_UI 0x0001 -#define MAPI_NEW_SESSION 0x0002 -#define MAPI_FORCE_DOWNLOAD 0x1000 -#define MAPI_LOGOFF_SHARED 0x0001 -#define MAPI_LOGOFF_UI 0x0002 -#define MAPI_DIALOG 0x0008 -#define MAPI_UNREAD_ONLY 0x0020 -#define MAPI_LONG_MSGID 0x4000 -#define MAPI_GUARANTEE_FIFO 0x0100 -#define MAPI_ENVELOPE_ONLY 0x0040 -#define MAPI_PEEK 0x0080 -#define MAPI_BODY_AS_FILE 0x0200 -#define MAPI_SUPPRESS_ATTACH 0x0800 -#define MAPI_AB_NOMODIFY 0x0400 -#define MAPI_OLE 0x0001 -#define MAPI_OLE_STATIC 0x0002 -#define MAPI_UNREAD 0x0001 -#define MAPI_RECEIPT_REQUESTED 0x0002 -#define MAPI_SENT 0x0004 - -#ifndef RC_INVOKED -typedef unsigned long FLAGS; -typedef unsigned long LHANDLE; -typedef unsigned long FAR *LPLHANDLE, FAR *LPULONG; - -typedef struct { - ULONG ulReserved; - ULONG ulRecipClass; - LPTSTR lpszName; - LPTSTR lpszAddress; - ULONG ulEIDSize; - LPVOID lpEntryID; -} MapiRecipDesc, *lpMapiRecipDesc; -typedef struct { - ULONG ulReserved; - ULONG flFlags; - ULONG nPosition; - LPTSTR lpszPathName; - LPTSTR lpszFileName; - LPVOID lpFileType; -} MapiFileDesc, *lpMapiFileDesc; -typedef struct { - ULONG ulReserved; - ULONG cbTag; - LPBYTE lpTag; - ULONG cbEncoding; - LPBYTE lpEncoding; -} MapiFileTagExt, *lpMapiFileTagExt; -typedef struct { - ULONG ulReserved; - LPTSTR lpszSubject; - LPTSTR lpszNoteText; - LPTSTR lpszMessageType; - LPTSTR lpszDateReceived; - LPTSTR lpszConversationID; - FLAGS flFlags; - lpMapiRecipDesc lpOriginator; - ULONG nRecipCount; - lpMapiRecipDesc lpRecips; - ULONG nFileCount; - lpMapiFileDesc lpFiles; -} MapiMessage, *lpMapiMessage; - -ULONG PASCAL MAPILogon (ULONG,LPTSTR,LPTSTR,FLAGS,ULONG,LPLHANDLE); -ULONG PASCAL MAPISendMail (LHANDLE,ULONG,lpMapiMessage,FLAGS,ULONG); -ULONG PASCAL MAPISendDocuments (ULONG,LPTSTR,LPTSTR,LPTSTR,ULONG); -ULONG PASCAL MAPIReadMail (LHANDLE,ULONG,LPTSTR,FLAGS,ULONG, - lpMapiMessage*); -ULONG PASCAL MAPIFindNext (LHANDLE,ULONG,LPTSTR,LPTSTR,FLAGS,ULONG,LPTSTR); -ULONG PASCAL MAPIResolveName (LHANDLE,ULONG,LPTSTR,FLAGS,ULONG, - lpMapiRecipDesc*); -ULONG PASCAL MAPIAddress (LHANDLE,ULONG,LPTSTR,ULONG,LPTSTR,ULONG, - lpMapiRecipDesc,FLAGS,ULONG,LPULONG, - lpMapiRecipDesc*); -ULONG PASCAL MAPIFreeBuffer (LPVOID); -ULONG PASCAL MAPIDetails (LHANDLE,ULONG,lpMapiRecipDesc,FLAGS,ULONG); -ULONG PASCAL MAPISaveMail (LHANDLE,ULONG,lpMapiMessage lpszMessage, - FLAGS,ULONG,LPTSTR); -ULONG PASCAL MAPIDeleteMail (LHANDLE lpSession,ULONG,LPTSTR,FLAGS,ULONG); -ULONG PASCAL MAPILogoff (LHANDLE,ULONG,FLAGS,ULONG); -/* Netscape extensions. */ -ULONG PASCAL MAPIGetNetscapeVersion (void); -ULONG PASCAL MAPI_NSCP_SynchronizeClient (LHANDLE,ULONG); - -/* Handles for use with GetProcAddress */ -typedef ULONG (PASCAL * LPMAPILOGON) (ULONG,LPTSTR,LPTSTR,FLAGS,ULONG, - LPLHANDLE); -typedef ULONG (PASCAL * LPMAPISENDMAIL) (LHANDLE,ULONG,lpMapiMessage, - FLAGS,ULONG); -typedef ULONG (PASCAL * LPMAPISENDDOCUMENTS) (ULONG,LPTSTR,LPTSTR, - LPTSTR,ULONG); -typedef ULONG (PASCAL * LPMAPIREADMAIL) (LHANDLE,ULONG,LPTSTR,FLAGS, - ULONG,lpMapiMessage*); -typedef ULONG (PASCAL * LPMAPIFINDNEXT) (LHANDLE,ULONG,LPTSTR,LPTSTR, - FLAGS,ULONG,LPTSTR); -typedef ULONG (PASCAL * LPMAPIRESOLVENAME) (LHANDLE,ULONG,LPTSTR,FLAGS, - ULONG,lpMapiRecipDesc*); -typedef ULONG (PASCAL * LPMAPIADDRESS) (LHANDLE,ULONG,LPTSTR,ULONG,LPTSTR, - ULONG,lpMapiRecipDesc,FLAGS,ULONG, - LPULONG,lpMapiRecipDesc*); -typedef ULONG (PASCAL * LPMAPIFREEBUFFER) (LPVOID lpv); -typedef ULONG (PASCAL * LPMAPIDETAILS) (LHANDLE,ULONG,lpMapiRecipDesc, - FLAGS,ULONG); -typedef ULONG (PASCAL * LPMAPISAVEMAIL) (LHANDLE,ULONG,lpMapiMessage, - FLAGS,ULONG,LPTSTR); -typedef ULONG (PASCAL * LPMAPIDELETEMAIL) (LHANDLE lpSession,ULONG, - LPTSTR, FLAGS,ULONG); -typedef ULONG (PASCAL * LPMAPILOGOFF)(LHANDLE,ULONG,FLAGS,ULONG); - -#endif /* RC_INVOKED */ - -#ifdef __cplusplus -} -#endif - -#endif /* Not _MAPI_H_ */ - diff --git a/winsup/w32api/include/mciavi.h b/winsup/w32api/include/mciavi.h deleted file mode 100644 index b56bb8f1c..000000000 --- a/winsup/w32api/include/mciavi.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _MCIAVI_H -#define _MCIAVI_H -#define MCI_MCIAVI_PLAY_WINDOW 0x1000000 -#define MCI_MCIAVI_PLAY_FULLSCREEN 0x2000000 -#define MCI_MCIAVI_PLAY_FULLBY2 0x4000000 -#define MCI_AVI_STATUS_FRAMES_SKIPPED 0x8001 -#define MCI_AVI_STATUS_LAST_PLAY_SPEED 0x8002 -#define MCI_AVI_STATUS_AUDIO_BREAKS 0x8003 -#define MCI_AVI_SETVIDEO_DRAW_PROCEDURE 0x8000 -#define MCI_AVI_SETVIDEO_PALETTE_COLOR 0x8100 -#define MCI_AVI_SETVIDEO_PALETTE_HALFTONE 0x0000FFFF -#define MCIERR_AVI_OLDAVIFORMAT (MCIERR_CUSTOM_DRIVER_BASE+100) -#define MCIERR_AVI_NOTINTERLEAVED (MCIERR_CUSTOM_DRIVER_BASE+101) -#define MCIERR_AVI_NODISPDIB (MCIERR_CUSTOM_DRIVER_BASE+102) -#define MCIERR_AVI_CANTPLAYFULLSCREEN (MCIERR_CUSTOM_DRIVER_BASE+103) -#define MCIERR_AVI_TOOBIGFORVGA (MCIERR_CUSTOM_DRIVER_BASE+104) -#define MCIERR_AVI_NOCOMPRESSOR (MCIERR_CUSTOM_DRIVER_BASE+105) -#define MCIERR_AVI_DISPLAYERROR (MCIERR_CUSTOM_DRIVER_BASE+106) -#define MCIERR_AVI_AUDIOERROR (MCIERR_CUSTOM_DRIVER_BASE+107) -#define MCIERR_AVI_BADPALETTE (MCIERR_CUSTOM_DRIVER_BASE+108) -#endif diff --git a/winsup/w32api/include/mcx.h b/winsup/w32api/include/mcx.h deleted file mode 100644 index facc6d595..000000000 --- a/winsup/w32api/include/mcx.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef _MCX_H -#define _MCX_H -#ifdef __cplusplus -extern "C" { -#endif -#define DIALOPTION_BILLING 64 -#define DIALOPTION_QUIET 128 -#define DIALOPTION_DIALTONE 256 -#define MDMVOLFLAG_LOW 1 -#define MDMVOLFLAG_MEDIUM 2 -#define MDMVOLFLAG_HIGH 4 -#define MDMVOL_LOW 0 -#define MDMVOL_MEDIUM 1 -#define MDMVOL_HIGH 2 -#define MDMSPKRFLAG_OFF 1 -#define MDMSPKRFLAG_DIAL 2 -#define MDMSPKRFLAG_ON 4 -#define MDMSPKRFLAG_CALLSETUP 8 -#define MDMSPKR_OFF 0 -#define MDMSPKR_DIAL 1 -#define MDMSPKR_ON 2 -#define MDMSPKR_CALLSETUP 3 -#define MDM_COMPRESSION 1 -#define MDM_ERROR_CONTROL 2 -#define MDM_FORCED_EC 4 -#define MDM_CELLULAR 8 -#define MDM_FLOWCONTROL_HARD 16 -#define MDM_FLOWCONTROL_SOFT 32 -#define MDM_CCITT_OVERRIDE 64 -#define MDM_SPEED_ADJUST 128 -#define MDM_TONE_DIAL 256 -#define MDM_BLIND_DIAL 512 -#define MDM_V23_OVERRIDE 1024 -typedef struct _MODEMDEVCAPS { - DWORD dwActualSize; - DWORD dwRequiredSize; - DWORD dwDevSpecificOffset; - DWORD dwDevSpecificSize; - DWORD dwModemProviderVersion; - DWORD dwModemManufacturerOffset; - DWORD dwModemManufacturerSize; - DWORD dwModemModelOffset; - DWORD dwModemModelSize; - DWORD dwModemVersionOffset; - DWORD dwModemVersionSize; - DWORD dwDialOptions; - DWORD dwCallSetupFailTimer; - DWORD dwInactivityTimeout; - DWORD dwSpeakerVolume; - DWORD dwSpeakerMode; - DWORD dwModemOptions; - DWORD dwMaxDTERate; - DWORD dwMaxDCERate; - BYTE abVariablePortion[1]; -} MODEMDEVCAPS,*PMODEMDEVCAPS,*LPMODEMDEVCAPS; -typedef struct _MODEMSETTINGS { - DWORD dwActualSize; - DWORD dwRequiredSize; - DWORD dwDevSpecificOffset; - DWORD dwDevSpecificSize; - DWORD dwCallSetupFailTimer; - DWORD dwInactivityTimeout; - DWORD dwSpeakerVolume; - DWORD dwSpeakerMode; - DWORD dwPreferredModemOptions; - DWORD dwNegotiatedModemOptions; - DWORD dwNegotiatedDCERate; - BYTE abVariablePortion[1]; -} MODEMSETTINGS,*PMODEMSETTINGS,*LPMODEMSETTINGS; -#ifdef __cplusplus -} -#endif -#endif /* _MCX_H */ diff --git a/winsup/w32api/include/mmsystem.h b/winsup/w32api/include/mmsystem.h deleted file mode 100644 index 63451f974..000000000 --- a/winsup/w32api/include/mmsystem.h +++ /dev/null @@ -1,1933 +0,0 @@ - -#ifndef _MMSYSTEM_H -#define _MMSYSTEM_H -#pragma pack(push,1) -#ifdef __cplusplus -extern "C" { -#endif -#define WINMMAPI DECLSPEC_IMPORT -#define _loadds -#define _huge -#define MAXPNAMELEN 32 -#define MAXERRORLENGTH 256 -#define MAX_JOYSTICKOEMVXDNAME 260 -#define _MMRESULT_ -#define TIME_MS 1 -#define TIME_SAMPLES 2 -#define TIME_BYTES 4 -#define TIME_SMPTE 8 -#define TIME_MIDI 16 -#define TIME_TICKS 32 -#define MAKEFOURCC(c0,c1,c2,c3) ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<<16)|((DWORD)(BYTE)(c3)<<24)) -#define MM_JOY1MOVE 0x3A0 -#define MM_JOY2MOVE 0x3A1 -#define MM_JOY1ZMOVE 0x3A2 -#define MM_JOY2ZMOVE 0x3A3 -#define MM_JOY1BUTTONDOWN 0x3B5 -#define MM_JOY2BUTTONDOWN 0x3B6 -#define MM_JOY1BUTTONUP 0x3B7 -#define MM_JOY2BUTTONUP 0x3B8 -#define MM_MCINOTIFY 0x3B9 -#define MM_WOM_OPEN 0x3BB -#define MM_WOM_CLOSE 0x3BC -#define MM_WOM_DONE 0x3BD -#define MM_WIM_OPEN 0x3BE -#define MM_WIM_CLOSE 0x3BF -#define MM_WIM_DATA 0x3C0 -#define MM_MIM_OPEN 0x3C1 -#define MM_MIM_CLOSE 0x3C2 -#define MM_MIM_DATA 0x3C3 -#define MM_MIM_LONGDATA 0x3C4 -#define MM_MIM_ERROR 0x3C5 -#define MM_MIM_LONGERROR 0x3C6 -#define MM_MOM_OPEN 0x3C7 -#define MM_MOM_CLOSE 0x3C8 -#define MM_MOM_DONE 0x3C9 -#define MM_DRVM_OPEN 0x3D0 -#define MM_DRVM_CLOSE 0x3D1 -#define MM_DRVM_DATA 0x3D2 -#define MM_DRVM_ERROR 0x3D3 -#define MM_STREAM_OPEN 0x3D4 -#define MM_STREAM_CLOSE 0x3D5 -#define MM_STREAM_DONE 0x3D6 -#define MM_STREAM_ERROR 0x3D7 -#define MM_MOM_POSITIONCB 0x3CA -#define MM_MCISIGNAL 0x3CB -#define MM_MIM_MOREDATA 0x3CC -#define MM_MIXM_LINE_CHANGE 0x3D0 -#define MM_MIXM_CONTROL_CHANGE 0x3D1 -#define MMSYSERR_BASE 0 -#define WAVERR_BASE 32 -#define MIDIERR_BASE 64 -#define TIMERR_BASE 96 -#define JOYERR_BASE 160 -#define MCIERR_BASE 256 -#define MIXERR_BASE 1024 -#define MCI_STRING_OFFSET 512 -#define MCI_VD_OFFSET 1024 -#define MCI_CD_OFFSET 1088 -#define MCI_WAVE_OFFSET 1152 -#define MCI_SEQ_OFFSET 1216 -#define MMSYSERR_NOERROR 0 -#define MMSYSERR_ERROR (MMSYSERR_BASE+1) -#define MMSYSERR_BADDEVICEID (MMSYSERR_BASE+2) -#define MMSYSERR_NOTENABLED (MMSYSERR_BASE+3) -#define MMSYSERR_ALLOCATED (MMSYSERR_BASE+4) -#define MMSYSERR_INVALHANDLE (MMSYSERR_BASE+5) -#define MMSYSERR_NODRIVER (MMSYSERR_BASE+6) -#define MMSYSERR_NOMEM (MMSYSERR_BASE+7) -#define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE+8) -#define MMSYSERR_BADERRNUM (MMSYSERR_BASE+9) -#define MMSYSERR_INVALFLAG (MMSYSERR_BASE+10) -#define MMSYSERR_INVALPARAM (MMSYSERR_BASE+11) -#define MMSYSERR_HANDLEBUSY (MMSYSERR_BASE+12) -#define MMSYSERR_INVALIDALIAS (MMSYSERR_BASE+13) -#define MMSYSERR_BADDB (MMSYSERR_BASE+14) -#define MMSYSERR_KEYNOTFOUND (MMSYSERR_BASE+15) -#define MMSYSERR_READERROR (MMSYSERR_BASE+16) -#define MMSYSERR_WRITEERROR (MMSYSERR_BASE+17) -#define MMSYSERR_DELETEERROR (MMSYSERR_BASE+18) -#define MMSYSERR_VALNOTFOUND (MMSYSERR_BASE+19) -#define MMSYSERR_NODRIVERCB (MMSYSERR_BASE+20) -#define MMSYSERR_LASTERROR (MMSYSERR_BASE+20) -#define DRV_LOAD 1 -#define DRV_ENABLE 2 -#define DRV_OPEN 3 -#define DRV_CLOSE 4 -#define DRV_DISABLE 5 -#define DRV_FREE 6 -#define DRV_CONFIGURE 7 -#define DRV_QUERYCONFIGURE 8 -#define DRV_INSTALL 9 -#define DRV_REMOVE 10 -#define DRV_EXITSESSION 11 -#define DRV_POWER 15 -#define DRV_RESERVED 0x800 -#define DRV_USER 0x4000 -#define DRVCNF_CANCEL 0 -#define DRVCNF_OK 1 -#define DRVCNF_RESTART 2 -#define DRV_CANCEL DRVCNF_CANCEL -#define DRV_OK DRVCNF_OK -#define DRV_RESTART DRVCNF_RESTART -#define DRV_MCI_FIRST DRV_RESERVED -#define DRV_MCI_LAST (DRV_RESERVED+0xFFF) -#define CALLBACK_TYPEMASK 0x70000 -#define CALLBACK_NULL 0 -#define CALLBACK_WINDOW 0x10000 -#define CALLBACK_TASK 0x20000 -#define CALLBACK_FUNCTION 0x30000 -#define CALLBACK_THREAD CALLBACK_TASK -#define CALLBACK_EVENT 0x50000 -#define SND_SYNC 0 -#define SND_ASYNC 1 -#define SND_NODEFAULT 2 -#define SND_MEMORY 4 -#define SND_LOOP 8 -#define SND_NOSTOP 16 -#define SND_NOWAIT 0x2000 -#define SND_ALIAS 0x10000 -#define SND_ALIAS_ID 0x110000 -#define SND_FILENAME 0x20000 -#define SND_RESOURCE 0x40004 -#define SND_PURGE 0x40 -#define SND_APPLICATION 0x80 -#define SND_ALIAS_START 0 -#define sndAlias(c0,c1) (SND_ALIAS_START+(DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)) -#define SND_ALIAS_SYSTEMASTERISK sndAlias('S','*') -#define SND_ALIAS_SYSTEMQUESTION sndAlias('S','?') -#define SND_ALIAS_SYSTEMHAND sndAlias('S','H') -#define SND_ALIAS_SYSTEMEXIT sndAlias('S','E') -#define SND_ALIAS_SYSTEMSTART sndAlias('S','S') -#define SND_ALIAS_SYSTEMWELCOME sndAlias('S','W') -#define SND_ALIAS_SYSTEMEXCLAMATION sndAlias('S','!') -#define SND_ALIAS_SYSTEMDEFAULT sndAlias('S','D') -#define WAVERR_BADFORMAT (WAVERR_BASE + 0) -#define WAVERR_STILLPLAYING (WAVERR_BASE + 1) -#define WAVERR_UNPREPARED (WAVERR_BASE + 2) -#define WAVERR_SYNC (WAVERR_BASE + 3) -#define WAVERR_LASTERROR (WAVERR_BASE + 3) -#define WOM_OPEN MM_WOM_OPEN -#define WOM_CLOSE MM_WOM_CLOSE -#define WOM_DONE MM_WOM_DONE -#define WIM_OPEN MM_WIM_OPEN -#define WIM_CLOSE MM_WIM_CLOSE -#define WIM_DATA MM_WIM_DATA -#define WAVE_MAPPER ((UINT)-1) -#define WAVE_FORMAT_QUERY 1 -#define WAVE_ALLOWSYNC 2 -#define WAVE_MAPPED 4 -#define WAVE_FORMAT_DIRECT 8 -#define WAVE_FORMAT_DIRECT_QUERY (WAVE_FORMAT_QUERY|WAVE_FORMAT_DIRECT) -#define WHDR_DONE 1 -#define WHDR_PREPARED 2 -#define WHDR_BEGINLOOP 4 -#define WHDR_ENDLOOP 8 -#define WHDR_INQUEUE 16 -#define WAVECAPS_PITCH 1 -#define WAVECAPS_PLAYBACKRATE 2 -#define WAVECAPS_VOLUME 4 -#define WAVECAPS_LRVOLUME 8 -#define WAVECAPS_SYNC 16 -#define WAVECAPS_SAMPLEACCURATE 32 -#define WAVECAPS_DIRECTSOUND 64 -#define WAVE_INVALIDFORMAT 0 -#define WAVE_FORMAT_1M08 1 -#define WAVE_FORMAT_1S08 2 -#define WAVE_FORMAT_1M16 4 -#define WAVE_FORMAT_1S16 8 -#define WAVE_FORMAT_2M08 16 -#define WAVE_FORMAT_2S08 32 -#define WAVE_FORMAT_2M16 64 -#define WAVE_FORMAT_2S16 128 -#define WAVE_FORMAT_4M08 256 -#define WAVE_FORMAT_4S08 512 -#define WAVE_FORMAT_4M16 1024 -#define WAVE_FORMAT_4S16 2048 -#define WAVE_FORMAT_PCM 1 -#define MIDIERR_UNPREPARED MIDIERR_BASE -#define MIDIERR_STILLPLAYING (MIDIERR_BASE+1) -#define MIDIERR_NOMAP (MIDIERR_BASE+2) -#define MIDIERR_NOTREADY (MIDIERR_BASE+3) -#define MIDIERR_NODEVICE (MIDIERR_BASE+4) -#define MIDIERR_INVALIDSETUP (MIDIERR_BASE+5) -#define MIDIERR_BADOPENMODE (MIDIERR_BASE+6) -#define MIDIERR_DONT_CONTINUE (MIDIERR_BASE+7) -#define MIDIERR_LASTERROR (MIDIERR_BASE+7) -#define MIDIPATCHSIZE 128 -#define MIM_OPEN MM_MIM_OPEN -#define MIM_CLOSE MM_MIM_CLOSE -#define MIM_DATA MM_MIM_DATA -#define MIM_LONGDATA MM_MIM_LONGDATA -#define MIM_ERROR MM_MIM_ERROR -#define MIM_LONGERROR MM_MIM_LONGERROR -#define MOM_OPEN MM_MOM_OPEN -#define MOM_CLOSE MM_MOM_CLOSE -#define MOM_DONE MM_MOM_DONE -#define MIM_MOREDATA MM_MIM_MOREDATA -#define MOM_POSITIONCB MM_MOM_POSITIONCB -#define MIDIMAPPER ((UINT)-1) -#define MIDI_MAPPER ((UINT)-1) -#define MIDI_IO_STATUS 32 -#define MIDI_CACHE_ALL 1 -#define MIDI_CACHE_BESTFIT 2 -#define MIDI_CACHE_QUERY 3 -#define MIDI_UNCACHE 4 -#define MOD_MIDIPORT 1 -#define MOD_SYNTH 2 -#define MOD_SQSYNTH 3 -#define MOD_FMSYNTH 4 -#define MOD_MAPPER 5 -#define MIDICAPS_VOLUME 1 -#define MIDICAPS_LRVOLUME 2 -#define MIDICAPS_CACHE 4 -#define MIDICAPS_STREAM 8 -#define MHDR_DONE 1 -#define MHDR_PREPARED 2 -#define MHDR_INQUEUE 4 -#define MHDR_ISSTRM 8 -#define MEVT_F_SHORT 0 -#define MEVT_F_LONG 0x80000000 -#define MEVT_F_CALLBACK 0x40000000 -#define MEVT_EVENTTYPE(x) ((BYTE)(((x)>>24)&0xFF)) -#define MEVT_EVENTPARM(x) ((DWORD)((x)&0xFFFFFFL)) -#define MEVT_SHORTMSG 0 -#define MEVT_TEMPO 1 -#define MEVT_NOP 2 -#define MEVT_LONGMSG ((BYTE)0x80) -#define MEVT_COMMENT ((BYTE)0x82) -#define MEVT_VERSION ((BYTE)0x84) -#define MIDISTRM_ERROR (-2) -#define MIDIPROP_SET 0x80000000 -#define MIDIPROP_GET 0x40000000 -#define MIDIPROP_TIMEDIV 1 -#define MIDIPROP_TEMPO 2 -#define AUX_MAPPER ((UINT)-1) -#define AUXCAPS_CDAUDIO 1 -#define AUXCAPS_AUXIN 2 -#define AUXCAPS_VOLUME 1 -#define AUXCAPS_LRVOLUME 2 -#define MIXER_SHORT_NAME_CHARS 16 -#define MIXER_LONG_NAME_CHARS 64 -#define MIXERR_INVALLINE MIXERR_BASE -#define MIXERR_INVALCONTROL (MIXERR_BASE+1) -#define MIXERR_INVALVALUE (MIXERR_BASE+2) -#define MIXERR_LASTERROR (MIXERR_BASE+2) -#define MIXER_OBJECTF_HANDLE 0x80000000 -#define MIXER_OBJECTF_MIXER 0 -#define MIXER_OBJECTF_HMIXER (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIXER) -#define MIXER_OBJECTF_WAVEOUT 0x10000000 -#define MIXER_OBJECTF_HWAVEOUT (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEOUT) -#define MIXER_OBJECTF_WAVEIN 0x20000000 -#define MIXER_OBJECTF_HWAVEIN (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEIN) -#define MIXER_OBJECTF_MIDIOUT 0x30000000 -#define MIXER_OBJECTF_HMIDIOUT (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIOUT) -#define MIXER_OBJECTF_MIDIIN 0x40000000 -#define MIXER_OBJECTF_HMIDIIN (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIIN) -#define MIXER_OBJECTF_AUX 0x50000000 -#define MIXERLINE_LINEF_ACTIVE 1 -#define MIXERLINE_LINEF_DISCONNECTED 0x8000 -#define MIXERLINE_LINEF_SOURCE 0x80000000 -#define MIXERLINE_COMPONENTTYPE_DST_FIRST 0 -#define MIXERLINE_COMPONENTTYPE_DST_UNDEFINED MIXERLINE_COMPONENTTYPE_DST_FIRST -#define MIXERLINE_COMPONENTTYPE_DST_DIGITAL (MIXERLINE_COMPONENTTYPE_DST_FIRST+1) -#define MIXERLINE_COMPONENTTYPE_DST_LINE (MIXERLINE_COMPONENTTYPE_DST_FIRST+2) -#define MIXERLINE_COMPONENTTYPE_DST_MONITOR (MIXERLINE_COMPONENTTYPE_DST_FIRST+3) -#define MIXERLINE_COMPONENTTYPE_DST_SPEAKERS (MIXERLINE_COMPONENTTYPE_DST_FIRST+4) -#define MIXERLINE_COMPONENTTYPE_DST_HEADPHONES (MIXERLINE_COMPONENTTYPE_DST_FIRST+5) -#define MIXERLINE_COMPONENTTYPE_DST_TELEPHONE (MIXERLINE_COMPONENTTYPE_DST_FIRST+6) -#define MIXERLINE_COMPONENTTYPE_DST_WAVEIN (MIXERLINE_COMPONENTTYPE_DST_FIRST+7) -#define MIXERLINE_COMPONENTTYPE_DST_VOICEIN (MIXERLINE_COMPONENTTYPE_DST_FIRST+8) -#define MIXERLINE_COMPONENTTYPE_DST_LAST (MIXERLINE_COMPONENTTYPE_DST_FIRST+8) -#define MIXERLINE_COMPONENTTYPE_SRC_FIRST 0x1000 -#define MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED MIXERLINE_COMPONENTTYPE_SRC_FIRST -#define MIXERLINE_COMPONENTTYPE_SRC_DIGITAL (MIXERLINE_COMPONENTTYPE_SRC_FIRST+1) -#define MIXERLINE_COMPONENTTYPE_SRC_LINE (MIXERLINE_COMPONENTTYPE_SRC_FIRST+2) -#define MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE (MIXERLINE_COMPONENTTYPE_SRC_FIRST+3) -#define MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER (MIXERLINE_COMPONENTTYPE_SRC_FIRST+4) -#define MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC (MIXERLINE_COMPONENTTYPE_SRC_FIRST+5) -#define MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE (MIXERLINE_COMPONENTTYPE_SRC_FIRST+6) -#define MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER (MIXERLINE_COMPONENTTYPE_SRC_FIRST+7) -#define MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT (MIXERLINE_COMPONENTTYPE_SRC_FIRST+8) -#define MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY (MIXERLINE_COMPONENTTYPE_SRC_FIRST+9) -#define MIXERLINE_COMPONENTTYPE_SRC_ANALOG (MIXERLINE_COMPONENTTYPE_SRC_FIRST+10) -#define MIXERLINE_COMPONENTTYPE_SRC_LAST (MIXERLINE_COMPONENTTYPE_SRC_FIRST+10) -#define MIXERLINE_TARGETTYPE_UNDEFINED 0 -#define MIXERLINE_TARGETTYPE_WAVEOUT 1 -#define MIXERLINE_TARGETTYPE_WAVEIN 2 -#define MIXERLINE_TARGETTYPE_MIDIOUT 3 -#define MIXERLINE_TARGETTYPE_MIDIIN 4 -#define MIXERLINE_TARGETTYPE_AUX 5 -#define MIXER_GETLINEINFOF_DESTINATION 0 -#define MIXER_GETLINEINFOF_SOURCE 1 -#define MIXER_GETLINEINFOF_LINEID 2 -#define MIXER_GETLINEINFOF_COMPONENTTYPE 3 -#define MIXER_GETLINEINFOF_TARGETTYPE 4 -#define MIXER_GETLINEINFOF_QUERYMASK 15 -#define MIXERCONTROL_CONTROLF_UNIFORM 1 -#define MIXERCONTROL_CONTROLF_MULTIPLE 1 -#define MIXERCONTROL_CONTROLF_DISABLED 0x80000000 -#define MIXERCONTROL_CT_CLASS_MASK 0xF0000000 -#define MIXERCONTROL_CT_CLASS_CUSTOM 0 -#define MIXERCONTROL_CT_CLASS_METER 0x10000000 -#define MIXERCONTROL_CT_CLASS_SWITCH 0x20000000 -#define MIXERCONTROL_CT_CLASS_NUMBER 0x30000000 -#define MIXERCONTROL_CT_CLASS_SLIDER 0x40000000 -#define MIXERCONTROL_CT_CLASS_FADER 0x50000000 -#define MIXERCONTROL_CT_CLASS_TIME 0x60000000 -#define MIXERCONTROL_CT_CLASS_LIST 0x70000000 -#define MIXERCONTROL_CT_SUBCLASS_MASK 0xF000000 -#define MIXERCONTROL_CT_SC_SWITCH_BOOLEAN 0 -#define MIXERCONTROL_CT_SC_SWITCH_BUTTON 0x1000000 -#define MIXERCONTROL_CT_SC_METER_POLLED 0 -#define MIXERCONTROL_CT_SC_TIME_MICROSECS 0 -#define MIXERCONTROL_CT_SC_TIME_MILLISECS 0x1000000 -#define MIXERCONTROL_CT_SC_LIST_SINGLE 0 -#define MIXERCONTROL_CT_SC_LIST_MULTIPLE 0x1000000 -#define MIXERCONTROL_CT_UNITS_MASK 0xFF0000 -#define MIXERCONTROL_CT_UNITS_CUSTOM 0 -#define MIXERCONTROL_CT_UNITS_BOOLEAN 0x10000 -#define MIXERCONTROL_CT_UNITS_SIGNED 0x20000 -#define MIXERCONTROL_CT_UNITS_UNSIGNED 0x30000 -#define MIXERCONTROL_CT_UNITS_DECIBELS 0x40000 -#define MIXERCONTROL_CT_UNITS_PERCENT 0x50000 -#define MIXERCONTROL_CONTROLTYPE_CUSTOM (MIXERCONTROL_CT_CLASS_CUSTOM|MIXERCONTROL_CT_UNITS_CUSTOM) -#define MIXERCONTROL_CONTROLTYPE_BOOLEANMETER (MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_BOOLEAN) -#define MIXERCONTROL_CONTROLTYPE_SIGNEDMETER (MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_SIGNED) -#define MIXERCONTROL_CONTROLTYPE_PEAKMETER (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER+1) -#define MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER (MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_UNSIGNED) -#define MIXERCONTROL_CONTROLTYPE_BOOLEAN (MIXERCONTROL_CT_CLASS_SWITCH|MIXERCONTROL_CT_SC_SWITCH_BOOLEAN|MIXERCONTROL_CT_UNITS_BOOLEAN) -#define MIXERCONTROL_CONTROLTYPE_ONOFF (MIXERCONTROL_CONTROLTYPE_BOOLEAN+1) -#define MIXERCONTROL_CONTROLTYPE_MUTE (MIXERCONTROL_CONTROLTYPE_BOOLEAN+2) -#define MIXERCONTROL_CONTROLTYPE_MONO (MIXERCONTROL_CONTROLTYPE_BOOLEAN+3) -#define MIXERCONTROL_CONTROLTYPE_LOUDNESS (MIXERCONTROL_CONTROLTYPE_BOOLEAN+4) -#define MIXERCONTROL_CONTROLTYPE_STEREOENH (MIXERCONTROL_CONTROLTYPE_BOOLEAN+5) -#define MIXERCONTROL_CONTROLTYPE_BUTTON (MIXERCONTROL_CT_CLASS_SWITCH|MIXERCONTROL_CT_SC_SWITCH_BUTTON|MIXERCONTROL_CT_UNITS_BOOLEAN) -#define MIXERCONTROL_CONTROLTYPE_DECIBELS (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_DECIBELS) -#define MIXERCONTROL_CONTROLTYPE_SIGNED (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_SIGNED) -#define MIXERCONTROL_CONTROLTYPE_UNSIGNED (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_UNSIGNED) -#define MIXERCONTROL_CONTROLTYPE_PERCENT (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_PERCENT) -#define MIXERCONTROL_CONTROLTYPE_SLIDER (MIXERCONTROL_CT_CLASS_SLIDER|MIXERCONTROL_CT_UNITS_SIGNED) -#define MIXERCONTROL_CONTROLTYPE_PAN (MIXERCONTROL_CONTROLTYPE_SLIDER+1) -#define MIXERCONTROL_CONTROLTYPE_QSOUNDPAN (MIXERCONTROL_CONTROLTYPE_SLIDER+2) -#define MIXERCONTROL_CONTROLTYPE_FADER (MIXERCONTROL_CT_CLASS_FADER|MIXERCONTROL_CT_UNITS_UNSIGNED) -#define MIXERCONTROL_CONTROLTYPE_VOLUME (MIXERCONTROL_CONTROLTYPE_FADER+1) -#define MIXERCONTROL_CONTROLTYPE_BASS (MIXERCONTROL_CONTROLTYPE_FADER+2) -#define MIXERCONTROL_CONTROLTYPE_TREBLE (MIXERCONTROL_CONTROLTYPE_FADER+3) -#define MIXERCONTROL_CONTROLTYPE_EQUALIZER (MIXERCONTROL_CONTROLTYPE_FADER+4) -#define MIXERCONTROL_CONTROLTYPE_SINGLESELECT (MIXERCONTROL_CT_CLASS_LIST|MIXERCONTROL_CT_SC_LIST_SINGLE|MIXERCONTROL_CT_UNITS_BOOLEAN) -#define MIXERCONTROL_CONTROLTYPE_MUX (MIXERCONTROL_CONTROLTYPE_SINGLESELECT+1) -#define MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT (MIXERCONTROL_CT_CLASS_LIST|MIXERCONTROL_CT_SC_LIST_MULTIPLE|MIXERCONTROL_CT_UNITS_BOOLEAN) -#define MIXERCONTROL_CONTROLTYPE_MIXER (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT+1) -#define MIXERCONTROL_CONTROLTYPE_MICROTIME (MIXERCONTROL_CT_CLASS_TIME|MIXERCONTROL_CT_SC_TIME_MICROSECS|MIXERCONTROL_CT_UNITS_UNSIGNED) -#define MIXERCONTROL_CONTROLTYPE_MILLITIME (MIXERCONTROL_CT_CLASS_TIME|MIXERCONTROL_CT_SC_TIME_MILLISECS|MIXERCONTROL_CT_UNITS_UNSIGNED) -#define MIXER_GETLINECONTROLSF_ALL 0 -#define MIXER_GETLINECONTROLSF_ONEBYID 1 -#define MIXER_GETLINECONTROLSF_ONEBYTYPE 2 -#define MIXER_GETLINECONTROLSF_QUERYMASK 15 -#define MIXER_GETCONTROLDETAILSF_VALUE 0 -#define MIXER_GETCONTROLDETAILSF_LISTTEXT 1 -#define MIXER_GETCONTROLDETAILSF_QUERYMASK 15 -#define MIXER_SETCONTROLDETAILSF_VALUE 0 -#define MIXER_SETCONTROLDETAILSF_CUSTOM 1 -#define MIXER_SETCONTROLDETAILSF_QUERYMASK 15 -#define TIMERR_NOERROR 0 -#define TIMERR_NOCANDO (TIMERR_BASE+1) -#define TIMERR_STRUCT (TIMERR_BASE+33) -#define TIME_ONESHOT 0 -#define TIME_PERIODIC 1 -#define TIME_CALLBACK_FUNCTION 0 -#define TIME_CALLBACK_EVENT_SET 16 -#define TIME_CALLBACK_EVENT_PULSE 32 -#define JOYERR_NOERROR (0) -#define JOYERR_PARMS (JOYERR_BASE+5) -#define JOYERR_NOCANDO (JOYERR_BASE+6) -#define JOYERR_UNPLUGGED (JOYERR_BASE+7) -#define JOY_BUTTON1 1 -#define JOY_BUTTON2 2 -#define JOY_BUTTON3 4 -#define JOY_BUTTON4 8 -#define JOY_BUTTON1CHG 256 -#define JOY_BUTTON2CHG 512 -#define JOY_BUTTON3CHG 1024 -#define JOY_BUTTON4CHG 2048 -#define JOY_BUTTON5 257 -#define JOY_BUTTON6 513 -#define JOY_BUTTON7 1025 -#define JOY_BUTTON8 2049 -#define JOY_BUTTON9 256 -#define JOY_BUTTON10 512 -#define JOY_BUTTON11 1024 -#define JOY_BUTTON12 2048 -#define JOY_BUTTON13 4096 -#define JOY_BUTTON14 8192 -#define JOY_BUTTON15 16384 -#define JOY_BUTTON16 32768 -#define JOY_BUTTON17 65536 -#define JOY_BUTTON18 0x20000 -#define JOY_BUTTON19 0x40000 -#define JOY_BUTTON20 0x80000 -#define JOY_BUTTON21 0x100000 -#define JOY_BUTTON22 0x200000 -#define JOY_BUTTON23 0x400000 -#define JOY_BUTTON24 0x800000 -#define JOY_BUTTON25 0x1000000 -#define JOY_BUTTON26 0x2000000 -#define JOY_BUTTON27 0x4000000 -#define JOY_BUTTON28 0x8000000 -#define JOY_BUTTON29 0x10000000 -#define JOY_BUTTON30 0x20000000 -#define JOY_BUTTON31 0x40000000 -#define JOY_BUTTON32 0x80000000 -#define JOY_POVCENTERED ((WORD)-1) -#define JOY_POVFORWARD 0 -#define JOY_POVRIGHT 9000 -#define JOY_POVBACKWARD 18000 -#define JOY_POVLEFT 27000 -#define JOY_RETURNX 1 -#define JOY_RETURNY 2 -#define JOY_RETURNZ 4l -#define JOY_RETURNR 8 -#define JOY_RETURNU 16 -#define JOY_RETURNV 32 -#define JOY_RETURNPOV 64 -#define JOY_RETURNBUTTONS 128 -#define JOY_RETURNRAWDATA 256 -#define JOY_RETURNPOVCTS 512 -#define JOY_RETURNCENTERED 1024 -#define JOY_USEDEADZONE 2048 -#define JOY_RETURNALL (JOY_RETURNX|JOY_RETURNY|JOY_RETURNZ|JOY_RETURNR|JOY_RETURNU|JOY_RETURNV|JOY_RETURNPOV|JOY_RETURNBUTTONS) -#define JOY_CAL_READALWAYS 0x10000 -#define JOY_CAL_READXYONLY 0x20000 -#define JOY_CAL_READ3 0x40000 -#define JOY_CAL_READ4 0x80000 -#define JOY_CAL_READXONLY 0x100000 -#define JOY_CAL_READYONLY 0x200000 -#define JOY_CAL_READ5 0x400000 -#define JOY_CAL_READ6 0x800000 -#define JOY_CAL_READZONLY 0x1000000 -#define JOY_CAL_READRONLY 0x2000000 -#define JOY_CAL_READUONLY 0x4000000 -#define JOY_CAL_READVONLY 0x8000000 -#define JOYSTICKID1 0 -#define JOYSTICKID2 1 -#define JOYCAPS_HASZ 1 -#define JOYCAPS_HASR 2 -#define JOYCAPS_HASU 4 -#define JOYCAPS_HASV 8 -#define JOYCAPS_HASPOV 16 -#define JOYCAPS_POV4DIR 32 -#define JOYCAPS_POVCTS 64 -#define MMIOERR_BASE 256 -#define MMIOERR_FILENOTFOUND (MMIOERR_BASE+1) -#define MMIOERR_OUTOFMEMORY (MMIOERR_BASE+2) -#define MMIOERR_CANNOTOPEN (MMIOERR_BASE+3) -#define MMIOERR_CANNOTCLOSE (MMIOERR_BASE+4) -#define MMIOERR_CANNOTREAD (MMIOERR_BASE+5) -#define MMIOERR_CANNOTWRITE (MMIOERR_BASE+6) -#define MMIOERR_CANNOTSEEK (MMIOERR_BASE+7) -#define MMIOERR_CANNOTEXPAND (MMIOERR_BASE+8) -#define MMIOERR_CHUNKNOTFOUND (MMIOERR_BASE+9) -#define MMIOERR_UNBUFFERED (MMIOERR_BASE+10) -#define MMIOERR_PATHNOTFOUND (MMIOERR_BASE+11) -#define MMIOERR_ACCESSDENIED (MMIOERR_BASE+12) -#define MMIOERR_SHARINGVIOLATION (MMIOERR_BASE+13) -#define MMIOERR_NETWORKERROR (MMIOERR_BASE+14) -#define MMIOERR_TOOMANYOPENFILES (MMIOERR_BASE+15) -#define MMIOERR_INVALIDFILE (MMIOERR_BASE+16) -#define CFSEPCHAR '+' -#define MMIO_RWMODE 3 -#define MMIO_SHAREMODE 0x70 -#define MMIO_CREATE 0x1000 -#define MMIO_PARSE 256 -#define MMIO_DELETE 512 -#define MMIO_EXIST 0x4000 -#define MMIO_ALLOCBUF 0x10000 -#define MMIO_GETTEMP 0x20000 -#define MMIO_DIRTY 0x10000000 -#define MMIO_READ 0 -#define MMIO_WRITE 1 -#define MMIO_READWRITE 2 -#define MMIO_COMPAT 0 -#define MMIO_EXCLUSIVE 16 -#define MMIO_DENYWRITE 32 -#define MMIO_DENYREAD 0x30 -#define MMIO_DENYNONE 64 -#define MMIO_FHOPEN 16 -#define MMIO_EMPTYBUF 16 -#define MMIO_TOUPPER 16 -#define MMIO_INSTALLPROC 0x10000 -#define MMIO_GLOBALPROC 0x10000000 -#define MMIO_REMOVEPROC 0x20000 -#define MMIO_UNICODEPROC 0x1000000 -#define MMIO_FINDPROC 0x40000 -#define MMIO_FINDCHUNK 16 -#define MMIO_FINDRIFF 32 -#define MMIO_FINDLIST 64 -#define MMIO_CREATERIFF 32 -#define MMIO_CREATELIST 64 -#define MMIOM_READ MMIO_READ -#define MMIOM_WRITE MMIO_WRITE -#define MMIOM_SEEK 2 -#define MMIOM_OPEN 3 -#define MMIOM_CLOSE 4 -#define MMIOM_WRITEFLUSH 5 -#define MMIOM_RENAME 6 -#define MMIOM_USER 0x8000 -#define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F') -#define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T') -#define FOURCC_DOS mmioFOURCC('D', 'O', 'S', ' ') -#define FOURCC_MEM mmioFOURCC('M', 'E', 'M', ' ') -#define MMIO_DEFAULTBUFFER 8192 -#define mmioFOURCC(c0,c1,c2,c3) MAKEFOURCC(c0,c1,c2,c3) -#define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE+1) -#define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE+3) -#define MCIERR_UNRECOGNIZED_COMMAND (MCIERR_BASE+5) -#define MCIERR_HARDWARE (MCIERR_BASE+6) -#define MCIERR_INVALID_DEVICE_NAME (MCIERR_BASE+7) -#define MCIERR_OUT_OF_MEMORY (MCIERR_BASE+8) -#define MCIERR_DEVICE_OPEN (MCIERR_BASE+9) -#define MCIERR_CANNOT_LOAD_DRIVER (MCIERR_BASE+10) -#define MCIERR_MISSING_COMMAND_STRING (MCIERR_BASE+11) -#define MCIERR_PARAM_OVERFLOW (MCIERR_BASE+12) -#define MCIERR_MISSING_STRING_ARGUMENT (MCIERR_BASE+13) -#define MCIERR_BAD_INTEGER (MCIERR_BASE+14) -#define MCIERR_PARSER_INTERNAL (MCIERR_BASE+15) -#define MCIERR_DRIVER_INTERNAL (MCIERR_BASE+16) -#define MCIERR_MISSING_PARAMETER (MCIERR_BASE+17) -#define MCIERR_UNSUPPORTED_FUNCTION (MCIERR_BASE+18) -#define MCIERR_FILE_NOT_FOUND (MCIERR_BASE+19) -#define MCIERR_DEVICE_NOT_READY (MCIERR_BASE+20) -#define MCIERR_INTERNAL (MCIERR_BASE+21) -#define MCIERR_DRIVER (MCIERR_BASE+22) -#define MCIERR_CANNOT_USE_ALL (MCIERR_BASE+23) -#define MCIERR_MULTIPLE (MCIERR_BASE+24) -#define MCIERR_EXTENSION_NOT_FOUND (MCIERR_BASE+25) -#define MCIERR_OUTOFRANGE (MCIERR_BASE+26) -#define MCIERR_FLAGS_NOT_COMPATIBLE (MCIERR_BASE+28) -#define MCIERR_FILE_NOT_SAVED (MCIERR_BASE+30) -#define MCIERR_DEVICE_TYPE_REQUIRED (MCIERR_BASE+31) -#define MCIERR_DEVICE_LOCKED (MCIERR_BASE+32) -#define MCIERR_DUPLICATE_ALIAS (MCIERR_BASE+33) -#define MCIERR_BAD_CONSTANT (MCIERR_BASE+34) -#define MCIERR_MUST_USE_SHAREABLE (MCIERR_BASE+35) -#define MCIERR_MISSING_DEVICE_NAME (MCIERR_BASE+36) -#define MCIERR_BAD_TIME_FORMAT (MCIERR_BASE+37) -#define MCIERR_NO_CLOSING_QUOTE (MCIERR_BASE+38) -#define MCIERR_DUPLICATE_FLAGS (MCIERR_BASE+39) -#define MCIERR_INVALID_FILE (MCIERR_BASE+40) -#define MCIERR_NULL_PARAMETER_BLOCK (MCIERR_BASE+41) -#define MCIERR_UNNAMED_RESOURCE (MCIERR_BASE+42) -#define MCIERR_NEW_REQUIRES_ALIAS (MCIERR_BASE+43) -#define MCIERR_NOTIFY_ON_AUTO_OPEN (MCIERR_BASE+44) -#define MCIERR_NO_ELEMENT_ALLOWED (MCIERR_BASE+45) -#define MCIERR_NONAPPLICABLE_FUNCTION (MCIERR_BASE+46) -#define MCIERR_ILLEGAL_FOR_AUTO_OPEN (MCIERR_BASE+47) -#define MCIERR_FILENAME_REQUIRED (MCIERR_BASE+48) -#define MCIERR_EXTRA_CHARACTERS (MCIERR_BASE+49) -#define MCIERR_DEVICE_NOT_INSTALLED (MCIERR_BASE+50) -#define MCIERR_GET_CD (MCIERR_BASE+51) -#define MCIERR_SET_CD (MCIERR_BASE+52) -#define MCIERR_SET_DRIVE (MCIERR_BASE+53) -#define MCIERR_DEVICE_LENGTH (MCIERR_BASE+54) -#define MCIERR_DEVICE_ORD_LENGTH (MCIERR_BASE+55) -#define MCIERR_NO_INTEGER (MCIERR_BASE+56) -#define MCIERR_WAVE_OUTPUTSINUSE (MCIERR_BASE+64) -#define MCIERR_WAVE_SETOUTPUTINUSE (MCIERR_BASE+65) -#define MCIERR_WAVE_INPUTSINUSE (MCIERR_BASE+66) -#define MCIERR_WAVE_SETINPUTINUSE (MCIERR_BASE+67) -#define MCIERR_WAVE_OUTPUTUNSPECIFIED (MCIERR_BASE+68) -#define MCIERR_WAVE_INPUTUNSPECIFIED (MCIERR_BASE+69) -#define MCIERR_WAVE_OUTPUTSUNSUITABLE (MCIERR_BASE+70) -#define MCIERR_WAVE_SETOUTPUTUNSUITABLE (MCIERR_BASE+71) -#define MCIERR_WAVE_INPUTSUNSUITABLE (MCIERR_BASE+72) -#define MCIERR_WAVE_SETINPUTUNSUITABLE (MCIERR_BASE+73) -#define MCIERR_SEQ_DIV_INCOMPATIBLE (MCIERR_BASE+80) -#define MCIERR_SEQ_PORT_INUSE (MCIERR_BASE+81) -#define MCIERR_SEQ_PORT_NONEXISTENT (MCIERR_BASE+82) -#define MCIERR_SEQ_PORT_MAPNODEVICE (MCIERR_BASE+83) -#define MCIERR_SEQ_PORT_MISCERROR (MCIERR_BASE+84) -#define MCIERR_SEQ_TIMER (MCIERR_BASE+85) -#define MCIERR_SEQ_PORTUNSPECIFIED (MCIERR_BASE+86) -#define MCIERR_SEQ_NOMIDIPRESENT (MCIERR_BASE+87) -#define MCIERR_NO_WINDOW (MCIERR_BASE+90) -#define MCIERR_CREATEWINDOW (MCIERR_BASE+91) -#define MCIERR_FILE_READ (MCIERR_BASE+92) -#define MCIERR_FILE_WRITE (MCIERR_BASE+93) -#define MCIERR_NO_IDENTITY (MCIERR_BASE+94) -#define MCIERR_CUSTOM_DRIVER_BASE (MCIERR_BASE+256) -#define MCI_FIRST DRV_MCI_FIRST -#define MCI_OPEN 0x803 -#define MCI_CLOSE 0x804 -#define MCI_ESCAPE 0x805 -#define MCI_PLAY 0x806 -#define MCI_SEEK 0x807 -#define MCI_STOP 0x808 -#define MCI_PAUSE 0x809 -#define MCI_INFO 0x80A -#define MCI_GETDEVCAPS 0x80B -#define MCI_SPIN 0x80C -#define MCI_SET 0x80D -#define MCI_STEP 0x80E -#define MCI_RECORD 0x80F -#define MCI_SYSINFO 0x810 -#define MCI_BREAK 0x811 -#define MCI_SAVE 0x813 -#define MCI_STATUS 0x814 -#define MCI_CUE 0x830 -#define MCI_REALIZE 0x840 -#define MCI_WINDOW 0x841 -#define MCI_PUT 0x842 -#define MCI_WHERE 0x843 -#define MCI_FREEZE 0x844 -#define MCI_UNFREEZE 0x845 -#define MCI_LOAD 0x850 -#define MCI_CUT 0x851 -#define MCI_COPY 0x852 -#define MCI_PASTE 0x853 -#define MCI_UPDATE 0x854 -#define MCI_RESUME 0x855 -#define MCI_DELETE 0x856 -#define MCI_USER_MESSAGES (DRV_MCI_FIRST+0x400) -#define MCI_LAST 0xFFF -#define MCI_ALL_DEVICE_ID ((MCIDEVICEID)-1) -#define MCI_DEVTYPE_VCR 513 -#define MCI_DEVTYPE_VIDEODISC 514 -#define MCI_DEVTYPE_OVERLAY 515 -#define MCI_DEVTYPE_CD_AUDIO 516 -#define MCI_DEVTYPE_DAT 517 -#define MCI_DEVTYPE_SCANNER 518 -#define MCI_DEVTYPE_ANIMATION 519 -#define MCI_DEVTYPE_DIGITAL_VIDEO 520 -#define MCI_DEVTYPE_OTHER 521 -#define MCI_DEVTYPE_WAVEFORM_AUDIO 522 -#define MCI_DEVTYPE_SEQUENCER 523 -#define MCI_DEVTYPE_FIRST MCI_DEVTYPE_VCR -#define MCI_DEVTYPE_LAST MCI_DEVTYPE_SEQUENCER -#define MCI_DEVTYPE_FIRST_USER 0x1000 -#define MCI_MODE_NOT_READY (MCI_STRING_OFFSET+12) -#define MCI_MODE_STOP (MCI_STRING_OFFSET+13) -#define MCI_MODE_PLAY (MCI_STRING_OFFSET+14) -#define MCI_MODE_RECORD (MCI_STRING_OFFSET+15) -#define MCI_MODE_SEEK (MCI_STRING_OFFSET+16) -#define MCI_MODE_PAUSE (MCI_STRING_OFFSET+17) -#define MCI_MODE_OPEN (MCI_STRING_OFFSET+18) -#define MCI_FORMAT_MILLISECONDS 0 -#define MCI_FORMAT_HMS 1 -#define MCI_FORMAT_MSF 2 -#define MCI_FORMAT_FRAMES 3 -#define MCI_FORMAT_SMPTE_24 4 -#define MCI_FORMAT_SMPTE_25 5 -#define MCI_FORMAT_SMPTE_30 6 -#define MCI_FORMAT_SMPTE_30DROP 7 -#define MCI_FORMAT_BYTES 8 -#define MCI_FORMAT_SAMPLES 9 -#define MCI_FORMAT_TMSF 10 -#define MCI_MSF_MINUTE(t) ((BYTE)(t)) -#define MCI_MSF_SECOND(t) ((BYTE)(((WORD)(t))>>8)) -#define MCI_MSF_FRAME(t) ((BYTE)((t)>>16)) -#define MCI_MAKE_MSF(m,s,f) ((DWORD)(((BYTE)(m)|((WORD)(s)<<8))|(((DWORD)(BYTE)(f))<<16))) -#define MCI_TMSF_TRACK(t) ((BYTE)(t)) -#define MCI_TMSF_MINUTE(t) ((BYTE)(((WORD)(t))>>8)) -#define MCI_TMSF_SECOND(t) ((BYTE)((t)>>16)) -#define MCI_TMSF_FRAME(t) ((BYTE)((t)>>24)) -#define MCI_MAKE_TMSF(t,m,s,f) ((DWORD)(((BYTE)(t)|((WORD)(m)<<8))|(((DWORD)(BYTE)(s)|((WORD)(f)<<8))<<16))) -#define MCI_HMS_HOUR(t) ((BYTE)(t)) -#define MCI_HMS_MINUTE(t) ((BYTE)(((WORD)(t))>>8)) -#define MCI_HMS_SECOND(t) ((BYTE)((t)>>16)) -#define MCI_MAKE_HMS(h,m,s) ((DWORD)(((BYTE)(h)|((WORD)(m)<<8))|(((DWORD)(BYTE)(s))<<16))) -#define MCI_NOTIFY_SUCCESSFUL 1 -#define MCI_NOTIFY_SUPERSEDED 2 -#define MCI_NOTIFY_ABORTED 4 -#define MCI_NOTIFY_FAILURE 8 -#define MCI_NOTIFY 1 -#define MCI_WAIT 2 -#define MCI_FROM 4 -#define MCI_TO 8 -#define MCI_TRACK 16 -#define MCI_OPEN_SHAREABLE 256 -#define MCI_OPEN_ELEMENT 512 -#define MCI_OPEN_ALIAS 1024 -#define MCI_OPEN_ELEMENT_ID 2048 -#define MCI_OPEN_TYPE_ID 0x1000 -#define MCI_OPEN_TYPE 0x2000 -#define MCI_SEEK_TO_START 256 -#define MCI_SEEK_TO_END 512 -#define MCI_STATUS_ITEM 256 -#define MCI_STATUS_START 512 -#define MCI_STATUS_LENGTH 1 -#define MCI_STATUS_POSITION 2 -#define MCI_STATUS_NUMBER_OF_TRACKS 3 -#define MCI_STATUS_MODE 4 -#define MCI_STATUS_MEDIA_PRESENT 5 -#define MCI_STATUS_TIME_FORMAT 6 -#define MCI_STATUS_READY 7 -#define MCI_STATUS_CURRENT_TRACK 8 -#define MCI_INFO_PRODUCT 256 -#define MCI_INFO_FILE 512 -#define MCI_INFO_MEDIA_UPC 1024 -#define MCI_INFO_MEDIA_IDENTITY 2048 -#define MCI_INFO_NAME 0x1000 -#define MCI_INFO_COPYRIGHT 0x2000 -#define MCI_GETDEVCAPS_ITEM 256 -#define MCI_GETDEVCAPS_CAN_RECORD 1 -#define MCI_GETDEVCAPS_HAS_AUDIO 2 -#define MCI_GETDEVCAPS_HAS_VIDEO 3 -#define MCI_GETDEVCAPS_DEVICE_TYPE 4 -#define MCI_GETDEVCAPS_USES_FILES 5 -#define MCI_GETDEVCAPS_COMPOUND_DEVICE 6 -#define MCI_GETDEVCAPS_CAN_EJECT 7 -#define MCI_GETDEVCAPS_CAN_PLAY 8 -#define MCI_GETDEVCAPS_CAN_SAVE 9 -#define MCI_SYSINFO_QUANTITY 256 -#define MCI_SYSINFO_OPEN 512 -#define MCI_SYSINFO_NAME 1024 -#define MCI_SYSINFO_INSTALLNAME 2048 -#define MCI_SET_DOOR_OPEN 256 -#define MCI_SET_DOOR_CLOSED 512 -#define MCI_SET_TIME_FORMAT 1024 -#define MCI_SET_AUDIO 2048 -#define MCI_SET_VIDEO 0x1000 -#define MCI_SET_ON 0x2000 -#define MCI_SET_OFF 0x4000 -#define MCI_SET_AUDIO_ALL 0 -#define MCI_SET_AUDIO_LEFT 1 -#define MCI_SET_AUDIO_RIGHT 2 -#define MCI_BREAK_KEY 256 -#define MCI_BREAK_HWND 512 -#define MCI_BREAK_OFF 1024 -#define MCI_RECORD_INSERT 256 -#define MCI_RECORD_OVERWRITE 512 -#define MCI_SAVE_FILE 256 -#define MCI_LOAD_FILE 256 -#define MCI_VD_MODE_PARK (MCI_VD_OFFSET+1) -#define MCI_VD_MEDIA_CLV (MCI_VD_OFFSET+2) -#define MCI_VD_MEDIA_CAV (MCI_VD_OFFSET+3) -#define MCI_VD_MEDIA_OTHER (MCI_VD_OFFSET+4) -#define MCI_VD_FORMAT_TRACK 0x4001 -#define MCI_VD_PLAY_REVERSE 0x10000 -#define MCI_VD_PLAY_FAST 0x20000 -#define MCI_VD_PLAY_SPEED 0x40000 -#define MCI_VD_PLAY_SCAN 0x80000 -#define MCI_VD_PLAY_SLOW 0x100000 -#define MCI_VD_SEEK_REVERSE 0x10000 -#define MCI_VD_STATUS_SPEED 0x4002 -#define MCI_VD_STATUS_FORWARD 0x4003 -#define MCI_VD_STATUS_MEDIA_TYPE 0x4004 -#define MCI_VD_STATUS_SIDE 0x4005 -#define MCI_VD_STATUS_DISC_SIZE 0x4006 -#define MCI_VD_GETDEVCAPS_CLV 0x10000 -#define MCI_VD_GETDEVCAPS_CAV 0x20000 -#define MCI_VD_SPIN_UP 0x10000 -#define MCI_VD_SPIN_DOWN 0x20000 -#define MCI_VD_GETDEVCAPS_CAN_REVERSE 0x4002 -#define MCI_VD_GETDEVCAPS_FAST_RATE 0x4003 -#define MCI_VD_GETDEVCAPS_SLOW_RATE 0x4004 -#define MCI_VD_GETDEVCAPS_NORMAL_RATE 0x4005 -#define MCI_VD_STEP_FRAMES 0x10000 -#define MCI_VD_STEP_REVERSE 0x20000 -#define MCI_VD_ESCAPE_STRING 256 -#define MCI_CDA_STATUS_TYPE_TRACK 0x4001 -#define MCI_CDA_TRACK_AUDIO MCI_CD_OFFSET -#define MCI_CDA_TRACK_OTHER (MCI_CD_OFFSET+1) -#define MCI_WAVE_PCM MCI_WAVE_OFFSET -#define MCI_WAVE_MAPPER (MCI_WAVE_OFFSET+1) -#define MCI_WAVE_OPEN_BUFFER 0x10000 -#define MCI_WAVE_SET_FORMATTAG 0x10000 -#define MCI_WAVE_SET_CHANNELS 0x20000 -#define MCI_WAVE_SET_SAMPLESPERSEC 0x40000 -#define MCI_WAVE_SET_AVGBYTESPERSEC 0x80000 -#define MCI_WAVE_SET_BLOCKALIGN 0x100000 -#define MCI_WAVE_SET_BITSPERSAMPLE 0x200000 -#define MCI_WAVE_INPUT 0x400000 -#define MCI_WAVE_OUTPUT 0x800000 -#define MCI_WAVE_STATUS_FORMATTAG 0x4001 -#define MCI_WAVE_STATUS_CHANNELS 0x4002 -#define MCI_WAVE_STATUS_SAMPLESPERSEC 0x4003 -#define MCI_WAVE_STATUS_AVGBYTESPERSEC 0x4004 -#define MCI_WAVE_STATUS_BLOCKALIGN 0x4005 -#define MCI_WAVE_STATUS_BITSPERSAMPLE 0x4006 -#define MCI_WAVE_STATUS_LEVEL 0x4007 -#define MCI_WAVE_SET_ANYINPUT 0x4000000 -#define MCI_WAVE_SET_ANYOUTPUT 0x8000000 -#define MCI_WAVE_GETDEVCAPS_INPUTS 0x4001 -#define MCI_WAVE_GETDEVCAPS_OUTPUTS 0x4002 -#define MCI_SEQ_DIV_PPQN MCI_SEQ_OFFSET -#define MCI_SEQ_DIV_SMPTE_24 (MCI_SEQ_OFFSET+1) -#define MCI_SEQ_DIV_SMPTE_25 (MCI_SEQ_OFFSET+2) -#define MCI_SEQ_DIV_SMPTE_30DROP (MCI_SEQ_OFFSET+3) -#define MCI_SEQ_DIV_SMPTE_30 (MCI_SEQ_OFFSET+4) -#define MCI_SEQ_FORMAT_SONGPTR 0x4001 -#define MCI_SEQ_FILE 0x4002 -#define MCI_SEQ_MIDI 0x4003 -#define MCI_SEQ_SMPTE 0x4004 -#define MCI_SEQ_NONE 65533 -#define MCI_SEQ_MAPPER 65535 -#define MCI_SEQ_STATUS_TEMPO 0x4002 -#define MCI_SEQ_STATUS_PORT 0x4003 -#define MCI_SEQ_STATUS_SLAVE 0x4007 -#define MCI_SEQ_STATUS_MASTER 0x4008 -#define MCI_SEQ_STATUS_OFFSET 0x4009 -#define MCI_SEQ_STATUS_DIVTYPE 0x400A -#define MCI_SEQ_STATUS_NAME 0x400B -#define MCI_SEQ_STATUS_COPYRIGHT 0x400C -#define MCI_SEQ_SET_TEMPO 0x10000 -#define MCI_SEQ_SET_PORT 0x20000 -#define MCI_SEQ_SET_SLAVE 0x40000 -#define MCI_SEQ_SET_MASTER 0x80000 -#define MCI_SEQ_SET_OFFSET 0x1000000 -#define MCI_ANIM_OPEN_WS 0x10000 -#define MCI_ANIM_OPEN_PARENT 0x20000 -#define MCI_ANIM_OPEN_NOSTATIC 0x40000 -#define MCI_ANIM_PLAY_SPEED 0x10000 -#define MCI_ANIM_PLAY_REVERSE 0x20000 -#define MCI_ANIM_PLAY_FAST 0x40000 -#define MCI_ANIM_PLAY_SLOW 0x80000 -#define MCI_ANIM_PLAY_SCAN 0x100000 -#define MCI_ANIM_STEP_REVERSE 0x10000 -#define MCI_ANIM_STEP_FRAMES 0x20000 -#define MCI_ANIM_STATUS_SPEED 0x4001 -#define MCI_ANIM_STATUS_FORWARD 0x4002 -#define MCI_ANIM_STATUS_HWND 0x4003 -#define MCI_ANIM_STATUS_HPAL 0x4004 -#define MCI_ANIM_STATUS_STRETCH 0x4005 -#define MCI_ANIM_INFO_TEXT 0x10000 -#define MCI_ANIM_GETDEVCAPS_CAN_REVERSE 0x4001 -#define MCI_ANIM_GETDEVCAPS_FAST_RATE 0x4002 -#define MCI_ANIM_GETDEVCAPS_SLOW_RATE 0x4003 -#define MCI_ANIM_GETDEVCAPS_NORMAL_RATE 0x4004 -#define MCI_ANIM_GETDEVCAPS_PALETTES 0x4006 -#define MCI_ANIM_GETDEVCAPS_CAN_STRETCH 0x4007 -#define MCI_ANIM_GETDEVCAPS_MAX_WINDOWS 0x4008 -#define MCI_ANIM_REALIZE_NORM 0x10000 -#define MCI_ANIM_REALIZE_BKGD 0x20000 -#define MCI_ANIM_WINDOW_HWND 0x10000 -#define MCI_ANIM_WINDOW_STATE 0x40000 -#define MCI_ANIM_WINDOW_TEXT 0x80000 -#define MCI_ANIM_WINDOW_ENABLE_STRETCH 0x100000 -#define MCI_ANIM_WINDOW_DISABLE_STRETCH 0x200000 -#define MCI_ANIM_WINDOW_DEFAULT 0xL -#define MCI_ANIM_RECT 0x10000 -#define MCI_ANIM_PUT_SOURCE 0x20000 -#define MCI_ANIM_PUT_DESTINATION 0x40000 -#define MCI_ANIM_WHERE_SOURCE 0x20000 -#define MCI_ANIM_WHERE_DESTINATION 0x40000 -#define MCI_ANIM_UPDATE_HDC 0x20000 -#define MCI_OVLY_OPEN_WS 0x10000 -#define MCI_OVLY_OPEN_PARENT 0x20000 -#define MCI_OVLY_STATUS_HWND 0x4001 -#define MCI_OVLY_STATUS_STRETCH 0x4002 -#define MCI_OVLY_INFO_TEXT 0x10000 -#define MCI_OVLY_GETDEVCAPS_CAN_STRETCH 0x4001 -#define MCI_OVLY_GETDEVCAPS_CAN_FREEZE 0x4002 -#define MCI_OVLY_GETDEVCAPS_MAX_WINDOWS 0x4003 -#define MCI_OVLY_WINDOW_HWND 0x10000 -#define MCI_OVLY_WINDOW_STATE 0x40000 -#define MCI_OVLY_WINDOW_TEXT 0x80000 -#define MCI_OVLY_WINDOW_ENABLE_STRETCH 0x100000 -#define MCI_OVLY_WINDOW_DISABLE_STRETCH 0x200000 -#define MCI_OVLY_WINDOW_DEFAULT 0xL -#define MCI_OVLY_RECT 0x10000 -#define MCI_OVLY_PUT_SOURCE 0x20000 -#define MCI_OVLY_PUT_DESTINATION 0x40000 -#define MCI_OVLY_PUT_FRAME 0x80000 -#define MCI_OVLY_PUT_VIDEO 0x100000 -#define MCI_OVLY_WHERE_SOURCE 0x20000 -#define MCI_OVLY_WHERE_DESTINATION 0x40000 -#define MCI_OVLY_WHERE_FRAME 0x80000 -#define MCI_OVLY_WHERE_VIDEO 0x100000 -#define NEWTRANSPARENT 3 -#define QUERYROPSUPPORT 40 -#define SELECTDIB 41 -#define DIBINDEX(n) MAKELONG((n),0x10FF) -#define SC_SCREENSAVE 0xF140 -#define CAPS1 94 -#define C1_TRANSPARENT 1 -#ifndef SEEK_SET -#define SEEK_SET 0 -#endif -#ifndef SEEK_CUR -#define SEEK_CUR 1 -#endif -#ifndef SEEK_END -#define SEEK_END 2 -#endif - -typedef DWORD MCIERROR; -typedef UINT MCIDEVICEID; -typedef UINT(CALLBACK *YIELDPROC)(MCIDEVICEID,DWORD); -typedef UINT MMVERSION; -typedef UINT MMRESULT; -typedef struct mmtime_tag { - UINT wType; - union { - DWORD ms; - DWORD sample; - DWORD cb; - DWORD ticks; - struct { - BYTE hour; - BYTE min; - BYTE sec; - BYTE frame; - BYTE fps; - BYTE dummy; - BYTE pad[2]; - } smpte; - struct { - DWORD songptrpos; - } midi; - } u; -} MMTIME,*PMMTIME,*LPMMTIME; -DECLARE_HANDLE(HDRVR); -typedef struct tagDRVCONFIGINFO { - DWORD dwDCISize; - LPCWSTR lpszDCISectionName; - LPCWSTR lpszDCIAliasName; -} DRVCONFIGINFO,*PDRVCONFIGINFO,*LPDRVCONFIGINFO; -typedef struct DRVCONFIGINFOEX { - DWORD dwDCISize; - LPCWSTR lpszDCISectionName; - LPCWSTR lpszDCIAliasName; - DWORD dnDevNode; -} DRVCONFIGINFOEX,*PDRVCONFIGINFOEX,*LPDRVCONFIGINFOEX; -typedef LRESULT(CALLBACK* DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM); -typedef void (CALLBACK DRVCALLBACK)(HDRVR,UINT,DWORD,DWORD,DWORD); -typedef DRVCALLBACK *LPDRVCALLBACK; -typedef DRVCALLBACK *PDRVCALLBACK; -DECLARE_HANDLE(HWAVE); -DECLARE_HANDLE(HWAVEIN); -DECLARE_HANDLE(HWAVEOUT); -typedef HWAVEIN *LPHWAVEIN; -typedef HWAVEOUT *LPHWAVEOUT; -typedef DRVCALLBACK WAVECALLBACK; -typedef WAVECALLBACK *LPWAVECALLBACK; -typedef struct wavehdr_tag { - LPSTR lpData; - DWORD dwBufferLength; - DWORD dwBytesRecorded; - DWORD dwUser; - DWORD dwFlags; - DWORD dwLoops; - struct wavehdr_tag *lpNext; - DWORD reserved; -} WAVEHDR,*PWAVEHDR,*LPWAVEHDR; -typedef struct tagWAVEOUTCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; -} WAVEOUTCAPSA,*PWAVEOUTCAPSA,*LPWAVEOUTCAPSA; -typedef struct tagWAVEOUTCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; - DWORD dwSupport; -} WAVEOUTCAPSW,*PWAVEOUTCAPSW,*LPWAVEOUTCAPSW; -typedef struct tagWAVEINCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; -} WAVEINCAPSA,*PWAVEINCAPSA,*LPWAVEINCAPSA; -typedef struct tagWAVEINCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwFormats; - WORD wChannels; - WORD wReserved1; -} WAVEINCAPSW,*PWAVEINCAPSW,*LPWAVEINCAPSW; -typedef struct waveformat_tag { - WORD wFormatTag; - WORD nChannels; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; -} WAVEFORMAT,*PWAVEFORMAT,*LPWAVEFORMAT; -typedef struct pcmwaveformat_tag { - WAVEFORMAT wf; - WORD wBitsPerSample; -} PCMWAVEFORMAT, *PPCMWAVEFORMAT,*LPPCMWAVEFORMAT; -#ifndef _WAVEFORMATEX_ -#define _WAVEFORMATEX_ -typedef struct tWAVEFORMATEX { - WORD wFormatTag; - WORD nChannels; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; - WORD wBitsPerSample; - WORD cbSize; -} WAVEFORMATEX,*PWAVEFORMATEX,*LPWAVEFORMATEX; -typedef const WAVEFORMATEX *LPCWAVEFORMATEX; -#endif -DECLARE_HANDLE(HMIDI); -DECLARE_HANDLE(HMIDIIN); -DECLARE_HANDLE(HMIDIOUT); -DECLARE_HANDLE(HMIDISTRM); -typedef HMIDI *LPHMIDI; -typedef HMIDIIN *LPHMIDIIN; -typedef HMIDIOUT *LPHMIDIOUT; -typedef HMIDISTRM *LPHMIDISTRM; -typedef DRVCALLBACK MIDICALLBACK; -typedef MIDICALLBACK *LPMIDICALLBACK; -typedef WORD PATCHARRAY[MIDIPATCHSIZE]; -typedef WORD *LPPATCHARRAY; -typedef WORD KEYARRAY[MIDIPATCHSIZE]; -typedef WORD *LPKEYARRAY; -typedef struct tagMIDIOUTCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wVoices; - WORD wNotes; - WORD wChannelMask; - DWORD dwSupport; -} MIDIOUTCAPSA,*PMIDIOUTCAPSA,*LPMIDIOUTCAPSA; -typedef struct tagMIDIOUTCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wVoices; - WORD wNotes; - WORD wChannelMask; - DWORD dwSupport; -} MIDIOUTCAPSW,*PMIDIOUTCAPSW,*LPMIDIOUTCAPSW; -typedef struct tagMIDIINCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD dwSupport; -} MIDIINCAPSA,*PMIDIINCAPSA,*LPMIDIINCAPSA; -typedef struct tagMIDIINCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD dwSupport; -} MIDIINCAPSW,*PMIDIINCAPSW,*NPMIDIINCAPSW,*LPMIDIINCAPSW; -typedef struct midihdr_tag { - LPSTR lpData; - DWORD dwBufferLength; - DWORD dwBytesRecorded; - DWORD dwUser; - DWORD dwFlags; - struct midihdr_tag *lpNext; - DWORD reserved; - DWORD dwOffset; - DWORD dwReserved[8]; -} MIDIHDR,*PMIDIHDR,*LPMIDIHDR; -typedef struct midievent_tag { - DWORD dwDeltaTime; - DWORD dwStreamID; - DWORD dwEvent; - DWORD dwParms[1]; -} MIDIEVENT; -typedef struct midistrmbuffver_tag { - DWORD dwVersion; - DWORD dwMid; - DWORD dwOEMVersion; -} MIDISTRMBUFFVER; -typedef struct midiproptimediv_tag { - DWORD cbStruct; - DWORD dwTimeDiv; -} MIDIPROPTIMEDIV,*LPMIDIPROPTIMEDIV; -typedef struct midiproptempo_tag { - DWORD cbStruct; - DWORD dwTempo; -} MIDIPROPTEMPO,*LPMIDIPROPTEMPO; -typedef struct tagAUXCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wReserved1; - DWORD dwSupport; -} AUXCAPSA,*PAUXCAPSA,*LPAUXCAPSA; -typedef struct tagAUXCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - WORD wTechnology; - WORD wReserved1; - DWORD dwSupport; -} AUXCAPSW,*PAUXCAPSW,*LPAUXCAPSW; -DECLARE_HANDLE(HMIXEROBJ); -typedef HMIXEROBJ *LPHMIXEROBJ; -DECLARE_HANDLE(HMIXER); -typedef HMIXER *LPHMIXER; -typedef struct tagMIXERCAPSA { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - DWORD fdwSupport; - DWORD cDestinations; -} MIXERCAPSA,*PMIXERCAPSA,*LPMIXERCAPSA; -typedef struct tagMIXERCAPSW { - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - DWORD fdwSupport; - DWORD cDestinations; -} MIXERCAPSW,*PMIXERCAPSW,*LPMIXERCAPSW; -typedef struct tagMIXERLINEA { - DWORD cbStruct; - DWORD dwDestination; - DWORD dwSource; - DWORD dwLineID; - DWORD fdwLine; - DWORD dwUser; - DWORD dwComponentType; - DWORD cChannels; - DWORD cConnections; - DWORD cControls; - CHAR szShortName[MIXER_SHORT_NAME_CHARS]; - CHAR szName[MIXER_LONG_NAME_CHARS]; - struct { - DWORD dwType; - DWORD dwDeviceID; - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; - } Target; -} MIXERLINEA,*PMIXERLINEA,*LPMIXERLINEA; -typedef struct tagMIXERLINEW { - DWORD cbStruct; - DWORD dwDestination; - DWORD dwSource; - DWORD dwLineID; - DWORD fdwLine; - DWORD dwUser; - DWORD dwComponentType; - DWORD cChannels; - DWORD cConnections; - DWORD cControls; - WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; - WCHAR szName[MIXER_LONG_NAME_CHARS]; - struct { - DWORD dwType; - DWORD dwDeviceID; - WORD wMid; - WORD wPid; - MMVERSION vDriverVersion; - WCHAR szPname[MAXPNAMELEN]; - } Target; -} MIXERLINEW,*PMIXERLINEW,*LPMIXERLINEW; -typedef struct tagMIXERCONTROLA { - DWORD cbStruct; - DWORD dwControlID; - DWORD dwControlType; - DWORD fdwControl; - DWORD cMultipleItems; - CHAR szShortName[MIXER_SHORT_NAME_CHARS]; - CHAR szName[MIXER_LONG_NAME_CHARS]; - union { - _ANONYMOUS_STRUCT struct { - LONG lMinimum; - LONG lMaximum; - }_STRUCT_NAME(s); - _ANONYMOUS_STRUCT struct { - DWORD dwMinimum; - DWORD dwMaximum; - }_STRUCT_NAME(s1); - DWORD dwReserved[6]; - } Bounds; - union { - DWORD cSteps; - DWORD cbCustomData; - DWORD dwReserved[6]; - } Metrics; -} MIXERCONTROLA,*PMIXERCONTROLA,*LPMIXERCONTROLA; -typedef struct tagMIXERCONTROLW { - DWORD cbStruct; - DWORD dwControlID; - DWORD dwControlType; - DWORD fdwControl; - DWORD cMultipleItems; - WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; - WCHAR szName[MIXER_LONG_NAME_CHARS]; - union { - _ANONYMOUS_STRUCT struct { - LONG lMinimum; - LONG lMaximum; - }_STRUCT_NAME(s); - _ANONYMOUS_STRUCT struct { - DWORD dwMinimum; - DWORD dwMaximum; - }_STRUCT_NAME(s1); - DWORD dwReserved[6]; - } Bounds; - union { - DWORD cSteps; - DWORD cbCustomData; - DWORD dwReserved[6]; - } Metrics; -} MIXERCONTROLW,*PMIXERCONTROLW,*LPMIXERCONTROLW; -typedef struct tagMIXERLINECONTROLSA { - DWORD cbStruct; - DWORD dwLineID; - _ANONYMOUS_UNION union { - DWORD dwControlID; - DWORD dwControlType; - } DUMMYUNIONNAME; - DWORD cControls; - DWORD cbmxctrl; - LPMIXERCONTROLA pamxctrl; -} MIXERLINECONTROLSA,*PMIXERLINECONTROLSA,*LPMIXERLINECONTROLSA; -typedef struct tagMIXERLINECONTROLSW { - DWORD cbStruct; - DWORD dwLineID; - _ANONYMOUS_UNION union { - DWORD dwControlID; - DWORD dwControlType; - } DUMMYUNIONNAME; - DWORD cControls; - DWORD cbmxctrl; - LPMIXERCONTROLW pamxctrl; -} MIXERLINECONTROLSW,*PMIXERLINECONTROLSW,*LPMIXERLINECONTROLSW; -typedef struct tMIXERCONTROLDETAILS { - DWORD cbStruct; - DWORD dwControlID; - DWORD cChannels; - _ANONYMOUS_UNION union { - HWND hwndOwner; - DWORD cMultipleItems; - } DUMMYUNIONNAME; - DWORD cbDetails; - PVOID paDetails; -} MIXERCONTROLDETAILS,*PMIXERCONTROLDETAILS,*LPMIXERCONTROLDETAILS; -typedef struct tagMIXERCONTROLDETAILS_LISTTEXTA { - DWORD dwParam1; - DWORD dwParam2; - CHAR szName[MIXER_LONG_NAME_CHARS]; -} MIXERCONTROLDETAILS_LISTTEXTA,*PMIXERCONTROLDETAILS_LISTTEXTA,*LPMIXERCONTROLDETAILS_LISTTEXTA; -typedef struct tagMIXERCONTROLDETAILS_LISTTEXTW { - DWORD dwParam1; - DWORD dwParam2; - WCHAR szName[MIXER_LONG_NAME_CHARS]; -} MIXERCONTROLDETAILS_LISTTEXTW,*PMIXERCONTROLDETAILS_LISTTEXTW,*LPMIXERCONTROLDETAILS_LISTTEXTW; -typedef struct tMIXERCONTROLDETAILS_BOOLEAN { - LONG fValue; -} MIXERCONTROLDETAILS_BOOLEAN,*PMIXERCONTROLDETAILS_BOOLEAN,*LPMIXERCONTROLDETAILS_BOOLEAN; -typedef struct tMIXERCONTROLDETAILS_SIGNED { - LONG lValue; -} MIXERCONTROLDETAILS_SIGNED,*PMIXERCONTROLDETAILS_SIGNED,*LPMIXERCONTROLDETAILS_SIGNED; -typedef struct tMIXERCONTROLDETAILS_UNSIGNED { - DWORD dwValue; -} MIXERCONTROLDETAILS_UNSIGNED,*PMIXERCONTROLDETAILS_UNSIGNED,*LPMIXERCONTROLDETAILS_UNSIGNED; -typedef void(CALLBACK TIMECALLBACK)(UINT,UINT,DWORD,DWORD,DWORD); -typedef TIMECALLBACK *LPTIMECALLBACK; -typedef struct timecaps_tag { - UINT wPeriodMin; - UINT wPeriodMax; -} TIMECAPS,*PTIMECAPS,*LPTIMECAPS; -typedef struct tagJOYCAPSA { - WORD wMid; - WORD wPid; - CHAR szPname[MAXPNAMELEN]; - UINT wXmin; - UINT wXmax; - UINT wYmin; - UINT wYmax; - UINT wZmin; - UINT wZmax; - UINT wNumButtons; - UINT wPeriodMin; - UINT wPeriodMax; - UINT wRmin; - UINT wRmax; - UINT wUmin; - UINT wUmax; - UINT wVmin; - UINT wVmax; - UINT wCaps; - UINT wMaxAxes; - UINT wNumAxes; - UINT wMaxButtons; - CHAR szRegKey[MAXPNAMELEN]; - CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; -} JOYCAPSA,*PJOYCAPSA,*LPJOYCAPSA; -typedef struct tagJOYCAPSW { - WORD wMid; - WORD wPid; - WCHAR szPname[MAXPNAMELEN]; - UINT wXmin; - UINT wXmax; - UINT wYmin; - UINT wYmax; - UINT wZmin; - UINT wZmax; - UINT wNumButtons; - UINT wPeriodMin; - UINT wPeriodMax; - UINT wRmin; - UINT wRmax; - UINT wUmin; - UINT wUmax; - UINT wVmin; - UINT wVmax; - UINT wCaps; - UINT wMaxAxes; - UINT wNumAxes; - UINT wMaxButtons; - WCHAR szRegKey[MAXPNAMELEN]; - WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; -} JOYCAPSW,*PJOYCAPSW,*LPJOYCAPSW; -typedef struct joyinfo_tag { - UINT wXpos; - UINT wYpos; - UINT wZpos; - UINT wButtons; -} JOYINFO,*PJOYINFO,*LPJOYINFO; -typedef struct joyinfoex_tag { - DWORD dwSize; - DWORD dwFlags; - DWORD dwXpos; - DWORD dwYpos; - DWORD dwZpos; - DWORD dwRpos; - DWORD dwUpos; - DWORD dwVpos; - DWORD dwButtons; - DWORD dwButtonNumber; - DWORD dwPOV; - DWORD dwReserved1; - DWORD dwReserved2; -} JOYINFOEX,*PJOYINFOEX,*LPJOYINFOEX; -typedef DWORD FOURCC; -typedef char *HPSTR; -DECLARE_HANDLE(HMMIO); -typedef LRESULT (CALLBACK MMIOPROC)(LPSTR,UINT,LPARAM,LPARAM); -typedef MMIOPROC *LPMMIOPROC; -typedef struct _MMIOINFO { - DWORD dwFlags; - FOURCC fccIOProc; - LPMMIOPROC pIOProc; - UINT wErrorRet; - HTASK htask; - LONG cchBuffer; - HPSTR pchBuffer; - HPSTR pchNext; - HPSTR pchEndRead; - HPSTR pchEndWrite; - LONG lBufOffset; - LONG lDiskOffset; - DWORD adwInfo[3]; - DWORD dwReserved1; - DWORD dwReserved2; - HMMIO hmmio; -} MMIOINFO,*PMMIOINFO,*LPMMIOINFO; -typedef const MMIOINFO *LPCMMIOINFO; -typedef struct _MMCKINFO { - FOURCC ckid; - DWORD cksize; - FOURCC fccType; - DWORD dwDataOffset; - DWORD dwFlags; -} MMCKINFO,*PMMCKINFO,*LPMMCKINFO; -typedef const MMCKINFO *LPCMMCKINFO; -typedef struct tagMCI_GENERIC_PARMS { - DWORD dwCallback; -} MCI_GENERIC_PARMS,*PMCI_GENERIC_PARMS,*LPMCI_GENERIC_PARMS; -typedef struct tagMCI_OPEN_PARMSA { - DWORD dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; -} MCI_OPEN_PARMSA,*PMCI_OPEN_PARMSA,*LPMCI_OPEN_PARMSA; -typedef struct tagMCI_OPEN_PARMSW { - DWORD dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; -} MCI_OPEN_PARMSW,*PMCI_OPEN_PARMSW,*LPMCI_OPEN_PARMSW; -typedef struct tagMCI_PLAY_PARMS { - DWORD dwCallback; - DWORD dwFrom; - DWORD dwTo; -} MCI_PLAY_PARMS,*PMCI_PLAY_PARMS,*LPMCI_PLAY_PARMS; -typedef struct tagMCI_SEEK_PARMS { - DWORD dwCallback; - DWORD dwTo; -} MCI_SEEK_PARMS, *PMCI_SEEK_PARMS,*LPMCI_SEEK_PARMS; -typedef struct tagMCI_STATUS_PARMS { - DWORD dwCallback; - DWORD dwReturn; - DWORD dwItem; - DWORD dwTrack; -} MCI_STATUS_PARMS,*PMCI_STATUS_PARMS,*LPMCI_STATUS_PARMS; -typedef struct tagMCI_INFO_PARMSA { - DWORD dwCallback; - LPSTR lpstrReturn; - DWORD dwRetSize; -} MCI_INFO_PARMSA,*LPMCI_INFO_PARMSA; -typedef struct tagMCI_INFO_PARMSW { - DWORD dwCallback; - LPWSTR lpstrReturn; - DWORD dwRetSize; -} MCI_INFO_PARMSW,*LPMCI_INFO_PARMSW; -typedef struct tagMCI_GETDEVCAPS_PARMS { - DWORD dwCallback; - DWORD dwReturn; - DWORD dwItem; -} MCI_GETDEVCAPS_PARMS,*PMCI_GETDEVCAPS_PARMS,*LPMCI_GETDEVCAPS_PARMS; -typedef struct tagMCI_SYSINFO_PARMSA { - DWORD dwCallback; - LPSTR lpstrReturn; - DWORD dwRetSize; - DWORD dwNumber; - UINT wDeviceType; -} MCI_SYSINFO_PARMSA,*PMCI_SYSINFO_PARMSA,*LPMCI_SYSINFO_PARMSA; -typedef struct tagMCI_SYSINFO_PARMSW { - DWORD dwCallback; - LPWSTR lpstrReturn; - DWORD dwRetSize; - DWORD dwNumber; - UINT wDeviceType; -} MCI_SYSINFO_PARMSW,*PMCI_SYSINFO_PARMSW,*LPMCI_SYSINFO_PARMSW; -typedef struct tagMCI_SET_PARMS { - DWORD dwCallback; - DWORD dwTimeFormat; - DWORD dwAudio; -} MCI_SET_PARMS,*PMCI_SET_PARMS,*LPMCI_SET_PARMS; -typedef struct tagMCI_BREAK_PARMS { - DWORD dwCallback; - int nVirtKey; - HWND hwndBreak; -} MCI_BREAK_PARMS,*PMCI_BREAK_PARMS,*LPMCI_BREAK_PARMS; -typedef struct tagMCI_SAVE_PARMSA { - DWORD dwCallback; - LPCSTR lpfilename; -} MCI_SAVE_PARMSA,*PMCI_SAVE_PARMSA,*LPMCI_SAVE_PARMSA; -typedef struct tagMCI_SAVE_PARMSW { - DWORD dwCallback; - LPCWSTR lpfilename; -} MCI_SAVE_PARMSW,*PMCI_SAVE_PARMSW,*LPMCI_SAVE_PARMSW; -typedef struct tagMCI_LOAD_PARMSA { - DWORD dwCallback; - LPCSTR lpfilename; -} MCI_LOAD_PARMSA,*PMCI_LOAD_PARMSA,*LPMCI_LOAD_PARMSA; -typedef struct tagMCI_LOAD_PARMSW { - DWORD dwCallback; - LPCWSTR lpfilename; -} MCI_LOAD_PARMSW,*PMCI_LOAD_PARMSW,*LPMCI_LOAD_PARMSW; -typedef struct tagMCI_RECORD_PARMS { - DWORD dwCallback; - DWORD dwFrom; - DWORD dwTo; -} MCI_RECORD_PARMS,*LPMCI_RECORD_PARMS; -typedef struct tagMCI_VD_PLAY_PARMS { - DWORD dwCallback; - DWORD dwFrom; - DWORD dwTo; - DWORD dwSpeed; -} MCI_VD_PLAY_PARMS,*PMCI_VD_PLAY_PARMS,*LPMCI_VD_PLAY_PARMS; -typedef struct tagMCI_VD_STEP_PARMS { - DWORD dwCallback; - DWORD dwFrames; -} MCI_VD_STEP_PARMS,*PMCI_VD_STEP_PARMS,*LPMCI_VD_STEP_PARMS; -typedef struct tagMCI_VD_ESCAPE_PARMSA { - DWORD dwCallback; - LPCSTR lpstrCommand; -} MCI_VD_ESCAPE_PARMSA,*PMCI_VD_ESCAPE_PARMSA,*LPMCI_VD_ESCAPE_PARMSA; -typedef struct tagMCI_VD_ESCAPE_PARMSW { - DWORD dwCallback; - LPCWSTR lpstrCommand; -} MCI_VD_ESCAPE_PARMSW,*PMCI_VD_ESCAPE_PARMSW,*LPMCI_VD_ESCAPE_PARMSW; -typedef struct tagMCI_WAVE_OPEN_PARMSA { - DWORD dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; - DWORD dwBufferSeconds; -} MCI_WAVE_OPEN_PARMSA,*PMCI_WAVE_OPEN_PARMSA,*LPMCI_WAVE_OPEN_PARMSA; -typedef struct tagMCI_WAVE_OPEN_PARMSW { - DWORD dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; - DWORD dwBufferSeconds; -} MCI_WAVE_OPEN_PARMSW,*PMCI_WAVE_OPEN_PARMSW,*LPMCI_WAVE_OPEN_PARMSW; -typedef struct tagMCI_WAVE_DELETE_PARMS { - DWORD dwCallback; - DWORD dwFrom; - DWORD dwTo; -} MCI_WAVE_DELETE_PARMS, *PMCI_WAVE_DELETE_PARMS,*LPMCI_WAVE_DELETE_PARMS; -typedef struct tagMCI_WAVE_SET_PARMS { - DWORD dwCallback; - DWORD dwTimeFormat; - DWORD dwAudio; - UINT wInput; - UINT wOutput; - WORD wFormatTag; - WORD wReserved2; - WORD nChannels; - WORD wReserved3; - DWORD nSamplesPerSec; - DWORD nAvgBytesPerSec; - WORD nBlockAlign; - WORD wReserved4; - WORD wBitsPerSample; - WORD wReserved5; -} MCI_WAVE_SET_PARMS,*PMCI_WAVE_SET_PARMS,*LPMCI_WAVE_SET_PARMS; - -LRESULT WINAPI CloseDriver(HDRVR,LONG,LONG); -HDRVR WINAPI OpenDriver(LPCWSTR,LPCWSTR,LONG); -LRESULT WINAPI SendDriverMessage(HDRVR,UINT,LONG,LONG); -HMODULE WINAPI DrvGetModuleHandle(HDRVR); -HMODULE WINAPI GetDriverModuleHandle(HDRVR); -LRESULT WINAPI DefDriverProc(DWORD,HDRVR,UINT,LPARAM,LPARAM); -UINT WINAPI mmsystemGetVersion(void); -#define OutputDebugStr OutputDebugString -BOOL WINAPI sndPlaySoundA(LPCSTR,UINT); -BOOL WINAPI sndPlaySoundW(LPCWSTR,UINT); -BOOL WINAPI PlaySoundA(LPCSTR,HMODULE,DWORD); -BOOL WINAPI PlaySoundW(LPCWSTR,HMODULE,DWORD); -UINT WINAPI waveOutGetNumDevs(void); -MMRESULT WINAPI waveOutGetDevCapsA(UINT,LPWAVEOUTCAPSA,UINT); -MMRESULT WINAPI waveOutGetDevCapsW(UINT,LPWAVEOUTCAPSW,UINT); -MMRESULT WINAPI waveOutGetVolume(HWAVEOUT,PDWORD); -MMRESULT WINAPI waveOutSetVolume(HWAVEOUT,DWORD); -MMRESULT WINAPI waveOutGetErrorTextA(MMRESULT,LPSTR,UINT); -MMRESULT WINAPI waveOutGetErrorTextW(MMRESULT,LPWSTR,UINT); -MMRESULT WINAPI waveOutOpen(LPHWAVEOUT,UINT,LPCWAVEFORMATEX,DWORD,DWORD,DWORD); -MMRESULT WINAPI waveOutClose(HWAVEOUT); -MMRESULT WINAPI waveOutPrepareHeader(HWAVEOUT,LPWAVEHDR,UINT); -MMRESULT WINAPI waveOutUnprepareHeader(HWAVEOUT,LPWAVEHDR,UINT); -MMRESULT WINAPI waveOutWrite(HWAVEOUT,LPWAVEHDR,UINT); -MMRESULT WINAPI waveOutPause(HWAVEOUT); -MMRESULT WINAPI waveOutRestart(HWAVEOUT); -MMRESULT WINAPI waveOutReset(HWAVEOUT); -MMRESULT WINAPI waveOutBreakLoop(HWAVEOUT); -MMRESULT WINAPI waveOutGetPosition(HWAVEOUT,LPMMTIME,UINT); -MMRESULT WINAPI waveOutGetPitch(HWAVEOUT,PDWORD); -MMRESULT WINAPI waveOutSetPitch(HWAVEOUT,DWORD); -MMRESULT WINAPI waveOutGetPlaybackRate(HWAVEOUT,PDWORD); -MMRESULT WINAPI waveOutSetPlaybackRate(HWAVEOUT,DWORD); -MMRESULT WINAPI waveOutGetID(HWAVEOUT,LPUINT); -MMRESULT WINAPI waveOutMessage(HWAVEOUT,UINT,DWORD,DWORD); -UINT WINAPI waveInGetNumDevs(void); -MMRESULT WINAPI waveInGetDevCapsA(UINT,LPWAVEINCAPSA,UINT); -MMRESULT WINAPI waveInGetDevCapsW(UINT,LPWAVEINCAPSW,UINT); -MMRESULT WINAPI waveInGetErrorTextA(MMRESULT,LPSTR,UINT); -MMRESULT WINAPI waveInGetErrorTextW(MMRESULT,LPWSTR,UINT); -MMRESULT WINAPI waveInOpen(LPHWAVEIN,UINT,LPCWAVEFORMATEX,DWORD,DWORD,DWORD); -MMRESULT WINAPI waveInClose(HWAVEIN); -MMRESULT WINAPI waveInPrepareHeader(HWAVEIN,LPWAVEHDR,UINT); -MMRESULT WINAPI waveInUnprepareHeader(HWAVEIN,LPWAVEHDR,UINT); -MMRESULT WINAPI waveInAddBuffer(HWAVEIN,LPWAVEHDR,UINT); -MMRESULT WINAPI waveInStart(HWAVEIN); -MMRESULT WINAPI waveInStop(HWAVEIN); -MMRESULT WINAPI waveInReset(HWAVEIN); -MMRESULT WINAPI waveInGetPosition(HWAVEIN,LPMMTIME,UINT); -MMRESULT WINAPI waveInGetID(HWAVEIN,LPUINT); -MMRESULT WINAPI waveInMessage(HWAVEIN,UINT,DWORD,DWORD); -UINT WINAPI midiOutGetNumDevs(void); -MMRESULT WINAPI midiStreamOpen(LPHMIDISTRM,LPUINT,DWORD,DWORD,DWORD,DWORD); -MMRESULT WINAPI midiStreamClose(HMIDISTRM); -MMRESULT WINAPI midiStreamProperty(HMIDISTRM,LPBYTE,DWORD); -MMRESULT WINAPI midiStreamPosition(HMIDISTRM,LPMMTIME,UINT); -MMRESULT WINAPI midiStreamOut(HMIDISTRM,LPMIDIHDR,UINT); -MMRESULT WINAPI midiStreamPause(HMIDISTRM); -MMRESULT WINAPI midiStreamRestart(HMIDISTRM); -MMRESULT WINAPI midiStreamStop(HMIDISTRM); -MMRESULT WINAPI midiConnect(HMIDI,HMIDIOUT,PVOID); -MMRESULT WINAPI midiDisconnect(HMIDI,HMIDIOUT,PVOID); -MMRESULT WINAPI midiOutGetDevCapsA(UINT,LPMIDIOUTCAPSA,UINT); -MMRESULT WINAPI midiOutGetDevCapsW(UINT,LPMIDIOUTCAPSW,UINT); -MMRESULT WINAPI midiOutGetVolume(HMIDIOUT,PDWORD); -MMRESULT WINAPI midiOutSetVolume(HMIDIOUT,DWORD); -MMRESULT WINAPI midiOutGetErrorTextA(MMRESULT,LPSTR,UINT); -MMRESULT WINAPI midiOutGetErrorTextW(MMRESULT,LPWSTR,UINT); -MMRESULT WINAPI midiOutOpen(LPHMIDIOUT,UINT,DWORD,DWORD,DWORD); -MMRESULT WINAPI midiOutClose(HMIDIOUT); -MMRESULT WINAPI midiOutPrepareHeader(HMIDIOUT,LPMIDIHDR,UINT); -MMRESULT WINAPI midiOutUnprepareHeader(HMIDIOUT,LPMIDIHDR,UINT); -MMRESULT WINAPI midiOutShortMsg(HMIDIOUT,DWORD); -MMRESULT WINAPI midiOutLongMsg(HMIDIOUT,LPMIDIHDR,UINT); -MMRESULT WINAPI midiOutReset(HMIDIOUT); -MMRESULT WINAPI midiOutCachePatches(HMIDIOUT,UINT,LPWORD,UINT); -MMRESULT WINAPI midiOutCacheDrumPatches(HMIDIOUT,UINT,LPWORD,UINT); -MMRESULT WINAPI midiOutGetID(HMIDIOUT,LPUINT); -MMRESULT WINAPI midiOutMessage(HMIDIOUT,UINT,DWORD,DWORD); -UINT WINAPI midiInGetNumDevs(void); -MMRESULT WINAPI midiInGetDevCapsA(UINT,LPMIDIINCAPSA,UINT); -MMRESULT WINAPI midiInGetDevCapsW(UINT,LPMIDIINCAPSW,UINT); -MMRESULT WINAPI midiInGetErrorTextA(MMRESULT,LPSTR,UINT); -MMRESULT WINAPI midiInGetErrorTextW(MMRESULT,LPWSTR,UINT); -MMRESULT WINAPI midiInOpen(LPHMIDIIN,UINT,DWORD,DWORD,DWORD); -MMRESULT WINAPI midiInClose(HMIDIIN); -MMRESULT WINAPI midiInPrepareHeader(HMIDIIN,LPMIDIHDR,UINT); -MMRESULT WINAPI midiInUnprepareHeader(HMIDIIN,LPMIDIHDR,UINT); -MMRESULT WINAPI midiInAddBuffer(HMIDIIN,LPMIDIHDR,UINT); -MMRESULT WINAPI midiInStart(HMIDIIN); -MMRESULT WINAPI midiInStop(HMIDIIN); -MMRESULT WINAPI midiInReset(HMIDIIN); -MMRESULT WINAPI midiInGetID(HMIDIIN,LPUINT); -MMRESULT WINAPI midiInMessage(HMIDIIN,UINT,DWORD,DWORD); -UINT WINAPI auxGetNumDevs(void); -MMRESULT WINAPI auxGetDevCapsA(UINT,LPAUXCAPSA,UINT); -MMRESULT WINAPI auxGetDevCapsW(UINT,LPAUXCAPSW,UINT); -MMRESULT WINAPI auxSetVolume(UINT,DWORD); -MMRESULT WINAPI auxGetVolume(UINT,PDWORD); -MMRESULT WINAPI auxOutMessage(UINT,UINT,DWORD,DWORD); -UINT WINAPI mixerGetNumDevs(void); -MMRESULT WINAPI mixerGetDevCapsA(UINT,LPMIXERCAPSA,UINT); -MMRESULT WINAPI mixerGetDevCapsW(UINT,LPMIXERCAPSW,UINT); -MMRESULT WINAPI mixerOpen(LPHMIXER,UINT,DWORD,DWORD,DWORD); -MMRESULT WINAPI mixerClose(HMIXER); -DWORD WINAPI mixerMessage(HMIXER,UINT,DWORD,DWORD); -MMRESULT WINAPI mixerGetLineInfoA(HMIXEROBJ,LPMIXERLINEA,DWORD); -MMRESULT WINAPI mixerGetLineInfoW(HMIXEROBJ,LPMIXERLINEW,DWORD); -MMRESULT WINAPI mixerGetID(HMIXEROBJ,PUINT,DWORD); -MMRESULT WINAPI mixerGetLineControlsA(HMIXEROBJ,LPMIXERLINECONTROLSA,DWORD); -MMRESULT WINAPI mixerGetLineControlsW(HMIXEROBJ,LPMIXERLINECONTROLSW,DWORD); -MMRESULT WINAPI mixerGetControlDetailsA(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD); -MMRESULT WINAPI mixerGetControlDetailsW(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD); -MMRESULT WINAPI mixerSetControlDetails(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD); -MMRESULT WINAPI timeGetSystemTime(LPMMTIME,UINT); -DWORD WINAPI timeGetTime(void); -MMRESULT WINAPI timeSetEvent(UINT,UINT,LPTIMECALLBACK,DWORD,UINT); -MMRESULT WINAPI timeKillEvent(UINT); -MMRESULT WINAPI timeGetDevCaps(LPTIMECAPS,UINT); -MMRESULT WINAPI timeBeginPeriod(UINT); -MMRESULT WINAPI timeEndPeriod(UINT); -UINT WINAPI joyGetNumDevs(void); -MMRESULT WINAPI joyGetDevCapsA(UINT,LPJOYCAPSA,UINT); -MMRESULT WINAPI joyGetDevCapsW(UINT,LPJOYCAPSW,UINT); -MMRESULT WINAPI joyGetPos(UINT,LPJOYINFO); -MMRESULT WINAPI joyGetPosEx(UINT,LPJOYINFOEX); -MMRESULT WINAPI joyGetThreshold(UINT,LPUINT); -MMRESULT WINAPI joyReleaseCapture(UINT); -MMRESULT WINAPI joySetCapture(HWND,UINT,UINT,BOOL); -MMRESULT WINAPI joySetThreshold(UINT,UINT); -FOURCC WINAPI mmioStringToFOURCCA(LPCSTR,UINT); -FOURCC WINAPI mmioStringToFOURCCW(LPCWSTR,UINT); -LPMMIOPROC WINAPI mmioInstallIOProcA(FOURCC,LPMMIOPROC,DWORD); -LPMMIOPROC WINAPI mmioInstallIOProcW(FOURCC,LPMMIOPROC,DWORD); -HMMIO WINAPI mmioOpenA(LPSTR,LPMMIOINFO,DWORD); -HMMIO WINAPI mmioOpenW(LPWSTR,LPMMIOINFO,DWORD); -MMRESULT WINAPI mmioRenameA(LPCSTR,LPCSTR,LPCMMIOINFO,DWORD); -MMRESULT WINAPI mmioRenameW(LPCWSTR,LPCWSTR,LPCMMIOINFO,DWORD); -MMRESULT WINAPI mmioClose(HMMIO,UINT); -LONG WINAPI mmioRead(HMMIO,HPSTR,LONG); -LONG WINAPI mmioWrite(HMMIO,LPCSTR,LONG); -LONG WINAPI mmioSeek(HMMIO,LONG,int); -MMRESULT WINAPI mmioGetInfo(HMMIO,LPMMIOINFO,UINT); -MMRESULT WINAPI mmioSetInfo(HMMIO,LPCMMIOINFO,UINT); -MMRESULT WINAPI mmioSetBuffer(HMMIO,LPSTR,LONG,UINT); -MMRESULT WINAPI mmioFlush(HMMIO,UINT); -MMRESULT WINAPI mmioAdvance(HMMIO,LPMMIOINFO,UINT); -LRESULT WINAPI mmioSendMessage(HMMIO,UINT,LPARAM,LPARAM); -MMRESULT WINAPI mmioDescend(HMMIO,LPMMCKINFO,const MMCKINFO*,UINT); -MMRESULT WINAPI mmioAscend(HMMIO,LPMMCKINFO,UINT); -MMRESULT WINAPI mmioCreateChunk(HMMIO,LPMMCKINFO,UINT); -MCIERROR WINAPI mciSendCommandA(MCIDEVICEID,UINT,DWORD,DWORD); -MCIERROR WINAPI mciSendCommandW(MCIDEVICEID,UINT,DWORD,DWORD); -MCIERROR WINAPI mciSendStringA(LPCSTR,LPSTR,UINT,HWND); -MCIERROR WINAPI mciSendStringW(LPCWSTR,LPWSTR,UINT,HWND); -MCIDEVICEID WINAPI mciGetDeviceIDA(LPCSTR); -MCIDEVICEID WINAPI mciGetDeviceIDW(LPCWSTR); -MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDA(DWORD,LPCSTR); -MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDW(DWORD,LPCWSTR); -BOOL WINAPI mciGetErrorStringA(MCIERROR,LPSTR,UINT); -BOOL WINAPI mciGetErrorStringW(MCIERROR,LPWSTR,UINT); -BOOL WINAPI mciSetYieldProc(MCIDEVICEID,YIELDPROC,DWORD); -HTASK WINAPI mciGetCreatorTask(MCIDEVICEID); -YIELDPROC WINAPI mciGetYieldProc(MCIDEVICEID,PDWORD); - -typedef struct tagMCI_SEQ_SET_PARMS { - DWORD dwCallback; - DWORD dwTimeFormat; - DWORD dwAudio; - DWORD dwTempo; - DWORD dwPort; - DWORD dwSlave; - DWORD dwMaster; - DWORD dwOffset; -} MCI_SEQ_SET_PARMS,*PMCI_SEQ_SET_PARMS,*LPMCI_SEQ_SET_PARMS; -typedef struct tagMCI_ANIM_OPEN_PARMSA { - DWORD dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} MCI_ANIM_OPEN_PARMSA,*PMCI_ANIM_OPEN_PARMSA,*LPMCI_ANIM_OPEN_PARMSA; -typedef struct tagMCI_ANIM_OPEN_PARMSW { - DWORD dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} MCI_ANIM_OPEN_PARMSW,*PMCI_ANIM_OPEN_PARMSW,*LPMCI_ANIM_OPEN_PARMSW; -typedef struct tagMCI_ANIM_PLAY_PARMS { - DWORD dwCallback; - DWORD dwFrom; - DWORD dwTo; - DWORD dwSpeed; -} MCI_ANIM_PLAY_PARMS,*PMCI_ANIM_PLAY_PARMS,*LPMCI_ANIM_PLAY_PARMS; -typedef struct tagMCI_ANIM_STEP_PARMS { - DWORD dwCallback; - DWORD dwFrames; -} MCI_ANIM_STEP_PARMS,*PMCI_ANIM_STEP_PARMS,*LPMCI_ANIM_STEP_PARMS; -typedef struct tagMCI_ANIM_WINDOW_PARMSA { - DWORD dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCSTR lpstrText; -} MCI_ANIM_WINDOW_PARMSA,*PMCI_ANIM_WINDOW_PARMSA,*LPMCI_ANIM_WINDOW_PARMSA; -typedef struct tagMCI_ANIM_WINDOW_PARMSW { - DWORD dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCWSTR lpstrText; -} MCI_ANIM_WINDOW_PARMSW,*PMCI_ANIM_WINDOW_PARMSW,*LPMCI_ANIM_WINDOW_PARMSW; -typedef struct tagMCI_ANIM_RECT_PARMS { - DWORD dwCallback; -#ifdef MCI_USE_OFFEXT - POINT ptOffset; - POINT ptExtent; -#else - RECT rc; -#endif -} MCI_ANIM_RECT_PARMS,*PMCI_ANIM_RECT_PARMS,*LPMCI_ANIM_RECT_PARMS; -typedef struct tagMCI_ANIM_UPDATE_PARMS { - DWORD dwCallback; - RECT rc; - HDC hDC; -} MCI_ANIM_UPDATE_PARMS,*PMCI_ANIM_UPDATE_PARMS,*LPMCI_ANIM_UPDATE_PARMS; -typedef struct tagMCI_OVLY_OPEN_PARMSA { - DWORD dwCallback; - MCIDEVICEID wDeviceID; - LPCSTR lpstrDeviceType; - LPCSTR lpstrElementName; - LPCSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} MCI_OVLY_OPEN_PARMSA,*PMCI_OVLY_OPEN_PARMSA,*LPMCI_OVLY_OPEN_PARMSA; -typedef struct tagMCI_OVLY_OPEN_PARMSW { - DWORD dwCallback; - MCIDEVICEID wDeviceID; - LPCWSTR lpstrDeviceType; - LPCWSTR lpstrElementName; - LPCWSTR lpstrAlias; - DWORD dwStyle; - HWND hWndParent; -} MCI_OVLY_OPEN_PARMSW,*PMCI_OVLY_OPEN_PARMSW,*LPMCI_OVLY_OPEN_PARMSW; -typedef struct tagMCI_OVLY_WINDOW_PARMSA { - DWORD dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCSTR lpstrText; -} MCI_OVLY_WINDOW_PARMSA,*PMCI_OVLY_WINDOW_PARMSA,*LPMCI_OVLY_WINDOW_PARMSA; -typedef struct tagMCI_OVLY_WINDOW_PARMSW { - DWORD dwCallback; - HWND hWnd; - UINT nCmdShow; - LPCWSTR lpstrText; -} MCI_OVLY_WINDOW_PARMSW,*PMCI_OVLY_WINDOW_PARMSW,*LPMCI_OVLY_WINDOW_PARMSW; -typedef struct tagMCI_OVLY_RECT_PARMS { - DWORD dwCallback; -#ifdef MCI_USE_OFFEXT - POINT ptOffset; - POINT ptExtent; -#else - RECT rc; -#endif -} MCI_OVLY_RECT_PARMS,*PMCI_OVLY_RECT_PARMS,*LPMCI_OVLY_RECT_PARMS; -typedef struct tagMCI_OVLY_SAVE_PARMSA { - DWORD dwCallback; - LPCSTR lpfilename; - RECT rc; -} MCI_OVLY_SAVE_PARMSA,*PMCI_OVLY_SAVE_PARMSA,*LPMCI_OVLY_SAVE_PARMSA; -typedef struct tagMCI_OVLY_SAVE_PARMSW { - DWORD dwCallback; - LPCWSTR lpfilename; - RECT rc; -} MCI_OVLY_SAVE_PARMSW,*PMCI_OVLY_SAVE_PARMSW,*LPMCI_OVLY_SAVE_PARMSW; -typedef struct tagMCI_OVLY_LOAD_PARMSA { - DWORD dwCallback; - LPCSTR lpfilename; - RECT rc; -} MCI_OVLY_LOAD_PARMSA,*PMCI_OVLY_LOAD_PARMSA,*LPMCI_OVLY_LOAD_PARMSA; -typedef struct tagMCI_OVLY_LOAD_PARMSW { - DWORD dwCallback; - LPCWSTR lpfilename; - RECT rc; -} MCI_OVLY_LOAD_PARMSW,*PMCI_OVLY_LOAD_PARMSW,*LPMCI_OVLY_LOAD_PARMSW; - -#ifdef UNICODE -typedef WAVEOUTCAPSW WAVEOUTCAPS,*PWAVEOUTCAPS,*LPWAVEOUTCAPS; -typedef WAVEINCAPSW WAVEINCAPS,*PWAVEINCAPS,*LPWAVEINCAPS; -typedef MIDIOUTCAPSW MIDIOUTCAPS,*PMIDIOUTCAPS,*LPMIDIOUTCAPS; -typedef MIDIINCAPSW MIDIINCAPS,*PMIDIINCAPS,*LPMIDIINCAPS; -typedef AUXCAPSW AUXCAPS,*PAUXCAPS,*LPAUXCAPS; -typedef MIXERCAPSW MIXERCAPS,*PMIXERCAPS,*LPMIXERCAPS; -typedef MIXERLINEW MIXERLINE,*PMIXERLINE,*LPMIXERLINE; -typedef MIXERCONTROLA MIXERCONTROL,*PMIXERCONTROL,*LPMIXERCONTROL; -typedef MIXERLINECONTROLSW MIXERLINECONTROLS,*PMIXERLINECONTROLS,*LPMIXERLINECONTROLS; -typedef MIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXT,*PMIXERCONTROLDETAILS_LISTTEXT,*LPMIXERCONTROLDETAILS_LISTTEXT; -typedef JOYCAPSW JOYCAPS,*PJOYCAPS,*LPJOYCAPS; -typedef MCI_OPEN_PARMSW MCI_OPEN_PARMS,*PMCI_OPEN_PARMS,*LPMCI_OPEN_PARMS; -typedef MCI_INFO_PARMSW MCI_INFO_PARMS,*LPMCI_INFO_PARMS; -typedef MCI_SYSINFO_PARMSW MCI_SYSINFO_PARMS,*PMCI_SYSINFO_PARMS,*LPMCI_SYSINFO_PARMS; -typedef MCI_SAVE_PARMSW MCI_SAVE_PARMS,*PMCI_SAVE_PARMS,*LPMCI_SAVE_PARMS; -typedef MCI_LOAD_PARMSW MCI_LOAD_PARMS,*PMCI_LOAD_PARMS,*LPMCI_LOAD_PARMS; -typedef MCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMS,*PMCI_VD_ESCAPE_PARMS,*LPMCI_VD_ESCAPE_PARMS; -typedef MCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMS,*PMCI_WAVE_OPEN_PARMS,*LPMCI_WAVE_OPEN_PARMS; -typedef MCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMS,*PMCI_ANIM_OPEN_PARMS,*LPMCI_ANIM_OPEN_PARMS; -typedef MCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMS,*PMCI_ANIM_WINDOW_PARMS,*LPMCI_ANIM_WINDOW_PARMS; -typedef MCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMS,*PMCI_OVLY_OPEN_PARMS,*LPMCI_OVLY_OPEN_PARMS; -typedef MCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMS,*PMCI_OVLY_WINDOW_PARMS,*LPMCI_OVLY_WINDOW_PARMS; -typedef MCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMS,*PMCI_OVLY_SAVE_PARMS,*LPMCI_OVLY_SAVE_PARMS; -#define sndPlaySound sndPlaySoundW -#define PlaySound PlaySoundW -#define waveOutGetDevCaps waveOutGetDevCapsW -#define waveOutGetErrorText waveOutGetErrorTextW -#define waveInGetDevCaps waveInGetDevCapsW -#define waveInGetErrorText waveInGetErrorTextW -#define midiOutGetDevCaps midiOutGetDevCapsW -#define midiOutGetErrorText midiOutGetErrorTextW -#define midiInGetDevCaps midiInGetDevCapsW -#define midiInGetErrorText midiInGetErrorTextW -#define auxGetDevCaps auxGetDevCapsW -#define mixerGetDevCaps mixerGetDevCapsW -#define mixerGetLineInfo mixerGetLineInfoW -#define mixerGetLineControls mixerGetLineControlsW -#define mixerGetControlDetails mixerGetControlDetailsW -#define joyGetDevCaps joyGetDevCapsW -#define mmioInstallIOProc mmioInstallIOProcW -#define mmioStringToFOURCC mmioStringToFOURCCW -#define mmioOpen mmioOpenW -#define mmioRename mmioRenameW -#define mciSendCommand mciSendCommandW -#define mciSendString mciSendStringW -#define mciGetDeviceID mciGetDeviceIDW -#define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDW -#define mciGetErrorString mciGetErrorStringW -#else -typedef WAVEOUTCAPSA WAVEOUTCAPS,*PWAVEOUTCAPS,*LPWAVEOUTCAPS; -typedef WAVEINCAPSA WAVEINCAPS,*PWAVEINCAPS,*LPWAVEINCAPS; -typedef MIDIOUTCAPSA MIDIOUTCAPS,*PMIDIOUTCAPS,*LPMIDIOUTCAPS; -typedef MIDIINCAPSA MIDIINCAPS,*PMIDIINCAPS,*LPMIDIINCAPS; -typedef AUXCAPSA AUXCAPS,*PAUXCAPS,*LPAUXCAPS; -typedef MIXERCAPSA MIXERCAPS,*PMIXERCAPS,*LPMIXERCAPS; -typedef MIXERLINEA MIXERLINE,*PMIXERLINE,*LPMIXERLINE; -typedef MIXERCONTROLA MIXERCONTROL,*PMIXERCONTROL,*LPMIXERCONTROL; -typedef MIXERLINECONTROLSA MIXERLINECONTROLS,*PMIXERLINECONTROLS,*LPMIXERLINECONTROLS; -typedef MIXERCONTROLDETAILS_LISTTEXTA MIXERCONTROLDETAILS_LISTTEXT,*PMIXERCONTROLDETAILS_LISTTEXT,*LPMIXERCONTROLDETAILS_LISTTEXT; -typedef JOYCAPSA JOYCAPS,*PJOYCAPS,*LPJOYCAPS; -typedef MCI_OPEN_PARMSA MCI_OPEN_PARMS,*PMCI_OPEN_PARMS,*LPMCI_OPEN_PARMS; -typedef MCI_INFO_PARMSA MCI_INFO_PARMS,*LPMCI_INFO_PARMS; -typedef MCI_SYSINFO_PARMSA MCI_SYSINFO_PARMS,*PMCI_SYSINFO_PARMS,*LPMCI_SYSINFO_PARMS; -typedef MCI_SAVE_PARMSA MCI_SAVE_PARMS,*PMCI_SAVE_PARMS,*LPMCI_SAVE_PARMS; -typedef MCI_LOAD_PARMSA MCI_LOAD_PARMS,*PMCI_LOAD_PARMS,*LPMCI_LOAD_PARMS; -typedef MCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMS,*PMCI_VD_ESCAPE_PARMS,*LPMCI_VD_ESCAPE_PARMS; -typedef MCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMS,*PMCI_WAVE_OPEN_PARMS,*LPMCI_WAVE_OPEN_PARMS; -typedef MCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMS,*PMCI_ANIM_OPEN_PARMS,*LPMCI_ANIM_OPEN_PARMS; -typedef MCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMS,*PMCI_ANIM_WINDOW_PARMS,*LPMCI_ANIM_WINDOW_PARMS; -typedef MCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMS,*PMCI_OVLY_OPEN_PARMS,*LPMCI_OVLY_OPEN_PARMS; -typedef MCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMS,*PMCI_OVLY_WINDOW_PARMS,*LPMCI_OVLY_WINDOW_PARMS; -typedef MCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMS,*PMCI_OVLY_SAVE_PARMS,*LPMCI_OVLY_SAVE_PARMS; -#define sndPlaySound sndPlaySoundA -#define PlaySound PlaySoundA -#define waveOutGetDevCaps waveOutGetDevCapsA -#define waveOutGetErrorText waveOutGetErrorTextA -#define waveInGetDevCaps waveInGetDevCapsA -#define waveInGetErrorText waveInGetErrorTextA -#define midiOutGetDevCaps midiOutGetDevCapsA -#define midiOutGetErrorText midiOutGetErrorTextA -#define midiInGetDevCaps midiInGetDevCapsA -#define midiInGetErrorText midiInGetErrorTextA -#define auxGetDevCaps auxGetDevCapsA -#define mixerGetDevCaps mixerGetDevCapsA -#define mixerGetLineInfo mixerGetLineInfoA -#define mixerGetLineControls mixerGetLineControlsA -#define mixerGetControlDetails mixerGetControlDetailsA -#define joyGetDevCaps joyGetDevCapsA -#define mmioInstallIOProc mmioInstallIOProcA -#define mmioStringToFOURCC mmioStringToFOURCCA -#define mmioOpen mmioOpenA -#define mmioRename mmioRenameA -#define mciSendCommand mciSendCommandA -#define mciSendString mciSendStringA -#define mciGetDeviceID mciGetDeviceIDA -#define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDA -#define mciGetErrorString mciGetErrorStringA -#endif -#ifdef __cplusplus -} -#endif -#pragma pack(pop) -#endif diff --git a/winsup/w32api/include/mswsock.h b/winsup/w32api/include/mswsock.h deleted file mode 100644 index d48c7443d..000000000 --- a/winsup/w32api/include/mswsock.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * mswsock.h - * MS-specific extensions to Windows Sockets 1.1, exported from mswsock.dll. - * These functions are N/A on Windows9x. - * - * This file is part of a free library for the Win32 API. - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ - -#ifndef _MSWSOCK_H -#define _MSWSOCK_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define SO_CONNDATA 0x7000 -#define SO_CONNOPT 0x7001 -#define SO_DISCDATA 0x7002 -#define SO_DISCOPT 0x7003 -#define SO_CONNDATALEN 0x7004 -#define SO_CONNOPTLEN 0x7005 -#define SO_DISCDATALEN 0x7006 -#define SO_DISCOPTLEN 0x7007 -#define SO_OPENTYPE 0x7008 -#define SO_SYNCHRONOUS_ALERT 0x10 -#define SO_SYNCHRONOUS_NONALERT 0x20 -#define SO_MAXDG 0x7009 -#define SO_MAXPATHDG 0x700A -#define SO_UPDATE_ACCEPT_CONTEXT 0x700B -#define SO_CONNECT_TIME 0x700C -#define TCP_BSDURGENT 0x7000 - -#define TF_DISCONNECT 1 -#define TF_REUSE_SOCKET 2 -#define TF_WRITE_BEHIND 4 -#define TF_USE_DEFAULT_WORKER 0 -#define TF_USE_SYSTEM_THREAD 16 -#define TF_USE_KERNEL_APC 32 - -typedef struct _TRANSMIT_FILE_BUFFERS { - PVOID Head; - DWORD HeadLength; - PVOID Tail; - DWORD TailLength; -} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS; - -int PASCAL WSARecvEx(SOCKET,char*,int,int*); -BOOL PASCAL TransmitFile(SOCKET,HANDLE,DWORD,DWORD,LPOVERLAPPED,LPTRANSMIT_FILE_BUFFERS,DWORD); -BOOL PASCAL AcceptEx(SOCKET,SOCKET,PVOID,DWORD,DWORD,DWORD,LPDWORD,LPOVERLAPPED); -VOID PASCAL GetAcceptExSockaddrs(PVOID,DWORD,DWORD,DWORD,struct sockaddr**, LPINT, struct sockaddr**, LPINT); - -#ifdef __cplusplus -} -#endif -#endif /* _MSWSOCK_H */ - diff --git a/winsup/w32api/include/nb30.h b/winsup/w32api/include/nb30.h deleted file mode 100644 index c12b94355..000000000 --- a/winsup/w32api/include/nb30.h +++ /dev/null @@ -1,182 +0,0 @@ -#ifndef _NB30_H -#define _NB30_H -#ifdef __cplusplus -extern "C" { -#endif -#define NCBNAMSZ 16 -#define MAX_LANA 254 -#define NAME_FLAGS_MASK 0x87 -#define GROUP_NAME 0x80 -#define UNIQUE_NAME 0x00 -#define REGISTERING 0x00 -#define REGISTERED 0x04 -#define DEREGISTERED 0x05 -#define DUPLICATE 0x06 -#define DUPLICATE_DEREG 0x07 -#define LISTEN_OUTSTANDING 0x01 -#define CALL_PENDING 0x02 -#define SESSION_ESTABLISHED 0x03 -#define HANGUP_PENDING 0x04 -#define HANGUP_COMPLETE 0x05 -#define SESSION_ABORTED 0x06 -#define ALL_TRANSPORTS "M\0\0\0" -#define MS_NBF "MNBF" -#define NCBCALL 0x10 -#define NCBLISTEN 0x11 -#define NCBHANGUP 0x12 -#define NCBSEND 0x14 -#define NCBRECV 0x15 -#define NCBRECVANY 0x16 -#define NCBCHAINSEND 0x17 -#define NCBDGSEND 0x20 -#define NCBDGRECV 0x21 -#define NCBDGSENDBC 0x22 -#define NCBDGRECVBC 0x23 -#define NCBADDNAME 0x30 -#define NCBDELNAME 0x31 -#define NCBRESET 0x32 -#define NCBASTAT 0x33 -#define NCBSSTAT 0x34 -#define NCBCANCEL 0x35 -#define NCBADDGRNAME 0x36 -#define NCBENUM 0x37 -#define NCBUNLINK 0x70 -#define NCBSENDNA 0x71 -#define NCBCHAINSENDNA 0x72 -#define NCBLANSTALERT 0x73 -#define NCBACTION 0x77 -#define NCBFINDNAME 0x78 -#define NCBTRACE 0x79 -#define ASYNCH 0x80 -#define NRC_GOODRET 0x00 -#define NRC_BUFLEN 0x01 -#define NRC_ILLCMD 0x03 -#define NRC_CMDTMO 0x05 -#define NRC_INCOMP 0x06 -#define NRC_BADDR 0x07 -#define NRC_SNUMOUT 0x08 -#define NRC_NORES 0x09 -#define NRC_SCLOSED 0x0a -#define NRC_CMDCAN 0x0b -#define NRC_DUPNAME 0x0d -#define NRC_NAMTFUL 0x0e -#define NRC_ACTSES 0x0f -#define NRC_LOCTFUL 0x11 -#define NRC_REMTFUL 0x12 -#define NRC_ILLNN 0x13 -#define NRC_NOCALL 0x14 -#define NRC_NOWILD 0x15 -#define NRC_INUSE 0x16 -#define NRC_NAMERR 0x17 -#define NRC_SABORT 0x18 -#define NRC_NAMCONF 0x19 -#define NRC_IFBUSY 0x21 -#define NRC_TOOMANY 0x22 -#define NRC_BRIDGE 0x23 -#define NRC_CANOCCR 0x24 -#define NRC_CANCEL 0x26 -#define NRC_DUPENV 0x30 -#define NRC_ENVNOTDEF 0x34 -#define NRC_OSRESNOTAV 0x35 -#define NRC_MAXAPPS 0x36 -#define NRC_NOSAPS 0x37 -#define NRC_NORESOURCES 0x38 -#define NRC_INVADDRESS 0x39 -#define NRC_INVDDID 0x3B -#define NRC_LOCKFAIL 0x3C -#define NRC_OPENERR 0x3f -#define NRC_SYSTEM 0x40 -#define NRC_PENDING 0xff -#define NCB_POST void CALLBACK -typedef struct _ACTION_HEADER { - ULONG transport_id; - USHORT action_code; - USHORT reserved; -} ACTION_HEADER,*PACTION_HEADER; -typedef struct _ADAPTER_STATUS { - UCHAR adapter_address[6]; - UCHAR rev_major; - UCHAR reserved0; - UCHAR adapter_type; - UCHAR rev_minor; - WORD duration; - WORD frmr_recv; - WORD frmr_xmit; - WORD iframe_recv_err; - WORD xmit_aborts; - DWORD xmit_success; - DWORD recv_success; - WORD iframe_xmit_err; - WORD recv_buff_unavail; - WORD t1_timeouts; - WORD ti_timeouts; - DWORD reserved1; - WORD free_ncbs; - WORD max_cfg_ncbs; - WORD max_ncbs; - WORD xmit_buf_unavail; - WORD max_dgram_size; - WORD pending_sess; - WORD max_cfg_sess; - WORD max_sess; - WORD max_sess_pkt_size; - WORD name_count; -} ADAPTER_STATUS,*PADAPTER_STATUS; -typedef struct _FIND_NAME_BUFFER { - UCHAR length; - UCHAR access_control; - UCHAR frame_control; - UCHAR destination_addr[6]; - UCHAR source_addr[6]; - UCHAR routing_info[18]; -} FIND_NAME_BUFFER,*PFIND_NAME_BUFFER; -typedef struct _FIND_NAME_HEADER { - WORD node_count; - UCHAR reserved; - UCHAR unique_group; -} FIND_NAME_HEADER,*PFIND_NAME_HEADER; -typedef struct _LANA_ENUM { - UCHAR length; - UCHAR lana[MAX_LANA+1]; -} LANA_ENUM,*PLANA_ENUM; -typedef struct _NAME_BUFFER { - UCHAR name[NCBNAMSZ]; - UCHAR name_num; - UCHAR name_flags; -} NAME_BUFFER,*PNAME_BUFFER; -typedef struct _NCB { - UCHAR ncb_command; - UCHAR ncb_retcode; - UCHAR ncb_lsn; - UCHAR ncb_num; - PUCHAR ncb_buffer; - WORD ncb_length; - UCHAR ncb_callname[NCBNAMSZ]; - UCHAR ncb_name[NCBNAMSZ]; - UCHAR ncb_rto; - UCHAR ncb_sto; - void (CALLBACK *ncb_post)(struct _NCB*); - UCHAR ncb_lana_num; - UCHAR ncb_cmd_cplt; - UCHAR ncb_reserve[10]; - HANDLE ncb_event; -} NCB,*PNCB; -typedef struct _SESSION_BUFFER { - UCHAR lsn; - UCHAR state; - UCHAR local_name[NCBNAMSZ]; - UCHAR remote_name[NCBNAMSZ]; - UCHAR rcvs_outstanding; - UCHAR sends_outstanding; -} SESSION_BUFFER,*PSESSION_BUFFER; -typedef struct _SESSION_HEADER { - UCHAR sess_name; - UCHAR num_sess; - UCHAR rcv_dg_outstanding; - UCHAR rcv_any_outstanding; -} SESSION_HEADER,*PSESSION_HEADER; -UCHAR WINAPI Netbios(PNCB); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/nddeapi.h b/winsup/w32api/include/nddeapi.h deleted file mode 100644 index 1648b62e4..000000000 --- a/winsup/w32api/include/nddeapi.h +++ /dev/null @@ -1,129 +0,0 @@ -#ifndef _NDDEAPI_H -#define _NDDEAPI_H -#ifdef __cplusplus -extern "C" { -#endif -#ifndef CNLEN /* also in lmcons.h */ -#define CNLEN 15 -#define UNCLEN (CNLEN + 2) -#endif -#define SEP_CHAR ',' -#define BAR_CHAR "|" -#define SEP_WCHAR L',' -#define BAR_WCHAR L"|" -#define NDDE_NO_ERROR 0 -#define NDDE_ACCESS_DENIED 1 -#define NDDE_BUF_TOO_SMALL 2 -#define NDDE_ERROR_MORE_DATA 3 -#define NDDE_INVALID_SERVER 4 -#define NDDE_INVALID_SHARE 5 -#define NDDE_INVALID_PARAMETER 6 -#define NDDE_INVALID_LEVEL 7 -#define NDDE_INVALID_PASSWORD 8 -#define NDDE_INVALID_ITEMNAME 9 -#define NDDE_INVALID_TOPIC 10 -#define NDDE_INTERNAL_ERROR 11 -#define NDDE_OUT_OF_MEMORY 12 -#define NDDE_INVALID_APPNAME 13 -#define NDDE_NOT_IMPLEMENTED 14 -#define NDDE_SHARE_ALREADY_EXIST 15 -#define NDDE_SHARE_NOT_EXIST 16 -#define NDDE_INVALID_FILENAME 17 -#define NDDE_NOT_RUNNING 18 -#define NDDE_INVALID_WINDOW 19 -#define NDDE_INVALID_SESSION 20 -#define NDDE_INVALID_ITEM_LIST 21 -#define NDDE_SHARE_DATA_CORRUPTED 22 -#define NDDE_REGISTRY_ERROR 23 -#define NDDE_CANT_ACCESS_SERVER 24 -#define NDDE_INVALID_SPECIAL_COMMAND 25 -#define NDDE_INVALID_SECURITY_DESC 26 -#define NDDE_TRUST_SHARE_FAIL 27 -#define MAX_NDDESHARENAME 256 -#define MAX_DOMAINNAME 15 -#define MAX_USERNAME 15 -#define MAX_APPNAME 255 -#define MAX_TOPICNAME 255 -#define MAX_ITEMNAME 255 -#define NDDEF_NOPASSWORDPROMPT 0x0001 -#define NDDEF_NOCACHELOOKUP 0x0002 -#define NDDEF_STRIP_NDDE 0x0004 -#define SHARE_TYPE_OLD 0x01 -#define SHARE_TYPE_NEW 0x02 -#define SHARE_TYPE_STATIC 0x04 -#define NDDE_TRUST_SHARE_START 0x80000000L -#define NDDE_TRUST_SHARE_INIT 0x40000000L -#define NDDE_TRUST_SHARE_DEL 0x20000000L -#define NDDE_TRUST_CMD_SHOW 0x10000000L -#define NDDE_CMD_SHOW_MASK 0x0000FFFFL -struct NDdeShareInfo_tag { - LONG lRevision; - LPTSTR lpszShareName; - LONG lShareType; - LPTSTR lpszAppTopicList; - LONG fSharedFlag; - LONG fService; - LONG fStartAppFlag; - LONG nCmdShow; - LONG qModifyId[2]; - LONG cNumItems; - LPTSTR lpszItemList; -} NDDESHAREINFO,*PNDDESHAREINFO; - -UINT WINAPI NDdeGetErrorStringA(UINT,LPSTR,DWORD); -UINT WINAPI NDdeGetErrorStringW(UINT,LPWSTR,DWORD); -UINT WINAPI NDdeGetShareSecurityA(LPSTR,LPSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD); -UINT WINAPI NDdeGetShareSecurityW(LPWSTR,LPWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD); -UINT WINAPI NDdeGetTrustedShareA(LPSTR,LPSTR,PDWORD,PDWORD,PDWORD); -UINT WINAPI NDdeGetTrustedShareW(LPWSTR,LPWSTR,PDWORD,PDWORD,PDWORD); -BOOL WINAPI NDdeIsValidShareNameA(LPSTR); -BOOL WINAPI NDdeIsValidShareNameW(LPWSTR); -BOOL WINAPI NDdeIsValidAppTopicListA(LPSTR); -BOOL WINAPI NDdeIsValidAppTopicListW(LPWSTR); -UINT WINAPI NDdeSetShareSecurityA(LPSTR,LPSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -UINT WINAPI NDdeSetShareSecurityW(LPWSTR,LPWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -UINT WINAPI NDdeSetTrustedShareA(LPSTR,LPSTR,DWORD); -UINT WINAPI NDdeSetTrustedShareW(LPWSTR,LPWSTR,DWORD); -UINT WINAPI NDdeShareAddA(LPSTR,UINT,PSECURITY_DESCRIPTOR,PBYTE,DWORD); -UINT WINAPI NDdeShareAddW(LPWSTR,UINT,PSECURITY_DESCRIPTOR,PBYTE,DWORD); -UINT WINAPI NDdeShareDelA(LPSTR,LPSTR,UINT); -UINT WINAPI NDdeShareDelW(LPWSTR,LPWSTR,UINT); -UINT WINAPI NDdeShareEnumA(LPSTR,UINT,PBYTE,DWORD,PDWORD,PDWORD); -UINT WINAPI NDdeShareEnumW(LPWSTR,UINT,PBYTE,DWORD,PDWORD,PDWORD); -UINT WINAPI NDdeShareGetInfoA(LPSTR,LPSTR,UINT,PBYTE,DWORD,PDWORD,PWORD); -UINT WINAPI NDdeShareGetInfoW(LPWSTR,LPWSTR,UINT,PBYTE,DWORD,PDWORD,PWORD); -UINT WINAPI NDdeShareSetInfoA(LPSTR,LPSTR,UINT,PBYTE,DWORD,WORD); -UINT WINAPI NDdeShareSetInfoW(LPWSTR,LPWSTR,UINT,PBYTE,DWORD,WORD); -UINT WINAPI NDdeTrustedShareEnumA(LPSTR,UINT,PBYTE,DWORD,PDWORD,PDWORD); -UINT WINAPI NDdeTrustedShareEnumW(LPWSTR,UINT,PBYTE,DWORD,PDWORD,PDWORD); -#ifdef UNICODE -#define NDdeShareAdd NDdeShareAddW -#define NDdeShareDel NDdeShareDelW -#define NDdeSetShareSecurity NDdeSetShareSecurityW -#define NDdeGetShareSecurity NDdeGetShareSecurityW -#define NDdeShareEnum NDdeShareEnumW -#define NDdeShareGetInfo NDdeShareGetInfoW -#define NDdeShareSetInfo NDdeShareSetInfoW -#define NDdeGetErrorString NDdeGetErrorStringW -#define NDdeSetTrustedShare NDdeSetTrustedShareW -#define NDdeGetTrustedShare NDdeGetTrustedShareW -#define NDdeTrustedShareEnum NDdeTrustedShareEnumW -#else -#define NDdeShareAdd NDdeShareAddA -#define NDdeShareDel NDdeShareDelA -#define NDdeSetShareSecurity NDdeSetShareSecurityA -#define NDdeGetShareSecurity NDdeGetShareSecurityA -#define NDdeShareEnum NDdeShareEnumA -#define NDdeShareGetInfo NDdeShareGetInfoA -#define NDdeShareSetInfo NDdeShareSetInfoA -#define NDdeGetErrorString NDdeGetErrorStringA -#define NDdeIsValidShareName NDdeIsValidShareNameA -#define NDdeIsValidAppTopicList NDdeIsValidAppTopicListA -#define NDdeSetTrustedShare NDdeSetTrustedShareA -#define NDdeGetTrustedShare NDdeGetTrustedShareA -#define NDdeTrustedShareEnum NDdeTrustedShareEnumA -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/nspapi.h b/winsup/w32api/include/nspapi.h deleted file mode 100644 index 97dde1639..000000000 --- a/winsup/w32api/include/nspapi.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _NSPAPI_H -#define _NSPAPI_H -#ifdef __cplusplus -extern "C" { -#endif -typedef struct _SOCKET_ADDRESS { - LPSOCKADDR lpSockaddr; - INT iSockaddrLength; -} SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS; -typedef struct _CSADDR_INFO { - SOCKET_ADDRESS LocalAddr; - SOCKET_ADDRESS RemoteAddr; - INT iSocketType; - INT iProtocol; -} CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO; -#ifdef __cplusplus -} -#endif -#endif /* _NSPAPI_H */ diff --git a/winsup/w32api/include/ntdef.h b/winsup/w32api/include/ntdef.h deleted file mode 100644 index 623a71492..000000000 --- a/winsup/w32api/include/ntdef.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef _NTDEF_H -#define _NTDEF_H -#define NTAPI __stdcall -#define OBJ_INHERIT 2L -#define OBJ_PERMANENT 16L -#define OBJ_EXCLUSIVE 32L -#define OBJ_CASE_INSENSITIVE 64L -#define OBJ_OPENIF 128L -#define OBJ_OPENLINK 256L -#define OBJ_VALID_ATTRIBUTES 498L -#define InitializeObjectAttributes(p,n,a,r,s) { \ - (p)->Length = sizeof(OBJECT_ATTRIBUTES); \ - (p)->RootDirectory = (r); \ - (p)->Attributes = (a); \ - (p)->ObjectName = (n); \ - (p)->SecurityDescriptor = (s); \ - (p)->SecurityQualityOfService = NULL; \ -} -#ifndef NT_SUCCESS -#define NT_SUCCESS(x) ((x)>=0) -#define STATUS_SUCCESS ((NTSTATUS)0) -#endif -#if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H) -typedef LONG NTSTATUS, *PNTSTATUS; -typedef struct _UNICODE_STRING { - USHORT Length; - USHORT MaximumLength; - PWSTR Buffer; -} UNICODE_STRING, *PUNICODE_STRING; -typedef struct _STRING { - USHORT Length; - USHORT MaximumLength; - PCHAR Buffer; -} STRING, *PSTRING; -#endif -typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS; -typedef enum _SECTION_INHERIT { - ViewShare = 1, - ViewUnmap = 2 -} SECTION_INHERIT; -#if !defined(_NTSECAPI_H) -typedef struct _OBJECT_ATTRIBUTES { - ULONG Length; - HANDLE RootDirectory; - PUNICODE_STRING ObjectName; - ULONG Attributes; - PVOID SecurityDescriptor; - PVOID SecurityQualityOfService; -} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; -#endif -#endif /* _NTDEF_H */ diff --git a/winsup/w32api/include/ntsecapi.h b/winsup/w32api/include/ntsecapi.h deleted file mode 100644 index a5c81f908..000000000 --- a/winsup/w32api/include/ntsecapi.h +++ /dev/null @@ -1,607 +0,0 @@ -#ifndef _NTSECAPI_H -#define _NTSECAPI_H -#ifdef __cplusplus -extern "C" { -#endif -#define KERB_WRAP_NO_ENCRYPT 0x80000001 -#define LOGON_GUEST 1 -#define LOGON_NOENCRYPTION 2 -#define LOGON_CACHED_ACCOUNT 4 -#define LOGON_USED_LM_PASSWORD 8 -#define LOGON_EXTRA_SIDS 32 -#define LOGON_SUBAUTH_SESSION_KEY 64 -#define LOGON_SERVER_TRUST_ACCOUNT 128 -#define LOGON_NTLMV2_ENABLED 256 -#define LOGON_RESOURCE_GROUPS 512 -#define LOGON_PROFILE_PATH_RETURNED 1024 -#define LOGON_GRACE_LOGON 16777216 -#define LSA_MODE_PASSWORD_PROTECTED 1 -#define LSA_MODE_INDIVIDUAL_ACCOUNTS 2 -#define LSA_MODE_MANDATORY_ACCESS 3 -#define LSA_MODE_LOG_FULL 4 -#define LSA_SUCCESS(x) ((LONG)(x)>=0) -#define MICROSOFT_KERBEROS_NAME_A "Kerberos" -#define MICROSOFT_KERBEROS_NAME_W L"Kerberos" -#define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT 32 -#define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT 2048 -#define MSV1_0_CHALLENGE_LENGTH 8 -#define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED 2 -#define MSV1_0_CRED_LM_PRESENT 1 -#define MSV1_0_CRED_NT_PRESENT 2 -#define MSV1_0_CRED_VERSION 0 -#define MSV1_0_DONT_TRY_GUEST_ACCOUNT 16 -#define MSV1_0_LANMAN_SESSION_KEY_LENGTH 8 -#define MSV1_0_MAX_NTLM3_LIFE 1800 -#define MSV1_0_MAX_AVL_SIZE 64000 -#define MSV1_0_MNS_LOGON 16777216 -#define MSV1_0_NTLM3_RESPONSE_LENGTH 16 -#define MSV1_0_NTLM3_OWF_LENGTH 16 -#define MSV1_0_NTLM3_INPUT_LENGTH (sizeof(MSV1_0_NTLM3_RESPONSE)-MSV1_0_NTLM3_RESPONSE_LENGTH) -#define MSV1_0_OWF_PASSWORD_LENGTH 16 -#define MSV1_0_PACKAGE_NAME "MICROSOFT_AUTHENTICATION_PACKAGE_V1_0" -#define MSV1_0_PACKAGE_NAMEW L"MICROSOFT_AUTHENTICATION_PACKAGE_V1_0" -#define MSV1_0_PACKAGE_NAMEW_LENGTH sizeof(MSV1_0_PACKAGE_NAMEW)-sizeof(WCHAR) -#define MSV1_0_RETURN_USER_PARAMETERS 8 -#define MSV1_0_RETURN_PASSWORD_EXPIRY 64 -#define MSV1_0_RETURN_PROFILE_PATH 512 -#define MSV1_0_SUBAUTHENTICATION_DLL_EX 1048576 -#define MSV1_0_SUBAUTHENTICATION_DLL 0xff000000 -#define MSV1_0_SUBAUTHENTICATION_DLL_SHIFT 24 -#define MSV1_0_SUBAUTHENTICATION_DLL_RAS 2 -#define MSV1_0_SUBAUTHENTICATION_DLL_IIS 132 -#define MSV1_0_SUBAUTHENTICATION_FLAGS 0xff000000 -#define MSV1_0_SUBAUTHENTICATION_KEY "System\\CurrentControlSet\\Control\\Lsa\\MSV1_0" -#define MSV1_0_SUBAUTHENTICATION_VALUE "Auth" -#define MSV1_0_TRY_GUEST_ACCOUNT_ONLY 256 -#define MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY 1024 -#define MSV1_0_UPDATE_LOGON_STATISTICS 4 -#define MSV1_0_USE_CLIENT_CHALLENGE 128 -#define MSV1_0_USER_SESSION_KEY_LENGTH 16 -#define POLICY_VIEW_LOCAL_INFORMATION 1 -#define POLICY_VIEW_AUDIT_INFORMATION 2 -#define POLICY_GET_PRIVATE_INFORMATION 4 -#define POLICY_TRUST_ADMIN 8 -#define POLICY_CREATE_ACCOUNT 16 -#define POLICY_CREATE_SECRET 32 -#define POLICY_CREATE_PRIVILEGE 64 -#define POLICY_SET_DEFAULT_QUOTA_LIMITS 128 -#define POLICY_SET_AUDIT_REQUIREMENTS 256 -#define POLICY_AUDIT_LOG_ADMIN 512 -#define POLICY_SERVER_ADMIN 1024 -#define POLICY_LOOKUP_NAMES 2048 -#define POLICY_READ (STANDARD_RIGHTS_READ|6) -#define POLICY_WRITE (STANDARD_RIGHTS_WRITE|2040) -#define POLICY_EXECUTE (STANDARD_RIGHTS_EXECUTE|2049) -#define POLICY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|4095) -#define POLICY_AUDIT_EVENT_UNCHANGED 0 -#define POLICY_AUDIT_EVENT_SUCCESS 1 -#define POLICY_AUDIT_EVENT_FAILURE 2 -#define POLICY_AUDIT_EVENT_NONE 4 -#define POLICY_AUDIT_EVENT_MASK 7 -#define POLICY_LOCATION_LOCAL 1 -#define POLICY_LOCATION_DS 2 -#define POLICY_MACHINE_POLICY_LOCAL 0 -#define POLICY_MACHINE_POLICY_DEFAULTED 1 -#define POLICY_MACHINE_POLICY_EXPLICIT 2 -#define POLICY_MACHINE_POLICY_UNKNOWN 0xFFFFFFFF -#define POLICY_QOS_SCHANEL_REQUIRED 1 -#define POLICY_QOS_OUTBOUND_INTEGRITY 2 -#define POLICY_QOS_OUTBOUND_CONFIDENTIALITY 4 -#define POLICY_QOS_INBOUND_INTEGREITY 8 -#define POLICY_QOS_INBOUND_CONFIDENTIALITY 16 -#define POLICY_QOS_ALLOW_LOCAL_ROOT_CERT_STORE 32 -#define POLICY_QOS_RAS_SERVER_ALLOWED 64 -#define POLICY_QOS_DHCP_SERVER_ALLOWD 128 -#define POLICY_KERBEROS_FORWARDABLE 1 -#define POLICY_KERBEROS_PROXYABLE 2 -#define POLICY_KERBEROS_RENEWABLE 4 -#define POLICY_KERBEROS_POSTDATEABLE 8 -#define SAM_PASSWORD_CHANGE_NOTIFY_ROUTINE "PasswordChangeNotify" -#define SAM_INIT_NOTIFICATION_ROUTINE "InitializeChangeNotify" -#define SAM_PASSWORD_FILTER_ROUTINE "PasswordFilter" -#define SE_INTERACTIVE_LOGON_NAME TEXT("SeInteractiveLogonRight") -#define SE_NETWORK_LOGON_NAME TEXT("SeNetworkLogonRight") -#define SE_BATCH_LOGON_NAME TEXT("SeBatchLogonRight") -#define SE_SERVICE_LOGON_NAME TEXT("SeServiceLogonRight") -#define TRUST_ATTRIBUTE_NON_TRANSITIVE 1 -#define TRUST_ATTRIBUTE_UPLEVEL_ONLY 2 -#define TRUST_ATTRIBUTE_TREE_PARENT 4194304 -#define TRUST_ATTRIBUTES_VALID -16580609 -#define TRUST_AUTH_TYPE_NONE 0 -#define TRUST_AUTH_TYPE_NT4OWF 1 -#define TRUST_AUTH_TYPE_CLEAR 2 -#define TRUST_DIRECTION_DISABLED 0 -#define TRUST_DIRECTION_INBOUND 1 -#define TRUST_DIRECTION_OUTBOUND 2 -#define TRUST_DIRECTION_BIDIRECTIONAL 3 -#define TRUST_TYPE_DOWNLEVEL 1 -#define TRUST_TYPE_UPLEVEL 2 -#define TRUST_TYPE_MIT 3 -#define TRUST_TYPE_DCE 4 -#if !defined(_NTDEF_H) && !defined(_SUBAUTH_H) -typedef LONG NTSTATUS, *PNTSTATUS; -typedef struct _UNICODE_STRING { - USHORT Length; - USHORT MaximumLength; - PWSTR Buffer; -} UNICODE_STRING, *PUNICODE_STRING; -typedef struct _STRING { - USHORT Length; - USHORT MaximumLength; - PCHAR Buffer; -} STRING, *PSTRING; -#endif -typedef UNICODE_STRING LSA_UNICODE_STRING, *PLSA_UNICODE_STRING; -typedef STRING LSA_STRING, *PLSA_STRING; -typedef enum _MSV1_0_LOGON_SUBMIT_TYPE { - MsV1_0InteractiveLogon = 2, - MsV1_0Lm20Logon, - MsV1_0NetworkLogon, - MsV1_0SubAuthLogon, - MsV1_0WorkstationUnlockLogon = 7 -} MSV1_0_LOGON_SUBMIT_TYPE, *PMSV1_0_LOGON_SUBMIT_TYPE; -typedef enum _MSV1_0_PROFILE_BUFFER_TYPE { - MsV1_0InteractiveProfile = 2, - MsV1_0Lm20LogonProfile, - MsV1_0SmartCardProfile -} MSV1_0_PROFILE_BUFFER_TYPE, *PMSV1_0_PROFILE_BUFFER_TYPE; -typedef enum { - MsvAvEOL, - MsvAvNbComputerName, - MsvAvNbDomainName, - MsvAvDnsComputerName, - MsvAvDnsDomainName -} MSV1_0_AVID; -typedef enum _MSV1_0_PROTOCOL_MESSAGE_TYPE { - MsV1_0Lm20ChallengeRequest = 0, - MsV1_0Lm20GetChallengeResponse, - MsV1_0EnumerateUsers, - MsV1_0GetUserInfo, - MsV1_0ReLogonUsers, - MsV1_0ChangePassword, - MsV1_0ChangeCachedPassword, - MsV1_0GenericPassthrough, - MsV1_0CacheLogon, - MsV1_0SubAuth, - MsV1_0DeriveCredential, - MsV1_0CacheLookup -} MSV1_0_PROTOCOL_MESSAGE_TYPE, *PMSV1_0_PROTOCOL_MESSAGE_TYPE; -typedef enum _POLICY_LSA_SERVER_ROLE { - PolicyServerRoleBackup = 2, - PolicyServerRolePrimary -} POLICY_LSA_SERVER_ROLE, *PPOLICY_LSA_SERVER_ROLE; -typedef enum _POLICY_SERVER_ENABLE_STATE { - PolicyServerEnabled = 2, - PolicyServerDisabled -} POLICY_SERVER_ENABLE_STATE, *PPOLICY_SERVER_ENABLE_STATE; -typedef enum _POLICY_INFORMATION_CLASS { - PolicyAuditLogInformation = 1, - PolicyAuditEventsInformation, - PolicyPrimaryDomainInformation, - PolicyPdAccountInformation, - PolicyAccountDomainInformation, - PolicyLsaServerRoleInformation, - PolicyReplicaSourceInformation, - PolicyDefaultQuotaInformation, - PolicyModificationInformation, - PolicyAuditFullSetInformation, - PolicyAuditFullQueryInformation, - PolicyDnsDomainInformation, - PolicyEfsInformation -} POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS; -typedef enum _POLICY_AUDIT_EVENT_TYPE { - AuditCategorySystem, - AuditCategoryLogon, - AuditCategoryObjectAccess, - AuditCategoryPrivilegeUse, - AuditCategoryDetailedTracking, - AuditCategoryPolicyChange, - AuditCategoryAccountManagement, - AuditCategoryDirectoryServiceAccess, - AuditCategoryAccountLogon -} POLICY_AUDIT_EVENT_TYPE, *PPOLICY_AUDIT_EVENT_TYPE; -typedef enum _POLICY_LOCAL_INFORMATION_CLASS { - PolicyLocalAuditEventsInformation = 1, - PolicyLocalPdAccountInformation, - PolicyLocalAccountDomainInformation, - PolicyLocalLsaServerRoleInformation, - PolicyLocalReplicaSourceInformation, - PolicyLocalModificationInformation, - PolicyLocalAuditFullSetInformation, - PolicyLocalAuditFullQueryInformation, - PolicyLocalDnsDomainInformation, - PolicyLocalIPSecReferenceInformation, - PolicyLocalMachinePasswordInformation, - PolicyLocalQualityOfServiceInformation, - PolicyLocalPolicyLocationInformation -} POLICY_LOCAL_INFORMATION_CLASS, *PPOLICY_LOCAL_INFORMATION_CLASS; -typedef enum _POLICY_DOMAIN_INFORMATION_CLASS { - PolicyDomainIPSecReferenceInformation = 1, - PolicyDomainQualityOfServiceInformation, - PolicyDomainEfsInformation, - PolicyDomainPublicKeyInformation, - PolicyDomainPasswordPolicyInformation, - PolicyDomainLockoutInformation, - PolicyDomainKerberosTicketInformation -} POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS; -typedef enum _SECURITY_LOGON_TYPE { - Interactive = 2, - Network, - Batch, - Service, - Proxy, - Unlock -} SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE; -typedef enum _TRUSTED_INFORMATION_CLASS { - TrustedDomainNameInformation = 1, - TrustedControllersInformation, - TrustedPosixOffsetInformation, - TrustedPasswordInformation, - TrustedDomainInformationBasic, - TrustedDomainInformationEx, - TrustedDomainAuthInformation, - TrustedDomainFullInformation -} TRUSTED_INFORMATION_CLASS, *PTRUSTED_INFORMATION_CLASS; -typedef struct _DOMAIN_PASSWORD_INFORMATION { - USHORT MinPasswordLength; - USHORT PasswordHistoryLength; - ULONG PasswordProperties; - LARGE_INTEGER MaxPasswordAge; - LARGE_INTEGER MinPasswordAge; -} DOMAIN_PASSWORD_INFORMATION, *PDOMAIN_PASSWORD_INFORMATION; -typedef ULONG LSA_ENUMERATION_HANDLE, *PLSA_ENUMERATION_HANDLE; -typedef struct _LSA_ENUMERATION_INFORMATION { - PSID Sid; -} LSA_ENUMERATION_INFORMATION, *PLSA_ENUMERATION_INFORMATION; -typedef ULONG LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE; -#if !defined(_NTDEF_H) -typedef struct _LSA_OBJECT_ATTRIBUTES { - ULONG Length; - HANDLE RootDirectory; - PLSA_UNICODE_STRING ObjectName; - ULONG Attributes; - PVOID SecurityDescriptor; - PVOID SecurityQualityOfService; -} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; -#endif -typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES, *PLSA_OBJECT_ATTRIBUTES; -typedef struct _LSA_TRUST_INFORMATION { - LSA_UNICODE_STRING Name; - PSID Sid; -} LSA_TRUST_INFORMATION, *PLSA_TRUST_INFORMATION; -typedef struct _LSA_REFERENCED_DOMAIN_LIST { - ULONG Entries; - PLSA_TRUST_INFORMATION Domains; -} LSA_REFERENCED_DOMAIN_LIST, *PLSA_REFERENCED_DOMAIN_LIST; -typedef struct _LSA_TRANSLATED_SID { - SID_NAME_USE Use; - ULONG RelativeId; - LONG DomainIndex; -} LSA_TRANSLATED_SID, *PLSA_TRANSLATED_SID; -typedef struct _LSA_TRANSLATED_NAME { - SID_NAME_USE Use; - LSA_UNICODE_STRING Name; - LONG DomainIndex; -} LSA_TRANSLATED_NAME, *PLSA_TRANSLATED_NAME; -typedef struct _MSV1_0_INTERACTIVE_LOGON { - MSV1_0_LOGON_SUBMIT_TYPE MessageType; - UNICODE_STRING LogonDomainName; - UNICODE_STRING UserName; - UNICODE_STRING Password; -} MSV1_0_INTERACTIVE_LOGON, *PMSV1_0_INTERACTIVE_LOGON; -typedef struct _MSV1_0_INTERACTIVE_PROFILE { - MSV1_0_PROFILE_BUFFER_TYPE MessageType; - USHORT LogonCount; - USHORT BadPasswordCount; - LARGE_INTEGER LogonTime; - LARGE_INTEGER LogoffTime; - LARGE_INTEGER KickOffTime; - LARGE_INTEGER PasswordLastSet; - LARGE_INTEGER PasswordCanChange; - LARGE_INTEGER PasswordMustChange; - UNICODE_STRING LogonScript; - UNICODE_STRING HomeDirectory; - UNICODE_STRING FullName; - UNICODE_STRING ProfilePath; - UNICODE_STRING HomeDirectoryDrive; - UNICODE_STRING LogonServer; - ULONG UserFlags; -} MSV1_0_INTERACTIVE_PROFILE, *PMSV1_0_INTERACTIVE_PROFILE; -typedef struct _MSV1_0_LM20_LOGON { - MSV1_0_LOGON_SUBMIT_TYPE MessageType; - UNICODE_STRING LogonDomainName; - UNICODE_STRING UserName; - UNICODE_STRING Workstation; - UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH]; - STRING CaseSensitiveChallengeResponse; - STRING CaseInsensitiveChallengeResponse; - ULONG ParameterControl; -} MSV1_0_LM20_LOGON, * PMSV1_0_LM20_LOGON; -typedef struct _MSV1_0_SUBAUTH_LOGON{ /* W2K only */ - MSV1_0_LOGON_SUBMIT_TYPE MessageType; - UNICODE_STRING LogonDomainName; - UNICODE_STRING UserName; - UNICODE_STRING Workstation; - UCHAR ChallengeToClient[MSV1_0_CHALLENGE_LENGTH]; - STRING AuthenticationInfo1; - STRING AuthenticationInfo2; - ULONG ParameterControl; - ULONG SubAuthPackageId; -} MSV1_0_SUBAUTH_LOGON, * PMSV1_0_SUBAUTH_LOGON; -typedef struct _MSV1_0_LM20_LOGON_PROFILE { - MSV1_0_PROFILE_BUFFER_TYPE MessageType; - LARGE_INTEGER KickOffTime; - LARGE_INTEGER LogoffTime; - ULONG UserFlags; - UCHAR UserSessionKey[MSV1_0_USER_SESSION_KEY_LENGTH]; - UNICODE_STRING LogonDomainName; - UCHAR LanmanSessionKey[MSV1_0_LANMAN_SESSION_KEY_LENGTH]; - UNICODE_STRING LogonServer; - UNICODE_STRING UserParameters; -} MSV1_0_LM20_LOGON_PROFILE, * PMSV1_0_LM20_LOGON_PROFILE; -typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL { - ULONG Version; - ULONG Flags; - UCHAR LmPassword[MSV1_0_OWF_PASSWORD_LENGTH]; - UCHAR NtPassword[MSV1_0_OWF_PASSWORD_LENGTH]; -} MSV1_0_SUPPLEMENTAL_CREDENTIAL, *PMSV1_0_SUPPLEMENTAL_CREDENTIAL; -typedef struct _MSV1_0_NTLM3_RESPONSE { - UCHAR Response[MSV1_0_NTLM3_RESPONSE_LENGTH]; - UCHAR RespType; - UCHAR HiRespType; - USHORT Flags; - ULONG MsgWord; - ULONGLONG TimeStamp; - UCHAR ChallengeFromClient[MSV1_0_CHALLENGE_LENGTH]; - ULONG AvPairsOff; - UCHAR Buffer[1]; -} MSV1_0_NTLM3_RESPONSE, *PMSV1_0_NTLM3_RESPONSE; -typedef struct _MSV1_0_AV_PAIR { - USHORT AvId; - USHORT AvLen; -} MSV1_0_AV_PAIR, *PMSV1_0_AV_PAIR; -typedef struct _MSV1_0_CHANGEPASSWORD_REQUEST { - MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; - UNICODE_STRING DomainName; - UNICODE_STRING AccountName; - UNICODE_STRING OldPassword; - UNICODE_STRING NewPassword; - BOOLEAN Impersonating; -} MSV1_0_CHANGEPASSWORD_REQUEST, *PMSV1_0_CHANGEPASSWORD_REQUEST; -typedef struct _MSV1_0_CHANGEPASSWORD_RESPONSE { - MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; - BOOLEAN PasswordInfoValid; - DOMAIN_PASSWORD_INFORMATION DomainPasswordInfo; -} MSV1_0_CHANGEPASSWORD_RESPONSE, *PMSV1_0_CHANGEPASSWORD_RESPONSE; -typedef struct _MSV1_0_SUBAUTH_REQUEST{ - MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; - ULONG SubAuthPackageId; - ULONG SubAuthInfoLength; - PUCHAR SubAuthSubmitBuffer; -} MSV1_0_SUBAUTH_REQUEST, *PMSV1_0_SUBAUTH_REQUEST; -typedef struct _MSV1_0_SUBAUTH_RESPONSE{ - MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; - ULONG SubAuthInfoLength; - PUCHAR SubAuthReturnBuffer; -} MSV1_0_SUBAUTH_RESPONSE, *PMSV1_0_SUBAUTH_RESPONSE; -#define MSV1_0_DERIVECRED_TYPE_SHA1 0 -typedef struct _MSV1_0_DERIVECRED_REQUEST { - MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; - LUID LogonId; - ULONG DeriveCredType; - ULONG DeriveCredInfoLength; - UCHAR DeriveCredSubmitBuffer[1]; -} MSV1_0_DERIVECRED_REQUEST, *PMSV1_0_DERIVECRED_REQUEST; -typedef struct _MSV1_0_DERIVECRED_RESPONSE { - MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType; - ULONG DeriveCredInfoLength; - UCHAR DeriveCredReturnBuffer[1]; -} MSV1_0_DERIVECRED_RESPONSE, *PMSV1_0_DERIVECRED_RESPONSE; -typedef ULONG POLICY_AUDIT_EVENT_OPTIONS, *PPOLICY_AUDIT_EVENT_OPTIONS; -typedef struct _POLICY_PRIVILEGE_DEFINITION { - LSA_UNICODE_STRING Name; - LUID LocalValue; -} POLICY_PRIVILEGE_DEFINITION, *PPOLICY_PRIVILEGE_DEFINITION; -typedef struct _POLICY_AUDIT_LOG_INFO { - ULONG AuditLogPercentFull; - ULONG MaximumLogSize; - LARGE_INTEGER AuditRetentionPeriod; - BOOLEAN AuditLogFullShutdownInProgress; - LARGE_INTEGER TimeToShutdown; - ULONG NextAuditRecordId; -} POLICY_AUDIT_LOG_INFO, *PPOLICY_AUDIT_LOG_INFO; -typedef struct _POLICY_AUDIT_EVENTS_INFO { - BOOLEAN AuditingMode; - PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions; - ULONG MaximumAuditEventCount; -} POLICY_AUDIT_EVENTS_INFO, *PPOLICY_AUDIT_EVENTS_INFO; -typedef struct _POLICY_ACCOUNT_DOMAIN_INFO { - LSA_UNICODE_STRING DomainName; - PSID DomainSid; -} POLICY_ACCOUNT_DOMAIN_INFO, *PPOLICY_ACCOUNT_DOMAIN_INFO; -typedef struct _POLICY_PRIMARY_DOMAIN_INFO { - LSA_UNICODE_STRING Name; - PSID Sid; -} POLICY_PRIMARY_DOMAIN_INFO, *PPOLICY_PRIMARY_DOMAIN_INFO; -typedef struct _POLICY_DNS_DOMAIN_INFO { - LSA_UNICODE_STRING Name; - LSA_UNICODE_STRING DnsDomainName; - LSA_UNICODE_STRING DnsTreeName; - GUID DomainGuid; - PSID Sid; -} POLICY_DNS_DOMAIN_INFO, *PPOLICY_DNS_DOMAIN_INFO; -typedef struct _POLICY_PD_ACCOUNT_INFO { - LSA_UNICODE_STRING Name; -} POLICY_PD_ACCOUNT_INFO, *PPOLICY_PD_ACCOUNT_INFO; -typedef struct _POLICY_LSA_SERVER_ROLE_INFO { - POLICY_LSA_SERVER_ROLE LsaServerRole; -} POLICY_LSA_SERVER_ROLE_INFO, *PPOLICY_LSA_SERVER_ROLE_INFO; -typedef struct _POLICY_REPLICA_SOURCE_INFO { - LSA_UNICODE_STRING ReplicaSource; - LSA_UNICODE_STRING ReplicaAccountName; -} POLICY_REPLICA_SOURCE_INFO, *PPOLICY_REPLICA_SOURCE_INFO; -typedef struct _POLICY_DEFAULT_QUOTA_INFO { - QUOTA_LIMITS QuotaLimits; -} POLICY_DEFAULT_QUOTA_INFO, *PPOLICY_DEFAULT_QUOTA_INFO; -typedef struct _POLICY_MODIFICATION_INFO { - LARGE_INTEGER ModifiedId; - LARGE_INTEGER DatabaseCreationTime; -} POLICY_MODIFICATION_INFO, *PPOLICY_MODIFICATION_INFO; -typedef struct _POLICY_AUDIT_FULL_SET_INFO { - BOOLEAN ShutDownOnFull; -} POLICY_AUDIT_FULL_SET_INFO, *PPOLICY_AUDIT_FULL_SET_INFO; -typedef struct _POLICY_AUDIT_FULL_QUERY_INFO { - BOOLEAN ShutDownOnFull; - BOOLEAN LogIsFull; -} POLICY_AUDIT_FULL_QUERY_INFO, *PPOLICY_AUDIT_FULL_QUERY_INFO; -typedef struct _POLICY_EFS_INFO { - ULONG InfoLength; - PUCHAR EfsBlob; -} POLICY_EFS_INFO, *PPOLICY_EFS_INFO; -typedef struct _POLICY_LOCAL_IPSEC_REFERENCE_INFO { - LSA_UNICODE_STRING ObjectPath; -} POLICY_LOCAL_IPSEC_REFERENCE_INFO, *PPOLICY_LOCAL_IPSEC_REFERENCE_INFO; -typedef struct _POLICY_LOCAL_MACHINE_PASSWORD_INFO { - LARGE_INTEGER PasswordChangeInterval; -} POLICY_LOCAL_MACHINE_PASSWORD_INFO, *PPOLICY_LOCAL_MACHINE_PASSWORD_INFO; -typedef struct _POLICY_LOCAL_POLICY_LOCATION_INFO { - ULONG PolicyLocation; -} POLICY_LOCAL_POLICY_LOCATION_INFO, *PPOLICY_LOCAL_POLICY_LOCATION_INFO; -typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO { - ULONG QualityOfService; -} POLICY_LOCAL_QUALITY_OF_SERVICE_INFO, *PPOLICY_LOCAL_QUALITY_OF_SERVICE_INFO; -typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO POLICY_DOMAIN_QUALITY_OF_SERVICE_INFO; -typedef struct _POLICY_LOCAL_QUALITY_OF_SERVICE_INFO *PPOLICY_DOMAIN_QUALITY_OF_SERVICE_INFO; -typedef struct _POLICY_DOMAIN_PUBLIC_KEY_INFO { - ULONG InfoLength; - PUCHAR PublicKeyInfo; -} POLICY_DOMAIN_PUBLIC_KEY_INFO, *PPOLICY_DOMAIN_PUBLIC_KEY_INFO; -typedef struct _POLICY_DOMAIN_LOCKOUT_INFO { - LARGE_INTEGER LockoutDuration; - LARGE_INTEGER LockoutObservationWindow; - USHORT LockoutThreshold; -} POLICY_DOMAIN_LOCKOUT_INFO, *PPOLICY_DOMAIN_LOCKOUT_INFO; -typedef struct _POLICY_DOMAIN_PASSWORD_INFO { - USHORT MinPasswordLength; - USHORT PasswordHistoryLength; - ULONG PasswordProperties; - LARGE_INTEGER MaxPasswordAge; - LARGE_INTEGER MinPasswordAge; -} POLICY_DOMAIN_PASSWORD_INFO, *PPOLICY_DOMAIN_PASSWORD_INFO; -typedef struct _POLICY_DOMAIN_KERBEROS_TICKET_INFO { - ULONG AuthenticationOptions; - LARGE_INTEGER MinTicketAge; - LARGE_INTEGER MaxTicketAge; - LARGE_INTEGER MaxRenewAge; - LARGE_INTEGER ProxyLifetime; - LARGE_INTEGER ForceLogoff; -} POLICY_DOMAIN_KERBEROS_TICKET_INFO, *PPOLICY_DOMAIN_KERBEROS_TICKET_INFO; -typedef PVOID LSA_HANDLE, *PLSA_HANDLE; -typedef struct _TRUSTED_DOMAIN_NAME_INFO { - LSA_UNICODE_STRING Name; -} TRUSTED_DOMAIN_NAME_INFO, *PTRUSTED_DOMAIN_NAME_INFO; -typedef struct _TRUSTED_CONTROLLERS_INFO { - ULONG Entries; - PLSA_UNICODE_STRING Names; -} TRUSTED_CONTROLLERS_INFO, *PTRUSTED_CONTROLLERS_INFO; -typedef struct _TRUSTED_POSIX_OFFSET_INFO { - ULONG Offset; -} TRUSTED_POSIX_OFFSET_INFO, *PTRUSTED_POSIX_OFFSET_INFO; -typedef struct _TRUSTED_PASSWORD_INFO { - LSA_UNICODE_STRING Password; - LSA_UNICODE_STRING OldPassword; -} TRUSTED_PASSWORD_INFO, *PTRUSTED_PASSWORD_INFO; -typedef LSA_TRUST_INFORMATION TRUSTED_DOMAIN_INFORMATION_BASIC; -typedef PLSA_TRUST_INFORMATION *PTRUSTED_DOMAIN_INFORMATION_BASIC; -typedef struct _TRUSTED_DOMAIN_INFORMATION_EX { - LSA_UNICODE_STRING Name; - LSA_UNICODE_STRING FlatName; - PSID Sid; - ULONG TrustDirection; - ULONG TrustType; - ULONG TrustAttributes; -} TRUSTED_DOMAIN_INFORMATION_EX, *PTRUSTED_DOMAIN_INFORMATION_EX; -typedef struct _LSA_AUTH_INFORMATION { - LARGE_INTEGER LastUpdateTime; - ULONG AuthType; - ULONG AuthInfoLength; - PUCHAR AuthInfo; -} LSA_AUTH_INFORMATION, *PLSA_AUTH_INFORMATION; -typedef struct _TRUSTED_DOMAIN_AUTH_INFORMATION { - ULONG IncomingAuthInfos; - PLSA_AUTH_INFORMATION IncomingAuthenticationInformation; - PLSA_AUTH_INFORMATION IncomingPreviousAuthenticationInformation; - ULONG OutgoingAuthInfos; - PLSA_AUTH_INFORMATION OutgoingAuthenticationInformation; - PLSA_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation; -} TRUSTED_DOMAIN_AUTH_INFORMATION, *PTRUSTED_DOMAIN_AUTH_INFORMATION; -typedef struct _TRUSTED_DOMAIN_FULL_INFORMATION { - TRUSTED_DOMAIN_INFORMATION_EX Information; - TRUSTED_POSIX_OFFSET_INFO PosixOffset; - TRUSTED_DOMAIN_AUTH_INFORMATION AuthInformation; -} TRUSTED_DOMAIN_FULL_INFORMATION, *PTRUSTED_DOMAIN_FULL_INFORMATION; -NTSTATUS NTAPI LsaAddAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING,ULONG); -NTSTATUS NTAPI LsaCallAuthenticationPackage(HANDLE,ULONG,PVOID,ULONG,PVOID*, - PULONG,PNTSTATUS); -NTSTATUS NTAPI LsaClose(LSA_HANDLE); -NTSTATUS NTAPI LsaConnectUntrusted(PHANDLE); -NTSTATUS NTAPI LsaCreateTrustedDomainEx(LSA_HANDLE, - PTRUSTED_DOMAIN_INFORMATION_EX, - PTRUSTED_DOMAIN_AUTH_INFORMATION,ACCESS_MASK, - PLSA_HANDLE); -NTSTATUS NTAPI LsaDeleteTrustedDomain(LSA_HANDLE,PSID); -NTSTATUS NTAPI LsaDeregisterLogonProcess(HANDLE); -NTSTATUS NTAPI LsaEnumerateAccountRights(LSA_HANDLE,PSID,PLSA_UNICODE_STRING*,PULONG); -NTSTATUS NTAPI LsaEnumerateAccountsWithUserRight(LSA_HANDLE,PLSA_UNICODE_STRING, - PVOID*,PULONG); -NTSTATUS NTAPI LsaEnumerateTrustedDomains(LSA_HANDLE,PLSA_ENUMERATION_HANDLE, - PVOID*,ULONG,PULONG); -NTSTATUS NTAPI LsaEnumerateTrustedDomainsEx(LSA_HANDLE,PLSA_ENUMERATION_HANDLE, - TRUSTED_INFORMATION_CLASS,PVOID*,ULONG,PULONG); -NTSTATUS NTAPI LsaFreeMemory(PVOID); -NTSTATUS NTAPI LsaFreeReturnBuffer(PVOID); -NTSTATUS NTAPI LsaLogonUser(HANDLE,PLSA_STRING,SECURITY_LOGON_TYPE,ULONG,PVOID, - ULONG,PTOKEN_GROUPS,PTOKEN_SOURCE,PVOID*,PULONG, - PLUID,PHANDLE,PQUOTA_LIMITS,PNTSTATUS); -NTSTATUS NTAPI LsaLookupAuthenticationPackage(HANDLE,PLSA_STRING,PULONG); -NTSTATUS NTAPI LsaLookupNames(LSA_HANDLE,ULONG,PLSA_UNICODE_STRING, - PLSA_REFERENCED_DOMAIN_LIST*,PLSA_TRANSLATED_SID*); -NTSTATUS NTAPI LsaLookupSids(LSA_HANDLE,ULONG,PSID*, - PLSA_REFERENCED_DOMAIN_LIST*,PLSA_TRANSLATED_NAME*); -ULONG NTAPI LsaNtStatusToWinError(NTSTATUS); -NTSTATUS NTAPI LsaOpenPolicy(PLSA_UNICODE_STRING,PLSA_OBJECT_ATTRIBUTES, - ACCESS_MASK,PLSA_HANDLE); -NTSTATUS NTAPI LsaQueryDomainInformationPolicy(LSA_HANDLE, - POLICY_DOMAIN_INFORMATION_CLASS,PVOID*); -NTSTATUS NTAPI LsaQueryInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS,PVOID*); -NTSTATUS NTAPI LsaQueryLocalInformationPolicy(LSA_HANDLE, - POLICY_LOCAL_INFORMATION_CLASS,PVOID*); -NTSTATUS NTAPI LsaQueryTrustedDomainInfo(LSA_HANDLE,PSID, - TRUSTED_INFORMATION_CLASS,PVOID*); -NTSTATUS NTAPI LsaQueryTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING, - TRUSTED_INFORMATION_CLASS,PVOID*); -NTSTATUS NTAPI LsaRegisterLogonProcess(PLSA_STRING,PHANDLE,PLSA_OPERATIONAL_MODE); -NTSTATUS NTAPI LsaRemoveAccountRights(LSA_HANDLE,PSID,BOOLEAN, - PLSA_UNICODE_STRING,ULONG); -NTSTATUS NTAPI LsaRetrievePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING, - PLSA_UNICODE_STRING*); -NTSTATUS NTAPI LsaSetDomainInformationPolicy(LSA_HANDLE, - POLICY_DOMAIN_INFORMATION_CLASS,PVOID); -NTSTATUS NTAPI LsaSetInformationPolicy(LSA_HANDLE,POLICY_INFORMATION_CLASS, PVOID); -NTSTATUS NTAPI LsaSetLocalInformationPolicy(LSA_HANDLE, - POLICY_LOCAL_INFORMATION_CLASS,PVOID); -NTSTATUS NTAPI LsaSetTrustedDomainInformation(LSA_HANDLE,PSID, - TRUSTED_INFORMATION_CLASS,PVOID); -NTSTATUS NTAPI LsaSetTrustedDomainInfoByName(LSA_HANDLE,PLSA_UNICODE_STRING, - TRUSTED_INFORMATION_CLASS,PVOID); -NTSTATUS NTAPI LsaStorePrivateData(LSA_HANDLE,PLSA_UNICODE_STRING, - PLSA_UNICODE_STRING); -typedef NTSTATUS (*PSAM_PASSWORD_NOTIFICATION_ROUTINE)(PUNICODE_STRING, - ULONG,PUNICODE_STRING); -typedef BOOLEAN (*PSAM_INIT_NOTIFICATION_ROUTINE)(void); -typedef BOOLEAN (*PSAM_PASSWORD_FILTER_ROUTINE)(PUNICODE_STRING,PUNICODE_STRING, - PUNICODE_STRING,BOOLEAN); -#ifdef __cplusplus -} -#endif -#endif /* _NTSECAPI_H */ diff --git a/winsup/w32api/include/ntsecpkg.h b/winsup/w32api/include/ntsecpkg.h deleted file mode 100644 index 4e7696b98..000000000 --- a/winsup/w32api/include/ntsecpkg.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef _NTSECPKG_H -#define _NTSECPKG_H - -#define ISC_REQ_DELEGATE 1 -#define ISC_REQ_MUTUAL_AUTH 2 -#define ISC_REQ_REPLAY_DETECT 4 -#define ISC_REQ_SEQUENCE_DETECT 8 -#define ISC_REQ_CONFIDENTIALITY 16 -#define ISC_REQ_USE_SESSION_KEY 32 -#define ISC_REQ_PROMPT_FOR_CREDS 64 -#define ISC_REQ_USE_SUPPLIED_CREDS 128 -#define ISC_REQ_ALLOCATE_MEMORY 256 -#define ISC_REQ_USE_DCE_STYLE 512 -#define ISC_REQ_DATAGRAM 1024 -#define ISC_REQ_CONNECTION 2048 -#define ISC_REQ_EXTENDED_ERROR 16384 -#define ISC_REQ_STREAM 32768 -#define ISC_REQ_INTEGRITY 65536 -#define ISC_REQ_MANUAL_CRED_VALIDATION 524288 -#define ISC_REQ_HTTP 268435456 - -#define ISC_RET_EXTENDED_ERROR 16384 - -#define ASC_REQ_DELEGATE 1 -#define ASC_REQ_MUTUAL_AUTH 2 -#define ASC_REQ_REPLAY_DETECT 4 -#define ASC_REQ_SEQUENCE_DETECT 8 -#define ASC_REQ_CONFIDENTIALITY 16 -#define ASC_REQ_USE_SESSION_KEY 32 -#define ASC_REQ_ALLOCATE_MEMORY 256 -#define ASC_REQ_USE_DCE_STYLE 512 -#define ASC_REQ_DATAGRAM 1024 -#define ASC_REQ_CONNECTION 2048 -#define ASC_REQ_EXTENDED_ERROR 32768 -#define ASC_REQ_STREAM 65536 -#define ASC_REQ_INTEGRITY 131072 - -#define SECURITY_NATIVE_DREP 16 -#define SECURITY_NETWORK_DREP 0 - -#endif /* _NTSECPKG_H */ diff --git a/winsup/w32api/include/oaidl.h b/winsup/w32api/include/oaidl.h deleted file mode 100644 index 4e66e54ae..000000000 --- a/winsup/w32api/include/oaidl.h +++ /dev/null @@ -1,605 +0,0 @@ -#ifndef _OAIDL_H -#define _OAIDL_H -#ifdef __cplusplus -extern "C" { -#endif -#ifdef NONAMELESSUNION -#define __VARIANT_NAME_1 n1 -#define __VARIANT_NAME_2 n2 -#define __VARIANT_NAME_3 n3 -#define __VARIANT_NAME_4 n4 -#else -#define __tagVARIANT -#define __VARIANT_NAME_1 -#define __VARIANT_NAME_2 -#define __VARIANT_NAME_3 -#define __VARIANT_NAME_4 -#endif -#define DISPID_UNKNOWN (-1) -#define DISPID_VALUE (0) -#define DISPID_PROPERTYPUT (-3) -#define DISPID_NEWENUM (-4) -#define DISPID_EVALUATE (-5) -#define DISPID_CONSTRUCTOR (-6) -#define DISPID_DESTRUCTOR (-7) -#define DISPID_COLLECT (-8) -#define FADF_AUTO (1) -#define FADF_STATIC (2) -#define FADF_EMBEDDED (4) -#define FADF_FIXEDSIZE (16) -#define FADF_BSTR (256) -#define FADF_UNKNOWN (512) -#define FADF_DISPATCH (1024) -#define FADF_VARIANT (2048) -#define FADF_RESERVED (0xf0e8) -#define PARAMFLAG_NONE (0) -#define PARAMFLAG_FIN (1) -#define PARAMFLAG_FOUT (2) -#define PARAMFLAG_FLCID (4) -#define PARAMFLAG_FRETVAL (8) -#define PARAMFLAG_FOPT (16) -#define PARAMFLAG_FHASDEFAULT (32) -#define IDLFLAG_NONE PARAMFLAG_NONE -#define IDLFLAG_FIN PARAMFLAG_FIN -#define IDLFLAG_FOUT PARAMFLAG_FOUT -#define IDLFLAG_FLCID PARAMFLAG_FLCID -#define IDLFLAG_FRETVAL PARAMFLAG_FRETVAL -#define IMPLTYPEFLAG_FDEFAULT 1 -#define IMPLTYPEFLAG_FSOURCE 2 -#define IMPLTYPEFLAG_FRESTRICTED 4 -#define IMPLTYPEFLAG_FDEFAULTVTABLE 8 - -typedef interface ITypeLib *LPTYPELIB; -typedef interface ICreateTypeInfo *LPCREATETYPEINFO; -typedef interface ICreateTypeInfo2 *LPCREATETYPEINFO2; -typedef interface ICreateTypeLib *LPCREATETYPELIB; -typedef interface ICreateTypeLib2 *LPCREATETYPELIB2; -typedef interface ITypeComp *LPTYPECOMP; -typedef interface ITypeInfo *LPTYPEINFO; -typedef interface IErrorInfo *LPERRORINFO; -typedef interface IDispatch *LPDISPATCH; -typedef interface IEnumVARIANT *LPENUMVARIANT; -typedef interface ICreateErrorInfo *LPCREATEERRORINFO; -typedef interface ISupportErrorInfo *LPSUPPORTERRORINFO; -typedef interface IRecordInfo *LPRECORDINFO; - -extern const IID IID_ITypeLib; -extern const IID IID_ICreateTypeInfo; -extern const IID IID_ICreateTypeInfo2; -extern const IID IID_ICreateTypeLib; -extern const IID IID_ICreateTypeLib2; -extern const IID IID_ITypeInfo; -extern const IID IID_IErrorInfo; -extern const IID IID_IDispatch; -extern const IID IID_IEnumVARIANT; -extern const IID IID_ICreateErrorInfo; -extern const IID IID_ISupportErrorInfo; -extern const IID IID_IRecordInfo; - -typedef enum tagSYSKIND { - SYS_WIN16,SYS_WIN32,SYS_MAC -} SYSKIND; -typedef enum tagLIBFLAGS { - LIBFLAG_FRESTRICTED=1,LIBFLAG_FCONTROL=2,LIBFLAG_FHIDDEN=4, - LIBFLAG_FHASDISKIMAGE=8 -} LIBFLAGS; -typedef struct tagTLIBATTR { - GUID guid; - LCID lcid; - SYSKIND syskind; - WORD wMajorVerNum; - WORD wMinorVerNum; - WORD wLibFlags; -} TLIBATTR,*LPTLIBATTR; -typedef CY CURRENCY; -typedef struct tagSAFEARRAYBOUND { - ULONG cElements; - LONG lLbound; -}SAFEARRAYBOUND,*LPSAFEARRAYBOUND; -typedef struct _wireSAFEARR_BSTR -{ - ULONG Size; - wireBSTR *aBstr; -}SAFEARR_BSTR; -typedef struct _wireSAFEARR_UNKNOWN { - ULONG Size; - IUnknown **apUnknown; -}SAFEARR_UNKNOWN; -typedef struct _wireSAFEARR_DISPATCH { - ULONG Size; - LPDISPATCH *apDispatch; -}SAFEARR_DISPATCH; -typedef struct _wireSAFEARR_VARIANT { - ULONG Size; - struct _wireVARIANT *aVariant; -}SAFEARR_VARIANT; -typedef enum tagSF_TYPE { - SF_ERROR=VT_ERROR, - SF_I1=VT_I1, - SF_I2=VT_I2, - SF_I4=VT_I4, - SF_I8=VT_I8, - SF_BSTR=VT_BSTR, - SF_UNKNOWN=VT_UNKNOWN, - SF_DISPATCH=VT_DISPATCH, - SF_VARIANT=VT_VARIANT -}SF_TYPE; -typedef struct _wireBRECORD { - ULONG fFlags; - ULONG clSize; - LPRECORDINFO* pRecInfo; - byte* pRecord; -} *wireBRECORD; -typedef struct _wireSAFEARR_BRECORD { - ULONG Size; - wireBRECORD* aRecord; - } SAFEARR_BRECORD; -typedef struct _wireSAFEARR_HAVEIID { - ULONG Size; - IUnknown** apUnknown; - IID iid; - } SAFEARR_HAVEIID; -typedef struct _wireSAFEARRAY_UNION { - ULONG sfType; - union { - SAFEARR_BSTR BstrStr; - SAFEARR_UNKNOWN UnknownStr; - SAFEARR_DISPATCH DispatchStr; - SAFEARR_VARIANT VariantStr; - SAFEARR_BRECORD RecordStr; - SAFEARR_HAVEIID HaveIidStr; - BYTE_SIZEDARR ByteStr; - WORD_SIZEDARR WordStr; - DWORD_SIZEDARR LongStr; - HYPER_SIZEDARR HyperStr; - }u; -}SAFEARRAYUNION; -typedef struct _wireSAFEARRAY { - USHORT cDims; - USHORT fFeatures; - ULONG cbElements; - ULONG cLocks; - SAFEARRAYUNION uArrayStructs; - SAFEARRAYBOUND rgsabound[1]; -}*wireSAFEARRAY; -typedef wireSAFEARRAY *wirePSAFEARRAY; -typedef struct tagSAFEARRAY { - USHORT cDims; - USHORT fFeatures; - ULONG cbElements; - ULONG cLocks; - PVOID pvData; - SAFEARRAYBOUND rgsabound[1]; -}SAFEARRAY,*LPSAFEARRAY; -#if defined (__GNUC__) && !defined (NONAMELESSUNION) -__extension__ /* no named members */ -#endif -typedef struct tagVARIANT { - _ANONYMOUS_UNION union { - struct __tagVARIANT { - VARTYPE vt; - WORD wReserved1; - WORD wReserved2; - WORD wReserved3; - _ANONYMOUS_UNION union { - long lVal; - unsigned char bVal; - short iVal; - float fltVal; - double dblVal; - VARIANT_BOOL boolVal; - SCODE scode; - CY cyVal; - DATE date; - BSTR bstrVal; - IUnknown *punkVal; - LPDISPATCH pdispVal; - SAFEARRAY *parray; - unsigned char *pbVal; - short *piVal; - long *plVal; - float *pfltVal; - double *pdblVal; - VARIANT_BOOL *pboolVal; - _VARIANT_BOOL *pbool; - SCODE *pscode; - CY *pcyVal; - DATE *pdate; - BSTR *pbstrVal; - IUnknown **ppunkVal; - LPDISPATCH *ppdispVal; - SAFEARRAY **pparray; - struct tagVARIANT *pvarVal; - void *byref; - CHAR cVal; - USHORT uiVal; - ULONG ulVal; - INT intVal; - UINT uintVal; - DECIMAL *pdecVal; - CHAR *pcVal; - USHORT *puiVal; - ULONG *pulVal; - INT *pintVal; - UINT *puintVal; - _ANONYMOUS_STRUCT struct { - PVOID pvRecord; - struct IRecordInfo *pRecInfo; - } __VARIANT_NAME_4; - } __VARIANT_NAME_3; - } __VARIANT_NAME_2; - DECIMAL decVal; - } __VARIANT_NAME_1; -} VARIANT,*LPVARIANT; -typedef VARIANT VARIANTARG; -typedef VARIANT *LPVARIANTARG; -typedef struct _wireVARIANT { - DWORD clSize; - DWORD rpcReserved; - USHORT vt; - USHORT wReserved1; - USHORT wReserved2; - USHORT wReserved3; - _ANONYMOUS_UNION union { - LONG lVal; - BYTE bVal; - SHORT iVal; - FLOAT fltVal; - DOUBLE dblVal; - VARIANT_BOOL boolVal; - SCODE scode; - CY cyVal; - DATE date; - wireBSTR bstrVal; - IUnknown *punkVal; - LPDISPATCH pdispVal; - wirePSAFEARRAY parray; - wireBRECORD brecVal; - BYTE *pbVal; - SHORT *piVal; - LONG *plVal; - FLOAT *pfltVal; - DOUBLE *pdblVal; - VARIANT_BOOL *pboolVal; - SCODE *pscode; - CY *pcyVal; - DATE *pdate; - wireBSTR *pbstrVal; - IUnknown **ppunkVal; - LPDISPATCH *ppdispVal; - wirePSAFEARRAY *pparray; - struct _wireVARIANT *pvarVal; - CHAR cVal; - USHORT uiVal; - ULONG ulVal; - INT intVal; - UINT uintVal; - DECIMAL decVal; - DECIMAL *pdecVal; - CHAR *pcVal; - USHORT *puiVal; - ULONG *pulVal; - INT *pintVal; - UINT *puintVal; - } DUMMYUNIONNAME; -} *wireVARIANT; -typedef LONG DISPID; -typedef DISPID MEMBERID; -typedef DWORD HREFTYPE; -typedef enum tagTYPEKIND { - TKIND_ENUM,TKIND_RECORD,TKIND_MODULE,TKIND_INTERFACE,TKIND_DISPATCH, - TKIND_COCLASS,TKIND_ALIAS,TKIND_UNION,TKIND_MAX -}TYPEKIND; -typedef struct tagTYPEDESC { - _ANONYMOUS_UNION union { - struct tagTYPEDESC *lptdesc; - struct tagARRAYDESC *lpadesc; - HREFTYPE hreftype; - } DUMMYUNIONNAME; - VARTYPE vt; -}TYPEDESC; -typedef struct tagARRAYDESC { - TYPEDESC tdescElem; - USHORT cDims; - SAFEARRAYBOUND rgbounds[1]; -}ARRAYDESC; -typedef struct tagPARAMDESCEX { - ULONG cBytes; - VARIANTARG varDefaultValue; -}PARAMDESCEX,*LPPARAMDESCEX; -typedef struct tagPARAMDESC { - LPPARAMDESCEX pparamdescex; - USHORT wParamFlags; -}PARAMDESC,*LPPARAMDESC; -typedef struct tagIDLDESC { - ULONG dwReserved; - USHORT wIDLFlags; -}IDLDESC,*LPIDLDESC; -typedef struct tagELEMDESC { - TYPEDESC tdesc; - _ANONYMOUS_UNION union { - IDLDESC idldesc; - PARAMDESC paramdesc; - } DUMMYUNIONNAME; -} ELEMDESC,*LPELEMDESC; -typedef struct tagTYPEATTR { - GUID guid; - LCID lcid; - DWORD dwReserved; - MEMBERID memidConstructor; - MEMBERID memidDestructor; - LPOLESTR lpstrSchema; - ULONG cbSizeInstance; - TYPEKIND typekind; - WORD cFuncs; - WORD cVars; - WORD cImplTypes; - WORD cbSizeVft; - WORD cbAlignment; - WORD wTypeFlags; - WORD wMajorVerNum; - WORD wMinorVerNum; - TYPEDESC tdescAlias; - IDLDESC idldescType; -}TYPEATTR,*LPTYPEATTR; -typedef struct tagDISPPARAMS { - VARIANTARG *rgvarg; - DISPID *rgdispidNamedArgs; - UINT cArgs; - UINT cNamedArgs; -}DISPPARAMS; -typedef struct tagEXCEPINFO { - WORD wCode; - WORD wReserved; - BSTR bstrSource; - BSTR bstrDescription; - BSTR bstrHelpFile; - DWORD dwHelpContext; - PVOID pvReserved; - HRESULT(__stdcall * pfnDeferredFillIn)(struct tagEXCEPINFO*); - SCODE scode; -} EXCEPINFO,*LPEXCEPINFO; -typedef enum tagCALLCONV { - CC_FASTCALL,CC_CDECL,CC_MSCPASCAL,CC_PASCAL=CC_MSCPASCAL, - CC_MACPASCAL,CC_STDCALL,CC_FPFASTCALL,CC_SYSCALL,CC_MPWCDECL, - CC_MPWPASCAL,CC_MAX=CC_MPWPASCAL -}CALLCONV; -typedef enum tagFUNCKIND { - FUNC_VIRTUAL,FUNC_PUREVIRTUAL,FUNC_NONVIRTUAL, - FUNC_STATIC,FUNC_DISPATCH -}FUNCKIND; -typedef enum tagINVOKEKIND { - INVOKE_FUNC=1,INVOKE_PROPERTYGET,INVOKE_PROPERTYPUT=4, - INVOKE_PROPERTYPUTREF=8 -}INVOKEKIND; -typedef struct tagFUNCDESC { - MEMBERID memid; - SCODE *lprgscode; - ELEMDESC *lprgelemdescParam; - FUNCKIND funckind; - INVOKEKIND invkind; - CALLCONV callconv; - SHORT cParams; - SHORT cParamsOpt; - SHORT oVft; - SHORT cScodes; - ELEMDESC elemdescFunc; - WORD wFuncFlags; -}FUNCDESC,*LPFUNCDESC; -typedef enum tagVARKIND { - VAR_PERINSTANCE,VAR_STATIC,VAR_CONST,VAR_DISPATCH -} VARKIND; -typedef struct tagVARDESC { - MEMBERID memid; - LPOLESTR lpstrSchema; - _ANONYMOUS_UNION union { - ULONG oInst; - VARIANT *lpvarValue; - } DUMMYUNIONNAME; - ELEMDESC elemdescVar; - WORD wVarFlags; - VARKIND varkind; -} VARDESC,*LPVARDESC; -typedef enum tagTYPEFLAGS { - TYPEFLAG_FAPPOBJECT=1,TYPEFLAG_FCANCREATE=2,TYPEFLAG_FLICENSED=4, - TYPEFLAG_FPREDECLID=8,TYPEFLAG_FHIDDEN=16,TYPEFLAG_FCONTROL=32, - TYPEFLAG_FDUAL=64,TYPEFLAG_FNONEXTENSIBLE=128, - TYPEFLAG_FOLEAUTOMATION=256,TYPEFLAG_FRESTRICTED=512, - TYPEFLAG_FAGGREGATABLE=1024,TYPEFLAG_FREPLACEABLE=2048, - TYPEFLAG_FDISPATCHABLE=4096,TYPEFLAG_FREVERSEBIND=8192 -} TYPEFLAGS; -typedef enum tagFUNCFLAGS { - FUNCFLAG_FRESTRICTED=1,FUNCFLAG_FSOURCE=2,FUNCFLAG_FBINDABLE=4, - FUNCFLAG_FREQUESTEDIT=8,FUNCFLAG_FDISPLAYBIND=16,FUNCFLAG_FDEFAULTBIND=32, - FUNCFLAG_FHIDDEN=64,FUNCFLAG_FUSESGETLASTERROR=128,FUNCFLAG_FDEFAULTCOLLELEM=256, - FUNCFLAG_FUIDEFAULT=512,FUNCFLAG_FNONBROWSABLE=1024,FUNCFLAG_FREPLACEABLE=2048, - FUNCFLAG_FIMMEDIATEBIND=4096 -} FUNCFLAGS; -typedef enum tagVARFLAGS { - VARFLAG_FREADONLY=1,VARFLAG_FSOURCE=2,VARFLAG_FBINDABLE=4,VARFLAG_FREQUESTEDIT=8, - VARFLAG_FDISPLAYBIND=16,VARFLAG_FDEFAULTBIND=32,VARFLAG_FHIDDEN=64,VARFLAG_FRESTRICTED=128, - VARFLAG_FDEFAULTCOLLELEM=256,VARFLAG_FUIDEFAULT=512,VARFLAG_FNONBROWSABLE=1024, - VARFLAG_FREPLACEABLE=2048,VARFLAG_FIMMEDIATEBIND=4096 -} VARFLAGS; -typedef struct tagCLEANLOCALSTORAGE { - IUnknown *pInterface; - PVOID pStorage; - DWORD flags; -} CLEANLOCALSTORAGE; -typedef struct tagCUSTDATAITEM { - GUID guid; - VARIANTARG varValue; -} CUSTDATAITEM,*LPCUSTDATAITEM; -typedef struct tagCUSTDATA { - DWORD cCustData; - LPCUSTDATAITEM prgCustData; -} CUSTDATA,*LPCUSTDATA; - -typedef enum tagDESCKIND { - DESCKIND_NONE=0,DESCKIND_FUNCDESC=DESCKIND_NONE+1, - DESCKIND_VARDESC=DESCKIND_FUNCDESC+1,DESCKIND_TYPECOMP=DESCKIND_VARDESC+1, - DESCKIND_IMPLICITAPPOBJ=DESCKIND_TYPECOMP+1, - DESCKIND_MAX=DESCKIND_IMPLICITAPPOBJ+1 -} DESCKIND; - -typedef union tagBINDPTR { - LPFUNCDESC lpfuncdesc; - LPVARDESC lpvardesc; - LPTYPECOMP lptcomp; -} BINDPTR,*LPBINDPTR; - -#undef INTERFACE -#define INTERFACE IDispatch -DECLARE_INTERFACE_(IDispatch,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE; - STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE; - STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE; - STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE; -}; - -#undef INTERFACE -#define INTERFACE IEnumVARIANT -DECLARE_INTERFACE_(IEnumVARIANT,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Next)(THIS_ ULONG,VARIANT*,ULONG*) PURE; - STDMETHOD(Skip)(THIS_ ULONG) PURE; - STDMETHOD(Reset)(THIS) PURE; - STDMETHOD(Clone)(THIS_ IEnumVARIANT**) PURE; -}; - -#undef INTERFACE -#define INTERFACE ITypeComp -DECLARE_INTERFACE_(ITypeComp,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Bind)(THIS_ LPOLESTR,ULONG,WORD,LPTYPEINFO*,DESCKIND*,LPBINDPTR) PURE; - STDMETHOD(BindType)(THIS_ LPOLESTR,ULONG,LPTYPEINFO*,LPTYPECOMP*) PURE; -}; - -#undef INTERFACE -#define INTERFACE ITypeInfo -DECLARE_INTERFACE_(ITypeInfo,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetTypeAttr)(THIS_ LPTYPEATTR*) PURE; - STDMETHOD(GetTypeComp)(THIS_ LPTYPECOMP*) PURE; - STDMETHOD(GetFuncDesc)(THIS_ UINT,LPFUNCDESC*) PURE; - STDMETHOD(GetVarDesc)(THIS_ UINT,LPVARDESC*) PURE; - STDMETHOD(GetNames)(THIS_ MEMBERID,BSTR*,UINT,UINT*) PURE; - STDMETHOD(GetRefTypeOfImplType)(THIS_ UINT,HREFTYPE*) PURE; - STDMETHOD(GetImplTypeFlags)(THIS_ UINT,INT*) PURE; - STDMETHOD(GetIDsOfNames)(THIS_ LPOLESTR*,UINT,MEMBERID*) PURE; - STDMETHOD(Invoke)(THIS_ PVOID,MEMBERID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE; - STDMETHOD(GetDocumentation)(THIS_ MEMBERID,BSTR*,BSTR*,DWORD*,BSTR*) PURE; - STDMETHOD(GetDllEntry)(THIS_ MEMBERID,INVOKEKIND,BSTR*,BSTR*,WORD*) PURE; - STDMETHOD(GetRefTypeInfo)(THIS_ HREFTYPE,LPTYPEINFO*) PURE; - STDMETHOD(AddressOfMember)(THIS_ MEMBERID,INVOKEKIND,PVOID*) PURE; - STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE; - STDMETHOD(GetMops)(THIS_ MEMBERID,BSTR*) PURE; - STDMETHOD(GetContainingTypeLib)(THIS_ LPTYPELIB*,UINT*) PURE; - STDMETHOD_(void,ReleaseTypeAttr)(THIS_ LPTYPEATTR) PURE; - STDMETHOD_(void,ReleaseFuncDesc)(THIS_ LPFUNCDESC) PURE; - STDMETHOD_(void,ReleaseVarDesc)(THIS_ LPVARDESC) PURE; -}; - -#undef INTERFACE -#define INTERFACE ITypeLib -DECLARE_INTERFACE_(ITypeLib,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(UINT,GetTypeInfoCount)(THIS) PURE; - STDMETHOD(GetTypeInfo)(THIS_ UINT,ITypeInfo**) PURE; - STDMETHOD(GetTypeInfoType)(THIS_ UINT,TYPEKIND*) PURE; - STDMETHOD(GetTypeInfoOfGuid)(THIS_ REFGUID,ITypeInfo**) PURE; - STDMETHOD(GetLibAttr)(THIS_ TLIBATTR**) PURE; - STDMETHOD(GetTypeComp)(THIS_ ITypeComp*) PURE; - STDMETHOD(GetDocumentation)(THIS_ INT,BSTR*,BSTR*,DWORD*,BSTR*) PURE; - STDMETHOD(IsName)(THIS_ LPOLESTR,ULONG,BOOL*) PURE; - STDMETHOD(FindName)(THIS_ LPOLESTR,ULONG,ITypeInfo**,MEMBERID*,USHORT*) PURE; - STDMETHOD_(void,ReleaseTLibAttr)(THIS_ TLIBATTR*) PURE; -}; - -EXTERN_C const IID IID_IErrorInfo; -#undef INTERFACE -#define INTERFACE IErrorInfo -DECLARE_INTERFACE_(IErrorInfo, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetGUID)(THIS_ GUID*) PURE; - STDMETHOD(GetSource)(THIS_ BSTR*) PURE; - STDMETHOD(GetDescription)(THIS_ BSTR*) PURE; - STDMETHOD(GetHelpFile)(THIS_ BSTR*) PURE; - STDMETHOD(GetHelpContext)(THIS_ DWORD*) PURE; -}; - -EXTERN_C const IID IID_ICreateErrorInfo; -#undef INTERFACE -#define INTERFACE ICreateErrorInfo -DECLARE_INTERFACE_(ICreateErrorInfo, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*)PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(SetGUID)(THIS_ REFGUID) PURE; - STDMETHOD(SetSource)(THIS_ LPOLESTR) PURE; - STDMETHOD(SetDescription)(THIS_ LPOLESTR) PURE; - STDMETHOD(SetHelpFile)(THIS_ LPOLESTR) PURE; - STDMETHOD(SetHelpContext)(THIS_ DWORD) PURE; -}; - -EXTERN_C const IID IID_ISupportErrorInfo; -#undef INTERFACE -#define INTERFACE ISupportErrorInfo -DECLARE_INTERFACE_(ISupportErrorInfo, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(InterfaceSupportsErrorInfo)(THIS_ REFIID) PURE; -}; - -EXTERN_C const IID IID_IRecordInfo; -#undef INTERFACE -#define INTERFACE IRecordInfo -DECLARE_INTERFACE_(IRecordInfo, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(RecordInit)(THIS_ PVOID) PURE; - STDMETHOD(RecordClear)(THIS_ PVOID) PURE; - STDMETHOD(RecordCopy)(THIS_ PVOID, PVOID) PURE; - STDMETHOD(GetGuid)(THIS_ GUID*) PURE; - STDMETHOD(GetName)(THIS_ BSTR*) PURE; - STDMETHOD(GetSize)(THIS_ ULONG*) PURE; - STDMETHOD(GetTypeInfo)(THIS_ ITypeInfo**) PURE; - STDMETHOD(GetField)(THIS_ PVOID,LPCOLESTR,VARIANT*) PURE; - STDMETHOD(GetFieldNoCopy)(THIS_ PVOID,LPCOLESTR,VARIANT*,PVOID*) PURE; - STDMETHOD(PutField )(THIS_ ULONG,PVOID,LPCOLESTR, VARIANT*) PURE; - STDMETHOD(PutFieldNoCopy)(THIS_ ULONG,PVOID,LPCOLESTR,VARIANT*) PURE; - STDMETHOD(GetFieldNames)(THIS_ ULONG*,BSTR*) PURE; - STDMETHOD_(BOOL,IsMatchingType)(THIS_ THIS) PURE; - STDMETHOD_(PVOID,RecordCreate)(THIS) PURE; - STDMETHOD(RecordCreateCopy)(THIS_ PVOID,PVOID*) PURE; - STDMETHOD(RecordDestroy )(THIS_ PVOID) PURE; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/objbase.h b/winsup/w32api/include/objbase.h deleted file mode 100644 index b3a5cc968..000000000 --- a/winsup/w32api/include/objbase.h +++ /dev/null @@ -1,174 +0,0 @@ -#ifndef _OBJBASE_H -#define _OBJBASE_H -#include -#include -#include -#pragma pack(push,8) -#include - -#define WINOLEAPI STDAPI -#define WINOLEAPI_(type) STDAPI_(type) -#define FARSTRUCT -#define HUGEP -#define LISet32(li,v) ((li).HighPart=(v)<0?-1:0,(li).LowPart=(v)) -#define ULISet32(li,v) ((li).HighPart=0,(li).LowPart=(v)) -#define CLSCTX_ALL (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER|CLSCTX_LOCAL_SERVER) -#define CLSCTX_INPROC (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER) -#define CLSCTX_SERVER (CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER) -#define MARSHALINTERFACE_MIN 500 -#define CWCSTORAGENAME 32 -#define STGM_DIRECT 0 -#define STGM_TRANSACTED 0x10000L -#define STGM_SIMPLE 0x8000000L -#define STGM_READ 0 -#define STGM_WRITE 1 -#define STGM_READWRITE 2 -#define STGM_SHARE_DENY_NONE 0x40 -#define STGM_SHARE_DENY_READ 0x30 -#define STGM_SHARE_DENY_WRITE 0x20 -#define STGM_SHARE_EXCLUSIVE 0x10 -#define STGM_PRIORITY 0x40000L -#define STGM_DELETEONRELEASE 0x4000000 -#define STGM_NOSCRATCH 0x100000 -#define STGM_CREATE 0x1000 -#define STGM_CONVERT 0x20000 -#define STGM_FAILIFTHERE 0 -#define CWCSTORAGENAME 32 -#define ASYNC_MODE_COMPATIBILITY 1 -#define ASYNC_MODE_DEFAULT 0 -#define STGTY_REPEAT 256 -#define STG_TOEND 0xFFFFFFFF -#define STG_LAYOUT_SEQUENTIAL 0 -#define STG_LAYOUT_INTERLEAVED 1 -#define COM_RIGHTS_EXECUTE 1 -#define COM_RIGHTS_SAFE_FOR_SCRIPTING 2 -typedef enum tagREGCLS { - REGCLS_SINGLEUSE = 0, - REGCLS_MULTIPLEUSE = 1, - REGCLS_MULTI_SEPARATE = 2 -} REGCLS; -#include -#include -#include - -#ifdef __cplusplus -inline BOOL IsEqualGUID(REFGUID rguid1, REFGUID rguid2) - { return !memcmp(&rguid1, &rguid2, sizeof(GUID)); } -inline BOOL operator==(const GUID& guidOne, const GUID& guidOther) - { return !memcmp(&guidOne,&guidOther,sizeof(GUID)); } -inline BOOL operator!=(const GUID& g1, const GUID& g2) - { return !(g1 == g2); } -#else -#define IsEqualGUID(rguid1, rguid2) (!memcmp(rguid1, rguid2, sizeof(GUID))) -#endif -#define IsEqualIID(id1,id2) IsEqualGUID(id1,id2) -#define IsEqualCLSID(id1,id2) IsEqualGUID(id1,id2) -#include - -typedef enum tagCOINIT { - COINIT_APARTMENTTHREADED = 0x2, - COINIT_MULTITHREADED = 0x0, - COINIT_DISABLE_OLE1DDE = 0x4, - COINIT_SPEED_OVER_MEMORY = 0x8 -} COINIT; -typedef enum tagSTDMSHLFLAGS { - SMEXF_SERVER = 0x01, - SMEXF_HANDLER = 0x02 -} STDMSHLFLAGS; - -WINOLEAPI_(DWORD) CoBuildVersion(void); -WINOLEAPI CoInitialize(PVOID); -WINOLEAPI CoInitializeEx(LPVOID,DWORD); -WINOLEAPI_(void) CoUninitialize(void); -WINOLEAPI CoGetMalloc(DWORD,LPMALLOC*); -WINOLEAPI_(DWORD) CoGetCurrentProcess(void); -WINOLEAPI CoRegisterMallocSpy(LPMALLOCSPY); -WINOLEAPI CoRevokeMallocSpy(void); -WINOLEAPI CoCreateStandardMalloc(DWORD,IMalloc**); -#if DBG == 1 -WINOLEAPI_(ULONG) DebugCoGetRpcFault(void); -WINOLEAPI_(void) DebugCoSetRpcFault(ULONG); -#endif -WINOLEAPI CoGetClassObject(REFCLSID,DWORD,COSERVERINFO*,REFIID,PVOID*); -WINOLEAPI CoRegisterClassObject(REFCLSID,LPUNKNOWN,DWORD,DWORD,PDWORD); -WINOLEAPI CoRevokeClassObject(DWORD); -WINOLEAPI CoGetMarshalSizeMax(ULONG*,REFIID,LPUNKNOWN,DWORD,PVOID,DWORD); -WINOLEAPI CoMarshalInterface(LPSTREAM,REFIID,LPUNKNOWN,DWORD,PVOID,DWORD); -WINOLEAPI CoUnmarshalInterface(LPSTREAM,REFIID,PVOID*); -WINOLEAPI CoMarshalHresult(LPSTREAM,HRESULT); -WINOLEAPI CoUnmarshalHresult(LPSTREAM,HRESULT*); -WINOLEAPI CoReleaseMarshalData(LPSTREAM); -WINOLEAPI CoDisconnectObject(LPUNKNOWN,DWORD); -WINOLEAPI CoLockObjectExternal(LPUNKNOWN,BOOL,BOOL); -WINOLEAPI CoGetStandardMarshal(REFIID,LPUNKNOWN,DWORD,PVOID,DWORD,LPMARSHAL*); -WINOLEAPI CoGetStdMarshalEx(LPUNKNOWN,DWORD,LPUNKNOWN*); -WINOLEAPI_(BOOL) CoIsHandlerConnected(LPUNKNOWN); -WINOLEAPI_(BOOL) CoHasStrongExternalConnections(LPUNKNOWN); -WINOLEAPI CoMarshalInterThreadInterfaceInStream(REFIID,LPUNKNOWN,LPSTREAM*); -WINOLEAPI CoGetInterfaceAndReleaseStream(LPSTREAM,REFIID,PVOID*); -WINOLEAPI CoCreateFreeThreadedMarshaler(LPUNKNOWN,LPUNKNOWN*); -WINOLEAPI_(HINSTANCE) CoLoadLibrary(LPOLESTR,BOOL); -WINOLEAPI_(void) CoFreeLibrary(HINSTANCE); -WINOLEAPI_(void) CoFreeAllLibraries(void); -WINOLEAPI_(void) CoFreeUnusedLibraries(void); -WINOLEAPI CoCreateInstance(REFCLSID,LPUNKNOWN,DWORD,REFIID,PVOID*); -WINOLEAPI CoCreateInstanceEx(REFCLSID,IUnknown*,DWORD,COSERVERINFO*,DWORD,MULTI_QI*); -WINOLEAPI StringFromCLSID(REFCLSID,LPOLESTR*); -WINOLEAPI CLSIDFromString(LPOLESTR,LPCLSID); -WINOLEAPI StringFromIID(REFIID,LPOLESTR*); -WINOLEAPI IIDFromString(LPOLESTR,LPIID); -WINOLEAPI_(BOOL) CoIsOle1Class(REFCLSID); -WINOLEAPI ProgIDFromCLSID(REFCLSID,LPOLESTR*); -WINOLEAPI CLSIDFromProgID(LPCOLESTR,LPCLSID); -WINOLEAPI_(int) StringFromGUID2(REFGUID,LPOLESTR,int); -WINOLEAPI CoCreateGuid(GUID*); -WINOLEAPI_(BOOL) CoFileTimeToDosDateTime(FILETIME*,LPWORD,LPWORD); -WINOLEAPI_(BOOL) CoDosDateTimeToFileTime(WORD,WORD,FILETIME*); -WINOLEAPI CoFileTimeNow(FILETIME*); -WINOLEAPI CoRegisterMessageFilter(LPMESSAGEFILTER,LPMESSAGEFILTER*); -WINOLEAPI CoGetTreatAsClass(REFCLSID,LPCLSID); -WINOLEAPI CoTreatAsClass(REFCLSID,REFCLSID); -typedef HRESULT (STDAPICALLTYPE *LPFNGETCLASSOBJECT)(REFCLSID,REFIID,PVOID*); -typedef HRESULT (STDAPICALLTYPE *LPFNCANUNLOADNOW)(void); -STDAPI DllGetClassObject(REFCLSID,REFIID,PVOID*); -STDAPI DllCanUnloadNow(void); -WINOLEAPI_(PVOID) CoTaskMemAlloc(ULONG); -WINOLEAPI_(PVOID) CoTaskMemRealloc(PVOID,ULONG); -WINOLEAPI_(void) CoTaskMemFree(PVOID); -WINOLEAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER*); -WINOLEAPI CreateDataCache(LPUNKNOWN,REFCLSID,REFIID,PVOID*); -WINOLEAPI StgCreateDocfile(const OLECHAR*,DWORD,DWORD,IStorage**); -WINOLEAPI StgCreateDocfileOnILockBytes(ILockBytes*,DWORD,DWORD,IStorage**); -WINOLEAPI StgOpenStorage(const OLECHAR*,IStorage*,DWORD,SNB,DWORD,IStorage**); -WINOLEAPI StgOpenStorageOnILockBytes(ILockBytes*,IStorage*,DWORD,SNB,DWORD,IStorage**); -WINOLEAPI StgIsStorageFile(const OLECHAR*); -WINOLEAPI StgIsStorageILockBytes(ILockBytes*); -WINOLEAPI StgSetTimes(OLECHAR const*,FILETIME const*,FILETIME const*,FILETIME const*); -WINOLEAPI BindMoniker(LPMONIKER,DWORD,REFIID,PVOID*); -WINOLEAPI CoGetObject(LPCWSTR,BIND_OPTS*,REFIID,void**); -WINOLEAPI MkParseDisplayName(LPBC,LPCOLESTR,ULONG*,LPMONIKER*); -WINOLEAPI MonikerRelativePathTo(LPMONIKER,LPMONIKER,LPMONIKER*,BOOL); -WINOLEAPI MonikerCommonPrefixWith(LPMONIKER,LPMONIKER,LPMONIKER*); -WINOLEAPI CreateBindCtx(DWORD,LPBC*); -WINOLEAPI CreateGenericComposite(LPMONIKER,LPMONIKER,LPMONIKER*); -WINOLEAPI GetClassFile (LPCOLESTR,CLSID*); -WINOLEAPI CreateFileMoniker(LPCOLESTR,LPMONIKER*); -WINOLEAPI CreateItemMoniker(LPCOLESTR,LPCOLESTR,LPMONIKER*); -WINOLEAPI CreateAntiMoniker(LPMONIKER*); -WINOLEAPI CreatePointerMoniker(LPUNKNOWN,LPMONIKER*); -WINOLEAPI GetRunningObjectTable(DWORD,LPRUNNINGOBJECTTABLE*); -WINOLEAPI CoInitializeSecurity(PSECURITY_DESCRIPTOR,LONG,SOLE_AUTHENTICATION_SERVICE*, void*,DWORD,DWORD,void*,DWORD,void*); -WINOLEAPI CoGetCallContext(REFIID,void**); -WINOLEAPI CoQueryProxyBlanket(IUnknown*, DWORD*,DWORD*,OLECHAR**,DWORD*,DWORD*,RPC_AUTH_IDENTITY_HANDLE*,DWORD*); -WINOLEAPI CoSetProxyBlanket(IUnknown*,DWORD,DWORD,OLECHAR*,DWORD,DWORD,RPC_AUTH_IDENTITY_HANDLE, DWORD); -WINOLEAPI CoCopyProxy(IUnknown*,IUnknown**); -WINOLEAPI CoQueryClientBlanket(DWORD*,DWORD*,OLECHAR**, DWORD*,DWORD*,RPC_AUTHZ_HANDLE*,DWORD*); -WINOLEAPI CoImpersonateClient(void); -WINOLEAPI CoRevertToSelf(void); -WINOLEAPI CoQueryAuthenticationServices(DWORD*, SOLE_AUTHENTICATION_SERVICE**); -WINOLEAPI CoSwitchCallContext(IUnknown*,IUnknown**); -WINOLEAPI CoGetInstanceFromFile(COSERVERINFO*, CLSID*,IUnknown*,DWORD,DWORD,OLECHAR*,DWORD,MULTI_QI*); -WINOLEAPI CoGetInstanceFromIStorage(COSERVERINFO*,CLSID*, IUnknown*,DWORD,struct IStorage*, DWORD,MULTI_QI*); - -#pragma pack(pop) -#endif diff --git a/winsup/w32api/include/objfwd.h b/winsup/w32api/include/objfwd.h deleted file mode 100644 index ce567b6d9..000000000 --- a/winsup/w32api/include/objfwd.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef _OBJFWD_H -#define _OBJFWD_H -#ifdef __cplusplus -extern "C" { -#endif -typedef interface IMoniker *LPMONIKER; -typedef interface IStream *LPSTREAM; -typedef interface IMarshal *LPMARSHAL; -typedef interface IMalloc *LPMALLOC; -typedef interface IMallocSpy *LPMALLOCSPY; -typedef interface IMessageFilter *LPMESSAGEFILTER; -typedef interface IPersist *LPPERSIST; -typedef interface IPersistStream *LPPERSISTSTREAM; -typedef interface IRunningObjectTable *LPRUNNINGOBJECTTABLE; -typedef interface IBindCtx *LPBINDCTX,*LPBC; -typedef interface IAdviseSink *LPADVISESINK; -typedef interface IAdviseSink2 *LPADVISESINK2; -typedef interface IDataObject *LPDATAOBJECT; -typedef interface IDataAdviseHolder *LPDATAADVISEHOLDER; -typedef interface IEnumMoniker *LPENUMMONIKER; -typedef interface IEnumFORMATETC *LPENUMFORMATETC; -typedef interface IEnumSTATDATA *LPENUMSTATDATA; -typedef interface IEnumSTATSTG *LPENUMSTATSTG; -typedef interface IEnumSTATPROPSTG LPENUMSTATPROPSTG; -typedef interface IEnumString *LPENUMSTRING; -typedef interface IEnumUnknown *LPENUMUNKNOWN; -typedef interface IStorage *LPSTORAGE; -typedef interface IPersistStorage *LPPERSISTSTORAGE; -typedef interface ILockBytes *LPLOCKBYTES; -typedef interface IStdMarshalInfo *LPSTDMARSHALINFO; -typedef interface IExternalConnection *LPEXTERNALCONNECTION; -typedef interface IRunnableObject *LPRUNNABLEOBJECT; -typedef interface IROTData *LPROTDATA; -typedef interface IPersistFile *LPPERSISTFILE; -typedef interface IRootStorage *LPROOTSTORAGE; -typedef interface IRpcChannelBuffer *LPRPCCHANNELBUFFER; -typedef interface IRpcProxyBuffer *LPRPCPROXYBUFFER; -typedef interface IRpcStubBuffer *LPRPCSTUBBUFFER; -typedef interface IPropertyStorage *LPPROPERTYSTORAGE; -typedef interface IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG; -typedef interface IPropertySetStorage *LPPROPERTYSETSTORAGE; -typedef interface IClientSecurity *LPCLIENTSECURITY; -typedef interface IServerSecurity *LPSERVERSECURITY; -typedef interface IClassActivator *LPCLASSACTIVATOR; -typedef interface IFillLockBytes *LPFILLLOCKBYTES; -typedef interface IProgressNotify *LPPROGRESSNOTIFY; -typedef interface ILayoutStorage *LPLAYOUTSTORAGE; -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/objidl.h b/winsup/w32api/include/objidl.h deleted file mode 100644 index 26160b7d7..000000000 --- a/winsup/w32api/include/objidl.h +++ /dev/null @@ -1,1694 +0,0 @@ -#ifndef _OBJIDL_H -#define _OBJIDL_H - -#include - -typedef struct tagSTATSTG { - LPOLESTR pwcsName; - DWORD type; - ULARGE_INTEGER cbSize; - FILETIME mtime; - FILETIME ctime; - FILETIME atime; - DWORD grfMode; - DWORD grfLocksSupported; - CLSID clsid; - DWORD grfStateBits; - DWORD reserved; -} STATSTG; -typedef enum tagSTGTY { - STGTY_STORAGE=1, - STGTY_STREAM, - STGTY_LOCKBYTES, - STGTY_PROPERTY -} STGTY; -typedef enum tagSTREAM_SEEK { - STREAM_SEEK_SET, - STREAM_SEEK_CUR, - STREAM_SEEK_END -} STREAM_SEEK; -typedef struct tagINTERFACEINFO { - LPUNKNOWN pUnk; - IID iid; - WORD wMethod; -} INTERFACEINFO,*LPINTERFACEINFO; -typedef enum tagCALLTYPE { - CALLTYPE_TOPLEVEL=1, - CALLTYPE_NESTED, - CALLTYPE_ASYNC, - CALLTYPE_TOPLEVEL_CALLPENDING, - CALLTYPE_ASYNC_CALLPENDING -} CALLTYPE; -typedef enum tagPENDINGTYPE { - PENDINGTYPE_TOPLEVEL=1, - PENDINGTYPE_NESTED -} PENDINGTYPE; -typedef enum tagPENDINGMSG { - PENDINGMSG_CANCELCALL=0, - PENDINGMSG_WAITNOPROCESS, - PENDINGMSG_WAITDEFPROCESS -} PENDINGMSG; -typedef OLECHAR **SNB; -typedef enum tagDATADIR { - DATADIR_GET=1, - DATADIR_SET -} DATADIR; -typedef WORD CLIPFORMAT,*LPCLIPFORMAT; -typedef struct tagDVTARGETDEVICE { - DWORD tdSize; - WORD tdDriverNameOffset; - WORD tdDeviceNameOffset; - WORD tdPortNameOffset; - WORD tdExtDevmodeOffset; - BYTE tdData[1]; -} DVTARGETDEVICE; -typedef struct tagFORMATETC { - CLIPFORMAT cfFormat; - DVTARGETDEVICE*ptd; - DWORD dwAspect; - LONG lindex; - DWORD tymed; -} FORMATETC,*LPFORMATETC; -typedef struct tagRemSTGMEDIUM { - DWORD tymed; - DWORD dwHandleType; - ULONG pData; - unsigned long pUnkForRelease; - unsigned long cbData; - BYTE data[1]; -} RemSTGMEDIUM; -typedef struct tagHLITEM { - ULONG uHLID; - LPWSTR pwzFriendlyName; -} HLITEM; -typedef struct tagSTATDATA { - FORMATETC formatetc; - DWORD grfAdvf; - struct IAdviseSink *pAdvSink; - DWORD dwConnection; -} STATDATA; -typedef struct tagSTATPROPSETSTG { - FMTID fmtid; - CLSID clsid; - DWORD grfFlags; - FILETIME mtime; - FILETIME ctime; - FILETIME atime; -} STATPROPSETSTG; -typedef enum tagEXTCONN { - EXTCONN_STRONG=1, - EXTCONN_WEAK=2, - EXTCONN_CALLABLE=4 -} EXTCONN; -typedef struct tagMULTI_QI { - const IID *pIID; - IUnknown *pItf; - HRESULT hr; -} MULTI_QI; -typedef struct _AUTH_IDENTITY { - USHORT *User; - ULONG UserLength; - USHORT *Domain; - ULONG DomainLength; - USHORT *Password; - ULONG PasswordLength; - ULONG Flags; -} AUTH_IDENTITY; -typedef struct _COAUTHINFO{ - DWORD dwAuthnSvc; - DWORD dwAuthzSvc; - LPWSTR pwszServerPrincName; - DWORD dwAuthnLevel; - DWORD dwImpersonationLevel; - AUTH_IDENTITY *pAuthIdentityData; - DWORD dwCapabilities; -} COAUTHINFO; -typedef struct _COSERVERINFO { - DWORD dwReserved1; - LPWSTR pwszName; - COAUTHINFO *pAuthInfo; - DWORD dwReserved2; -} COSERVERINFO; -typedef struct tagBIND_OPTS { - DWORD cbStruct; - DWORD grfFlags; - DWORD grfMode; - DWORD dwTickCountDeadline; -} BIND_OPTS,*LPBIND_OPTS; -typedef struct tagBIND_OPTS2 { - DWORD cbStruct; - DWORD grfFlags; - DWORD grfMode; - DWORD dwTickCountDeadline; - DWORD dwTrackFlags; - DWORD dwClassContext; - LCID locale; - COSERVERINFO *pServerInfo; -} BIND_OPTS2,*LPBIND_OPTS2; -typedef enum tagBIND_FLAGS { - BIND_MAYBOTHERUSER=1, - BIND_JUSTTESTEXISTENCE -} BIND_FLAGS; -typedef struct tagSTGMEDIUM { - DWORD tymed; - _ANONYMOUS_UNION union { - HBITMAP hBitmap; - PVOID hMetaFilePict; - HENHMETAFILE hEnhMetaFile; - HGLOBAL hGlobal; - LPCSTR lpszFileName; - LPSTREAM pstm; - LPSTORAGE pstg; - } DUMMYUNIONNAME; - LPUNKNOWN pUnkForRelease; -} STGMEDIUM,*LPSTGMEDIUM; -typedef enum tagLOCKTYPE { - LOCK_WRITE=1, - LOCK_EXCLUSIVE=2, - LOCK_ONLYONCE=4 -} LOCKTYPE; -typedef unsigned long RPCOLEDATAREP; -typedef struct tagRPCOLEMESSAGE { - PVOID reserved1; - RPCOLEDATAREP dataRepresentation; - PVOID Buffer; - ULONG cbBuffer; - ULONG iMethod; - PVOID reserved2[5]; - ULONG rpcFlags; -} RPCOLEMESSAGE; -typedef enum tagMKSYS { - MKSYS_NONE, - MKSYS_GENERICCOMPOSITE, - MKSYS_FILEMONIKER, - MKSYS_ANTIMONIKER, - MKSYS_ITEMMONIKER, - MKSYS_POINTERMONIKER -} MKSYS; -typedef enum tagMKREDUCE { - MKRREDUCE_ALL, - MKRREDUCE_ONE=196608, - MKRREDUCE_TOUSER=131072, - MKRREDUCE_THROUGHUSER=65536 -} MKRREDUCE; -typedef struct tagRemSNB { - unsigned long ulCntStr; - unsigned long ulCntChar; - OLECHAR rgString[1]; -} RemSNB; -typedef enum tagADVF { - ADVF_NODATA=1,ADVF_PRIMEFIRST=2,ADVF_ONLYONCE=4,ADVF_DATAONSTOP=64, - ADVFCACHE_NOHANDLER=8,ADVFCACHE_FORCEBUILTIN=16,ADVFCACHE_ONSAVE=32 -} ADVF; -typedef enum tagTYMED { - TYMED_HGLOBAL=1,TYMED_FILE=2,TYMED_ISTREAM=4,TYMED_ISTORAGE=8, - TYMED_GDI=16,TYMED_MFPICT=32,TYMED_ENHMF=64,TYMED_NULL=0 -} TYMED; -typedef enum tagSERVERCALL { - SERVERCALL_ISHANDLED,SERVERCALL_REJECTED,SERVERCALL_RETRYLATER -} SERVERCALL; -typedef struct tagCAUB { - ULONG cElems; - unsigned char *pElems; -}CAUB; -typedef struct tagCAI { - ULONG cElems; - short *pElems; -}CAI; -typedef struct tagCAUI { - ULONG cElems; - USHORT *pElems; -}CAUI; -typedef struct tagCAL { - ULONG cElems; - long *pElems; -}CAL; -typedef struct tagCAUL { - ULONG cElems; - ULONG *pElems; -}CAUL; -typedef struct tagCAFLT { - ULONG cElems; - float *pElems; -}CAFLT; -typedef struct tagCADBL { - ULONG cElems; - double *pElems; -}CADBL; -typedef struct tagCACY { - ULONG cElems; - CY *pElems; -}CACY; -typedef struct tagCADATE { - ULONG cElems; - DATE *pElems; -}CADATE; -typedef struct tagCABSTR { - ULONG cElems; - BSTR *pElems; -}CABSTR; -typedef struct tagCABSTRBLOB { - ULONG cElems; - BSTRBLOB *pElems; -}CABSTRBLOB; -typedef struct tagCABOOL { - ULONG cElems; - VARIANT_BOOL *pElems; -}CABOOL; -typedef struct tagCASCODE { - ULONG cElems; - SCODE *pElems; -}CASCODE; -typedef struct tagCAH { - ULONG cElems; - LARGE_INTEGER *pElems; -}CAH; -typedef struct tagCAUH { - ULONG cElems; - ULARGE_INTEGER *pElems; -}CAUH; -typedef struct tagCALPSTR { - ULONG cElems; - LPSTR *pElems; -}CALPSTR; -typedef struct tagCALPWSTR { - ULONG cElems; - LPWSTR *pElems; -}CALPWSTR; -typedef struct tagCAFILETIME { - ULONG cElems; - FILETIME *pElems; -}CAFILETIME; -typedef struct tagCACLIPDATA { - ULONG cElems; - CLIPDATA *pElems; -}CACLIPDATA; -typedef struct tagCACLSID { - ULONG cElems; - CLSID *pElems; -}CACLSID; -typedef struct tagPROPVARIANT *LPPROPVARIANT; -typedef struct tagCAPROPVARIANT { - ULONG cElems; - LPPROPVARIANT pElems; -}CAPROPVARIANT; -typedef struct tagPROPVARIANT { - VARTYPE vt; - WORD wReserved1; - WORD wReserved2; - WORD wReserved3; - _ANONYMOUS_UNION union { - UCHAR bVal; - short iVal; - USHORT uiVal; - VARIANT_BOOL boolVal; -#ifndef __cplusplus - _VARIANT_BOOL bool; -#endif - long lVal; - ULONG ulVal; - float fltVal; - SCODE scode; - LARGE_INTEGER hVal; - ULARGE_INTEGER uhVal; - double dblVal; - CY cyVal; - DATE date; - FILETIME filetime; - CLSID *puuid; - BLOB blob; - CLIPDATA *pclipdata; - LPSTREAM pStream; - LPSTORAGE pStorage; - BSTR bstrVal; - BSTRBLOB bstrblobVal; - LPSTR pszVal; - LPWSTR pwszVal; - CAUB caub; - CAI cai; - CAUI caui; - CABOOL cabool; - CAL cal; - CAUL caul; - CAFLT caflt; - CASCODE cascode; - CAH cah; - CAUH cauh; - CADBL cadbl; - CACY cacy; - CADATE cadate; - CAFILETIME cafiletime; - CACLSID cauuid; - CACLIPDATA caclipdata; - CABSTR cabstr; - CABSTRBLOB cabstrblob; - CALPSTR calpstr; - CALPWSTR calpwstr; - CAPROPVARIANT capropvar; - } DUMMYUNIONNAME; -} PROPVARIANT; -typedef struct tagPROPSPEC { - ULONG ulKind; - _ANONYMOUS_UNION union { - PROPID propid; - LPOLESTR lpwstr; - } DUMMYUNIONNAME; -}PROPSPEC; -typedef struct tagSTATPROPSTG { - LPOLESTR lpwstrName; - PROPID propid; - VARTYPE vt; -} STATPROPSTG; -typedef enum PROPSETFLAG { - PROPSETFLAG_DEFAULT,PROPSETFLAG_NONSIMPLE,PROPSETFLAG_ANSI, - PROPSETFLAG_UNBUFFERED=4 -} PROPSETFLAG; -typedef struct tagSTORAGELAYOUT { - DWORD LayoutType; - OLECHAR* pwcsElementName; - LARGE_INTEGER cOffset; - LARGE_INTEGER cBytes; -} STORAGELAYOUT; -typedef struct tagSOLE_AUTHENTICATION_SERVICE { - DWORD dwAuthnSvc; - DWORD dwAuthzSvc; - OLECHAR *pPrincipalName; - HRESULT hr; -} SOLE_AUTHENTICATION_SERVICE; -#define COLE_DEFAULT_PRINCIPAL ( ( OLECHAR* )-1 ) -typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES { - EOAC_NONE = 0, - EOAC_MUTUAL_AUTH = 0x1, - EOAC_STATIC_CLOAKING = 0x20, - EOAC_DYNAMIC_CLOAKING = 0x40, - EOAC_ANY_AUTHORITY = 0x80, - EOAC_MAKE_FULLSIC = 0x100, - EOAC_DEFAULT = 0x800, - EOAC_SECURE_REFS = 0x2, - EOAC_ACCESS_CONTROL = 0x4, - EOAC_APPID = 0x8, - EOAC_DYNAMIC = 0x10, - EOAC_REQUIRE_FULLSIC = 0x200, - EOAC_AUTO_IMPERSONATE = 0x400, - EOAC_NO_CUSTOM_MARSHAL = 0x2000, - EOAC_DISABLE_AAA = 0x1000 -} EOLE_AUTHENTICATION_CAPABILITIES; -typedef struct tagSOLE_AUTHENTICATION_INFO { - DWORD dwAuthnSvc; - DWORD dwAuthzSvc; - void* pAuthInfo; -} SOLE_AUTHENTICATION_INFO; -#define COLE_DEFAULT_AUTHINFO ( ( void* )-1 ) -typedef struct tagSOLE_AUTHENTICATION_LIST { - DWORD cAuthInfo; - SOLE_AUTHENTICATION_INFO* aAuthInfo; -} SOLE_AUTHENTICATION_LIST; -DECLARE_ENUMERATOR(FORMATETC); -DECLARE_ENUMERATOR(HLITEM); -DECLARE_ENUMERATOR(STATDATA); -DECLARE_ENUMERATOR(STATPROPSETSTG); -DECLARE_ENUMERATOR(STATPROPSTG); -DECLARE_ENUMERATOR(STATSTG); -DECLARE_ENUMERATOR_(IEnumString,LPOLESTR); -DECLARE_ENUMERATOR_(IEnumMoniker,interface IMoniker); -DECLARE_ENUMERATOR_(IEnumUnknown,IUnknown*); - -EXTERN_C const IID IID_ISequentialStream; -#undef INTERFACE -#define INTERFACE ISequentialStream -DECLARE_INTERFACE_(ISequentialStream,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Read)(THIS_ void*,ULONG,ULONG*) PURE; - STDMETHOD(Write)(THIS_ void const*,ULONG,ULONG*) PURE; -}; - -EXTERN_C const IID IID_IStream; -#undef INTERFACE -#define INTERFACE IStream -DECLARE_INTERFACE_(IStream,ISequentialStream) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Read)(THIS_ void*,ULONG,ULONG*) PURE; - STDMETHOD(Write)(THIS_ void const*,ULONG,ULONG*) PURE; - STDMETHOD(Seek)(THIS_ LARGE_INTEGER,DWORD,ULARGE_INTEGER*) PURE; - STDMETHOD(SetSize)(THIS_ ULARGE_INTEGER) PURE; - STDMETHOD(CopyTo)(THIS_ IStream*,ULARGE_INTEGER,ULARGE_INTEGER*,ULARGE_INTEGER*) PURE; - STDMETHOD(Commit)(THIS_ DWORD) PURE; - STDMETHOD(Revert)(THIS) PURE; - STDMETHOD(LockRegion)(THIS_ ULARGE_INTEGER,ULARGE_INTEGER,DWORD) PURE; - STDMETHOD(UnlockRegion)(THIS_ ULARGE_INTEGER,ULARGE_INTEGER,DWORD) PURE; - STDMETHOD(Stat)(THIS_ STATSTG*,DWORD) PURE; - STDMETHOD(Clone)(THIS_ LPSTREAM*) PURE; -}; - -EXTERN_C const IID IID_IMarshal; -#undef INTERFACE -#define INTERFACE IMarshal -DECLARE_INTERFACE_(IMarshal,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetUnmarshalClass) (THIS_ REFIID,DWORD,PVOID,DWORD,CLSID*) PURE; - STDMETHOD(GetMarshalSizeMax) (THIS_ REFIID,DWORD,PVOID,DWORD,PDWORD) PURE; - STDMETHOD(MarshalInterface) (THIS_ REFIID,DWORD,DWORD) PURE; - STDMETHOD(UnmarshalInterface) (THIS_ IStream*,void**) PURE; - STDMETHOD(ReleaseMarshalData) (THIS_ IStream*) PURE; - STDMETHOD(DisconnectObject) (THIS_ DWORD) PURE; -}; - -EXTERN_C const IID IID_IStdMarshalInfo; -#undef INTERFACE -#define INTERFACE IStdMarshalInfo -DECLARE_INTERFACE_(IStdMarshalInfo,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassForHandler)(THIS_ DWORD,PVOID,CLSID*) PURE; -}; - -EXTERN_C const IID IID_IMalloc; -#undef INTERFACE -#define INTERFACE IMalloc -DECLARE_INTERFACE_(IMalloc,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(void*,Alloc)(THIS_ ULONG) PURE; - STDMETHOD_(void*,ReAlloc)(THIS_ void*,ULONG) PURE; - STDMETHOD_(void,Free)(THIS_ void*) PURE; - STDMETHOD_(ULONG,GetSize)(THIS_ void*) PURE; - STDMETHOD_(int,DidAlloc)(THIS_ void*) PURE; - STDMETHOD_(void,HeapMinimize)(THIS) PURE; -}; - -EXTERN_C const IID IID_IMallocSpy; -#undef INTERFACE -#define INTERFACE IMallocSpy -DECLARE_INTERFACE_(IMallocSpy,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(ULONG,PreAlloc)(THIS_ ULONG) PURE; - STDMETHOD_(void*,PostAlloc)(THIS_ void*) PURE; - STDMETHOD_(void*,PreFree)(THIS_ void*,BOOL) PURE; - STDMETHOD_(void,PostFree)(THIS_ BOOL) PURE; - STDMETHOD_(ULONG,PreRealloc)(THIS_ void*,ULONG,void*) PURE; - STDMETHOD_(void*,PostRealloc)(THIS_ void*,BOOL) PURE; - STDMETHOD_(void*,PreGetSize)(THIS_ void*,BOOL) PURE; - STDMETHOD_(ULONG,PostGetSize)(THIS_ ULONG,BOOL) PURE; - STDMETHOD_(void*,PreDidAlloc)(THIS_ void*,BOOL) PURE; - STDMETHOD_(int,PostDidAlloc)(THIS_ void*,BOOL,int) PURE; - STDMETHOD_(void,PreHeapMinimize)(THIS) PURE; - STDMETHOD_(void,PostHeapMinimize)(THIS) PURE; -}; - -EXTERN_C const IID IID_IMessageFilter; -#undef INTERFACE -#define INTERFACE IMessageFilter -DECLARE_INTERFACE_(IMessageFilter,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(DWORD,HandleInComingCall)(THIS_ DWORD,HTASK,DWORD,LPINTERFACEINFO) PURE; - STDMETHOD_(DWORD,RetryRejectedCall)(THIS_ HTASK,DWORD,DWORD) PURE; - STDMETHOD_(DWORD,MessagePending)(THIS_ HTASK,DWORD,DWORD) PURE; -}; - -EXTERN_C const IID IID_IPersist; -#undef INTERFACE -#define INTERFACE IPersist -DECLARE_INTERFACE_(IPersist,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ CLSID*) PURE; -}; - -EXTERN_C const IID IID_IPersistStream; -#undef INTERFACE -#define INTERFACE IPersistStream -DECLARE_INTERFACE_(IPersistStream,IPersist) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE; - STDMETHOD(IsDirty)(THIS) PURE; - STDMETHOD(Load)(THIS_ IStream*) PURE; - STDMETHOD(Save)(THIS_ IStream*,BOOL) PURE; - STDMETHOD(GetSizeMax)(THIS_ PULARGE_INTEGER) PURE; -}; - -EXTERN_C const IID IID_IRunningObjectTable; -#undef INTERFACE -#define INTERFACE IRunningObjectTable -DECLARE_INTERFACE_(IRunningObjectTable,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Register)(THIS_ LPUNKNOWN,LPMONIKER,PDWORD) PURE; - STDMETHOD(Revoke)(THIS_ DWORD) PURE; - STDMETHOD(IsRunning)(THIS_ LPMONIKER) PURE; - STDMETHOD(GetObject)(THIS_ LPMONIKER,LPUNKNOWN*) PURE; - STDMETHOD(NoteChangeTime)(THIS_ DWORD,LPFILETIME) PURE; - STDMETHOD(GetTimeOfLastChange)(THIS_ LPMONIKER,LPFILETIME) PURE; - STDMETHOD(EnumRunning)(THIS_ IEnumMoniker**) PURE; -}; - -EXTERN_C const IID IID_IBindCtx; -#undef INTERFACE -#define INTERFACE IBindCtx -DECLARE_INTERFACE_(IBindCtx,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(RegisterObjectBound)(THIS_ LPUNKNOWN) PURE; - STDMETHOD(RevokeObjectBound)(THIS_ LPUNKNOWN) PURE; - STDMETHOD(ReleaseBoundObjects)(THIS) PURE; - STDMETHOD(SetBindOptions)(THIS_ LPBIND_OPTS) PURE; - STDMETHOD(GetBindOptions)(THIS_ LPBIND_OPTS) PURE; - STDMETHOD(GetRunningObjectTable)(THIS_ IRunningObjectTable**) PURE; - STDMETHOD(RegisterObjectParam)(THIS_ LPOLESTR,IUnknown*) PURE; - STDMETHOD(GetObjectParam)(THIS_ LPOLESTR,IUnknown**) PURE; - STDMETHOD(EnumObjectParam)(THIS_ IEnumString**) PURE; - STDMETHOD(RevokeObjectParam)(THIS_ LPOLESTR) PURE; -}; - -EXTERN_C const IID IID_IPersistStream; -#undef INTERFACE -#define INTERFACE IMoniker -DECLARE_INTERFACE_(IMoniker,IPersistStream) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE; - STDMETHOD(IsDirty)(THIS) PURE; - STDMETHOD(Load)(THIS_ IStream*) PURE; - STDMETHOD(Save)(THIS_ IStream*,BOOL) PURE; - STDMETHOD(GetSizeMax)(THIS_ PULARGE_INTEGER) PURE; - STDMETHOD(BindToObject)(THIS_ IBindCtx*,IMoniker*,REFIID,PVOID*) PURE; - STDMETHOD(BindToStorage)(THIS_ IBindCtx*,IMoniker*,REFIID,PVOID*) PURE; - STDMETHOD(Reduce)(THIS_ IBindCtx*,DWORD,IMoniker**,IMoniker**) PURE; - STDMETHOD(ComposeWith)(THIS_ IMoniker*,BOOL,IMoniker**) PURE; - STDMETHOD(Enum)(THIS_ BOOL,IEnumMoniker**) PURE; - STDMETHOD(IsEqual)(THIS_ IMoniker*) PURE; - STDMETHOD(Hash)(THIS_ PDWORD) PURE; - STDMETHOD(IsRunning)(THIS_ IBindCtx*,IMoniker*,IMoniker*) PURE; - STDMETHOD(GetTimeOfLastChange)(THIS_ IBindCtx*,IMoniker*,LPFILETIME) PURE; - STDMETHOD(Inverse)(THIS_ IMoniker**) PURE; - STDMETHOD(CommonPrefixWith)(THIS_ IMoniker*,IMoniker**) PURE; - STDMETHOD(RelativePathTo)(THIS_ IMoniker*,IMoniker**) PURE; - STDMETHOD(GetDisplayName)(THIS_ IBindCtx*,IMoniker*,LPOLESTR*) PURE; - STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,IMoniker*,LPOLESTR,ULONG*,IMoniker**) PURE; - STDMETHOD(IsSystemMoniker)(THIS_ PDWORD) PURE; -}; - -EXTERN_C const IID IID_IPersistStorage; -#undef INTERFACE -#define INTERFACE IPersistStorage -DECLARE_INTERFACE_(IPersistStorage,IPersist) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ CLSID*) PURE; - STDMETHOD(IsDirty)(THIS) PURE; - STDMETHOD(InitNew)(THIS_ LPSTORAGE) PURE; - STDMETHOD(Load)(THIS_ LPSTORAGE) PURE; - STDMETHOD(Save)(THIS_ LPSTORAGE,BOOL) PURE; - STDMETHOD(SaveCompleted)(THIS_ LPSTORAGE) PURE; - STDMETHOD(HandsOffStorage)(THIS) PURE; -}; - -EXTERN_C const IID IID_IPersistFile; -#undef INTERFACE -#define INTERFACE IPersistFile -DECLARE_INTERFACE_(IPersistFile,IPersist) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ CLSID*) PURE; - STDMETHOD(IsDirty)(THIS) PURE; - STDMETHOD(Load)(THIS_ LPCOLESTR,DWORD) PURE; - STDMETHOD(Save)(THIS_ LPCOLESTR,BOOL) PURE; - STDMETHOD(SaveCompleted)(THIS_ LPCOLESTR) PURE; - STDMETHOD(GetCurFile)(THIS_ LPOLESTR*) PURE; -}; - -EXTERN_C const IID IID_IAdviseSink; -#undef INTERFACE -#define INTERFACE IAdviseSink -DECLARE_INTERFACE_(IAdviseSink,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC*,STGMEDIUM*) PURE; - STDMETHOD_(void,OnViewChange)(THIS_ DWORD,LONG) PURE; - STDMETHOD_(void,OnRename)(THIS_ IMoniker*) PURE; - STDMETHOD_(void,OnSave)(THIS) PURE; - STDMETHOD_(void,OnClose)(THIS) PURE; -}; - -EXTERN_C const IID IID_IAdviseSink2; -#undef INTERFACE -#define INTERFACE IAdviseSink2 -DECLARE_INTERFACE_(IAdviseSink2,IAdviseSink) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC*,STGMEDIUM*) PURE; - STDMETHOD_(void,OnViewChange)(THIS_ DWORD,LONG) PURE; - STDMETHOD_(void,OnRename)(THIS_ IMoniker*) PURE; - STDMETHOD_(void,OnSave)(THIS) PURE; - STDMETHOD_(void,OnClose)(THIS) PURE; - STDMETHOD_(void,OnLinkSrcChange)(THIS_ IMoniker*); -}; - -EXTERN_C const IID IID_IDataObject; -#undef INTERFACE -#define INTERFACE IDataObject -DECLARE_INTERFACE_(IDataObject,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetData)(THIS_ FORMATETC*,STGMEDIUM*) PURE; - STDMETHOD(GetDataHere)(THIS_ FORMATETC*,STGMEDIUM*) PURE; - STDMETHOD(QueryGetData)(THIS_ FORMATETC*) PURE; - STDMETHOD(GetCanonicalFormatEtc)(THIS_ FORMATETC*,FORMATETC*) PURE; - STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE; - STDMETHOD(EnumFormatEtc)(THIS_ DWORD,IEnumFORMATETC**) PURE; - STDMETHOD(DAdvise)(THIS_ FORMATETC*,DWORD,IAdviseSink*,PDWORD) PURE; - STDMETHOD(DUnadvise)(THIS_ DWORD) PURE; - STDMETHOD(EnumDAdvise)(THIS_ IEnumSTATDATA**) PURE; -}; - -EXTERN_C const IID IID_IDataAdviseHolder; -#undef INTERFACE -#define INTERFACE IDataAdviseHolder -DECLARE_INTERFACE_(IDataAdviseHolder,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Advise)(THIS_ IDataObject*,FORMATETC*,DWORD,IAdviseSink*,PDWORD) PURE; - STDMETHOD(Unadvise)(THIS_ DWORD) PURE; - STDMETHOD(EnumAdvise)(THIS_ IEnumSTATDATA**) PURE; - STDMETHOD(SendOnDataChange)(THIS_ IDataObject*,DWORD,DWORD) PURE; -}; - -EXTERN_C const IID IID_IStorage; -#undef INTERFACE -#define INTERFACE IStorage -DECLARE_INTERFACE_(IStorage,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(CreateStream)(THIS_ LPCWSTR,DWORD,DWORD,DWORD,IStream**) PURE; - STDMETHOD(OpenStream)(THIS_ LPCWSTR,PVOID,DWORD,DWORD,IStream**) PURE; - STDMETHOD(CreateStorage)(THIS_ LPCWSTR,DWORD,DWORD,DWORD,IStorage**) PURE; - STDMETHOD(OpenStorage)(THIS_ LPCWSTR,IStorage*,DWORD,SNB,DWORD,IStorage**) PURE; - STDMETHOD(CopyTo)(THIS_ DWORD,IID const*,SNB,IStorage*) PURE; - STDMETHOD(MoveElementTo)(THIS_ LPCWSTR,IStorage*,LPCWSTR,DWORD) PURE; - STDMETHOD(Commit)(THIS_ DWORD) PURE; - STDMETHOD(Revert)(THIS) PURE; - STDMETHOD(EnumElements)(THIS_ DWORD,PVOID,DWORD,IEnumSTATSTG**) PURE; - STDMETHOD(DestroyElement)(THIS_ LPCWSTR) PURE; - STDMETHOD(RenameElement)(THIS_ LPCWSTR,LPCWSTR) PURE; - STDMETHOD(SetElementTimes)(THIS_ LPCWSTR,FILETIME const*,FILETIME const*,FILETIME const*) PURE; - STDMETHOD(SetClass)(THIS_ REFCLSID) PURE; - STDMETHOD(SetStateBits)(THIS_ DWORD,DWORD) PURE; - STDMETHOD(Stat)(THIS_ STATSTG*,DWORD) PURE; -}; - -EXTERN_C const IID IID_IRootStorage; -#undef INTERFACE -#define INTERFACE IRootStorage -DECLARE_INTERFACE_(IRootStorage,IPersist) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(SwitchToFile)(THIS_ LPOLESTR) PURE; -}; - -EXTERN_C const IID IID_IRpcChannelBuffer; -#undef INTERFACE -#define INTERFACE IRpcChannelBuffer -DECLARE_INTERFACE_(IRpcChannelBuffer,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetBuffer)(THIS_ RPCOLEMESSAGE*,REFIID) PURE; - STDMETHOD(SendReceive)(THIS_ RPCOLEMESSAGE*,PULONG) PURE; - STDMETHOD(FreeBuffer)(THIS_ RPCOLEMESSAGE*) PURE; - STDMETHOD(GetDestCtx)(THIS_ PDWORD,PVOID*) PURE; - STDMETHOD(IsConnected)(THIS) PURE; -}; - -EXTERN_C const IID IID_IRpcProxyBuffer; -#undef INTERFACE -#define INTERFACE IRpcProxyBuffer -DECLARE_INTERFACE_(IRpcProxyBuffer,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Connect)(THIS_ IRpcChannelBuffer*) PURE; - STDMETHOD_(void,Disconnect)(THIS) PURE; - -}; - -EXTERN_C const IID IID_IRpcStubBuffer; -#undef INTERFACE -#define INTERFACE IRpcStubBuffer -DECLARE_INTERFACE_(IRpcStubBuffer,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Connect)(THIS_ LPUNKNOWN) PURE; - STDMETHOD_(void,Disconnect)(THIS) PURE; - STDMETHOD(Invoke)(THIS_ RPCOLEMESSAGE*,LPRPCSTUBBUFFER) PURE; - STDMETHOD_(LPRPCSTUBBUFFER,IsIIDSupported)(THIS_ REFIID) PURE; - STDMETHOD_(ULONG,CountRefs)(THIS) PURE; - STDMETHOD(DebugServerQueryInterface)(THIS_ PVOID*) PURE; - STDMETHOD(DebugServerRelease)(THIS_ PVOID) PURE; -}; - -EXTERN_C const IID IID_IPSFactoryBuffer; -#undef INTERFACE -#define INTERFACE IPSFactoryBuffer -DECLARE_INTERFACE_(IPSFactoryBuffer,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(CreateProxy)(THIS_ LPUNKNOWN,REFIID,LPRPCPROXYBUFFER*,PVOID*) PURE; - STDMETHOD(CreateStub)(THIS_ REFIID,LPUNKNOWN,LPRPCSTUBBUFFER*) PURE; -}; - -EXTERN_C const IID IID_ILockBytes; -#undef INTERFACE -#define INTERFACE ILockBytes -DECLARE_INTERFACE_(ILockBytes,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(ReadAt)(THIS_ ULARGE_INTEGER,PVOID,ULONG,ULONG*) PURE; - STDMETHOD(WriteAt)(THIS_ ULARGE_INTEGER,PCVOID,ULONG,ULONG*) PURE; - STDMETHOD(Flush)(THIS) PURE; - STDMETHOD(SetSize)(THIS_ ULARGE_INTEGER) PURE; - STDMETHOD(LockRegion)(THIS_ ULARGE_INTEGER,ULARGE_INTEGER,DWORD) PURE; - STDMETHOD(UnlockRegion)(THIS_ ULARGE_INTEGER,ULARGE_INTEGER,DWORD) PURE; - STDMETHOD(Stat)(THIS_ STATSTG*,DWORD) PURE; -}; - -EXTERN_C const IID IID_IExternalConnection; -#undef INTERFACE -#define INTERFACE IExternalConnection -DECLARE_INTERFACE_(IExternalConnection,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(AddConnection)(THIS_ DWORD,DWORD) PURE; - STDMETHOD(ReleaseConnection)(THIS_ DWORD,DWORD,BOOL) PURE; -}; - -EXTERN_C const IID IID_IRunnableObject; -#undef INTERFACE -#define INTERFACE IRunnableObject -DECLARE_INTERFACE_(IRunnableObject,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetRunningClass)(THIS_ LPCLSID) PURE; - STDMETHOD(Run)(THIS_ LPBC) PURE; - STDMETHOD_(BOOL,IsRunning)(THIS) PURE; - STDMETHOD(LockRunning)(THIS_ BOOL,BOOL) PURE; - STDMETHOD(SetContainedObject)(THIS_ BOOL) PURE; -}; - -EXTERN_C const IID IID_IROTData; -#undef INTERFACE -#define INTERFACE IROTData -DECLARE_INTERFACE_(IROTData,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetComparisonData)(THIS_ PVOID,ULONG,PULONG) PURE; -}; - -EXTERN_C const IID IID_IChannelHook; -#undef INTERFACE -#define INTERFACE IChannelHook -DECLARE_INTERFACE_(IChannelHook,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(void,ClientGetSize)(THIS_ REFGUID,REFIID,PULONG) PURE; - STDMETHOD_(void,ClientFillBuffer)(THIS_ REFGUID,REFIID,PULONG,PVOID) PURE; - STDMETHOD_(void,ClientNotify)(THIS_ REFGUID,REFIID,ULONG,PVOID,DWORD,HRESULT) PURE; - STDMETHOD_(void,ServerNotify)(THIS_ REFGUID,REFIID,ULONG,PVOID,DWORD) PURE; - STDMETHOD_(void,ServerGetSize)(THIS_ REFGUID,REFIID,HRESULT,PULONG) PURE; - STDMETHOD_(void,ServerFillBuffer)(THIS_ REFGUID,REFIID,PULONG,PVOID,HRESULT) PURE; -}; - -EXTERN_C const IID IID_IPropertyStorage; -#undef INTERFACE -#define INTERFACE IPropertyStorage -DECLARE_INTERFACE_(IPropertyStorage,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(ReadMultiple)(THIS_ ULONG,PROPSPEC const*,PROPVARIANT*) PURE; - STDMETHOD(WriteMultiple)(THIS_ ULONG,PROPSPEC const*,PROPVARIANT*,PROPID) PURE; - STDMETHOD(DeleteMultiple)(THIS_ ULONG,PROPSPEC const*) PURE; - STDMETHOD(ReadPropertyNames)(THIS_ ULONG,PROPID const*,LPWSTR*) PURE; - STDMETHOD(WritePropertyNames)(THIS_ ULONG,PROPID const*,LPWSTR const*) PURE; - STDMETHOD(DeletePropertyNames)(THIS_ ULONG,PROPID const*) PURE; - STDMETHOD(SetClass)(THIS_ REFCLSID) PURE; - STDMETHOD(Commit)(THIS_ DWORD) PURE; - STDMETHOD(Revert)(THIS) PURE; - STDMETHOD(Enum)(THIS_ IEnumSTATPROPSTG**) PURE; - STDMETHOD(Stat)(THIS_ STATPROPSTG*) PURE; - STDMETHOD(SetTimes)(THIS_ FILETIME const*,FILETIME const*,FILETIME const*) PURE; -}; - -EXTERN_C const IID IID_IPropertySetStorage; -#undef INTERFACE -#define INTERFACE IPropertySetStorage -DECLARE_INTERFACE_(IPropertySetStorage,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Create)(THIS_ REFFMTID,CLSID*,DWORD,DWORD,LPPROPERTYSTORAGE*) PURE; - STDMETHOD(Open)(THIS_ REFFMTID,DWORD,LPPROPERTYSTORAGE*) PURE; - STDMETHOD(Delete)(THIS_ REFFMTID) PURE; - STDMETHOD(Enum)(THIS_ IEnumSTATPROPSETSTG**) PURE; -}; - -EXTERN_C const IID IID_IClientSecurity; -#undef INTERFACE -#define INTERFACE IClientSecurity -DECLARE_INTERFACE_(IClientSecurity,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(QueryBlanket)(THIS_ PVOID,PDWORD,PDWORD,OLECHAR**,PDWORD,PDWORD,RPC_AUTH_IDENTITY_HANDLE**,PDWORD*) PURE; - STDMETHOD(SetBlanket)(THIS_ PVOID,DWORD,DWORD,LPWSTR,DWORD,DWORD,RPC_AUTH_IDENTITY_HANDLE*,DWORD) PURE; - STDMETHOD(CopyProxy)(THIS_ LPUNKNOWN,LPUNKNOWN*) PURE; -}; - -EXTERN_C const IID IID_IServerSecurity; -#undef INTERFACE -#define INTERFACE IServerSecurity -DECLARE_INTERFACE_(IServerSecurity,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(QueryBlanket)(THIS_ PDWORD,PDWORD,OLECHAR**,PDWORD,PDWORD,RPC_AUTHZ_HANDLE*,PDWORD*) PURE; - STDMETHOD(ImpersonateClient)(THIS) PURE; - STDMETHOD(RevertToSelf)(THIS) PURE; - STDMETHOD(IsImpersonating)(THIS) PURE; -}; - -EXTERN_C const IID IID_IClassActivator; -#undef INTERFACE -#define INTERFACE IClassActivator -DECLARE_INTERFACE_(IClassActivator,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassObject)(THIS_ REFCLSID,DWORD,LCID,REFIID,PVOID*) PURE; -}; - -EXTERN_C const IID IID_IFillLockBytes; -#undef INTERFACE -#define INTERFACE IFillLockBytes -DECLARE_INTERFACE_(IFillLockBytes,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(FillAppend)(THIS_ void const*,ULONG,PULONG) PURE; - STDMETHOD(FillAt)(THIS_ ULARGE_INTEGER,void const*,ULONG,PULONG) PURE; - STDMETHOD(SetFillSize)(THIS_ ULARGE_INTEGER) PURE; - STDMETHOD(Terminate)(THIS_ BOOL) PURE; -}; - -EXTERN_C const IID IID_IProgressNotify; -#undef INTERFACE -#define INTERFACE IProgressNotify -DECLARE_INTERFACE_(IProgressNotify,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(OnProgress)(THIS_ DWORD,DWORD,BOOL,BOOL) PURE; -}; - -EXTERN_C const IID IID_ILayoutStorage; -#undef INTERFACE -#define INTERFACE ILayoutStorage -DECLARE_INTERFACE_(ILayoutStorage,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(LayoutScript)(THIS_ STORAGELAYOUT*,DWORD,DWORD) PURE; - STDMETHOD(BeginMonitor)(THIS) PURE; - STDMETHOD(EndMonitor)(THIS) PURE; - STDMETHOD(ReLayoutDocfile)(THIS_ OLECHAR*) PURE; -}; - -HRESULT STDMETHODCALLTYPE IMarshal_GetUnmarshalClass_Proxy(IMarshal*,REFIID,void*,DWORD,void*,DWORD,CLSID*); -void STDMETHODCALLTYPE IMarshal_GetUnmarshalClass_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMarshal_GetMarshalSizeMax_Proxy(IMarshal*,REFIID,void*,DWORD,void*,DWORD,DWORD*); -void STDMETHODCALLTYPE IMarshal_GetMarshalSizeMax_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMarshal_MarshalInterface_Proxy(IMarshal*,IStream*,REFIID,void*,DWORD,void*,DWORD); -void STDMETHODCALLTYPE IMarshal_MarshalInterface_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMarshal_UnmarshalInterface_Proxy(IMarshal*,IStream*,REFIID,void**); -void STDMETHODCALLTYPE IMarshal_UnmarshalInterface_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMarshal_ReleaseMarshalData_Proxy(IMarshal*,IStream*); -void STDMETHODCALLTYPE IMarshal_ReleaseMarshalData_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMarshal_DisconnectObject_Proxy(IMarshal*,DWORD); -void STDMETHODCALLTYPE IMarshal_DisconnectObject_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void* STDMETHODCALLTYPE IMalloc_Alloc_Proxy(IMalloc*,ULONG); -void STDMETHODCALLTYPE IMalloc_Alloc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void* STDMETHODCALLTYPE IMalloc_Realloc_Proxy(IMalloc*,void*,ULONG); -void STDMETHODCALLTYPE IMalloc_Realloc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IMalloc_Free_Proxy(IMalloc*,void*); -void STDMETHODCALLTYPE IMalloc_Free_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -ULONG STDMETHODCALLTYPE IMalloc_GetSize_Proxy(IMalloc*,void*); -void STDMETHODCALLTYPE IMalloc_GetSize_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -int STDMETHODCALLTYPE IMalloc_DidAlloc_Proxy(IMalloc*,void*); -void STDMETHODCALLTYPE IMalloc_DidAlloc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IMalloc_HeapMinimize_Proxy(IMalloc*); -void STDMETHODCALLTYPE IMalloc_HeapMinimize_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -ULONG STDMETHODCALLTYPE IMallocSpy_PreAlloc_Proxy(IMallocSpy*,ULONG cbRequest); -void STDMETHODCALLTYPE IMallocSpy_PreAlloc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void* STDMETHODCALLTYPE IMallocSpy_PostAlloc_Proxy(IMallocSpy*,void*); -void STDMETHODCALLTYPE IMallocSpy_PostAlloc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void* STDMETHODCALLTYPE IMallocSpy_PreFree_Proxy(IMallocSpy*,void*,BOOL); -void STDMETHODCALLTYPE IMallocSpy_PreFree_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IMallocSpy_PostFree_Proxy(IMallocSpy*,BOOL); -void STDMETHODCALLTYPE IMallocSpy_PostFree_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -ULONG STDMETHODCALLTYPE IMallocSpy_PreRealloc_Proxy(IMallocSpy*,void*,ULONG,void**,BOOL); -void STDMETHODCALLTYPE IMallocSpy_PreRealloc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void* STDMETHODCALLTYPE IMallocSpy_PostRealloc_Proxy(IMallocSpy*,void*,BOOL); -void STDMETHODCALLTYPE IMallocSpy_PostRealloc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void* STDMETHODCALLTYPE IMallocSpy_PreGetSize_Proxy(IMallocSpy*,void*,BOOL); -void STDMETHODCALLTYPE IMallocSpy_PreGetSize_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -ULONG STDMETHODCALLTYPE IMallocSpy_PostGetSize_Proxy(IMallocSpy*,ULONG,BOOL); -void STDMETHODCALLTYPE IMallocSpy_PostGetSize_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void* STDMETHODCALLTYPE IMallocSpy_PreDidAlloc_Proxy(IMallocSpy*,void*,BOOL); -void STDMETHODCALLTYPE IMallocSpy_PreDidAlloc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -int STDMETHODCALLTYPE IMallocSpy_PostDidAlloc_Proxy(IMallocSpy*,void*,BOOL,int); -void STDMETHODCALLTYPE IMallocSpy_PostDidAlloc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IMallocSpy_PreHeapMinimize_Proxy(IMallocSpy* ); -void STDMETHODCALLTYPE IMallocSpy_PreHeapMinimize_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IMallocSpy_PostHeapMinimize_Proxy(IMallocSpy*); -void STDMETHODCALLTYPE IMallocSpy_PostHeapMinimize_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStdMarshalInfo_GetClassForHandler_Proxy(IStdMarshalInfo*,DWORD,void*,CLSID*); -void STDMETHODCALLTYPE IStdMarshalInfo_GetClassForHandler_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -DWORD STDMETHODCALLTYPE IExternalConnection_AddConnection_Proxy(IExternalConnection*,DWORD,DWORD); -void STDMETHODCALLTYPE IExternalConnection_AddConnection_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -DWORD STDMETHODCALLTYPE IExternalConnection_ReleaseConnection_Proxy(IExternalConnection*,DWORD,DWORD,BOOL); -void STDMETHODCALLTYPE IExternalConnection_ReleaseConnection_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Proxy(IEnumUnknown*,ULONG,IUnknown**,ULONG*); -void STDMETHODCALLTYPE IEnumUnknown_RemoteNext_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumUnknown_Skip_Proxy(IEnumUnknown*,ULONG); -void STDMETHODCALLTYPE IEnumUnknown_Skip_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumUnknown_Reset_Proxy(IEnumUnknown* ); -void STDMETHODCALLTYPE IEnumUnknown_Reset_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumUnknown_Clone_Proxy(IEnumUnknown*,IEnumUnknown**); -void STDMETHODCALLTYPE IEnumUnknown_Clone_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IBindCtx_RegisterObjectBound_Proxy(IBindCtx*,IUnknown*punk); -void STDMETHODCALLTYPE IBindCtx_RegisterObjectBound_Stub(IRpcStubBuffer*,IRpcChannelBuffer*_pRpcChannelBuffer,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IBindCtx_RevokeObjectBound_Proxy(IBindCtx*,IUnknown*punk); -void STDMETHODCALLTYPE IBindCtx_RevokeObjectBound_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IBindCtx_ReleaseBoundObjects_Proxy(IBindCtx*); -void STDMETHODCALLTYPE IBindCtx_ReleaseBoundObjects_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IBindCtx_SetBindOptions_Proxy(IBindCtx*,BIND_OPTS*); -void STDMETHODCALLTYPE IBindCtx_SetBindOptions_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IBindCtx_GetBindOptions_Proxy(IBindCtx*,BIND_OPTS*pbindopts); -void STDMETHODCALLTYPE IBindCtx_GetBindOptions_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IBindCtx_GetRunningObjectTable_Proxy(IBindCtx*,IRunningObjectTable**); -void STDMETHODCALLTYPE IBindCtx_GetRunningObjectTable_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IBindCtx_RegisterObjectParam_Proxy(IBindCtx*,LPCSTR,IUnknown*); -void STDMETHODCALLTYPE IBindCtx_RegisterObjectParam_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IBindCtx_GetObjectParam_Proxy(IBindCtx*,LPCSTR,IUnknown**); -void STDMETHODCALLTYPE IBindCtx_GetObjectParam_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IBindCtx_EnumObjectParam_Proxy(IBindCtx*,IEnumString**); -void STDMETHODCALLTYPE IBindCtx_EnumObjectParam_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IBindCtx_RevokeObjectParam_Proxy(IBindCtx*,LPCSTR); -void STDMETHODCALLTYPE IBindCtx_RevokeObjectParam_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumMoniker_RemoteNext_Proxy(IEnumMoniker*,ULONG,IMoniker**,ULONG*); -void STDMETHODCALLTYPE IEnumMoniker_RemoteNext_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumMoniker_Skip_Proxy(IEnumMoniker*,ULONG); -void STDMETHODCALLTYPE IEnumMoniker_Skip_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumMoniker_Reset_Proxy(IEnumMoniker*); -void STDMETHODCALLTYPE IEnumMoniker_Reset_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumMoniker_Clone_Proxy(IEnumMoniker*,IEnumMoniker**); -void STDMETHODCALLTYPE IEnumMoniker_Clone_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunnableObject_GetRunningClass_Proxy(IRunnableObject*,LPCLSID); -void STDMETHODCALLTYPE IRunnableObject_GetRunningClass_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunnableObject_Run_Proxy(IRunnableObject*,LPBINDCTX); -void STDMETHODCALLTYPE IRunnableObject_Run_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -BOOL STDMETHODCALLTYPE IRunnableObject_IsRunning_Proxy(IRunnableObject*); -void STDMETHODCALLTYPE IRunnableObject_IsRunning_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunnableObject_LockRunning_Proxy(IRunnableObject*,BOOL,BOOL); -void STDMETHODCALLTYPE IRunnableObject_LockRunning_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunnableObject_SetContainedObject_Proxy(IRunnableObject*,BOOL); -void STDMETHODCALLTYPE IRunnableObject_SetContainedObject_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunningObjectTable_Register_Proxy(IRunningObjectTable*,DWORD,IUnknown*,IMoniker*,DWORD*); -void STDMETHODCALLTYPE IRunningObjectTable_Register_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunningObjectTable_Revoke_Proxy(IRunningObjectTable*,DWORD); -void STDMETHODCALLTYPE IRunningObjectTable_Revoke_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunningObjectTable_IsRunning_Proxy(IRunningObjectTable*,IMoniker*); -void STDMETHODCALLTYPE IRunningObjectTable_IsRunning_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunningObjectTable_GetObject_Proxy(IRunningObjectTable*,IMoniker*,IUnknown**); -void STDMETHODCALLTYPE IRunningObjectTable_GetObject_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunningObjectTable_NoteChangeTime_Proxy(IRunningObjectTable*,DWORD,FILETIME*); -void STDMETHODCALLTYPE IRunningObjectTable_NoteChangeTime_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunningObjectTable_GetTimeOfLastChange_Proxy(IRunningObjectTable*,IMoniker*,FILETIME*); -void STDMETHODCALLTYPE IRunningObjectTable_GetTimeOfLastChange_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRunningObjectTable_EnumRunning_Proxy(IRunningObjectTable*,IEnumMoniker**); -void STDMETHODCALLTYPE IRunningObjectTable_EnumRunning_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersist_GetClassID_Proxy(IPersist*,CLSID*); -void STDMETHODCALLTYPE IPersist_GetClassID_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistStream_IsDirty_Proxy(IPersistStream*); -void STDMETHODCALLTYPE IPersistStream_IsDirty_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistStream_Load_Proxy(IPersistStream*,IStream*); -void STDMETHODCALLTYPE IPersistStream_Load_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistStream_Save_Proxy(IPersistStream*,IStream*,BOOL); -void STDMETHODCALLTYPE IPersistStream_Save_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistStream_GetSizeMax_Proxy(IPersistStream*,ULARGE_INTEGER*); -void STDMETHODCALLTYPE IPersistStream_GetSizeMax_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToObject_Proxy(IMoniker*,IBindCtx*,IMoniker*,REFIID,IUnknown**); -void STDMETHODCALLTYPE IMoniker_RemoteBindToObject_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_RemoteBindToStorage_Proxy(IMoniker*,IBindCtx*,IMoniker*,REFIID,IUnknown**); -void STDMETHODCALLTYPE IMoniker_RemoteBindToStorage_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_Reduce_Proxy(IMoniker*,IBindCtx*,DWORD,IMoniker**,IMoniker**); -void STDMETHODCALLTYPE IMoniker_Reduce_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_ComposeWith_Proxy(IMoniker*,IMoniker*,BOOL,IMoniker**); -void STDMETHODCALLTYPE IMoniker_ComposeWith_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_Enum_Proxy(IMoniker*,BOOL,IEnumMoniker**); -void STDMETHODCALLTYPE IMoniker_Enum_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_IsEqual_Proxy(IMoniker*,IMoniker*); -void STDMETHODCALLTYPE IMoniker_IsEqual_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_Hash_Proxy(IMoniker*,DWORD*); -void STDMETHODCALLTYPE IMoniker_Hash_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_IsRunning_Proxy(IMoniker*,IBindCtx*,IMoniker*,IMoniker*); -void STDMETHODCALLTYPE IMoniker_IsRunning_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_GetTimeOfLastChange_Proxy(IMoniker*,IBindCtx*,IMoniker*,FILETIME*); -void STDMETHODCALLTYPE IMoniker_GetTimeOfLastChange_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_Inverse_Proxy(IMoniker*,IMoniker**); -void STDMETHODCALLTYPE IMoniker_Inverse_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_CommonPrefixWith_Proxy(IMoniker*,IMoniker*,IMoniker**); -void STDMETHODCALLTYPE IMoniker_CommonPrefixWith_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_RelativePathTo_Proxy(IMoniker*,IMoniker*,IMoniker**); -void STDMETHODCALLTYPE IMoniker_RelativePathTo_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_GetDisplayName_Proxy(IMoniker*,IBindCtx*,IMoniker*,LPCSTR*); -void STDMETHODCALLTYPE IMoniker_GetDisplayName_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_ParseDisplayName_Proxy(IMoniker*,IBindCtx*,IMoniker*,LPCSTR,ULONG*,IMoniker**); -void STDMETHODCALLTYPE IMoniker_ParseDisplayName_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IMoniker_IsSystemMoniker_Proxy(IMoniker*,DWORD*); -void STDMETHODCALLTYPE IMoniker_IsSystemMoniker_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IROTData_GetComparisonData_Proxy(IROTData*,BYTE*,ULONG cbMax,ULONG*); -void STDMETHODCALLTYPE IROTData_GetComparisonData_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumString_RemoteNext_Proxy(IEnumString*,ULONG,LPCSTR*rgelt,ULONG*); -void STDMETHODCALLTYPE IEnumString_RemoteNext_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumString_Skip_Proxy(IEnumString*,ULONG); -void STDMETHODCALLTYPE IEnumString_Skip_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumString_Reset_Proxy(IEnumString*); -void STDMETHODCALLTYPE IEnumString_Reset_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumString_Clone_Proxy(IEnumString*,IEnumString**); -void STDMETHODCALLTYPE IEnumString_Clone_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_RemoteRead_Proxy(IStream*,BYTE*,ULONG,ULONG*); -void STDMETHODCALLTYPE IStream_RemoteRead_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_RemoteWrite_Proxy(IStream*,BYTE*pv,ULONG,ULONG*); -void STDMETHODCALLTYPE IStream_RemoteWrite_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_RemoteSeek_Proxy(IStream*,LARGE_INTEGER,DWORD,ULARGE_INTEGER*); -void STDMETHODCALLTYPE IStream_RemoteSeek_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_SetSize_Proxy(IStream*,ULARGE_INTEGER); -void STDMETHODCALLTYPE IStream_SetSize_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy(IStream*,IStream*,ULARGE_INTEGER,ULARGE_INTEGER*,ULARGE_INTEGER*); -void STDMETHODCALLTYPE IStream_RemoteCopyTo_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_Commit_Proxy(IStream*,DWORD); -void STDMETHODCALLTYPE IStream_Commit_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_Revert_Proxy(IStream*); -void STDMETHODCALLTYPE IStream_Revert_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_LockRegion_Proxy(IStream*,ULARGE_INTEGER,ULARGE_INTEGER,DWORD); -void STDMETHODCALLTYPE IStream_LockRegion_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_UnlockRegion_Proxy(IStream*,ULARGE_INTEGER,ULARGE_INTEGER,DWORD); -void STDMETHODCALLTYPE IStream_UnlockRegion_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_Stat_Proxy(IStream*,STATSTG*,DWORD); -void STDMETHODCALLTYPE IStream_Stat_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStream_Clone_Proxy(IStream*,IStream**); -void STDMETHODCALLTYPE IStream_Clone_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumSTATSTG_RemoteNext_Proxy(IEnumSTATSTG*,ULONG,STATSTG*,ULONG*); -void STDMETHODCALLTYPE IEnumSTATSTG_RemoteNext_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Skip_Proxy(IEnumSTATSTG*,ULONG celt); -void STDMETHODCALLTYPE IEnumSTATSTG_Skip_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Reset_Proxy(IEnumSTATSTG*); -void STDMETHODCALLTYPE IEnumSTATSTG_Reset_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Clone_Proxy(IEnumSTATSTG*,IEnumSTATSTG**); -void STDMETHODCALLTYPE IEnumSTATSTG_Clone_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_CreateStream_Proxy(IStorage*,OLECHAR*,DWORD,DWORD,DWORD,IStream**); -void STDMETHODCALLTYPE IStorage_CreateStream_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_RemoteOpenStream_Proxy(IStorage*,const OLECHAR*,unsigned long,BYTE*,DWORD,DWORD,IStream**); -void STDMETHODCALLTYPE IStorage_RemoteOpenStream_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_CreateStorage_Proxy(IStorage*,OLECHAR*,DWORD,DWORD,DWORD,IStorage**); -void STDMETHODCALLTYPE IStorage_CreateStorage_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_OpenStorage_Proxy(IStorage*,OLECHAR*,IStorage*,DWORD,SNB,DWORD,IStorage**); -void STDMETHODCALLTYPE IStorage_OpenStorage_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_CopyTo_Proxy(IStorage*,DWORD,const IID*,SNB,IStorage*); -void STDMETHODCALLTYPE IStorage_CopyTo_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_MoveElementTo_Proxy(IStorage*,const OLECHAR*,IStorage*,const OLECHAR*,DWORD); -void STDMETHODCALLTYPE IStorage_MoveElementTo_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_Commit_Proxy(IStorage*,DWORD); -void STDMETHODCALLTYPE IStorage_Commit_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_Revert_Proxy(IStorage*); -void STDMETHODCALLTYPE IStorage_Revert_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_RemoteEnumElements_Proxy(IStorage*,DWORD,unsigned long,BYTE*,DWORD,IEnumSTATSTG**); -void STDMETHODCALLTYPE IStorage_RemoteEnumElements_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_DestroyElement_Proxy(IStorage*,OLECHAR*); -void STDMETHODCALLTYPE IStorage_DestroyElement_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_RenameElement_Proxy(IStorage*,const OLECHAR*,const OLECHAR*); -void STDMETHODCALLTYPE IStorage_RenameElement_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_SetElementTimes_Proxy(IStorage*,const OLECHAR*,const FILETIME*,const FILETIME*,const FILETIME*); -void STDMETHODCALLTYPE IStorage_SetElementTimes_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_SetClass_Proxy(IStorage*,REFCLSID); -void STDMETHODCALLTYPE IStorage_SetClass_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_SetStateBits_Proxy(IStorage*,DWORD,DWORD); -void STDMETHODCALLTYPE IStorage_SetStateBits_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IStorage_Stat_Proxy(IStorage*,STATSTG*,DWORD); -void STDMETHODCALLTYPE IStorage_Stat_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistFile_IsDirty_Proxy(IPersistFile*); -void STDMETHODCALLTYPE IPersistFile_IsDirty_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistFile_Load_Proxy(IPersistFile*,LPCOLESTR,DWORD); -void STDMETHODCALLTYPE IPersistFile_Load_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistFile_Save_Proxy(IPersistFile*,LPCOLESTR pszFileName,BOOL); -void STDMETHODCALLTYPE IPersistFile_Save_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistFile_SaveCompleted_Proxy(IPersistFile*,LPCOLESTR); -void STDMETHODCALLTYPE IPersistFile_SaveCompleted_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistFile_GetCurFile_Proxy(IPersistFile*,LPCSTR*); -void STDMETHODCALLTYPE IPersistFile_GetCurFile_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistStorage_IsDirty_Proxy(IPersistStorage*); -void STDMETHODCALLTYPE IPersistStorage_IsDirty_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistStorage_InitNew_Proxy(IPersistStorage*,IStorage*); -void STDMETHODCALLTYPE IPersistStorage_InitNew_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistStorage_Load_Proxy(IPersistStorage*,IStorage*); -void STDMETHODCALLTYPE IPersistStorage_Load_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistStorage_Save_Proxy(IPersistStorage*,IStorage*,BOOL); -void STDMETHODCALLTYPE IPersistStorage_Save_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistStorage_SaveCompleted_Proxy(IPersistStorage*,IStorage*); -void STDMETHODCALLTYPE IPersistStorage_SaveCompleted_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPersistStorage_HandsOffStorage_Proxy(IPersistStorage*); -void STDMETHODCALLTYPE IPersistStorage_HandsOffStorage_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE ILockBytes_RemoteReadAt_Proxy(ILockBytes*,ULARGE_INTEGER,BYTE*,ULONG,ULONG*); -void STDMETHODCALLTYPE ILockBytes_RemoteReadAt_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE ILockBytes_RemoteWriteAt_Proxy(ILockBytes*,ULARGE_INTEGER,BYTE*pv,ULONG,ULONG*); -void STDMETHODCALLTYPE ILockBytes_RemoteWriteAt_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE ILockBytes_Flush_Proxy(ILockBytes*); -void STDMETHODCALLTYPE ILockBytes_Flush_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE ILockBytes_SetSize_Proxy(ILockBytes*,ULARGE_INTEGER); -void STDMETHODCALLTYPE ILockBytes_SetSize_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE ILockBytes_LockRegion_Proxy(ILockBytes*,ULARGE_INTEGER,ULARGE_INTEGER,DWORD); -void STDMETHODCALLTYPE ILockBytes_LockRegion_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE ILockBytes_UnlockRegion_Proxy(ILockBytes*,ULARGE_INTEGER,ULARGE_INTEGER,DWORD); -void STDMETHODCALLTYPE ILockBytes_UnlockRegion_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE ILockBytes_Stat_Proxy(ILockBytes*,STATSTG*,DWORD); -void STDMETHODCALLTYPE ILockBytes_Stat_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumFORMATETC_RemoteNext_Proxy(IEnumFORMATETC*,ULONG,FORMATETC*,ULONG*); -void STDMETHODCALLTYPE IEnumFORMATETC_RemoteNext_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Skip_Proxy(IEnumFORMATETC*,ULONG); -void STDMETHODCALLTYPE IEnumFORMATETC_Skip_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Reset_Proxy(IEnumFORMATETC*); -void STDMETHODCALLTYPE IEnumFORMATETC_Reset_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Clone_Proxy(IEnumFORMATETC*,IEnumFORMATETC**); -void STDMETHODCALLTYPE IEnumFORMATETC_Clone_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Next_Proxy(IEnumFORMATETC*,ULONG,FORMATETC*,ULONG*); -HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Next_Stub(IEnumFORMATETC*,ULONG,FORMATETC*,ULONG*); -HRESULT STDMETHODCALLTYPE IEnumSTATDATA_RemoteNext_Proxy(IEnumSTATDATA*,ULONG,STATDATA*,ULONG*); -void STDMETHODCALLTYPE IEnumSTATDATA_RemoteNext_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Skip_Proxy(IEnumSTATDATA*,ULONG); -void STDMETHODCALLTYPE IEnumSTATDATA_Skip_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Reset_Proxy(IEnumSTATDATA*); -void STDMETHODCALLTYPE IEnumSTATDATA_Reset_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Clone_Proxy(IEnumSTATDATA*,IEnumSTATDATA**); -void STDMETHODCALLTYPE IEnumSTATDATA_Clone_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Next_Proxy(IEnumSTATDATA*,ULONG,STATDATA*,ULONG*); -HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Next_Stub(IEnumSTATDATA*,ULONG,STATDATA*,ULONG*); -HRESULT STDMETHODCALLTYPE IRootStorage_SwitchToFile_Proxy(IRootStorage*,LPCSTR); -void STDMETHODCALLTYPE IRootStorage_SwitchToFile_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IAdviseSink_RemoteOnDataChange_Proxy(IAdviseSink*,FORMATETC*,RemSTGMEDIUM*); -void STDMETHODCALLTYPE IAdviseSink_RemoteOnDataChange_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IAdviseSink_RemoteOnViewChange_Proxy(IAdviseSink*,DWORD,LONG); -void STDMETHODCALLTYPE IAdviseSink_RemoteOnViewChange_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IAdviseSink_RemoteOnRename_Proxy(IAdviseSink*,IMoniker*); -void STDMETHODCALLTYPE IAdviseSink_RemoteOnRename_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IAdviseSink_RemoteOnSave_Proxy(IAdviseSink*); -void STDMETHODCALLTYPE IAdviseSink_RemoteOnSave_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IAdviseSink_RemoteOnClose_Proxy(IAdviseSink*); -void STDMETHODCALLTYPE IAdviseSink_RemoteOnClose_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IAdviseSink_OnDataChange_Proxy(IAdviseSink*,FORMATETC*,STGMEDIUM*); -void STDMETHODCALLTYPE IAdviseSink_OnDataChange_Stub(IAdviseSink*,FORMATETC*,RemSTGMEDIUM*); -void STDMETHODCALLTYPE IAdviseSink_OnViewChange_Proxy(IAdviseSink*,DWORD,LONG); -void STDMETHODCALLTYPE IAdviseSink_OnViewChange_Stub(IAdviseSink*,DWORD,LONG); -void STDMETHODCALLTYPE IAdviseSink_OnRename_Proxy(IAdviseSink*,IMoniker*); -void STDMETHODCALLTYPE IAdviseSink_OnRename_Stub(IAdviseSink*,IMoniker*); -void STDMETHODCALLTYPE IAdviseSink_OnSave_Proxy(IAdviseSink*); -void STDMETHODCALLTYPE IAdviseSink_OnSave_Stub(IAdviseSink*); -void STDMETHODCALLTYPE IAdviseSink_OnClose_Proxy(IAdviseSink*); -HRESULT STDMETHODCALLTYPE IAdviseSink_OnClose_Stub(IAdviseSink*); -void STDMETHODCALLTYPE IAdviseSink2_RemoteOnLinkSrcChange_Proxy(IAdviseSink2*,IMoniker*); -void STDMETHODCALLTYPE IAdviseSink2_RemoteOnLinkSrcChange_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IAdviseSink2_OnLinkSrcChange_Proxy(IAdviseSink2*,IMoniker*); -void STDMETHODCALLTYPE IAdviseSink2_OnLinkSrcChange_Stub(IAdviseSink2*,IMoniker*); -HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetData_Proxy(IDataObject*,FORMATETC*,RemSTGMEDIUM**); -void STDMETHODCALLTYPE IDataObject_RemoteGetData_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataObject_RemoteGetDataHere_Proxy(IDataObject*,FORMATETC*,RemSTGMEDIUM**); -void STDMETHODCALLTYPE IDataObject_RemoteGetDataHere_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataObject_QueryGetData_Proxy(IDataObject*,FORMATETC*); -void STDMETHODCALLTYPE IDataObject_QueryGetData_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataObject_GetCanonicalFormatEtc_Proxy(IDataObject*,FORMATETC*,FORMATETC*); -void STDMETHODCALLTYPE IDataObject_GetCanonicalFormatEtc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataObject_RemoteSetData_Proxy(IDataObject*,FORMATETC*,RemSTGMEDIUM*,BOOL); -void STDMETHODCALLTYPE IDataObject_RemoteSetData_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataObject_EnumFormatEtc_Proxy(IDataObject*,DWORD,IEnumFORMATETC**); -void STDMETHODCALLTYPE IDataObject_EnumFormatEtc_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataObject_DAdvise_Proxy(IDataObject*,FORMATETC*,DWORD,IAdviseSink*,DWORD*); -void STDMETHODCALLTYPE IDataObject_DAdvise_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataObject_DUnadvise_Proxy(IDataObject*,DWORD); -void STDMETHODCALLTYPE IDataObject_DUnadvise_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataObject_EnumDAdvise_Proxy(IDataObject*,IEnumSTATDATA**); -void STDMETHODCALLTYPE IDataObject_EnumDAdvise_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataObject_GetData_Proxy(IDataObject*,FORMATETC*,STGMEDIUM*); -HRESULT STDMETHODCALLTYPE IDataObject_GetData_Stub(IDataObject*,FORMATETC*,RemSTGMEDIUM**); -HRESULT STDMETHODCALLTYPE IDataObject_GetDataHere_Proxy(IDataObject*,FORMATETC*,STGMEDIUM*); -HRESULT STDMETHODCALLTYPE IDataObject_GetDataHere_Stub(IDataObject*,FORMATETC*,RemSTGMEDIUM**); -HRESULT STDMETHODCALLTYPE IDataObject_SetData_Proxy(IDataObject*,FORMATETC*,STGMEDIUM*,BOOL); -HRESULT STDMETHODCALLTYPE IDataObject_SetData_Stub(IDataObject*,FORMATETC*,RemSTGMEDIUM*,BOOL); -HRESULT STDMETHODCALLTYPE IDataAdviseHolder_Advise_Proxy(IDataAdviseHolder*,IDataObject*,FORMATETC*,DWORD,IAdviseSink*,DWORD*); -void STDMETHODCALLTYPE IDataAdviseHolder_Advise_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataAdviseHolder_Unadvise_Proxy(IDataAdviseHolder*,DWORD); -void STDMETHODCALLTYPE IDataAdviseHolder_Unadvise_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataAdviseHolder_EnumAdvise_Proxy(IDataAdviseHolder*,IEnumSTATDATA**); -void STDMETHODCALLTYPE IDataAdviseHolder_EnumAdvise_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IDataAdviseHolder_SendOnDataChange_Proxy(IDataAdviseHolder*,IDataObject*,DWORD,DWORD); -void STDMETHODCALLTYPE IDataAdviseHolder_SendOnDataChange_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -DWORD STDMETHODCALLTYPE IMessageFilter_HandleInComingCall_Proxy(IMessageFilter*,DWORD,HTASK,DWORD,LPINTERFACEINFO); -void STDMETHODCALLTYPE IMessageFilter_HandleInComingCall_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -DWORD STDMETHODCALLTYPE IMessageFilter_RetryRejectedCall_Proxy(IMessageFilter*,HTASK,DWORD,DWORD); -void STDMETHODCALLTYPE IMessageFilter_RetryRejectedCall_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -DWORD STDMETHODCALLTYPE IMessageFilter_MessagePending_Proxy(IMessageFilter*,HTASK,DWORD,DWORD); -void STDMETHODCALLTYPE IMessageFilter_MessagePending_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_GetBuffer_Proxy(IRpcChannelBuffer*,RPCOLEMESSAGE*,REFIID); -void STDMETHODCALLTYPE IRpcChannelBuffer_GetBuffer_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_SendReceive_Proxy(IRpcChannelBuffer*,RPCOLEMESSAGE*,ULONG*); -void STDMETHODCALLTYPE IRpcChannelBuffer_SendReceive_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_FreeBuffer_Proxy(IRpcChannelBuffer*,RPCOLEMESSAGE*); -void STDMETHODCALLTYPE IRpcChannelBuffer_FreeBuffer_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_GetDestCtx_Proxy(IRpcChannelBuffer*,DWORD*,void**); -void STDMETHODCALLTYPE IRpcChannelBuffer_GetDestCtx_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_IsConnected_Proxy(IRpcChannelBuffer*); -void STDMETHODCALLTYPE IRpcChannelBuffer_IsConnected_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRpcProxyBuffer_Connect_Proxy(IRpcProxyBuffer*,IRpcChannelBuffer*pRpcChannelBuffer); -void STDMETHODCALLTYPE IRpcProxyBuffer_Connect_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IRpcProxyBuffer_Disconnect_Proxy(IRpcProxyBuffer*); -void STDMETHODCALLTYPE IRpcProxyBuffer_Disconnect_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRpcStubBuffer_Connect_Proxy(IRpcStubBuffer*,IUnknown*); -void STDMETHODCALLTYPE IRpcStubBuffer_Connect_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IRpcStubBuffer_Disconnect_Proxy(IRpcStubBuffer*); -void STDMETHODCALLTYPE IRpcStubBuffer_Disconnect_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRpcStubBuffer_Invoke_Proxy(IRpcStubBuffer*,RPCOLEMESSAGE*,IRpcChannelBuffer*); -void STDMETHODCALLTYPE IRpcStubBuffer_Invoke_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -IRpcStubBuffer*STDMETHODCALLTYPE IRpcStubBuffer_IsIIDSupported_Proxy(IRpcStubBuffer*,REFIID); -void STDMETHODCALLTYPE IRpcStubBuffer_IsIIDSupported_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -ULONG STDMETHODCALLTYPE IRpcStubBuffer_CountRefs_Proxy(IRpcStubBuffer*); -void STDMETHODCALLTYPE IRpcStubBuffer_CountRefs_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IRpcStubBuffer_DebugServerQueryInterface_Proxy(IRpcStubBuffer*,void**); -void STDMETHODCALLTYPE IRpcStubBuffer_DebugServerQueryInterface_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE IRpcStubBuffer_DebugServerRelease_Proxy(IRpcStubBuffer*,void*); -void STDMETHODCALLTYPE IRpcStubBuffer_DebugServerRelease_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPSFactoryBuffer_CreateProxy_Proxy(IPSFactoryBuffer*,IUnknown*,REFIID,IRpcProxyBuffer**,void**); -void STDMETHODCALLTYPE IPSFactoryBuffer_CreateProxy_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IPSFactoryBuffer_CreateStub_Proxy(IPSFactoryBuffer*,REFIID,IUnknown*,IRpcStubBuffer**); -void STDMETHODCALLTYPE IPSFactoryBuffer_CreateStub_Stub(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,PDWORD); -void STDMETHODCALLTYPE SNB_to_xmit(SNB*,RemSNB**); -void STDMETHODCALLTYPE SNB_from_xmit(RemSNB*,SNB*); -void STDMETHODCALLTYPE SNB_free_inst(SNB*); -void STDMETHODCALLTYPE SNB_free_xmit(RemSNB*); -HRESULT STDMETHODCALLTYPE IEnumUnknown_Next_Proxy(IEnumUnknown*,ULONG,IUnknown**,ULONG*); -HRESULT STDMETHODCALLTYPE IEnumUnknown_Next_Stub(IEnumUnknown*,ULONG,IUnknown**,ULONG*); -HRESULT STDMETHODCALLTYPE IEnumMoniker_Next_Proxy(IEnumMoniker*,ULONG,IMoniker**,ULONG*); -HRESULT STDMETHODCALLTYPE IEnumMoniker_Next_Stub(IEnumMoniker*,ULONG,IMoniker**,ULONG*); -HRESULT STDMETHODCALLTYPE IMoniker_BindToObject_Proxy(IMoniker*,IBindCtx*,IMoniker*,REFIID,void**); -HRESULT STDMETHODCALLTYPE IMoniker_BindToObject_Stub(IMoniker*,IBindCtx*,IMoniker*,REFIID,IUnknown**); -HRESULT STDMETHODCALLTYPE IMoniker_BindToStorage_Proxy(IMoniker*,IBindCtx*,IMoniker*,REFIID,void**); -HRESULT STDMETHODCALLTYPE IMoniker_BindToStorage_Stub(IMoniker*,IBindCtx*,IMoniker*,REFIID,IUnknown**); -HRESULT STDMETHODCALLTYPE IEnumString_Next_Proxy(IEnumString*,ULONG,LPCSTR*,ULONG*); -HRESULT STDMETHODCALLTYPE IEnumString_Next_Stub(IEnumString*,ULONG,LPCSTR*,ULONG*); -HRESULT STDMETHODCALLTYPE IStream_Read_Proxy(IStream*,void*,ULONG,ULONG*); -HRESULT STDMETHODCALLTYPE IStream_Read_Stub(IStream*,BYTE*,ULONG,ULONG*); -HRESULT STDMETHODCALLTYPE IStream_Write_Proxy(IStream*,void*,ULONG,ULONG*); -HRESULT STDMETHODCALLTYPE IStream_Write_Stub(IStream*,BYTE*,ULONG,ULONG*); -HRESULT STDMETHODCALLTYPE IStream_Seek_Proxy(IStream*,LARGE_INTEGER,DWORD,ULARGE_INTEGER*); -HRESULT STDMETHODCALLTYPE IStream_Seek_Stub(IStream*,LARGE_INTEGER,DWORD,ULARGE_INTEGER*); -HRESULT STDMETHODCALLTYPE IStream_CopyTo_Proxy(IStream*,IStream*,ULARGE_INTEGER,ULARGE_INTEGER*,ULARGE_INTEGER*); -HRESULT STDMETHODCALLTYPE IStream_CopyTo_Stub(IStream*,IStream*,ULARGE_INTEGER,ULARGE_INTEGER*,ULARGE_INTEGER*); -HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Next_Proxy(IEnumSTATSTG*,ULONG,STATSTG*,ULONG*); -HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Next_Stub(IEnumSTATSTG*,ULONG,STATSTG*,ULONG*); -HRESULT STDMETHODCALLTYPE IStorage_OpenStream_Proxy(IStorage*,OLECHAR*,void*,DWORD,DWORD,IStream**); -HRESULT STDMETHODCALLTYPE IStorage_OpenStream_Stub(IStorage*,OLECHAR*,unsigned long,BYTE*,DWORD,DWORD,IStream** ); -HRESULT STDMETHODCALLTYPE IStorage_EnumElements_Proxy(IStorage*,DWORD,void*,DWORD,IEnumSTATSTG**); -HRESULT STDMETHODCALLTYPE IStorage_EnumElements_Stub(IStorage*,DWORD,unsigned long,BYTE*,DWORD,IEnumSTATSTG**); -HRESULT STDMETHODCALLTYPE ILockBytes_ReadAt_Proxy(ILockBytes*,ULARGE_INTEGER,void*,ULONG,ULONG*); -HRESULT STDMETHODCALLTYPE ILockBytes_ReadAt_Stub(ILockBytes*,ULARGE_INTEGER,BYTE*,ULONG,ULONG*); -HRESULT STDMETHODCALLTYPE ILockBytes_WriteAt_Proxy(ILockBytes*,ULARGE_INTEGER,const void*,ULONG,ULONG*); -HRESULT STDMETHODCALLTYPE ILockBytes_WriteAt_Stub(ILockBytes*,ULARGE_INTEGER,BYTE*,ULONG,ULONG*); -#ifdef COBJMACROS -#define IMarshal_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p) -#define IMarshal_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMarshal_Release(This) (This)->lpVtbl->Release(This) -#define IMarshal_GetUnmarshalClass(T,r,pv,dw,pvD,m,pC) (T)->lpVtbl->GetUnmarshalClass(T,r,pv,dw,pvD,m,pC) -#define IMarshal_GetMarshalSizeMax(T,r,pv,dw,pD,m,p) (T)->lpVtbl->GetMarshalSizeMax(T,r,pv,dw,pD,m,p) -#define IMarshal_MarshalInterface(T,p,r,pv,dw,pvD,m) (T)->lpVtbl->MarshalInterface(T,p,r,pv,dw,pv,m) -#define IMarshal_UnmarshalInterface(T,p,r,pp) (T)->lpVtbl->UnmarshalInterface(T,p,r,pp) -#define IMarshal_ReleaseMarshalData(T,p) (T)->lpVtbl->ReleaseMarshalData(T,p) -#define IMarshal_DisconnectObject(T,d) (T)->lpVtbl->DisconnectObject(T,d) -#define IMalloc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMalloc_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMalloc_Release(This) (This)->lpVtbl->Release(This) -#define IMalloc_Alloc(This,cb) (This)->lpVtbl->Alloc(This,cb) -#define IMalloc_Realloc(This,pv,cb) (This)->lpVtbl->Realloc(This,pv,cb) -#define IMalloc_Free(This,pv) (This)->lpVtbl->Free(This,pv) -#define IMalloc_GetSize(This,pv) (This)->lpVtbl->GetSize(This,pv) -#define IMalloc_DidAlloc(This,pv) (This)->lpVtbl->DidAlloc(This,pv) -#define IMalloc_HeapMinimize(This) (This)->lpVtbl->HeapMinimize(This) -#define IMallocSpy_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p) -#define IMallocSpy_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMallocSpy_Release(This) (This)->lpVtbl->Release(This) -#define IMallocSpy_PreAlloc(T,c) (T)->lpVtbl->PreAlloc(T,c) -#define IMallocSpy_PostAlloc(This,p) (This)->lpVtbl->PostAlloc(This,p) -#define IMallocSpy_PreFree(This,p,f) (This)->lpVtbl->PreFree(This,p,f) -#define IMallocSpy_PostFree(This,fSpyed) (This)->lpVtbl->PostFree(This,fSpyed) -#define IMallocSpy_PreRealloc(T,p,c,pp,f) (T)->lpVtbl->PreRealloc(T,p,c,pp,f) -#define IMallocSpy_PostRealloc(T,p,f) (T)->lpVtbl->PostRealloc(T,p,f) -#define IMallocSpy_PreGetSize(This,p,f) (This)->lpVtbl->PreGetSize(This,p,f) -#define IMallocSpy_PostGetSize(This,cbActual,fSpyed) (This)->lpVtbl->PostGetSize(This,cbActual,fSpyed) -#define IMallocSpy_PreDidAlloc(This,pRequest,fSpyed) (This)->lpVtbl->PreDidAlloc(This,pRequest,fSpyed) -#define IMallocSpy_PostDidAlloc(This,pRequest,fSpyed,fActual) (This)->lpVtbl->PostDidAlloc(This,pRequest,fSpyed,fActual) -#define IMallocSpy_PreHeapMinimize(T) (T)->lpVtbl->PreHeapMinimize(T) -#define IMallocSpy_PostHeapMinimize(T) (T)->lpVtbl->PostHeapMinimize(T) -#define IStdMarshalInfo_QueryInterface(T,r,p) (This)->lpVtbl->QueryInterface(T,r,p) -#define IStdMarshalInfo_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IStdMarshalInfo_Release(This) (This)->lpVtbl->Release(This) -#define IStdMarshalInfo_GetClassForHandler(This,D,p,C) (This)->lpVtbl->GetClassForHandler(This,D,p,C) -#define IExternalConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IExternalConnection_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IExternalConnection_Release(This) (This)->lpVtbl->Release(This) -#define IExternalConnection_AddConnection(T,e,r) (T)->lpVtbl->AddConnection(T,e,r) -#define IExternalConnection_ReleaseConnection(This,e,r,f) (This)->lpVtbl->ReleaseConnection(This,e,r,f) -#define IEnumUnknown_QueryInterface(T,r,p) (This)->lpVtbl->QueryInterface(T,r,p) -#define IEnumUnknown_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IEnumUnknown_Release(This) (This)->lpVtbl->Release(This) -#define IEnumUnknown_Next(This,celt,rgelt,p) (This)->lpVtbl->Next(This,celt,rgelt,p) -#define IEnumUnknown_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) -#define IEnumUnknown_Reset(This) (This)->lpVtbl->Reset(This) -#define IEnumUnknown_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum) -#define IBindCtx_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p) -#define IBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IBindCtx_Release(This) (This)->lpVtbl->Release(This) -#define IBindCtx_RegisterObjectBound(T,p) (T)->lpVtbl->RegisterObjectBound(T,p) -#define IBindCtx_RevokeObjectBound(T,p) (T)->lpVtbl->RevokeObjectBound(T,p) -#define IBindCtx_ReleaseBoundObjects(T) (T)->lpVtbl->ReleaseBoundObjects(T) -#define IBindCtx_SetBindOptions(T,p) (T)->lpVtbl->SetBindOptions(T,p) -#define IBindCtx_GetBindOptions(This,pbindopts) (This)->lpVtbl->GetBindOptions(This,pbindopts) -#define IBindCtx_GetRunningObjectTable(This,pprot) (This)->lpVtbl->GetRunningObjectTable(This,pprot) -#define IBindCtx_RegisterObjectParam(This,pszKey,punk) (This)->lpVtbl->RegisterObjectParam(This,pszKey,punk) -#define IBindCtx_GetObjectParam(This,pszKey,ppunk) (This)->lpVtbl->GetObjectParam(This,pszKey,ppunk) -#define IBindCtx_EnumObjectParam(This,ppenum) (This)->lpVtbl->EnumObjectParam(This,ppenum) -#define IBindCtx_RevokeObjectParam(This,pszKey) (This)->lpVtbl->RevokeObjectParam(This,pszKey) -#define IEnumMoniker_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p) -#define IEnumMoniker_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IEnumMoniker_Release(This) (This)->lpVtbl->Release(This) -#define IEnumMoniker_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched) -#define IEnumMoniker_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) -#define IEnumMoniker_Reset(This) (This)->lpVtbl->Reset(This) -#define IEnumMoniker_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum) -#define IRunnableObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IRunnableObject_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IRunnableObject_Release(This) (This)->lpVtbl->Release(This) -#define IRunnableObject_GetRunningClass(This,lpClsid) (This)->lpVtbl->GetRunningClass(This,lpClsid) -#define IRunnableObject_Run(This,pbc) (This)->lpVtbl->Run(This,pbc) -#define IRunnableObject_IsRunning(This) (This)->lpVtbl->IsRunning(This) -#define IRunnableObject_LockRunning(This,fLock,fLastUnlockCloses) (This)->lpVtbl->LockRunning(This,fLock,fLastUnlockCloses) -#define IRunnableObject_SetContainedObject(This,fContained) (This)->lpVtbl->SetContainedObject(This,fContained) -#define IRunningObjectTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IRunningObjectTable_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IRunningObjectTable_Release(This) (This)->lpVtbl->Release(This) -#define IRunningObjectTable_Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister) (This)->lpVtbl->Register(This,grfFlags,punkObject,pmkObjectName,pdwRegister) -#define IRunningObjectTable_Revoke(This,dwRegister) (This)->lpVtbl->Revoke(This,dwRegister) -#define IRunningObjectTable_IsRunning(This,pmkObjectName) (This)->lpVtbl->IsRunning(This,pmkObjectName) -#define IRunningObjectTable_GetObject(This,pmkObjectName,ppunkObject) (This)->lpVtbl->GetObject(This,pmkObjectName,ppunkObject) -#define IRunningObjectTable_NoteChangeTime(This,dwRegister,pfiletime) (This)->lpVtbl->NoteChangeTime(This,dwRegister,pfiletime) -#define IRunningObjectTable_GetTimeOfLastChange(This,pmkObjectName,pfiletime) (This)->lpVtbl->GetTimeOfLastChange(This,pmkObjectName,pfiletime) -#define IRunningObjectTable_EnumRunning(This,ppenumMoniker) (This)->lpVtbl->EnumRunning(This,ppenumMoniker) -#define IPersist_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p) -#define IPersist_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IPersist_Release(This) (This)->lpVtbl->Release(This) -#define IPersist_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID) -#define IPersistStream_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p) -#define IPersistStream_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IPersistStream_Release(This) (This)->lpVtbl->Release(This) -#define IPersistStream_GetClassID(T,p) (T)->lpVtbl->GetClassID(T,p) -#define IPersistStream_IsDirty(This) (This)->lpVtbl->IsDirty(This) -#define IPersistStream_Load(This,pStm) (This)->lpVtbl->Load(This,pStm) -#define IPersistStream_Save(T,p,f) (T)->lpVtbl->Save(T,p,f) -#define IPersistStream_GetSizeMax(T,p) (T)->lpVtbl->GetSizeMax(T,p) -#define IMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMoniker_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMoniker_Release(This) (This)->lpVtbl->Release(This) -#define IMoniker_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID) -#define IMoniker_IsDirty(This) (This)->lpVtbl->IsDirty(This) -#define IMoniker_Load(This,pStm) (This)->lpVtbl->Load(This,pStm) -#define IMoniker_Save(This,pStm,fClearDirty) (This)->lpVtbl->Save(This,pStm,fClearDirty) -#define IMoniker_GetSizeMax(This,pcbSize) (This)->lpVtbl->GetSizeMax(This,pcbSize) -#define IMoniker_BindToObject(T,p,pm,r,pp) (T)->lpVtbl->BindToObject(T,p,pm,r,pp) -#define IMoniker_BindToStorage(This,pbc,pmkToLeft,riid,ppvObj) (This)->lpVtbl->BindToStorage(This,pbc,pmkToLeft,riid,ppvObj) -#define IMoniker_Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced) (This)->lpVtbl->Reduce(This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced) -#define IMoniker_ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite) (This)->lpVtbl->ComposeWith(This,pmkRight,fOnlyIfNotGeneric,ppmkComposite) -#define IMoniker_Enum(T,f,pp) (T)->lpVtbl->Enum(T,f,pp) -#define IMoniker_IsEqual(This,p) (This)->lpVtbl->IsEqual(This,p) -#define IMoniker_Hash(This,pdwHash) (This)->lpVtbl->Hash(This,pdwHash) -#define IMoniker_IsRunning(T,pbc,Left,N) (T)->lpVtbl->IsRunning(T,pbc,Left,N) -#define IMoniker_GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime) (This)->lpVtbl->GetTimeOfLastChange(This,pbc,pmkToLeft,pFileTime) -#define IMoniker_Inverse(This,ppmk) (This)->lpVtbl->Inverse(This,ppmk) -#define IMoniker_CommonPrefixWith(This,pmkOther,ppmkPrefix) (This)->lpVtbl->CommonPrefixWith(This,pmkOther,ppmkPrefix) -#define IMoniker_RelativePathTo(This,pmkOther,ppmkRelPath) (This)->lpVtbl->RelativePathTo(This,pmkOther,ppmkRelPath) -#define IMoniker_GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName) (This)->lpVtbl->GetDisplayName(This,pbc,pmkToLeft,ppszDisplayName) -#define IMoniker_ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut) (This)->lpVtbl->ParseDisplayName(This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut) -#define IMoniker_IsSystemMoniker(This,pdwMksys) (This)->lpVtbl->IsSystemMoniker(This,pdwMksys) -#define IROTData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IROTData_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IROTData_Release(This) (This)->lpVtbl->Release(This) -#define IROTData_GetComparisonData(This,pbData,cbMax,pcbData) (This)->lpVtbl->GetComparisonData(This,pbData,cbMax,pcbData) -#define IEnumString_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IEnumString_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IEnumString_Release(This) (This)->lpVtbl->Release(This) -#define IEnumString_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched) -#define IEnumString_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) -#define IEnumString_Reset(This) (This)->lpVtbl->Reset(This) -#define IEnumString_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum) -#define IStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IStream_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IStream_Release(This) (This)->lpVtbl->Release(This) -#define IStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead) -#define IStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten) -#define IStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition) -#define IStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize) -#define IStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten) -#define IStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags) -#define IStream_Revert(This) (This)->lpVtbl->Revert(This) -#define IStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType) -#define IStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType) -#define IStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag) -#define IStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm) -#define IEnumSTATSTG_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p) -#define IEnumSTATSTG_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IEnumSTATSTG_Release(This) (This)->lpVtbl->Release(This) -#define IEnumSTATSTG_Next(T,c,r,p) (T)->lpVtbl->Next(T,c,r,p) -#define IEnumSTATSTG_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) -#define IEnumSTATSTG_Reset(This) (This)->lpVtbl->Reset(This) -#define IEnumSTATSTG_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum) -#define IStorage_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p) -#define IStorage_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IStorage_Release(This) (This)->lpVtbl->Release(This) -#define IStorage_CreateStream(T,p,g,r1,r2,pp) (T)->lpVtbl->CreateStream(T,p,g,r1,r2,pp) -#define IStorage_OpenStream(T,p,r1,g,r2,pp) (T)->lpVtbl->OpenStream(T,p,r1,g,r2,pp) -#define IStorage_CreateStorage(T,p,g,d,r2,pp) (This)->lpVtbl->CreateStorage(T,p,g,d,r2,pp) -#define IStorage_OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg) (This)->lpVtbl->OpenStorage(This,pwcsName,pstgPriority,grfMode,snbExclude,reserved,ppstg) -#define IStorage_CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest) (This)->lpVtbl->CopyTo(This,ciidExclude,rgiidExclude,snbExclude,pstgDest) -#define IStorage_MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags) (This)->lpVtbl->MoveElementTo(This,pwcsName,pstgDest,pwcsNewName,grfFlags) -#define IStorage_Commit(This,g) (This)->lpVtbl->Commit(This,g) -#define IStorage_Revert(This) (This)->lpVtbl->Revert(This) -#define IStorage_EnumElements(This,reserved1,reserved2,reserved3,ppenum) (This)->lpVtbl->EnumElements(This,reserved1,reserved2,reserved3,ppenum) -#define IStorage_DestroyElement(This,pwcsName) (This)->lpVtbl->DestroyElement(This,pwcsName) -#define IStorage_RenameElement(This,pwcsOldName,pwcsNewName) (This)->lpVtbl->RenameElement(This,pwcsOldName,pwcsNewName) -#define IStorage_SetElementTimes(This,pwcsName,pctime,patime,pmtime) (This)->lpVtbl->SetElementTimes(This,pwcsName,pctime,patime,pmtime) -#define IStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid) -#define IStorage_SetStateBits(This,grfStateBits,grfMask) (This)->lpVtbl->SetStateBits(This,grfStateBits,grfMask) -#define IStorage_Stat(This,p,g) (This)->lpVtbl->Stat(This,p,g) -#define IPersistFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IPersistFile_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IPersistFile_Release(This) (This)->lpVtbl->Release(This) -#define IPersistFile_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID) -#define IPersistFile_IsDirty(This) (This)->lpVtbl->IsDirty(This) -#define IPersistFile_Load(This,pszFileName,dwMode) (This)->lpVtbl->Load(This,pszFileName,dwMode) -#define IPersistFile_Save(This,pszFileName,fRemember) (This)->lpVtbl->Save(This,pszFileName,fRemember) -#define IPersistFile_SaveCompleted(This,pszFileName) (This)->lpVtbl->SaveCompleted(This,pszFileName) -#define IPersistFile_GetCurFile(This,ppszFileName) (This)->lpVtbl->GetCurFile(This,ppszFileName) -#define IPersistStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IPersistStorage_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IPersistStorage_Release(This) (This)->lpVtbl->Release(This) -#define IPersistStorage_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID) -#define IPersistStorage_IsDirty(This) (This)->lpVtbl->IsDirty(This) -#define IPersistStorage_InitNew(This,pStg) (This)->lpVtbl->InitNew(This,pStg) -#define IPersistStorage_Load(This,pStg) (This)->lpVtbl->Load(This,pStg) -#define IPersistStorage_Save(This,pStgSave,fSameAsLoad) (This)->lpVtbl->Save(This,pStgSave,fSameAsLoad) -#define IPersistStorage_SaveCompleted(This,pStgNew) (This)->lpVtbl->SaveCompleted(This,pStgNew) -#define IPersistStorage_HandsOffStorage(This) (This)->lpVtbl->HandsOffStorage(This) -#define ILockBytes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define ILockBytes_AddRef(This) (This)->lpVtbl->AddRef(This) -#define ILockBytes_Release(This) (This)->lpVtbl->Release(This) -#define ILockBytes_ReadAt(This,ulOffset,pv,cb,pcbRead) (This)->lpVtbl->ReadAt(This,ulOffset,pv,cb,pcbRead) -#define ILockBytes_WriteAt(This,ulOffset,pv,cb,pcbWritten) (This)->lpVtbl->WriteAt(This,ulOffset,pv,cb,pcbWritten) -#define ILockBytes_Flush(This) (This)->lpVtbl->Flush(This) -#define ILockBytes_SetSize(This,cb) (This)->lpVtbl->SetSize(This,cb) -#define ILockBytes_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType) -#define ILockBytes_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType) -#define ILockBytes_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag) -#define IEnumFORMATETC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IEnumFORMATETC_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IEnumFORMATETC_Release(This) (This)->lpVtbl->Release(This) -#define IEnumFORMATETC_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched) -#define IEnumFORMATETC_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) -#define IEnumFORMATETC_Reset(This) (This)->lpVtbl->Reset(This) -#define IEnumFORMATETC_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum) -#define IEnumSTATDATA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IEnumSTATDATA_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IEnumSTATDATA_Release(This) (This)->lpVtbl->Release(This) -#define IEnumSTATDATA_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched) -#define IEnumSTATDATA_Skip(This,celt) (This)->lpVtbl->Skip(This,celt) -#define IEnumSTATDATA_Reset(This) (This)->lpVtbl->Reset(This) -#define IEnumSTATDATA_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum) -#define IRootStorage_QueryInterface(T,r,O) (T)->lpVtbl->QueryInterface(T,r,O) -#define IRootStorage_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IRootStorage_Release(This) (This)->lpVtbl->Release(This) -#define IRootStorage_SwitchToFile(This,pszFile) (This)->lpVtbl->SwitchToFile(This,pszFile) -#define IAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IAdviseSink_Release(This) (This)->lpVtbl->Release(This) -#define IAdviseSink_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed) -#define IAdviseSink_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex) -#define IAdviseSink_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk) -#define IAdviseSink_OnSave(This) (This)->lpVtbl->OnSave(This) -#define IAdviseSink_OnClose(This) (This)->lpVtbl->OnClose(This) -#define IAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IAdviseSink2_Release(This) (This)->lpVtbl->Release(This) -#define IAdviseSink2_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->OnDataChange(This,pFormatetc,pStgmed) -#define IAdviseSink2_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->OnViewChange(This,dwAspect,lindex) -#define IAdviseSink2_OnRename(This,pmk) (This)->lpVtbl->OnRename(This,pmk) -#define IAdviseSink2_OnSave(This) (This)->lpVtbl->OnSave(This) -#define IAdviseSink2_OnClose(This) (This)->lpVtbl->OnClose(This) -#define IAdviseSink2_OnLinkSrcChange(This,pmk) (This)->lpVtbl->OnLinkSrcChange(This,pmk) -#define IDataObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IDataObject_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDataObject_Release(This) (This)->lpVtbl->Release(This) -#define IDataObject_GetData(This,pformatetcIn,pmedium) (This)->lpVtbl->GetData(This,pformatetcIn,pmedium) -#define IDataObject_GetDataHere(This,pformatetc,pmedium) (This)->lpVtbl->GetDataHere(This,pformatetc,pmedium) -#define IDataObject_QueryGetData(This,pformatetc) (This)->lpVtbl->QueryGetData(This,pformatetc) -#define IDataObject_GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut) (This)->lpVtbl->GetCanonicalFormatEtc(This,pformatectIn,pformatetcOut) -#define IDataObject_SetData(This,pformatetc,pmedium,fRelease) (This)->lpVtbl->SetData(This,pformatetc,pmedium,fRelease) -#define IDataObject_EnumFormatEtc(This,dwDirection,ppenumFormatEtc) (This)->lpVtbl->EnumFormatEtc(This,dwDirection,ppenumFormatEtc) -#define IDataObject_DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection) (This)->lpVtbl->DAdvise(This,pformatetc,advf,pAdvSink,pdwConnection) -#define IDataObject_DUnadvise(This,dwConnection) (This)->lpVtbl->DUnadvise(This,dwConnection) -#define IDataObject_EnumDAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumDAdvise(This,ppenumAdvise) -#define IDataAdviseHolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IDataAdviseHolder_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IDataAdviseHolder_Release(This) (This)->lpVtbl->Release(This) -#define IDataAdviseHolder_Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection) (This)->lpVtbl->Advise(This,pDataObject,pFetc,advf,pAdvise,pdwConnection) -#define IDataAdviseHolder_Unadvise(This,dwConnection) (This)->lpVtbl->Unadvise(This,dwConnection) -#define IDataAdviseHolder_EnumAdvise(This,ppenumAdvise) (This)->lpVtbl->EnumAdvise(This,ppenumAdvise) -#define IDataAdviseHolder_SendOnDataChange(This,pDataObject,dwReserved,advf) (This)->lpVtbl->SendOnDataChange(This,pDataObject,dwReserved,advf) -#define IMessageFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IMessageFilter_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IMessageFilter_Release(This) (This)->lpVtbl->Release(This) -#define IMessageFilter_HandleInComingCall(T,d,h,dw,lp) (T)->lpVtbl->HandleInComingCall(T,d,h,dw,lp) -#define IMessageFilter_RetryRejectedCall(s,C,T,R) (s)->lpVtbl->RetryRejectedCall(s,C,T,R) -#define IMessageFilter_MessagePending(s,C,T,P) (s)->lpVtbl->MessagePending(This,C,T,P) -#define IRpcChannelBuffer_QueryInterface(T,r,p) (T)->lpVtbl->QueryInterface(T,r,p) -#define IRpcChannelBuffer_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IRpcChannelBuffer_Release(This) (This)->lpVtbl->Release(This) -#define IRpcChannelBuffer_GetBuffer(This,pMessage,riid) (This)->lpVtbl->GetBuffer(This,pMessage,riid) -#define IRpcChannelBuffer_SendReceive(T,p,pS) (T)->lpVtbl->SendReceive(T,p,pS) -#define IRpcChannelBuffer_FreeBuffer(T,p) (T)->lpVtbl->FreeBuffer(T,p) -#define IRpcChannelBuffer_GetDestCtx(This,pdwDestContext,ppvDestContext) (This)->lpVtbl->GetDestCtx(This,pdwDestContext,ppvDestContext) -#define IRpcChannelBuffer_IsConnected(This) (This)->lpVtbl->IsConnected(This) -#define IRpcProxyBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IRpcProxyBuffer_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IRpcProxyBuffer_Release(This) (This)->lpVtbl->Release(This) -#define IRpcProxyBuffer_Connect(This,pRpcChannelBuffer) (This)->lpVtbl->Connect(This,pRpcChannelBuffer) -#define IRpcProxyBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This) -#define IRpcStubBuffer_QueryInterface(T,r,pp) (T)->lpVtbl->QueryInterface(T,r,pp) -#define IRpcStubBuffer_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IRpcStubBuffer_Release(This) (This)->lpVtbl->Release(This) -#define IRpcStubBuffer_Connect(This,p) (This)->lpVtbl->Connect(This,p) -#define IRpcStubBuffer_Disconnect(This) (This)->lpVtbl->Disconnect(This) -#define IRpcStubBuffer_Invoke(T,_prpcmsg,_p) (T)->lpVtbl->Invoke(This,_prpcmsg,_p) -#define IRpcStubBuffer_IsIIDSupported(T,d) (T)->lpVtbl->IsIIDSupported(T,d) -#define IRpcStubBuffer_CountRefs(This) (This)->lpVtbl->CountRefs(This) -#define IRpcStubBuffer_DebugServerQueryInterface(T,p) (T)->lpVtbl->DebugServerQueryInterface(T,p) -#define IRpcStubBuffer_DebugServerRelease(T,p) (T)->lpVtbl->DebugServerRelease(T,p) -#define IPSFactoryBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) -#define IPSFactoryBuffer_AddRef(This) (This)->lpVtbl->AddRef(This) -#define IPSFactoryBuffer_Release(This) (This)->lpVtbl->Release(This) -#define IPSFactoryBuffer_CreateProxy(T,U,r,P,p) (T)->lpVtbl->CreateProxy(T,U,r,P,p) -#define IPSFactoryBuffer_CreateStub(T,r,U,p) (T)->lpVtbl->CreateStub(T,r,U,p) -#endif /* COBJMACROS */ - -#endif diff --git a/winsup/w32api/include/ocidl.h b/winsup/w32api/include/ocidl.h deleted file mode 100644 index 2618d841d..000000000 --- a/winsup/w32api/include/ocidl.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _OCIDL_H -#define _OCIDL_H - -#include -#include - -#endif diff --git a/winsup/w32api/include/odbcinst.h b/winsup/w32api/include/odbcinst.h deleted file mode 100644 index 449e781f0..000000000 --- a/winsup/w32api/include/odbcinst.h +++ /dev/null @@ -1,145 +0,0 @@ -#ifndef _ODBCINST_H -#define _ODBCINST_H -#include -#ifdef __cplusplus -extern "C" { -#endif -#ifndef ODBCVER -#define ODBCVER 0x0351 -#endif -#define INSTAPI __stdcall -#define ODBC_ADD_DSN 1 -#define ODBC_CONFIG_DSN 2 -#define ODBC_REMOVE_DSN 3 -#if (ODBCVER >= 0x0250) -#define ODBC_ADD_SYS_DSN 4 -#define ODBC_CONFIG_SYS_DSN 5 -#define ODBC_REMOVE_SYS_DSN 6 -#define ODBC_INSTALL_INQUIRY 1 -#define ODBC_INSTALL_COMPLETE 2 -#define ODBC_INSTALL_DRIVER 1 -#define ODBC_REMOVE_DRIVER 2 -#define ODBC_CONFIG_DRIVER 3 -#define ODBC_CONFIG_DRIVER_MAX 100 -#endif /* (ODBCVER >= 0x0250) */ -#if (ODBCVER >= 0x0300) -#define ODBC_REMOVE_DEFAULT_DSN 7 -#define ODBC_BOTH_DSN 0 -#define ODBC_USER_DSN 1 -#define ODBC_SYSTEM_DSN 2 -#define ODBC_ERROR_GENERAL_ERR 1 -#define ODBC_ERROR_INVALID_BUFF_LEN 2 -#define ODBC_ERROR_INVALID_HWND 3 -#define ODBC_ERROR_INVALID_STR 4 -#define ODBC_ERROR_INVALID_REQUEST_TYPE 5 -#define ODBC_ERROR_COMPONENT_NOT_FOUND 6 -#define ODBC_ERROR_INVALID_NAME 7 -#define ODBC_ERROR_INVALID_KEYWORD_VALUE 8 -#define ODBC_ERROR_INVALID_DSN 9 -#define ODBC_ERROR_INVALID_INF 10 -#define ODBC_ERROR_REQUEST_FAILED 11 -#define ODBC_ERROR_INVALID_PATH 12 -#define ODBC_ERROR_LOAD_LIB_FAILED 13 -#define ODBC_ERROR_INVALID_PARAM_SEQUENCE 14 -#define ODBC_ERROR_INVALID_LOG_FILE 15 -#define ODBC_ERROR_USER_CANCELED 16 -#define ODBC_ERROR_USAGE_UPDATE_FAILED 17 -#define ODBC_ERROR_CREATE_DSN_FAILED 18 -#define ODBC_ERROR_WRITING_SYSINFO_FAILED 19 -#define ODBC_ERROR_REMOVE_DSN_FAILED 20 -#define ODBC_ERROR_OUT_OF_MEM 21 -#define ODBC_ERROR_OUTPUT_STRING_TRUNCATED 22 -#endif /* ODBCVER >= 0x0300 */ - -#ifndef RC_INVOKED -BOOL INSTAPI ConfigDSN(HWND,WORD,LPCSTR,LPCSTR); -BOOL INSTAPI ConfigDSNW(HWND,WORD,LPCWSTR,LPCWSTR); -BOOL INSTAPI ConfigTranslator(HWND,DWORD*); -BOOL INSTAPI SQLConfigDataSource(HWND,WORD,LPCSTR,LPCSTR); -BOOL INSTAPI SQLConfigDataSourceW(HWND,WORD,LPCWSTR,LPCWSTR); -BOOL INSTAPI SQLCreateDataSource(HWND,LPCSTR); -BOOL INSTAPI SQLCreateDataSourceW(HWND,LPCWSTR); -BOOL INSTAPI SQLGetAvailableDrivers(LPCSTR,LPSTR,WORD,WORD*); -BOOL INSTAPI SQLGetAvailableDriversW(LPCWSTR,LPWSTR,WORD,WORD*); -BOOL INSTAPI SQLGetInstalledDrivers(LPSTR,WORD,WORD*); -BOOL INSTAPI SQLGetInstalledDriversW(LPWSTR,WORD,WORD*); -int INSTAPI SQLGetPrivateProfileString(LPCSTR,LPCSTR,LPCSTR,LPSTR,int,LPCSTR); -int INSTAPI SQLGetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,int,LPCWSTR); -BOOL INSTAPI SQLGetTranslator(HWND,LPSTR,WORD,WORD*,LPSTR,WORD,WORD*,DWORD*); -BOOL INSTAPI SQLGetTranslatorW(HWND,LPWSTR,WORD,WORD*,LPWSTR,WORD,WORD*,DWORD*); -BOOL INSTAPI SQLInstallDriver(LPCSTR,LPCSTR,LPSTR,WORD,WORD*); -BOOL INSTAPI SQLInstallDriverManager(LPSTR,WORD,WORD*); -BOOL INSTAPI SQLInstallDriverManagerW(LPWSTR,WORD,WORD*); -BOOL INSTAPI SQLInstallDriverW(LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*); -BOOL INSTAPI SQLInstallODBC(HWND,LPCSTR,LPCSTR,LPCSTR); -BOOL INSTAPI SQLInstallODBCW(HWND,LPCWSTR,LPCWSTR,LPCWSTR); -BOOL INSTAPI SQLManageDataSources(HWND); -BOOL INSTAPI SQLRemoveDefaultDataSource(void); -BOOL INSTAPI SQLRemoveDSNFromIni(LPCSTR); -BOOL INSTAPI SQLRemoveDSNFromIniW(LPCWSTR); -BOOL INSTAPI SQLValidDSN(LPCSTR); -BOOL INSTAPI SQLValidDSNW(LPCWSTR); -BOOL INSTAPI SQLWriteDSNToIni(LPCSTR,LPCSTR); -BOOL INSTAPI SQLWriteDSNToIniW(LPCWSTR,LPCWSTR); -BOOL INSTAPI SQLWritePrivateProfileString(LPCSTR,LPCSTR,LPCSTR,LPCSTR); -BOOL INSTAPI SQLWritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); -#if(ODBCVER >= 0x0250) -BOOL INSTAPI ConfigDriver(HWND,WORD,LPCSTR,LPCSTR,LPSTR,WORD,WORD*); -BOOL INSTAPI ConfigDriverW(HWND,WORD,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*); -BOOL INSTAPI SQLConfigDriver(HWND,WORD,LPCSTR,LPCSTR,LPSTR,WORD,WORD*); -BOOL INSTAPI SQLConfigDriverW(HWND,WORD,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*); -BOOL INSTAPI SQLInstallTranslator(LPCSTR,LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD); -BOOL INSTAPI SQLInstallTranslatorW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD); -BOOL INSTAPI SQLRemoveDriver(LPCSTR,BOOL,LPDWORD); -BOOL INSTAPI SQLRemoveDriverManager(LPDWORD); -BOOL INSTAPI SQLRemoveDriverW(LPCWSTR,BOOL,LPDWORD); -BOOL INSTAPI SQLRemoveTranslator(LPCSTR,LPDWORD); -BOOL INSTAPI SQLRemoveTranslatorW(LPCWSTR,LPDWORD); -#endif /* ODBCVER >= 0x0250 */ -#if (ODBCVER >= 0x0300) -BOOL INSTAPI SQLGetConfigMode(UWORD*); -BOOL INSTAPI SQLInstallDriverEx(LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD); -BOOL INSTAPI SQLInstallDriverExW(LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD); -SQLRETURN INSTAPI SQLInstallerError(WORD,DWORD*,LPSTR,WORD,WORD*); -SQLRETURN INSTAPI SQLInstallerErrorW(WORD,DWORD*,LPWSTR,WORD,WORD*); -BOOL INSTAPI SQLInstallTranslatorEx(LPCSTR,LPCSTR,LPSTR,WORD,WORD*,WORD,LPDWORD); -BOOL INSTAPI SQLInstallTranslatorExW(LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*,WORD,LPDWORD); -SQLRETURN INSTAPI SQLPostInstallerError(DWORD,LPCSTR); -SQLRETURN INSTAPI SQLPostInstallerErrorW(DWORD,LPCWSTR); -BOOL INSTAPI SQLReadFileDSN(LPCSTR,LPCSTR,LPCSTR,LPSTR,WORD,WORD*); -BOOL INSTAPI SQLReadFileDSNW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,WORD,WORD*); -BOOL INSTAPI SQLSetConfigMode(UWORD); -BOOL INSTAPI SQLWriteFileDSN(LPCSTR,LPCSTR,LPCSTR,LPCSTR); -BOOL INSTAPI SQLWriteFileDSNW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); -#endif /* ODBCVER >= 0x0300 */ - -#if defined (UNICODE) && !defined (SQL_NOUNICODEMAP) -#define SQLConfigDataSource SQLConfigDataSourceW -#define SQLConfigDriver SQLConfigDriverW -#define SQLCreateDataSource SQLCreateDataSourceW -#define SQLGetAvailableDrivers SQLGetAvailableDriversW -#define SQLGetInstalledDrivers SQLGetInstalledDriversW -#define SQLGetPrivateProfileString SQLGetPrivateProfileStringW -#define SQLGetTranslator SQLGetTranslatorW -#define SQLInstallDriver SQLInstallDriverW -#define SQLInstallDriverEx SQLInstallDriverExW -#define SQLInstallDriverManager SQLInstallDriverManagerW -#define SQLInstallerError SQLInstallerErrorW -#define SQLInstallODBC SQLInstallODBCW -#define SQLInstallTranslator SQLInstallTranslatorW -#define SQLInstallTranslatorEx SQLInstallTranslatorExW -#define SQLPostInstallerError SQLPostInstallerErrorW -#define SQLReadFileDSN SQLReadFileDSNW -#define SQLRemoveDriver SQLRemoveDriverW -#define SQLRemoveDSNFromIni SQLRemoveDSNFromIniW -#define SQLRemoveTranslator SQLRemoveTranslatorW -#define SQLValidDSN SQLValidDSNW -#define SQLWriteDSNToIni SQLWriteDSNToIniW -#define SQLWriteFileDSN SQLWriteFileDSNW -#define SQLWritePrivateProfileString SQLWritePrivateProfileStringW -#endif /* UNICODE && !SQL_NOUNICODEMAP */ -#endif /* RC_INVOKED */ -#ifdef __cplusplus -} -#endif -#endif /* _ODBCINST_H */ diff --git a/winsup/w32api/include/ole.h b/winsup/w32api/include/ole.h deleted file mode 100644 index f96745932..000000000 --- a/winsup/w32api/include/ole.h +++ /dev/null @@ -1,304 +0,0 @@ -#ifndef _OLE_H -#define _OLE_H -#ifdef __cplusplus -extern "C" { -#endif -#ifdef STRICT -#define OLE_LPCSTR LPCSTR -#define OLE_CONST const -#else -#define OLE_LPCSTR LPSTR -#define OLE_CONST -#endif -#define LRESULT LONG -#define HGLOBAL HANDLE -#define OT_LINK 1L -#define OT_EMBEDDED 2L -#define OT_STATIC 3L -#define OLEVERB_PRIMARY 0 -#define OF_SET 1 -#define OF_GET 2 -#define OF_HANDLER 4 - -typedef struct _OLETARGETDEVICE { - USHORT otdDeviceNameOffset; - USHORT otdDriverNameOffset; - USHORT otdPortNameOffset; - USHORT otdExtDevmodeOffset; - USHORT otdExtDevmodeSize; - USHORT otdEnvironmentOffset; - USHORT otdEnvironmentSize; - BYTE otdData[1]; -} OLETARGETDEVICE; -typedef OLETARGETDEVICE *LPOLETARGETDEVICE; -typedef enum { -OLE_OK, -OLE_WAIT_FOR_RELEASE, -OLE_BUSY, -OLE_ERROR_PROTECT_ONLY, -OLE_ERROR_MEMORY, -OLE_ERROR_STREAM, -OLE_ERROR_STATIC, -OLE_ERROR_BLANK, -OLE_ERROR_DRAW, -OLE_ERROR_METAFILE, -OLE_ERROR_ABORT, -OLE_ERROR_CLIPBOARD, -OLE_ERROR_FORMAT, -OLE_ERROR_OBJECT, -OLE_ERROR_OPTION, -OLE_ERROR_PROTOCOL, -OLE_ERROR_ADDRESS, -OLE_ERROR_NOT_EQUAL, -OLE_ERROR_HANDLE, -OLE_ERROR_GENERIC, -OLE_ERROR_CLASS, -OLE_ERROR_SYNTAX, -OLE_ERROR_DATATYPE, -OLE_ERROR_PALETTE, -OLE_ERROR_NOT_LINK, -OLE_ERROR_NOT_EMPTY, -OLE_ERROR_SIZE, -OLE_ERROR_DRIVE, -OLE_ERROR_NETWORK, -OLE_ERROR_NAME, -OLE_ERROR_TEMPLATE, -OLE_ERROR_NEW, -OLE_ERROR_EDIT, -OLE_ERROR_OPEN, -OLE_ERROR_NOT_OPEN, -OLE_ERROR_LAUNCH, -OLE_ERROR_COMM, -OLE_ERROR_TERMINATE, -OLE_ERROR_COMMAND, -OLE_ERROR_SHOW, -OLE_ERROR_DOVERB, -OLE_ERROR_ADVISE_NATIVE, -OLE_ERROR_ADVISE_PICT, -OLE_ERROR_ADVISE_RENAME, -OLE_ERROR_POKE_NATIVE, -OLE_ERROR_REQUEST_NATIVE, -OLE_ERROR_REQUEST_PICT, -OLE_ERROR_SERVER_BLOCKED, -OLE_ERROR_REGISTRATION, -OLE_ERROR_ALREADY_REGISTERED, -OLE_ERROR_TASK, -OLE_ERROR_OUTOFDATE, -OLE_ERROR_CANT_UPDATE_CLIENT, -OLE_ERROR_UPDATE, -OLE_ERROR_SETDATA_FORMAT, -OLE_ERROR_STATIC_FROM_OTHER_OS, -OLE_ERROR_FILE_VER, -OLE_WARN_DELETE_DATA = 1000 -} OLESTATUS; -typedef enum { - OLE_CHANGED, - OLE_SAVED, - OLE_CLOSED, - OLE_RENAMED, - OLE_QUERY_PAINT, - OLE_RELEASE, - OLE_QUERY_RETRY -} OLE_NOTIFICATION; -typedef enum { - OLE_NONE, - OLE_DELETE, - OLE_LNKPASTE, - OLE_EMBPASTE, - OLE_SHOW, - OLE_RUN, - OLE_ACTIVATE, - OLE_UPDATE, - OLE_CLOSE, - OLE_RECONNECT, - OLE_SETUPDATEOPTIONS, - OLE_SERVERUNLAUNCH, - OLE_LOADFROMSTREAM, - OLE_SETDATA, - OLE_REQUESTDATA, - OLE_OTHER, - OLE_CREATE, - OLE_CREATEFROMTEMPLATE, - OLE_CREATELINKFROMFILE, - OLE_COPYFROMLNK, - OLE_CREATEFROMFILE, - OLE_CREATEINVISIBLE -} OLE_RELEASE_METHOD; -typedef enum { - olerender_none, - olerender_draw, - olerender_format - } OLEOPT_RENDER; -typedef WORD OLECLIPFORMAT; -typedef enum { - oleupdate_always, - oleupdate_onsave, -#ifdef OLE_INTERNAL - oleupdate_oncall, - oleupdate_onclose -#else - oleupdate_oncall -#endif -} OLEOPT_UPDATE; -typedef HANDLE HOBJECT; -typedef LONG LHSERVER; -typedef LONG LHCLIENTDOC; -typedef LONG LHSERVERDOC; -typedef struct _OLEOBJECT *LPOLEOBJECT; -typedef struct _OLESTREAM *LPOLESTREAM; -typedef struct _OLECLIENT *LPOLECLIENT; -typedef struct _OLEOBJECTVTBL { - void *(CALLBACK* QueryProtocol)(LPOLEOBJECT,OLE_LPCSTR); - OLESTATUS (CALLBACK* Release)(LPOLEOBJECT); - OLESTATUS (CALLBACK* Show)(LPOLEOBJECT,BOOL); - OLESTATUS (CALLBACK* DoVerb)(LPOLEOBJECT,UINT,BOOL,BOOL); - OLESTATUS (CALLBACK* GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE*); - OLESTATUS (CALLBACK* SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE); - OLESTATUS (CALLBACK* SetTargetDevice)(LPOLEOBJECT,HGLOBAL); - OLESTATUS (CALLBACK* SetBounds)(LPOLEOBJECT,OLE_CONST RECT*); - OLECLIPFORMAT (CALLBACK* EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT); - OLESTATUS (CALLBACK* SetColorScheme)(LPOLEOBJECT,OLE_CONST LOGPALETTE*); -#ifndef SERVERONLY - OLESTATUS (CALLBACK* Delete)(LPOLEOBJECT); - OLESTATUS (CALLBACK* SetHostNames)(LPOLEOBJECT,OLE_LPCSTR,OLE_LPCSTR); - OLESTATUS (CALLBACK* SaveToStream)(LPOLEOBJECT,LPOLESTREAM); - OLESTATUS (CALLBACK* Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*); - OLESTATUS (CALLBACK* CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*); - OLESTATUS (CALLBACK* Equal)(LPOLEOBJECT,LPOLEOBJECT); - OLESTATUS (CALLBACK* CopyToClipboard)(LPOLEOBJECT); - OLESTATUS (CALLBACK* Draw)(LPOLEOBJECT,HDC,OLE_CONST RECT*,OLE_CONST RECT*,HDC); - OLESTATUS (CALLBACK* Activate)(LPOLEOBJECT,UINT,BOOL,BOOL,HWND,OLE_CONST RECT*); - OLESTATUS (CALLBACK* Execute)(LPOLEOBJECT,HGLOBAL,UINT); - OLESTATUS (CALLBACK* Close)(LPOLEOBJECT); - OLESTATUS (CALLBACK* Update)(LPOLEOBJECT); - OLESTATUS (CALLBACK* Reconnect)(LPOLEOBJECT); - OLESTATUS (CALLBACK* ObjectConvert)(LPOLEOBJECT,OLE_LPCSTR,LPOLECLIENT,LHCLIENTDOC,OLE_LPCSTR,LPOLEOBJECT*); - OLESTATUS (CALLBACK* GetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE*); - OLESTATUS (CALLBACK* SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE); - OLESTATUS (CALLBACK* Rename)(LPOLEOBJECT,OLE_LPCSTR); - OLESTATUS (CALLBACK* QueryName)(LPOLEOBJECT,LPSTR,UINT*); - OLESTATUS (CALLBACK* QueryType)(LPOLEOBJECT,LONG*); - OLESTATUS (CALLBACK* QueryBounds)(LPOLEOBJECT,RECT*); - OLESTATUS (CALLBACK* QuerySize)(LPOLEOBJECT,DWORD*); - OLESTATUS (CALLBACK* QueryOpen)(LPOLEOBJECT); - OLESTATUS (CALLBACK* QueryOutOfDate)(LPOLEOBJECT); - OLESTATUS (CALLBACK* QueryReleaseStatus)(LPOLEOBJECT); - OLESTATUS (CALLBACK* QueryReleaseError)(LPOLEOBJECT); - OLE_RELEASE_METHOD (CALLBACK* QueryReleaseMethod)(LPOLEOBJECT); - OLESTATUS (CALLBACK* RequestData)(LPOLEOBJECT,OLECLIPFORMAT); - OLESTATUS (CALLBACK* ObjectLong)(LPOLEOBJECT,UINT,LONG*); - OLESTATUS (CALLBACK* ChangeData)(LPOLEOBJECT,HANDLE,LPOLECLIENT,BOOL); -#endif -} OLEOBJECTVTBL; -typedef OLEOBJECTVTBL*LPOLEOBJECTVTBL; -#ifndef OLE_INTERNAL -typedef struct _OLEOBJECT { LPOLEOBJECTVTBL lpvtbl; } OLEOBJECT; -#endif -typedef struct _OLECLIENTVTBL { int (CALLBACK* CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT); } OLECLIENTVTBL; -typedef OLECLIENTVTBL *LPOLECLIENTVTBL; -typedef struct _OLECLIENT { LPOLECLIENTVTBL lpvtbl; } OLECLIENT; -typedef struct _OLESTREAMVTBL { - DWORD (CALLBACK* Get)(LPOLESTREAM,void*,DWORD); - DWORD (CALLBACK* Put)(LPOLESTREAM,OLE_CONST void*,DWORD); -} OLESTREAMVTBL; -typedef OLESTREAMVTBL *LPOLESTREAMVTBL; -typedef struct _OLESTREAM { LPOLESTREAMVTBL lpstbl; } OLESTREAM; -typedef enum { - OLE_SERVER_MULTI, - OLE_SERVER_SINGLE -} OLE_SERVER_USE; -typedef struct _OLESERVER *LPOLESERVER; -typedef struct _OLESERVERDOC *LPOLESERVERDOC; -typedef struct _OLESERVERVTBL { - OLESTATUS (CALLBACK* Open)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,LPOLESERVERDOC*); - OLESTATUS (CALLBACK* Create)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*); - OLESTATUS (CALLBACK* CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*); - OLESTATUS (CALLBACK* Edit)(LPOLESERVER,LHSERVERDOC,OLE_LPCSTR,OLE_LPCSTR,LPOLESERVERDOC*); - OLESTATUS (CALLBACK* Exit)(LPOLESERVER); - OLESTATUS (CALLBACK* Release)(LPOLESERVER); - OLESTATUS (CALLBACK* Execute)(LPOLESERVER,HGLOBAL); -} OLESERVERVTBL; -typedef OLESERVERVTBL *LPOLESERVERVTBL; -typedef struct _OLESERVER { LPOLESERVERVTBL lpvtbl; } OLESERVER; -typedef struct _OLESERVERDOCVTBL { - OLESTATUS (CALLBACK* Save)(LPOLESERVERDOC); - OLESTATUS (CALLBACK* Close)(LPOLESERVERDOC); - OLESTATUS (CALLBACK* SetHostNames)(LPOLESERVERDOC,OLE_LPCSTR,OLE_LPCSTR); - OLESTATUS (CALLBACK* SetDocDimensions)(LPOLESERVERDOC,OLE_CONST RECT*); - OLESTATUS (CALLBACK* GetObject)(LPOLESERVERDOC,OLE_LPCSTR,LPOLEOBJECT*,LPOLECLIENT); - OLESTATUS (CALLBACK* Release)(LPOLESERVERDOC); - OLESTATUS (CALLBACK* SetColorScheme)(LPOLESERVERDOC,OLE_CONST LOGPALETTE*); - OLESTATUS (CALLBACK* Execute)(LPOLESERVERDOC,HGLOBAL); -} OLESERVERDOCVTBL; -typedef OLESERVERDOCVTBL *LPOLESERVERDOCVTBL; -typedef struct _OLESERVERDOC { LPOLESERVERDOCVTBL lpvtbl; } OLESERVERDOC; -OLESTATUS WINAPI OleDelete(LPOLEOBJECT); -OLESTATUS WINAPI OleRelease(LPOLEOBJECT); -OLESTATUS WINAPI OleSaveToStream(LPOLEOBJECT,LPOLESTREAM); -OLESTATUS WINAPI OleEqual(LPOLEOBJECT,LPOLEOBJECT ); -OLESTATUS WINAPI OleCopyToClipboard(LPOLEOBJECT); -OLESTATUS WINAPI OleSetHostNames(LPOLEOBJECT,LPCSTR,LPCSTR); -OLESTATUS WINAPI OleSetTargetDevice(LPOLEOBJECT,HGLOBAL); -OLESTATUS WINAPI OleSetBounds(LPOLEOBJECT,LPCRECT); -OLESTATUS WINAPI OleSetColorScheme(LPOLEOBJECT,const LOGPALETTE*); -OLESTATUS WINAPI OleQueryBounds(LPOLEOBJECT,RECT*); -OLESTATUS WINAPI OleQuerySize(LPOLEOBJECT,DWORD*); -OLESTATUS WINAPI OleDraw(LPOLEOBJECT,HDC,LPCRECT,LPCRECT,HDC); -OLESTATUS WINAPI OleQueryOpen(LPOLEOBJECT); -OLESTATUS WINAPI OleActivate(LPOLEOBJECT,UINT,BOOL,BOOL,HWND,LPCRECT); -OLESTATUS WINAPI OleExecute(LPOLEOBJECT,HGLOBAL,UINT); -OLESTATUS WINAPI OleClose(LPOLEOBJECT); -OLESTATUS WINAPI OleUpdate(LPOLEOBJECT); -OLESTATUS WINAPI OleReconnect(LPOLEOBJECT); -OLESTATUS WINAPI OleGetLinkUpdateOptions(LPOLEOBJECT,OLEOPT_UPDATE*); -OLESTATUS WINAPI OleSetLinkUpdateOptions(LPOLEOBJECT,OLEOPT_UPDATE); -WINAPI void *OleQueryProtocol(LPOLEOBJECT,LPCSTR); -OLESTATUS WINAPI OleQueryReleaseStatus(LPOLEOBJECT); -OLESTATUS WINAPI OleQueryReleaseError(LPOLEOBJECT); -OLE_RELEASE_METHOD WINAPI OleQueryReleaseMethod(LPOLEOBJECT); -OLESTATUS WINAPI OleQueryType(LPOLEOBJECT,LONG*); -DWORD WINAPI OleQueryClientVersion(void); -DWORD WINAPI OleQueryServerVersion(void); -OLECLIPFORMAT WINAPI OleEnumFormats(LPOLEOBJECT,OLECLIPFORMAT); -OLESTATUS WINAPI OleGetData(LPOLEOBJECT,OLECLIPFORMAT,HANDLE*); -OLESTATUS WINAPI OleSetData(LPOLEOBJECT,OLECLIPFORMAT,HANDLE); -OLESTATUS WINAPI OleQueryOutOfDate(LPOLEOBJECT); -OLESTATUS WINAPI OleRequestData(LPOLEOBJECT,OLECLIPFORMAT); -OLESTATUS WINAPI OleQueryLinkFromClip(LPCSTR,OLEOPT_RENDER,OLECLIPFORMAT); -OLESTATUS WINAPI OleQueryCreateFromClip(LPCSTR,OLEOPT_RENDER,OLECLIPFORMAT); -OLESTATUS WINAPI OleCreateFromClip(LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); -OLESTATUS WINAPI OleCreateLinkFromClip(LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); -OLESTATUS WINAPI OleCreateFromFile(LPCSTR,LPOLECLIENT,LPCSTR,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); -OLESTATUS WINAPI OleCreateLinkFromFile(LPCSTR,LPOLECLIENT,LPCSTR,LPCSTR,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); -OLESTATUS WINAPI OleLoadFromStream(LPOLESTREAM,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*); -OLESTATUS WINAPI OleCreate(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); -OLESTATUS WINAPI OleCreateInvisible(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT,BOOL); -OLESTATUS WINAPI OleCreateFromTemplate(LPCSTR,LPOLECLIENT,LPCSTR,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*,OLEOPT_RENDER,OLECLIPFORMAT); -OLESTATUS WINAPI OleClone(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*); -OLESTATUS WINAPI OleCopyFromLink(LPOLEOBJECT,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*); -OLESTATUS WINAPI OleObjectConvert(LPOLEOBJECT,LPCSTR,LPOLECLIENT,LHCLIENTDOC,LPCSTR,LPOLEOBJECT*); -OLESTATUS WINAPI OleRename(LPOLEOBJECT,LPCSTR); -OLESTATUS WINAPI OleQueryName(LPOLEOBJECT,LPSTR,UINT*); -OLESTATUS WINAPI OleRevokeObject(LPOLECLIENT); -BOOL WINAPI OleIsDcMeta(HDC); -OLESTATUS WINAPI OleRegisterClientDoc(LPCSTR,LPCSTR,LONG,LHCLIENTDOC*); -OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC); -OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC,LPCSTR); -OLESTATUS WINAPI OleRevertClientDoc(LHCLIENTDOC); -OLESTATUS WINAPI OleSavedClientDoc(LHCLIENTDOC); -OLESTATUS WINAPI OleEnumObjects(LHCLIENTDOC,LPOLEOBJECT*); -OLESTATUS WINAPI OleRegisterServer(LPCSTR,LPOLESERVER,LHSERVER*,HINSTANCE,OLE_SERVER_USE); -OLESTATUS WINAPI OleRevokeServer(LHSERVER); -OLESTATUS WINAPI OleBlockServer(LHSERVER); -OLESTATUS WINAPI OleUnblockServer(LHSERVER,BOOL*); -OLESTATUS WINAPI OleLockServer(LPOLEOBJECT,LHSERVER*); -OLESTATUS WINAPI OleUnlockServer(LHSERVER); -OLESTATUS WINAPI OleRegisterServerDoc(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC*); -OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC); -OLESTATUS WINAPI OleRenameServerDoc(LHSERVERDOC,LPCSTR); -OLESTATUS WINAPI OleRevertServerDoc(LHSERVERDOC); -OLESTATUS WINAPI OleSavedServerDoc(LHSERVERDOC); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/ole2.h b/winsup/w32api/include/ole2.h deleted file mode 100644 index 0f5aa71fe..000000000 --- a/winsup/w32api/include/ole2.h +++ /dev/null @@ -1,106 +0,0 @@ -#ifndef _OLE2_H -#define _OLE2_H -#pragma pack(push,8) -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif -#define E_DRAW VIEW_E_DRAW -#define DATA_E_FORMATETC DV_E_FORMATETC -#define OLEIVERB_PRIMARY (0L) -#define OLEIVERB_SHOW (-1L) -#define OLEIVERB_OPEN (-2L) -#define OLEIVERB_HIDE (-3L) -#define OLEIVERB_UIACTIVATE (-4L) -#define OLEIVERB_INPLACEACTIVATE (-5L) -#define OLEIVERB_DISCARDUNDOSTATE (-6L) -#define EMBDHLP_INPROC_HANDLER 0x0000L -#define EMBDHLP_INPROC_SERVER 0x0001L -#define EMBDHLP_CREATENOW 0x00000000L -#define EMBDHLP_DELAYCREATE 0x00010000L -#include - -typedef struct _OLESTREAMVTBL *LPOLESTREAMVTBL; -typedef struct _OLESTREAM { - LPOLESTREAMVTBL lpstbl; -} OLESTREAM,*LPOLESTREAM; -typedef struct _OLESTREAMVTBL { - DWORD (CALLBACK* Get)(LPOLESTREAM,void*,DWORD); - DWORD (CALLBACK* Put)(LPOLESTREAM,const void*,DWORD); -} OLESTREAMVTBL; - -WINOLEAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER*); -WINOLEAPI_(DWORD) OleBuildVersion(void); -WINOLEAPI ReadClassStg(LPSTORAGE,CLSID*); -WINOLEAPI WriteClassStg(LPSTORAGE,REFCLSID); -WINOLEAPI ReadClassStm(LPSTREAM,CLSID*); -WINOLEAPI WriteClassStm(LPSTREAM,REFCLSID); -WINOLEAPI WriteFmtUserTypeStg(LPSTORAGE,CLIPFORMAT,LPOLESTR); -WINOLEAPI ReadFmtUserTypeStg(LPSTORAGE,CLIPFORMAT*,LPOLESTR*); -WINOLEAPI OleInitialize(PVOID); -WINOLEAPI_(void) OleUninitialize(void); -WINOLEAPI OleQueryLinkFromData(LPDATAOBJECT); -WINOLEAPI OleQueryCreateFromData(LPDATAOBJECT); -WINOLEAPI OleCreate(REFCLSID,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); -WINOLEAPI OleCreateFromData(LPDATAOBJECT,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); -WINOLEAPI OleCreateLinkFromData(LPDATAOBJECT,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); -WINOLEAPI OleCreateStaticFromData(LPDATAOBJECT,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); -WINOLEAPI OleCreateLink(LPMONIKER,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); -WINOLEAPI OleCreateLinkToFile(LPCOLESTR,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); -WINOLEAPI OleCreateFromFile(REFCLSID,LPCOLESTR,REFIID,DWORD,LPFORMATETC,LPOLECLIENTSITE,LPSTORAGE,PVOID*); -WINOLEAPI OleLoad(LPSTORAGE,REFIID,LPOLECLIENTSITE,PVOID*); -WINOLEAPI OleSave(LPPERSISTSTORAGE,LPSTORAGE,BOOL); -WINOLEAPI OleLoadFromStream(LPSTREAM,REFIID,PVOID*); -WINOLEAPI OleSaveToStream(LPPERSISTSTREAM,LPSTREAM); -WINOLEAPI OleSetContainedObject(LPUNKNOWN,BOOL); -WINOLEAPI OleNoteObjectVisible(LPUNKNOWN,BOOL); -WINOLEAPI RegisterDragDrop(HWND,LPDROPTARGET); -WINOLEAPI RevokeDragDrop(HWND); -WINOLEAPI DoDragDrop(LPDATAOBJECT,LPDROPSOURCE,DWORD,PDWORD); -WINOLEAPI OleSetClipboard(LPDATAOBJECT); -WINOLEAPI OleGetClipboard(LPDATAOBJECT*); -WINOLEAPI OleFlushClipboard(void); -WINOLEAPI OleIsCurrentClipboard(LPDATAOBJECT); -WINOLEAPI_(HOLEMENU) OleCreateMenuDescriptor(HMENU,LPOLEMENUGROUPWIDTHS); -WINOLEAPI OleSetMenuDescriptor(HOLEMENU,HWND,HWND,LPOLEINPLACEFRAME,LPOLEINPLACEACTIVEOBJECT); -WINOLEAPI OleDestroyMenuDescriptor(HOLEMENU); -WINOLEAPI OleTranslateAccelerator(LPOLEINPLACEFRAME,LPOLEINPLACEFRAMEINFO,LPMSG); -WINOLEAPI_(HANDLE) OleDuplicateData(HANDLE,CLIPFORMAT,UINT); -WINOLEAPI OleDraw(LPUNKNOWN,DWORD,HDC,LPCRECT); -WINOLEAPI OleRun(LPUNKNOWN); -WINOLEAPI_(BOOL) OleIsRunning(LPOLEOBJECT); -WINOLEAPI OleLockRunning(LPUNKNOWN,BOOL,BOOL); -WINOLEAPI_(void) ReleaseStgMedium(LPSTGMEDIUM); -WINOLEAPI CreateOleAdviseHolder(LPOLEADVISEHOLDER*); -WINOLEAPI OleCreateDefaultHandler(REFCLSID,LPUNKNOWN,REFIID,PVOID*); -WINOLEAPI OleCreateEmbeddingHelper(REFCLSID,LPUNKNOWN,DWORD,LPCLASSFACTORY,REFIID,PVOID*); -WINOLEAPI_(BOOL) IsAccelerator(HACCEL,int,LPMSG,WORD*); -WINOLEAPI_(HGLOBAL) OleGetIconOfFile(LPOLESTR,BOOL); -WINOLEAPI_(HGLOBAL) OleGetIconOfClass(REFCLSID,LPOLESTR,BOOL); -WINOLEAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(HICON,LPOLESTR,LPOLESTR,UINT); -WINOLEAPI OleRegGetUserType(REFCLSID,DWORD,LPOLESTR*); -WINOLEAPI OleRegGetMiscStatus(REFCLSID,DWORD,DWORD*); -WINOLEAPI OleRegEnumFormatEtc (REFCLSID,DWORD,LPENUMFORMATETC*); -WINOLEAPI OleRegEnumVerbs (REFCLSID,LPENUMOLEVERB*); -WINOLEAPI OleConvertOLESTREAMToIStorage(LPOLESTREAM,LPSTORAGE,const DVTARGETDEVICE*); -WINOLEAPI OleConvertIStorageToOLESTREAM(LPSTORAGE,LPOLESTREAM); -WINOLEAPI GetHGlobalFromILockBytes(LPLOCKBYTES,HGLOBAL*); -WINOLEAPI CreateILockBytesOnHGlobal(HGLOBAL,BOOL,LPLOCKBYTES*); -WINOLEAPI GetHGlobalFromStream(LPSTREAM,HGLOBAL*); -WINOLEAPI CreateStreamOnHGlobal(HGLOBAL,BOOL,LPSTREAM*); -WINOLEAPI OleDoAutoConvert(LPSTORAGE,LPCLSID); -WINOLEAPI OleGetAutoConvert(REFCLSID,LPCLSID); -WINOLEAPI OleSetAutoConvert(REFCLSID,REFCLSID); -WINOLEAPI GetConvertStg(LPSTORAGE); -WINOLEAPI SetConvertStg(LPSTORAGE,BOOL); -WINOLEAPI OleConvertIStorageToOLESTREAMEx(LPSTORAGE,CLIPFORMAT,LONG,LONG,DWORD,LPSTGMEDIUM,LPOLESTREAM); -WINOLEAPI OleConvertOLESTREAMToIStorageEx(LPOLESTREAM,LPSTORAGE,CLIPFORMAT*,LONG*,LONG*,DWORD*,LPSTGMEDIUM); -#ifdef __cplusplus -} -#endif -#pragma pack(pop) -#endif diff --git a/winsup/w32api/include/ole2ver.h b/winsup/w32api/include/ole2ver.h deleted file mode 100644 index c7741dc19..000000000 --- a/winsup/w32api/include/ole2ver.h +++ /dev/null @@ -1,5 +0,0 @@ -#ifndef _OLE2VER_H -#define _OLE2VER_H -#define rmm 23 -#define rup 639 -#endif diff --git a/winsup/w32api/include/oleauto.h b/winsup/w32api/include/oleauto.h deleted file mode 100644 index 0e5d8f7b4..000000000 --- a/winsup/w32api/include/oleauto.h +++ /dev/null @@ -1,256 +0,0 @@ -#ifndef _OLEAUTO_H -#define _OLEAUTO_H -#pragma pack(push,8) -#define WINOLEAUTAPI STDAPI -#define WINOLEAUTAPI_(type) STDAPI_(type) -#define STDOLE_MAJORVERNUM 1 -#define STDOLE_MINORVERNUM 0 -#define STDOLE_LCID 0 -#define VARIANT_NOVALUEPROP 0x01 -#define VARIANT_ALPHABOOL 0x02 -#define VARIANT_NOUSEOVERRIDE 0x04 -#define VARIANT_LOCALBOOL 0x08 -#define VAR_TIMEVALUEONLY 0x0001 -#define VAR_DATEVALUEONLY 0x0002 -#define MEMBERID_NIL DISPID_UNKNOWN -#define ID_DEFAULTINST (-2) -#define DISPATCH_METHOD 1 -#define DISPATCH_PROPERTYGET 2 -#define DISPATCH_PROPERTYPUT 4 -#define DISPATCH_PROPERTYPUTREF 8 -#define LHashValOfName(l,n) LHashValOfNameSys(SYS_WIN32,l,n) -#define WHashValOfLHashVal(h) ((unsigned short)(0x0000ffff&(h))) -#define IsHashValCompatible(h1,h2) ((BOOL)((0x00ff0000&(h1))==(0x00ff0000&(h2)))) -#define ACTIVEOBJECT_STRONG 0 -#define ACTIVEOBJECT_WEAK 1 -#ifdef NONAMELESSUNION -#define V_UNION(X,Y) ((X)->u.Y) -#else -#define V_UNION(X,Y) ((X)->Y) -#endif -#ifdef __cplusplus -#define V_BOOL(X) V_UNION(X,boolVal) -#else -#define V_BOOL(X) V_UNION(X,bool) -#endif -#define V_VT(X) ((X)->vt) -#define V_ISBYREF(X) (V_VT(X)&VT_BYREF) -#define V_ISARRAY(X) (V_VT(X)&VT_ARRAY) -#define V_ISVECTOR(X) (V_VT(X)&VT_VECTOR) -#define V_NONE(X) V_I2(X) -#define V_UI1(X) V_UNION(X,bVal) -#define V_UI1REF(X) V_UNION(X,pbVal) -#define V_I2(X) V_UNION(X,iVal) -#define V_I2REF(X) V_UNION(X,piVal) -#define V_I4(X) V_UNION(X,lVal) -#define V_I4REF(X) V_UNION(X,plVal) -#define V_I8(X) V_UNION(X,hVal) -#define V_I8REF(X) V_UNION(X,phVal) -#define V_R4(X) V_UNION(X,fltVal) -#define V_R4REF(X) V_UNION(X,pfltVal) -#define V_R8(X) V_UNION(X,dblVal) -#define V_R8REF(X) V_UNION(X,pdblVal) -#define V_CY(X) V_UNION(X,cyVal) -#define V_CYREF(X) V_UNION(X,pcyVal) -#define V_DATE(X) V_UNION(X,date) -#define V_DATEREF(X) V_UNION(X,pdate) -#define V_BSTR(X) V_UNION(X,bstrVal) -#define V_BSTRREF(X) V_UNION(X,pbstrVal) -#define V_DISPATCH(X) V_UNION(X,pdispVal) -#define V_DISPATCHREF(X) V_UNION(X,ppdispVal) -#define V_ERROR(X) V_UNION(X,scode) -#define V_ERRORREF(X) V_UNION(X,pscode) -#define V_BOOLREF(X) V_UNION(X,pboolVal) -#define V_UNKNOWN(X) V_UNION(X,punkVal) -#define V_UNKNOWNREF(X) V_UNION(X,ppunkVal) -#define V_VARIANTREF(X) V_UNION(X,pvarVal) -#define V_LPSTR(X) V_UNION(X,pszVal) -#define V_LPSTRREF(X) V_UNION(X,ppszVal) -#define V_LPWSTR(X) V_UNION(X,pwszVal) -#define V_LPWSTRREF(X) V_UNION(X,ppwszVal) -#define V_FILETIME(X) V_UNION(X,filetime) -#define V_FILETIMEREF(X) V_UNION(X,pfiletime) -#define V_BLOB(X) V_UNION(X,blob) -#define V_UUID(X) V_UNION(X,puuid) -#define V_CLSID(X) V_UNION(X,puuid) -#define V_ARRAY(X) V_UNION(X,parray) -#define V_ARRAYREF(X) V_UNION(X,pparray) -#define V_BYREF(X) V_UNION(X,byref) -#define V_DECIMAL(X) V_UNION(X,decVal) -#define V_DECIMALREF(X) V_UNION(X,pdecVal) - -#include - -typedef enum tagREGKIND { - REGKIND_DEFAULT, - REGKIND_REGISTER, - REGKIND_NONE -} REGKIND; -typedef struct tagPARAMDATA { - OLECHAR *szName; - VARTYPE vt; -} PARAMDATA,*LPPARAMDATA; -typedef struct tagMETHODDATA { - OLECHAR *szName; - PARAMDATA *ppdata; - DISPID dispid; - UINT iMeth; - CALLCONV cc; - UINT cArgs; - WORD wFlags; - VARTYPE vtReturn; -} METHODDATA,*LPMETHODDATA; -typedef struct tagINTERFACEDATA { - METHODDATA *pmethdata; - UINT cMembers; -} INTERFACEDATA,*LPINTERFACEDATA; - -WINOLEAUTAPI_(BSTR) SysAllocString(const OLECHAR*); -WINOLEAUTAPI_(int) SysReAllocString(BSTR*,const OLECHAR*); -WINOLEAUTAPI_(BSTR) SysAllocStringLen(const OLECHAR*,unsigned int); -WINOLEAUTAPI_(int) SysReAllocStringLen(BSTR*,const OLECHAR*,unsigned int); -WINOLEAUTAPI_(void) SysFreeString(BSTR); -WINOLEAUTAPI_(unsigned int) SysStringLen(BSTR); -WINOLEAUTAPI_(unsigned int) SysStringByteLen(BSTR); -WINOLEAUTAPI_(BSTR) SysAllocStringByteLen(const char*,unsigned int); -WINOLEAUTAPI_(int) DosDateTimeToVariantTime(unsigned short,unsigned short,double*); -WINOLEAUTAPI_(int) VariantTimeToDosDateTime(double,unsigned short*,unsigned short*); -WINOLEAUTAPI_(int) VariantTimeToSystemTime(double,LPSYSTEMTIME); -WINOLEAUTAPI_(int) SystemTimeToVariantTime(LPSYSTEMTIME, double*); -WINOLEAUTAPI SafeArrayAllocDescriptor(unsigned int,SAFEARRAY**); -WINOLEAUTAPI SafeArrayAllocData(SAFEARRAY*); -WINOLEAUTAPI_(SAFEARRAY*) SafeArrayCreate(VARTYPE,unsigned int,SAFEARRAYBOUND*); -WINOLEAUTAPI SafeArrayDestroyDescriptor(SAFEARRAY*); -WINOLEAUTAPI SafeArrayDestroyData(SAFEARRAY*); -WINOLEAUTAPI SafeArrayDestroy(SAFEARRAY*); -WINOLEAUTAPI SafeArrayRedim(SAFEARRAY*,SAFEARRAYBOUND*); -WINOLEAUTAPI_(unsigned int) SafeArrayGetDim(SAFEARRAY*); -WINOLEAUTAPI_(unsigned int) SafeArrayGetElemsize(SAFEARRAY*); -WINOLEAUTAPI SafeArrayGetUBound(SAFEARRAY*,unsigned int,long*); -WINOLEAUTAPI SafeArrayGetLBound(SAFEARRAY*,unsigned int,long*); -WINOLEAUTAPI SafeArrayLock(SAFEARRAY*); -WINOLEAUTAPI SafeArrayUnlock(SAFEARRAY*); -WINOLEAUTAPI SafeArrayAccessData(SAFEARRAY*,void**); -WINOLEAUTAPI SafeArrayUnaccessData(SAFEARRAY*); -WINOLEAUTAPI SafeArrayGetElement(SAFEARRAY*,long*,void*); -WINOLEAUTAPI SafeArrayPutElement(SAFEARRAY*,long*,void*); -WINOLEAUTAPI SafeArrayCopy(SAFEARRAY*,SAFEARRAY**); -WINOLEAUTAPI SafeArrayPtrOfIndex(SAFEARRAY*,long*,void**); -WINOLEAUTAPI_(SAFEARRAY*) SafeArrayCreateVector(VARTYPE,LONG,UINT); -WINOLEAUTAPI_(void) VariantInit(VARIANTARG*); -WINOLEAUTAPI VariantClear(VARIANTARG*); -WINOLEAUTAPI VariantCopy(VARIANTARG*,VARIANTARG*); -WINOLEAUTAPI VariantCopyInd(VARIANT*,VARIANTARG*); -WINOLEAUTAPI VariantChangeType(VARIANTARG*,VARIANTARG*,unsigned short,VARTYPE); -WINOLEAUTAPI VariantChangeTypeEx(VARIANTARG*,VARIANTARG*,LCID,unsigned short,VARTYPE); -WINOLEAUTAPI VarUI1FromI2(short,unsigned char*); -WINOLEAUTAPI VarUI1FromI4(long,unsigned char*); -WINOLEAUTAPI VarUI1FromR4(float,unsigned char*); -WINOLEAUTAPI VarUI1FromR8(double,unsigned char*); -WINOLEAUTAPI VarUI1FromCy(CY,unsigned char*); -WINOLEAUTAPI VarUI1FromDate(DATE,unsigned char*); -WINOLEAUTAPI VarUI1FromStr(OLECHAR*,LCID,unsigned long,unsigned char*); -WINOLEAUTAPI VarUI1FromDisp(LPDISPATCH*,LCID,unsigned char*); -WINOLEAUTAPI VarUI1FromBool(VARIANT_BOOL,unsigned char*); -WINOLEAUTAPI VarI2FromUI1(unsigned char,short*); -WINOLEAUTAPI VarI2FromI4(long,short*); -WINOLEAUTAPI VarI2FromR4(float,short*); -WINOLEAUTAPI VarI2FromR8(double,short*); -WINOLEAUTAPI VarI2FromCy(CY cyIn,short*); -WINOLEAUTAPI VarI2FromDate(DATE,short*); -WINOLEAUTAPI VarI2FromStr(OLECHAR*,LCID,unsigned long,short*); -WINOLEAUTAPI VarI2FromDisp(LPDISPATCH*,LCID,short*); -WINOLEAUTAPI VarI2FromBool(VARIANT_BOOL,short*); -WINOLEAUTAPI VarI4FromUI1(unsigned char,long*); -WINOLEAUTAPI VarI4FromI2(short,long*); -WINOLEAUTAPI VarI4FromR4(float,long*); -WINOLEAUTAPI VarI4FromR8(double,long*); -WINOLEAUTAPI VarI4FromCy(CY,long*); -WINOLEAUTAPI VarI4FromDate(DATE,long*); -WINOLEAUTAPI VarI4FromStr(OLECHAR*,LCID,unsigned long,long*); -WINOLEAUTAPI VarI4FromDisp(LPDISPATCH*,LCID,long*); -WINOLEAUTAPI VarI4FromBool(VARIANT_BOOL,long*); -WINOLEAUTAPI VarR4FromUI1(unsigned char,float*); -WINOLEAUTAPI VarR4FromI2(short,float*); -WINOLEAUTAPI VarR4FromI4(long,float*); -WINOLEAUTAPI VarR4FromR8(double,float*); -WINOLEAUTAPI VarR4FromCy(CY,float*); -WINOLEAUTAPI VarR4FromDate(DATE,float*); -WINOLEAUTAPI VarR4FromStr(OLECHAR*,LCID,unsigned long,float*); -WINOLEAUTAPI VarR4FromDisp(LPDISPATCH*,LCID,float*); -WINOLEAUTAPI VarR4FromBool(VARIANT_BOOL,float*); -WINOLEAUTAPI VarR8FromUI1(unsigned char,double*); -WINOLEAUTAPI VarR8FromI2(short,double*); -WINOLEAUTAPI VarR8FromI4(long,double*); -WINOLEAUTAPI VarR8FromR4(float,double*); -WINOLEAUTAPI VarR8FromCy(CY,double*); -WINOLEAUTAPI VarR8FromDate(DATE,double*); -WINOLEAUTAPI VarR8FromStr(OLECHAR*,LCID,unsigned long,double*); -WINOLEAUTAPI VarR8FromDisp(LPDISPATCH*,LCID,double*); -WINOLEAUTAPI VarR8FromBool(VARIANT_BOOL,double*); -WINOLEAUTAPI VarDateFromUI1(unsigned char,DATE*); -WINOLEAUTAPI VarDateFromI2(short,DATE*); -WINOLEAUTAPI VarDateFromI4(long,DATE*); -WINOLEAUTAPI VarDateFromR4(float,DATE*); -WINOLEAUTAPI VarDateFromR8(double,DATE*); -WINOLEAUTAPI VarDateFromCy(CY,DATE*); -WINOLEAUTAPI VarDateFromStr(OLECHAR*,LCID,unsigned long,DATE*); -WINOLEAUTAPI VarDateFromDisp(LPDISPATCH*,LCID,DATE*); -WINOLEAUTAPI VarDateFromBool(VARIANT_BOOL,DATE*); -WINOLEAUTAPI VarCyFromUI1(unsigned char,CY*); -WINOLEAUTAPI VarCyFromI2(short,CY*); -WINOLEAUTAPI VarCyFromI4(long,CY*); -WINOLEAUTAPI VarCyFromR4(float,CY*); -WINOLEAUTAPI VarCyFromR8(double,CY*); -WINOLEAUTAPI VarCyFromDate(DATE,CY*); -WINOLEAUTAPI VarCyFromStr(OLECHAR*,LCID,unsigned long,CY*); -WINOLEAUTAPI VarCyFromDisp(LPDISPATCH*,LCID,CY*); -WINOLEAUTAPI VarCyFromBool(VARIANT_BOOL,CY*); -WINOLEAUTAPI VarBstrFromUI1(unsigned char,LCID,unsigned long,BSTR*); -WINOLEAUTAPI VarBstrFromI2(short,LCID,unsigned long,BSTR*); -WINOLEAUTAPI VarBstrFromI4(long,LCID,unsigned long,BSTR*); -WINOLEAUTAPI VarBstrFromR4(float,LCID,unsigned long,BSTR*); -WINOLEAUTAPI VarBstrFromR8(double,LCID,unsigned long,BSTR*); -WINOLEAUTAPI VarBstrFromCy(CY,LCID,unsigned long,BSTR*); -WINOLEAUTAPI VarBstrFromDate(DATE,LCID,unsigned long,BSTR*); -WINOLEAUTAPI VarBstrFromDisp(LPDISPATCH*,LCID,unsigned long,BSTR*); -WINOLEAUTAPI VarBstrFromBool(VARIANT_BOOL,LCID,unsigned long,BSTR*); -WINOLEAUTAPI VarBoolFromUI1(unsigned char,VARIANT_BOOL*); -WINOLEAUTAPI VarBoolFromI2(short,VARIANT_BOOL*); -WINOLEAUTAPI VarBoolFromI4(long,VARIANT_BOOL*); -WINOLEAUTAPI VarBoolFromR4(float,VARIANT_BOOL*); -WINOLEAUTAPI VarBoolFromR8(double,VARIANT_BOOL*); -WINOLEAUTAPI VarBoolFromDate(DATE,VARIANT_BOOL*); -WINOLEAUTAPI VarBoolFromCy(CY,VARIANT_BOOL*); -WINOLEAUTAPI VarBoolFromStr(OLECHAR*,LCID,unsigned long,VARIANT_BOOL*); -WINOLEAUTAPI VarBoolFromDisp(LPDISPATCH*,LCID,VARIANT_BOOL*); -WINOLEAUTAPI_(ULONG) LHashValOfNameSysA(SYSKIND,LCID,const char*); -WINOLEAUTAPI_(ULONG) LHashValOfNameSys(SYSKIND,LCID,const OLECHAR*); -WINOLEAUTAPI LoadTypeLib(const OLECHAR*,LPTYPELIB*); -WINOLEAUTAPI LoadTypeLibEx(LPCOLESTR,REGKIND,LPTYPELIB*); -WINOLEAUTAPI LoadRegTypeLib(REFGUID,WORD,WORD,LCID,LPTYPELIB*); -WINOLEAUTAPI QueryPathOfRegTypeLib(REFGUID,unsigned short,unsigned short,LCID,LPBSTR); -WINOLEAUTAPI RegisterTypeLib(LPTYPELIB,OLECHAR*,OLECHAR*); -WINOLEAUTAPI DeregisterTypeLib(REFGUID,WORD,WORD,LCID); -WINOLEAUTAPI CreateTypeLib(SYSKIND,const OLECHAR*,LPCREATETYPELIB*); -WINOLEAUTAPI DispGetParam(DISPPARAMS*,UINT,VARTYPE,VARIANT*,UINT*); -WINOLEAUTAPI DispGetIDsOfNames(LPTYPEINFO,OLECHAR**,UINT,DISPID*); -WINOLEAUTAPI DispInvoke(void*,LPTYPEINFO,DISPID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*); -WINOLEAUTAPI CreateDispTypeInfo(INTERFACEDATA*,LCID,LPTYPEINFO*); -WINOLEAUTAPI CreateStdDispatch(IUnknown*,void*,LPTYPEINFO,IUnknown**); -WINOLEAUTAPI RegisterActiveObject(IUnknown*,REFCLSID,DWORD,DWORD*); -WINOLEAUTAPI RevokeActiveObject(DWORD,void*); -WINOLEAUTAPI GetActiveObject(REFCLSID,void*,IUnknown**); -WINOLEAUTAPI SetErrorInfo(unsigned long,LPERRORINFO); -WINOLEAUTAPI GetErrorInfo(unsigned long,LPERRORINFO*); -WINOLEAUTAPI CreateErrorInfo(LPCREATEERRORINFO*); -WINOLEAUTAPI_(unsigned long) OaBuildVersion(void); -WINOLEAUTAPI VectorFromBstr (BSTR, SAFEARRAY **); -WINOLEAUTAPI BstrFromVector (SAFEARRAY *, BSTR *); - -WINOLEAUTAPI VarAdd(LPVARIANT, LPVARIANT, LPVARIANT); -WINOLEAUTAPI VarSub(LPVARIANT, LPVARIANT, LPVARIANT); -WINOLEAUTAPI VarMul(LPVARIANT, LPVARIANT, LPVARIANT); -WINOLEAUTAPI VarDiv(LPVARIANT, LPVARIANT, LPVARIANT); -#pragma pack(pop) -#endif diff --git a/winsup/w32api/include/olectl.h b/winsup/w32api/include/olectl.h deleted file mode 100644 index 6c2163074..000000000 --- a/winsup/w32api/include/olectl.h +++ /dev/null @@ -1,721 +0,0 @@ -#ifndef _OLECTL_H -#define _OLECTL_H -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define STD_CTL_SCODE(n) MAKE_SCODE(SEVERITY_ERROR,FACILITY_CONTROL,n) -#define CTL_E_ILLEGALFUNCTIONCALL STD_CTL_SCODE(5) -#define CTL_E_OVERFLOW STD_CTL_SCODE(6) -#define CTL_E_OUTOFMEMORY STD_CTL_SCODE(7) -#define CTL_E_DIVISIONBYZERO STD_CTL_SCODE(11) -#define CTL_E_OUTOFSTRINGSPACE STD_CTL_SCODE(14) -#define CTL_E_OUTOFSTACKSPACE STD_CTL_SCODE(28) -#define CTL_E_BADFILENAMEORNUMBER STD_CTL_SCODE(52) -#define CTL_E_FILENOTFOUND STD_CTL_SCODE(53) -#define CTL_E_BADFILEMODE STD_CTL_SCODE(54) -#define CTL_E_FILEALREADYOPEN STD_CTL_SCODE(55) -#define CTL_E_DEVICEIOERROR STD_CTL_SCODE(57) -#define CTL_E_FILEALREADYEXISTS STD_CTL_SCODE(58) -#define CTL_E_BADRECORDLENGTH STD_CTL_SCODE(59) -#define CTL_E_DISKFULL STD_CTL_SCODE(61) -#define CTL_E_BADRECORDNUMBER STD_CTL_SCODE(63) -#define CTL_E_BADFILENAME STD_CTL_SCODE(64) -#define CTL_E_TOOMANYFILES STD_CTL_SCODE(67) -#define CTL_E_DEVICEUNAVAILABLE STD_CTL_SCODE(68) -#define CTL_E_PERMISSIONDENIED STD_CTL_SCODE(70) -#define CTL_E_DISKNOTREADY STD_CTL_SCODE(71) -#define CTL_E_PATHFILEACCESSERROR STD_CTL_SCODE(75) -#define CTL_E_PATHNOTFOUND STD_CTL_SCODE(76) -#define CTL_E_INVALIDPATTERNSTRING STD_CTL_SCODE(93) -#define CTL_E_INVALIDUSEOFNULL STD_CTL_SCODE(94) -#define CTL_E_INVALIDFILEFORMAT STD_CTL_SCODE(321) -#define CTL_E_INVALIDPROPERTYVALUE STD_CTL_SCODE(380) -#define CTL_E_INVALIDPROPERTYARRAYINDEX STD_CTL_SCODE(381) -#define CTL_E_SETNOTSUPPORTEDATRUNTIME STD_CTL_SCODE(382) -#define CTL_E_SETNOTSUPPORTED STD_CTL_SCODE(383) -#define CTL_E_NEEDPROPERTYARRAYINDEX STD_CTL_SCODE(385) -#define CTL_E_SETNOTPERMITTED STD_CTL_SCODE(387) -#define CTL_E_GETNOTSUPPORTEDATRUNTIME STD_CTL_SCODE(393) -#define CTL_E_GETNOTSUPPORTED STD_CTL_SCODE(394) -#define CTL_E_PROPERTYNOTFOUND STD_CTL_SCODE(422) -#define CTL_E_INVALIDCLIPBOARDFORMAT STD_CTL_SCODE(460) -#define CTL_E_INVALIDPICTURE STD_CTL_SCODE(481) -#define CTL_E_PRINTERERROR STD_CTL_SCODE(482) -#define CTL_E_CANTSAVEFILETOTEMP STD_CTL_SCODE(735) -#define CTL_E_SEARCHTEXTNOTFOUND STD_CTL_SCODE(744) -#define CTL_E_REPLACEMENTSTOOLONG STD_CTL_SCODE(746) -#define CUSTOM_CTL_SCODE(n) MAKE_SCODE(SEVERITY_ERROR,FACILITY_CONTROL,n) -#define CTL_E_CUSTOM_FIRST CUSTOM_CTL_SCODE(600) -#define CLASS_E_NOTLICENSED (CLASSFACTORY_E_FIRST+2) -#define CONNECT_E_FIRST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x200) -#define CONNECT_E_LAST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x20F) -#define CONNECT_S_FIRST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x200) -#define CONNECT_S_LAST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x20F) -#define CONNECT_E_NOCONNECTION (CONNECT_E_FIRST+0) -#define CONNECT_E_ADVISELIMIT (CONNECT_E_FIRST+1) -#define CONNECT_E_CANNOTCONNECT (CONNECT_E_FIRST+2) -#define CONNECT_E_OVERRIDDEN (CONNECT_E_FIRST+3) -#define SELFREG_E_FIRST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x200) -#define SELFREG_E_LAST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x20F) -#define SELFREG_S_FIRST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x200) -#define SELFREG_S_LAST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x20F) -#define SELFREG_E_TYPELIB (SELFREG_E_FIRST+0) -#define SELFREG_E_CLASS (SELFREG_E_FIRST+1) -#define PERPROP_E_FIRST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x200) -#define PERPROP_E_LAST MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x20F) -#define PERPROP_S_FIRST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x200) -#define PERPROP_S_LAST MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x20F) -#define PERPROP_E_NOPAGEAVAILABLE PERPROP_E_FIRST -#define OLEMISC_RECOMPOSEONRESIZE 0x1 -#define OLEMISC_ONLYICONIC 0x2 -#define OLEMISC_INSERTNOTREPLACE 0x4 -#define OLEMISC_STATIC 0x8 -#define OLEMISC_CANTLINKINSIDE 0x10 -#define OLEMISC_CANLINKBYOLE1 0x20 -#define OLEMISC_ISLINKOBJECT 0x40 -#define OLEMISC_INSIDEOUT 0x80 -#define OLEMISC_ACTIVATEWHENVISIBLE 0x100 -#define OLEMISC_RENDERINGISDEVICEINDEPENDENT 0x200 -#define OLEMISC_INVISIBLEATRUNTIME 0x400 -#define OLEMISC_ALWAYSRUN 0x800 -#define OLEMISC_ACTSLIKEBUTTON 0x1000 -#define OLEMISC_ACTSLIKELABEL 0x2000 -#define OLEMISC_NOUIACTIVATE 0x4000 -#define OLEMISC_ALIGNABLE 0x8000 -#define OLEMISC_SIMPLEFRAME 0x10000 -#define OLEMISC_SETCLIENTSITEFIRST 0x20000 -#define OLEMISC_IMEMODE 0x40000 -#define OLEMISC_IGNOREACTIVATEWHENVISIBLE 0x80000 -#define OLEMISC_WANTSTOMENUMERGE 0x100000 -#define OLEMISC_SUPPORTSMULTILEVELUNDO 0x200000 -#define OLEIVERB_PROPERTIES (-7) -#define VT_STREAMED_PROPSET 73 -#define VT_STORED_PROPSET 74 -#define VT_BLOB_PROPSET 75 -#define VT_VERBOSE_ENUM 76 -#define VT_COLOR VT_I4 -#define VT_XPOS_PIXELS VT_I4 -#define VT_YPOS_PIXELS VT_I4 -#define VT_XSIZE_PIXELS VT_I4 -#define VT_YSIZE_PIXELS VT_I4 -#define VT_XPOS_HIMETRIC VT_I4 -#define VT_YPOS_HIMETRIC VT_I4 -#define VT_XSIZE_HIMETRIC VT_I4 -#define VT_YSIZE_HIMETRIC VT_I4 -#define VT_TRISTATE VT_I2 -#define VT_OPTEXCLUSIVE VT_BOOL -#define VT_FONT VT_DISPATCH -#define VT_PICTURE VT_DISPATCH -#define VT_HANDLE VT_I4 -#define OCM__BASE (WM_USER+0x1c00) -#define OCM_COMMAND (OCM__BASE+WM_COMMAND) -#define OCM_CTLCOLORBTN (OCM__BASE+WM_CTLCOLORBTN) -#define OCM_CTLCOLOREDIT (OCM__BASE+WM_CTLCOLOREDIT) -#define OCM_CTLCOLORDLG (OCM__BASE+WM_CTLCOLORDLG) -#define OCM_CTLCOLORLISTBOX (OCM__BASE+WM_CTLCOLORLISTBOX) -#define OCM_CTLCOLORMSGBOX (OCM__BASE+WM_CTLCOLORMSGBOX) -#define OCM_CTLCOLORSCROLLBAR (OCM__BASE+WM_CTLCOLORSCROLLBAR) -#define OCM_CTLCOLORSTATIC (OCM__BASE+WM_CTLCOLORSTATIC) -#define OCM_DRAWITEM (OCM__BASE+WM_DRAWITEM) -#define OCM_MEASUREITEM (OCM__BASE+WM_MEASUREITEM) -#define OCM_DELETEITEM (OCM__BASE+WM_DELETEITEM) -#define OCM_VKEYTOITEM (OCM__BASE+WM_VKEYTOITEM) -#define OCM_CHARTOITEM (OCM__BASE+WM_CHARTOITEM) -#define OCM_COMPAREITEM (OCM__BASE+WM_COMPAREITEM) -#define OCM_HSCROLL (OCM__BASE+WM_HSCROLL) -#define OCM_VSCROLL (OCM__BASE+WM_VSCROLL) -#define OCM_PARENTNOTIFY (OCM__BASE+WM_PARENTNOTIFY) -#define OCM_NOTIFY (OCM__BASE+WM_NOTIFY) -#define CTRLINFO_EATS_RETURN 1 -#define CTRLINFO_EATS_ESCAPE 2 -#define XFORMCOORDS_POSITION 1 -#define XFORMCOORDS_SIZE 2 -#define XFORMCOORDS_HIMETRICTOCONTAINER 4 -#define XFORMCOORDS_CONTAINERTOHIMETRIC 8 -#define GUIDKIND_DEFAULT_SOURCE_DISP_IID 1 -#define PROPPAGESTATUS_DIRTY 1 -#define PROPPAGESTATUS_VALIDATE 2 -#define FONTSIZE(n) {n##0000,0} -#define PICTURE_SCALABLE 1 -#define PICTURE_TRANSPARENT 2 -#define PICTYPE_UNINITIALIZED (-1) -#define PICTYPE_NONE 0 -#define PICTYPE_BITMAP 1 -#define PICTYPE_METAFILE 2 -#define PICTYPE_ICON 3 -#define PICTYPE_ENHMETAFILE 4 -#define DISPID_AUTOSIZE (-500) -#define DISPID_BACKCOLOR (-501) -#define DISPID_BACKSTYLE (-502) -#define DISPID_BORDERCOLOR (-503) -#define DISPID_BORDERSTYLE (-504) -#define DISPID_BORDERWIDTH (-505) -#define DISPID_DRAWMODE (-507) -#define DISPID_DRAWSTYLE (-508) -#define DISPID_DRAWWIDTH (-509) -#define DISPID_FILLCOLOR (-510) -#define DISPID_FILLSTYLE (-511) -#define DISPID_FONT (-512) -#define DISPID_FORECOLOR (-513) -#define DISPID_ENABLED (-514) -#define DISPID_HWND (-515) -#define DISPID_TABSTOP (-516) -#define DISPID_TEXT (-517) -#define DISPID_CAPTION (-518) -#define DISPID_BORDERVISIBLE (-519) -#define DISPID_APPEARANCE (-520) -#define DISPID_REFRESH (-550) -#define DISPID_DOCLICK (-551) -#define DISPID_ABOUTBOX (-552) -#define DISPID_CLICK (-600) -#define DISPID_DBLCLICK (-601) -#define DISPID_KEYDOWN (-602) -#define DISPID_KEYPRESS (-603) -#define DISPID_KEYUP (-604) -#define DISPID_MOUSEDOWN (-605) -#define DISPID_MOUSEMOVE (-606) -#define DISPID_MOUSEUP (-607) -#define DISPID_ERROREVENT (-608) -#define DISPID_AMBIENT_BACKCOLOR (-701) -#define DISPID_AMBIENT_DISPLAYNAME (-702) -#define DISPID_AMBIENT_FONT (-703) -#define DISPID_AMBIENT_FORECOLOR (-704) -#define DISPID_AMBIENT_LOCALEID (-705) -#define DISPID_AMBIENT_MESSAGEREFLECT (-706) -#define DISPID_AMBIENT_SCALEUNITS (-707) -#define DISPID_AMBIENT_TEXTALIGN (-708) -#define DISPID_AMBIENT_USERMODE (-709) -#define DISPID_AMBIENT_UIDEAD (-710) -#define DISPID_AMBIENT_SHOWGRABHANDLES (-711) -#define DISPID_AMBIENT_SHOWHATCHING (-712) -#define DISPID_AMBIENT_DISPLAYASDEFAULT (-713) -#define DISPID_AMBIENT_SUPPORTSMNEMONICS (-714) -#define DISPID_AMBIENT_AUTOCLIP (-715) -#define DISPID_AMBIENT_APPEARANCE (-716) -#define DISPID_FONT_NAME 0 -#define DISPID_FONT_SIZE 2 -#define DISPID_FONT_BOLD 3 -#define DISPID_FONT_ITALIC 4 -#define DISPID_FONT_UNDER 5 -#define DISPID_FONT_STRIKE 6 -#define DISPID_FONT_WEIGHT 7 -#define DISPID_FONT_CHARSET 8 -#define DISPID_PICT_HANDLE 0 -#define DISPID_PICT_HPAL 2 -#define DISPID_PICT_TYPE 3 -#define DISPID_PICT_WIDTH 4 -#define DISPID_PICT_HEIGHT 5 -#define DISPID_PICT_RENDER 6 - -#pragma pack(push,8) -#ifndef OLE2ANSI -typedef TEXTMETRICW TEXTMETRICOLE; -#else -typedef TEXTMETRIC TEXTMETRICOLE; -#endif -typedef TEXTMETRICOLE *LPTEXTMETRICOLE; -typedef interface IOleControl *LPOLECONTROL; -typedef interface IOleControlSite *LPOLECONTROLSITE; -typedef interface ISimpleFrameSite *LPSIMPLEFRAMESITE; -typedef interface IErrorLog *LPERRORLOG; -typedef interface IPropertyBag *LPPROPERTYBAG; -typedef interface IPersistPropertyBag *LPPERSISTPROPERTYBAG; -typedef interface IPersistStreamInit *LPPERSISTSTREAMINIT; -typedef interface IPersistMemory *LPPERSISTMEMORY; -typedef interface IPropertyNotifySink* LPPROPERTYNOTIFYSINK; -typedef interface IProvideClassInfo *LPPROVIDECLASSINFO; -typedef interface IProvideClassInfo2 *LPPROVIDECLASSINFO2; -typedef interface IConnectionPointContainer *LPCONNECTIONPOINTCONTAINER; -typedef interface IEnumConnectionPoints *LPENUMCONNECTIONPOINTS; -typedef interface IConnectionPoint *LPCONNECTIONPOINT; -typedef interface IEnumConnections *LPENUMCONNECTIONS; -typedef interface IClassFactory2 *LPCLASSFACTORY2; -typedef interface ISpecifyPropertyPages *LPSPECIFYPROPERTYPAGES; -typedef interface IPerPropertyBrowsing *LPPERPROPERTYBROWSING; -typedef interface IPropertyPageSite *LPPROPERTYPAGESITE; -typedef interface IPropertyPage *LPPROPERTYPAGE; -typedef interface IPropertyPage2 *LPPROPERTYPAGE2; -typedef interface IFont *LPFONT; -typedef interface IFontDisp *LPFONTDISP; -typedef interface IPicture *LPPICTURE; -typedef interface IPictureDisp *LPPICTUREDISP; -typedef DWORD OLE_COLOR; -typedef long OLE_XPOS_PIXELS; -typedef long OLE_YPOS_PIXELS; -typedef long OLE_XSIZE_PIXELS; -typedef long OLE_YSIZE_PIXELS; -typedef long OLE_XPOS_HIMETRIC; -typedef long OLE_YPOS_HIMETRIC; -typedef long OLE_XSIZE_HIMETRIC; -typedef long OLE_YSIZE_HIMETRIC; -typedef float OLE_XPOS_CONTAINER; -typedef float OLE_YPOS_CONTAINER; -typedef float OLE_XSIZE_CONTAINER; -typedef float OLE_YSIZE_CONTAINER; -typedef VARIANT_BOOL OLE_OPTEXCLUSIVE; -typedef VARIANT_BOOL OLE_CANCELBOOL; -typedef VARIANT_BOOL OLE_ENABLEDEFAULTBOOL; -typedef UINT OLE_HANDLE; -typedef enum { triUnchecked,triChecked1,triGray } OLE_TRISTATE; -typedef struct tagPOINTF { - float x; - float y; -} POINTF,*LPPOINTF; -typedef struct tagCONTROLINFO { - ULONG cb; - HACCEL hAccel; - USHORT cAccel; - DWORD dwFlags; -} CONTROLINFO,*LPCONTROLINFO; -typedef struct tagCONNECTDATA { - LPUNKNOWN pUnk; - DWORD dwCookie; -} CONNECTDATA,*LPCONNECTDATA; -typedef struct tagLICINFO { - long cbLicInfo; - BOOL fRuntimeKeyAvail; - BOOL fLicVerified; -} LICINFO,*LPLICINFO; -typedef struct tagCAUUID { - ULONG cElems; - GUID *pElems; -} CAUUID,*LPCAUUID; -typedef struct tagCALPOLESTR { - ULONG cElems; - LPOLESTR *pElems; -} CALPOLESTR,*LPCALPOLESTR; -typedef struct tagCADWORD { - ULONG cElems; - DWORD *pElems; -} CADWORD,*LPCADWORD; -typedef struct tagOCPFIPARAMS { - ULONG cbStructSize; - HWND hWndOwner; - int x; - int y; - LPCOLESTR lpszCaption; - ULONG cObjects; - LPUNKNOWN *lplpUnk; - ULONG cPages; - CLSID *lpPages; - LCID lcid; - DISPID dispidInitialProperty; -} OCPFIPARAMS,*LPOCPFIPARAMS; -typedef struct tagPROPPAGEINFO { - size_t cb; - LPOLESTR pszTitle; - SIZE size; - LPOLESTR pszDocString; - LPOLESTR pszHelpFile; - DWORD dwHelpContext; -} PROPPAGEINFO,*LPPROPPAGEINFO; -typedef struct tagFONTDESC { - UINT cbSizeofstruct; - LPOLESTR lpstrName; - CY cySize; - SHORT sWeight; - SHORT sCharset; - BOOL fItalic; - BOOL fUnderline; - BOOL fStrikethrough; -} FONTDESC,*LPFONTDESC; -typedef struct tagPICTDESC { - UINT cbSizeofstruct; - UINT picType; - _ANONYMOUS_UNION union { - struct { - HBITMAP hbitmap; - HPALETTE hpal; - } bmp; - struct { - HMETAFILE hmeta; - int xExt; - int yExt; - } wmf; - struct { - HICON hicon; - } icon; - struct { - HENHMETAFILE hemf; - } emf; - } DUMMYUNIONNAME; -} PICTDESC,*LPPICTDESC; - -EXTERN_C const IID IID_IOleControl; -#undef INTERFACE -#define INTERFACE IOleControl -DECLARE_INTERFACE_(IOleControl,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetControlInfo)(THIS_ LPCONTROLINFO) PURE; - STDMETHOD(OnMnemonic)(THIS_ LPMSG) PURE; - STDMETHOD(OnAmbientPropertyChange)(THIS_ DISPID) PURE; - STDMETHOD(FreezeEvents)(THIS_ BOOL) PURE; -}; -EXTERN_C const IID IID_IOleControlSite; -#undef INTERFACE -#define INTERFACE IOleControlSite -DECLARE_INTERFACE_(IOleControlSite,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(OnControlInfoChanged)(THIS) PURE; - STDMETHOD(LockInPlaceActive)(THIS_ BOOL) PURE; - STDMETHOD(GetExtendedControl)(THIS_ LPDISPATCH*) PURE; - STDMETHOD(TransformCoords)(THIS_ POINTL*,POINTF*,DWORD) PURE; - STDMETHOD(TranslateAccelerator)(THIS_ LPMSG,DWORD) PURE; - STDMETHOD(OnFocus)(THIS_ BOOL) PURE; - STDMETHOD(ShowPropertyFrame)(THIS) PURE; -}; -EXTERN_C const IID IID_ISimpleFrameSite; -#undef INTERFACE -#define INTERFACE ISimpleFrameSite -DECLARE_INTERFACE_(ISimpleFrameSite,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(PreMessageFilter)(THIS_ HWND,UINT,WPARAM,LPARAM,LRESULT*,PDWORD) PURE; - STDMETHOD(PostMessageFilter)(THIS_ HWND,UINT,WPARAM,LPARAM,LRESULT*,DWORD) PURE; -}; -EXTERN_C const IID IID_IErrorLog; -#undef INTERFACE -#define INTERFACE IErrorLog -DECLARE_INTERFACE_(IErrorLog,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(AddError)(THIS_ LPCOLESTR,LPEXCEPINFO) PURE; -}; -EXTERN_C const IID IID_IPropertyBag; -#undef INTERFACE -#define INTERFACE IPropertyBag -DECLARE_INTERFACE_(IPropertyBag,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Read)(THIS_ LPCOLESTR,LPVARIANT,LPERRORLOG) PURE; - STDMETHOD(Write)(THIS_ LPCOLESTR,LPVARIANT) PURE; -}; -EXTERN_C const IID IID_IPersistPropertyBag; -#undef INTERFACE -#define INTERFACE IPersistPropertyBag -DECLARE_INTERFACE_(IPersistPropertyBag,IPersist) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE; - STDMETHOD(InitNew)(THIS) PURE; - STDMETHOD(Load)(THIS_ LPPROPERTYBAG,LPERRORLOG) PURE; - STDMETHOD(Save)(THIS_ LPPROPERTYBAG,BOOL,BOOL) PURE; -}; -EXTERN_C const IID IID_IPersistStreamInit; -#undef INTERFACE -#define INTERFACE IPersistStreamInit -DECLARE_INTERFACE_(IPersistStreamInit,IPersist) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE; - STDMETHOD(IsDirty)(THIS) PURE; - STDMETHOD(Load)(THIS_ LPSTREAM) PURE; - STDMETHOD(Save)(THIS_ LPSTREAM,BOOL) PURE; - STDMETHOD(GetSizeMax)(THIS_ PULARGE_INTEGER) PURE; - STDMETHOD(InitNew)(THIS) PURE; -}; -EXTERN_C const IID IID_IPersistMemory; -#undef INTERFACE -#define INTERFACE IPersistMemory -DECLARE_INTERFACE_(IPersistMemory,IPersist) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE; - STDMETHOD(IsDirty)(THIS) PURE; - STDMETHOD(Load)(THIS_ PVOID,ULONG) PURE; - STDMETHOD(Save)(THIS_ PVOID,BOOL,ULONG) PURE; - STDMETHOD(GetSizeMax)(THIS_ PULONG) PURE; - STDMETHOD(InitNew)(THIS) PURE; -}; -EXTERN_C const IID IID_IPropertyNotifySink; -#undef INTERFACE -#define INTERFACE IPropertyNotifySink -DECLARE_INTERFACE_(IPropertyNotifySink,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(OnChanged)(THIS_ DISPID) PURE; - STDMETHOD(OnRequestEdit)(THIS_ DISPID) PURE; -}; -EXTERN_C const IID IID_IProvideClassInfo; -#undef INTERFACE -#define INTERFACE IProvideClassInfo -DECLARE_INTERFACE_(IProvideClassInfo,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassInfo)(THIS_ LPTYPEINFO*) PURE; -}; -EXTERN_C const IID IID_IProvideClassInfo2; -#undef INTERFACE -#define INTERFACE IProvideClassInfo2 -DECLARE_INTERFACE_(IProvideClassInfo2,IProvideClassInfo) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassInfo)(THIS_ LPTYPEINFO*) PURE; - STDMETHOD(GetGUID)(THIS_ DWORD,GUID*) PURE; -}; -EXTERN_C const IID IID_IConnectionPointContainer; -#undef INTERFACE -#define INTERFACE IConnectionPointContainer -DECLARE_INTERFACE_(IConnectionPointContainer,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(EnumConnectionPoints)(THIS_ LPENUMCONNECTIONPOINTS*) PURE; - STDMETHOD(FindConnectionPoint)(THIS_ REFIID,LPCONNECTIONPOINT*) PURE; -}; -EXTERN_C const IID IID_IEnumConnectionPoints; -#undef INTERFACE -#define INTERFACE IEnumConnectionPoints -DECLARE_INTERFACE_(IEnumConnectionPoints,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Next)(THIS_ ULONG,LPCONNECTIONPOINT*,ULONG*) PURE; - STDMETHOD(Skip)(THIS_ ULONG) PURE; - STDMETHOD(Reset)(THIS) PURE; - STDMETHOD(Clone)(THIS_ LPENUMCONNECTIONPOINTS*) PURE; -}; -EXTERN_C const IID IID_IConnectionPoint; -#undef INTERFACE -#define INTERFACE IConnectionPoint -DECLARE_INTERFACE_(IConnectionPoint,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetConnectionInterface)(THIS_ IID*) PURE; - STDMETHOD(GetConnectionPointContainer)(THIS_ IConnectionPointContainer**) PURE; - STDMETHOD(Advise)(THIS_ LPUNKNOWN,PDWORD) PURE; - STDMETHOD(Unadvise)(THIS_ DWORD) PURE; - STDMETHOD(EnumConnections)(THIS_ LPENUMCONNECTIONS*) PURE; -}; -EXTERN_C const IID IID_IEnumConnections; -#undef INTERFACE -#define INTERFACE IEnumConnections -DECLARE_INTERFACE_(IEnumConnections,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Next)(THIS_ ULONG,LPCONNECTDATA,PULONG) PURE; - STDMETHOD(Skip)(THIS_ ULONG) PURE; - STDMETHOD(Reset)(THIS) PURE; - STDMETHOD(Clone)(THIS_ LPENUMCONNECTIONS*) PURE; -}; -EXTERN_C const IID IID_IClassFactory2; -#undef INTERFACE -#define INTERFACE IClassFactory2 -DECLARE_INTERFACE_(IClassFactory2,IClassFactory) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE; - STDMETHOD(LockServer)(THIS_ BOOL) PURE; - STDMETHOD(GetLicInfo)(THIS_ LPLICINFO) PURE; - STDMETHOD(RequestLicKey)(THIS_ DWORD,BSTR*) PURE; - STDMETHOD(CreateInstanceLic)(THIS_ LPUNKNOWN,LPUNKNOWN,REFIID,BSTR,PVOID*) PURE; -}; -EXTERN_C const IID IID_ISpecifyPropertyPages; -#undef INTERFACE -#define INTERFACE ISpecifyPropertyPages -DECLARE_INTERFACE_(ISpecifyPropertyPages,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetPages)(THIS_ CAUUID*) PURE; -}; -EXTERN_C const IID IID_IPerPropertyBrowsing; -#undef INTERFACE -#define INTERFACE IPerPropertyBrowsing -DECLARE_INTERFACE_(IPerPropertyBrowsing,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetDisplayString)(THIS_ DISPID,BSTR*) PURE; - STDMETHOD(MapPropertyToPage)(THIS_ DISPID,LPCLSID) PURE; - STDMETHOD(GetPredefinedStrings)(THIS_ DISPID,CALPOLESTR*,CADWORD*) PURE; - STDMETHOD(GetPredefinedValue)(THIS_ DISPID,DWORD,VARIANT*) PURE; -}; -EXTERN_C const IID IID_IPropertyPageSite; -#undef INTERFACE -#define INTERFACE IPropertyPageSite -DECLARE_INTERFACE_(IPropertyPageSite,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(OnStatusChange)(THIS_ DWORD) PURE; - STDMETHOD(GetLocaleID)(THIS_ LCID*) PURE; - STDMETHOD(GetPageContainer)(THIS_ LPUNKNOWN*) PURE; - STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE; -}; -EXTERN_C const IID IID_IPropertyPage; -#undef INTERFACE -#define INTERFACE IPropertyPage -DECLARE_INTERFACE_(IPropertyPage,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(SetPageSite)(THIS_ LPPROPERTYPAGESITE) PURE; - STDMETHOD(Activate)(THIS_ HWND,LPCRECT,BOOL) PURE; - STDMETHOD(Deactivate)(THIS) PURE; - STDMETHOD(GetPageInfo)(THIS_ LPPROPPAGEINFO) PURE; - STDMETHOD(SetObjects)(THIS_ ULONG,LPUNKNOWN*) PURE; - STDMETHOD(Show)(THIS_ UINT) PURE; - STDMETHOD(Move)(THIS_ LPCRECT) PURE; - STDMETHOD(IsPageDirty)(THIS) PURE; - STDMETHOD(Apply)(THIS) PURE; - STDMETHOD(Help)(THIS_ LPCOLESTR) PURE; - STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE; -}; -EXTERN_C const IID IID_IPropertyPage2; -#undef INTERFACE -#define INTERFACE IPropertyPage2 -DECLARE_INTERFACE_(IPropertyPage2,IPropertyPage) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(SetPageSite)(THIS_ LPPROPERTYPAGESITE) PURE; - STDMETHOD(Activate)(THIS_ HWND,LPCRECT,BOOL) PURE; - STDMETHOD(Deactivate)(THIS) PURE; - STDMETHOD(GetPageInfo)(THIS_ LPPROPPAGEINFO) PURE; - STDMETHOD(SetObjects)(THIS_ ULONG,LPUNKNOWN*) PURE; - STDMETHOD(Show)(THIS_ UINT) PURE; - STDMETHOD(Move)(THIS_ LPCRECT) PURE; - STDMETHOD(IsPageDirty)(THIS) PURE; - STDMETHOD(Apply)(THIS) PURE; - STDMETHOD(Help)(THIS_ LPCOLESTR) PURE; - STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE; - STDMETHOD(EditProperty)(THIS_ DISPID) PURE; -}; -EXTERN_C const IID IID_IFont; -#undef INTERFACE -#define INTERFACE IFont -DECLARE_INTERFACE_(IFont,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(get_Name)(THIS_ BSTR*) PURE; - STDMETHOD(put_Name)(THIS_ BSTR) PURE; - STDMETHOD(get_Size)(THIS_ CY*) PURE; - STDMETHOD(put_Size)(THIS_ CY) PURE; - STDMETHOD(get_Bold)(THIS_ BOOL*) PURE; - STDMETHOD(put_Bold)(THIS_ BOOL) PURE; - STDMETHOD(get_Italic)(THIS_ BOOL*) PURE; - STDMETHOD(put_Italic)(THIS_ BOOL) PURE; - STDMETHOD(get_Underline)(THIS_ BOOL*) PURE; - STDMETHOD(put_Underline)(THIS_ BOOL) PURE; - STDMETHOD(get_Strikethrough)(THIS_ BOOL*) PURE; - STDMETHOD(put_Strikethrough)(THIS_ BOOL) PURE; - STDMETHOD(get_Weight)(THIS_ short*) PURE; - STDMETHOD(put_Weight)(THIS_ short) PURE; - STDMETHOD(get_Charset)(THIS_ short*) PURE; - STDMETHOD(put_Charset)(THIS_ short) PURE; - STDMETHOD(get_hFont)(THIS_ HFONT*) PURE; - STDMETHOD(Clone)(THIS_ IFont**) PURE; - STDMETHOD(IsEqual)(THIS_ IFont*) PURE; - STDMETHOD(SetRatio)(THIS_ long,long) PURE; - STDMETHOD(QueryTextMetrics)(THIS_ LPTEXTMETRICOLE) PURE; - STDMETHOD(AddRefHfont)(THIS_ HFONT) PURE; - STDMETHOD(ReleaseHfont)(THIS_ HFONT) PURE; - STDMETHOD(SetHdc)(THIS_ HDC) PURE; -}; -EXTERN_C const IID IID_IFontDisp; -#undef INTERFACE -#define INTERFACE IFontDisp -DECLARE_INTERFACE_(IFontDisp,IDispatch) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE; - STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE; - STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE; - STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE; -}; -EXTERN_C const IID IID_IPicture; -#undef INTERFACE -#define INTERFACE IPicture -DECLARE_INTERFACE_(IPicture,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(get_Handle)(THIS_ OLE_HANDLE*) PURE; - STDMETHOD(get_hPal)(THIS_ OLE_HANDLE*) PURE; - STDMETHOD(get_Type)(THIS_ short*) PURE; - STDMETHOD(get_Width)(THIS_ OLE_XSIZE_HIMETRIC*) PURE; - STDMETHOD(get_Height)(THIS_ OLE_YSIZE_HIMETRIC*) PURE; - STDMETHOD(Render)(THIS_ HDC,long,long,long,long,OLE_XPOS_HIMETRIC,OLE_YPOS_HIMETRIC,OLE_XSIZE_HIMETRIC,OLE_YSIZE_HIMETRIC,LPCRECT) PURE; - STDMETHOD(set_hPal)(THIS_ OLE_HANDLE) PURE; - STDMETHOD(get_CurDC)(THIS_ HDC*) PURE; - STDMETHOD(SelectPicture)(THIS_ HDC,HDC*,OLE_HANDLE*) PURE; - STDMETHOD(get_KeepOriginalFormat)(THIS_ BOOL*) PURE; - STDMETHOD(put_KeepOriginalFormat)(THIS_ BOOL) PURE; - STDMETHOD(PictureChanged)(THIS) PURE; - STDMETHOD(SaveAsFile)(THIS_ LPSTREAM,BOOL,LONG*) PURE; - STDMETHOD(get_Attributes)(THIS_ PDWORD) PURE; -}; -EXTERN_C const IID IID_IPictureDisp; -#undef INTERFACE -#define INTERFACE IPictureDisp -DECLARE_INTERFACE_(IPictureDisp,IDispatch) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE; - STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE; - STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE; - STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE; -}; -#pragma pack(pop) - -STDAPI DllRegisterServer(void); -STDAPI DllUnregisterServer(void); -STDAPI OleCreateFontIndirect(LPFONTDESC,REFIID,PVOID*); -STDAPI OleCreatePictureIndirect(LPPICTDESC,REFIID,BOOL,PVOID*); -STDAPI OleCreatePropertyFrame(HWND,UINT,UINT,LPCOLESTR,ULONG,LPUNKNOWN*,ULONG,LPCLSID,LCID,DWORD,PVOID); -STDAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS); -STDAPI_(HCURSOR) OleIconToCursor(HINSTANCE,HICON); -STDAPI OleLoadPicture(LPSTREAM,LONG,BOOL,REFIID,PVOID*); -STDAPI OleTranslateColor(OLE_COLOR,HPALETTE,COLORREF*); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/olectlid.h b/winsup/w32api/include/olectlid.h deleted file mode 100644 index 2aefe9718..000000000 --- a/winsup/w32api/include/olectlid.h +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef _OLECTLID_H -#define _OLECTLID_H -#ifdef __cplusplus -extern "C" { -#endif - -extern const GUID IID_IDispatch; -extern const GUID IID_IPropertyNotifySink; -extern const GUID IID_IClassFactory2; -extern const GUID IID_IProvideClassInfo; -extern const GUID IID_IProvideClassInfo2; -extern const GUID IID_IConnectionPointContainer; -extern const GUID IID_IEnumConnectionPoints; -extern const GUID IID_IConnectionPoint; -extern const GUID IID_IEnumConnections; -extern const GUID IID_IOleControl; -extern const GUID IID_IOleControlSite; -extern const GUID IID_ISimpleFrameSite; -extern const GUID IID_IPersistStreamInit; -extern const GUID IID_IPersistMemory; -extern const GUID IID_IPersistPropertyBag; -extern const GUID IID_IPropertyBag; -extern const GUID IID_IErrorLog; -extern const GUID IID_IPropertyFrame; -extern const GUID IID_ISpecifyPropertyPages; -extern const GUID IID_IPerPropertyBrowsing; -extern const GUID IID_IPropertyPageSite; -extern const GUID IID_IPropertyPage; -extern const GUID IID_IPropertyPage2; -extern const GUID CLSID_CFontPropPage; -extern const GUID CLSID_CColorPropPage; -extern const GUID CLSID_CPicturePropPage; -extern const GUID CLSID_PersistPropset; -extern const GUID CLSID_ConvertVBX; -extern const GUID CLSID_StdFont; -extern const GUID CLSID_StdPicture; -extern const GUID IID_IFont; -extern const GUID IID_IFontDisp; -extern const GUID IID_IPicture; -extern const GUID IID_IPictureDisp; -extern const GUID GUID_HIMETRIC; -extern const GUID GUID_COLOR; -extern const GUID GUID_XPOSPIXEL; -extern const GUID GUID_YPOSPIXEL; -extern const GUID GUID_XSIZEPIXEL; -extern const GUID GUID_YSIZEPIXEL; -extern const GUID GUID_XPOS; -extern const GUID GUID_YPOS; -extern const GUID GUID_XSIZE; -extern const GUID GUID_YSIZE; -extern const GUID GUID_TRISTATE; -extern const GUID GUID_OPTIONVALUEEXCLUSIVE; -extern const GUID GUID_CHECKVALUEEXCLUSIVE; -extern const GUID GUID_FONTNAME; -extern const GUID GUID_FONTSIZE; -extern const GUID GUID_FONTBOLD; -extern const GUID GUID_FONTITALIC; -extern const GUID GUID_FONTUNDERSCORE; -extern const GUID GUID_FONTSTRIKETHROUGH; -extern const GUID GUID_HANDLE; -extern const GUID IID_IEnumUnknown; -extern const GUID IID_IEnumString; -extern const GUID IID_IEnumMoniker; -extern const GUID IID_IEnumFORMATETC; -extern const GUID IID_IEnumOLEVERB; -extern const GUID IID_IEnumSTATDATA; -extern const GUID IID_IEnumGeneric; -extern const GUID IID_IEnumHolder; -extern const GUID IID_IEnumCallback; -extern const GUID IID_IPersistStream; -extern const GUID IID_IPersistStorage; -extern const GUID IID_IPersistFile; -extern const GUID IID_IPersist; -extern const GUID IID_IViewObject; -extern const GUID IID_IDataObject; -extern const GUID IID_IAdviseSink; -extern const GUID IID_IDataAdviseHolder; -extern const GUID IID_IOleAdviseHolder; -extern const GUID IID_IOleObject; -extern const GUID IID_IOleInPlaceObject; -extern const GUID IID_IOleWindow; -extern const GUID IID_IOleInPlaceUIWindow; -extern const GUID IID_IOleInPlaceFrame; -extern const GUID IID_IOleInPlaceActiveObject; -extern const GUID IID_IOleClientSite; -extern const GUID IID_IOleInPlaceSite; -extern const GUID IID_IParseDisplayName; -extern const GUID IID_IOleContainer; -extern const GUID IID_IOleItemContainer; -extern const GUID IID_IOleLink; -extern const GUID IID_IOleCache; -extern const GUID IID_IOleManager; -extern const GUID IID_IOlePresObj; -extern const GUID IID_IDropSource; -extern const GUID IID_IDropTarget; -extern const GUID IID_IDebug; -extern const GUID IID_IDebugStream; -extern const GUID IID_IAdviseSink2; -extern const GUID IID_IRunnableObject; -extern const GUID IID_IViewObject2; -extern const GUID IID_IOleCache2; -extern const GUID IID_IOleCacheControl; -extern const GUID CLSID_Picture_Metafile; -extern const GUID CLSID_Picture_Dib; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/oledlg.h b/winsup/w32api/include/oledlg.h deleted file mode 100644 index 438b53e2f..000000000 --- a/winsup/w32api/include/oledlg.h +++ /dev/null @@ -1,931 +0,0 @@ -#ifndef _OLEDLG_H -#define _OLEDLG_H -#ifdef __cplusplus -extern "C" { -#endif -#include -#include -#include -#include -#include -/* #include */ -#include -#include -#define PS_MAXLINKTYPES 8 -#define OLESTDDELIM TEXT("\\") -#define SZOLEUI_MSG_HELP TEXT("OLEUI_MSG_HELP") -#define SZOLEUI_MSG_ENDDIALOG TEXT("OLEUI_MSG_ENDDIALOG") -#define SZOLEUI_MSG_BROWSE TEXT("OLEUI_MSG_BROWSE") -#define SZOLEUI_MSG_CHANGEICON TEXT("OLEUI_MSG_CHANGEICON") -#define SZOLEUI_MSG_CLOSEBUSYDIALOG TEXT("OLEUI_MSG_CLOSEBUSYDIALOG") -#define SZOLEUI_MSG_CONVERT TEXT("OLEUI_MSG_CONVERT") -#define SZOLEUI_MSG_CHANGESOURCE TEXT("OLEUI_MSG_CHANGESOURCE") -#define SZOLEUI_MSG_ADDCONTROL TEXT("OLEUI_MSG_ADDCONTROL") -#define SZOLEUI_MSG_BROWSE_OFN TEXT("OLEUI_MSG_BROWSE_OFN") -#define PROP_HWND_CHGICONDLG TEXT("HWND_CIDLG") -#define IDC_OLEUIHELP 99 -#define IDC_IO_CREATENEW 2100 -#define IDC_IO_CREATEFROMFILE 2101 -#define IDC_IO_LINKFILE 2102 -#define IDC_IO_OBJECTTYPELIST 2103 -#define IDC_IO_DISPLAYASICON 2104 -#define IDC_IO_CHANGEICON 2105 -#define IDC_IO_FILE 2106 -#define IDC_IO_FILEDISPLAY 2107 -#define IDC_IO_RESULTIMAGE 2108 -#define IDC_IO_RESULTTEXT 2109 -#define IDC_IO_ICONDISPLAY 2110 -#define IDC_IO_OBJECTTYPETEXT 2111 -#define IDC_IO_FILETEXT 2112 -#define IDC_IO_FILETYPE 2113 -#define IDC_IO_INSERTCONTROL 2114 -#define IDC_IO_ADDCONTROL 2115 -#define IDC_IO_CONTROLTYPELIST 2116 -#define IDC_PS_PASTE 500 -#define IDC_PS_PASTELINK 501 -#define IDC_PS_SOURCETEXT 502 -#define IDC_PS_PASTELIST 503 -#define IDC_PS_PASTELINKLIST 504 -#define IDC_PS_DISPLAYLIST 505 -#define IDC_PS_DISPLAYASICON 506 -#define IDC_PS_ICONDISPLAY 507 -#define IDC_PS_CHANGEICON 508 -#define IDC_PS_RESULTIMAGE 509 -#define IDC_PS_RESULTTEXT 510 -#define IDC_CI_GROUP 120 -#define IDC_CI_CURRENT 121 -#define IDC_CI_CURRENTICON 122 -#define IDC_CI_DEFAULT 123 -#define IDC_CI_DEFAULTICON 124 -#define IDC_CI_FROMFILE 125 -#define IDC_CI_FROMFILEEDIT 126 -#define IDC_CI_ICONLIST 127 -#define IDC_CI_LABEL 128 -#define IDC_CI_LABELEDIT 129 -#define IDC_CI_BROWSE 130 -#define IDC_CI_ICONDISPLAY 131 -#define IDC_CV_OBJECTTYPE 150 -#define IDC_CV_DISPLAYASICON 152 -#define IDC_CV_CHANGEICON 153 -#define IDC_CV_ACTIVATELIST 154 -#define IDC_CV_CONVERTTO 155 -#define IDC_CV_ACTIVATEAS 156 -#define IDC_CV_RESULTTEXT 157 -#define IDC_CV_CONVERTLIST 158 -#define IDC_CV_ICONDISPLAY 165 -#define IDC_EL_CHANGESOURCE 201 -#define IDC_EL_AUTOMATIC 202 -#define IDC_EL_CANCELLINK 209 -#define IDC_EL_UPDATENOW 210 -#define IDC_EL_OPENSOURCE 211 -#define IDC_EL_MANUAL 212 -#define IDC_EL_LINKSOURCE 216 -#define IDC_EL_LINKTYPE 217 -#define IDC_EL_LINKSLISTBOX 206 -#define IDC_EL_COL1 220 -#define IDC_EL_COL2 221 -#define IDC_EL_COL3 222 -#define IDC_BZ_RETRY 600 -#define IDC_BZ_ICON 601 -#define IDC_BZ_MESSAGE1 602 -#define IDC_BZ_SWITCHTO 604 -#define IDC_UL_METER 1029 -#define IDC_UL_STOP 1030 -#define IDC_UL_PERCENT 1031 -#define IDC_UL_PROGRESS 1032 -#define IDC_PU_LINKS 900 -#define IDC_PU_TEXT 901 -#define IDC_PU_CONVERT 902 -#define IDC_PU_ICON 908 -#define IDC_GP_OBJECTNAME 1009 -#define IDC_GP_OBJECTTYPE 1010 -#define IDC_GP_OBJECTSIZE 1011 -#define IDC_GP_CONVERT 1013 -#define IDC_GP_OBJECTICON 1014 -#define IDC_GP_OBJECTLOCATION 1022 -#define IDC_VP_PERCENT 1000 -#define IDC_VP_CHANGEICON 1001 -#define IDC_VP_EDITABLE 1002 -#define IDC_VP_ASICON 1003 -#define IDC_VP_RELATIVE 1005 -#define IDC_VP_SPIN 1006 -#define IDC_VP_SCALETXT 1034 -#define IDC_VP_ICONDISPLAY 1021 -#define IDC_VP_RESULTIMAGE 1033 -#define IDC_LP_OPENSOURCE 1006 -#define IDC_LP_UPDATENOW 1007 -#define IDC_LP_BREAKLINK 1008 -#define IDC_LP_LINKSOURCE 1012 -#define IDC_LP_CHANGESOURCE 1015 -#define IDC_LP_AUTOMATIC 1016 -#define IDC_LP_MANUAL 1017 -#define IDC_LP_DATE 1018 -#define IDC_LP_TIME 1019 -#define IDD_INSERTOBJECT 1000 -#define IDD_CHANGEICON 1001 -#define IDD_CONVERT 1002 -#define IDD_PASTESPECIAL 1003 -#define IDD_EDITLINKS 1004 -#define IDD_BUSY 1006 -#define IDD_UPDATELINKS 1007 -#define IDD_CHANGESOURCE 1009 -#define IDD_INSERTFILEBROWSE 1010 -#define IDD_CHANGEICONBROWSE 1011 -#define IDD_CONVERTONLY 1012 -#define IDD_CHANGESOURCE4 1013 -#define IDD_GNRLPROPS 1100 -#define IDD_VIEWPROPS 1101 -#define IDD_LINKPROPS 1102 -#define IDD_CANNOTUPDATELINK 1008 -#define IDD_LINKSOURCEUNAVAILABLE 1020 -#define IDD_SERVERNOTFOUND 1023 -#define IDD_OUTOFMEMORY 1024 -#define IDD_SERVERNOTREGW 1021 -#define IDD_LINKTYPECHANGEDW 1022 -#define IDD_SERVERNOTREGA 1025 -#define IDD_LINKTYPECHANGEDA 1026 -#define ID_BROWSE_CHANGEICON 1 -#define ID_BROWSE_INSERTFILE 2 -#define ID_BROWSE_ADDCONTROL 3 -#define ID_BROWSE_CHANGESOURCE 4 -#define OLEUI_FALSE 0 -#define OLEUI_SUCCESS 1 -#define OLEUI_OK 1 -#define OLEUI_CANCEL 2 -#define OLEUI_ERR_STANDARDMIN 100 -#define OLEUI_ERR_STRUCTURENULL 101 -#define OLEUI_ERR_STRUCTUREINVALID 102 -#define OLEUI_ERR_CBSTRUCTINCORRECT 103 -#define OLEUI_ERR_HWNDOWNERINVALID 104 -#define OLEUI_ERR_LPSZCAPTIONINVALID 105 -#define OLEUI_ERR_LPFNHOOKINVALID 106 -#define OLEUI_ERR_HINSTANCEINVALID 107 -#define OLEUI_ERR_LPSZTEMPLATEINVALID 108 -#define OLEUI_ERR_HRESOURCEINVALID 109 -#define OLEUI_ERR_FINDTEMPLATEFAILURE 110 -#define OLEUI_ERR_LOADTEMPLATEFAILURE 111 -#define OLEUI_ERR_DIALOGFAILURE 112 -#define OLEUI_ERR_LOCALMEMALLOC 113 -#define OLEUI_ERR_GLOBALMEMALLOC 114 -#define OLEUI_ERR_LOADSTRING 115 -#define OLEUI_ERR_OLEMEMALLOC 116 -#define OLEUI_ERR_STANDARDMAX 116 -#define OPF_OBJECTISLINK 1 -#define OPF_NOFILLDEFAULT 2 -#define OPF_SHOWHELP 4 -#define OPF_DISABLECONVERT 8 -#define OLEUI_OPERR_SUBPROPNULL OLEUI_ERR_STANDARDMAX -#define OLEUI_OPERR_SUBPROPINVALID (OLEUI_ERR_STANDARDMAX+1) -#define OLEUI_OPERR_PROPSHEETNULL (OLEUI_ERR_STANDARDMAX+2) -#define OLEUI_OPERR_PROPSHEETINVALID (OLEUI_ERR_STANDARDMAX+3) -#define OLEUI_OPERR_SUPPROP (OLEUI_ERR_STANDARDMAX+4) -#define OLEUI_OPERR_PROPSINVALID (OLEUI_ERR_STANDARDMAX+5) -#define OLEUI_OPERR_PAGESINCORRECT (OLEUI_ERR_STANDARDMAX+6) -#define OLEUI_OPERR_INVALIDPAGES (OLEUI_ERR_STANDARDMAX+7) -#define OLEUI_OPERR_NOTSUPPORTED (OLEUI_ERR_STANDARDMAX+8) -#define OLEUI_OPERR_DLGPROCNOTNULL (OLEUI_ERR_STANDARDMAX+9) -#define OLEUI_OPERR_LPARAMNOTZERO (OLEUI_ERR_STANDARDMAX+10) -#define OLEUI_GPERR_STRINGINVALID (OLEUI_ERR_STANDARDMAX+11) -#define OLEUI_GPERR_CLASSIDINVALID (OLEUI_ERR_STANDARDMAX+12) -#define OLEUI_GPERR_LPCLSIDEXCLUDEINVALID (OLEUI_ERR_STANDARDMAX+13) -#define OLEUI_GPERR_CBFORMATINVALID (OLEUI_ERR_STANDARDMAX+14) -#define OLEUI_VPERR_METAPICTINVALID (OLEUI_ERR_STANDARDMAX+15) -#define OLEUI_VPERR_DVASPECTINVALID (OLEUI_ERR_STANDARDMAX+16) -#define OLEUI_LPERR_LINKCNTRNULL (OLEUI_ERR_STANDARDMAX+17) -#define OLEUI_LPERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+18) -#define OLEUI_OPERR_PROPERTYSHEET (OLEUI_ERR_STANDARDMAX+19) -#define OLEUI_OPERR_OBJINFOINVALID (OLEUI_ERR_STANDARDMAX+20) -#define OLEUI_OPERR_LINKINFOINVALID (OLEUI_ERR_STANDARDMAX+21) -#define OLEUI_QUERY_GETCLASSID 65280 -#define OLEUI_QUERY_LINKBROKEN 65281 -#define IOF_SHOWHELP 1 -#define IOF_SELECTCREATENEW 2 -#define IOF_SELECTCREATEFROMFILE 4 -#define IOF_CHECKLINK 8 -#define IOF_CHECKDISPLAYASICON 16 -#define IOF_CREATENEWOBJECT 32 -#define IOF_CREATEFILEOBJECT 64 -#define IOF_CREATELINKOBJECT 128 -#define IOF_DISABLELINK 256 -#define IOF_VERIFYSERVERSEXIST 512 -#define IOF_DISABLEDISPLAYASICON 1024 -#define IOF_HIDECHANGEICON 2048 -#define IOF_SHOWINSERTCONTROL 4096 -#define IOF_SELECTCREATECONTROL 8192 -#define OLEUI_IOERR_LPSZFILEINVALID OLEUI_ERR_STANDARDMAX -#define OLEUI_IOERR_LPSZLABELINVALID (OLEUI_ERR_STANDARDMAX+1) -#define OLEUI_IOERR_HICONINVALID (OLEUI_ERR_STANDARDMAX+2) -#define OLEUI_IOERR_LPFORMATETCINVALID (OLEUI_ERR_STANDARDMAX+3) -#define OLEUI_IOERR_PPVOBJINVALID (OLEUI_ERR_STANDARDMAX+4) -#define OLEUI_IOERR_LPIOLECLIENTSITEINVALID (OLEUI_ERR_STANDARDMAX+5) -#define OLEUI_IOERR_LPISTORAGEINVALID (OLEUI_ERR_STANDARDMAX+6) -#define OLEUI_IOERR_SCODEHASERROR (OLEUI_ERR_STANDARDMAX+7) -#define OLEUI_IOERR_LPCLSIDEXCLUDEINVALID (OLEUI_ERR_STANDARDMAX+8) -#define OLEUI_IOERR_CCHFILEINVALID (OLEUI_ERR_STANDARDMAX+9) -#define PSF_SHOWHELP 1 -#define PSF_SELECTPASTE 2 -#define PSF_SELECTPASTELINK 4 -#define PSF_CHECKDISPLAYASICON 8 -#define PSF_DISABLEDISPLAYASICON 16 -#define PSF_HIDECHANGEICON 32 -#define PSF_STAYONCLIPBOARDCHANGE 64 -#define PSF_NOREFRESHDATAOBJECT 128 -#define OLEUI_IOERR_SRCDATAOBJECTINVALID OLEUI_ERR_STANDARDMAX -#define OLEUI_IOERR_ARRPASTEENTRIESINVALID (OLEUI_ERR_STANDARDMAX+1) -#define OLEUI_IOERR_ARRLINKTYPESINVALID (OLEUI_ERR_STANDARDMAX+2) -#define OLEUI_PSERR_CLIPBOARDCHANGED (OLEUI_ERR_STANDARDMAX+3) -#define OLEUI_PSERR_GETCLIPBOARDFAILED (OLEUI_ERR_STANDARDMAX+4) -#define OLEUI_ELERR_LINKCNTRNULL OLEUI_ERR_STANDARDMAX -#define OLEUI_ELERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+1) -#define ELF_SHOWHELP 1 -#define ELF_DISABLEUPDATENOW 2 -#define ELF_DISABLEOPENSOURCE 4 -#define ELF_DISABLECHANGESOURCE 8 -#define ELF_DISABLECANCELLINK 16 -#define CIF_SHOWHELP 1 -#define CIF_SELECTCURRENT 2 -#define CIF_SELECTDEFAULT 4 -#define CIF_SELECTFROMFILE 8 -#define CIF_USEICONEXE 16 -#define OLEUI_CIERR_MUSTHAVECLSID OLEUI_ERR_STANDARDMAX -#define OLEUI_CIERR_MUSTHAVECURRENTMETAFILE (OLEUI_ERR_STANDARDMAX+1) -#define OLEUI_CIERR_SZICONEXEINVALID (OLEUI_ERR_STANDARDMAX+2) -#define CF_SHOWHELPBUTTON 1 -#define CF_SETCONVERTDEFAULT 2 -#define CF_SETACTIVATEDEFAULT 4 -#define CF_SELECTCONVERTTO 8 -#define CF_SELECTACTIVATEAS 16 -#define CF_DISABLEDISPLAYASICON 32 -#define CF_DISABLEACTIVATEAS 64 -#define CF_HIDECHANGEICON 128 -#define CF_CONVERTONLY 256 -#define OLEUI_CTERR_CLASSIDINVALID (OLEUI_ERR_STANDARDMAX+1) -#define OLEUI_CTERR_DVASPECTINVALID (OLEUI_ERR_STANDARDMAX+2) -#define OLEUI_CTERR_CBFORMATINVALID (OLEUI_ERR_STANDARDMAX+3) -#define OLEUI_CTERR_HMETAPICTINVALID (OLEUI_ERR_STANDARDMAX+4) -#define OLEUI_CTERR_STRINGINVALID (OLEUI_ERR_STANDARDMAX+5) -#define BZ_DISABLECANCELBUTTON 1 -#define BZ_DISABLESWITCHTOBUTTON 2 -#define BZ_DISABLERETRYBUTTON 4 -#define BZ_NOTRESPONDINGDIALOG 8 -#define OLEUI_BZERR_HTASKINVALID OLEUI_ERR_STANDARDMAX -#define OLEUI_BZ_SWITCHTOSELECTED (OLEUI_ERR_STANDARDMAX+1) -#define OLEUI_BZ_RETRYSELECTED (OLEUI_ERR_STANDARDMAX+2) -#define OLEUI_BZ_CALLUNBLOCKED (OLEUI_ERR_STANDARDMAX+3) -#define CSF_SHOWHELP 1 -#define CSF_VALIDSOURCE 2 -#define CSF_ONLYGETSOURCE 4 -#define CSF_EXPLORER 8 -#define OLEUI_CSERR_LINKCNTRNULL OLEUI_ERR_STANDARDMAX -#define OLEUI_CSERR_LINKCNTRINVALID (OLEUI_ERR_STANDARDMAX+1) -#define OLEUI_CSERR_FROMNOTNULL (OLEUI_ERR_STANDARDMAX+2) -#define OLEUI_CSERR_TONOTNULL (OLEUI_ERR_STANDARDMAX+3) -#define OLEUI_CSERR_SOURCENULL (OLEUI_ERR_STANDARDMAX+4) -#define OLEUI_CSERR_SOURCEINVALID (OLEUI_ERR_STANDARDMAX+5) -#define OLEUI_CSERR_SOURCEPARSERROR (OLEUI_ERR_STANDARDMAX+6) -#define OLEUI_CSERR_SOURCEPARSEERROR (OLEUI_ERR_STANDARDMAX+7) -#define VPF_SELECTRELATIVE 1 -#define VPF_DISABLERELATIVE 2 -#define VPF_DISABLESCALE 4 - -#ifndef RC_INVOKED -#pragma pack(push, 8) -typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM); -typedef struct tagOLEUIINSERTOBJECTW { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCWSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCWSTR lpszTemplate; - HRSRC hResource; - CLSID clsid; - LPWSTR lpszFile; - UINT cchFile; - UINT cClsidExclude; - LPCLSID lpClsidExclude; - IID iid; - DWORD oleRender; - LPFORMATETC lpFormatEtc; - LPOLECLIENTSITE lpIOleClientSite; - LPSTORAGE lpIStorage; - PVOID *ppvObj; - SCODE sc; - HGLOBAL hMetaPict; -} OLEUIINSERTOBJECTW,*POLEUIINSERTOBJECTW,*LPOLEUIINSERTOBJECTW; -typedef struct tagOLEUIINSERTOBJECTA { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCSTR lpszTemplate; - HRSRC hResource; - CLSID clsid; - LPSTR lpszFile; - UINT cchFile; - UINT cClsidExclude; - LPCLSID lpClsidExclude; - IID iid; - DWORD oleRender; - LPFORMATETC lpFormatEtc; - LPOLECLIENTSITE lpIOleClientSite; - LPSTORAGE lpIStorage; - PVOID *ppvObj; - SCODE sc; - HGLOBAL hMetaPict; -} OLEUIINSERTOBJECTA,*POLEUIINSERTOBJECTA,*LPOLEUIINSERTOBJECTA; -STDAPI_(UINT) OleUIInsertObjectW(LPOLEUIINSERTOBJECTW); -STDAPI_(UINT) OleUIInsertObjectA(LPOLEUIINSERTOBJECTA); -typedef enum tagOLEUIPASTEFLAG { - OLEUIPASTE_PASTEONLY, - OLEUIPASTE_LINKTYPE1, - OLEUIPASTE_LINKTYPE2, - OLEUIPASTE_LINKTYPE3=4, - OLEUIPASTE_LINKTYPE4=8, - OLEUIPASTE_LINKTYPE5=16, - OLEUIPASTE_LINKTYPE6=32, - OLEUIPASTE_LINKTYPE7=64, - OLEUIPASTE_LINKTYPE8=128, - OLEUIPASTE_PASTE=512, - OLEUIPASTE_LINKANYTYPE=1024, - OLEUIPASTE_ENABLEICON=2048 -} OLEUIPASTEFLAG; -typedef struct tagOLEUIPASTEENTRYW { - FORMATETC fmtetc; - LPCWSTR lpstrFormatName; - LPCWSTR lpstrResultText; - DWORD dwFlags; - DWORD dwScratchSpace; -} OLEUIPASTEENTRYW,*POLEUIPASTEENTRYW,*LPOLEUIPASTEENTRYW; -typedef struct tagOLEUIPASTEENTRYA { - FORMATETC fmtetc; - LPCSTR lpstrFormatName; - LPCSTR lpstrResultText; - DWORD dwFlags; - DWORD dwScratchSpace; -} OLEUIPASTEENTRYA,*POLEUIPASTEENTRYA,*LPOLEUIPASTEENTRYA; -typedef struct tagOLEUIPASTESPECIALW { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCWSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCWSTR lpszTemplate; - HRSRC hResource; - LPDATAOBJECT lpSrcDataObj; - LPOLEUIPASTEENTRYW arrPasteEntries; - int cPasteEntries; - UINT *arrLinkTypes; - int cLinkTypes; - UINT cClsidExclude; - LPCLSID lpClsidExclude; - int nSelectedIndex; - BOOL fLink; - HGLOBAL hMetaPict; - SIZEL sizel; -} OLEUIPASTESPECIALW,*POLEUIPASTESPECIALW,*LPOLEUIPASTESPECIALW; -typedef struct tagOLEUIPASTESPECIALA { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCSTR lpszTemplate; - HRSRC hResource; - LPDATAOBJECT lpSrcDataObj; - LPOLEUIPASTEENTRYA arrPasteEntries; - int cPasteEntries; - UINT *arrLinkTypes; - int cLinkTypes; - UINT cClsidExclude; - LPCLSID lpClsidExclude; - int nSelectedIndex; - BOOL fLink; - HGLOBAL hMetaPict; - SIZEL sizel; -} OLEUIPASTESPECIALA,*POLEUIPASTESPECIALA,*LPOLEUIPASTESPECIALA; -#undef INTERFACE -#define INTERFACE IOleUILinkContainerW -DECLARE_INTERFACE_(IOleUILinkContainerW, IUnknown) -{ - STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - STDMETHOD_(DWORD,GetNextLink) (THIS_ DWORD dwLink) PURE; - STDMETHOD(SetLinkUpdateOptions) (THIS_ DWORD,DWORD) PURE; - STDMETHOD(GetLinkUpdateOptions) (THIS_ DWORD,PDWORD) PURE; - STDMETHOD(SetLinkSource) (THIS_ DWORD, LPWSTR,ULONG,PULONG,BOOL) PURE; - STDMETHOD(GetLinkSource) (THIS_ DWORD,LPWSTR*,PULONG,LPWSTR*,LPWSTR*,BOOL*,BOOL*) PURE; - STDMETHOD(OpenLinkSource) (THIS_ DWORD) PURE; - STDMETHOD(UpdateLink) (THIS_ DWORD,BOOL,BOOL) PURE; - STDMETHOD(CancelLink) (THIS_ DWORD) PURE; -}; -typedef IOleUILinkContainerW *LPOLEUILINKCONTAINERW; -#undef INTERFACE -#define INTERFACE IOleUILinkContainerA -DECLARE_INTERFACE_(IOleUILinkContainerA, IUnknown) -{ - STDMETHOD(QueryInterface) (THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef) (THIS) PURE; - STDMETHOD_(ULONG,Release) (THIS) PURE; - STDMETHOD_(DWORD,GetNextLink) (THIS_ DWORD) PURE; - STDMETHOD(SetLinkUpdateOptions) (THIS_ DWORD,DWORD) PURE; - STDMETHOD(GetLinkUpdateOptions) (THIS_ DWORD,PDWORD) PURE; - STDMETHOD(SetLinkSource) (THIS_ DWORD, LPSTR,ULONG,PULONG,BOOL) PURE; - STDMETHOD(GetLinkSource) (THIS_ DWORD,LPSTR*,PULONG,LPSTR*,LPSTR*,BOOL*,BOOL*) PURE; - STDMETHOD(OpenLinkSource) (THIS_ DWORD) PURE; - STDMETHOD(UpdateLink) (THIS_ DWORD,BOOL,BOOL) PURE; - STDMETHOD(CancelLink) (THIS_ DWORD) PURE; -}; -typedef IOleUILinkContainerA *LPOLEUILINKCONTAINERA; -typedef struct tagOLEUIEDITLINKSW { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCWSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCWSTR lpszTemplate; - HRSRC hResource; - LPOLEUILINKCONTAINERW lpOleUILinkContainer; -} OLEUIEDITLINKSW,*POLEUIEDITLINKSW,*LPOLEUIEDITLINKSW; -typedef struct tagOLEUIEDITLINKSA { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCSTR lpszTemplate; - HRSRC hResource; - LPOLEUILINKCONTAINERA lpOleUILinkContainer; -} OLEUIEDITLINKSA,*POLEUIEDITLINKSA,*LPOLEUIEDITLINKSA; -typedef struct tagOLEUICHANGEICONW { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCWSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCWSTR lpszTemplate; - HRSRC hResource; - HGLOBAL hMetaPict; - CLSID clsid; - WCHAR szIconExe[MAX_PATH]; - int cchIconExe; -} OLEUICHANGEICONW,*POLEUICHANGEICONW,*LPOLEUICHANGEICONW; -typedef struct tagOLEUICHANGEICONA { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCSTR lpszTemplate; - HRSRC hResource; - HGLOBAL hMetaPict; - CLSID clsid; - CHAR szIconExe[MAX_PATH]; - int cchIconExe; -} OLEUICHANGEICONA,*POLEUICHANGEICONA,*LPOLEUICHANGEICONA; -typedef struct tagOLEUICONVERTW { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCWSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCWSTR lpszTemplate; - HRSRC hResource; - CLSID clsid; - CLSID clsidConvertDefault; - CLSID clsidActivateDefault; - CLSID clsidNew; - DWORD dvAspect; - WORD wFormat; - BOOL fIsLinkedObject; - HGLOBAL hMetaPict; - LPWSTR lpszUserType; - BOOL fObjectsIconChanged; - LPWSTR lpszDefLabel; - UINT cClsidExclude; - LPCLSID lpClsidExclude; -} OLEUICONVERTW,*POLEUICONVERTW,*LPOLEUICONVERTW; -typedef struct tagOLEUICONVERTA { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCSTR lpszTemplate; - HRSRC hResource; - CLSID clsid; - CLSID clsidConvertDefault; - CLSID clsidActivateDefault; - CLSID clsidNew; - DWORD dvAspect; - WORD wFormat; - BOOL fIsLinkedObject; - HGLOBAL hMetaPict; - LPSTR lpszUserType; - BOOL fObjectsIconChanged; - LPSTR lpszDefLabel; - UINT cClsidExclude; - LPCLSID lpClsidExclude; -} OLEUICONVERTA,*POLEUICONVERTA,*LPOLEUICONVERTA; -typedef struct tagOLEUIBUSYW { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCWSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCWSTR lpszTemplate; - HRSRC hResource; - HTASK hTask; - HWND *lphWndDialog; -} OLEUIBUSYW,*POLEUIBUSYW,*LPOLEUIBUSYW; -typedef struct tagOLEUIBUSYA { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCSTR lpszTemplate; - HRSRC hResource; - HTASK hTask; - HWND *lphWndDialog; -} OLEUIBUSYA,*POLEUIBUSYA,*LPOLEUIBUSYA; -typedef struct tagOLEUICHANGESOURCEW { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCWSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCWSTR lpszTemplate; - HRSRC hResource; - OPENFILENAMEW* lpOFN; - DWORD dwReserved1[4]; - LPOLEUILINKCONTAINERW lpOleUILinkContainer; - DWORD dwLink; - LPWSTR lpszDisplayName; - ULONG nFileLength; - LPWSTR lpszFrom; - LPWSTR lpszTo; -} OLEUICHANGESOURCEW,*POLEUICHANGESOURCEW,*LPOLEUICHANGESOURCEW; -typedef struct tagOLEUICHANGESOURCEA { - DWORD cbStruct; - DWORD dwFlags; - HWND hWndOwner; - LPCSTR lpszCaption; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - HINSTANCE hInstance; - LPCSTR lpszTemplate; - HRSRC hResource; - OPENFILENAMEA *lpOFN; - DWORD dwReserved1[4]; - LPOLEUILINKCONTAINERA lpOleUILinkContainer; - DWORD dwLink; - LPSTR lpszDisplayName; - ULONG nFileLength; - LPSTR lpszFrom; - LPSTR lpszTo; -} OLEUICHANGESOURCEA,*POLEUICHANGESOURCEA,*LPOLEUICHANGESOURCEA; -#undef INTERFACE -#define INTERFACE IOleUIObjInfoW -DECLARE_INTERFACE_(IOleUIObjInfoW, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetObjectInfo)(THIS_ DWORD,PDWORD,LPWSTR*,LPWSTR*,LPWSTR*,LPWSTR*) PURE; - STDMETHOD(GetConvertInfo)(THIS_ DWORD,CLSID*,PWORD,CLSID*,LPCLSID*,UINT*) PURE; - STDMETHOD(ConvertObject)(THIS_ DWORD,REFCLSID) PURE; - STDMETHOD(GetViewInfo)(THIS_ DWORD,HGLOBAL*,PDWORD,int*) PURE; - STDMETHOD(SetViewInfo)(THIS_ DWORD,HGLOBAL,DWORD,int,BOOL) PURE; -}; -typedef IOleUIObjInfoW *LPOLEUIOBJINFOW; -#undef INTERFACE -#define INTERFACE IOleUIObjInfoA -DECLARE_INTERFACE_(IOleUIObjInfoA, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetObjectInfo)(THIS_ DWORD,PDWORD,LPSTR*,LPSTR*,LPSTR*,LPSTR*) PURE; - STDMETHOD(GetConvertInfo)(THIS_ DWORD,CLSID*,PWORD,CLSID*,LPCLSID*,UINT*) PURE; - STDMETHOD(ConvertObject)(THIS_ DWORD,REFCLSID) PURE; - STDMETHOD(GetViewInfo)(THIS_ DWORD,HGLOBAL*,PDWORD,int*) PURE; - STDMETHOD(SetViewInfo)(THIS_ DWORD,HGLOBAL,DWORD,int,BOOL) PURE; -}; -typedef IOleUIObjInfoA *LPOLEUIOBJINFOA; -#undef INTERFACE -#define INTERFACE IOleUILinkInfoW -DECLARE_INTERFACE_(IOleUILinkInfoW, IOleUILinkContainerW) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD) PURE; - STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD,DWORD) PURE; - STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD,DWORD*) PURE; - STDMETHOD(SetLinkSource)(THIS_ DWORD,LPWSTR,ULONG,PULONG,BOOL) PURE; - STDMETHOD(GetLinkSource)(THIS_ DWORD,LPWSTR*,PULONG,LPWSTR*,LPWSTR*,BOOL*,BOOL*) PURE; - STDMETHOD(OpenLinkSource)(THIS_ DWORD) PURE; - STDMETHOD(UpdateLink)(THIS_ DWORD,BOOL,BOOL) PURE; - STDMETHOD(CancelLink)(THIS_ DWORD) PURE; - STDMETHOD(GetLastUpdate)(THIS_ DWORD,FILETIME*) PURE; -}; -typedef IOleUILinkInfoW *LPOLEUILINKINFOW; -#undef INTERFACE -#define INTERFACE IOleUILinkInfoA -DECLARE_INTERFACE_(IOleUILinkInfoA, IOleUILinkContainerA) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(DWORD,GetNextLink)(THIS_ DWORD) PURE; - STDMETHOD(SetLinkUpdateOptions)(THIS_ DWORD,DWORD) PURE; - STDMETHOD(GetLinkUpdateOptions)(THIS_ DWORD,DWORD*) PURE; - STDMETHOD(SetLinkSource)(THIS_ DWORD,LPSTR,ULONG,PULONG,BOOL) PURE; - STDMETHOD(GetLinkSource)(THIS_ DWORD,LPSTR*,PULONG,LPSTR*,LPSTR*,BOOL*,BOOL*) PURE; - STDMETHOD(OpenLinkSource)(THIS_ DWORD) PURE; - STDMETHOD(UpdateLink)(THIS_ DWORD,BOOL,BOOL) PURE; - STDMETHOD(CancelLink)(THIS_ DWORD) PURE; - STDMETHOD(GetLastUpdate)(THIS_ DWORD,FILETIME*) PURE; -}; -typedef IOleUILinkInfoA* LPOLEUILINKINFOA; -struct tagOLEUIOBJECTPROPSW; -struct tagOLEUIOBJECTPROPSA; -typedef struct tagOLEUIGNRLPROPSW { - DWORD cbStruct; - DWORD dwFlags; - DWORD dwReserved1[2]; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - DWORD dwReserved2[3]; - struct tagOLEUIOBJECTPROPSW* lpOP; -} OLEUIGNRLPROPSW,*POLEUIGNRLPROPSW,*LPOLEUIGNRLPROPSW; -typedef struct tagOLEUIGNRLPROPSA { - DWORD cbStruct; - DWORD dwFlags; - DWORD dwReserved1[2]; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - DWORD dwReserved2[3]; - struct tagOLEUIOBJECTPROPSA* lpOP; -} OLEUIGNRLPROPSA,*POLEUIGNRLPROPSA,*LPOLEUIGNRLPROPSA; -typedef struct tagOLEUIVIEWPROPSW { - DWORD cbStruct; - DWORD dwFlags; - DWORD dwReserved1[2]; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - DWORD dwReserved2[3]; - struct tagOLEUIOBJECTPROPSW* lpOP; - int nScaleMin; - int nScaleMax; -} OLEUIVIEWPROPSW,*POLEUIVIEWPROPSW,*LPOLEUIVIEWPROPSW; -typedef struct tagOLEUIVIEWPROPSA { - DWORD cbStruct; - DWORD dwFlags; - DWORD dwReserved1[2]; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - DWORD dwReserved2[3]; - struct tagOLEUIOBJECTPROPSA *lpOP; - int nScaleMin; - int nScaleMax; -} OLEUIVIEWPROPSA,*POLEUIVIEWPROPSA,*LPOLEUIVIEWPROPSA; -typedef struct tagOLEUILINKPROPSW { - DWORD cbStruct; - DWORD dwFlags; - DWORD dwReserved1[2]; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - DWORD dwReserved2[3]; - struct tagOLEUIOBJECTPROPSW *lpOP; -} OLEUILINKPROPSW, *POLEUILINKPROPSW,* LPOLEUILINKPROPSW; -typedef struct tagOLEUILINKPROPSA { - DWORD cbStruct; - DWORD dwFlags; - DWORD dwReserved1[2]; - LPFNOLEUIHOOK lpfnHook; - LPARAM lCustData; - DWORD dwReserved2[3]; - struct tagOLEUIOBJECTPROPSA* lpOP; -} OLEUILINKPROPSA,*POLEUILINKPROPSA,*LPOLEUILINKPROPSA; -typedef struct tagOLEUIOBJECTPROPSW { - DWORD cbStruct; - DWORD dwFlags; - LPPROPSHEETHEADERW lpPS; - DWORD dwObject; - LPOLEUIOBJINFOW lpObjInfo; - DWORD dwLink; - LPOLEUILINKINFOW lpLinkInfo; - LPOLEUIGNRLPROPSW lpGP; - LPOLEUIVIEWPROPSW lpVP; - LPOLEUILINKPROPSW lpLP; -} OLEUIOBJECTPROPSW,*POLEUIOBJECTPROPSW,*LPOLEUIOBJECTPROPSW; -typedef struct tagOLEUIOBJECTPROPSA { - DWORD cbStruct; - DWORD dwFlags; - LPPROPSHEETHEADERA lpPS; - DWORD dwObject; - LPOLEUIOBJINFOA lpObjInfo; - DWORD dwLink; - LPOLEUILINKINFOA lpLinkInfo; - LPOLEUIGNRLPROPSA lpGP; - LPOLEUIVIEWPROPSA lpVP; - LPOLEUILINKPROPSA lpLP; -} OLEUIOBJECTPROPSA,*POLEUIOBJECTPROPSA,*LPOLEUIOBJECTPROPSA; - -STDAPI_(BOOL) OleUIAddVerbMenuW(LPOLEOBJECT,LPCWSTR,HMENU,UINT,UINT,UINT,BOOL,UINT,HMENU*); -STDAPI_(BOOL) OleUIAddVerbMenuA(LPOLEOBJECT,LPCSTR,HMENU,UINT,UINT,UINT,BOOL,UINT,HMENU*); -STDAPI_(UINT) OleUIBusyW(LPOLEUIBUSYW); -STDAPI_(UINT) OleUIBusyA(LPOLEUIBUSYA); -STDAPI_(BOOL) OleUICanConvertOrActivateAs(REFCLSID,BOOL,WORD); -STDAPI_(UINT) OleUIChangeIconW(LPOLEUICHANGEICONW); -STDAPI_(UINT) OleUIChangeIconA(LPOLEUICHANGEICONA); -STDAPI_(UINT) OleUIChangeSourceW(LPOLEUICHANGESOURCEW); -STDAPI_(UINT) OleUIChangeSourceA(LPOLEUICHANGESOURCEA); -STDAPI_(UINT) OleUIConvertW(LPOLEUICONVERTW); -STDAPI_(UINT) OleUIConvertA(LPOLEUICONVERTA); -STDAPI_(UINT) OleUIEditLinksW(LPOLEUIEDITLINKSW); -STDAPI_(UINT) OleUIEditLinksA(LPOLEUIEDITLINKSA); -STDAPI_(UINT) OleUIObjectPropertiesW(LPOLEUIOBJECTPROPSW); -STDAPI_(UINT) OleUIObjectPropertiesA(LPOLEUIOBJECTPROPSA); -STDAPI_(UINT) OleUIPasteSpecialW(LPOLEUIPASTESPECIALW); -STDAPI_(UINT) OleUIPasteSpecialA(LPOLEUIPASTESPECIALA); -int OleUIPromptUserW(int,HWND,...); -int OleUIPromptUserA(int,HWND,...); -STDAPI_(BOOL) OleUIUpdateLinksW(LPOLEUILINKCONTAINERW,HWND,LPWSTR,int); -STDAPI_(BOOL) OleUIUpdateLinksA(LPOLEUILINKCONTAINERA,HWND,LPSTR,int); - -#ifdef UNICODE -#define IDD_SERVERNOTREG IDD_SERVERNOTREGW -#define IDD_LINKTYPECHANGED IDD_LINKTYPECHANGEDW -#define OleUIUpdateLinks OleUIUpdateLinksW -#define OleUIAddVerbMenu OleUIAddVerbMenuW -#define tagOLEUIOBJECTPROPS tagOLEUIOBJECTPROPSW -#define OLEUIOBJECTPROPS OLEUIOBJECTPROPSW -#define POLEUIOBJECTPROPS POLEUIOBJECTPROPSW -#define LPOLEUIOBJECTPROPS LPOLEUIOBJECTPROPSW -#define OleUIObjectProperties OleUIObjectPropertiesW -#define tagOLEUIINSERTOBJECT tagOLEUIINSERTOBJECTW -#define OLEUIINSERTOBJECT OLEUIINSERTOBJECTW -#define POLEUIINSERTOBJECT POLEUIINSERTOBJECTW -#define LPOLEUIINSERTOBJECT LPOLEUIINSERTOBJECTW -#define OleUIInsertObject OleUIInsertObjectW -#define OleUIPromptUser OleUIPromptUserW -#define tagOLEUIPASTEENTRY tagOLEUIPASTEENTRYW -#define OLEUIPASTEENTRY OLEUIPASTEENTRYW -#define POLEUIPASTEENTRY POLEUIPASTEENTRYW -#define LPOLEUIPASTEENTRY LPOLEUIPASTEENTRYW -#define tagOLEUIPASTESPECIAL tagOLEUIPASTESPECIALW -#define OLEUIPASTESPECIAL OLEUIPASTESPECIALW -#define POLEUIPASTESPECIAL POLEUIPASTESPECIALW -#define LPOLEUIPASTESPECIAL LPOLEUIPASTESPECIALW -#define OleUIPasteSpecial OleUIPasteSpecialW -#define IOleUILinkContainer IOleUILinkContainerW -#define LPOLEUILINKCONTAINER LPOLEUILINKCONTAINERW -#define tagOLEUIEDITLINKS tagOLEUIEDITLINKSW -#define OLEUIEDITLINKS OLEUIEDITLINKSW -#define POLEUIEDITLINKS POLEUIEDITLINKSW -#define LPOLEUIEDITLINKS LPOLEUIEDITLINKSW -#define OleUIEditLinks OleUIEditLinksW -#define tagOLEUICHANGEICON tagOLEUICHANGEICONW -#define OLEUICHANGEICON OLEUICHANGEICONW -#define POLEUICHANGEICON POLEUICHANGEICONW -#define LPOLEUICHANGEICON LPOLEUICHANGEICONW -#define OleUIChangeIcon OleUIChangeIconW -#define tagOLEUICONVERT tagOLEUICONVERTW -#define OLEUICONVERT OLEUICONVERTW -#define POLEUICONVERT POLEUICONVERTW -#define LPOLEUICONVERT LPOLEUICONVERTW -#define OleUIConvert OleUIConvertW -#define tagOLEUIBUSY tagOLEUIBUSYW -#define OLEUIBUSY OLEUIBUSYW -#define POLEUIBUSY POLEUIBUSYW -#define LPOLEUIBUSY LPOLEUIBUSYW -#define OleUIBusy OleUIBusyW -#define tagOLEUICHANGESOURCE tagOLEUICHANGESOURCEW -#define OLEUICHANGESOURCE OLEUICHANGESOURCEW -#define POLEUICHANGESOURCE POLEUICHANGESOURCEW -#define LPOLEUICHANGESOURCE LPOLEUICHANGESOURCEW -#define OleUIChangeSource OleUIChangeSourceW -#define IOleUIObjInfo IOleUIObjInfoW -#define LPOLEUIOBJINFO LPOLEUIOBJINFOW -#define IOleUILinkInfo IOleUILinkInfoW -#define IOleUILinkInfoVtbl IOleUILinkInfoWVtbl -#define LPOLEUILINKINFO LPOLEUILINKINFOW -#define tagOLEUIGNRLPROPS tagOLEUIGNRLPROPSW -#define OLEUIGNRLPROPS OLEUIGNRLPROPSW -#define POLEUIGNRLPROPS POLEUIGNRLPROPSW -#define LPOLEUIGNRLPROPS LPOLEUIGNRLPROPSW -#define tagOLEUIVIEWPROPS tagOLEUIVIEWPROPSW -#define OLEUIVIEWPROPS OLEUIVIEWPROPSW -#define POLEUIVIEWPROPS POLEUIVIEWPROPSW -#define LPOLEUIVIEWPROPS LPOLEUIVIEWPROPSW -#define tagOLEUILINKPROPS tagOLEUILINKPROPSW -#define OLEUILINKPROPS OLEUILINKPROPSW -#define POLEUILINKPROPS POLEUILINKPROPSW -#define LPOLEUILINKPROPS LPOLEUILINKPROPSW -#else -#define IDD_SERVERNOTREG IDD_SERVERNOTREGA -#define IDD_LINKTYPECHANGED IDD_LINKTYPECHANGEDA -#define OleUIUpdateLinks OleUIUpdateLinksA -#define OleUIAddVerbMenu OleUIAddVerbMenuA -#define tagOLEUIOBJECTPROPS tagOLEUIOBJECTPROPSA -#define OLEUIOBJECTPROPS OLEUIOBJECTPROPSA -#define POLEUIOBJECTPROPS POLEUIOBJECTPROPSA -#define LPOLEUIOBJECTPROPS LPOLEUIOBJECTPROPSA -#define OleUIObjectProperties OleUIObjectPropertiesA -#define tagOLEUIINSERTOBJECT tagOLEUIINSERTOBJECTA -#define OLEUIINSERTOBJECT OLEUIINSERTOBJECTA -#define POLEUIINSERTOBJECT POLEUIINSERTOBJECTA -#define LPOLEUIINSERTOBJECT LPOLEUIINSERTOBJECTA -#define OleUIInsertObject OleUIInsertObjectA -#define OleUIPromptUser OleUIPromptUserA -#define tagOLEUIPASTEENTRY tagOLEUIPASTEENTRYA -#define OLEUIPASTEENTRY OLEUIPASTEENTRYA -#define POLEUIPASTEENTRY POLEUIPASTEENTRYA -#define LPOLEUIPASTEENTRY LPOLEUIPASTEENTRYA -#define tagOLEUIPASTESPECIAL tagOLEUIPASTESPECIALA -#define OLEUIPASTESPECIAL OLEUIPASTESPECIALA -#define POLEUIPASTESPECIAL POLEUIPASTESPECIALA -#define LPOLEUIPASTESPECIAL LPOLEUIPASTESPECIALA -#define OleUIPasteSpecial OleUIPasteSpecialA -#define IOleUILinkContainer IOleUILinkContainerA -#define LPOLEUILINKCONTAINER LPOLEUILINKCONTAINERA -#define tagOLEUIEDITLINKS tagOLEUIEDITLINKSA -#define OLEUIEDITLINKS OLEUIEDITLINKSA -#define POLEUIEDITLINKS POLEUIEDITLINKSA -#define LPOLEUIEDITLINKS LPOLEUIEDITLINKSA -#define OleUIEditLinks OleUIEditLinksA -#define tagOLEUICHANGEICON tagOLEUICHANGEICONA -#define OLEUICHANGEICON OLEUICHANGEICONA -#define POLEUICHANGEICON POLEUICHANGEICONA -#define LPOLEUICHANGEICON LPOLEUICHANGEICONA -#define OleUIChangeIcon OleUIChangeIconA -#define tagOLEUICONVERT tagOLEUICONVERTA -#define OLEUICONVERT OLEUICONVERTA -#define POLEUICONVERT POLEUICONVERTA -#define LPOLEUICONVERT LPOLEUICONVERTA -#define OleUIConvert OleUIConvertA -#define tagOLEUIBUSY tagOLEUIBUSYA -#define OLEUIBUSY OLEUIBUSYA -#define POLEUIBUSY POLEUIBUSYA -#define LPOLEUIBUSY LPOLEUIBUSYA -#define OleUIBusy OleUIBusyA -#define tagOLEUICHANGESOURCE tagOLEUICHANGESOURCEA -#define OLEUICHANGESOURCE OLEUICHANGESOURCEA -#define POLEUICHANGESOURCE POLEUICHANGESOURCEA -#define LPOLEUICHANGESOURCE LPOLEUICHANGESOURCEA -#define OleUIChangeSource OleUIChangeSourceA -#define IOleUIObjInfo IOleUIObjInfoA -#define LPOLEUIOBJINFO LPOLEUIOBJINFOA -#define IOleUILinkInfo IOleUILinkInfoA -#define IOleUILinkInfoVtbl IOleUILinkInfoAVtbl -#define LPOLEUILINKINFO LPOLEUILINKINFOA -#define tagOLEUIGNRLPROPS tagOLEUIGNRLPROPSA -#define OLEUIGNRLPROPS OLEUIGNRLPROPSA -#define POLEUIGNRLPROPS POLEUIGNRLPROPSA -#define LPOLEUIGNRLPROPS LPOLEUIGNRLPROPSA -#define tagOLEUIVIEWPROPS tagOLEUIVIEWPROPSA -#define OLEUIVIEWPROPS OLEUIVIEWPROPSA -#define POLEUIVIEWPROPS POLEUIVIEWPROPSA -#define LPOLEUIVIEWPROPS LPOLEUIVIEWPROPSA -#define tagOLEUILINKPROPS tagOLEUILINKPROPSA -#define OLEUILINKPROPS OLEUILINKPROPSA -#define POLEUILINKPROPS POLEUILINKPROPSA -#define LPOLEUILINKPROPS LPOLEUILINKPROPSA -#endif -#pragma pack(pop) -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/oleidl.h b/winsup/w32api/include/oleidl.h deleted file mode 100644 index f1fafa324..000000000 --- a/winsup/w32api/include/oleidl.h +++ /dev/null @@ -1,296 +0,0 @@ -#ifndef _OLEIDL_H -#define _OLEIDL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -typedef interface IParseDisplayname *LPPARSEDISPLAYNAME; -typedef interface IOleContainer *LPOLECONTAINER; -typedef interface IOleClientSite *LPOLECLIENTSITE; -typedef interface IOleObject *LPOLEOBJECT; -typedef interface IDropTarget *LPDROPTARGET; -typedef interface IDropSource *LPDROPSOURCE; -typedef interface IEnumOleDocumentViews *LPENUMOLEDOCUMENTVIEWS; -typedef interface IEnumOleUndoUnits *LPENUMOLEUNDOUNITS; -typedef interface IEnumOLEVERB *LPENUMOLEVERB; -typedef interface IOleWindow *LPOLEWINDOW; -typedef interface IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW; -typedef interface IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT; -typedef interface IOleInPlaceFrame *LPOLEINPLACEFRAME; -typedef interface IOleAdviseHolder *LPOLEADVISEHOLDER; -typedef interface IViewObject *LPVIEWOBJECT; -typedef interface IViewObject2 *LPVIEWOBJECT2; - -typedef enum tagOLEWHICHMK { - OLEWHICHMK_CONTAINER=1, - OLEWHICHMK_OBJREL, - OLEWHICHMK_OBJFULL -} OLEWHICHMK; -typedef enum tagOLEGETMONIKER { - OLEGETMONIKER_ONLYIFTHERE=1, - OLEGETMONIKER_FORCEASSIGN, - OLEGETMONIKER_UNASSIGN, - OLEGETMONIKER_TEMPFORUSER -} OLEGETMONIKER; -#ifdef __GNUC__ -__extension__ /* IS0 C says enums limited to range of int */ -#endif -typedef enum tagDROPEFFECT { - DROPEFFECT_NONE=0, - DROPEFFECT_COPY=1, - DROPEFFECT_MOVE=2, - DROPEFFECT_LINK=4, - DROPEFFECT_SCROLL=0x80000000 -} DROPEFFECT; -typedef struct tagOleMenuGroupWidths { - LONG width[6]; -} OLEMENUGROUPWIDTHS,*LPOLEMENUGROUPWIDTHS; -typedef HGLOBAL HOLEMENU; -typedef enum tagOLECLOSE { - OLECLOSE_SAVEIFDIRTY, - OLECLOSE_NOSAVE, - OLECLOSE_PROMPTSAVE -} OLECLOSE; -typedef struct tagOLEVERB { - LONG lVerb; - LPWSTR lpszVerbName; - DWORD fuFlags; - DWORD grfAttribs; -} OLEVERB,*LPOLEVERB; -typedef RECT BORDERWIDTHS; -typedef LPRECT LPBORDERWIDTHS; -typedef LPCRECT LPCBORDERWIDTHS; -typedef struct tagOIFI { - UINT cb; - BOOL fMDIApp; - HWND hwndFrame; - HACCEL haccel; - UINT cAccelEntries; -}OLEINPLACEFRAMEINFO,*LPOLEINPLACEFRAMEINFO; - -/*DECLARE_ENUMERATOR_(IEnumOleDocumentViews,IOleDocumentView);*/ -DECLARE_ENUMERATOR(OLEVERB); -typedef IEnumOLEVERB IEnumOleVerb; - -EXTERN_C const IID IID_IParseDisplayName; -#undef INTERFACE -#define INTERFACE IParseDisplayName -DECLARE_INTERFACE_(IParseDisplayName,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE; -}; - -EXTERN_C const IID IID_IOleContainer; -#undef INTERFACE -#define INTERFACE IOleContainer -DECLARE_INTERFACE_(IOleContainer,IParseDisplayName) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE; - STDMETHOD(EnumObjects)(THIS_ DWORD,IEnumUnknown**) PURE; - STDMETHOD(LockContainer)(THIS_ BOOL) PURE; -}; - -EXTERN_C const IID IID_IOleClientSite; -#undef INTERFACE -#define INTERFACE IOleClientSite -DECLARE_INTERFACE_(IOleClientSite,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(SaveObject)(THIS) PURE; - STDMETHOD(GetMoniker)(THIS_ DWORD,DWORD,LPMONIKER*) PURE; - STDMETHOD(GetContainer)(THIS_ LPOLECONTAINER*) PURE; - STDMETHOD(ShowObject)(THIS) PURE; - STDMETHOD(OnShowWindow)(THIS_ BOOL) PURE; - STDMETHOD(RequestNewObjectLayout)(THIS) PURE; -}; - -EXTERN_C const IID IID_IOleObject; -#undef INTERFACE -#define INTERFACE IOleObject -DECLARE_INTERFACE_(IOleObject,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(SetClientSite)(THIS_ LPOLECLIENTSITE) PURE; - STDMETHOD(GetClientSite)(THIS_ LPOLECLIENTSITE*) PURE; - STDMETHOD(SetHostNames)(THIS_ LPCOLESTR,LPCOLESTR) PURE; - STDMETHOD(Close)(THIS_ DWORD) PURE; - STDMETHOD(SetMoniker)(THIS_ DWORD,LPMONIKER) PURE; - STDMETHOD(GetMoniker)(THIS_ DWORD,DWORD,LPMONIKER*) PURE; - STDMETHOD(InitFromData)(THIS_ LPDATAOBJECT,BOOL,DWORD) PURE; - STDMETHOD(GetClipboardData)(THIS_ DWORD,LPDATAOBJECT*) PURE; - STDMETHOD(DoVerb)(THIS_ LONG,LPMSG,LPOLECLIENTSITE,LONG,HWND,LPCRECT) PURE; - STDMETHOD(EnumVerbs)(THIS_ LPENUMOLEVERB*) PURE; - STDMETHOD(Update)(THIS) PURE; - STDMETHOD(IsUpToDate)(THIS) PURE; - STDMETHOD(GetUserClassID)(THIS_ LPCLSID) PURE; - STDMETHOD(GetUserType)(THIS_ DWORD,LPOLESTR) PURE; - STDMETHOD(SetExtent)(THIS_ DWORD,SIZEL*) PURE; - STDMETHOD(GetExtent)(THIS_ DWORD,SIZEL*) PURE; - STDMETHOD(Advise)(THIS_ LPADVISESINK,PDWORD) PURE; - STDMETHOD(Unadvise)(THIS_ DWORD) PURE; - STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA*) PURE; - STDMETHOD(GetMiscStatus)(THIS_ DWORD,PDWORD) PURE; - STDMETHOD(SetColorScheme)(THIS_ LPLOGPALETTE) PURE; -}; - -EXTERN_C const IID IID_IOleWindow; -#undef INTERFACE -#define INTERFACE IOleWindow -DECLARE_INTERFACE_(IOleWindow,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; -}; - -EXTERN_C const IID IID_IOleInPlaceUIWindow; -#undef INTERFACE -#define INTERFACE IOleInPlaceUIWindow -DECLARE_INTERFACE_(IOleInPlaceUIWindow,IOleWindow) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(GetBorder)(THIS_ LPRECT) PURE; - STDMETHOD(RequestBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE; - STDMETHOD(SetBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE; - STDMETHOD(SetActiveObject)(THIS_ LPOLEINPLACEACTIVEOBJECT,LPCOLESTR) PURE; -}; - -EXTERN_C const IID IID_IOleInPlaceActiveObject; -#undef INTERFACE -#define INTERFACE IOleInPlaceActiveObject -DECLARE_INTERFACE_(IOleInPlaceActiveObject,IOleWindow) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE; - STDMETHOD(OnFrameWindowActivate)(THIS_ BOOL) PURE; - STDMETHOD(OnDocWindowActivate)(THIS_ BOOL) PURE; - STDMETHOD(ResizeBorder)(THIS_ LPCRECT,LPOLEINPLACEUIWINDOW,BOOL) PURE; - STDMETHOD(EnableModeless)(THIS_ BOOL) PURE; -}; - -EXTERN_C const IID IID_IOleInPlaceFrame; -#undef INTERFACE -#define INTERFACE IOleInPlaceFrame -DECLARE_INTERFACE_(IOleInPlaceFrame,IOleInPlaceUIWindow) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(GetBorder)(THIS_ LPRECT) PURE; - STDMETHOD(RequestBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE; - STDMETHOD(SetBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE; - STDMETHOD(SetActiveObject)(THIS_ LPOLEINPLACEACTIVEOBJECT,LPCOLESTR) PURE; - STDMETHOD(InsertMenus)(THIS_ HMENU,LPOLEMENUGROUPWIDTHS) PURE; - STDMETHOD(SetMenu)(THIS_ HMENU,HOLEMENU,HWND) PURE; - STDMETHOD(RemoveMenus)(THIS_ HMENU) PURE; - STDMETHOD(SetStatusText)(THIS_ LPCOLESTR) PURE; - STDMETHOD(EnableModeless)(THIS_ BOOL) PURE; - STDMETHOD(TranslateAccelerator)(THIS_ LPMSG,WORD) PURE; -}; - -EXTERN_C const IID IID_IOleAdviseHolder; -#undef INTERFACE -#define INTERFACE IOleAdviseHolder -DECLARE_INTERFACE_(IOleAdviseHolder,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Advise)(THIS_ LPADVISESINK,PDWORD) PURE; - STDMETHOD(Unadvise)(THIS_ DWORD) PURE; - STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA*) PURE; - STDMETHOD(SendOnRename)(THIS_ LPMONIKER) PURE; - STDMETHOD(SendOnSave)(THIS) PURE; - STDMETHOD(SendOnClose)(THIS) PURE; -}; - -EXTERN_C const IID IID_IDropSource; -#undef INTERFACE -#define INTERFACE IDropSource -DECLARE_INTERFACE_(IDropSource,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(QueryContinueDrag)(THIS_ BOOL,DWORD) PURE; - STDMETHOD(GiveFeedback)(THIS_ DWORD) PURE; -}; - -EXTERN_C const IID IID_IDropTarget; -#undef INTERFACE -#define INTERFACE IDropTarget -DECLARE_INTERFACE_(IDropTarget,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(DragEnter)(THIS_ LPDATAOBJECT,DWORD,POINTL,PDWORD) PURE; - STDMETHOD(DragOver)(THIS_ DWORD,POINTL,PDWORD) PURE; - STDMETHOD(DragLeave)(THIS) PURE; - STDMETHOD(Drop)(THIS_ LPDATAOBJECT,DWORD,POINTL,PDWORD) PURE; -}; - -typedef BOOL(CALLBACK *__IView_pfncont)(DWORD); -EXTERN_C const IID IID_IViewObject; -#undef INTERFACE -#define INTERFACE IViewObject -DECLARE_INTERFACE_(IViewObject,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Draw)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,DWORD) PURE; - STDMETHOD(GetColorSet)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*) PURE; - STDMETHOD(Freeze)(THIS_ DWORD,LONG,PVOID,PDWORD) PURE; - STDMETHOD(Unfreeze)(THIS_ DWORD) PURE; - STDMETHOD(SetAdvise)(THIS_ DWORD,DWORD,IAdviseSink*) PURE; - STDMETHOD(GetAdvise)(THIS_ PDWORD,PDWORD,IAdviseSink**) PURE; -}; - -EXTERN_C const IID IID_IViewObject2; -#undef INTERFACE -#define INTERFACE IViewObject2 -DECLARE_INTERFACE_(IViewObject2,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Draw)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,DWORD) PURE; - STDMETHOD(GetColorSet)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*) PURE; - STDMETHOD(Freeze)(THIS_ DWORD,LONG,PVOID,PDWORD) PURE; - STDMETHOD(Unfreeze)(THIS_ DWORD) PURE; - STDMETHOD(SetAdvise)(THIS_ DWORD,DWORD,IAdviseSink*) PURE; - STDMETHOD(GetAdvise)(THIS_ PDWORD,PDWORD,IAdviseSink**) PURE; - STDMETHOD(GetExtent)(THIS_ DWORD,DWORD,DVTARGETDEVICE*,LPSIZEL) PURE; -}; - - -#ifdef __cplusplus -} -#endif -#endif - diff --git a/winsup/w32api/include/pbt.h b/winsup/w32api/include/pbt.h deleted file mode 100644 index fba11e3d0..000000000 --- a/winsup/w32api/include/pbt.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _PBT_H -#define _PBT_H -#define PBT_APMQUERYSUSPEND 0 -#define PBT_APMQUERYSTANDBY 1 -#define PBT_APMQUERYSUSPENDFAILED 2 -#define PBT_APMQUERYSTANDBYFAILED 3 -#define PBT_APMSUSPEND 4 -#define PBT_APMSTANDBY 5 -#define PBT_APMRESUMECRITICAL 6 -#define PBT_APMRESUMESUSPEND 8 -#define PBT_APMRESUMESTANDBY 8 -#define PBTF_APMRESUMEFROMFAILURE 1 -#define PBT_APMBATTERYLOW 9 -#define PBT_APMPOWERSTATUSCHANGE 10 -#define PBT_APMOEMEVENT 11 -#endif diff --git a/winsup/w32api/include/poppack.h b/winsup/w32api/include/poppack.h deleted file mode 100644 index bb04d4524..000000000 --- a/winsup/w32api/include/poppack.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifndef RC_INVOKED -#pragma pack(pop) -#endif diff --git a/winsup/w32api/include/prsht.h b/winsup/w32api/include/prsht.h deleted file mode 100644 index 296ea6bf1..000000000 --- a/winsup/w32api/include/prsht.h +++ /dev/null @@ -1,244 +0,0 @@ -#ifndef _PRSHT_H -#define _PRSHT_H -#ifdef __cplusplus -extern "C" { -#endif - -#define MAXPROPPAGES 100 -#define PSP_DEFAULT 0 -#define PSP_DLGINDIRECT 1 -#define PSP_USEHICON 2 -#define PSP_USEICONID 4 -#define PSP_USETITLE 8 -#define PSP_RTLREADING 16 -#define PSP_HASHELP 32 -#define PSP_USEREFPARENT 64 -#define PSP_USECALLBACK 128 -#define PSPCB_RELEASE 1 -#define PSPCB_CREATE 2 -#define PSH_DEFAULT 0 -#define PSH_PROPTITLE 1 -#define PSH_USEHICON 2 -#define PSH_USEICONID 4 -#define PSH_PROPSHEETPAGE 8 -#define PSH_WIZARD 32 -#define PSH_USEPSTARTPAGE 64 -#define PSH_NOAPPLYNOW 128 -#define PSH_USECALLBACK 256 -#define PSH_HASHELP 512 -#define PSH_MODELESS 1024 -#define PSH_RTLREADING 2048 -#define PSCB_INITIALIZED 1 -#define PSCB_PRECREATE 2 -#define PSM_GETTABCONTROL 1140 -#define PSM_GETCURRENTPAGEHWND 1142 -#define PSM_ISDIALOGMESSAGE 1141 -#define PSM_PRESSBUTTON 1137 -#define PSM_SETCURSELID 1138 -#define PSM_SETFINISHTEXTW 1145 -#define PSM_SETFINISHTEXTA 1139 -#define PSN_FIRST (-200) -#define PSN_LAST (-299) -#define PSN_APPLY (-202) -#define PSN_HELP (-205) -#define PSN_KILLACTIVE (-201) -#define PSN_QUERYCANCEL (-209) -#define PSN_RESET (-203) -#define PSN_SETACTIVE (-200) -#define PSN_WIZBACK (-206) -#define PSN_WIZFINISH (-208) -#define PSN_WIZNEXT (-207) -#define PSNRET_NOERROR 0 -#define PSNRET_INVALID 1 -#define PSNRET_INVALID_NOCHANGEPAGE 2 -#define ID_PSRESTARTWINDOWS 2 -#define ID_PSREBOOTSYSTEM 3 -#define WIZ_CXDLG 276 -#define WIZ_CYDLG 140 -#define WIZ_CXBMP 80 -#define WIZ_BODYX 92 -#define WIZ_BODYCX 184 -#define PROP_SM_CXDLG 212 -#define PROP_SM_CYDLG 188 -#define PROP_MED_CXDLG 227 -#define PROP_MED_CYDLG 215 -#define PROP_LG_CXDLG 252 -#define PROP_LG_CYDLG 218 -#define PSBTN_MAX 6 -#define PSBTN_BACK 0 -#define PSBTN_NEXT 1 -#define PSBTN_FINISH 2 -#define PSBTN_OK 3 -#define PSBTN_APPLYNOW 4 -#define PSBTN_CANCEL 5 -#define PSBTN_HELP 6 -#define PSWIZB_BACK 1 -#define PSWIZB_NEXT 2 -#define PSWIZB_FINISH 4 -#define PSWIZB_DISABLEDFINISH 8 -#define PSM_SETWIZBUTTONS (WM_USER+112) -#define PSM_APPLY (WM_USER+110) -#define PSM_UNCHANGED (WM_USER+109) -#define PSM_QUERYSIBLINGS (WM_USER+108) -#define PSM_CANCELTOCLOSE (WM_USER+107) -#define PSM_REBOOTSYSTEM (WM_USER+106) -#define PSM_RESTARTWINDOWS (WM_USER+105) -#define PSM_CHANGED (WM_USER+104) -#define PSM_ADDPAGE (WM_USER+103) -#define PSM_REMOVEPAGE (WM_USER+102) -#define PSM_SETCURSEL (WM_USER+101) -#define PSM_SETTITLEA (WM_USER+111) -#define PSM_SETTITLEW (WM_USER+120) - -#ifndef RC_INVOKED - -#pragma pack(push,8) -typedef struct _PROPSHEETPAGEA { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - _ANONYMOUS_UNION union { - LPCSTR pszTemplate; - LPCDLGTEMPLATE pResource; - } DUMMYUNIONNAME; - _ANONYMOUS_UNION union { - HICON hIcon; - LPCSTR pszIcon; - } DUMMYUNIONNAME2; - LPCSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - UINT(CALLBACK *pfnCallback)(HWND,UINT,struct _PROPSHEETPAGEA*); - UINT *pcRefParent; -} PROPSHEETPAGEA,*LPPROPSHEETPAGEA; -typedef const PROPSHEETPAGEA *LPCPROPSHEETPAGEA; -typedef struct _PROPSHEETPAGEW { - DWORD dwSize; - DWORD dwFlags; - HINSTANCE hInstance; - _ANONYMOUS_UNION union { - LPCWSTR pszTemplate; - LPCDLGTEMPLATE pResource; - } DUMMYUNIONNAME; - _ANONYMOUS_UNION union { - HICON hIcon; - LPCWSTR pszIcon; - } DUMMYUNIONNAME2; - LPCWSTR pszTitle; - DLGPROC pfnDlgProc; - LPARAM lParam; - UINT(CALLBACK *pfnCallback)(HWND,UINT,struct _PROPSHEETPAGEW*); - UINT *pcRefParent; -} PROPSHEETPAGEW,*LPPROPSHEETPAGEW; -typedef const PROPSHEETPAGEA *LPCPROPSHEETPAGEW; -typedef UINT(CALLBACK *LPFNPSPCALLBACKA)(HWND,UINT,LPPROPSHEETPAGEA); -typedef UINT(CALLBACK *LPFNPSPCALLBACKW)(HWND,UINT,LPPROPSHEETPAGEW); -typedef int(CALLBACK *PFNPROPSHEETCALLBACK)(HWND,UINT,LPARAM); -DECLARE_HANDLE(HPROPSHEETPAGE); -typedef struct _PROPSHEETHEADERA { - DWORD dwSize; - DWORD dwFlags; - HWND hwndParent; - HINSTANCE hInstance; - _ANONYMOUS_UNION union { - HICON hIcon; - LPCSTR pszIcon; - }DUMMYUNIONNAME; - LPCSTR pszCaption; - UINT nPages; - _ANONYMOUS_UNION union { - UINT nStartPage; - LPCSTR pStartPage; - }DUMMYUNIONNAME2; - _ANONYMOUS_UNION union { - LPCPROPSHEETPAGEA ppsp; - HPROPSHEETPAGE *phpage; - }DUMMYUNIONNAME3; - PFNPROPSHEETCALLBACK pfnCallback; -} PROPSHEETHEADERA,*LPPROPSHEETHEADERA; -typedef const PROPSHEETHEADERA *LPCPROPSHEETHEADERA; -typedef struct _PROPSHEETHEADERW { - DWORD dwSize; - DWORD dwFlags; - HWND hwndParent; - HINSTANCE hInstance; - _ANONYMOUS_UNION union { - HICON hIcon; - LPCWSTR pszIcon; - }DUMMYUNIONNAME; - LPCWSTR pszCaption; - UINT nPages; - _ANONYMOUS_UNION union { - UINT nStartPage; - LPCWSTR pStartPage; - }DUMMYUNIONNAME2; - _ANONYMOUS_UNION union { - LPCPROPSHEETPAGEW ppsp; - HPROPSHEETPAGE *phpage; - }DUMMYUNIONNAME3; - PFNPROPSHEETCALLBACK pfnCallback; -} PROPSHEETHEADERW,*LPPROPSHEETHEADERW; -typedef const PROPSHEETHEADERW *LPCPROPSHEETHEADERW; -typedef BOOL(CALLBACK *LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE,LPARAM); -typedef BOOL(CALLBACK *LPFNADDPROPSHEETPAGES)(LPVOID,LPFNADDPROPSHEETPAGE,LPARAM); -typedef struct _PSHNOTIFY { - NMHDR hdr; - LPARAM lParam; -} PSHNOTIFY,*LPPSHNOTIFY; - -#pragma pack(pop) - -HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(LPCPROPSHEETPAGEA); -HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW); -BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE); -int WINAPI PropertySheetA(LPCPROPSHEETHEADERA); -int WINAPI PropertySheetW(LPCPROPSHEETHEADERW); -#define PropSheet_AddPage(d,p) SendMessage(d,PSM_ADDPAGE,0,(LPARAM)p) -#define PropSheet_Apply(d) SendMessage(d,PSM_APPLY,0,0) -#define PropSheet_CancelToClose(d) SendMessage(d,PSM_CANCELTOCLOSE,0,0) -#define PropSheet_Changed(d,w) SendMessage(d,PSM_CHANGED,(WPARAM)w,0) -#define PropSheet_GetCurrentPageHwnd(d) (HWND)SendMessage(d,PSM_GETCURRENTPAGEHWND,0,0) -#define PropSheet_GetTabControl(d) (HWND)SendMessage(d,PSM_GETTABCONTROL,0,0) -#define PropSheet_IsDialogMessage(d,m) (BOOL)SendMessage(d,PSM_ISDIALOGMESSAGE,0,(LPARAM)m) -#define PropSheet_PressButton(d,i) SendMessage(d,PSM_PRESSBUTTON,i,0) -#define PropSheet_QuerySiblings(d,w,l) SendMessage(d,PSM_QUERYSIBLINGS,w,l) -#define PropSheet_RebootSystem(d) SendMessage(d,PSM_REBOOTSYSTEM,0,0) -#define PropSheet_RemovePage(d,i,p) SendMessage(d,PSM_REMOVEPAGE,i,(LPARAM)p) -#define PropSheet_RestartWindows(d) SendMessage(d,PSM_RESTARTWINDOWS,0,0) -#define PropSheet_SetCurSel(d,p,i) SendMessage(d,PSM_SETCURSEL,i,(LPARAM)p) -#define PropSheet_SetCurSelByID(d,i) SendMessage(d,PSM_SETCURSELID,0,i) -#define PropSheet_SetFinishText(d,s) SendMessage(d,PSM_SETFINISHTEXT,0,(LPARAM)s) -#define PropSheet_SetTitle(d,w,s) SendMessage(d,PSM_SETTITLE,w,(LPARAM)s) -#define PropSheet_SetWizButtons(d,f) PostMessage(d,PSM_SETWIZBUTTONS,0,(LPARAM)f) -#define PropSheet_UnChanged(d,w) SendMessage(d,PSM_UNCHANGED,(WPARAM)w,0) -#endif - -#ifdef UNICODE -#define LPFNPSPCALLBACK LPFNPSPCALLBACKW -#define PROPSHEETPAGE PROPSHEETPAGEW -#define LPPROPSHEETPAGE LPPROPSHEETPAGEW -#define LPCPROPSHEETPAGE LPCPROPSHEETPAGEW -#define PROPSHEETHEADER PROPSHEETHEADERW -#define LPPROPSHEETHEADER LPPROPSHEETHEADERW -#define LPCPROPSHEETHEADER LPCPROPSHEETHEADERW -#define PSM_SETTITLE PSM_SETTITLEW -#define PSM_SETFINISHTEXT PSM_SETFINISHTEXTW -#define CreatePropertySheetPage CreatePropertySheetPageW -#define PropertySheet PropertySheetW -#else -#define LPFNPSPCALLBACK LPFNPSPCALLBACKA -#define PROPSHEETPAGE PROPSHEETPAGEA -#define LPPROPSHEETPAGE LPPROPSHEETPAGEA -#define LPCPROPSHEETPAGE LPCPROPSHEETPAGEA -#define PROPSHEETHEADER PROPSHEETHEADERA -#define LPPROPSHEETHEADER LPPROPSHEETHEADERA -#define LPCPROPSHEETHEADER LPCPROPSHEETHEADERA -#define PSM_SETTITLE PSM_SETTITLEA -#define PSM_SETFINISHTEXT PSM_SETFINISHTEXTA -#define CreatePropertySheetPage CreatePropertySheetPageA -#define PropertySheet PropertySheetA -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/psapi.h b/winsup/w32api/include/psapi.h deleted file mode 100644 index 4c4827382..000000000 --- a/winsup/w32api/include/psapi.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - psapi.h - Include file for PSAPI.DLL APIs - - Written by Mumit Khan - - This file is part of a free library for the Win32 API. - - NOTE: This strictly does not belong in the Win32 API since it's - really part of Platform SDK. However,GDB needs it and we might - as well provide it here. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -*/ -#ifndef _PSAPI_H -#define _PSAPI_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef RC_INVOKED - -typedef struct _MODULEINFO { - LPVOID lpBaseOfDll; - DWORD SizeOfImage; - LPVOID EntryPoint; -} MODULEINFO,*LPMODULEINFO; - -typedef struct _PSAPI_WS_WATCH_INFORMATION { - LPVOID FaultingPc; - LPVOID FaultingVa; -} PSAPI_WS_WATCH_INFORMATION,*PPSAPI_WS_WATCH_INFORMATION; - -typedef struct _PROCESS_MEMORY_COUNTERS { - DWORD cb; - DWORD PageFaultCount; - DWORD PeakWorkingSetSize; - DWORD WorkingSetSize; - DWORD QuotaPeakPagedPoolUsage; - DWORD QuotaPagedPoolUsage; - DWORD QuotaPeakNonPagedPoolUsage; - DWORD QuotaNonPagedPoolUsage; - DWORD PagefileUsage; - DWORD PeakPagefileUsage; -} PROCESS_MEMORY_COUNTERS,*PPROCESS_MEMORY_COUNTERS; - -/* Grouped by application,not in alphabetical order. */ -BOOL WINAPI EnumProcesses(DWORD *,DWORD,DWORD *); -BOOL WINAPI EnumProcessModules(HANDLE,HMODULE *,DWORD,LPDWORD); -DWORD WINAPI GetModuleBaseNameA(HANDLE,HMODULE,LPSTR,DWORD); -DWORD WINAPI GetModuleBaseNameW(HANDLE,HMODULE,LPWSTR,DWORD); -DWORD WINAPI GetModuleFileNameExA(HANDLE,HMODULE,LPSTR,DWORD); -DWORD WINAPI GetModuleFileNameExW(HANDLE,HMODULE,LPWSTR,DWORD); -BOOL WINAPI GetModuleInformation(HANDLE,HMODULE,LPMODULEINFO,DWORD); -BOOL WINAPI EmptyWorkingSet(HANDLE); -BOOL WINAPI QueryWorkingSet(HANDLE,PVOID,DWORD); -BOOL WINAPI InitializeProcessForWsWatch(HANDLE); -BOOL WINAPI GetWsChanges(HANDLE,PPSAPI_WS_WATCH_INFORMATION,DWORD); -DWORD WINAPI GetMappedFileNameW(HANDLE,LPVOID,LPWSTR,DWORD); -DWORD WINAPI GetMappedFileNameA(HANDLE,LPVOID,LPSTR,DWORD); -BOOL WINAPI EnumDeviceDrivers(LPVOID *,DWORD,LPDWORD); -DWORD WINAPI GetDeviceDriverBaseNameA(LPVOID,LPSTR,DWORD); -DWORD WINAPI GetDeviceDriverBaseNameW(LPVOID,LPWSTR,DWORD); -DWORD WINAPI GetDeviceDriverFileNameA(LPVOID,LPSTR,DWORD); -DWORD WINAPI GetDeviceDriverFileNameW(LPVOID,LPWSTR,DWORD); -BOOL WINAPI GetProcessMemoryInfo(HANDLE,PPROCESS_MEMORY_COUNTERS,DWORD); - -#endif /* not RC_INVOKED */ - -#ifdef UNICODE -#define GetModuleBaseName GetModuleBaseNameW -#define GetModuleFileNameEx GetModuleFileNameExW -#define GetMappedFilenameEx GetMappedFilenameExW -#define GetDeviceDriverBaseName GetDeviceDriverBaseNameW -#define GetDeviceDriverFileName GetDeviceDriverFileNameW -#else -#define GetModuleBaseName GetModuleBaseNameA -#define GetModuleFileNameEx GetModuleFileNameExA -#define GetMappedFilenameEx GetMappedFilenameExA -#define GetDeviceDriverBaseName GetDeviceDriverBaseNameA -#define GetDeviceDriverFileName GetDeviceDriverFileNameA -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _PSAPI_H */ - diff --git a/winsup/w32api/include/pshpack1.h b/winsup/w32api/include/pshpack1.h deleted file mode 100644 index 3cbcf238b..000000000 --- a/winsup/w32api/include/pshpack1.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifndef RC_INVOKED -#pragma pack(push,1) -#endif diff --git a/winsup/w32api/include/pshpack2.h b/winsup/w32api/include/pshpack2.h deleted file mode 100644 index 4d88e004e..000000000 --- a/winsup/w32api/include/pshpack2.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifndef RC_INVOKED -#pragma pack(push,2) -#endif diff --git a/winsup/w32api/include/pshpack4.h b/winsup/w32api/include/pshpack4.h deleted file mode 100644 index c1c3cf959..000000000 --- a/winsup/w32api/include/pshpack4.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifndef RC_INVOKED -#pragma pack(push,4) -#endif diff --git a/winsup/w32api/include/pshpack8.h b/winsup/w32api/include/pshpack8.h deleted file mode 100644 index f0c4539b9..000000000 --- a/winsup/w32api/include/pshpack8.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifndef RC_INVOKED -#pragma pack(push,8) -#endif diff --git a/winsup/w32api/include/rapi.h b/winsup/w32api/include/rapi.h deleted file mode 100644 index 1bc74db6c..000000000 --- a/winsup/w32api/include/rapi.h +++ /dev/null @@ -1,51 +0,0 @@ -/* rapi.h - main header file for the RAPI API - - NOTE: This strictly does not belong in the Win32 API since it's - really part of Platform SDK. - -*/ - -#ifndef _RAPI_H -#define _RAPI_H - -typedef struct IRAPIStream -{ - struct IRAPIStreamVtbl * lpVtbl; -} IRAPIStream; - -typedef struct IRAPIStreamVtbl IRAPIStreamVtbl; - -typedef enum tagRAPISTREAMFLAG -{ - STREAM_TIMEOUT_READ -} RAPISTREAMFLAG; - -struct IRAPIStreamVtbl -{ - HRESULT (__stdcall * SetRapiStat)( IRAPIStream *, RAPISTREAMFLAG, DWORD); - HRESULT (__stdcall * GetRapiStat)( IRAPIStream *, RAPISTREAMFLAG, DWORD *); -}; - -typedef HRESULT (STDAPICALLTYPE RAPIEXT)(DWORD, BYTE, DWORD, BYTE, IRAPIStream *); - -typedef struct _RAPIINIT -{ - DWORD cbSize; - HANDLE heRapiInit; - HRESULT hrRapiInit; -} RAPIINIT; - -STDAPI CeRapiInit (void); -STDAPI CeRapiInitEx (RAPIINIT*); -STDAPI_(BOOL) CeCreateProcess (LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, - BOOL, DWORD, LPVOID, LPWSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION); -STDAPI CeRapiUninit (void); - -STDAPI_(BOOL) CeWriteFile (HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED); -STDAPI_(HANDLE) CeCreateFile (LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); -STDAPI_(BOOL) CeCreateDirectory (LPCWSTR, LPSECURITY_ATTRIBUTES); -STDAPI_(DWORD) CeGetLastError (void); -STDAPI_(BOOL) CeGetFileTime (HANDLE, LPFILETIME, LPFILETIME, LPFILETIME); -STDAPI_(BOOL) CeCloseHandle (HANDLE); - -#endif /* _RAPI_H */ diff --git a/winsup/w32api/include/ras.h b/winsup/w32api/include/ras.h deleted file mode 100644 index 7e8603965..000000000 --- a/winsup/w32api/include/ras.h +++ /dev/null @@ -1,949 +0,0 @@ -#ifndef _RAS_H -#define _RAS_H - -#ifdef __cplusplus -extern "C" -{ -#endif - -#ifndef _LMCONS_H -#include -#endif - -/* TODO -include from winnt.h so that this typedef is not necessary -*/ -#ifndef _BASETSD_H -typedef unsigned long ULONG_PTR, *PULONG_PTR; -#endif - -#include - -#define RAS_MaxDeviceType 16 -#define RAS_MaxPhoneNumber 128 -#define RAS_MaxIpAddress 15 -#define RAS_MaxIpxAddress 21 -#define RAS_MaxEntryName 256 -#define RAS_MaxDeviceName 128 -#define RAS_MaxCallbackNumber RAS_MaxPhoneNumber -#define RAS_MaxAreaCode 10 -#define RAS_MaxPadType 32 -#define RAS_MaxX25Address 200 -#define RAS_MaxFacilities 200 -#define RAS_MaxUserData 200 -#define RAS_MaxReplyMessage 1024 -#define RDEOPT_UsePrefixSuffix 0x00000001 -#define RDEOPT_PausedStates 0x00000002 -#define RDEOPT_IgnoreModemSpeaker 0x00000004 -#define RDEOPT_SetModemSpeaker 0x00000008 -#define RDEOPT_IgnoreSoftwareCompression 0x00000010 -#define RDEOPT_SetSoftwareCompression 0x00000020 -#define RDEOPT_DisableConnectedUI 0x00000040 -#define RDEOPT_DisableReconnectUI 0x00000080 -#define RDEOPT_DisableReconnect 0x00000100 -#define RDEOPT_NoUser 0x00000200 -#define RDEOPT_PauseOnScript 0x00000400 -#define RDEOPT_Router 0x00000800 -#define REN_User 0x00000000 -#define REN_AllUsers 0x00000001 -#define VS_Default 0 -#define VS_PptpOnly 1 -#define VS_PptpFirst 2 -#define VS_L2tpOnly 3 -#define VS_L2tpFirst 4 -#define RASDIALEVENT "RasDialEvent" -#define WM_RASDIALEVENT 0xCCCD -#define RASEO_UseCountryAndAreaCodes 0x00000001 -#define RASEO_SpecificIpAddr 0x00000002 -#define RASEO_SpecificNameServers 0x00000004 -#define RASEO_IpHeaderCompression 0x00000008 -#define RASEO_RemoteDefaultGateway 0x00000010 -#define RASEO_DisableLcpExtensions 0x00000020 -#define RASEO_TerminalBeforeDial 0x00000040 -#define RASEO_TerminalAfterDial 0x00000080 -#define RASEO_ModemLights 0x00000100 -#define RASEO_SwCompression 0x00000200 -#define RASEO_RequireEncryptedPw 0x00000400 -#define RASEO_RequireMsEncryptedPw 0x00000800 -#define RASEO_RequireDataEncryption 0x00001000 -#define RASEO_NetworkLogon 0x00002000 -#define RASEO_UseLogonCredentials 0x00004000 -#define RASEO_PromoteAlternates 0x00008000 -#define RASNP_NetBEUI 0x00000001 -#define RASNP_Ipx 0x00000002 -#define RASNP_Ip 0x00000004 -#define RASFP_Ppp 0x00000001 -#define RASFP_Slip 0x00000002 -#define RASFP_Ras 0x00000004 -#define RASDT_Modem TEXT("modem") -#define RASDT_Isdn TEXT("isdn") -#define RASDT_X25 TEXT("x25") -#define RASDT_Vpn TEXT("vpn") -#define RASDT_Pad TEXT("pad") -#define RASDT_Generic TEXT("GENERIC") -#define RASDT_Serial TEXT("SERIAL") -#define RASDT_FrameRelay TEXT("FRAMERELAY") -#define RASDT_Atm TEXT("ATM") -#define RASDT_Sonet TEXT("SONET") -#define RASDT_SW56 TEXT("SW56") -#define RASDT_Irda TEXT("IRDA") -#define RASDT_Parallel TEXT("PARALLEL") -#define RASET_Phone 1 -#define RASET_Vpn 2 -#define RASET_Direct 3 -#define RASET_Internet 4 -#if (WINVER >= 0x401) -#define RASEO_SecureLocalFiles 0x00010000 -#define RASCN_Connection 0x00000001 -#define RASCN_Disconnection 0x00000002 -#define RASCN_BandwidthAdded 0x00000004 -#define RASCN_BandwidthRemoved 0x00000008 -#define RASEDM_DialAll 1 -#define RASEDM_DialAsNeeded 2 -#define RASIDS_Disabled 0xffffffff -#define RASIDS_UseGlobalValue 0 -#define RASADFLG_PositionDlg 0x00000001 -#define RASCM_UserName 0x00000001 -#define RASCM_Password 0x00000002 -#define RASCM_Domain 0x00000004 -#define RASADP_DisableConnectionQuery 0 -#define RASADP_LoginSessionDisable 1 -#define RASADP_SavedAddressesLimit 2 -#define RASADP_FailedConnectionTimeout 3 -#define RASADP_ConnectionQueryTimeout 4 -#endif /* (WINVER >= 0x401) */ -#if (WINVER >= 0x500) -#define RDEOPT_CustomDial 0x00001000 -#define RASLCPAP_PAP 0xC023 -#define RASLCPAP_SPAP 0xC027 -#define RASLCPAP_CHAP 0xC223 -#define RASLCPAP_EAP 0xC227 -#define RASLCPAD_CHAP_MD5 0x05 -#define RASLCPAD_CHAP_MS 0x80 -#define RASLCPAD_CHAP_MSV2 0x81 -#define RASLCPO_PFC 0x00000001 -#define RASLCPO_ACFC 0x00000002 -#define RASLCPO_SSHF 0x00000004 -#define RASLCPO_DES_56 0x00000008 -#define RASLCPO_3_DES 0x00000010 -#define RASCCPCA_MPPC 0x00000006 -#define RASCCPCA_STAC 0x00000005 -#define RASCCPO_Compression 0x00000001 -#define RASCCPO_HistoryLess 0x00000002 -#define RASCCPO_Encryption56bit 0x00000010 -#define RASCCPO_Encryption40bit 0x00000020 -#define RASCCPO_Encryption128bit 0x00000040 -#define RASEO_RequireEAP 0x00020000 -#define RASEO_RequirePAP 0x00040000 -#define RASEO_RequireSPAP 0x00080000 -#define RASEO_Custom 0x00100000 -#define RASEO_PreviewPhoneNumber 0x00200000 -#define RASEO_SharedPhoneNumbers 0x00800000 -#define RASEO_PreviewUserPw 0x01000000 -#define RASEO_PreviewDomain 0x02000000 -#define RASEO_ShowDialingProgress 0x04000000 -#define RASEO_RequireCHAP 0x08000000 -#define RASEO_RequireMsCHAP 0x10000000 -#define RASEO_RequireMsCHAP2 0x20000000 -#define RASEO_RequireW95MSCHAP 0x40000000 -#define RASEO_CustomScript 0x80000000 -#define RASIPO_VJ 0x00000001 -#define RCD_SingleUser 0 -#define RCD_AllUsers 0x00000001 -#define RCD_Eap 0x00000002 -#define RASEAPF_NonInteractive 0x00000002 -#define RASEAPF_Logon 0x00000004 -#define RASEAPF_Preview 0x00000008 -#define ET_40Bit 1 -#define ET_128Bit 2 -#define ET_None 0 -#define ET_Require 1 -#define ET_RequireMax 2 -#define ET_Optional 3 -#endif /* (WINVER >= 0x500) */ - -#define RASCS_PAUSED 0x1000 -#define RASCS_DONE 0x2000 -typedef enum tagRASCONNSTATE { - RASCS_OpenPort = 0, - RASCS_PortOpened, - RASCS_ConnectDevice, - RASCS_DeviceConnected, - RASCS_AllDevicesConnected, - RASCS_Authenticate, - RASCS_AuthNotify, - RASCS_AuthRetry, - RASCS_AuthCallback, - RASCS_AuthChangePassword, - RASCS_AuthProject, - RASCS_AuthLinkSpeed, - RASCS_AuthAck, - RASCS_ReAuthenticate, - RASCS_Authenticated, - RASCS_PrepareForCallback, - RASCS_WaitForModemReset, - RASCS_WaitForCallback, - RASCS_Projected, - RASCS_StartAuthentication, - RASCS_CallbackComplete, - RASCS_LogonNetwork, - RASCS_SubEntryConnected, - RASCS_SubEntryDisconnected, - RASCS_Interactive = RASCS_PAUSED, - RASCS_RetryAuthentication, - RASCS_CallbackSetByCaller, - RASCS_PasswordExpired, -#if (WINVER >= 0x500) - RASCS_InvokeEapUI, -#endif - RASCS_Connected = RASCS_DONE, - RASCS_Disconnected -} RASCONNSTATE, *LPRASCONNSTATE; - -typedef enum tagRASPROJECTION { - RASP_Amb = 0x10000, - RASP_PppNbf = 0x803F, - RASP_PppIpx = 0x802B, - RASP_PppIp = 0x8021, -#if (WINVER >= 0x500) - RASP_PppCcp = 0x80FD, -#endif - RASP_PppLcp = 0xC021, - RASP_Slip = 0x20000 -} RASPROJECTION, *LPRASPROJECTION; - -DECLARE_HANDLE (HRASCONN); -typedef HRASCONN* LPHRASCONN; - -typedef struct tagRASCONNW { - DWORD dwSize; - HRASCONN hrasconn; - WCHAR szEntryName[RAS_MaxEntryName + 1]; - WCHAR szDeviceType[RAS_MaxDeviceType + 1]; - WCHAR szDeviceName[RAS_MaxDeviceName + 1]; -#if (WINVER >= 0x401) - WCHAR szPhonebook[MAX_PATH]; - DWORD dwSubEntry; -#endif -#if (WINVER >= 0x500) - GUID guidEntry; -#endif -} RASCONNW, *LPRASCONNW; - -typedef struct tagRASCONNA { - DWORD dwSize; - HRASCONN hrasconn; - CHAR szEntryName[RAS_MaxEntryName + 1]; - CHAR szDeviceType[RAS_MaxDeviceType + 1]; - CHAR szDeviceName[RAS_MaxDeviceName + 1]; -#if (WINVER >= 0x401) - CHAR szPhonebook[MAX_PATH]; - DWORD dwSubEntry; -#endif -#if (WINVER >= 0x500) - GUID guidEntry; -#endif -} RASCONNA, *LPRASCONNA; - -typedef struct tagRASCONNSTATUSW { - DWORD dwSize; - RASCONNSTATE rasconnstate; - DWORD dwError; - WCHAR szDeviceType[RAS_MaxDeviceType + 1]; - WCHAR szDeviceName[RAS_MaxDeviceName + 1]; -#if (WINVER >= 0x401) - WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; -#endif -} RASCONNSTATUSW, *LPRASCONNSTATUSW; - -typedef struct tagRASCONNSTATUSA { - DWORD dwSize; - RASCONNSTATE rasconnstate; - DWORD dwError; - CHAR szDeviceType[RAS_MaxDeviceType + 1]; - CHAR szDeviceName[RAS_MaxDeviceName + 1]; -#if (WINVER >= 0x401) - CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; -#endif -} RASCONNSTATUSA, *LPRASCONNSTATUSA; - -typedef struct tagRASDIALPARAMSW { - DWORD dwSize; - WCHAR szEntryName[RAS_MaxEntryName + 1]; - WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; - WCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1]; - WCHAR szUserName[UNLEN + 1]; - WCHAR szPassword[PWLEN + 1]; - WCHAR szDomain[DNLEN + 1]; -#if (WINVER >= 0x401) - DWORD dwSubEntry; - ULONG_PTR dwCallbackId; -#endif -} RASDIALPARAMSW, *LPRASDIALPARAMSW; - -typedef struct tagRASDIALPARAMSA { - DWORD dwSize; - CHAR szEntryName[RAS_MaxEntryName + 1]; - CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1]; - CHAR szCallbackNumber[RAS_MaxCallbackNumber + 1]; - CHAR szUserName[UNLEN + 1]; - CHAR szPassword[PWLEN + 1]; - CHAR szDomain[DNLEN + 1]; -#if (WINVER >= 0x401) - DWORD dwSubEntry; - ULONG_PTR dwCallbackId; -#endif -} RASDIALPARAMSA, *LPRASDIALPARAMSA; - -#if (WINVER >= 0x500) -typedef struct tagRASEAPINFO { - DWORD dwSizeofEapInfo; - BYTE *pbEapInfo; -} RASEAPINFO; -#endif - -typedef struct tagRASDIALEXTENSIONS { - DWORD dwSize; - DWORD dwfOptions; - HWND hwndParent; - ULONG_PTR reserved; -#if (WINVER >= 0x500) - ULONG_PTR reserved1; - RASEAPINFO RasEapInfo; -#endif -} RASDIALEXTENSIONS, *LPRASDIALEXTENSIONS; - -typedef struct tagRASENTRYNAMEW { - DWORD dwSize; - WCHAR szEntryName[RAS_MaxEntryName + 1]; -#if (WINVER >= 0x500) - DWORD dwFlags; - WCHAR szPhonebookPath[MAX_PATH + 1]; -#endif -} RASENTRYNAMEW, *LPRASENTRYNAMEW; - -typedef struct tagRASENTRYNAMEA { - DWORD dwSize; - CHAR szEntryName[RAS_MaxEntryName + 1]; -#if (WINVER >= 0x500) - DWORD dwFlags; - CHAR szPhonebookPath[MAX_PATH + 1]; -#endif -} RASENTRYNAMEA, *LPRASENTRYNAMEA; - -typedef struct tagRASAMBW { - DWORD dwSize; - DWORD dwError; - WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; - BYTE bLana; -} RASAMBW, *LPRASAMBW; - -typedef struct tagRASAMBA { - DWORD dwSize; - DWORD dwError; - CHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; - BYTE bLana; -} RASAMBA, *LPRASAMBA; - -typedef struct tagRASPPPNBFW { - DWORD dwSize; - DWORD dwError; - DWORD dwNetBiosError; - WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; - WCHAR szWorkstationName[NETBIOS_NAME_LEN + 1]; - BYTE bLana; -} RASPPPNBFW, *LPRASPPPNBFW; - -typedef struct tagRASPPPNBFA { - DWORD dwSize; - DWORD dwError; - DWORD dwNetBiosError; - CHAR szNetBiosError[NETBIOS_NAME_LEN + 1]; - CHAR szWorkstationName[NETBIOS_NAME_LEN + 1]; - BYTE bLana; -} RASPPPNBFA, *LPRASPPPNBFA; - -typedef struct tagRASIPXW { - DWORD dwSize; - DWORD dwError; - WCHAR szIpxAddress[RAS_MaxIpxAddress + 1]; -} RASPPPIPXW, *LPRASPPPIPXW; - -typedef struct tagRASIPXA { - DWORD dwSize; - DWORD dwError; - CHAR szIpxAddress[RAS_MaxIpxAddress + 1]; -} RASPPPIPXA, *LPRASPPPIPXA; - -typedef struct tagRASPPPIPW { - DWORD dwSize; - DWORD dwError; - WCHAR szIpAddress[RAS_MaxIpAddress + 1]; -#ifndef WINNT35COMPATIBLE - WCHAR szServerIpAddress[RAS_MaxIpAddress + 1]; -#endif -#if (WINVER >= 0x500) - DWORD dwOptions; - DWORD dwServerOptions; -#endif -} RASPPPIPW, *LPRASPPPIPW; - -typedef struct tagRASPPPIPA { - DWORD dwSize; - DWORD dwError; - CHAR szIpAddress[RAS_MaxIpAddress + 1]; -#ifndef WINNT35COMPATIBLE - CHAR szServerIpAddress[RAS_MaxIpAddress + 1]; -#endif -#if (WINVER >= 0x500) - DWORD dwOptions; - DWORD dwServerOptions; -#endif -} RASPPPIPA, *LPRASPPPIPA; - -typedef struct tagRASPPPLCPW { - DWORD dwSize; - BOOL fBundled; -#if (WINVER >= 0x500) - DWORD dwError; - DWORD dwAuthenticationProtocol; - DWORD dwAuthenticationData; - DWORD dwEapTypeId; - DWORD dwServerAuthenticationProtocol; - DWORD dwServerAuthenticationData; - DWORD dwServerEapTypeId; - BOOL fMultilink; - DWORD dwTerminateReason; - DWORD dwServerTerminateReason; - WCHAR szReplyMessage[RAS_MaxReplyMessage]; - DWORD dwOptions; - DWORD dwServerOptions; -#endif -} RASPPPLCPW, *LPRASPPPLCPW; - -typedef struct tagRASPPPLCPA { - DWORD dwSize; - BOOL fBundled; -#if (WINVER >= 0x500) - DWORD dwError; - DWORD dwAuthenticationProtocol; - DWORD dwAuthenticationData; - DWORD dwEapTypeId; - DWORD dwServerAuthenticationProtocol; - DWORD dwServerAuthenticationData; - DWORD dwServerEapTypeId; - BOOL fMultilink; - DWORD dwTerminateReason; - DWORD dwServerTerminateReason; - CHAR szReplyMessage[RAS_MaxReplyMessage]; - DWORD dwOptions; - DWORD dwServerOptions; -#endif -} RASPPPLCPA, *LPRASPPPLCPA; - -typedef struct tagRASSLIPW { - DWORD dwSize; - DWORD dwError; - WCHAR szIpAddress[RAS_MaxIpAddress + 1]; -} RASSLIPW, *LPRASSLIPW; - - -typedef struct tagRASSLIPA { - DWORD dwSize; - DWORD dwError; - CHAR szIpAddress[RAS_MaxIpAddress + 1]; -} RASSLIPA, *LPRASSLIPA; - -typedef struct tagRASDEVINFOW { - DWORD dwSize; - WCHAR szDeviceType[RAS_MaxDeviceType + 1]; - WCHAR szDeviceName[RAS_MaxDeviceName + 1]; -} RASDEVINFOW, *LPRASDEVINFOW; - -typedef struct tagRASDEVINFOA { - DWORD dwSize; - CHAR szDeviceType[RAS_MaxDeviceType + 1]; - CHAR szDeviceName[RAS_MaxDeviceName + 1]; -} RASDEVINFOA, *LPRASDEVINFOA; - -typedef struct tagRASCTRYINFO { - DWORD dwSize; - DWORD dwCountryID; - DWORD dwNextCountryID; - DWORD dwCountryCode; - DWORD dwCountryNameOffset; -} RASCTRYINFO, *LPRASCTRYINFO; - -typedef RASCTRYINFO RASCTRYINFOW, *LPRASCTRYINFOW; -typedef RASCTRYINFO RASCTRYINFOA, *LPRASCTRYINFOA; - -typedef struct tagRASIPADDR { - BYTE a; - BYTE b; - BYTE c; - BYTE d; -} RASIPADDR; - -typedef struct tagRASENTRYW { - DWORD dwSize; - DWORD dwfOptions; - DWORD dwCountryID; - DWORD dwCountryCode; - WCHAR szAreaCode[RAS_MaxAreaCode + 1]; - WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; - DWORD dwAlternateOffset; - RASIPADDR ipaddr; - RASIPADDR ipaddrDns; - RASIPADDR ipaddrDnsAlt; - RASIPADDR ipaddrWins; - RASIPADDR ipaddrWinsAlt; - DWORD dwFrameSize; - DWORD dwfNetProtocols; - DWORD dwFramingProtocol; - WCHAR szScript[MAX_PATH]; - WCHAR szAutodialDll[MAX_PATH]; - WCHAR szAutodialFunc[MAX_PATH]; - WCHAR szDeviceType[RAS_MaxDeviceType + 1]; - WCHAR szDeviceName[RAS_MaxDeviceName + 1]; - WCHAR szX25PadType[RAS_MaxPadType + 1]; - WCHAR szX25Address[RAS_MaxX25Address + 1]; - WCHAR szX25Facilities[RAS_MaxFacilities + 1]; - WCHAR szX25UserData[RAS_MaxUserData + 1]; - DWORD dwChannels; - DWORD dwReserved1; - DWORD dwReserved2; -#if (WINVER >= 0x401) - DWORD dwSubEntries; - DWORD dwDialMode; - DWORD dwDialExtraPercent; - DWORD dwDialExtraSampleSeconds; - DWORD dwHangUpExtraPercent; - DWORD dwHangUpExtraSampleSeconds; - DWORD dwIdleDisconnectSeconds; -#endif -#if (WINVER >= 0x500) - DWORD dwType; - DWORD dwEncryptionType; - DWORD dwCustomAuthKey; - GUID guidId; - WCHAR szCustomDialDll[MAX_PATH]; - DWORD dwVpnStrategy; -#endif -} RASENTRYW, *LPRASENTRYW; - -typedef struct tagRASENTRYA { - DWORD dwSize; - DWORD dwfOptions; - DWORD dwCountryID; - DWORD dwCountryCode; - CHAR szAreaCode[RAS_MaxAreaCode + 1]; - CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; - DWORD dwAlternateOffset; - RASIPADDR ipaddr; - RASIPADDR ipaddrDns; - RASIPADDR ipaddrDnsAlt; - RASIPADDR ipaddrWins; - RASIPADDR ipaddrWinsAlt; - DWORD dwFrameSize; - DWORD dwfNetProtocols; - DWORD dwFramingProtocol; - CHAR szScript[MAX_PATH]; - CHAR szAutodialDll[MAX_PATH]; - CHAR szAutodialFunc[MAX_PATH]; - CHAR szDeviceType[RAS_MaxDeviceType + 1]; - CHAR szDeviceName[RAS_MaxDeviceName + 1]; - CHAR szX25PadType[RAS_MaxPadType + 1]; - CHAR szX25Address[RAS_MaxX25Address + 1]; - CHAR szX25Facilities[RAS_MaxFacilities + 1]; - CHAR szX25UserData[RAS_MaxUserData + 1]; - DWORD dwChannels; - DWORD dwReserved1; - DWORD dwReserved2; -#if (WINVER >= 0x401) - DWORD dwSubEntries; - DWORD dwDialMode; - DWORD dwDialExtraPercent; - DWORD dwDialExtraSampleSeconds; - DWORD dwHangUpExtraPercent; - DWORD dwHangUpExtraSampleSeconds; - DWORD dwIdleDisconnectSeconds; -#endif -#if (WINVER >= 0x500) - DWORD dwType; - DWORD dwEncryptionType; - DWORD dwCustomAuthKey; - GUID guidId; - CHAR szCustomDialDll[MAX_PATH]; - DWORD dwVpnStrategy; -#endif -} RASENTRYA, *LPRASENTRYA; - - -#if (WINVER >= 0x401) -typedef struct tagRASADPARAMS { - DWORD dwSize; - HWND hwndOwner; - DWORD dwFlags; - LONG xDlg; - LONG yDlg; -} RASADPARAMS, *LPRASADPARAMS; - -typedef struct tagRASSUBENTRYW { - DWORD dwSize; - DWORD dwfFlags; - WCHAR szDeviceType[RAS_MaxDeviceType + 1]; - WCHAR szDeviceName[RAS_MaxDeviceName + 1]; - WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; - DWORD dwAlternateOffset; -} RASSUBENTRYW, *LPRASSUBENTRYW; - -typedef struct tagRASSUBENTRYA { - DWORD dwSize; - DWORD dwfFlags; - CHAR szDeviceType[RAS_MaxDeviceType + 1]; - CHAR szDeviceName[RAS_MaxDeviceName + 1]; - CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1]; - DWORD dwAlternateOffset; -} RASSUBENTRYA, *LPRASSUBENTRYA; - -typedef struct tagRASCREDENTIALSW { - DWORD dwSize; - DWORD dwMask; - WCHAR szUserName[UNLEN + 1]; - WCHAR szPassword[PWLEN + 1]; - WCHAR szDomain[DNLEN + 1]; -} RASCREDENTIALSW, *LPRASCREDENTIALSW; - -typedef struct tagRASCREDENTIALSA { - DWORD dwSize; - DWORD dwMask; - CHAR szUserName[UNLEN + 1]; - CHAR szPassword[PWLEN + 1]; - CHAR szDomain[DNLEN + 1]; -} RASCREDENTIALSA, *LPRASCREDENTIALSA; - -typedef struct tagRASAUTODIALENTRYW { - DWORD dwSize; - DWORD dwFlags; - DWORD dwDialingLocation; - WCHAR szEntry[RAS_MaxEntryName + 1]; -} RASAUTODIALENTRYW, *LPRASAUTODIALENTRYW; - -typedef struct tagRASAUTODIALENTRYA { - DWORD dwSize; - DWORD dwFlags; - DWORD dwDialingLocation; - CHAR szEntry[RAS_MaxEntryName + 1]; -} RASAUTODIALENTRYA, *LPRASAUTODIALENTRYA; -#endif /* (WINVER >= 0x401) */ - -#if (WINVER >= 0x500) -typedef struct tagRASPPPCCP { - DWORD dwSize; - DWORD dwError; - DWORD dwCompressionAlgorithm; - DWORD dwOptions; - DWORD dwServerCompressionAlgorithm; - DWORD dwServerOptions; -} RASPPPCCP, *LPRASPPPCCP; - -typedef struct tagRASEAPUSERIDENTITYW { - WCHAR szUserName[UNLEN + 1]; - DWORD dwSizeofEapInfo; - BYTE pbEapInfo[1]; -} RASEAPUSERIDENTITYW, *LPRASEAPUSERIDENTITYW; - -typedef struct tagRASEAPUSERIDENTITYA { - CHAR szUserName[UNLEN + 1]; - DWORD dwSizeofEapInfo; - BYTE pbEapInfo[1]; -} RASEAPUSERIDENTITYA, *LPRASEAPUSERIDENTITYA; - -typedef struct tagRAS_STATS { - DWORD dwSize; - DWORD dwBytesXmited; - DWORD dwBytesRcved; - DWORD dwFramesXmited; - DWORD dwFramesRcved; - DWORD dwCrcErr; - DWORD dwTimeoutErr; - DWORD dwAlignmentErr; - DWORD dwHardwareOverrunErr; - DWORD dwFramingErr; - DWORD dwBufferOverrunErr; - DWORD dwCompressionRatioIn; - DWORD dwCompressionRatioOut; - DWORD dwBps; - DWORD dwConnectDuration; -} RAS_STATS, *PRAS_STATS; -#endif /* (WINVER >= 0x500) */ - - -/* UNICODE typedefs for structures*/ -#ifdef UNICODE -typedef RASCONNW RASCONN, *LPRASCONN; -typedef RASENTRYW RASENTRY, *LPRASENTRY; -typedef RASCONNSTATUSW RASCONNSTATUS, *LPRASCONNSTATUS; -typedef RASDIALPARAMSW RASDIALPARAMS, *LPRASDIALPARAMS; -typedef RASAMBW RASAMB, *LPRASAM; -typedef RASPPPNBFW RASPPPNBF, *LPRASPPPNBF; -typedef RASPPPIPXW RASPPPIPX, *LPRASPPPIPX; -typedef RASPPPIPW RASPPPIP, *LPRASPPPIP; -typedef RASPPPLCPW RASPPPLCP, *LPRASPPPLCP; -typedef RASSLIPW RASSLIP, *LPRASSLIP; -typedef RASDEVINFOW RASDEVINFO, *LPRASDEVINFO; -typedef RASENTRYNAMEW RASENTRYNAME, *LPRASENTRYNAME; - -#if (WINVER >= 0x401) -typedef RASSUBENTRYW RASSUBENTRY, *LPRASSUBENTRY; -typedef RASCREDENTIALSW RASCREDENTIALS, *LPRASCREDENTIALS; -typedef RASAUTODIALENTRYW RASAUTODIALENTRY, *LPRASAUTODIALENTRY; -#endif /* (WINVER >= 0x401) */ - -#if (WINVER >= 0x500) -typedef RASEAPUSERIDENTITYW RASEAPUSERIDENTITY, *LPRASEAPUSERIDENTITY; -#endif /* (WINVER >= 0x500) */ - -#else /* ! defined UNICODE */ -typedef RASCONNA RASCONN, *LPRASCONN; -typedef RASENTRYA RASENTRY, *LPRASENTRY; -typedef RASCONNSTATUSA RASCONNSTATUS, *LPRASCONNSTATUS; -typedef RASDIALPARAMSA RASDIALPARAMS, *LPRASDIALPARAMS; -typedef RASAMBA RASAMB, *LPRASAM; -typedef RASPPPNBFA RASPPPNBF, *LPRASPPPNBF; -typedef RASPPPIPXA RASPPPIPX, *LPRASPPPIPX; -typedef RASPPPIPA RASPPPIP, *LPRASPPPIP; -typedef RASPPPLCPA RASPPPLCP, *LPRASPPPLCP; -typedef RASSLIPA RASSLIP, *LPRASSLIP; -typedef RASDEVINFOA RASDEVINFO, *LPRASDEVINFO; -typedef RASENTRYNAMEA RASENTRYNAME, *LPRASENTRYNAME; - -#if (WINVER >= 0x401) -typedef RASSUBENTRYA RASSUBENTRY, *LPRASSUBENTRY; -typedef RASCREDENTIALSA RASCREDENTIALS, *LPRASCREDENTIALS; -typedef RASAUTODIALENTRYA RASAUTODIALENTRY, *LPRASAUTODIALENTRY; -#endif /*(WINVER >= 0x401)*/ -#if (WINVER >= 0x500) -typedef RASEAPUSERIDENTITYA RASEAPUSERIDENTITY, *LPRASEAPUSERIDENTITY; -#endif /* (WINVER >= 0x500) */ -#endif /* ! UNICODE */ - -/* Callback prototypes */ -typedef BOOL (WINAPI * ORASADFUNC) (HWND, LPSTR, DWORD, LPDWORD); /* deprecated */ -typedef VOID (WINAPI * RASDIALFUNC) (UINT, RASCONNSTATE, DWORD); -typedef VOID (WINAPI * RASDIALFUNC1) (HRASCONN, UINT, RASCONNSTATE, DWORD, - DWORD); -typedef DWORD (WINAPI * RASDIALFUNC2) (ULONG_PTR, DWORD, HRASCONN, UINT, - RASCONNSTATE, DWORD, DWORD); - -/* External functions */ -DWORD APIENTRY RasDialA (LPRASDIALEXTENSIONS, LPCSTR, LPRASDIALPARAMSA, - DWORD, LPVOID, LPHRASCONN); -DWORD APIENTRY RasDialW (LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW, - DWORD, LPVOID, LPHRASCONN); -DWORD APIENTRY RasEnumConnectionsA (LPRASCONNA, LPDWORD, LPDWORD); -DWORD APIENTRY RasEnumConnectionsW (LPRASCONNW, LPDWORD, LPDWORD); -DWORD APIENTRY RasEnumEntriesA (LPCSTR, LPCSTR, LPRASENTRYNAMEA, LPDWORD, - LPDWORD); -DWORD APIENTRY RasEnumEntriesW (LPCWSTR, LPCWSTR, LPRASENTRYNAMEW, LPDWORD, - LPDWORD); -DWORD APIENTRY RasGetConnectStatusA (HRASCONN, LPRASCONNSTATUSA); -DWORD APIENTRY RasGetConnectStatusW (HRASCONN, LPRASCONNSTATUSW); -DWORD APIENTRY RasGetErrorStringA (UINT, LPSTR, DWORD); -DWORD APIENTRY RasGetErrorStringW (UINT, LPWSTR, DWORD); -DWORD APIENTRY RasHangUpA (HRASCONN); -DWORD APIENTRY RasHangUpW (HRASCONN); -DWORD APIENTRY RasGetProjectionInfoA (HRASCONN, RASPROJECTION, LPVOID, - LPDWORD); -DWORD APIENTRY RasGetProjectionInfoW (HRASCONN, RASPROJECTION, LPVOID, - LPDWORD); -DWORD APIENTRY RasCreatePhonebookEntryA (HWND, LPCSTR); -DWORD APIENTRY RasCreatePhonebookEntryW (HWND, LPCWSTR); -DWORD APIENTRY RasEditPhonebookEntryA (HWND, LPCSTR, LPCSTR); -DWORD APIENTRY RasEditPhonebookEntryW (HWND, LPCWSTR, LPCWSTR); -DWORD APIENTRY RasSetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, BOOL); -DWORD APIENTRY RasSetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, BOOL); -DWORD APIENTRY RasGetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, LPBOOL); -DWORD APIENTRY RasGetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, LPBOOL); -DWORD APIENTRY RasEnumDevicesA (LPRASDEVINFOA, LPDWORD, LPDWORD); -DWORD APIENTRY RasEnumDevicesW (LPRASDEVINFOW, LPDWORD, LPDWORD); -DWORD APIENTRY RasGetCountryInfoA (LPRASCTRYINFOA, LPDWORD); -DWORD APIENTRY RasGetCountryInfoW (LPRASCTRYINFOW, LPDWORD); -DWORD APIENTRY RasGetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, LPDWORD, - LPBYTE, LPDWORD); -DWORD APIENTRY RasGetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW, - LPDWORD, LPBYTE, LPDWORD); -DWORD APIENTRY RasSetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, DWORD, - LPBYTE, DWORD); -DWORD APIENTRY RasSetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW, DWORD, - LPBYTE, DWORD); -DWORD APIENTRY RasRenameEntryA (LPCSTR, LPCSTR, LPCSTR); -DWORD APIENTRY RasRenameEntryW (LPCWSTR, LPCWSTR, LPCWSTR); -DWORD APIENTRY RasDeleteEntryA (LPCSTR, LPCSTR); -DWORD APIENTRY RasDeleteEntryW (LPCWSTR, LPCWSTR); -DWORD APIENTRY RasValidateEntryNameA (LPCSTR, LPCSTR); -DWORD APIENTRY RasValidateEntryNameW (LPCWSTR, LPCWSTR); - -#if (WINVER >= 0x401) -typedef BOOL (WINAPI * RASADFUNCA) (LPSTR, LPSTR, LPRASADPARAMS, LPDWORD); -typedef BOOL (WINAPI * RASADFUNCW) (LPWSTR, LPWSTR, LPRASADPARAMS, LPDWORD); - -DWORD APIENTRY RasGetSubEntryHandleA (HRASCONN, DWORD, LPHRASCONN); -DWORD APIENTRY RasGetSubEntryHandleW (HRASCONN, DWORD, LPHRASCONN); -DWORD APIENTRY RasGetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA); -DWORD APIENTRY RasGetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW); -DWORD APIENTRY RasSetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA, BOOL); -DWORD APIENTRY RasSetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW, BOOL); -DWORD APIENTRY RasConnectionNotificationA (HRASCONN, HANDLE, DWORD); -DWORD APIENTRY RasConnectionNotificationW (HRASCONN, HANDLE, DWORD); -DWORD APIENTRY RasGetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD, - LPRASSUBENTRYA, LPDWORD, LPBYTE, LPDWORD); -DWORD APIENTRY RasGetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD, - LPRASSUBENTRYW, LPDWORD, LPBYTE, LPDWORD); -DWORD APIENTRY RasSetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD, - LPRASSUBENTRYA, DWORD, LPBYTE, DWORD); -DWORD APIENTRY RasSetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD, - LPRASSUBENTRYW, DWORD, LPBYTE, DWORD); -DWORD APIENTRY RasGetAutodialAddressA (LPCSTR, LPDWORD, LPRASAUTODIALENTRYA, - LPDWORD, LPDWORD); -DWORD APIENTRY RasGetAutodialAddressW (LPCWSTR, LPDWORD, - LPRASAUTODIALENTRYW, LPDWORD, LPDWORD); -DWORD APIENTRY RasSetAutodialAddressA (LPCSTR, DWORD, LPRASAUTODIALENTRYA, - DWORD, DWORD); -DWORD APIENTRY RasSetAutodialAddressW (LPCWSTR, DWORD, LPRASAUTODIALENTRYW, - DWORD, DWORD); -DWORD APIENTRY RasEnumAutodialAddressesA (LPSTR *, LPDWORD, LPDWORD); -DWORD APIENTRY RasEnumAutodialAddressesW (LPWSTR *, LPDWORD, LPDWORD); -DWORD APIENTRY RasGetAutodialEnableA (DWORD, LPBOOL); -DWORD APIENTRY RasGetAutodialEnableW (DWORD, LPBOOL); -DWORD APIENTRY RasSetAutodialEnableA (DWORD, BOOL); -DWORD APIENTRY RasSetAutodialEnableW (DWORD, BOOL); -DWORD APIENTRY RasGetAutodialParamA (DWORD, LPVOID, LPDWORD); -DWORD APIENTRY RasGetAutodialParamW (DWORD, LPVOID, LPDWORD); -DWORD APIENTRY RasSetAutodialParamA (DWORD, LPVOID, DWORD); -DWORD APIENTRY RasSetAutodialParamW (DWORD, LPVOID, DWORD); -#endif - -#if (WINVER >= 0x500) -typedef DWORD (WINAPI * RasCustomHangUpFn) (HRASCONN); -typedef DWORD (WINAPI * RasCustomDeleteEntryNotifyFn) (LPCTSTR, LPCTSTR, DWORD); -typedef DWORD (WINAPI * RasCustomDialFn) (HINSTANCE, LPRASDIALEXTENSIONS, - LPCTSTR, LPRASDIALPARAMS, DWORD, LPVOID, LPHRASCONN, DWORD); - -DWORD APIENTRY RasInvokeEapUI (HRASCONN, DWORD, LPRASDIALEXTENSIONS, HWND); -DWORD APIENTRY RasGetLinkStatistics (HRASCONN, DWORD, RAS_STATS*); -DWORD APIENTRY RasGetConnectionStatistics (HRASCONN, RAS_STATS*); -DWORD APIENTRY RasClearLinkStatistics (HRASCONN, DWORD); -DWORD APIENTRY RasClearConnectionStatistics (HRASCONN); -DWORD APIENTRY RasGetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD*); -DWORD APIENTRY RasGetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD*); -DWORD APIENTRY RasSetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD); -DWORD APIENTRY RasSetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD); -DWORD APIENTRY RasGetCustomAuthDataA (LPCSTR, LPCSTR, BYTE*, DWORD*); -DWORD APIENTRY RasGetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD*); -DWORD APIENTRY RasSetCustomAuthDataA (LPCSTR, LPCSTR, BYTE*, DWORD); -DWORD APIENTRY RasSetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD); -DWORD APIENTRY RasGetEapUserIdentityW (LPCWSTR, LPCWSTR, DWORD, HWND, LPRASEAPUSERIDENTITYW*); -DWORD APIENTRY RasGetEapUserIdentityA (LPCSTR, LPCSTR, DWORD, HWND, LPRASEAPUSERIDENTITYA*); -VOID APIENTRY RasFreeEapUserIdentityW (LPRASEAPUSERIDENTITYW); -VOID APIENTRY RasFreeEapUserIdentityA (LPRASEAPUSERIDENTITYA); -#endif /* (WINVER >= 0x500) */ - - -/* UNICODE defines for functions */ -#ifdef UNICODE -#define RasDial RasDialW -#define RasEnumConnections RasEnumConnectionsW -#define RasEnumEntries RasEnumEntriesW -#define RasGetConnectStatus RasGetConnectStatusW -#define RasGetErrorString RasGetErrorStringW -#define RasHangUp RasHangUpW -#define RasGetProjectionInfo RasGetProjectionInfoW -#define RasCreatePhonebookEntry RasCreatePhonebookEntryW -#define RasEditPhonebookEntry RasEditPhonebookEntryW -#define RasSetEntryDialParams RasSetEntryDialParamsW -#define RasGetEntryDialParams RasGetEntryDialParamsW -#define RasEnumDevices RasEnumDevicesW -#define RasGetCountryInfo RasGetCountryInfoW -#define RasGetEntryProperties RasGetEntryPropertiesW -#define RasSetEntryProperties RasSetEntryPropertiesW -#define RasRenameEntry RasRenameEntryW -#define RasDeleteEntry RasDeleteEntryW -#define RasValidateEntryName RasValidateEntryNameW -#if (WINVER >= 0x401) -#define RASADFUNC RASADFUNCW -#define RasGetSubEntryHandle RasGetSubEntryHandleW -#define RasConnectionNotification RasConnectionNotificationW -#define RasGetSubEntryProperties RasGetSubEntryPropertiesW -#define RasSetSubEntryProperties RasSetSubEntryPropertiesW -#define RasGetCredentials RasGetCredentialsW -#define RasSetCredentials RasSetCredentialsW -#define RasGetAutodialAddress RasGetAutodialAddressW -#define RasSetAutodialAddress RasSetAutodialAddressW -#define RasEnumAutodialAddresses RasEnumAutodialAddressesW -#define RasGetAutodialEnable RasGetAutodialEnableW -#define RasSetAutodialEnable RasSetAutodialEnableW -#define RasGetAutodialParam RasGetAutodialParamW -#define RasSetAutodialParam RasSetAutodialParamW -#endif /* (WINVER >= 0x401) */ -#if (WINVER >= 0x500) -#define RasGetEapUserData RasGetEapUserDataW -#define RasSetEapUserData RasSetEapUserDataW -#define RasGetCustomAuthData RasGetCustomAuthDataW -#define RasSetCustomAuthData RasSetCustomAuthDataW -#define RasGetEapUserIdentity RasGetEapUserIdentityW -#define RasFreeEapUserIdentity RasFreeEapUserIdentityW -#endif /* (WINVER >= 0x500) */ - -#else /* ! defined UNICODE */ -#define RasDial RasDialA -#define RasEnumConnections RasEnumConnectionsA -#define RasEnumEntries RasEnumEntriesA -#define RasGetConnectStatus RasGetConnectStatusA -#define RasGetErrorString RasGetErrorStringA -#define RasHangUp RasHangUpA -#define RasGetProjectionInfo RasGetProjectionInfoA -#define RasCreatePhonebookEntry RasCreatePhonebookEntryA -#define RasEditPhonebookEntry RasEditPhonebookEntryA -#define RasSetEntryDialParams RasSetEntryDialParamsA -#define RasGetEntryDialParams RasGetEntryDialParamsA -#define RasEnumDevices RasEnumDevicesA -#define RasGetCountryInfo RasGetCountryInfoA -#define RasGetEntryProperties RasGetEntryPropertiesA -#define RasSetEntryProperties RasSetEntryPropertiesA -#define RasRenameEntry RasRenameEntryA -#define RasDeleteEntry RasDeleteEntryA -#define RasValidateEntryName RasValidateEntryNameA - -#if (WINVER >= 0x401) -#define RASADFUNC RASADFUNCA -#define RasGetSubEntryHandle RasGetSubEntryHandleA -#define RasConnectionNotification RasConnectionNotificationA -#define RasGetSubEntryProperties RasGetSubEntryPropertiesA -#define RasSetSubEntryProperties RasSetSubEntryPropertiesA -#define RasGetCredentials RasGetCredentialsA -#define RasSetCredentials RasSetCredentialsA -#define RasGetAutodialAddress RasGetAutodialAddressA -#define RasSetAutodialAddress RasSetAutodialAddressA -#define RasEnumAutodialAddressesRasEnumAutodialAddressesA -#define RasGetAutodialEnable RasGetAutodialEnableA -#define RasSetAutodialEnable RasSetAutodialEnableA -#define RasGetAutodialParam RasGetAutodialParamA -#define RasSetAutodialParam RasSetAutodialParamA -#endif /*(WINVER >= 0x401)*/ - -#if (WINVER >= 0x500) -#define RasGetEapUserData RasGetEapUserDataA -#define RasSetEapUserData RasSetEapUserDataA -#define RasGetCustomAuthData RasGetCustomAuthDataA -#define RasSetCustomAuthData RasSetCustomAuthDataA -#define RasGetEapUserIdentity RasGetEapUserIdentityA -#define RasFreeEapUserIdentity RasFreeEapUserIdentityA -#endif /* (WINVER >= 0x500) */ -#endif /* ! UNICODE */ - -#ifdef __cplusplus -} -#endif -#include -#endif /* _RAS_H */ diff --git a/winsup/w32api/include/raserror.h b/winsup/w32api/include/raserror.h deleted file mode 100644 index 54d11f7a5..000000000 --- a/winsup/w32api/include/raserror.h +++ /dev/null @@ -1,206 +0,0 @@ -#ifndef _RASERROR_H -#define _RASERROR_H -#define RASBASE 600 -#define SUCCESS 0 -#define PENDING (RASBASE+0) -#define ERROR_INVALID_PORT_HANDLE (RASBASE+1) -#define ERROR_PORT_ALREADY_OPEN (RASBASE+2) -#define ERROR_BUFFER_TOO_SMALL (RASBASE+3) -#define ERROR_WRONG_INFO_SPECIFIED (RASBASE+4) -#define ERROR_CANNOT_SET_PORT_INFO (RASBASE+5) -#define ERROR_PORT_NOT_CONNECTED (RASBASE+6) -#define ERROR_EVENT_INVALID (RASBASE+7) -#define ERROR_DEVICE_DOES_NOT_EXIST (RASBASE+8) -#define ERROR_DEVICETYPE_DOES_NOT_EXIST (RASBASE+9) -#define ERROR_BUFFER_INVALID (RASBASE+10) -#define ERROR_ROUTE_NOT_AVAILABLE (RASBASE+11) -#define ERROR_ROUTE_NOT_ALLOCATED (RASBASE+12) -#define ERROR_INVALID_COMPRESSION_SPECIFIED (RASBASE+13) -#define ERROR_OUT_OF_BUFFERS (RASBASE+14) -#define ERROR_PORT_NOT_FOUND (RASBASE+15) -#define ERROR_ASYNC_REQUEST_PENDING (RASBASE+16) -#define ERROR_ALREADY_DISCONNECTING (RASBASE+17) -#define ERROR_PORT_NOT_OPEN (RASBASE+18) -#define ERROR_PORT_DISCONNECTED (RASBASE+19) -#define ERROR_NO_ENDPOINTS (RASBASE+20) -#define ERROR_CANNOT_OPEN_PHONEBOOK (RASBASE+21) -#define ERROR_CANNOT_LOAD_PHONEBOOK (RASBASE+22) -#define ERROR_CANNOT_FIND_PHONEBOOK_ENTRY (RASBASE+23) -#define ERROR_CANNOT_WRITE_PHONEBOOK (RASBASE+24) -#define ERROR_CORRUPT_PHONEBOOK (RASBASE+25) -#define ERROR_CANNOT_LOAD_STRING (RASBASE+26) -#define ERROR_KEY_NOT_FOUND (RASBASE+27) -#define ERROR_DISCONNECTION (RASBASE+28) -#define ERROR_REMOTE_DISCONNECTION (RASBASE+29) -#define ERROR_HARDWARE_FAILURE (RASBASE+30) -#define ERROR_USER_DISCONNECTION (RASBASE+31) -#define ERROR_INVALID_SIZE (RASBASE+32) -#define ERROR_PORT_NOT_AVAILABLE (RASBASE+33) -#define ERROR_CANNOT_PROJECT_CLIENT (RASBASE+34) -#define ERROR_UNKNOWN (RASBASE+35) -#define ERROR_WRONG_DEVICE_ATTACHED (RASBASE+36) -#define ERROR_BAD_STRING (RASBASE+37) -#define ERROR_REQUEST_TIMEOUT (RASBASE+38) -#define ERROR_CANNOT_GET_LANA (RASBASE+39) -#define ERROR_NETBIOS_ERROR (RASBASE+40) -#define ERROR_SERVER_OUT_OF_RESOURCES (RASBASE+41) -#define ERROR_NAME_EXISTS_ON_NET (RASBASE+42) -#define ERROR_SERVER_GENERAL_NET_FAILURE (RASBASE+43) -#define WARNING_MSG_ALIAS_NOT_ADDED (RASBASE+44) -#define ERROR_AUTH_INTERNAL (RASBASE+45) -#define ERROR_RESTRICTED_LOGON_HOURS (RASBASE+46) -#define ERROR_ACCT_DISABLED (RASBASE+47) -#define ERROR_PASSWD_EXPIRED (RASBASE+48) -#define ERROR_NO_DIALIN_PERMISSION (RASBASE+49) -#define ERROR_SERVER_NOT_RESPONDING (RASBASE+50) -#define ERROR_FROM_DEVICE (RASBASE+51) -#define ERROR_UNRECOGNIZED_RESPONSE (RASBASE+52) -#define ERROR_MACRO_NOT_FOUND (RASBASE+53) -#define ERROR_MACRO_NOT_DEFINED (RASBASE+54) -#define ERROR_MESSAGE_MACRO_NOT_FOUND (RASBASE+55) -#define ERROR_DEFAULTOFF_MACRO_NOT_FOUND (RASBASE+56) -#define ERROR_FILE_COULD_NOT_BE_OPENED (RASBASE+57) -#define ERROR_DEVICENAME_TOO_LONG (RASBASE+58) -#define ERROR_DEVICENAME_NOT_FOUND (RASBASE+59) -#define ERROR_NO_RESPONSES (RASBASE+60) -#define ERROR_NO_COMMAND_FOUND (RASBASE+61) -#define ERROR_WRONG_KEY_SPECIFIED (RASBASE+62) -#define ERROR_UNKNOWN_DEVICE_TYPE (RASBASE+63) -#define ERROR_ALLOCATING_MEMORY (RASBASE+64) -#define ERROR_PORT_NOT_CONFIGURED (RASBASE+65) -#define ERROR_DEVICE_NOT_READY (RASBASE+66) -#define ERROR_READING_INI_FILE (RASBASE+67) -#define ERROR_NO_CONNECTION (RASBASE+68) -#define ERROR_BAD_USAGE_IN_INI_FILE (RASBASE+69) -#define ERROR_READING_SECTIONNAME (RASBASE+70) -#define ERROR_READING_DEVICETYPE (RASBASE+71) -#define ERROR_READING_DEVICENAME (RASBASE+72) -#define ERROR_READING_USAGE (RASBASE+73) -#define ERROR_READING_MAXCONNECTBPS (RASBASE+74) -#define ERROR_READING_MAXCARRIERBPS (RASBASE+75) -#define ERROR_LINE_BUSY (RASBASE+76) -#define ERROR_VOICE_ANSWER (RASBASE+77) -#define ERROR_NO_ANSWER (RASBASE+78) -#define ERROR_NO_CARRIER (RASBASE+79) -#define ERROR_NO_DIALTONE (RASBASE+80) -#define ERROR_IN_COMMAND (RASBASE+81) -#define ERROR_WRITING_SECTIONNAME (RASBASE+82) -#define ERROR_WRITING_DEVICETYPE (RASBASE+83) -#define ERROR_WRITING_DEVICENAME (RASBASE+84) -#define ERROR_WRITING_MAXCONNECTBPS (RASBASE+85) -#define ERROR_WRITING_MAXCARRIERBPS (RASBASE+86) -#define ERROR_WRITING_USAGE (RASBASE+87) -#define ERROR_WRITING_DEFAULTOFF (RASBASE+88) -#define ERROR_READING_DEFAULTOFF (RASBASE+89) -#define ERROR_EMPTY_INI_FILE (RASBASE+90) -#define ERROR_AUTHENTICATION_FAILURE (RASBASE+91) -#define ERROR_PORT_OR_DEVICE (RASBASE+92) -#define ERROR_NOT_BINARY_MACRO (RASBASE+93) -#define ERROR_DCB_NOT_FOUND (RASBASE+94) -#define ERROR_STATE_MACHINES_NOT_STARTED (RASBASE+95) -#define ERROR_STATE_MACHINES_ALREADY_STARTED (RASBASE+96) -#define ERROR_PARTIAL_RESPONSE_LOOPING (RASBASE+97) -#define ERROR_UNKNOWN_RESPONSE_KEY (RASBASE+98) -#define ERROR_RECV_BUF_FULL (RASBASE+99) -#define ERROR_CMD_TOO_LONG (RASBASE+100) -#define ERROR_UNSUPPORTED_BPS (RASBASE+101) -#define ERROR_UNEXPECTED_RESPONSE (RASBASE+102) -#define ERROR_INTERACTIVE_MODE (RASBASE+103) -#define ERROR_BAD_CALLBACK_NUMBER (RASBASE+104) -#define ERROR_INVALID_AUTH_STATE (RASBASE+105) -#define ERROR_WRITING_INITBPS (RASBASE+106) -#define ERROR_X25_DIAGNOSTIC (RASBASE+107) -#define ERROR_ACCT_EXPIRED (RASBASE+108) -#define ERROR_CHANGING_PASSWORD (RASBASE+109) -#define ERROR_OVERRUN (RASBASE+110) -#define ERROR_RASMAN_CANNOT_INITIALIZE (RASBASE+111) -#define ERROR_BIPLEX_PORT_NOT_AVAILABLE (RASBASE+112) -#define ERROR_NO_ACTIVE_ISDN_LINES (RASBASE+113) -#define ERROR_NO_ISDN_CHANNELS_AVAILABLE (RASBASE+114) -#define ERROR_TOO_MANY_LINE_ERRORS (RASBASE+115) -#define ERROR_IP_CONFIGURATION (RASBASE+116) -#define ERROR_NO_IP_ADDRESSES (RASBASE+117) -#define ERROR_PPP_TIMEOUT (RASBASE+118) -#define ERROR_PPP_REMOTE_TERMINATED (RASBASE+119) -#define ERROR_PPP_NO_PROTOCOLS_CONFIGURED (RASBASE+120) -#define ERROR_PPP_NO_RESPONSE (RASBASE+121) -#define ERROR_PPP_INVALID_PACKET (RASBASE+122) -#define ERROR_PHONE_NUMBER_TOO_LONG (RASBASE+123) -#define ERROR_IPXCP_NO_DIALOUT_CONFIGURED (RASBASE+124) -#define ERROR_IPXCP_NO_DIALIN_CONFIGURED (RASBASE+125) -#define ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE (RASBASE+126) -#define ERROR_ACCESSING_TCPCFGDLL (RASBASE+127) -#define ERROR_NO_IP_RAS_ADAPTER (RASBASE+128) -#define ERROR_SLIP_REQUIRES_IP (RASBASE+129) -#define ERROR_PROJECTION_NOT_COMPLETE (RASBASE+130) -#define ERROR_PROTOCOL_NOT_CONFIGURED (RASBASE+131) -#define ERROR_PPP_NOT_CONVERGING (RASBASE+132) -#define ERROR_PPP_CP_REJECTED (RASBASE+133) -#define ERROR_PPP_LCP_TERMINATED (RASBASE+134) -#define ERROR_PPP_REQUIRED_ADDRESS_REJECTED (RASBASE+135) -#define ERROR_PPP_NCP_TERMINATED (RASBASE+136) -#define ERROR_PPP_LOOPBACK_DETECTED (RASBASE+137) -#define ERROR_PPP_NO_ADDRESS_ASSIGNED (RASBASE+138) -#define ERROR_CANNOT_USE_LOGON_CREDENTIALS (RASBASE+139) -#define ERROR_TAPI_CONFIGURATION (RASBASE+140) -#define ERROR_NO_LOCAL_ENCRYPTION (RASBASE+141) -#define ERROR_NO_REMOTE_ENCRYPTION (RASBASE+142) -#define ERROR_REMOTE_REQUIRES_ENCRYPTION (RASBASE+143) -#define ERROR_IPXCP_NET_NUMBER_CONFLICT (RASBASE+144) -#define ERROR_INVALID_SMM (RASBASE+145) -#define ERROR_SMM_UNINITIALIZED (RASBASE+146) -#define ERROR_NO_MAC_FOR_PORT (RASBASE+147) -#define ERROR_SMM_TIMEOUT (RASBASE+148) -#define ERROR_BAD_PHONE_NUMBER (RASBASE+149) -#define ERROR_WRONG_MODULE (RASBASE+150) -#define ERROR_INVALID_CALLBACK_NUMBER (RASBASE+151) - -#define ERROR_SCRIPT_SYNTAX (RASBASE+152) -#define ERROR_HANGUP_FAILED (RASBASE+153) -#define ERROR_BUNDLE_NOT_FOUND (RASBASE+154) -#define ERROR_CANNOT_DO_CUSTOMDIAL (RASBASE+155) -#define ERROR_DIAL_ALREADY_IN_PROGRESS (RASBASE+156) -#define ERROR_RASAUTO_CANNOT_INITIALIZE (RASBASE+157) -#define ERROR_CONNECTION_ALREADY_SHARED (RASBASE+158) -#define ERROR_SHARING_CHANGE_FAILED (RASBASE+159) -#define ERROR_SHARING_ROUTER_INSTALL (RASBASE+160) -#define ERROR_SHARE_CONNECTION_FAILED (RASBASE+161) -#define ERROR_SHARING_PRIVATE_INSTALL (RASBASE+162) -#define ERROR_CANNOT_SHARE_CONNECTION (RASBASE+163) -#define ERROR_NO_SMART_CARD_READER (RASBASE+164) -#define ERROR_SHARING_ADDRESS_EXISTS (RASBASE+165) -#define ERROR_NO_CERTIFICATE (RASBASE+166) -#define ERROR_SHARING_MULTIPLE_ADDRESSES (RASBASE+167) -#define ERROR_FAILED_TO_ENCRYPT (RASBASE+168) -#define ERROR_BAD_ADDRESS_SPECIFIED (RASBASE+169) -#define ERROR_CONNECTION_REJECT (RASBASE+170) -#define ERROR_CONGESTION (RASBASE+171) -#define ERROR_INCOMPATIBLE (RASBASE+172) -#define ERROR_NUMBERCHANGED (RASBASE+173) -#define ERROR_TEMPFAILURE (RASBASE+174) -#define ERROR_BLOCKED (RASBASE+175) -#define ERROR_DONOTDISTURB (RASBASE+176) -#define ERROR_OUTOFORDER (RASBASE+177) -#define ERROR_UNABLE_TO_AUTHENTICATE_SERVER (RASBASE+178) -#define ERROR_SMART_CARD_REQUIRED (RASBASE+179) -#define ERROR_INVALID_FUNCTION_FOR_ENTRY (RASBASE+180) -#define ERROR_CERT_FOR_ENCRYPTION_NOT_FOUND (RASBASE+181) -#define ERROR_SHARING_RRAS_CONFLICT (RASBASE+182) -#define ERROR_SHARING_NO_PRIVATE_LAN (RASBASE+183) -#define ERROR_NO_DIFF_USER_AT_LOGON (RASBASE+184) -#define ERROR_NO_REG_CERT_AT_LOGON (RASBASE+185) -#define ERROR_OAKLEY_NO_CERT (RASBASE+186) -#define ERROR_OAKLEY_AUTH_FAIL (RASBASE+187) -#define ERROR_OAKLEY_ATTRIB_FAIL (RASBASE+188) -#define ERROR_OAKLEY_GENERAL_PROCESSING (RASBASE+189) -#define ERROR_OAKLEY_NO_PEER_CERT (RASBASE+190) -#define ERROR_OAKLEY_NO_POLICY (RASBASE+191) -#define ERROR_OAKLEY_TIMED_OUT (RASBASE+192) -#define ERROR_OAKLEY_ERROR (RASBASE+193) -#define ERROR_UNKNOWN_FRAMED_PROTOCOL (RASBASE+194) -#define ERROR_WRONG_TUNNEL_TYPE (RASBASE+195) -#define ERROR_UNKNOWN_SERVICE_TYPE (RASBASE+196) -#define ERROR_CONNECTING_DEVICE_NOT_FOUND (RASBASE+197) -#define ERROR_NO_EAPTLS_CERTIFICATE (RASBASE+198) -#define RASBASEEND (RASBASE+198) -#endif /* _RASERROR_H */ diff --git a/winsup/w32api/include/rassapi.h b/winsup/w32api/include/rassapi.h deleted file mode 100644 index c5e8bb37d..000000000 --- a/winsup/w32api/include/rassapi.h +++ /dev/null @@ -1,178 +0,0 @@ -#ifndef _RASSAPI_H -#define _RASSAPI_H -#ifdef __cplusplus -extern "C" { -#endif -#ifndef UNLEN -#include -#endif -#define RASSAPI_MAX_PHONENUMBER_SIZE 128 -#define RASSAPI_MAX_MEDIA_NAME 16 -#define RASSAPI_MAX_PORT_NAME 16 -#define RASSAPI_MAX_DEVICE_NAME 128 -#define RASSAPI_MAX_DEVICETYPE_NAME 16 -#define RASSAPI_MAX_PARAM_KEY_SIZE 32 -#define RASPRIV_NoCallback 0x01 -#define RASPRIV_AdminSetCallback 0x02 -#define RASPRIV_CallerSetCallback 0x04 -#define RASPRIV_DialinPrivilege 0x08 -#define RASPRIV_CallbackType (RASPRIV_AdminSetCallback \ - | RASPRIV_CallerSetCallback \ - | RASPRIV_NoCallback) -#define RAS_MODEM_OPERATIONAL 1 -#define RAS_MODEM_NOT_RESPONDING 2 -#define RAS_MODEM_HARDWARE_FAILURE 3 -#define RAS_MODEM_INCORRECT_RESPONSE 4 -#define RAS_MODEM_UNKNOWN 5 -#define RAS_PORT_NON_OPERATIONAL 1 -#define RAS_PORT_DISCONNECTED 2 -#define RAS_PORT_CALLING_BACK 3 -#define RAS_PORT_LISTENING 4 -#define RAS_PORT_AUTHENTICATING 5 -#define RAS_PORT_AUTHENTICATED 6 -#define RAS_PORT_INITIALIZING 7 -#define MEDIA_UNKNOWN 0 -#define MEDIA_SERIAL 1 -#define MEDIA_RAS10_SERIAL 2 -#define MEDIA_X25 3 -#define MEDIA_ISDN 4 -#define USER_AUTHENTICATED 0x0001 -#define MESSENGER_PRESENT 0x0002 -#define PPP_CLIENT 0x0004 -#define GATEWAY_ACTIVE 0x0008 -#define REMOTE_LISTEN 0x0010 -#define PORT_MULTILINKED 0x0020 -#define RAS_IPADDRESSLEN 15 -#define RAS_IPXADDRESSLEN 22 -#define RAS_ATADDRESSLEN 32 -#define RASDOWNLEVEL 10 -#define RASADMIN_35 35 -#define RASADMIN_CURRENT 40 - -typedef ULONG IPADDR; -typedef enum _RAS_PARAMS_FORMAT { - ParamNumber = 0, - ParamString = 1 -} RAS_PARAMS_FORMAT; -typedef union RAS_PARAMS_VALUE { - DWORD Number; - struct { - DWORD Length; - PCHAR Data; - } String; -} RAS_PARAMS_VALUE; -typedef struct RAS_PARAMETERS { - CHAR P_Key [RASSAPI_MAX_PARAM_KEY_SIZE]; - RAS_PARAMS_FORMAT P_Type; - BYTE P_Attributes; - RAS_PARAMS_VALUE P_Value; -} RAS_PARAMETERS; -typedef struct _RAS_USER_0 { - BYTE bfPrivilege; - WCHAR szPhoneNumber[RASSAPI_MAX_PHONENUMBER_SIZE + 1]; -} RAS_USER_0, *PRAS_USER_0; -typedef struct _RAS_PORT_0 { - WCHAR wszPortName[RASSAPI_MAX_PORT_NAME]; - WCHAR wszDeviceType[RASSAPI_MAX_DEVICETYPE_NAME]; - WCHAR wszDeviceName[RASSAPI_MAX_DEVICE_NAME]; - WCHAR wszMediaName[RASSAPI_MAX_MEDIA_NAME]; - DWORD reserved; - DWORD Flags; - WCHAR wszUserName[UNLEN + 1]; - WCHAR wszComputer[NETBIOS_NAME_LEN]; - DWORD dwStartSessionTime; /* seconds from 1/1/1970 */ - WCHAR wszLogonDomain[DNLEN + 1]; - BOOL fAdvancedServer; -} RAS_PORT_0, *PRAS_PORT_0; -typedef struct _RAS_PPP_NBFCP_RESULT { - DWORD dwError; - DWORD dwNetBiosError; - CHAR szName[ NETBIOS_NAME_LEN + 1 ]; - WCHAR wszWksta[ NETBIOS_NAME_LEN + 1 ]; -} RAS_PPP_NBFCP_RESULT; -typedef struct _RAS_PPP_IPCP_RESULT{ - DWORD dwError; - WCHAR wszAddress[ RAS_IPADDRESSLEN + 1 ]; -} RAS_PPP_IPCP_RESULT; -typedef struct _RAS_PPP_IPXCP_RESULT { - DWORD dwError; - WCHAR wszAddress[ RAS_IPXADDRESSLEN + 1 ]; -} RAS_PPP_IPXCP_RESULT; -typedef struct _RAS_PPP_ATCP_RESULT { - DWORD dwError; - WCHAR wszAddress[ RAS_ATADDRESSLEN + 1 ]; -} RAS_PPP_ATCP_RESULT; -typedef struct _RAS_PPP_PROJECTION_RESULT { - RAS_PPP_NBFCP_RESULT nbf; - RAS_PPP_IPCP_RESULT ip; - RAS_PPP_IPXCP_RESULT ipx; - RAS_PPP_ATCP_RESULT at; -} RAS_PPP_PROJECTION_RESULT; -typedef struct _RAS_PORT_1{ - RAS_PORT_0 rasport0; - DWORD LineCondition; - DWORD HardwareCondition; - DWORD LineSpeed; - WORD NumStatistics; - WORD NumMediaParms; - DWORD SizeMediaParms; - RAS_PPP_PROJECTION_RESULT ProjResult; -} RAS_PORT_1, *PRAS_PORT_1; -typedef struct _RAS_PORT_STATISTICS { - DWORD dwBytesXmited; - DWORD dwBytesRcved; - DWORD dwFramesXmited; - DWORD dwFramesRcved; - DWORD dwCrcErr; - DWORD dwTimeoutErr; - DWORD dwAlignmentErr; - DWORD dwHardwareOverrunErr; - DWORD dwFramingErr; - DWORD dwBufferOverrunErr; - DWORD dwBytesXmitedUncompressed; - DWORD dwBytesRcvedUncompressed; - DWORD dwBytesXmitedCompressed; - DWORD dwBytesRcvedCompressed; - DWORD dwPortBytesXmited; - DWORD dwPortBytesRcved; - DWORD dwPortFramesXmited; - DWORD dwPortFramesRcved; - DWORD dwPortCrcErr; - DWORD dwPortTimeoutErr; - DWORD dwPortAlignmentErr; - DWORD dwPortHardwareOverrunErr; - DWORD dwPortFramingErr; - DWORD dwPortBufferOverrunErr; - DWORD dwPortBytesXmitedUncompressed; - DWORD dwPortBytesRcvedUncompressed; - DWORD dwPortBytesXmitedCompressed; - DWORD dwPortBytesRcvedCompressed; -} RAS_PORT_STATISTICS, *PRAS_PORT_STATISTICS; -typedef struct _RAS_SERVER_0 { - WORD TotalPorts; - WORD PortsInUse; - DWORD RasVersion; -} RAS_SERVER_0, *PRAS_SERVER_0; - -DWORD APIENTRY RasAdminServerGetInfo( const WCHAR*, PRAS_SERVER_0 ); -DWORD APIENTRY RasAdminGetUserAccountServer( const WCHAR*, const WCHAR*, LPWSTR ); -DWORD APIENTRY RasAdminUserGetInfo( const WCHAR*, const WCHAR*, PRAS_USER_0 ); -DWORD APIENTRY RasAdminUserSetInfo( const WCHAR*, const WCHAR*, const PRAS_USER_0 ); -DWORD APIENTRY RasAdminPortEnum( const WCHAR*, PRAS_PORT_0*, WORD*); -DWORD APIENTRY RasAdminPortGetInfo( const WCHAR*, const WCHAR*, RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS** ); -DWORD APIENTRY RasAdminPortClearStatistics( const WCHAR*, const WCHAR* ); -DWORD APIENTRY RasAdminPortDisconnect( const WCHAR*, const WCHAR* ); -DWORD APIENTRY RasAdminFreeBuffer(PVOID); -DWORD APIENTRY RasAdminGetErrorString( UINT, WCHAR*, DWORD ); -BOOL APIENTRY RasAdminAcceptNewConnection( RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS* ); -VOID APIENTRY RasAdminConnectionHangupNotification ( RAS_PORT_1*, RAS_PORT_STATISTICS*, RAS_PARAMETERS* ); -DWORD APIENTRY RasAdminGetIpAddressForUser ( WCHAR*, WCHAR*, IPADDR*, BOOL*); -VOID APIENTRY RasAdminReleaseIpAddress ( WCHAR*, WCHAR*,IPADDR* ); -DWORD APIENTRY RasAdminGetUserParms( WCHAR*, PRAS_USER_0 ); -DWORD APIENTRY RasAdminSetUserParms( WCHAR*, DWORD, PRAS_USER_0 ); - -#ifdef __cplusplus -} -#endif - -#endif /* _RASSAPI_H */ diff --git a/winsup/w32api/include/regstr.h b/winsup/w32api/include/regstr.h deleted file mode 100644 index 6a34ffb62..000000000 --- a/winsup/w32api/include/regstr.h +++ /dev/null @@ -1,765 +0,0 @@ -#ifndef _REGSTR_H -#define _REGSTR_H -#ifdef __cplusplus -extern "C" { -#endif -#define REGSTR_KEY_CLASS TEXT("Class") -#define REGSTR_KEY_CONFIG TEXT("Config") -#define REGSTR_KEY_ENUM TEXT("Enum") -#define REGSTR_KEY_ROOTENUM TEXT("Root") -#define REGSTR_KEY_BIOSENUM TEXT("BIOS") -#define REGSTR_KEY_PCMCIAENUM TEXT("PCMCIA") -#define REGSTR_KEY_PCIENUM TEXT("PCI") -#define REGSTR_KEY_LOGCONFIG TEXT("LogConfig") -#define REGSTR_KEY_SYSTEMBOARD TEXT("*PNP0C01") -#define REGSTR_KEY_APM TEXT("*PNP0C05") -#define REGSTR_KEY_INIUPDATE TEXT("IniUpdate") -#define REG_KEY_INSTDEV TEXT("Installed") -#define REGSTR_KEY_DOSOPTCDROM TEXT("CD-ROM") -#define REGSTR_KEY_DOSOPTMOUSE TEXT("MOUSE") -#define REGSTR_DEFAULT_INSTANCE TEXT("0000") -#define REGSTR_PATH_MOTHERBOARD REGSTR_KEY_SYSTEMBOARD TEXT("\\" REGSTR_DEFAULT_INSTANCE -#define REGSTR_PATH_SETUP TEXT("Software\\Microsoft\\Windows\\CurrentVersion") -#define REGSTR_PATH_PIFCONVERT TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\PIFConvert") -#define REGSTR_PATH_MSDOSOPTS TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOSOptions") -#define REGSTR_PATH_MSDOSEMU TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOS Emulation") -#define REGSTR_PATH_NEWDOSBOX TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOS Emulation\\AppCompat") -#define REGSTR_PATH_RUNONCE TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce") -#define REGSTR_PATH_RUN TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run") -#define REGSTR_PATH_RUNSERVICESONCE TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\RunServicesOnce") -#define REGSTR_PATH_RUNSERVICES TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\RunServices") -#ifndef REGSTR_PATH_EXPLORER /* also in shlobj.h */ -#define REGSTR_PATH_EXPLORER TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer") -#endif -#define REGSTR_PATH_DETECT TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Detect") -#define REGSTR_PATH_APPPATHS TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\App Paths") -#define REGSTR_PATH_UNINSTALL TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall") -#define REGSTR_PATH_REALMODENET TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Network\\Real Mode Net") -#define REGSTR_PATH_NETEQUIV TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Network\\Equivalent") -#define REGSTR_PATH_CVNETWORK TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Network") -#define REGSTR_PATH_IDCONFIGDB TEXT("System\\CurrentControlSet\\Control\\IDConfigDB") -#define REGSTR_PATH_CLASS TEXT("System\\CurrentControlSet\\Services\\Class") -#define REGSTR_PATH_DISPLAYSETTINGS TEXT("Display\\Settings") -#define REGSTR_PATH_FONTS TEXT("Display\\Fonts") -#define REGSTR_PATH_ENUM TEXT("Enum") -#define REGSTR_PATH_ROOT TEXT("Enum\\Root") -#define REGSTR_PATH_SERVICES TEXT("System\\CurrentControlSet\\Services") -#define REGSTR_PATH_VXD TEXT("System\\CurrentControlSet\\Services\\VxD") -#define REGSTR_PATH_IOS TEXT("System\\CurrentControlSet\\Services\\VxD\\IOS") -#define REGSTR_PATH_VMM TEXT("System\\CurrentControlSet\\Services\\VxD\\VMM") -#define REGSTR_PATH_VPOWERD TEXT("System\\CurrentControlSet\\Services\\VxD\\VPOWERD") -#define REGSTR_PATH_VNETSUP TEXT("System\\CurrentControlSet\\Services\\VxD\\VNETSUP") -#define REGSTR_PATH_NWREDIR TEXT("System\\CurrentControlSet\\Services\\VxD\\NWREDIR") -#define REGSTR_PATH_NCPSERVER TEXT("System\\CurrentControlSet\\Services\\NcpServer\\Parameters") -#define REGSTR_PATH_IOARB TEXT("System\\CurrentControlSet\\Services\\Arbitrators\\IOArb") -#define REGSTR_PATH_ADDRARB TEXT("System\\CurrentControlSet\\Services\\Arbitrators\\AddrArb") -#define REGSTR_PATH_DMAARB TEXT("System\\CurrentControlSet\\Services\\Arbitrators\\DMAArb") -#define REGSTR_PATH_IRQARB TEXT("System\\CurrentControlSet\\Services\\Arbitrators\\IRQArb") -#define REGSTR_PATH_CODEPAGE TEXT("System\\CurrentControlSet\\Control\\Nls\\Codepage") -#define REGSTR_PATH_FILESYSTEM TEXT("System\\CurrentControlSet\\Control\\FileSystem") -#define REGSTR_PATH_FILESYSTEM_NOVOLTRACK TEXT("System\\CurrentControlSet\\Control\\FileSystem\\NoVolTrack") -#define REGSTR_PATH_CDFS TEXT("System\\CurrentControlSet\\Control\\FileSystem\\CDFS") -#define REGSTR_PATH_WINBOOT TEXT("System\\CurrentControlSet\\Control\\WinBoot") -#define REGSTR_PATH_INSTALLEDFILES TEXT("System\\CurrentControlSet\\Control\\InstalledFiles") -#define REGSTR_PATH_VMM32FILES TEXT("System\\CurrentControlSet\\Control\\VMM32Files") -#define REGSTR_MAX_VALUE_LENGTH 256 -#define REGSTR_VAL_BITSPERPIXEL TEXT("BitsPerPixel") -#define REGSTR_VAL_RESOLUTION TEXT("Resolution") -#define REGSTR_VAL_DPILOGICALX TEXT("DPILogicalX") -#define REGSTR_VAL_DPILOGICALY TEXT("DPILogicalY") -#define REGSTR_VAL_DPIPHYSICALX TEXT("DPIPhysicalX") -#define REGSTR_VAL_DPIPHYSICALY TEXT("DPIPhysicalY") -#define REGSTR_VAL_REFRESHRATE TEXT("RefreshRate") -#define REGSTR_VAL_DISPLAYFLAGS TEXT("DisplayFlags") -#define REGSTR_PATH_CONTROLPANEL TEXT("Control Panel") -#define REGSTR_PATH_CONTROLSFOLDER TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Controls Folder") -#define REGSTR_VAL_DOSCP TEXT("OEMCP") -#define REGSTR_VAL_WINCP TEXT("ACP") -#define REGSTR_PATH_DYNA_ENUM TEXT("Config Manager\\Enum") -#define REGSTR_VAL_HARDWARE_KEY TEXT("HardWareKey") -#define REGSTR_VAL_ALLOCATION TEXT("Allocation") -#define REGSTR_VAL_PROBLEM TEXT("Problem") -#define REGSTR_VAL_STATUS TEXT("Status") -#define REGSTR_VAL_DONTUSEMEM TEXT("DontAllocLastMem") -#define REGSTR_VAL_SYSTEMROOT TEXT("SystemRoot") -#define REGSTR_VAL_BOOTCOUNT TEXT("BootCount") -#define REGSTR_VAL_REALNETSTART TEXT("RealNetStart") -#define REGSTR_VAL_MEDIA TEXT("MediaPath") -#define REGSTR_VAL_CONFIG TEXT("ConfigPath") -#define REGSTR_VAL_DEVICEPATH TEXT("DevicePath") -#define REGSTR_VAL_SRCPATH TEXT("SourcePath") -#define REGSTR_VAL_OLDWINDIR TEXT("OldWinDir") -#define REGSTR_VAL_SETUPFLAGS TEXT("SetupFlags") -#define REGSTR_VAL_REGOWNER TEXT("RegisteredOwner") -#define REGSTR_VAL_REGORGANIZATION TEXT("RegisteredOrganization") -#define REGSTR_VAL_LICENSINGINFO TEXT("LicensingInfo") -#define REGSTR_VAL_OLDMSDOSVER TEXT("OldMSDOSVer") -#define REGSTR_VAL_FIRSTINSTALLDATETIME TEXT("FirstInstallDateTime") -#define REGSTR_VAL_INSTALLTYPE TEXT("InstallType") -#define REGSTR_VAL_WRAPPER TEXT("Wrapper") -#define IT_COMPACT 0 -#define IT_TYPICAL 1 -#define IT_PORTABLE 2 -#define IT_CUSTOM 3 -#define REGSTR_KEY_SETUP TEXT("\\Setup") -#define REGSTR_VAL_BOOTDIR TEXT("BootDir") -#define REGSTR_VAL_WINBOOTDIR TEXT("WinbootDir") -#define REGSTR_VAL_WINDIR TEXT("WinDir") -#define REGSTR_VAL_APPINSTPATH TEXT("AppInstallPath") -#define REGSTR_PATH_EBD REGSTR_PATH_SETUP REGSTR_KEY_SETUP TEXT("\\EBD") -#define REGSTR_KEY_EBDFILESLOCAL TEXT("EBDFilesLocale") -#define REGSTR_KEY_EBDFILESKEYBOARD TEXT("EBDFilesKeyboard") -#define REGSTR_KEY_EBDAUTOEXECBATLOCAL TEXT("EBDAutoexecBatLocale") -#define REGSTR_KEY_EBDAUTOEXECBATKEYBOARD TEXT("EBDAutoexecBatKeyboard") -#define REGSTR_KEY_EBDCONFIGSYSLOCAL TEXT("EBDConfigSysLocale") -#define REGSTR_KEY_EBDCONFIGSYSKEYBOARD TEXT("EBDConfigSysKeyboard") -#define REGSTR_VAL_MSDOSMODE TEXT("MSDOSMode") -#define REGSTR_VAL_MSDOSMODEDISCARD TEXT("Discard") -#define REGSTR_VAL_DOSOPTGLOBALFLAGS TEXT("GlobalFlags") -#define DOSOPTGF_DEFCLEAN 1 -#define REGSTR_VAL_DOSOPTFLAGS TEXT("Flags") -#define REGSTR_VAL_OPTORDER TEXT("Order") -#define REGSTR_VAL_CONFIGSYS TEXT("Config.Sys") -#define REGSTR_VAL_AUTOEXEC TEXT("Autoexec.Bat") -#define REGSTR_VAL_STDDOSOPTION TEXT("StdOption") -#define REGSTR_VAL_DOSOPTTIP TEXT("TipText") -#define DOSOPTF_DEFAULT 1 -#define DOSOPTF_SUPPORTED 2 -#define DOSOPTF_ALWAYSUSE 4 -#define DOSOPTF_USESPMODE 8 -#define DOSOPTF_PROVIDESUMB 16 -#define DOSOPTF_NEEDSETUP 32 -#define DOSOPTF_INDOSSTART 64 -#define DOSOPTF_MULTIPLE 128 -#define SUF_FIRSTTIME 1 -#define SUF_EXPRESS 2 -#define SUF_BATCHINF 4 -#define SUF_CLEAN 8 -#define SUF_INSETUP 16 -#define SUF_NETSETUP 32 -#define SUF_NETHDBOOT 64 -#define SUF_NETRPLBOOT 128 -#define SUF_SBSCOPYOK 256 -#define REGSTR_VAL_DOSPAGER TEXT("DOSPager") -#define REGSTR_VAL_VXDGROUPS TEXT("VXDGroups") -#define REGSTR_VAL_VPOWERDFLAGS TEXT("Flags") -#define VPDF_DISABLEPWRMGMT 1 -#define VPDF_FORCEAPM10MODE 2 -#define VPDF_SKIPINTELSLCHECK 4 -#define VPDF_DISABLEPWRSTATUSPOLL 8 -#define REGSTR_VAL_WORKGROUP TEXT("Workgroup") -#define REGSTR_VAL_DIRECTHOST TEXT("DirectHost") -#define REGSTR_VAL_FILESHARING TEXT("FileSharing") -#define REGSTR_VAL_PRINTSHARING TEXT("PrintSharing") -#define REGSTR_VAL_FIRSTNETDRIVE TEXT("FirstNetworkDrive") -#define REGSTR_VAL_MAXCONNECTIONS TEXT("MaxConnections") -#define REGSTR_VAL_APISUPPORT TEXT("APISupport") -#define REGSTR_VAL_MAXRETRY TEXT("MaxRetry") -#define REGSTR_VAL_MINRETRY TEXT("MinRetry") -#define REGSTR_VAL_SUPPORTLFN TEXT("SupportLFN") -#define REGSTR_VAL_SUPPORTBURST TEXT("SupportBurst") -#define REGSTR_VAL_SUPPORTTUNNELLING TEXT("SupportTunnelling") -#define REGSTR_VAL_FULLTRACE TEXT("FullTrace") -#define REGSTR_VAL_READCACHING TEXT("ReadCaching") -#define REGSTR_VAL_SHOWDOTS TEXT("ShowDots") -#define REGSTR_VAL_GAPTIME TEXT("GapTime") -#define REGSTR_VAL_SEARCHMODE TEXT("SearchMode") -#define REGSTR_VAL_SHELLVERSION TEXT("ShellVersion") -#define REGSTR_VAL_MAXLIP TEXT("MaxLIP") -#define REGSTR_VAL_PRESERVECASE TEXT("PreserveCase") -#define REGSTR_VAL_OPTIMIZESFN TEXT("OptimizeSFN") -#define REGSTR_VAL_NCP_BROWSEMASTER TEXT("BrowseMaster") -#define REGSTR_VAL_NCP_USEPEERBROWSING TEXT("Use_PeerBrowsing") -#define REGSTR_VAL_NCP_USESAP TEXT("Use_Sap") -#define REGSTR_VAL_WIN31FILESYSTEM TEXT("Win31FileSystem") -#define REGSTR_VAL_PRESERVELONGNAMES TEXT("PreserveLongNames") -#define REGSTR_VAL_DRIVEWRITEBEHIND TEXT("DriveWriteBehind") -#define REGSTR_VAL_ASYNCFILECOMMIT TEXT("AsyncFileCommit") -#define REGSTR_VAL_PATHCACHECOUNT TEXT("PathCache") -#define REGSTR_VAL_NAMECACHECOUNT TEXT("NameCache") -#define REGSTR_VAL_CONTIGFILEALLOC TEXT("ContigFileAllocSize") -#define REGSTR_VAL_VOLIDLETIMEOUT TEXT("VolumeIdleTimeout") -#define REGSTR_VAL_BUFFIDLETIMEOUT TEXT("BufferIdleTimeout") -#define REGSTR_VAL_BUFFAGETIMEOUT TEXT("BufferAgeTimeout") -#define REGSTR_VAL_NAMENUMERICTAIL TEXT("NameNumericTail") -#define REGSTR_VAL_READAHEADTHRESHOLD TEXT("ReadAheadThreshold") -#define REGSTR_VAL_DOUBLEBUFFER TEXT("DoubleBuffer") -#define REGSTR_VAL_SOFTCOMPATMODE TEXT("SoftCompatMode") -#define REGSTR_VAL_DRIVESPINDOWN TEXT("DriveSpinDown") -#define REGSTR_VAL_FORCEPMIO TEXT("ForcePMIO") -#define REGSTR_VAL_FORCERMIO TEXT("ForceRMIO") -#define REGSTR_VAL_LASTBOOTPMDRVS TEXT("LastBootPMDrvs") -#define REGSTR_VAL_VIRTUALHDIRQ TEXT("VirtualHDIRQ") -#define REGSTR_VAL_SRVNAMECACHECOUNT TEXT("ServerNameCacheMax") -#define REGSTR_VAL_SRVNAMECACHE TEXT("ServerNameCache") -#define REGSTR_VAL_SRVNAMECACHENETPROV TEXT("ServerNameCacheNumNets") -#define REGSTR_VAL_AUTOMOUNT TEXT("AutoMountDrives") -#define REGSTR_VAL_COMPRESSIONMETHOD TEXT("CompressionAlgorithm") -#define REGSTR_VAL_COMPRESSIONTHRESHOLD TEXT("CompressionThreshold") -#define REGSTR_VAL_CDCACHESIZE TEXT("CacheSize") -#define REGSTR_VAL_CDPREFETCH TEXT("Prefetch") -#define REGSTR_VAL_CDPREFETCHTAIL TEXT("PrefetchTail") -#define REGSTR_VAL_CDRAWCACHE TEXT("RawCache") -#define REGSTR_VAL_CDEXTERRORS TEXT("ExtendedErrors") -#define REGSTR_VAL_CDSVDSENSE TEXT("SVDSense") -#define REGSTR_VAL_CDSHOWVERSIONS TEXT("ShowVersions") -#define REGSTR_VAL_CDCOMPATNAMES TEXT("MSCDEXCompatNames") -#define REGSTR_VAL_CDNOREADAHEAD TEXT("NoReadAhead") -#define REGSTR_VAL_SCSI TEXT("SCSI\\") -#define REGSTR_VAL_ESDI TEXT("ESDI\\") -#define REGSTR_VAL_FLOP TEXT("FLOP\\") -#define REGSTR_VAL_DISK TEXT("GenDisk") -#define REGSTR_VAL_CDROM TEXT("GenCD") -#define REGSTR_VAL_TAPE TEXT("TAPE") -#define REGSTR_VAL_SCANNER TEXT("SCANNER") -#define REGSTR_VAL_FLOPPY TEXT("FLOPPY") -#define REGSTR_VAL_SCSITID TEXT("SCSITargetID") -#define REGSTR_VAL_SCSILUN TEXT("SCSILUN") -#define REGSTR_VAL_REVLEVEL TEXT("RevisionLevel") -#define REGSTR_VAL_PRODUCTID TEXT("ProductId") -#define REGSTR_VAL_PRODUCTTYPE TEXT("ProductType") -#define REGSTR_VAL_DEVTYPE TEXT("DeviceType") -#define REGSTR_VAL_REMOVABLE TEXT("Removable") -#define REGSTR_VAL_CURDRVLET TEXT("CurrentDriveLetterAssignment") -#define REGSTR_VAL_USRDRVLET TEXT("UserDriveLetterAssignment") -#define REGSTR_VAL_SYNCDATAXFER TEXT("SyncDataXfer") -#define REGSTR_VAL_AUTOINSNOTE TEXT("AutoInsertNotification") -#define REGSTR_VAL_DISCONNECT TEXT("Disconnect") -#define REGSTR_VAL_INT13 TEXT("Int13") -#define REGSTR_VAL_PMODE_INT13 TEXT("PModeInt13") -#define REGSTR_VAL_USERSETTINGS TEXT("AdapterSettings") -#define REGSTR_VAL_NOIDE TEXT("NoIDE") -#define REGSTR_VAL_DISKCLASSNAME TEXT("DiskDrive") -#define REGSTR_VAL_CDROMCLASSNAME TEXT("CDROM") -#define REGSTR_VAL_FORCELOAD TEXT("ForceLoadPD") -#define REGSTR_VAL_FORCEFIFO TEXT("ForceFIFO") -#define REGSTR_VAL_FORCECL TEXT("ForceChangeLine") -#define REGSTR_VAL_NOUSECLASS TEXT("NoUseClass") -#define REGSTR_VAL_NOINSTALLCLASS TEXT("NoInstallClass") -#define REGSTR_VAL_NODISPLAYCLASS TEXT("NoDisplayClass") -#define REGSTR_VAL_SILENTINSTALL TEXT("SilentInstall") -#define REGSTR_KEY_PCMCIA_CLASS TEXT("PCMCIA") -#define REGSTR_KEY_SCSI_CLASS TEXT("SCSIAdapter") -#define REGSTR_KEY_PORTS_CLASS TEXT("ports") -#define REGSTR_KEY_MEDIA_CLASS TEXT("MEDIA") -#define REGSTR_KEY_DISPLAY_CLASS TEXT("Display") -#define REGSTR_KEY_KEYBOARD_CLASS TEXT("Keyboard") -#define REGSTR_KEY_MOUSE_CLASS TEXT("Mouse") -#define REGSTR_KEY_MONITOR_CLASS TEXT("Monitor") -#define REGSTR_VAL_PCMCIA_OPT TEXT("Options") -#define PCMCIA_OPT_HAVE_SOCKET 1 -#define PCMCIA_OPT_AUTOMEM 4 -#define PCMCIA_OPT_NO_SOUND 8 -#define PCMCIA_OPT_NO_AUDIO 16 -#define PCMCIA_OPT_NO_APMREMOVE 32 -#define REGSTR_VAL_PCMCIA_MEM TEXT("Memory") -#define PCMCIA_DEF_MEMBEGIN 0xC0000 -#define PCMCIA_DEF_MEMEND 0xFFFFFF -#define PCMCIA_DEF_MEMLEN 0x1000 -#define REGSTR_VAL_PCMCIA_ALLOC TEXT("AllocMemWin") -#define REGSTR_VAL_PCMCIA_ATAD TEXT("ATADelay") -#define REGSTR_VAL_PCMCIA_SIZ TEXT("MinRegionSize") -#define PCMCIA_DEF_MIN_REGION 0x10000 -#define REGSTR_VAL_P1284MDL TEXT("Model") -#define REGSTR_VAL_P1284MFG TEXT("Manufacturer") -#define REGSTR_VAL_ISAPNP TEXT("ISAPNP") -#define REGSTR_VAL_ISAPNP_RDP_OVERRIDE TEXT("RDPOverRide") -#define REGSTR_VAL_PCI TEXT("PCI") -#define REGSTR_PCI_OPTIONS TEXT("Options") -#define REGSTR_PCI_DUAL_IDE TEXT("PCIDualIDE") -#define PCI_OPTIONS_USE_BIOS 1 -#define PCI_OPTIONS_USE_IRQ_STEERING 2 -#define PCI_FLAG_NO_VIDEO_IRQ 1 -#define PCI_FLAG_PCMCIA_WANT_IRQ 2 -#define PCI_FLAG_DUAL_IDE 4 -#define PCI_FLAG_NO_ENUM_AT_ALL 8 -#define PCI_FLAG_ENUM_NO_RESOURCE 16 -#define PCI_FLAG_NEED_DWORD_ACCESS 32 -#define PCI_FLAG_SINGLE_FUNCTION 64 -#define PCI_FLAG_ALWAYS_ENABLED 128 -#define PCI_FLAG_IS_IDE 256 -#define PCI_FLAG_IS_VIDEO 512 -#define PCI_FLAG_FAIL_START 1024 -#define REGSTR_KEY_CRASHES TEXT("Crashes") -#define REGSTR_KEY_DANGERS TEXT("Dangers") -#define REGSTR_KEY_DETMODVARS TEXT("DetModVars") -#define REGSTR_KEY_NDISINFO TEXT("NDISInfo") -#define REGSTR_VAL_PROTINIPATH TEXT("ProtIniPath") -#define REGSTR_VAL_RESOURCES TEXT("Resources") -#define REGSTR_VAL_CRASHFUNCS TEXT("CrashFuncs") -#define REGSTR_VAL_CLASS TEXT("Class") -#define REGSTR_VAL_DEVDESC TEXT("DeviceDesc") -#define REGSTR_VAL_BOOTCONFIG TEXT("BootConfig") -#define REGSTR_VAL_DETFUNC TEXT("DetFunc") -#define REGSTR_VAL_DETFLAGS TEXT("DetFlags") -#define REGSTR_VAL_COMPATIBLEIDS TEXT("CompatibleIDs") -#define REGSTR_VAL_DETCONFIG TEXT("DetConfig") -#define REGSTR_VAL_VERIFYKEY TEXT("VerifyKey") -#define REGSTR_VAL_COMINFO TEXT("ComInfo") -#define REGSTR_VAL_INFNAME TEXT("InfName") -#define REGSTR_VAL_CARDSPECIFIC TEXT("CardSpecific") -#define REGSTR_VAL_NETOSTYPE TEXT("NetOSType") -#define REGSTR_DATA_NETOS_NDIS TEXT("NDIS") -#define REGSTR_DATA_NETOS_ODI TEXT("ODI") -#define REGSTR_DATA_NETOS_IPX TEXT("IPX") -#define REGSTR_VAL_MFG TEXT("Mfg") -#define REGSTR_VAL_SCAN_ONLY_FIRST TEXT("ScanOnlyFirstDrive") -#define REGSTR_VAL_SHARE_IRQ TEXT("ForceIRQSharing") -#define REGSTR_VAL_NONSTANDARD_ATAPI TEXT("NonStandardATAPI") -#define REGSTR_VAL_IDE_FORCE_SERIALIZE TEXT("ForceSerialization") -#define REGSTR_VAL_MAX_HCID_LEN 1024 -#define REGSTR_VAL_HWREV TEXT("HWRevision") -#define REGSTR_VAL_ENABLEINTS TEXT("EnableInts") -#define REGDF_NOTDETIO 1 -#define REGDF_NOTDETMEM 2 -#define REGDF_NOTDETIRQ 4 -#define REGDF_NOTDETDMA 8 -#define REGDF_NOTDETALL (REGDF_NOTDETIO | REGDF_NOTDETMEM | REGDF_NOTDETIRQ | REGDF_NOTDETDMA) -#define REGDF_NEEDFULLCONFIG 16 -#define REGDF_GENFORCEDCONFIG 32 -#define REGDF_NODETCONFIG 0x8000 -#define REGDF_CONFLICTIO 0x10000 -#define REGDF_CONFLICTMEM 0x20000 -#define REGDF_CONFLICTIRQ 0x40000 -#define REGDF_CONFLICTDMA 0x80000 -#define REGDF_CONFLICTALL (REGDF_CONFLICTIO | REGDF_CONFLICTMEM | REGDF_CONFLICTIRQ | REGDF_CONFLICTDMA) -#define REGDF_MAPIRQ2TO9 0x100000 -#define REGDF_NOTVERIFIED 0x80000000 -#define REGSTR_VAL_APMBIOSVER TEXT("APMBiosVer") -#define REGSTR_VAL_APMFLAGS TEXT("APMFlags") -#define REGSTR_VAL_SLSUPPORT TEXT("SLSupport") -#define REGSTR_VAL_MACHINETYPE TEXT("MachineType") -#define REGSTR_VAL_SETUPMACHINETYPE TEXT("SetupMachineType") -#define REGSTR_MACHTYPE_UNKNOWN TEXT("Unknown") -#define REGSTR_MACHTYPE_IBMPC TEXT("IBM PC") -#define REGSTR_MACHTYPE_IBMPCJR TEXT("IBM PCjr") -#define REGSTR_MACHTYPE_IBMPCCONV TEXT("IBM PC Convertible") -#define REGSTR_MACHTYPE_IBMPCXT TEXT("IBM PC/XT") -#define REGSTR_MACHTYPE_IBMPCXT_286 TEXT("IBM PC/XT 286") -#define REGSTR_MACHTYPE_IBMPCAT TEXT("IBM PC/AT") -#define REGSTR_MACHTYPE_IBMPS2_25 TEXT("IBM PS/2-25") -#define REGSTR_MACHTYPE_IBMPS2_30_286 TEXT("IBM PS/2-30 286") -#define REGSTR_MACHTYPE_IBMPS2_30 TEXT("IBM PS/2-30") -#define REGSTR_MACHTYPE_IBMPS2_50 TEXT("IBM PS/2-50") -#define REGSTR_MACHTYPE_IBMPS2_50Z TEXT("IBM PS/2-50Z") -#define REGSTR_MACHTYPE_IBMPS2_55SX TEXT("IBM PS/2-55SX") -#define REGSTR_MACHTYPE_IBMPS2_60 TEXT("IBM PS/2-60") -#define REGSTR_MACHTYPE_IBMPS2_65SX TEXT("IBM PS/2-65SX") -#define REGSTR_MACHTYPE_IBMPS2_70 TEXT("IBM PS/2-70") -#define REGSTR_MACHTYPE_IBMPS2_P70 TEXT("IBM PS/2-P70") -#define REGSTR_MACHTYPE_IBMPS2_70_80 TEXT("IBM PS/2-70/80") -#define REGSTR_MACHTYPE_IBMPS2_80 TEXT("IBM PS/2-80") -#define REGSTR_MACHTYPE_IBMPS2_90 TEXT("IBM PS/2-90") -#define REGSTR_MACHTYPE_IBMPS1 TEXT("IBM PS/1") -#define REGSTR_MACHTYPE_PHOENIX_PCAT TEXT("Phoenix PC/AT Compatible") -#define REGSTR_MACHTYPE_HP_VECTRA TEXT("HP Vectra") -#define REGSTR_MACHTYPE_ATT_PC TEXT("AT&T PC") -#define REGSTR_MACHTYPE_ZENITH_PC TEXT("Zenith PC") -#define REGSTR_VAL_APMMENUSUSPEND TEXT("APMMenuSuspend") -#define APMMENUSUSPEND_DISABLED 0 -#define APMMENUSUSPEND_ENABLED 1 -#define APMMENUSUSPEND_UNDOCKED 2 -#define APMMENUSUSPEND_NOCHANGE 128 -#define REGSTR_VAL_BUSTYPE TEXT("BusType") -#define REGSTR_VAL_CPU TEXT("CPU") -#define REGSTR_VAL_NDP TEXT("NDP") -#define REGSTR_VAL_PNPBIOSVER TEXT("PnPBIOSVer") -#define REGSTR_VAL_PNPSTRUCOFFSET TEXT("PnPStrucOffset") -#define REGSTR_VAL_PCIBIOSVER TEXT("PCIBIOSVer") -#define REGSTR_VAL_HWMECHANISM TEXT("HWMechanism") -#define REGSTR_VAL_LASTPCIBUSNUM TEXT("LastPCIBusNum") -#define REGSTR_VAL_CONVMEM TEXT("ConvMem") -#define REGSTR_VAL_EXTMEM TEXT("ExtMem") -#define REGSTR_VAL_COMPUTERNAME TEXT("ComputerName") -#define REGSTR_VAL_BIOSNAME TEXT("BIOSName") -#define REGSTR_VAL_BIOSVERSION TEXT("BIOSVersion") -#define REGSTR_VAL_BIOSDATE TEXT("BIOSDate") -#define REGSTR_VAL_MODEL TEXT("Model") -#define REGSTR_VAL_SUBMODEL TEXT("Submodel") -#define REGSTR_VAL_REVISION TEXT("Revision") -#define REGSTR_VAL_FIFODEPTH TEXT("FIFODepth") -#define REGSTR_VAL_RDINTTHRESHOLD TEXT("RDIntThreshold") -#define REGSTR_VAL_WRINTTHRESHOLD TEXT("WRIntThreshold") -#define REGSTR_VAL_PRIORITY TEXT("Priority") -#define REGSTR_VAL_DRIVER TEXT("Driver") -#define REGSTR_VAL_FUNCDESC TEXT("FunctionDesc") -#define REGSTR_VAL_FORCEDCONFIG TEXT("ForcedConfig") -#define REGSTR_VAL_CONFIGFLAGS TEXT("ConfigFlags") -#define REGSTR_VAL_CSCONFIGFLAGS TEXT("CSConfigFlags") -#define CONFIGFLAG_DISABLED 1 -#define CONFIGFLAG_REMOVED 2 -#define CONFIGFLAG_MANUAL_INSTALL 4 -#define CONFIGFLAG_IGNORE_BOOT_LC 8 -#define CONFIGFLAG_NET_BOOT 16 -#define CONFIGFLAG_REINSTALL 32 -#define CONFIGFLAG_FAILEDINSTALL 64 -#define CONFIGFLAG_CANTSTOPACHILD 128 -#define CONFIGFLAG_OKREMOVEROM 256 -#define CONFIGFLAG_NOREMOVEEXIT 512 -#define CSCONFIGFLAG_BITS 7 -#define CSCONFIGFLAG_DISABLED 1 -#define CSCONFIGFLAG_DO_NOT_CREATE 2 -#define CSCONFIGFLAG_DO_NOT_START 4 -#define DMSTATEFLAG_APPLYTOALL 1 -#define REGSTR_VAL_ROOT_DEVNODE TEXT("HTREE\\ROOT\\0") -#define REGSTR_VAL_RESERVED_DEVNODE TEXT("HTREE\\RESERVED\\0") -#define REGSTR_PATH_READDATAPORT REGSTR_KEY_ISAENUM TEXT("\\ReadDataPort\\0") -#define REGSTR_PATH_MULTI_FUNCTION TEXT("MF") -#define REGSTR_VAL_RESOURCE_MAP TEXT("ResourceMap") -#define REGSTR_PATH_CHILD_PREFIX TEXT("Child") -#define NUM_RESOURCE_MAP 256 -#define REGSTR_VAL_MF_FLAGS TEXT("MFFlags") -#define MF_FLAGS_EVEN_IF_NO_RESOURCE 1 -#define MF_FLAGS_NO_CREATE_IF_NO_RESOURCE 2 -#define MF_FLAGS_FILL_IN_UNKNOWN_RESOURCE 4 -#define MF_FLAGS_CREATE_BUT_NO_SHOW_DISABLED 8 -#define EISAFLAG_NO_IO_MERGE 1 -#define EISAFLAG_SLOT_IO_FIRST 2 -#define EISA_NO_MAX_FUNCTION 0xFF -#define NUM_EISA_RANGES 4 -#define REGSTR_VAL_DRVDESC TEXT("DriverDesc") -#define REGSTR_VAL_DEVLOADER TEXT("DevLoader") -#define REGSTR_VAL_STATICVXD TEXT("StaticVxD") -#define REGSTR_VAL_PROPERTIES TEXT("Properties") -#define REGSTR_VAL_MANUFACTURER TEXT("Manufacturer") -#define REGSTR_VAL_EXISTS TEXT("Exists") -#define REGSTR_VAL_CMENUMFLAGS TEXT("CMEnumFlags") -#define REGSTR_VAL_CMDRIVFLAGS TEXT("CMDrivFlags") -#define REGSTR_VAL_ENUMERATOR TEXT("Enumerator") -#define REGSTR_VAL_DEVICEDRIVER TEXT("DeviceDriver") -#define REGSTR_VAL_PORTNAME TEXT("PortName") -#define REGSTR_VAL_INFPATH TEXT("InfPath") -#define REGSTR_VAL_INFSECTION TEXT("InfSection") -#define REGSTR_VAL_POLLING TEXT("Polling") -#define REGSTR_VAL_DONTLOADIFCONFLICT TEXT("DontLoadIfConflict") -#define REGSTR_VAL_PORTSUBCLASS TEXT("PortSubClass") -#define REGSTR_VAL_NETCLEAN TEXT("NetClean") -#define REGSTR_VAL_IDE_NO_SERIALIZE TEXT("IDENoSerialize") -#define REGSTR_VAL_NOCMOSORFDPT TEXT("NoCMOSorFDPT") -#define REGSTR_VAL_COMVERIFYBASE TEXT("COMVerifyBase") -#define REGSTR_KEY_OVERRIDE TEXT("Override") -#define REGSTR_VAL_CONFIGMG TEXT("CONFIGMG") -#define REGSTR_VAL_SYSDM TEXT("SysDM") -#define REGSTR_VAL_SYSDMFUNC TEXT("SysDMFunc") -#define REGSTR_VAL_PRIVATE TEXT("Private") -#define REGSTR_VAL_PRIVATEFUNC TEXT("PrivateFunc") -#define REGSTR_VAL_DETECT TEXT("Detect") -#define REGSTR_VAL_DETECTFUNC TEXT("DetectFunc") -#define REGSTR_VAL_ASKFORCONFIG TEXT("AskForConfig") -#define REGSTR_VAL_ASKFORCONFIGFUNC TEXT("AskForConfigFunc") -#define REGSTR_VAL_WAITFORUNDOCK TEXT("WaitForUndock") -#define REGSTR_VAL_WAITFORUNDOCKFUNC TEXT("WaitForUndockFunc") -#define REGSTR_VAL_REMOVEROMOKAY TEXT("RemoveRomOkay") -#define REGSTR_VAL_REMOVEROMOKAYFUNC TEXT("RemoveRomOkayFunc") -#define REGSTR_VAL_CURCONFIG TEXT("CurrentConfig") -#define REGSTR_VAL_FRIENDLYNAME TEXT("FriendlyName") -#define REGSTR_VAL_CURRENTCONFIG TEXT("CurrentConfig") -#define REGSTR_VAL_MAP TEXT("Map") -#define REGSTR_VAL_ID TEXT("CurrentID") -#define REGSTR_VAL_DOCKED TEXT("CurrentDockedState") -#define REGSTR_VAL_CHECKSUM TEXT("CurrentChecksum") -#define REGSTR_VAL_HWDETECT TEXT("HardwareDetect") -#define REGSTR_VAL_INHIBITRESULTS TEXT("InhibitResults") -#define REGSTR_VAL_PROFILEFLAGS TEXT("ProfileFlags") -#define REGSTR_KEY_PCMCIA TEXT("PCMCIA\\") -#define REGSTR_KEY_PCUNKNOWN TEXT("UNKNOWN_MANUFACTURER") -#define REGSTR_VAL_PCSSDRIVER TEXT("Driver") -#define REGSTR_KEY_PCMTD TEXT("MTD-") -#define REGSTR_VAL_PCMTDRIVER TEXT("MTD") -#define REGSTR_VAL_HARDWAREID TEXT("HardwareID") -#define REGSTR_VAL_INSTALLER TEXT("Installer") -#define REGSTR_VAL_INSICON TEXT("Icon") -#define REGSTR_VAL_ENUMPROPPAGES TEXT("EnumPropPages") -#define REGSTR_VAL_BASICPROPERTIES TEXT("BasicProperties") -#define REGSTR_VAL_PRIVATEPROBLEM TEXT("PrivateProblem") -#define REGSTR_KEY_CURRENT TEXT("Current") -#define REGSTR_KEY_DEFAULT TEXT("Default") -#define REGSTR_KEY_MODES TEXT("Modes") -#define REGSTR_VAL_MODE TEXT("Mode") -#define REGSTR_VAL_BPP TEXT("BPP") -#define REGSTR_VAL_HRES TEXT("HRes") -#define REGSTR_VAL_VRES TEXT("VRes") -#define REGSTR_VAL_FONTSIZE TEXT("FontSize") -#define REGSTR_VAL_DRV TEXT("drv") -#define REGSTR_VAL_GRB TEXT("grb") -#define REGSTR_VAL_VDD TEXT("vdd") -#define REGSTR_VAL_VER TEXT("Ver") -#define REGSTR_VAL_MAXRES TEXT("MaxResolution") -#define REGSTR_VAL_DPMS TEXT("DPMS") -#define REGSTR_VAL_RESUMERESET TEXT("ResumeReset") -#define REGSTR_VAL_DESCRIPTION TEXT("Description") -#define REGSTR_KEY_SYSTEM TEXT("System") -#define REGSTR_KEY_USER TEXT("User") -#define REGSTR_VAL_DPI TEXT("dpi") -#define REGSTR_VAL_PCICOPTIONS TEXT("PCICOptions") -#ifndef NEC_98 -#define PCIC_DEFAULT_IRQMASK 0x4EB8 -#else -#define PCIC_DEFAULT_IRQMASK 0x1468 -#endif -#define PCIC_DEFAULT_NUMSOCKETS 0 -#define REGSTR_VAL_PCICIRQMAP TEXT("PCICIRQMap") -#define REGSTR_PATH_APPEARANCE TEXT("Control Panel\\Appearance") -#define REGSTR_PATH_LOOKSCHEMES TEXT("Control Panel\\Appearance\\Schemes") -#define REGSTR_VAL_CUSTOMCOLORS TEXT("CustomColors") -#define REGSTR_PATH_SCREENSAVE TEXT("Control Panel\\Desktop") -#define REGSTR_VALUE_USESCRPASSWORD TEXT("ScreenSaveUsePassword") -#define REGSTR_VALUE_SCRPASSWORD TEXT("ScreenSave_Data") -#define REGSTR_VALUE_LOWPOWERTIMEOUT TEXT("ScreenSaveLowPowerTimeout") -#define REGSTR_VALUE_POWEROFFTIMEOUT TEXT("ScreenSavePowerOffTimeout") -#define REGSTR_VALUE_LOWPOWERACTIVE TEXT("ScreenSaveLowPowerActive") -#define REGSTR_VALUE_POWEROFFACTIVE TEXT("ScreenSavePowerOffActive") -#define REGSTR_PATH_WINDOWSAPPLETS TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Applets") -#define REGSTR_PATH_SYSTRAY TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\SysTray") -#define REGSTR_VAL_SYSTRAYSVCS TEXT("Services") -#define REGSTR_VAL_SYSTRAYBATFLAGS TEXT("PowerFlags") -#define REGSTR_VAL_SYSTRAYPCCARDFLAGS TEXT("PCMCIAFlags") -#define REGSTR_PATH_NETWORK_USERSETTINGS TEXT("Network") -#define REGSTR_KEY_NETWORK_PERSISTENT TEXT("\\Persistent") -#define REGSTR_KEY_NETWORK_RECENT TEXT("\\Recent") -#define REGSTR_VAL_REMOTE_PATH TEXT("RemotePath") -#define REGSTR_VAL_USER_NAME TEXT("UserName") -#define REGSTR_VAL_PROVIDER_NAME TEXT("ProviderName") -#define REGSTR_VAL_CONNECTION_TYPE TEXT("ConnectionType") -#define REGSTR_VAL_UPGRADE TEXT("Upgrade") -#define REGSTR_KEY_LOGON TEXT("\\Logon") -#define REGSTR_VAL_MUSTBEVALIDATED TEXT("MustBeValidated") -#define REGSTR_VAL_RUNLOGINSCRIPT TEXT("ProcessLoginScript") -#define REGSTR_KEY_NETWORKPROVIDER TEXT("\\NetworkProvider") -#define REGSTR_PATH_NW32NETPROVIDER REGSTR_PATH_SERVICES TEXT("\\NWNP32" REGSTR_KEY_NETWORKPROVIDER -#define REGSTR_PATH_MS32NETPROVIDER REGSTR_PATH_SERVICES TEXT("\\MSNP32" REGSTR_KEY_NETWORKPROVIDER -#define REGSTR_VAL_AUTHENT_AGENT TEXT("AuthenticatingAgent") -#define REGSTR_VAL_PREFREDIR TEXT("PreferredRedir") -#define REGSTR_VAL_AUTOSTART TEXT("AutoStart") -#define REGSTR_VAL_AUTOLOGON TEXT("AutoLogon") -#define REGSTR_VAL_NETCARD TEXT("Netcard") -#define REGSTR_VAL_TRANSPORT TEXT("Transport") -#define REGSTR_VAL_DYNAMIC TEXT("Dynamic") -#define REGSTR_VAL_TRANSITION TEXT("Transition") -#define REGSTR_VAL_STATICDRIVE TEXT("StaticDrive") -#define REGSTR_VAL_LOADHI TEXT("LoadHi") -#define REGSTR_VAL_LOADRMDRIVERS TEXT("LoadRMDrivers") -#define REGSTR_VAL_SETUPN TEXT("SetupN") -#define REGSTR_VAL_SETUPNPATH TEXT("SetupNPath") -#define REGSTR_VAL_WRKGRP_FORCEMAPPING TEXT("WrkgrpForceMapping") -#define REGSTR_VAL_WRKGRP_REQUIRED TEXT("WrkgrpRequired") -#define REGSTR_PATH_CURRENT_CONTROL_SET TEXT("System\\CurrentControlSet\\Control") -#define REGSTR_VAL_CURRENT_USER TEXT("Current User") -#define REGSTR_PATH_PWDPROVIDER TEXT("System\\CurrentControlSet\\Control\\PwdProvider") -#define REGSTR_VAL_PWDPROVIDER_PATH TEXT("ProviderPath") -#define REGSTR_VAL_PWDPROVIDER_DESC TEXT("Description") -#define REGSTR_VAL_PWDPROVIDER_CHANGEPWD TEXT("ChangePassword") -#define REGSTR_VAL_PWDPROVIDER_CHANGEPWDHWND TEXT("ChangePasswordHwnd") -#define REGSTR_VAL_PWDPROVIDER_GETPWDSTATUS TEXT("GetPasswordStatus") -#define REGSTR_VAL_PWDPROVIDER_ISNP TEXT("NetworkProvider") -#define REGSTR_VAL_PWDPROVIDER_CHANGEORDER TEXT("ChangeOrder") -#define REGSTR_PATH_POLICIES TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Policies") -#define REGSTR_PATH_UPDATE TEXT("System\\CurrentControlSet\\Control\\Update") -#define REGSTR_VALUE_ENABLE TEXT("Enable") -#define REGSTR_VALUE_VERBOSE TEXT("Verbose") -#define REGSTR_VALUE_NETPATH TEXT("NetworkPath") -#define REGSTR_VALUE_DEFAULTLOC TEXT("UseDefaultNetLocation") -#define REGSTR_KEY_NETWORK TEXT("Network") -#define REGSTR_KEY_SYSTEM TEXT("System") -#define REGSTR_KEY_PRINTERS TEXT("Printers") -#define REGSTR_KEY_WINOLDAPP TEXT("WinOldApp") -#define REGSTR_VAL_NOFILESHARING TEXT("NoFileSharing") -#define REGSTR_VAL_NOPRINTSHARING TEXT("NoPrintSharing") -#define REGSTR_VAL_NOFILESHARINGCTRL TEXT("NoFileSharingControl") -#define REGSTR_VAL_NOPRINTSHARINGCTRL TEXT("NoPrintSharingControl") -#define REGSTR_VAL_HIDESHAREPWDS TEXT("HideSharePwds") -#define REGSTR_VAL_DISABLEPWDCACHING TEXT("DisablePwdCaching") -#define REGSTR_VAL_ALPHANUMPWDS TEXT("AlphanumPwds") -#define REGSTR_VAL_NETSETUP_DISABLE TEXT("NoNetSetup") -#define REGSTR_VAL_NETSETUP_NOCONFIGPAGE TEXT("NoNetSetupConfigPage") -#define REGSTR_VAL_NETSETUP_NOIDPAGE TEXT("NoNetSetupIDPage") -#define REGSTR_VAL_NETSETUP_NOSECURITYPAGE TEXT("NoNetSetupSecurityPage") -#define REGSTR_VAL_SYSTEMCPL_NOVIRTMEMPAGE TEXT("NoVirtMemPage") -#define REGSTR_VAL_SYSTEMCPL_NODEVMGRPAGE TEXT("NoDevMgrPage") -#define REGSTR_VAL_SYSTEMCPL_NOCONFIGPAGE TEXT("NoConfigPage") -#define REGSTR_VAL_SYSTEMCPL_NOFILESYSPAGE TEXT("NoFileSysPage") -#define REGSTR_VAL_DISPCPL_NODISPCPL TEXT("NoDispCPL") -#define REGSTR_VAL_DISPCPL_NOBACKGROUNDPAGE TEXT("NoDispBackgroundPage") -#define REGSTR_VAL_DISPCPL_NOSCRSAVPAGE TEXT("NoDispScrSavPage") -#define REGSTR_VAL_DISPCPL_NOAPPEARANCEPAGE TEXT("NoDispAppearancePage") -#define REGSTR_VAL_DISPCPL_NOSETTINGSPAGE TEXT("NoDispSettingsPage") -#define REGSTR_VAL_SECCPL_NOSECCPL TEXT("NoSecCPL") -#define REGSTR_VAL_SECCPL_NOPWDPAGE TEXT("NoPwdPage") -#define REGSTR_VAL_SECCPL_NOADMINPAGE TEXT("NoAdminPage") -#define REGSTR_VAL_SECCPL_NOPROFILEPAGE TEXT("NoProfilePage") -#define REGSTR_VAL_PRINTERS_HIDETABS TEXT("NoPrinterTabs") -#define REGSTR_VAL_PRINTERS_NODELETE TEXT("NoDeletePrinter") -#define REGSTR_VAL_PRINTERS_NOADD TEXT("NoAddPrinter") -#define REGSTR_VAL_WINOLDAPP_DISABLED TEXT("Disabled") -#define REGSTR_VAL_WINOLDAPP_NOREALMODE TEXT("NoRealMode") -#define REGSTR_VAL_NOENTIRENETWORK TEXT("NoEntireNetwork") -#define REGSTR_VAL_NOWORKGROUPCONTENTS TEXT("NoWorkgroupContents") -#define REGSTR_VAL_MINPWDLEN TEXT("MinPwdLen") -#define REGSTR_VAL_PWDEXPIRATION TEXT("PwdExpiration") -#define REGSTR_VAL_WIN31PROVIDER TEXT("Win31Provider") -#define REGSTR_VAL_DISABLEREGTOOLS TEXT("DisableRegistryTools") -#define REGSTR_PATH_WINLOGON TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Winlogon") -#define REGSTR_VAL_LEGALNOTICECAPTION TEXT("LegalNoticeCaption") -#define REGSTR_VAL_LEGALNOTICETEXT TEXT("LegalNoticeText") -#define REGSTR_VAL_RESTRICTRUN TEXT("RestrictRun") -#define REGSTR_KEY_POL_USERS TEXT("Users") -#define REGSTR_KEY_POL_COMPUTERS TEXT("Computers") -#define REGSTR_KEY_POL_USERGROUPS TEXT("UserGroups") -#define REGSTR_KEY_POL_DEFAULT TEXT(".default") -#define REGSTR_KEY_POL_USERGROUPDATA TEXT("GroupData\\UserGroups\\Priority") -#define REGSTR_PATH_TIMEZONE TEXT("System\\CurrentControlSet\\Control\\TimeZoneInformation") -#define REGSTR_VAL_TZBIAS TEXT("Bias") -#define REGSTR_VAL_TZDLTBIAS TEXT("DaylightBias") -#define REGSTR_VAL_TZSTDBIAS TEXT("StandardBias") -#define REGSTR_VAL_TZACTBIAS TEXT("ActiveTimeBias") -#define REGSTR_VAL_TZDLTFLAG TEXT("DaylightFlag") -#define REGSTR_VAL_TZSTDSTART TEXT("StandardStart") -#define REGSTR_VAL_TZDLTSTART TEXT("DaylightStart") -#define REGSTR_VAL_TZDLTNAME TEXT("DaylightName") -#define REGSTR_VAL_TZSTDNAME TEXT("StandardName") -#define REGSTR_VAL_TZNOCHANGESTART TEXT("NoChangeStart") -#define REGSTR_VAL_TZNOCHANGEEND TEXT("NoChangeEnd") -#define REGSTR_VAL_TZNOAUTOTIME TEXT("DisableAutoDaylightTimeSet") -#define REGSTR_PATH_FLOATINGPOINTPROCESSOR TEXT("HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor") -#define REGSTR_PATH_FLOATINGPOINTPROCESSOR0 TEXT("HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor\\0") -#define REGSTR_PATH_COMPUTRNAME TEXT("System\\CurrentControlSet\\Control\\ComputerName\\ComputerName") -#define REGSTR_VAL_COMPUTRNAME TEXT("ComputerName") -#define REGSTR_PATH_SHUTDOWN TEXT("System\\CurrentControlSet\\Control\\Shutdown") -#define REGSTR_VAL_FORCEREBOOT TEXT("ForceReboot") -#define REGSTR_VAL_SETUPPROGRAMRAN TEXT("SetupProgramRan") -#define REGSTR_VAL_DOES_POLLING TEXT("PollingSupportNeeded") -#define REGSTR_PATH_KNOWNDLLS TEXT("System\\CurrentControlSet\\Control\\SessionManager\\KnownDLLs") -#define REGSTR_PATH_KNOWN16DLLS TEXT("System\\CurrentControlSet\\Control\\SessionManager\\Known16DLLs") -#define REGSTR_PATH_CHECKVERDLLS TEXT("System\\CurrentControlSet\\Control\\SessionManager\\CheckVerDLLs") -#define REGSTR_PATH_WARNVERDLLS TEXT("System\\CurrentControlSet\\Control\\SessionManager\\WarnVerDLLs") -#define REGSTR_PATH_HACKINIFILE TEXT("System\\CurrentControlSet\\Control\\SessionManager\\HackIniFiles") -#define REGSTR_PATH_CHECKBADAPPS TEXT("System\\CurrentControlSet\\Control\\SessionManager\\CheckBadApps") -#define REGSTR_PATH_APPPATCH TEXT("System\\CurrentControlSet\\Control\\SessionManager\\AppPatches") -#define REGSTR_PATH_KNOWNVXDS TEXT("System\\CurrentControlSet\\Control\\SessionManager\\KnownVxDs") -#define REGSTR_VAL_UNINSTALLER_DISPLAYNAME TEXT("DisplayName") -#define REGSTR_VAL_UNINSTALLER_COMMANDLINE TEXT("UninstallString") -#define REGSTR_PATH_DESKTOP REGSTR_PATH_SCREENSAVE -#define REGSTR_PATH_MOUSE TEXT("Control Panel\\Mouse") -#define REGSTR_PATH_KEYBOARD TEXT("Control Panel\\Keyboard") -#define REGSTR_PATH_COLORS TEXT("Control Panel\\Colors") -#define REGSTR_PATH_SOUND TEXT("Control Panel\\Sound") -#define REGSTR_PATH_METRICS TEXT("Control Panel\\Desktop\\WindowMetrics") -#define REGSTR_PATH_ICONS TEXT("Control Panel\\Icons") -#define REGSTR_PATH_CURSORS TEXT("Control Panel\\Cursors") -#define REGSTR_PATH_CHECKDISK TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive") -#define REGSTR_PATH_CHECKDISKSET TEXT("Settings") -#define REGSTR_PATH_CHECKDISKUDRVS TEXT("NoUnknownDDErrDrvs") -#define REGSTR_PATH_FAULT TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Fault") -#define REGSTR_VAL_FAULT_LOGFILE TEXT("LogFile") -#define REGSTR_PATH_AEDEBUG TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug") -#define REGSTR_VAL_AEDEBUG_DEBUGGER TEXT("Debugger") -#define REGSTR_VAL_AEDEBUG_AUTO TEXT("Auto") -#define REGSTR_PATH_GRPCONV TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\GrpConv") -#define REGSTR_VAL_REGITEMDELETEMESSAGE TEXT("Removal Message") -#define REGSTR_PATH_LASTCHECK TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastCheck") -#define REGSTR_PATH_LASTOPTIMIZE TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastOptimize") -#define REGSTR_PATH_LASTBACKUP TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastBackup") -#define REGSTR_PATH_CHKLASTCHECK TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive\\LastCheck") -#define REGSTR_PATH_CHKLASTSURFAN TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive\\LastSurfaceAnalysis") -#define DTRESULTOK 0 -#define DTRESULTFIX 1 -#define DTRESULTPROB 2 -#define DTRESULTPART 3 -#define REGSTR_KEY_SHARES TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Network\\LanMan") -#define REGSTR_VAL_SHARES_FLAGS TEXT("Flags") -#define REGSTR_VAL_SHARES_TYPE TEXT("Type") -#define REGSTR_VAL_SHARES_PATH TEXT("Path") -#define REGSTR_VAL_SHARES_REMARK TEXT("Remark") -#define REGSTR_VAL_SHARES_RW_PASS TEXT("Parm1") -#define REGSTR_VAL_SHARES_RO_PASS TEXT("Parm2") -#define REGSTR_PATH_PRINT TEXT("System\\CurrentControlSet\\Control\\Print") -#define REGSTR_PATH_PRINTERS TEXT("System\\CurrentControlSet\\Control\\Print\\Printers") -#define REGSTR_PATH_PROVIDERS TEXT("System\\CurrentControlSet\\Control\\Print\\Providers") -#define REGSTR_PATH_MONITORS TEXT("System\\CurrentControlSet\\Control\\Print\\Monitors") -#define REGSTR_PATH_ENVIRONMENTS TEXT("System\\CurrentControlSet\\Control\\Print\\Environments") -#define REGSTR_VAL_START_ON_BOOT TEXT("StartOnBoot") -#define REGSTR_VAL_PRINTERS_MASK TEXT("PrintersMask") -#define REGSTR_VAL_DOS_SPOOL_MASK TEXT("DOSSpoolMask") -#define REGSTR_KEY_CURRENT_ENV TEXT("\\Windows 4.0") -#define REGSTR_KEY_DRIVERS TEXT("\\Drivers") -#define REGSTR_KEY_PRINT_PROC TEXT("\\Print Processors") -#define REGSTR_PATH_EVENTLABELS TEXT("AppEvents\\EventLabels") -#define REGSTR_PATH_SCHEMES TEXT("AppEvents\\Schemes") -#define REGSTR_PATH_APPS REGSTR_PATH_SCHEMES TEXT("\\Apps") -#define REGSTR_PATH_APPS_DEFAULT REGSTR_PATH_SCHEMES TEXT("\\Apps\\.Default") -#define REGSTR_PATH_NAMES REGSTR_PATH_SCHEMES TEXT("\\Names") -#define REGSTR_PATH_MULTIMEDIA REGSTR_PATH_SETUP TEXT("\\Multimedia") -#define REGSTR_PATH_MULTIMEDIA_AUDIO TEXT("Software\\Microsoft\\Multimedia\\Audio") -#define REGSTR_PATH_MEDIARESOURCES REGSTR_PATH_CURRENT_CONTROL_SET TEXT("\\MediaResources") -#define REGSTR_PATH_MEDIAPROPERTIES REGSTR_PATH_CURRENT_CONTROL_SET TEXT("\\MediaProperties") -#define REGSTR_PATH_PRIVATEPROPERTIES REGSTR_PATH_MEDIAPROPERTIES TEXT("\\PrivateProperties") -#define REGSTR_PATH_PUBLICPROPERTIES REGSTR_PATH_MEDIAPROPERTIES TEXT("\\PublicProperties") -#define REGSTR_PATH_JOYOEM REGSTR_PATH_PRIVATEPROPERTIES TEXT("\\Joystick\\OEM") -#define REGSTR_PATH_JOYCONFIG REGSTR_PATH_MEDIARESOURCES TEXT("\\Joystick") -#define REGSTR_KEY_JOYCURR TEXT("CurrentJoystickSettings") -#define REGSTR_KEY_JOYSETTINGS TEXT("JoystickSettings") -#define REGSTR_VAL_JOYUSERVALUES TEXT("JoystickUserValues") -#define REGSTR_VAL_JOYCALLOUT TEXT("JoystickCallout") -#define REGSTR_VAL_JOYNCONFIG TEXT("Joystick%dConfiguration") -#define REGSTR_VAL_JOYNOEMNAME TEXT("Joystick%dOEMName") -#define REGSTR_VAL_JOYNOEMCALLOUT TEXT("Joystick%dOEMCallout") -#define REGSTR_VAL_JOYOEMCALLOUT TEXT("OEMCallout") -#define REGSTR_VAL_JOYOEMNAME TEXT("OEMName") -#define REGSTR_VAL_JOYOEMDATA TEXT("OEMData") -#define REGSTR_VAL_JOYOEMXYLABEL TEXT("OEMXYLabel") -#define REGSTR_VAL_JOYOEMZLABEL TEXT("OEMZLabel") -#define REGSTR_VAL_JOYOEMRLABEL TEXT("OEMRLabel") -#define REGSTR_VAL_JOYOEMPOVLABEL TEXT("OEMPOVLabel") -#define REGSTR_VAL_JOYOEMULABEL TEXT("OEMULabel") -#define REGSTR_VAL_JOYOEMVLABEL TEXT("OEMVLabel") -#define REGSTR_VAL_JOYOEMTESTMOVEDESC TEXT("OEMTestMoveDesc") -#define REGSTR_VAL_JOYOEMTESTBUTTONDESC TEXT("OEMTestButtonDesc") -#define REGSTR_VAL_JOYOEMTESTMOVECAP TEXT("OEMTestMoveCap") -#define REGSTR_VAL_JOYOEMTESTBUTTONCAP TEXT("OEMTestButtonCap") -#define REGSTR_VAL_JOYOEMTESTWINCAP TEXT("OEMTestWinCap") -#define REGSTR_VAL_JOYOEMCALCAP TEXT("OEMCalCap") -#define REGSTR_VAL_JOYOEMCALWINCAP TEXT("OEMCalWinCap") -#define REGSTR_VAL_JOYOEMCAL1 TEXT("OEMCal1") -#define REGSTR_VAL_JOYOEMCAL2 TEXT("OEMCal2") -#define REGSTR_VAL_JOYOEMCAL3 TEXT("OEMCal3") -#define REGSTR_VAL_JOYOEMCAL4 TEXT("OEMCal4") -#define REGSTR_VAL_JOYOEMCAL5 TEXT("OEMCal5") -#define REGSTR_VAL_JOYOEMCAL6 TEXT("OEMCal6") -#define REGSTR_VAL_JOYOEMCAL7 TEXT("OEMCal7") -#define REGSTR_VAL_JOYOEMCAL8 TEXT("OEMCal8") -#define REGSTR_VAL_JOYOEMCAL9 TEXT("OEMCal9") -#define REGSTR_VAL_JOYOEMCAL10 TEXT("OEMCal10") -#define REGSTR_VAL_JOYOEMCAL11 TEXT("OEMCal11") -#define REGSTR_VAL_JOYOEMCAL12 TEXT("OEMCal12") -#ifndef NEC_98 -#define REGSTR_KEY_ISAENUM TEXT("ISAPnP") -#define REGSTR_KEY_EISAENUM TEXT("EISA") -#define REGSTR_VAL_EISA_RANGES TEXT("EISARanges") -#define REGSTR_VAL_EISA_FUNCTIONS TEXT("EISAFunctions") -#define REGSTR_VAL_EISA_FUNCTIONS_MASK TEXT("EISAFunctionsMask") -#define REGSTR_VAL_EISA_FLAGS TEXT("EISAFlags") -#define REGSTR_VAL_EISA_SIMULATE_INT15 TEXT("EISASimulateInt15") -#else -#define REGSTR_KEY_ISAENUM TEXT("C98PnP") -#define REGSTR_KEY_EISAENUM TEXT("NESA") -#define REGSTR_VAL_EISA_RANGES TEXT("NESARanges") -#define REGSTR_VAL_EISA_FUNCTIONS TEXT("NESAFunctions") -#define REGSTR_VAL_EISA_FUNCTIONS_MASK TEXT("NESAFunctionsMask") -#define REGSTR_VAL_EISA_FLAGS TEXT("NESAFlags") -#define REGSTR_VAL_EISA_SIMULATE_INT15 TEXT("NESASimulateInt15") -#endif -typedef struct _DSKTLSYSTEMTIME { - WORD wYear; - WORD wMonth; - WORD wDayOfWeek; - WORD wDay; - WORD wHour; - WORD wMinute; - WORD wSecond; - WORD wMilliseconds; - WORD wResult; -} DSKTLSYSTEMTIME,*PDSKTLSYSTEMTIME,*LPDSKTLSYSTEMTIME; -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/richedit.h b/winsup/w32api/include/richedit.h deleted file mode 100644 index 67c159bc8..000000000 --- a/winsup/w32api/include/richedit.h +++ /dev/null @@ -1,404 +0,0 @@ -#ifndef _RICHEDIT_H -#define _RICHEDIT_H -#ifdef __cplusplus -extern "C" { -#endif -#pragma pack(push,4) - -#define RICHEDIT_CLASS "RichEdit20A" -#define CF_RTF TEXT("Rich Text Format") -#define CF_RTFNOOBJS TEXT("Rich Text Format Without Objects") -#define CF_RETEXTOBJ TEXT("RichEdit Text and Objects") -#define CFM_BOLD 1 -#define CFM_ITALIC 2 -#define CFM_UNDERLINE 4 -#define CFM_STRIKEOUT 8 -#define CFM_PROTECTED 16 -#define CFM_LINK 32 -#define CFM_SIZE 0x80000000 -#define CFM_COLOR 0x40000000 -#define CFM_FACE 0x20000000 -#define CFM_OFFSET 0x10000000 -#define CFM_CHARSET 0x08000000 -#define CFM_SUBSCRIPT 0x00030000 -#define CFM_SUPERSCRIPT 0x00030000 -#define CFM_EFFECTS (CFM_BOLD | CFM_ITALIC | CFM_UNDERLINE | CFM_COLOR | CFM_STRIKEOUT | CFE_PROTECTED | CFM_LINK) -#define CFE_BOLD 1 -#define CFE_ITALIC 2 -#define CFE_UNDERLINE 4 -#define CFE_STRIKEOUT 8 -#define CFE_PROTECTED 16 -#define CFE_AUTOCOLOR 0x40000000 -#define CFE_SUBSCRIPT 0x00010000 -#define CFE_SUPERSCRIPT 0x00020000 -#define IMF_FORCENONE 1 -#define IMF_FORCEENABLE 2 -#define IMF_FORCEDISABLE 4 -#define IMF_CLOSESTATUSWINDOW 8 -#define IMF_VERTICAL 32 -#define IMF_FORCEACTIVE 64 -#define IMF_FORCEINACTIVE 128 -#define IMF_FORCEREMEMBER 256 -#define SEL_EMPTY 0 -#define SEL_TEXT 1 -#define SEL_OBJECT 2 -#define SEL_MULTICHAR 4 -#define SEL_MULTIOBJECT 8 -#define MAX_TAB_STOPS 32 -#define PFM_ALIGNMENT 8 -#define PFM_NUMBERING 32 -#define PFM_OFFSET 4 -#define PFM_OFFSETINDENT 0x80000000 -#define PFM_RIGHTINDENT 2 -#define PFM_STARTINDENT 1 -#define PFM_TABSTOPS 16 -#define PFN_BULLET 1 -#define PFA_LEFT 1 -#define PFA_RIGHT 2 -#define PFA_CENTER 3 -#define SF_TEXT 1 -#define SF_RTF 2 -#define SF_RTFNOOBJS 3 -#define SF_TEXTIZED 4 -#define SF_UNICODE 16 -#define SF_USECODEPAGE 32 -#define SF_NCRFORNONASCII 64 -#define SF_RTFVAL 0x0700 -#define SFF_PWD 0x0800 -#define SFF_KEEPDOCINFO 0x1000 -#define SFF_PERSISTVIEWSCALE 0x2000 -#define SFF_PLAINRTF 0x4000 -#define SFF_SELECTION 0x8000 -#define WB_CLASSIFY 3 -#define WB_MOVEWORDLEFT 4 -#define WB_MOVEWORDRIGHT 5 -#define WB_LEFTBREAK 6 -#define WB_RIGHTBREAK 7 -#define WB_MOVEWORDPREV 4 -#define WB_MOVEWORDNEXT 5 -#define WB_PREVBREAK 6 -#define WB_NEXTBREAK 7 -#define WBF_WORDWRAP 16 -#define WBF_WORDBREAK 32 -#define WBF_OVERFLOW 64 -#define WBF_LEVEL1 128 -#define WBF_LEVEL2 256 -#define WBF_CUSTOM 512 -#define ES_DISABLENOSCROLL 8192 -#define ES_EX_NOCALLOLEINIT 16777216 -#define ES_NOIME 524288 -#define ES_SAVESEL 32768 -#define ES_SELFIME 262144 -#define ES_SUNKEN 16384 -#define ES_VERTICAL 4194304 -#define ES_SELECTIONBAR 16777216 -#define EM_CANPASTE (WM_USER+50) -#define EM_DISPLAYBAND (WM_USER+51) -#define EM_EXGETSEL (WM_USER+52) -#define EM_EXLIMITTEXT (WM_USER+53) -#define EM_EXLINEFROMCHAR (WM_USER+54) -#define EM_EXSETSEL (WM_USER+55) -#define EM_FINDTEXT (WM_USER+56) -#define EM_FORMATRANGE (WM_USER+57) -#define EM_GETCHARFORMAT (WM_USER+58) -#define EM_GETEVENTMASK (WM_USER+59) -#define EM_GETOLEINTERFACE (WM_USER+60) -#define EM_GETPARAFORMAT (WM_USER+61) -#define EM_GETSELTEXT (WM_USER+62) -#define EM_HIDESELECTION (WM_USER+63) -#define EM_PASTESPECIAL (WM_USER+64) -#define EM_REQUESTRESIZE (WM_USER+65) -#define EM_SELECTIONTYPE (WM_USER+66) -#define EM_SETBKGNDCOLOR (WM_USER+67) -#define EM_SETCHARFORMAT (WM_USER+68) -#define EM_SETEVENTMASK (WM_USER+69) -#define EM_SETOLECALLBACK (WM_USER+70) -#define EM_SETPARAFORMAT (WM_USER+71) -#define EM_SETTARGETDEVICE (WM_USER+72) -#define EM_STREAMIN (WM_USER+73) -#define EM_STREAMOUT (WM_USER+74) -#define EM_GETTEXTRANGE (WM_USER+75) -#define EM_FINDWORDBREAK (WM_USER+76) -#define EM_SETOPTIONS (WM_USER+77) -#define EM_GETOPTIONS (WM_USER+78) -#define EM_FINDTEXTEX (WM_USER+79) -#define EM_GETWORDBREAKPROCEX (WM_USER+80) -#define EM_SETWORDBREAKPROCEX (WM_USER+81) -/* RichEdit 2.0 messages */ -#define EM_SETUNDOLIMIT (WM_USER+82) -#define EM_REDO (WM_USER+84) -#define EM_CANREDO (WM_USER+85) -#define EM_GETUNDONAME (WM_USER+86) -#define EM_GETREDONAME (WM_USER+87) -#define EM_STOPGROUPTYPING (WM_USER+88) -#define EM_GETTEXTLENGTHEX (WM_USER+95) -#define EM_AUTOURLDETECT (WM_USER+91) -#define EM_SETLANGOPTIONS (WM_USER+120) -#define EM_GETLANGOPTIONS (WM_USER+121) -#define EM_GETIMECOMPMODE (WM_USER+122) -#define EM_SETTYPOGRAPHYOPTIONS (WM_USER+202) -#define EM_GETTYPOGRAPHYOPTIONS (WM_USER+203) -#define EM_SETFONTSIZE (WM_USER+223) -#define EM_GETZOOM (WM_USER+224) -#define EM_SETZOOM (WM_USER+225) - -#define EN_CORRECTTEXT 1797 -#define EN_DROPFILES 1795 -#define EN_IMECHANGE 1799 -#define EN_LINK 1803 -#define EN_MSGFILTER 1792 -#define EN_OLEOPFAILED 1801 -#define EN_PROTECTED 1796 -#define EN_REQUESTRESIZE 1793 -#define EN_SAVECLIPBOARD 1800 -#define EN_SELCHANGE 1794 -#define EN_STOPNOUNDO 1798 -#define ENM_NONE 0 -#define ENM_CHANGE 1 -#define ENM_CORRECTTEXT 4194304 -#define ENM_DROPFILES 1048576 -#define ENM_KEYEVENTS 65536 -#define ENM_MOUSEEVENTS 131072 -#define ENM_PROTECTED 2097152 -#define ENM_REQUESTRESIZE 262144 -#define ENM_SCROLL 4 -#define ENM_SELCHANGE 524288 -#define ENM_UPDATE 2 -#define ENM_LINK 67108864 -#define ECO_AUTOWORDSELECTION 1 -#define ECO_AUTOVSCROLL 64 -#define ECO_AUTOHSCROLL 128 -#define ECO_NOHIDESEL 256 -#define ECO_READONLY 2048 -#define ECO_WANTRETURN 4096 -#define ECO_SAVESEL 0x8000 -#define ECO_SELECTIONBAR 0x1000000 -#define ECO_VERTICAL 0x400000 -#define ECOOP_SET 1 -#define ECOOP_OR 2 -#define ECOOP_AND 3 -#define ECOOP_XOR 4 -#define SCF_DEFAULT 0 -#define SCF_SELECTION 1 -#define SCF_WORD 2 -#define SCF_ALL 4 -#define SCF_USEUIRULES 8 -#define yHeightCharPtsMost 1638 -#define lDefaultTab 720 - -typedef struct _charformat { - UINT cbSize; - DWORD dwMask; - DWORD dwEffects; - LONG yHeight; - LONG yOffset; - COLORREF crTextColor; - BYTE bCharSet; - BYTE bPitchAndFamily; - char szFaceName[LF_FACESIZE]; -} CHARFORMATA; -typedef struct _charformatw { - UINT cbSize; - DWORD dwMask; - DWORD dwEffects; - LONG yHeight; - LONG yOffset; - COLORREF crTextColor; - BYTE bCharSet; - BYTE bPitchAndFamily; - WCHAR szFaceName[LF_FACESIZE]; -} CHARFORMATW; -typedef struct _charformat2a { - UINT cbSize; - DWORD dwMask; - DWORD dwEffects; - LONG yHeight; - LONG yOffset; - COLORREF crTextColor; - BYTE bCharSet; - BYTE bPitchAndFamily; - char szFaceName[LF_FACESIZE]; - WORD wWeight; - SHORT sSpacing; - COLORREF crBackColor; - LCID lcid; - DWORD dwReserved; - SHORT sStyle; - WORD wKerning; - BYTE bUnderlineType; - BYTE bAnimation; - BYTE bRevAuthor; -} CHARFORMAT2A; -typedef struct _charformat2w { - UINT cbSize; - DWORD dwMask; - DWORD dwEffects; - LONG yHeight; - LONG yOffset; - COLORREF crTextColor; - BYTE bCharSet; - BYTE bPitchAndFamily; - WCHAR szFaceName[LF_FACESIZE]; - WORD wWeight; - SHORT sSpacing; - COLORREF crBackColor; - LCID lcid; - DWORD dwReserved; - SHORT sStyle; - WORD wKerning; - BYTE bUnderlineType; - BYTE bAnimation; - BYTE bRevAuthor; -} CHARFORMAT2W; -typedef struct _charrange { - LONG cpMin; - LONG cpMax; -} CHARRANGE; -typedef struct _compcolor { - COLORREF crText; - COLORREF crBackground; - DWORD dwEffects; -} COMPCOLOR; -typedef DWORD(CALLBACK *EDITSTREAMCALLBACK)(DWORD,PBYTE,LONG,LONG*); -typedef struct _editstream { - DWORD dwCookie; - DWORD dwError; - EDITSTREAMCALLBACK pfnCallback; -} EDITSTREAM; -typedef struct _encorrecttext { - NMHDR nmhdr; - CHARRANGE chrg; - WORD seltyp; -} ENCORRECTTEXT; -typedef struct _endropfiles { - NMHDR nmhdr; - HANDLE hDrop; - LONG cp; - BOOL fProtected; -} ENDROPFILES; -typedef struct _enlink { - NMHDR nmhdr; - UINT msg; - WPARAM wParam; - LPARAM lParam; - CHARRANGE chrg; -} ENLINK; -typedef struct { - NMHDR nmhdr; - LONG iob; - LONG lOper; - HRESULT hr; -} ENOLEOPFAILED; -typedef struct _enprotected { - NMHDR nmhdr; - UINT msg; - WPARAM wParam; - LPARAM lParam; - CHARRANGE chrg; -} ENPROTECTED,*LPENPROTECTED; -typedef struct _ensaveclipboard { - NMHDR nmhdr; - LONG cObjectCount; - LONG cch; -} ENSAVECLIPBOARD; -typedef struct _findtextA { - CHARRANGE chrg; - LPSTR lpstrText; -} FINDTEXTA; -typedef struct _findtextW { - CHARRANGE chrg; - LPWSTR lpstrText; -} FINDTEXTW; -typedef struct _findtextexA { - CHARRANGE chrg; - LPSTR lpstrText; - CHARRANGE chrgText; -} FINDTEXTEXA; -typedef struct _findtextexW { - CHARRANGE chrg; - LPWSTR lpstrText; - CHARRANGE chrgText; -} FINDTEXTEXW; -typedef struct _formatrange { - HDC hdc; - HDC hdcTarget; - RECT rc; - RECT rcPage; - CHARRANGE chrg; -} FORMATRANGE; -typedef struct _msgfilter { - NMHDR nmhdr; - UINT msg; - WPARAM wParam; - LPARAM lParam; -} MSGFILTER; -typedef struct _paraformat { - UINT cbSize; - DWORD dwMask; - WORD wNumbering; - WORD wReserved; - LONG dxStartIndent; - LONG dxRightIndent; - LONG dxOffset; - WORD wAlignment; - SHORT cTabCount; - LONG rgxTabs[MAX_TAB_STOPS]; -} PARAFORMAT; -typedef struct _selchange { - NMHDR nmhdr; - CHARRANGE chrg; - WORD seltyp; -} SELCHANGE; -typedef struct _textrange { - CHARRANGE chrg; - LPSTR lpstrText; -} TEXTRANGEA; -typedef struct _textrangew { - CHARRANGE chrg; - LPWSTR lpstrText; -} TEXTRANGEW; -typedef struct _reqresize { - NMHDR nmhdr; - RECT rc; -} REQRESIZE; -typedef struct _repastespecial { - DWORD dwAspect; - DWORD dwParam; -} REPASTESPECIAL; -typedef struct _punctuation { - UINT iSize; - LPSTR szPunctuation; -} PUNCTUATION; -typedef LONG (*EDITWORDBREAKPROCEX)(char*,LONG,BYTE,INT); -/* Defines for EM_SETTYPOGRAPHYOPTIONS */ -#define TO_ADVANCEDTYPOGRAPHY 1 -#define TO_SIMPLELINEBREAK 2 -/* Defines for GETTEXTLENGTHEX */ -#define GTL_DEFAULT 0 -#define GTL_USECRLF 1 -#define GTL_PRECISE 2 -#define GTL_CLOSE 4 -#define GTL_NUMCHARS 8 -#define GTL_NUMBYTES 16 -typedef struct _gettextlengthex { - DWORD flags; - UINT codepage; -} GETTEXTLENGTHEX; -#ifdef UNICODE -typedef CHARFORMATW CHARFORMAT; -typedef CHARFORMAT2W CHARFORMAT2; -typedef FINDTEXTW FINDTEXT; -typedef FINDTEXTEXW FINDTEXTEX; -typedef TEXTRANGEW TEXTRANGE; -#else -typedef CHARFORMATA CHARFORMAT; -typedef CHARFORMAT2A CHARFORMAT2; -typedef FINDTEXTA FINDTEXT; -typedef FINDTEXTEXA FINDTEXTEX; -typedef TEXTRANGEA TEXTRANGE; -#endif -#pragma pack(pop) -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/richole.h b/winsup/w32api/include/richole.h deleted file mode 100644 index 90f390bde..000000000 --- a/winsup/w32api/include/richole.h +++ /dev/null @@ -1,103 +0,0 @@ -#ifndef _RICHOLE_H -#define _RICHOLE_H -#ifdef __cplusplus -extern "C" { -#endif -#pragma pack(push,4) -#define REO_GETOBJ_NO_INTERFACES 0 -#define REO_GETOBJ_POLEOBJ 1 -#define REO_GETOBJ_PSTG 2 -#define REO_GETOBJ_POLESITE 4 -#define REO_GETOBJ_ALL_INTERFACES 7 -#define REO_CP_SELECTION ((ULONG)-1) -#define REO_IOB_SELECTION ((ULONG)-1) -#define REO_IOB_USE_CP ((ULONG)-2) -#define REO_NULL 0 -#define REO_READWRITEMASK 0x3FL -#define REO_DONTNEEDPALETTE 32 -#define REO_BLANK 16 -#define REO_DYNAMICSIZE 8 -#define REO_INVERTEDSELECT 4 -#define REO_BELOWBASELINE 2 -#define REO_RESIZABLE 1 -#define REO_LINK 0x80000000 -#define REO_STATIC 0x40000000 -#define REO_SELECTED 0x08000000 -#define REO_OPEN 0x4000000 -#define REO_INPLACEACTIVE 0x2000000 -#define REO_HILITED 0x1000000 -#define REO_LINKAVAILABLE 0x800000 -#define REO_GETMETAFILE 0x400000 -#define RECO_PASTE 0 -#define RECO_DROP 1 -#define RECO_COPY 2 -#define RECO_CUT 3 -#define RECO_DRAG 4 - -extern const GUID IID_IRichEditOle; -extern const GUID IID_IRichEditOleCallback; -#ifndef INITGUID -typedef struct _reobject { - DWORD cbStruct; - LONG cp; - CLSID clsid; - LPOLEOBJECT poleobj; - LPSTORAGE pstg; - LPOLECLIENTSITE polesite; - SIZEL sizel; - DWORD dvaspect; - DWORD dwFlags; - DWORD dwUser; -} REOBJECT; - -#undef INTERFACE -#define INTERFACE IRichEditOle -DECLARE_INTERFACE_(IRichEditOle, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClientSite)(THIS_ LPOLECLIENTSITE*) PURE; - STDMETHOD_(LONG,GetObjectCount)(THIS) PURE; - STDMETHOD_(LONG,GetLinkCount)(THIS) PURE; - STDMETHOD(GetObject)(THIS_ LONG, REOBJECT*,DWORD) PURE; - STDMETHOD(InsertObject)(THIS_ REOBJECT*) PURE; - STDMETHOD(ConvertObject)(THIS_ LONG,REFCLSID,LPCSTR) PURE; - STDMETHOD(ActivateAs)(THIS_ REFCLSID,REFCLSID) PURE; - STDMETHOD(SetHostNames)(THIS_ LPCSTR,LPCSTR) PURE; - STDMETHOD(SetLinkAvailable)(THIS_ LONG,BOOL) PURE; - STDMETHOD(SetDvaspect)(THIS_ LONG,DWORD) PURE; - STDMETHOD(HandsOffStorage)(THIS_ LONG) PURE; - STDMETHOD(SaveCompleted)(THIS_ LONG,LPSTORAGE) PURE; - STDMETHOD(InPlaceDeactivate)(THIS) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(GetClipboardData)(THIS_ CHARRANGE*,DWORD,LPDATAOBJECT*) PURE; - STDMETHOD(ImportDataObject)(THIS_ LPDATAOBJECT,CLIPFORMAT,HGLOBAL) PURE; -}; -typedef IRichEditOle *LPRICHEDITOLE; - -#undef INTERFACE -#define INTERFACE IRichEditOleCallback -DECLARE_INTERFACE_(IRichEditOleCallback, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetNewStorage)(THIS_ LPSTORAGE*) PURE; - STDMETHOD(GetInPlaceContext)(THIS_ LPOLEINPLACEFRAME*,LPOLEINPLACEUIWINDOW*,LPOLEINPLACEFRAMEINFO) PURE; - STDMETHOD(ShowContainerUI)(THIS_ BOOL) PURE; - STDMETHOD(QueryInsertObject)(THIS_ LPCLSID,LPSTORAGE,LONG) PURE; - STDMETHOD(DeleteObject)(THIS_ LPOLEOBJECT) PURE; - STDMETHOD(QueryAcceptData) (THIS_ LPDATAOBJECT,CLIPFORMAT*,DWORD,BOOL,HGLOBAL) PURE; - STDMETHOD(ContextSensitiveHelp) (THIS_ BOOL) PURE; - STDMETHOD(GetClipboardData) (THIS_ CHARRANGE*,DWORD,LPDATAOBJECT*) PURE; - STDMETHOD(GetDragDropEffect) (THIS_ BOOL,DWORD,PDWORD) PURE; - STDMETHOD(GetContextMenu) (THIS_ WORD,LPOLEOBJECT,CHARRANGE*,HMENU*) PURE; -}; -typedef IRichEditOleCallback FAR * LPRICHEDITOLECALLBACK; -#endif -#pragma pack(pop) -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/rpc.h b/winsup/w32api/include/rpc.h deleted file mode 100644 index 12f5fd030..000000000 --- a/winsup/w32api/include/rpc.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef _RPC_H -#define _RPC_H -#ifndef RPC_NO_WINDOWS_H -#include -#endif -#ifdef __cplusplus -extern "C" { -#endif -#define __RPC_WIN32__ -#ifndef _WIN95 -#define __RPC_NT__ -#define RPC_UNICODE_SUPPORTED -#endif - -#ifndef __MIDL_USER_DEFINED -#define midl_user_allocate MIDL_user_allocate -#define midl_user_free MIDL_user_free -#define __MIDL_USER_DEFINED -#endif -#define RPC_UNICODE_SUPPORTED -#define __RPC_FAR -#define __RPC_API __stdcall -#define __RPC_USER __stdcall -#define __RPC_STUB __stdcall -#define RPC_ENTRY __stdcall -typedef void *I_RPC_HANDLE; -typedef long RPC_STATUS; - -#include -#include -#include - -#include - -/* SEH is not supported */ -#if 0 -#include -#define RpcTryExcept __try { -#define RpcExcept(x) } __except (x) { -#define RpcEndExcept } -#define RpcTryFinally __try { -#define RpcFinally } __finally { -#define RpcEndFinally } -#define RpcExceptionCode() GetExceptionCode() -#define RpcAbnormalTermination() AbnormalTermination() -#endif /* 0 */ - -RPC_STATUS RPC_ENTRY RpcImpersonateClient(RPC_BINDING_HANDLE); -RPC_STATUS RPC_ENTRY RpcRevertToSelf(void); -long RPC_ENTRY I_RpcMapWin32Status(RPC_STATUS); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/rpcdce.h b/winsup/w32api/include/rpcdce.h deleted file mode 100644 index 723061649..000000000 --- a/winsup/w32api/include/rpcdce.h +++ /dev/null @@ -1,384 +0,0 @@ -#ifndef _RPCDCE_H -#define _RPCDCE_H - -#ifdef __cplusplus -extern "C" { -#endif -#include - -#define IN -#define OUT -#ifndef OPTIONAL -#define OPTIONAL -#endif -#define uuid_t UUID -#define rpc_binding_handle_t RPC_BINDING_HANDLE -#define rpc_binding_vector_t RPC_BINDING_VECTOR -#define uuid_vector_t UUID_VECTOR -#define RPC_C_BINDING_INFINITE_TIMEOUT 10 -#define RPC_C_BINDING_MIN_TIMEOUT 0 -#define RPC_C_BINDING_DEFAULT_TIMEOUT 5 -#define RPC_C_BINDING_MAX_TIMEOUT 9 -#define RPC_C_CANCEL_INFINITE_TIMEOUT (-1) -#define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234 -#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10 -#define RPC_C_BIND_TO_ALL_NICS 1 -#define RPC_C_USE_INTERNET_PORT 1 -#define RPC_C_USE_INTRANET_PORT 2 -#define RPC_MGR_EPV void -#define RPC_C_STATS_CALLS_IN 0 -#define RPC_C_STATS_CALLS_OUT 1 -#define RPC_C_STATS_PKTS_IN 2 -#define RPC_C_STATS_PKTS_OUT 3 -#define RPC_IF_AUTOLISTEN 0x0001 -#define RPC_IF_OLE 2 -#define RPC_C_MGMT_INQ_IF_IDS 0 -#define RPC_C_MGMT_INQ_PRINC_NAME 1 -#define RPC_C_MGMT_INQ_STATS 2 -#define RPC_C_MGMT_IS_SERVER_LISTEN 3 -#define RPC_C_MGMT_STOP_SERVER_LISTEN 4 -#define RPC_C_EP_ALL_ELTS 0 -#define RPC_C_EP_MATCH_BY_IF 1 -#define RPC_C_EP_MATCH_BY_OBJ 2 -#define RPC_C_EP_MATCH_BY_BOTH 3 -#define RPC_C_VERS_ALL 1 -#define RPC_C_VERS_COMPATIBLE 2 -#define RPC_C_VERS_EXACT 3 -#define RPC_C_VERS_MAJOR_ONLY 4 -#define RPC_C_VERS_UPTO 5 -#define DCE_C_ERROR_STRING_LEN 256 -#define RPC_C_PARM_MAX_PACKET_LENGTH 1 -#define RPC_C_PARM_BUFFER_LENGTH 2 -#define RPC_C_AUTHN_LEVEL_DEFAULT 0 -#define RPC_C_AUTHN_LEVEL_NONE 1 -#define RPC_C_AUTHN_LEVEL_CONNECT 2 -#define RPC_C_AUTHN_LEVEL_CALL 3 -#define RPC_C_AUTHN_LEVEL_PKT 4 -#define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5 -#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6 -#define RPC_C_IMP_LEVEL_ANONYMOUS 1 -#define RPC_C_IMP_LEVEL_IDENTIFY 2 -#define RPC_C_IMP_LEVEL_IMPERSONATE 3 -#define RPC_C_IMP_LEVEL_DELEGATE 4 -#define RPC_C_QOS_IDENTITY_STATIC 0 -#define RPC_C_QOS_IDENTITY_DYNAMIC 1 -#define RPC_C_QOS_CAPABILITIES_DEFAULT 0 -#define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH 1 -#define RPC_C_PROTECT_LEVEL_DEFAULT(RPC_C_AUTHN_LEVEL_DEFAULT) -#define RPC_C_PROTECT_LEVEL_NONE(RPC_C_AUTHN_LEVEL_NONE) -#define RPC_C_PROTECT_LEVEL_CONNECT(RPC_C_AUTHN_LEVEL_CONNECT) -#define RPC_C_PROTECT_LEVEL_CALL(RPC_C_AUTHN_LEVEL_CALL) -#define RPC_C_PROTECT_LEVEL_PKT(RPC_C_AUTHN_LEVEL_PKT) -#define RPC_C_PROTECT_LEVEL_PKT_INTEGRITY(RPC_C_AUTHN_LEVEL_PKT_INTEGRITY) -#define RPC_C_PROTECT_LEVEL_PKT_PRIVACY(RPC_C_AUTHN_LEVEL_PKT_PRIVACY) -#define RPC_C_AUTHN_NONE 0 -#define RPC_C_AUTHN_DCE_PRIVATE 1 -#define RPC_C_AUTHN_DCE_PUBLIC 2 -#define RPC_C_AUTHN_DEC_PUBLIC 4 -#define RPC_C_AUTHN_WINNT 10 -#define RPC_C_AUTHN_DEFAULT 0xFFFFFFFF -#define RPC_C_SECURITY_QOS_VERSION L -#define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1 -#define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2 -#define RPC_C_AUTHZ_NONE 0 -#define RPC_C_AUTHZ_NAME 1 -#define RPC_C_AUTHZ_DCE 2 -#define RPC_C_AUTHZ_DEFAULT 0xFFFFFFFF - -typedef I_RPC_HANDLE RPC_BINDING_HANDLE; -typedef RPC_BINDING_HANDLE handle_t; -typedef struct _RPC_BINDING_VECTOR { - unsigned long Count; - RPC_BINDING_HANDLE BindingH[1]; -} RPC_BINDING_VECTOR; -typedef struct _UUID_VECTOR { - unsigned long Count; - UUID *Uuid[1]; -} UUID_VECTOR; -typedef void *RPC_IF_HANDLE; -typedef struct _RPC_IF_ID { - UUID Uuid; - unsigned short VersMajor; - unsigned short VersMinor; -} RPC_IF_ID; -typedef struct _RPC_POLICY { - unsigned int Length ; - unsigned long EndpointFlags ; - unsigned long NICFlags ; -} RPC_POLICY,*PRPC_POLICY ; -typedef void __RPC_USER RPC_OBJECT_INQ_FN(UUID*,UUID*,RPC_STATUS*); -typedef RPC_STATUS RPC_IF_CALLBACK_FN(RPC_IF_HANDLE,void*); -typedef struct { - unsigned int Count; - unsigned long Stats[1]; -} RPC_STATS_VECTOR; -typedef struct { - unsigned long Count; - RPC_IF_ID*IfId[1]; -} RPC_IF_ID_VECTOR; -typedef void *RPC_AUTH_IDENTITY_HANDLE; -typedef void *RPC_AUTHZ_HANDLE; -typedef struct _RPC_SECURITY_QOS { - unsigned long Version; - unsigned long Capabilities; - unsigned long IdentityTracking; - unsigned long ImpersonationType; -} RPC_SECURITY_QOS,*PRPC_SECURITY_QOS; -typedef struct _SEC_WINNT_AUTH_IDENTITY_W { - unsigned short *User; - unsigned long UserLength; - unsigned short *Domain; - unsigned long DomainLength; - unsigned short *Password; - unsigned long PasswordLength; - unsigned long Flags; -} SEC_WINNT_AUTH_IDENTITY_W,*PSEC_WINNT_AUTH_IDENTITY_W; -typedef struct _SEC_WINNT_AUTH_IDENTITY_A { - unsigned char *User; - unsigned long UserLength; - unsigned char *Domain; - unsigned long DomainLength; - unsigned char *Password; - unsigned long PasswordLength; - unsigned long Flags; -} SEC_WINNT_AUTH_IDENTITY_A,*PSEC_WINNT_AUTH_IDENTITY_A; -typedef struct { - unsigned char *UserName; - unsigned char *ComputerName; - unsigned short Privilege; - unsigned long AuthFlags; -} RPC_CLIENT_INFORMATION1,* PRPC_CLIENT_INFORMATION1; -typedef I_RPC_HANDLE *RPC_EP_INQ_HANDLE; -typedef int(__RPC_API *RPC_MGMT_AUTHORIZATION_FN)(RPC_BINDING_HANDLE,unsigned long,RPC_STATUS*); - -#ifdef RPC_UNICODE_SUPPORTED -typedef struct _RPC_PROTSEQ_VECTORA { - unsigned int Count; - unsigned char*Protseq[1]; -} RPC_PROTSEQ_VECTORA; -typedef struct _RPC_PROTSEQ_VECTORW { - unsigned int Count; - unsigned short*Protseq[1]; -} RPC_PROTSEQ_VECTORW; -RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingA(unsigned char *,RPC_BINDING_HANDLE *); -RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingW(unsigned short *,RPC_BINDING_HANDLE *); -RPC_STATUS RPC_ENTRY RpcBindingToStringBindingA(RPC_BINDING_HANDLE,unsigned char**); -RPC_STATUS RPC_ENTRY RpcBindingToStringBindingW(RPC_BINDING_HANDLE,unsigned short**); -RPC_STATUS RPC_ENTRY RpcStringBindingComposeA(unsigned char *,unsigned char *,unsigned char *,unsigned char *,unsigned char *,unsigned char **); -RPC_STATUS RPC_ENTRY RpcStringBindingComposeW(unsigned short *,unsigned short *,unsigned short *,unsigned short *,unsigned short *,unsigned short **); -RPC_STATUS RPC_ENTRY RpcStringBindingParseA(unsigned char *,unsigned char **,unsigned char **,unsigned char **,unsigned char **,unsigned char **); -RPC_STATUS RPC_ENTRY RpcStringBindingParseW(unsigned short *,unsigned short **,unsigned short **,unsigned short **,unsigned short **,unsigned short **); -RPC_STATUS RPC_ENTRY RpcStringFreeA(unsigned char**); -RPC_STATUS RPC_ENTRY RpcStringFreeW(unsigned short**); -RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidA(unsigned char*); -RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidW(unsigned short*); -RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsA(RPC_PROTSEQ_VECTORA**); -RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsW(RPC_PROTSEQ_VECTORW**); -RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeA(RPC_PROTSEQ_VECTORA**); -RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeW(RPC_PROTSEQ_VECTORW**); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqA(unsigned char*,unsigned int,void*); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqW(unsigned short*,unsigned int,void*); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqExA(unsigned char*,unsigned int MaxCalls,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqExW(unsigned short*,unsigned int,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpA(unsigned char*,unsigned int,unsigned char*,void*); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpExA(unsigned char*,unsigned int,unsigned char*,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpW(unsigned short*,unsigned int,unsigned short*,void*); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpExW(unsigned short*,unsigned int,unsigned short*,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfA(unsigned char*,unsigned int,RPC_IF_HANDLE,void*); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfExA(unsigned char*,unsigned int,RPC_IF_HANDLE,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfW(unsigned short*,unsigned int,RPC_IF_HANDLE,void*); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfExW(unsigned short*,unsigned int,RPC_IF_HANDLE,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcMgmtInqServerPrincNameA(RPC_BINDING_HANDLE,unsigned long,unsigned char**); -RPC_STATUS RPC_ENTRY RpcMgmtInqServerPrincNameW(RPC_BINDING_HANDLE,unsigned long,unsigned short**); -RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameA(unsigned long,unsigned char**); -RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameW(unsigned long,unsigned short**); -RPC_STATUS RPC_ENTRY RpcNsBindingInqEntryNameA(RPC_BINDING_HANDLE,unsigned long,unsigned char**); -RPC_STATUS RPC_ENTRY RpcNsBindingInqEntryNameW(RPC_BINDING_HANDLE,unsigned long,unsigned short**); -RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientA(RPC_BINDING_HANDLE,RPC_AUTHZ_HANDLE *,unsigned char**,unsigned long*,unsigned long*,unsigned long*); -RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientW(RPC_BINDING_HANDLE,RPC_AUTHZ_HANDLE *,unsigned short**,unsigned long*,unsigned long*,unsigned long*); -RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE,unsigned char**,unsigned long*,unsigned long*,RPC_AUTH_IDENTITY_HANDLE*,unsigned long*); -RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoW(RPC_BINDING_HANDLE,unsigned short**,unsigned long*,unsigned long*,RPC_AUTH_IDENTITY_HANDLE*,unsigned long*); -RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE,unsigned char*,unsigned long,unsigned long,RPC_AUTH_IDENTITY_HANDLE,unsigned long); -RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExA(RPC_BINDING_HANDLE,unsigned char*,unsigned long,unsigned long,RPC_AUTH_IDENTITY_HANDLE,unsigned long,RPC_SECURITY_QOS*); -RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoW(RPC_BINDING_HANDLE,unsigned short*,unsigned long,unsigned long,RPC_AUTH_IDENTITY_HANDLE,unsigned long); -RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExW(RPC_BINDING_HANDLE,unsigned short*,unsigned long,unsigned long,RPC_AUTH_IDENTITY_HANDLE,unsigned long,RPC_SECURITY_QOS*); -RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExA(RPC_BINDING_HANDLE,unsigned char**,unsigned long*,unsigned long*,RPC_AUTH_IDENTITY_HANDLE*,unsigned long*,unsigned long,RPC_SECURITY_QOS*); -RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExW(RPC_BINDING_HANDLE,unsigned short ** , unsigned long *, unsigned long *, RPC_AUTH_IDENTITY_HANDLE *, unsigned long *, unsigned long , RPC_SECURITY_QOS *); -typedef void(__RPC_USER *RPC_AUTH_KEY_RETRIEVAL_FN)(void*,unsigned short*,unsigned long,void**,RPC_STATUS*); -RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfoA(unsigned char*,unsigned long,RPC_AUTH_KEY_RETRIEVAL_FN,void*); -RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfoW(unsigned short*,unsigned long,RPC_AUTH_KEY_RETRIEVAL_FN,void*); -RPC_STATUS RPC_ENTRY UuidToStringA(UUID*,unsigned char**); -RPC_STATUS RPC_ENTRY UuidFromStringA(unsigned char*,UUID*); -RPC_STATUS RPC_ENTRY UuidToStringW(UUID*,unsigned short**); -RPC_STATUS RPC_ENTRY UuidFromStringW(unsigned short*,UUID*); -RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceA(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*,unsigned char*); -RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceW(RPC_IF_HANDLE,RPC_BINDING_VECTOR*, UUID_VECTOR*,unsigned short*); -RPC_STATUS RPC_ENTRY RpcEpRegisterA(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*,unsigned char*); -RPC_STATUS RPC_ENTRY RpcEpRegisterW(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*,unsigned short*); -RPC_STATUS RPC_ENTRY DceErrorInqTextA(RPC_STATUS,unsigned char*); -RPC_STATUS RPC_ENTRY DceErrorInqTextW(RPC_STATUS,unsigned short*); -RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned char**); -RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned short**); -#ifdef UNICODE -#define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORW -#define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_W -#define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_W -#define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_W -#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextW -#define RpcBindingFromStringBinding RpcBindingFromStringBindingW -#define RpcBindingToStringBinding RpcBindingToStringBindingW -#define RpcStringBindingCompose RpcStringBindingComposeW -#define RpcStringBindingParse RpcStringBindingParseW -#define RpcStringFree RpcStringFreeW -#define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidW -#define RpcNetworkInqProtseqs RpcNetworkInqProtseqsW -#define RpcProtseqVectorFree RpcProtseqVectorFreeW -#define RpcServerUseProtseq RpcServerUseProtseqW -#define RpcServerUseProtseqEx RpcServerUseProtseqExW -#define RpcServerUseProtseqEp RpcServerUseProtseqEpW -#define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExW -#define RpcServerUseProtseqIf RpcServerUseProtseqIfW -#define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExW -#define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameW -#define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameW -#define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameW -#define RpcBindingInqAuthClient RpcBindingInqAuthClientW -#define RpcBindingInqAuthInfo RpcBindingInqAuthInfoW -#define RpcBindingSetAuthInfo RpcBindingSetAuthInfoW -#define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoW -#define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExW -#define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExW -#define UuidFromString UuidFromStringW -#define UuidToString UuidToStringW -#define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceW -#define RpcEpRegister RpcEpRegisterW -#define DceErrorInqText DceErrorInqTextW -#else /* UNICODE */ -#define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORA -#define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_A -#define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_A -#define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_A -#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextA -#define RpcBindingFromStringBinding RpcBindingFromStringBindingA -#define RpcBindingToStringBinding RpcBindingToStringBindingA -#define RpcStringBindingCompose RpcStringBindingComposeA -#define RpcStringBindingParse RpcStringBindingParseA -#define RpcStringFree RpcStringFreeA -#define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidA -#define RpcNetworkInqProtseqs RpcNetworkInqProtseqsA -#define RpcProtseqVectorFree RpcProtseqVectorFreeA -#define RpcServerUseProtseq RpcServerUseProtseqA -#define RpcServerUseProtseqEx RpcServerUseProtseqExA -#define RpcServerUseProtseqEp RpcServerUseProtseqEpA -#define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExA -#define RpcServerUseProtseqIf RpcServerUseProtseqIfA -#define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExA -#define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameA -#define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameA -#define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameA -#define RpcBindingInqAuthClient RpcBindingInqAuthClientA -#define RpcBindingInqAuthInfo RpcBindingInqAuthInfoA -#define RpcBindingSetAuthInfo RpcBindingSetAuthInfoA -#define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoA -#define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExA -#define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExA -#define UuidFromString UuidFromStringA -#define UuidToString UuidToStringA -#define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceA -#define RpcEpRegister RpcEpRegisterA -#define DceErrorInqText DceErrorInqTextA -#endif /* UNICODE */ -#else /* RPC_UNICODE_SUPPORTED */ -typedef struct _RPC_PROTSEQ_VECTOR { - unsigned int Count; - unsigned char* Protseq[1]; -} RPC_PROTSEQ_VECTOR; -RPC_STATUS RPC_ENTRY RpcBindingFromStringBinding(unsigned char *,RPC_BINDING_HANDLE *); -RPC_STATUS RPC_ENTRY RpcBindingToStringBinding(RPC_BINDING_HANDLE,unsigned char **); -RPC_STATUS RPC_ENTRY RpcStringBindingCompose(unsigned char *,unsigned char *,unsigned char *,unsigned char *,unsigned char *,unsigned char **); -RPC_STATUS RPC_ENTRY RpcStringBindingParse(unsigned char *,unsigned char **,unsigned char **,unsigned char **,unsigned char **,unsigned char **); -RPC_STATUS RPC_ENTRY RpcStringFree(unsigned char**); -RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValid(unsigned char*); -RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqs(RPC_PROTSEQ_VECTOR **); -RPC_STATUS RPC_ENTRY RpcServerInqBindings(RPC_BINDING_VECTOR **); -RPC_STATUS RPC_ENTRY RpcServerUseProtseq(unsigned char*,unsigned int,void*); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqEx(unsigned char*,unsigned int,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqEp(unsigned char*,unsigned int,unsigned char*,void*); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpEx(unsigned char*,unsigned int,unsigned char*,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqIf(unsigned char*,unsigned int,RPC_IF_HANDLE,void*); -RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfEx(unsigned char*,unsigned int,RPC_IF_HANDLE,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcMgmtInqServerPrincName(RPC_BINDING_HANDLE,unsigned long,unsigned char**); -RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincName(unsigned long,unsigned char**); -RPC_STATUS RPC_ENTRY RpcNsBindingInqEntryName(RPC_BINDING_HANDLE,unsigned long,unsigned char**); -RPC_STATUS RPC_ENTRY RpcBindingInqAuthClient(RPC_BINDING_HANDLE,RPC_AUTHZ_HANDLE*,unsigned char**,unsigned long*,unsigned long*,unsigned long*); -RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfo(RPC_BINDING_HANDLE,unsigned char **,unsigned long *,unsigned long *,RPC_AUTH_IDENTITY_HANDLE *,unsigned long *); -RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfo(RPC_BINDING_HANDLE,unsigned char *,unsigned long,unsigned long,RPC_AUTH_IDENTITY_HANDLE,unsigned long); -typedef void(__RPC_USER *RPC_AUTH_KEY_RETRIEVAL_FN)(void*,unsigned char*,unsigned long,void**,RPC_STATUS*); -RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfo(unsigned char*,unsigned long,RPC_AUTH_KEY_RETRIEVAL_FN,void*); -RPC_STATUS RPC_ENTRY UuidToString(UUID*,unsigned char**); -RPC_STATUS RPC_ENTRY UuidFromString(unsigned char*,UUID*); -RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplace(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*,unsigned char*); -RPC_STATUS RPC_ENTRY RpcEpRegister(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*,unsigned char*); -RPC_STATUS RPC_ENTRY DceErrorInqText(RPC_STATUS,unsigned char*); -RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNext(RPC_EP_INQ_HANDLE,RPC_IF_ID *,RPC_BINDING_HANDLE *,unsigned char **); -#endif /* RPC_UNICODE_SUPPORTED */ - -RPC_STATUS RPC_ENTRY RpcBindingCopy(RPC_BINDING_HANDLE,RPC_BINDING_HANDLE*); -RPC_STATUS RPC_ENTRY RpcBindingFree(RPC_BINDING_HANDLE*); -RPC_STATUS RPC_ENTRY RpcBindingInqObject(RPC_BINDING_HANDLE,UUID *); -RPC_STATUS RPC_ENTRY RpcBindingReset(RPC_BINDING_HANDLE); -RPC_STATUS RPC_ENTRY RpcBindingSetObject(RPC_BINDING_HANDLE,UUID *); -RPC_STATUS RPC_ENTRY RpcMgmtInqDefaultProtectLevel(unsigned long,unsigned long *); -RPC_STATUS RPC_ENTRY RpcBindingVectorFree(RPC_BINDING_VECTOR **); -RPC_STATUS RPC_ENTRY RpcIfInqId(RPC_IF_HANDLE,RPC_IF_ID *); -RPC_STATUS RPC_ENTRY RpcMgmtInqComTimeout(RPC_BINDING_HANDLE,unsigned int*); -RPC_STATUS RPC_ENTRY RpcMgmtSetComTimeout(RPC_BINDING_HANDLE,unsigned int); -RPC_STATUS RPC_ENTRY RpcMgmtSetCancelTimeout(long Timeout); -RPC_STATUS RPC_ENTRY RpcObjectInqType(UUID *,UUID *); -RPC_STATUS RPC_ENTRY RpcObjectSetInqFn(RPC_OBJECT_INQ_FN *); -RPC_STATUS RPC_ENTRY RpcObjectSetType(UUID *,UUID *); -RPC_STATUS RPC_ENTRY RpcProtseqVectorFree(RPC_PROTSEQ_VECTOR **); -RPC_STATUS RPC_ENTRY RpcServerInqIf(RPC_IF_HANDLE,UUID*,RPC_MGR_EPV**); -RPC_STATUS RPC_ENTRY RpcServerListen(unsigned int,unsigned int,unsigned int); -RPC_STATUS RPC_ENTRY RpcServerRegisterIf(RPC_IF_HANDLE,UUID*,RPC_MGR_EPV*); -RPC_STATUS RPC_ENTRY RpcServerRegisterIfEx(RPC_IF_HANDLE,UUID*,RPC_MGR_EPV*,unsigned int,unsigned int,RPC_IF_CALLBACK_FN*); -RPC_STATUS RPC_ENTRY RpcServerUnregisterIf(RPC_IF_HANDLE,UUID*,unsigned int); -RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqs(unsigned int,void*); -RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsEx(unsigned int,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsIf(unsigned int,RPC_IF_HANDLE,void*); -RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsIfEx(unsigned int,RPC_IF_HANDLE,void*,PRPC_POLICY); -RPC_STATUS RPC_ENTRY RpcMgmtStatsVectorFree(RPC_STATS_VECTOR**); -RPC_STATUS RPC_ENTRY RpcMgmtInqStats(RPC_BINDING_HANDLE,RPC_STATS_VECTOR**); -RPC_STATUS RPC_ENTRY RpcMgmtIsServerListening(RPC_BINDING_HANDLE); -RPC_STATUS RPC_ENTRY RpcMgmtStopServerListening(RPC_BINDING_HANDLE); -RPC_STATUS RPC_ENTRY RpcMgmtWaitServerListen(void); -RPC_STATUS RPC_ENTRY RpcMgmtSetServerStackSize(unsigned long); -void RPC_ENTRY RpcSsDontSerializeContext(void); -RPC_STATUS RPC_ENTRY RpcMgmtEnableIdleCleanup(void); -RPC_STATUS RPC_ENTRY RpcMgmtInqIfIds(RPC_BINDING_HANDLE,RPC_IF_ID_VECTOR**); -RPC_STATUS RPC_ENTRY RpcIfIdVectorFree(RPC_IF_ID_VECTOR**); -RPC_STATUS RPC_ENTRY RpcEpResolveBinding(RPC_BINDING_HANDLE,RPC_IF_HANDLE); -RPC_STATUS RPC_ENTRY RpcBindingServerFromClient(RPC_BINDING_HANDLE,RPC_BINDING_HANDLE*); -DECLSPEC_NORETURN void RPC_ENTRY RpcRaiseException(RPC_STATUS); -RPC_STATUS RPC_ENTRY RpcTestCancel(void); -RPC_STATUS RPC_ENTRY RpcCancelThread(void*); -RPC_STATUS RPC_ENTRY UuidCreate(UUID*); -signed int RPC_ENTRY UuidCompare(UUID*,UUID*, RPC_STATUS*); -RPC_STATUS RPC_ENTRY UuidCreateNil(UUID*); -int RPC_ENTRY UuidEqual(UUID*,UUID*, RPC_STATUS*); -unsigned short RPC_ENTRY UuidHash(UUID*,RPC_STATUS*); -int RPC_ENTRY UuidIsNil(UUID*,RPC_STATUS*); -RPC_STATUS RPC_ENTRY RpcEpUnregister(RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*); -RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE,unsigned long,RPC_IF_ID*,unsigned long,UUID*,RPC_EP_INQ_HANDLE*); -RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqDone(RPC_EP_INQ_HANDLE*); -RPC_STATUS RPC_ENTRY RpcMgmtEpUnregister(RPC_BINDING_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE,UUID*); -RPC_STATUS RPC_ENTRY RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN); -RPC_STATUS RPC_ENTRY RpcMgmtInqParameter(unsigned int,unsigned long*); -RPC_STATUS RPC_ENTRY RpcMgmtSetParameter(unsigned int,unsigned long); -RPC_STATUS RPC_ENTRY RpcMgmtBindingInqParameter(RPC_BINDING_HANDLE,unsigned int,unsigned long*); -RPC_STATUS RPC_ENTRY RpcMgmtBindingSetParameter(RPC_BINDING_HANDLE,unsigned int,unsigned long); -#include -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/rpcdce2.h b/winsup/w32api/include/rpcdce2.h deleted file mode 100644 index ec0f62e35..000000000 --- a/winsup/w32api/include/rpcdce2.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef _RPCDCE2_H -#define _RPCDCE2_H -#ifdef __cplusplus -extern "C" { -#endif -#include - -#define RPC_C_EP_ALL_ELTS 0 -#define RPC_C_EP_MATCH_BY_IF 1 -#define RPC_C_EP_MATCH_BY_OBJ 2 -#define RPC_C_EP_MATCH_BY_BOTH 3 -#define RPC_C_VERS_ALL 1 -#define RPC_C_VERS_COMPATIBLE 2 -#define RPC_C_VERS_EXACT 3 -#define RPC_C_VERS_MAJOR_ONLY 4 -#define RPC_C_VERS_UPTO 5 -#define DCE_C_ERROR_STRING_LEN 256 -#define RPC_C_MGMT_INQ_IF_IDS 0 -#define RPC_C_MGMT_INQ_PRINC_NAME 1 -#define RPC_C_MGMT_INQ_STATS 2 -#define RPC_C_MGMT_IS_SERVER_LISTEN 3 -#define RPC_C_MGMT_STOP_SERVER_LISTEN 4 - -int RPC_ENTRY UuidCompare(UUID*,UUID*,RPC_STATUS*); -RPC_STATUS RPC_ENTRY UuidCreateNil(UUID*); -int RPC_ENTRY UuidEqual(UUID*,UUID*,RPC_STATUS*); -unsigned short RPC_ENTRY UuidHash(UUID*,RPC_STATUS*); -int RPC_ENTRY UuidIsNil(UUID*,RPC_STATUS*); -#ifdef RPC_UNICODE_SUPPORTED -RPC_STATUS RPC_ENTRY DceErrorInqTextA(RPC_STATUS,unsigned char*); -RPC_STATUS RPC_ENTRY DceErrorInqTextW(RPC_STATUS,unsigned short*); -RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextA(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned char**); -RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextW(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned short**); -#ifdef UNICODE -#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextW -#define DceErrorInqText DceErrorInqTextW -#else -#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextA -#define DceErrorInqText DceErrorInqTextA -#endif /* UNICODE */ -#else /* RPC_UNICODE_SUPPORTED */ -RPC_STATUS RPC_ENTRY DceErrorInqText(RPC_STATUS,unsigned char*); -RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNext(RPC_EP_INQ_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE*,UUID*,unsigned char**); -#endif -RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE,unsigned long,RPC_IF_ID*,unsigned long,UUID*,RPC_EP_INQ_HANDLE*); -RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqDone(RPC_EP_INQ_HANDLE*); -RPC_STATUS RPC_ENTRY RpcMgmtEpUnregister(RPC_BINDING_HANDLE,RPC_IF_ID*,RPC_BINDING_HANDLE,UUID*); -RPC_STATUS RPC_ENTRY RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/rpcdcep.h b/winsup/w32api/include/rpcdcep.h deleted file mode 100644 index 37c2ee36f..000000000 --- a/winsup/w32api/include/rpcdcep.h +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef _RPCDCEP_H -#define _RPCDCEP_H -#ifdef __cplusplus -extern "C" { -#endif -#define RPC_NCA_FLAGS_DEFAULT 0 -#define RPC_NCA_FLAGS_IDEMPOTENT 1 -#define RPC_NCA_FLAGS_BROADCAST 2 -#define RPC_NCA_FLAGS_MAYBE 4 -#define RPCFLG_ASYNCHRONOUS 0x40000000 -#define RPCFLG_INPUT_SYNCHRONOUS 0x20000000 -#define RPC_FLAGS_VALID_BIT 0x8000 -#define TRANSPORT_TYPE_CN 1 -#define TRANSPORT_TYPE_DG 2 -#define TRANSPORT_TYPE_LPC 4 -#define TRANSPORT_TYPE_WMSG 8 - -typedef struct _RPC_VERSION { - unsigned short MajorVersion; - unsigned short MinorVersion; -} RPC_VERSION; -typedef struct _RPC_SYNTAX_IDENTIFIER { - GUID SyntaxGUID; - RPC_VERSION SyntaxVersion; -} RPC_SYNTAX_IDENTIFIER, *PRPC_SYNTAX_IDENTIFIER; -typedef struct _RPC_MESSAGE { - HANDLE Handle; - unsigned long DataRepresentation; - void *Buffer; - unsigned int BufferLength; - unsigned int ProcNum; - PRPC_SYNTAX_IDENTIFIER TransferSyntax; - void *RpcInterfaceInformation; - void *ReservedForRuntime; - void *ManagerEpv; - void *ImportContext; - unsigned long RpcFlags; -} RPC_MESSAGE,*PRPC_MESSAGE; -typedef long __stdcall RPC_FORWARD_FUNCTION(GUID*,RPC_VERSION*,GUID*,unsigned char*,void**); -typedef void(__stdcall *RPC_DISPATCH_FUNCTION) ( PRPC_MESSAGE Message); -typedef struct { - unsigned int DispatchTableCount; - RPC_DISPATCH_FUNCTION *DispatchTable; - int Reserved; -} RPC_DISPATCH_TABLE,*PRPC_DISPATCH_TABLE; -typedef struct _RPC_PROTSEQ_ENDPOINT { - unsigned char *RpcProtocolSequence; - unsigned char *Endpoint; -} RPC_PROTSEQ_ENDPOINT,*PRPC_PROTSEQ_ENDPOINT; -typedef struct _RPC_SERVER_INTERFACE { - unsigned int Length; - RPC_SYNTAX_IDENTIFIER InterfaceId; - RPC_SYNTAX_IDENTIFIER TransferSyntax; - PRPC_DISPATCH_TABLE DispatchTable; - unsigned int RpcProtseqEndpointCount; - PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; - void *DefaultManagerEpv; - void const *InterpreterInfo; -} RPC_SERVER_INTERFACE,*PRPC_SERVER_INTERFACE; -typedef struct _RPC_CLIENT_INTERFACE { - unsigned int Length; - RPC_SYNTAX_IDENTIFIER InterfaceId; - RPC_SYNTAX_IDENTIFIER TransferSyntax; - PRPC_DISPATCH_TABLE DispatchTable; - unsigned int RpcProtseqEndpointCount; - PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; - unsigned long Reserved; - void const *InterpreterInfo; -} RPC_CLIENT_INTERFACE,*PRPC_CLIENT_INTERFACE; -typedef void *I_RPC_MUTEX; -typedef struct _RPC_TRANSFER_SYNTAX { - GUID Uuid; - unsigned short VersMajor; - unsigned short VersMinor; -} RPC_TRANSFER_SYNTAX; -typedef long(__stdcall *RPC_BLOCKING_FUNCTION)(void*,void*); - -long __stdcall I_RpcGetBuffer(RPC_MESSAGE*); -long __stdcall I_RpcSendReceive(RPC_MESSAGE*); -long __stdcall I_RpcFreeBuffer(RPC_MESSAGE*); -void __stdcall I_RpcRequestMutex(I_RPC_MUTEX*); -void __stdcall I_RpcClearMutex(I_RPC_MUTEX); -void __stdcall I_RpcDeleteMutex(I_RPC_MUTEX); -DECLARE_STDCALL_P(void *) I_RpcAllocate(unsigned int); -void __stdcall I_RpcFree(void*); -void __stdcall I_RpcPauseExecution(unsigned long); -typedef void(__stdcall *PRPC_RUNDOWN) (void*); -long __stdcall I_RpcMonitorAssociation(HANDLE,PRPC_RUNDOWN,void*); -long __stdcall I_RpcStopMonitorAssociation(HANDLE); -HANDLE __stdcall I_RpcGetCurrentCallHandle(void); -long __stdcall I_RpcGetAssociationContext(void**); -long __stdcall I_RpcSetAssociationContext(void*); -#ifdef __RPC_NT__ -long __stdcall I_RpcNsBindingSetEntryName(HANDLE,unsigned long,unsigned short*); -long __stdcall I_RpcBindingInqDynamicEndpoint(HANDLE, unsigned short**); -#else -long __stdcall I_RpcNsBindingSetEntryName(HANDLE,unsigned long,unsigned char*); -long __stdcall I_RpcBindingInqDynamicEndpoint(HANDLE,unsigned char**); -#endif -long __stdcall I_RpcBindingInqTransportType(HANDLE,unsigned int*); -long __stdcall I_RpcIfInqTransferSyntaxes(HANDLE,RPC_TRANSFER_SYNTAX*,unsigned int,unsigned int*); -long __stdcall I_UuidCreate(GUID*); -long __stdcall I_RpcBindingCopy(HANDLE,HANDLE*); -long __stdcall I_RpcBindingIsClientLocal(HANDLE,unsigned int*); -void __stdcall I_RpcSsDontSerializeContext(void); -long __stdcall I_RpcServerRegisterForwardFunction(RPC_FORWARD_FUNCTION*); -long __stdcall I_RpcConnectionInqSockBuffSize(unsigned long*,unsigned long*); -long __stdcall I_RpcConnectionSetSockBuffSize(unsigned long,unsigned long); -long __stdcall I_RpcBindingSetAsync(HANDLE,RPC_BLOCKING_FUNCTION); -long __stdcall I_RpcAsyncSendReceive(RPC_MESSAGE*,void*); -long __stdcall I_RpcGetThreadWindowHandle(void**); -long __stdcall I_RpcServerThreadPauseListening(void); -long __stdcall I_RpcServerThreadContinueListening(void); -long __stdcall I_RpcServerUnregisterEndpointA(unsigned char*,unsigned char*); -long __stdcall I_RpcServerUnregisterEndpointW(unsigned short*,unsigned short*); -#ifdef UNICODE -#define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointW -#else -#define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointA -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/rpcndr.h b/winsup/w32api/include/rpcndr.h deleted file mode 100644 index 037918f8d..000000000 --- a/winsup/w32api/include/rpcndr.h +++ /dev/null @@ -1,469 +0,0 @@ -#ifndef __RPCNDR_H__ -#define __RPCNDR_H__ -#ifndef __RPCNDR_H_VERSION__ -#define __RPCNDR_H_VERSION__ ( 450 ) -#endif /* __RPCNDR_H_VERSION__ */ -#include -#ifdef __cplusplus -extern "C" { -#endif -#include -#define DECLSPEC_UUID(x) -#define MIDL_INTERFACE(x) struct -#define NDR_CHAR_REP_MASK (unsigned long)0xFL -#define NDR_INT_REP_MASK (unsigned long)0xF0L -#define NDR_FLOAT_REP_MASK (unsigned long)0xFF00L -#define NDR_LITTLE_ENDIAN (unsigned long)0x10L -#define NDR_BIG_ENDIAN (unsigned long)0 -#define NDR_IEEE_FLOAT (unsigned long)0 -#define NDR_VAX_FLOAT (unsigned long)0x100L -#define NDR_ASCII_CHAR (unsigned long)0 -#define NDR_EBCDIC_CHAR (unsigned long)1 -#define NDR_LOCAL_DATA_REPRESENTATION (unsigned long)0x10L -#define NDR_LOCAL_ENDIAN NDR_LITTLE_ENDIAN -#define __RPC_CALLEE __stdcall -#ifndef __MIDL_USER_DEFINED -#define midl_user_allocate MIDL_user_allocate -#define midl_user_free MIDL_user_free -#define __MIDL_USER_DEFINED -#endif -#define RPC_VAR_ENTRY __cdecl -#ifdef _M_IX86 -#define __MIDL_DECLSPEC_DLLIMPORT __declspec(dllimport) -#define __MIDL_DECLSPEC_DLLEXPORT __declspec(dllexport) -#else -#define __MIDL_DECLSPEC_DLLIMPORT -#define __MIDL_DECLSPEC_DLLEXPORT -#endif -#if defined(_HAVE_INT64) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64) -#define hyper __int64 -#define MIDL_uhyper unsigned __int64 -#else -#define hyper double -#define MIDL_uhyper double -#endif -#define small char -typedef unsigned char byte; -#define NDRSContextValue(hContext) (&(hContext)->userContext) -#define cbNDRContext 20 -#define byte_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; } -#define byte_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); } -#define boolean_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; } -#define boolean_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); } -#define small_from_ndr(source, target) { *(target) = *(*(char**)&(source)->Buffer)++; } -#define small_from_ndr_temp(source, target, format) { *(target) = *(*(char**)(source))++; } -#define small_array_from_ndr(Source, LowerIndex, UpperIndex, Target) { NDRcopy ((((char *)(Target))+(LowerIndex)), (Source)->Buffer, (unsigned int)((UpperIndex)-(LowerIndex))); *(unsigned long *)&(Source)->Buffer += ((UpperIndex)-(LowerIndex)); } -#define MIDL_ascii_strlen(string) strlen(string) -#define MIDL_ascii_strcpy(target,source) strcpy(target,source) -#define MIDL_memset(s,c,n) memset(s,c,n) -#define _midl_ma1( p, cast ) *(*( cast **)&p)++ -#define _midl_ma2( p, cast ) *(*( cast **)&p)++ -#define _midl_ma4( p, cast ) *(*( cast **)&p)++ -#define _midl_ma8( p, cast ) *(*( cast **)&p)++ -#define _midl_unma1( p, cast ) *(( cast *)p)++ -#define _midl_unma2( p, cast ) *(( cast *)p)++ -#define _midl_unma3( p, cast ) *(( cast *)p)++ -#define _midl_unma4( p, cast ) *(( cast *)p)++ -#define _midl_fa2( p ) (p = (RPC_BUFPTR )((unsigned long)(p+1) & 0xfffffffe)) -#define _midl_fa4( p ) (p = (RPC_BUFPTR )((unsigned long)(p+3) & 0xfffffffc)) -#define _midl_fa8( p ) (p = (RPC_BUFPTR )((unsigned long)(p+7) & 0xfffffff8)) -#define _midl_addp( p, n ) (p += n) -#define _midl_marsh_lhs( p, cast ) *(*( cast **)&p)++ -#define _midl_marsh_up( mp, p ) *(*(unsigned long **)&mp)++ = (unsigned long)p -#define _midl_advmp( mp ) *(*(unsigned long **)&mp)++ -#define _midl_unmarsh_up( p ) (*(*(unsigned long **)&p)++) -#define NdrMarshConfStringHdr( p, s, l ) (_midl_ma4( p, unsigned long) = s, _midl_ma4( p, unsigned long) = 0, _midl_ma4( p, unsigned long) = l) -#define NdrUnMarshConfStringHdr(p, s, l) ((s=_midl_unma4(p,unsigned long), (_midl_addp(p,4)), (l=_midl_unma4(p,unsigned long)) -#define NdrMarshCCtxtHdl(pc,p) (NDRCContextMarshall( (NDR_CCONTEXT)pc, p ),p+20) -#define NdrUnMarshCCtxtHdl(pc,p,h,drep) (NDRCContextUnmarshall((NDR_CONTEXT)pc,h,p,drep), p+20) -#define NdrUnMarshSCtxtHdl(pc, p,drep) (pc = NdrSContextUnMarshall(p,drep )) -#define NdrMarshSCtxtHdl(pc,p,rd) (NdrSContextMarshall((NDR_SCONTEXT)pc,p, (NDR_RUNDOWN)rd) -#define NdrFieldOffset(s,f) (long)(& (((s *)0)->f)) -#define NdrFieldPad(s,f,p,t) (NdrFieldOffset(s,f) - NdrFieldOffset(s,p) - sizeof(t)) -#define NdrFcShort(s) (unsigned char)(s & 0xff), (unsigned char)(s >> 8) -#define NdrFcLong(s) (unsigned char)(s & 0xff), (unsigned char)((s & 0x0000ff00) >> 8), (unsigned char)((s & 0x00ff0000) >> 16), (unsigned char)(s >> 24) -#ifdef CONST_VTABLE -#define CONST_VTBL const -#else -#define CONST_VTBL -#endif -typedef void *NDR_CCONTEXT; -typedef struct { - void *pad[2]; - void *userContext; -} *NDR_SCONTEXT; -typedef void (__RPC_USER *NDR_RUNDOWN)(void*); -typedef struct _SCONTEXT_QUEUE { - unsigned long NumberOfObjects; - NDR_SCONTEXT *ArrayOfObjects; -} SCONTEXT_QUEUE,*PSCONTEXT_QUEUE; -struct _MIDL_STUB_MESSAGE; -struct _MIDL_STUB_DESC; -struct _FULL_PTR_XLAT_TABLES; -typedef unsigned char *RPC_BUFPTR; -typedef unsigned long RPC_LENGTH; -typedef void(__RPC_USER *EXPR_EVAL)(struct _MIDL_STUB_MESSAGE*); -typedef const unsigned char *PFORMAT_STRING; -typedef struct { - long Dimension; - unsigned long *BufferConformanceMark; - unsigned long *BufferVarianceMark; - unsigned long *MaxCountArray; - unsigned long *OffsetArray; - unsigned long *ActualCountArray; -} ARRAY_INFO,*PARRAY_INFO; - -RPC_BINDING_HANDLE RPC_ENTRY NDRCContextBinding(NDR_CCONTEXT); -void RPC_ENTRY NDRCContextMarshall(NDR_CCONTEXT,void*); -void RPC_ENTRY NDRCContextUnmarshall(NDR_CCONTEXT*,RPC_BINDING_HANDLE,void*,unsigned long); -void RPC_ENTRY NDRSContextMarshall(NDR_SCONTEXT,void*,NDR_RUNDOWN); -NDR_SCONTEXT RPC_ENTRY NDRSContextUnmarshall(void*pBuff,unsigned long); -void RPC_ENTRY RpcSsDestroyClientContext(void**); -void RPC_ENTRY NDRcopy(void*,void*,unsigned int); -unsigned int RPC_ENTRY MIDL_wchar_strlen(wchar_t*); -void RPC_ENTRY MIDL_wchar_strcpy(void*,wchar_t*); -void RPC_ENTRY char_from_ndr(PRPC_MESSAGE,unsigned char*); -void RPC_ENTRY char_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned char*); -void RPC_ENTRY short_from_ndr(PRPC_MESSAGE,unsigned short*); -void RPC_ENTRY short_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned short*); -void RPC_ENTRY short_from_ndr_temp(unsigned char**,unsigned short*,unsigned long); -void RPC_ENTRY long_from_ndr(PRPC_MESSAGE,unsigned long*); -void RPC_ENTRY long_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,unsigned long*); -void RPC_ENTRY long_from_ndr_temp(unsigned char**,unsigned long*,unsigned long); -void RPC_ENTRY enum_from_ndr(PRPC_MESSAGE,unsigned int*); -void RPC_ENTRY float_from_ndr(PRPC_MESSAGE,void*); -void RPC_ENTRY float_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,void*); -void RPC_ENTRY double_from_ndr(PRPC_MESSAGE,void*); -void RPC_ENTRY double_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,void*); -void RPC_ENTRY hyper_from_ndr(PRPC_MESSAGE,hyper*); -void RPC_ENTRY hyper_array_from_ndr(PRPC_MESSAGE,unsigned long,unsigned long,hyper*); -void RPC_ENTRY hyper_from_ndr_temp(unsigned char**,hyper*,unsigned long); -void RPC_ENTRY data_from_ndr(PRPC_MESSAGE,void*,char*,unsigned char); -void RPC_ENTRY data_into_ndr(void*,PRPC_MESSAGE,char*,unsigned char); -void RPC_ENTRY tree_into_ndr(void*,PRPC_MESSAGE,char*,unsigned char); -void RPC_ENTRY data_size_ndr(void*,PRPC_MESSAGE,char*,unsigned char); -void RPC_ENTRY tree_size_ndr(void*,PRPC_MESSAGE,char*,unsigned char); -void RPC_ENTRY tree_peek_ndr(PRPC_MESSAGE,unsigned char**,char*,unsigned char); -void *RPC_ENTRY midl_allocate(int); - -#pragma pack(push,4) -typedef struct _MIDL_STUB_MESSAGE { - PRPC_MESSAGE RpcMsg; - unsigned char *Buffer; - unsigned char *BufferStart; - unsigned char *BufferEnd; - unsigned char *BufferMark; - unsigned long BufferLength; - unsigned long MemorySize; - unsigned char *Memory; - int IsClient; - int ReuseBuffer; - unsigned char *AllocAllNodesMemory; - unsigned char *AllocAllNodesMemoryEnd; - int IgnoreEmbeddedPointers; - unsigned char *PointerBufferMark; - unsigned char fBufferValid; - unsigned char Unused; - unsigned long MaxCount; - unsigned long Offset; - unsigned long ActualCount; - void*(__RPC_API *pfnAllocate)(unsigned int); - void(__RPC_API *pfnFree)(void*); - unsigned char *StackTop; - unsigned char *pPresentedType; - unsigned char *pTransmitType; - handle_t SavedHandle; - const struct _MIDL_STUB_DESC *StubDesc; - struct _FULL_PTR_XLAT_TABLES *FullPtrXlatTables; - unsigned long FullPtrRefId; - int fCheckBounds; - int fInDontFree :1; - int fDontCallFreeInst :1; - int fInOnlyParam :1; - int fHasReturn :1; - unsigned long dwDestContext; - void*pvDestContext; - NDR_SCONTEXT *SavedContextHandles; - long ParamNumber; - struct IRpcChannelBuffer *pRpcChannelBuffer; - PARRAY_INFO pArrayInfo; - unsigned long *SizePtrCountArray; - unsigned long *SizePtrOffsetArray; - unsigned long *SizePtrLengthArray; - void*pArgQueue; - unsigned long dwStubPhase; - unsigned long Reserved[5]; -} MIDL_STUB_MESSAGE,*PMIDL_STUB_MESSAGE; -#pragma pack(pop) -typedef void*(__RPC_API *GENERIC_BINDING_ROUTINE)(void*); -typedef void (__RPC_API *GENERIC_UNBIND_ROUTINE)(void*,unsigned char*); -typedef struct _GENERIC_BINDING_ROUTINE_PAIR { - GENERIC_BINDING_ROUTINE pfnBind; - GENERIC_UNBIND_ROUTINE pfnUnbind; -} GENERIC_BINDING_ROUTINE_PAIR,*PGENERIC_BINDING_ROUTINE_PAIR; -typedef struct __GENERIC_BINDING_INFO { - void *pObj; - unsigned int Size; - GENERIC_BINDING_ROUTINE pfnBind; - GENERIC_UNBIND_ROUTINE pfnUnbind; -} GENERIC_BINDING_INFO,*PGENERIC_BINDING_INFO; -typedef void(__RPC_USER *XMIT_HELPER_ROUTINE)(PMIDL_STUB_MESSAGE); -typedef struct _XMIT_ROUTINE_QUINTUPLE { - XMIT_HELPER_ROUTINE pfnTranslateToXmit; - XMIT_HELPER_ROUTINE pfnTranslateFromXmit; - XMIT_HELPER_ROUTINE pfnFreeXmit; - XMIT_HELPER_ROUTINE pfnFreeInst; -} XMIT_ROUTINE_QUINTUPLE,*PXMIT_ROUTINE_QUINTUPLE; -typedef struct _MALLOC_FREE_STRUCT { -void*(__RPC_USER *pfnAllocate)(unsigned int); -void(__RPC_USER *pfnFree)(void*); -} MALLOC_FREE_STRUCT; -typedef struct _COMM_FAULT_OFFSETS { - short CommOffset; - short FaultOffset; -} COMM_FAULT_OFFSETS; -typedef struct _MIDL_STUB_DESC { - void*RpcInterfaceInformation; - void*(__RPC_API *pfnAllocate)(unsigned int); - void(__RPC_API *pfnFree)(void*); - union { - handle_t *pAutoHandle; - handle_t *pPrimitiveHandle; - PGENERIC_BINDING_INFO pGenericBindingInfo; - } IMPLICIT_HANDLE_INFO; - const NDR_RUNDOWN *apfnNdrRundownRoutines; - const GENERIC_BINDING_ROUTINE_PAIR *aGenericBindingRoutinePairs; - const EXPR_EVAL *apfnExprEval; - const XMIT_ROUTINE_QUINTUPLE *aXmitQuintuple; - const unsigned char *pFormatTypes; - int fCheckBounds; - unsigned long Version; - MALLOC_FREE_STRUCT *pMallocFreeStruct; - long MIDLVersion; - const COMM_FAULT_OFFSETS *CommFaultOffsets; -} MIDL_STUB_DESC; -typedef const MIDL_STUB_DESC *PMIDL_STUB_DESC; -typedef void*PMIDL_XMIT_TYPE; -typedef struct _MIDL_FORMAT_STRING { - short Pad; - unsigned char Format[1]; -} MIDL_FORMAT_STRING; -typedef void(__RPC_API *STUB_THUNK)(PMIDL_STUB_MESSAGE); -typedef long(__RPC_API *SERVER_ROUTINE)(void); -typedef struct _MIDL_SERVER_INFO_ { - PMIDL_STUB_DESC pStubDesc; - const SERVER_ROUTINE *DispatchTable; - PFORMAT_STRING ProcString; - const unsigned short *FmtStringOffset; - const STUB_THUNK *ThunkTable; -} MIDL_SERVER_INFO,*PMIDL_SERVER_INFO; -typedef struct _MIDL_STUBLESS_PROXY_INFO { - PMIDL_STUB_DESC pStubDesc; - PFORMAT_STRING ProcFormatString; - const unsigned short *FormatStringOffset; -} MIDL_STUBLESS_PROXY_INFO; -typedef MIDL_STUBLESS_PROXY_INFO *PMIDL_STUBLESS_PROXY_INFO; -typedef union _CLIENT_CALL_RETURN { - void *Pointer; - long Simple; -} CLIENT_CALL_RETURN; -typedef enum { XLAT_SERVER = 1,XLAT_CLIENT } XLAT_SIDE; -typedef struct _FULL_PTR_TO_REFID_ELEMENT { - struct _FULL_PTR_TO_REFID_ELEMENT *Next; - void*Pointer; - unsigned long RefId; - unsigned char State; -} FULL_PTR_TO_REFID_ELEMENT,*PFULL_PTR_TO_REFID_ELEMENT; -typedef struct _FULL_PTR_XLAT_TABLES { - struct { - void **XlatTable; - unsigned char *StateTable; - unsigned long NumberOfEntries; - } RefIdToPointer; - struct { - PFULL_PTR_TO_REFID_ELEMENT *XlatTable; - unsigned long NumberOfBuckets; - unsigned long HashMask; - } PointerToRefId; - unsigned long NextRefId; - XLAT_SIDE XlatSide; -} FULL_PTR_XLAT_TABLES,*PFULL_PTR_XLAT_TABLES; -void RPC_ENTRY NdrSimpleTypeMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char); -unsigned char *RPC_ENTRY NdrPointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING pFormat); -unsigned char *RPC_ENTRY NdrSimpleStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrConformantStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrConformantVaryingStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrHardStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrComplexStructMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrFixedArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrConformantArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrConformantVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrVaryingArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrComplexArrayMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrNonConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrConformantStringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrByteCountPointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrXmitOrRepAsMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned char *RPC_ENTRY NdrInterfacePointerMarshall(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrClientContextMarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT,int); -void RPC_ENTRY NdrServerContextMarshall(PMIDL_STUB_MESSAGE,NDR_SCONTEXT,NDR_RUNDOWN); -void RPC_ENTRY NdrSimpleTypeUnmarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned char); -unsigned char *RPC_ENTRY NdrPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrSimpleStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrConformantStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrConformantVaryingStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrHardStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrComplexStructUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrFixedArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrConformantArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrConformantVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrVaryingArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrComplexArrayUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrNonConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrConformantStringUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrNonEncapsulatedUnionUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrByteCountPointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrXmitOrRepAsUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -unsigned char *RPC_ENTRY NdrInterfacePointerUnmarshall(PMIDL_STUB_MESSAGE,unsigned char**,PFORMAT_STRING,unsigned char); -void RPC_ENTRY NdrClientContextUnmarshall(PMIDL_STUB_MESSAGE,NDR_CCONTEXT*,RPC_BINDING_HANDLE); -NDR_SCONTEXT RPC_ENTRY NdrServerContextUnmarshall(PMIDL_STUB_MESSAGE); -void RPC_ENTRY NdrPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrSimpleStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrConformantStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrConformantVaryingStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrHardStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrComplexStructBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrFixedArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrConformantArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrConformantVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrVaryingArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrComplexArrayBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrNonConformantStringBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrNonEncapsulatedUnionBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrByteCountPointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrXmitOrRepAsBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrInterfacePointerBufferSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrContextHandleSize(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrPointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrSimpleStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrConformantStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrConformantVaryingStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrHardStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrComplexStructMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrFixedArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrConformantArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrConformantVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrVaryingArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrComplexArrayMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrNonConformantStringMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrNonEncapsulatedUnionMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrXmitOrRepAsMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -unsigned long RPC_ENTRY NdrInterfacePointerMemorySize(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -void RPC_ENTRY NdrPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrSimpleStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrConformantStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrConformantVaryingStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrHardStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrComplexStructFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrFixedArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrConformantArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrConformantVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrVaryingArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrComplexArrayFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrNonEncapsulatedUnionFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrByteCountPointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrXmitOrRepAsFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrInterfacePointerFree(PMIDL_STUB_MESSAGE,unsigned char*,PFORMAT_STRING); -void RPC_ENTRY NdrConvert(PMIDL_STUB_MESSAGE,PFORMAT_STRING); -void RPC_ENTRY NdrClientInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int); -unsigned char *RPC_ENTRY NdrServerInitializeNew(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC); -void RPC_ENTRY NdrClientInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int); -unsigned char *RPC_ENTRY NdrServerInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC); -unsigned char *RPC_ENTRY NdrServerInitializeUnmarshall(PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PRPC_MESSAGE); -void RPC_ENTRY NdrServerInitializeMarshall(PRPC_MESSAGE,PMIDL_STUB_MESSAGE); -unsigned char *RPC_ENTRY NdrGetBuffer(PMIDL_STUB_MESSAGE,unsigned long,RPC_BINDING_HANDLE); -unsigned char *RPC_ENTRY NdrNsGetBuffer(PMIDL_STUB_MESSAGE,unsigned long,RPC_BINDING_HANDLE); -unsigned char *RPC_ENTRY NdrSendReceive(PMIDL_STUB_MESSAGE,unsigned char*); -unsigned char *RPC_ENTRY NdrNsSendReceive(PMIDL_STUB_MESSAGE,unsigned char*,RPC_BINDING_HANDLE*); -void RPC_ENTRY NdrFreeBuffer(PMIDL_STUB_MESSAGE); -CLIENT_CALL_RETURN RPC_VAR_ENTRY NdrClientCall(PMIDL_STUB_DESC,PFORMAT_STRING,...); -typedef enum { - STUB_UNMARSHAL, - STUB_CALL_SERVER, - STUB_MARSHAL, - STUB_CALL_SERVER_NO_HRESULT -} STUB_PHASE; -typedef enum { - PROXY_CALCSIZE, - PROXY_GETBUFFER, - PROXY_MARSHAL, - PROXY_SENDRECEIVE, - PROXY_UNMARSHAL -} PROXY_PHASE; -long RPC_ENTRY NdrStubCall(struct IRpcStubBuffer*,struct IRpcChannelBuffer*,PRPC_MESSAGE,unsigned long*); -void RPC_ENTRY NdrServerCall(PRPC_MESSAGE); -int RPC_ENTRY NdrServerUnmarshall(struct IRpcChannelBuffer*,PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,PFORMAT_STRING,void*); -void RPC_ENTRY NdrServerMarshall(struct IRpcStubBuffer*,struct IRpcChannelBuffer*,PMIDL_STUB_MESSAGE,PFORMAT_STRING); -RPC_STATUS RPC_ENTRY NdrMapCommAndFaultStatus(PMIDL_STUB_MESSAGE,unsigned long*,unsigned long*,RPC_STATUS); -int RPC_ENTRY NdrSH_UPDecision(PMIDL_STUB_MESSAGE,unsigned char**,RPC_BUFPTR); -int RPC_ENTRY NdrSH_TLUPDecision(PMIDL_STUB_MESSAGE,unsigned char**); -int RPC_ENTRY NdrSH_TLUPDecisionBuffer(PMIDL_STUB_MESSAGE,unsigned char**); -int RPC_ENTRY NdrSH_IfAlloc(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long); -int RPC_ENTRY NdrSH_IfAllocRef(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long); -int RPC_ENTRY NdrSH_IfAllocSet(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long); -RPC_BUFPTR RPC_ENTRY NdrSH_IfCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long); -RPC_BUFPTR RPC_ENTRY NdrSH_IfAllocCopy(PMIDL_STUB_MESSAGE,unsigned char**,unsigned long); -unsigned long RPC_ENTRY NdrSH_Copy(unsigned char*,unsigned char*,unsigned long); -void RPC_ENTRY NdrSH_IfFree(PMIDL_STUB_MESSAGE,unsigned char*); -RPC_BUFPTR RPC_ENTRY NdrSH_StringMarshall(PMIDL_STUB_MESSAGE,unsigned char*,unsigned long,int); -RPC_BUFPTR RPC_ENTRY NdrSH_StringUnMarshall(PMIDL_STUB_MESSAGE,unsigned char**,int); -typedef void *RPC_SS_THREAD_HANDLE; -typedef void* __RPC_API RPC_CLIENT_ALLOC(unsigned int); -typedef void __RPC_API RPC_CLIENT_FREE(void*); -void*RPC_ENTRY RpcSsAllocate(unsigned int); -void RPC_ENTRY RpcSsDisableAllocate(void); -void RPC_ENTRY RpcSsEnableAllocate(void); -void RPC_ENTRY RpcSsFree(void*); -RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSsGetThreadHandle(void); -void RPC_ENTRY RpcSsSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*); -void RPC_ENTRY RpcSsSetThreadHandle(RPC_SS_THREAD_HANDLE); -void RPC_ENTRY RpcSsSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**); -void*RPC_ENTRY RpcSmAllocate(unsigned int,RPC_STATUS*); -RPC_STATUS RPC_ENTRY RpcSmClientFree(void*); -RPC_STATUS RPC_ENTRY RpcSmDestroyClientContext(void**); -RPC_STATUS RPC_ENTRY RpcSmDisableAllocate(void); -RPC_STATUS RPC_ENTRY RpcSmEnableAllocate(void); -RPC_STATUS RPC_ENTRY RpcSmFree(void*); -RPC_SS_THREAD_HANDLE RPC_ENTRY RpcSmGetThreadHandle(RPC_STATUS*); -RPC_STATUS RPC_ENTRY RpcSmSetClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*); -RPC_STATUS RPC_ENTRY RpcSmSetThreadHandle(RPC_SS_THREAD_HANDLE); -RPC_STATUS RPC_ENTRY RpcSmSwapClientAllocFree(RPC_CLIENT_ALLOC*,RPC_CLIENT_FREE*,RPC_CLIENT_ALLOC**,RPC_CLIENT_FREE**); -void RPC_ENTRY NdrRpcSsEnableAllocate(PMIDL_STUB_MESSAGE); -void RPC_ENTRY NdrRpcSsDisableAllocate(PMIDL_STUB_MESSAGE); -void RPC_ENTRY NdrRpcSmSetClientToOsf(PMIDL_STUB_MESSAGE); -void*RPC_ENTRY NdrRpcSmClientAllocate(unsigned int); -void RPC_ENTRY NdrRpcSmClientFree(void*); -void*RPC_ENTRY NdrRpcSsDefaultAllocate(unsigned int); -void RPC_ENTRY NdrRpcSsDefaultFree(void*); -PFULL_PTR_XLAT_TABLES RPC_ENTRY NdrFullPointerXlatInit(unsigned long,XLAT_SIDE); -void RPC_ENTRY NdrFullPointerXlatFree(PFULL_PTR_XLAT_TABLES); -int RPC_ENTRY NdrFullPointerQueryPointer(PFULL_PTR_XLAT_TABLES,void*,unsigned char,unsigned long*); -int RPC_ENTRY NdrFullPointerQueryRefId(PFULL_PTR_XLAT_TABLES,unsigned long,unsigned char,void**); -void RPC_ENTRY NdrFullPointerInsertRefId(PFULL_PTR_XLAT_TABLES,unsigned long,void*); -int RPC_ENTRY NdrFullPointerFree(PFULL_PTR_XLAT_TABLES,void*); -void*RPC_ENTRY NdrAllocate(PMIDL_STUB_MESSAGE,unsigned int); -void RPC_ENTRY NdrClearOutParameters(PMIDL_STUB_MESSAGE,PFORMAT_STRING,void*); -void*RPC_ENTRY NdrOleAllocate(unsigned int); -void RPC_ENTRY NdrOleFree(void*); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/rpcnsi.h b/winsup/w32api/include/rpcnsi.h deleted file mode 100644 index 69547c8e4..000000000 --- a/winsup/w32api/include/rpcnsi.h +++ /dev/null @@ -1,118 +0,0 @@ -#ifndef _RPCNSI_H -#define _RPCNSI_H -#ifdef __cplusplus -extern "C" { -#endif -typedef void *RPC_NS_HANDLE; -#define RPC_C_NS_SYNTAX_DEFAULT 0 -#define RPC_C_NS_SYNTAX_DCE 3 -#define RPC_C_PROFILE_DEFAULT_ELT 0 -#define RPC_C_PROFILE_ALL_ELT 1 -#define RPC_C_PROFILE_MATCH_BY_IF 2 -#define RPC_C_PROFILE_MATCH_BY_MBR 3 -#define RPC_C_PROFILE_MATCH_BY_BOTH 4 -#define RPC_C_NS_DEFAULT_EXP_AGE -1 - -RPC_STATUS RPC_ENTRY RpcNsBindingExportA(unsigned long,unsigned char*,RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*); -RPC_STATUS RPC_ENTRY RpcNsBindingUnexportA(unsigned long,unsigned char*,RPC_IF_HANDLE,UUID_VECTOR*); -RPC_STATUS RPC_ENTRY RpcNsBindingLookupBeginA(unsigned long,unsigned char*,RPC_IF_HANDLE,UUID*,unsigned long,RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsBindingLookupNext(RPC_NS_HANDLE,RPC_BINDING_VECTOR**); -RPC_STATUS RPC_ENTRY RpcNsBindingLookupDone(RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsGroupDeleteA(unsigned long,unsigned char*); -RPC_STATUS RPC_ENTRY RpcNsGroupMbrAddA(unsigned long,unsigned char*,unsigned long,unsigned char*); -RPC_STATUS RPC_ENTRY RpcNsGroupMbrRemoveA(unsigned long,unsigned char*,unsigned long,unsigned char*); -RPC_STATUS RPC_ENTRY RpcNsGroupMbrInqBeginA(unsigned long,unsigned char*,unsigned long,RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsGroupMbrInqNextA(RPC_NS_HANDLE,unsigned char**); -RPC_STATUS RPC_ENTRY RpcNsGroupMbrInqDone(RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsProfileDeleteA(unsigned long,unsigned char*); -RPC_STATUS RPC_ENTRY RpcNsProfileEltAddA(unsigned long,unsigned char*,RPC_IF_ID*,unsigned long,unsigned char*,unsigned long,unsigned char*); -RPC_STATUS RPC_ENTRY RpcNsProfileEltRemoveA(unsigned long,unsigned char*,RPC_IF_ID*,unsigned long,unsigned char*); -RPC_STATUS RPC_ENTRY RpcNsProfileEltInqBeginA(unsigned long,unsigned char*,unsigned long,RPC_IF_ID*,unsigned long,unsigned long,unsigned char*,RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsProfileEltInqNextA(RPC_NS_HANDLE,RPC_IF_ID*,unsigned char**,unsigned long*,unsigned char**); -RPC_STATUS RPC_ENTRY RpcNsProfileEltInqDone(RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsEntryObjectInqNext(IN RPC_NS_HANDLE,OUT UUID*); -RPC_STATUS RPC_ENTRY RpcNsEntryObjectInqDone(IN OUT RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsEntryExpandNameA(unsigned long,unsigned char*,unsigned char**); -RPC_STATUS RPC_ENTRY RpcNsMgmtBindingUnexportA(unsigned long,unsigned char*,RPC_IF_ID*,unsigned long,UUID_VECTOR*); -RPC_STATUS RPC_ENTRY RpcNsMgmtEntryCreateA(unsigned long,unsigned char*); -RPC_STATUS RPC_ENTRY RpcNsMgmtEntryDeleteA(unsigned long,unsigned char*); -RPC_STATUS RPC_ENTRY RpcNsMgmtEntryInqIfIdsA(unsigned long,unsigned char*,RPC_IF_ID_VECTOR**); -RPC_STATUS RPC_ENTRY RpcNsMgmtHandleSetExpAge(RPC_NS_HANDLE,unsigned long); -RPC_STATUS RPC_ENTRY RpcNsMgmtInqExpAge(unsigned long*); -RPC_STATUS RPC_ENTRY RpcNsMgmtSetExpAge(unsigned long); -RPC_STATUS RPC_ENTRY RpcNsBindingImportNext(RPC_NS_HANDLE,RPC_BINDING_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsBindingImportDone(RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsBindingSelect(RPC_BINDING_VECTOR*,RPC_BINDING_HANDLE*); -#ifndef UNICODE_ONLY -RPC_STATUS RPC_ENTRY RpcNsEntryObjectInqBeginA(unsigned long,unsigned char*,RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsBindingImportBeginA(unsigned long,unsigned char*,RPC_IF_HANDLE,UUID*,RPC_NS_HANDLE*); -#endif -#ifdef RPC_UNICODE_SUPPORTED -RPC_STATUS RPC_ENTRY RpcNsBindingExportW(unsigned long,unsigned short*,RPC_IF_HANDLE,RPC_BINDING_VECTOR*,UUID_VECTOR*); -RPC_STATUS RPC_ENTRY RpcNsBindingUnexportW(unsigned long,unsigned short*,RPC_IF_HANDLE,UUID_VECTOR*); -RPC_STATUS RPC_ENTRY RpcNsBindingLookupBeginW(unsigned long,unsigned short*,RPC_IF_HANDLE,UUID*,unsigned long,RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsGroupDeleteW(unsigned long,unsigned short*); -RPC_STATUS RPC_ENTRY RpcNsGroupMbrAddW(unsigned long,unsigned short*,unsigned long,unsigned short*); -RPC_STATUS RPC_ENTRY RpcNsGroupMbrRemoveW(unsigned long,unsigned short*,unsigned long,unsigned short*); -RPC_STATUS RPC_ENTRY RpcNsGroupMbrInqBeginW(unsigned long,unsigned short*,unsigned long,RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsGroupMbrInqNextW(RPC_NS_HANDLE,unsigned short**); -RPC_STATUS RPC_ENTRY RpcNsProfileDeleteW(unsigned long,unsigned short*); -RPC_STATUS RPC_ENTRY RpcNsProfileEltAddW(unsigned long,unsigned short*, RPC_IF_ID*,unsigned long,unsigned short*,unsigned long,unsigned short*); -RPC_STATUS RPC_ENTRY RpcNsProfileEltRemoveW(unsigned long,unsigned short*, RPC_IF_ID*,unsigned long,unsigned short*); -RPC_STATUS RPC_ENTRY RpcNsProfileEltInqBeginW(unsigned long,unsigned short*, unsigned long,RPC_IF_ID*,unsigned long,unsigned long,unsigned short*, RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsProfileEltInqNextW(RPC_NS_HANDLE,RPC_IF_ID*, unsigned short**,unsigned long*,unsigned short**); -RPC_STATUS RPC_ENTRY RpcNsEntryObjectInqBeginW(unsigned long,unsigned short*,RPC_NS_HANDLE*); -RPC_STATUS RPC_ENTRY RpcNsEntryExpandNameW(unsigned long,unsigned short*,unsigned short**); -RPC_STATUS RPC_ENTRY RpcNsMgmtBindingUnexportW(unsigned long,unsigned short*,RPC_IF_ID*,unsigned long,UUID_VECTOR*); -RPC_STATUS RPC_ENTRY RpcNsMgmtEntryCreateW(unsigned long,unsigned short*); -RPC_STATUS RPC_ENTRY RpcNsMgmtEntryDeleteW(unsigned long,unsigned short*); -RPC_STATUS RPC_ENTRY RpcNsMgmtEntryInqIfIdsW(unsigned long,unsigned short , RPC_IF_ID_VECTOR**); -RPC_STATUS RPC_ENTRY RpcNsBindingImportBeginW(unsigned long,unsigned short*,RPC_IF_HANDLE,UUID*,RPC_NS_HANDLE*); -#endif /* RPC_UNICODE_SUPPORTED */ -#ifdef UNICODE -#define RpcNsBindingLookupBegin RpcNsBindingLookupBeginW -#define RpcNsBindingImportBegin RpcNsBindingImportBeginW -#define RpcNsBindingExport RpcNsBindingExportW -#define RpcNsBindingUnexport RpcNsBindingUnexportW -#define RpcNsGroupDelete RpcNsGroupDeleteW -#define RpcNsGroupMbrAdd RpcNsGroupMbrAddW -#define RpcNsGroupMbrRemove RpcNsGroupMbrRemoveW -#define RpcNsGroupMbrInqBegin RpcNsGroupMbrInqBeginW -#define RpcNsGroupMbrInqNext RpcNsGroupMbrInqNextW -#define RpcNsEntryExpandName RpcNsEntryExpandNameW -#define RpcNsEntryObjectInqBegin RpcNsEntryObjectInqBeginW -#define RpcNsMgmtBindingUnexport RpcNsMgmtBindingUnexportW -#define RpcNsMgmtEntryCreate RpcNsMgmtEntryCreateW -#define RpcNsMgmtEntryDelete RpcNsMgmtEntryDeleteW -#define RpcNsMgmtEntryInqIfIds RpcNsMgmtEntryInqIfIdsW -#define RpcNsProfileDelete RpcNsProfileDeleteW -#define RpcNsProfileEltAdd RpcNsProfileEltAddW -#define RpcNsProfileEltRemove RpcNsProfileEltRemoveW -#define RpcNsProfileEltInqBegin RpcNsProfileEltInqBeginW -#define RpcNsProfileEltInqNext RpcNsProfileEltInqNextW -#else -#define RpcNsBindingLookupBegin RpcNsBindingLookupBeginA -#define RpcNsBindingImportBegin RpcNsBindingImportBeginA -#define RpcNsBindingExport RpcNsBindingExportA -#define RpcNsBindingUnexport RpcNsBindingUnexportA -#define RpcNsGroupDelete RpcNsGroupDeleteA -#define RpcNsGroupMbrAdd RpcNsGroupMbrAddA -#define RpcNsGroupMbrRemove RpcNsGroupMbrRemoveA -#define RpcNsGroupMbrInqBegin RpcNsGroupMbrInqBeginA -#define RpcNsGroupMbrInqNext RpcNsGroupMbrInqNextA -#define RpcNsEntryExpandName RpcNsEntryExpandNameA -#define RpcNsEntryObjectInqBegin RpcNsEntryObjectInqBeginA -#define RpcNsMgmtBindingUnexport RpcNsMgmtBindingUnexportA -#define RpcNsMgmtEntryCreate RpcNsMgmtEntryCreateA -#define RpcNsMgmtEntryDelete RpcNsMgmtEntryDeleteA -#define RpcNsMgmtEntryInqIfIds RpcNsMgmtEntryInqIfIdsA -#define RpcNsProfileDelete RpcNsProfileDeleteA -#define RpcNsProfileEltAdd RpcNsProfileEltAddA -#define RpcNsProfileEltRemove RpcNsProfileEltRemoveA -#define RpcNsProfileEltInqBegin RpcNsProfileEltInqBeginA -#define RpcNsProfileEltInqNext RpcNsProfileEltInqNextA -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/rpcnsip.h b/winsup/w32api/include/rpcnsip.h deleted file mode 100644 index 4df26cac2..000000000 --- a/winsup/w32api/include/rpcnsip.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _RPCNSIP_H -#define _RPCNSIP_H -#ifdef __cplusplus -extern "C" { -#endif -typedef struct { - RPC_NS_HANDLE LookupContext; - RPC_BINDING_HANDLE ProposedHandle; - RPC_BINDING_VECTOR *Bindings; -} RPC_IMPORT_CONTEXT_P,*PRPC_IMPORT_CONTEXT_P; -RPC_STATUS RPC_ENTRY I_RpcNsGetBuffer(IN PRPC_MESSAGE); -RPC_STATUS RPC_ENTRY I_RpcNsSendReceive(IN PRPC_MESSAGE,OUT RPC_BINDING_HANDLE*); -void RPC_ENTRY I_RpcNsRaiseException(IN PRPC_MESSAGE,IN RPC_STATUS); -RPC_STATUS RPC_ENTRY I_RpcReBindBuffer(IN PRPC_MESSAGE); -RPC_STATUS RPC_ENTRY I_NsServerBindSearch(void); -RPC_STATUS RPC_ENTRY I_NsClientBindSearch(void); -void RPC_ENTRY I_NsClientBindDone(void); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/rpcnterr.h b/winsup/w32api/include/rpcnterr.h deleted file mode 100644 index 6b075ae07..000000000 --- a/winsup/w32api/include/rpcnterr.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _RPCNTERR_H -#define _RPCNTERR_H -#define RPC_S_OK ERROR_SUCCESS -#define RPC_S_INVALID_ARG ERROR_INVALID_PARAMETER -#define RPC_S_OUT_OF_MEMORY ERROR_OUTOFMEMORY -#define RPC_S_OUT_OF_THREADS ERROR_MAX_THRDS_REACHED -#define RPC_S_INVALID_LEVEL ERROR_INVALID_PARAMETER -#define RPC_S_BUFFER_TOO_SMALL ERROR_INSUFFICIENT_BUFFER -#define RPC_S_INVALID_SECURITY_DESC ERROR_INVALID_SECURITY_DESCR -#define RPC_S_ACCESS_DENIED ERROR_ACCESS_DENIED -#define RPC_S_SERVER_OUT_OF_MEMORY ERROR_NOT_ENOUGH_SERVER_MEMORY -#define RPC_X_NO_MEMORY RPC_S_OUT_OF_MEMORY -#define RPC_X_INVALID_BOUND RPC_S_INVALID_BOUND -#define RPC_X_INVALID_TAG RPC_S_INVALID_TAG -#define RPC_X_ENUM_VALUE_TOO_LARGE RPC_X_ENUM_VALUE_OUT_OF_RANGE -#define RPC_X_SS_CONTEXT_MISMATCH ERROR_INVALID_HANDLE -#define RPC_X_INVALID_BUFFER ERROR_INVALID_USER_BUFFER -#endif diff --git a/winsup/w32api/include/rpcproxy.h b/winsup/w32api/include/rpcproxy.h deleted file mode 100644 index 606526de3..000000000 --- a/winsup/w32api/include/rpcproxy.h +++ /dev/null @@ -1,196 +0,0 @@ -/* - -DREGISTER_PROXY_DLL Generates DllMain, DllRegisterServer, and DllUnregisterServer - -DPROXY_CLSID=clsid Specifies a class ID to be used by the proxy DLL. - -DPROXY_CLSID_IS={..} Specifies the class ID to be used by the proxy DLL. - -DNT35_STRICT No new features -*/ -#ifndef _RPCPROXY_H -#define _RPCPROXY_H -#if defined __cplusplus && !defined CINTERFACE -#warning "rpcproxy type definitions require CINTERFACE" -#else -#ifdef __cplusplus -extern "C" { -#endif -#include -#include -#include - -#define CStdStubBuffer_METHODS CStdStubBuffer_QueryInterface,CStdStubBuffer_AddRef,\ -CStdStubBuffer_Release,CStdStubBuffer_Connect,CStdStubBuffer_Disconnect,CStdStubBuffer_Invoke,\ -CStdStubBuffer_IsIIDSupported,CStdStubBuffer_CountRefs,CStdStubBuffer_DebugServerQueryInterface,\ -CStdStubBuffer_DebugServerRelease -#define IID_GENERIC_CHECK_IID(name,pIID,index) memcmp(pIID,name##_ProxyVtblList[index]->header.piid,16) -#define IID_BS_LOOKUP_SETUP int result, low=-1; -#define IID_BS_LOOKUP_INITIAL_TEST(name,sz,split) if ((result = name##_CHECK_IID(split))>0) { low=sz-split;} else if (!result) { low = split; goto found_label; } -#define IID_BS_LOOKUP_NEXT_TEST(name,split) if ((result = name##_CHECK_IID(low+split))>=0) { low=low+split; if (!result) goto found_label; } -#define IID_BS_LOOKUP_RETURN_RESULT(name,sz,index) low+=1; if ((low>=sz )||(result=name##_CHECK_IID(low))) goto not_found_label; found_label: (index)=low; return 1; not_found_label: return 0; -#define REGISTER_PROXY_DLL_ROUTINES(pProxyFileList, pClsID) \ -HINSTANCE hProxyDll = 0; \ -BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) \ -{ \ -if(fdwReason == DLL_PROCESS_ATTACH) hProxyDll = hinstDLL; \ -return TRUE; \ -} \ -HRESULT STDAPICALLTYPE DllRegisterServer(void) \ -{\ -return NdrDllRegisterProxy(hProxyDll, pProxyFileList, pClsID); \ -}\ -HRESULT STDAPICALLTYPE DllUnregisterServer(void)\ -{\ -return NdrDllUnregisterProxy(hProxyDll, pProxyFileList, pClsID);\ -} -#ifdef PROXY_CLSID -#define CLSID_PSFACTORYBUFFER extern CLSID PROXY_CLSID; -#else -#ifdef PROXY_CLSID_IS -#define CLSID_PSFACTORYBUFFER const CLSID CLSID_PSFactoryBuffer = PROXY_CLSID_IS; -#define PROXY_CLSID CLSID_PSFactoryBuffer -#else -#define CLSID_PSFACTORYBUFFER -#endif -#endif -#ifndef PROXY_CLSID -#define GET_DLL_CLSID (aProxyFileList[0]->pStubVtblList[0] != 0 ? aProxyFileList[0]->pStubVtblList[0]->header.piid : 0) -#else -#define GET_DLL_CLSID &PROXY_CLSID -#endif -#define EXTERN_PROXY_FILE(name) EXTERN_C const ProxyFileInfo name##_ProxyFileInfo; -#define PROXYFILE_LIST_START const ProxyFileInfo * aProxyFileList[] = { -#define REFERENCE_PROXY_FILE(name) & name##_ProxyFileInfo -#define PROXYFILE_LIST_END 0 }; -#define DLLDATA_GETPROXYDLLINFO(pPFList,pClsid) \ -void RPC_ENTRY GetProxyDllInfo( const ProxyFileInfo*** pInfo, const CLSID ** pId ) \ -{ *pInfo = pPFList; *pId = pClsid; }; -#define DLLGETCLASSOBJECTROUTINE(pPFlist, pClsid,pFactory) HRESULT STDAPICALLTYPE DllGetClassObject(REFCLSID rclsid,REFIID riid,void **ppv) \ -{ return NdrDllGetClassObject(rclsid,riid,ppv,pPFlist,pClsid,pFactory ); } -#define DLLCANUNLOADNOW(pFactory) HRESULT STDAPICALLTYPE DllCanUnloadNow(void) \ -{ return NdrDllCanUnloadNow( pFactory ); } -#define DLLDUMMYPURECALL void __cdecl _purecall(void) { } -#define CSTDSTUBBUFFERRELEASE(pFactory) ULONG STDMETHODCALLTYPE CStdStubBuffer_Release(IRpcStubBuffer *This) \ -{ return NdrCStdStubBuffer_Release(This,(IPSFactoryBuffer *)pFactory); } -#ifdef PROXY_DELEGATION -#define CSTDSTUBBUFFER2RELEASE(pFactory) ULONG STDMETHODCALLTYPE CStdStubBuffer2_Release(IRpcStubBuffer *This) \ -{ return NdrCStdStubBuffer2_Release(This,(IPSFactoryBuffer *)pFactory); } -#else -#define CSTDSTUBBUFFER2RELEASE(pFactory) -#endif - -#ifdef REGISTER_PROXY_DLL -#define DLLREGISTRY_ROUTINES(pProxyFileList,pClsID ) REGISTER_PROXY_DLL_ROUTINES(pProxyFileList,pClsID) -#else -#define DLLREGISTRY_ROUTINES(pProxyFileList,pClsID) -#endif -#define DLLDATA_ROUTINES(pProxyFileList,pClsID) \ -CLSID_PSFACTORYBUFFER \ -CStdPSFactoryBuffer gPFactory = {0,0,0,0}; \ -DLLDATA_GETPROXYDLLINFO(pProxyFileList,pClsID) \ -DLLGETCLASSOBJECTROUTINE(pProxyFileList,pClsID,&gPFactory) \ -DLLCANUNLOADNOW(&gPFactory) \ -CSTDSTUBBUFFERRELEASE(&gPFactory) \ -CSTDSTUBBUFFER2RELEASE(&gPFactory) \ -DLLDUMMYPURECALL \ -DLLREGISTRY_ROUTINES(pProxyFileList, pClsID) - -#define DLLDATA_STANDARD_ROUTINES DLLDATA_ROUTINES( (const ProxyFileInfo**) pProxyFileList, &CLSID_PSFactoryBuffer) - -struct tagCInterfaceStubVtbl; -struct tagCInterfaceProxyVtbl; -typedef struct tagCInterfaceStubVtbl *PCInterfaceStubVtblList; -typedef struct tagCInterfaceProxyVtbl *PCInterfaceProxyVtblList; -typedef const char *PCInterfaceName; -typedef int __stdcall IIDLookupRtn(const IID*,int*); -typedef IIDLookupRtn *PIIDLookup; -typedef struct tagProxyFileInfo { - const PCInterfaceProxyVtblList *pProxyVtblList; - const PCInterfaceStubVtblList *pStubVtblList; - const PCInterfaceName * pNamesArray; - const IID ** pDelegatedIIDs; - const PIIDLookup pIIDLookupRtn; - unsigned short TableSize; - unsigned short TableVersion; - unsigned long Filler1; - unsigned long Filler2; - unsigned long Filler3; - unsigned long Filler4; -}ProxyFileInfo; -typedef ProxyFileInfo ExtendedProxyFileInfo; - -typedef struct tagCInterfaceProxyHeader { -#ifdef USE_STUBLESS_PROXY - const void *pStublessProxyInfo; -#endif - const IID *piid; -} CInterfaceProxyHeader; -typedef struct tagCInterfaceProxyVtbl { - CInterfaceProxyHeader header; -#if defined(__WATCOMC__) - void *Vtbl[1]; -#else -#ifdef __GNUC__ -__extension__ -#endif - void *Vtbl[0]; -#endif -} CInterfaceProxyVtbl; -typedef void (__RPC_STUB *PRPC_STUB_FUNCTION)(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,DWORD*); -typedef struct tagCInterfaceStubHeader { - const IID *piid; - const MIDL_SERVER_INFO *pServerInfo; - unsigned long DispatchTableCount; - const PRPC_STUB_FUNCTION *pDispatchTable; -} CInterfaceStubHeader; -typedef struct tagCInterfaceStubVtbl { - CInterfaceStubHeader header; - IRpcStubBufferVtbl Vtbl; -} CInterfaceStubVtbl; -typedef struct tagCStdStubBuffer { - const struct IRpcStubBufferVtbl * lpVtbl; - long RefCount; - struct IUnknown *pvServerObject; -} CStdStubBuffer; -typedef struct tagCStdPSFactoryBuffer { - const IPSFactoryBufferVtbl *lpVtbl; - long RefCount; - const ProxyFileInfo ** pProxyFileList; - long Filler1; -} CStdPSFactoryBuffer; -void RPC_ENTRY NdrProxyInitialize(void*,PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,unsigned int); -void RPC_ENTRY NdrProxyGetBuffer(void*,PMIDL_STUB_MESSAGE); -void RPC_ENTRY NdrProxySendReceive(void*,MIDL_STUB_MESSAGE*); -void RPC_ENTRY NdrProxyFreeBuffer(void*,MIDL_STUB_MESSAGE*); -HRESULT RPC_ENTRY NdrProxyErrorHandler(DWORD); -void RPC_ENTRY NdrStubInitialize(PRPC_MESSAGE,PMIDL_STUB_MESSAGE,PMIDL_STUB_DESC,IRpcChannelBuffer*); -void __RPC_STUB NdrStubForwardingFunction(IRpcStubBuffer*,IRpcChannelBuffer*,PRPC_MESSAGE,DWORD*); -void RPC_ENTRY NdrStubGetBuffer(IRpcStubBuffer*,IRpcChannelBuffer*,PMIDL_STUB_MESSAGE); -HRESULT RPC_ENTRY NdrStubErrorHandler(DWORD); -HRESULT STDMETHODCALLTYPE CStdStubBuffer_QueryInterface(IRpcStubBuffer*,REFIID,void**); -ULONG STDMETHODCALLTYPE CStdStubBuffer_AddRef(IRpcStubBuffer*); -ULONG STDMETHODCALLTYPE CStdStubBuffer_Release(IRpcStubBuffer*); -ULONG STDMETHODCALLTYPE NdrCStdStubBuffer_Release(IRpcStubBuffer*,IPSFactoryBuffer*); -HRESULT STDMETHODCALLTYPE CStdStubBuffer_Connect(IRpcStubBuffer*,IUnknown*); -void STDMETHODCALLTYPE CStdStubBuffer_Disconnect(IRpcStubBuffer*); -HRESULT STDMETHODCALLTYPE CStdStubBuffer_Invoke(IRpcStubBuffer*,RPCOLEMESSAGE*,IRpcChannelBuffer*); -IRpcStubBuffer* STDMETHODCALLTYPE CStdStubBuffer_IsIIDSupported(IRpcStubBuffer*,REFIID); -ULONG STDMETHODCALLTYPE CStdStubBuffer_CountRefs(IRpcStubBuffer*); -HRESULT STDMETHODCALLTYPE CStdStubBuffer_DebugServerQueryInterface(IRpcStubBuffer*,void**); -void STDMETHODCALLTYPE CStdStubBuffer_DebugServerRelease(IRpcStubBuffer*,void*); -HRESULT RPC_ENTRY NdrDllGetClassObject(REFCLSID,REFIID,void**,const ProxyFileInfo**,const CLSID*,CStdPSFactoryBuffer*); -HRESULT RPC_ENTRY NdrDllCanUnloadNow(CStdPSFactoryBuffer*); -#ifndef NT35_STRICT -HRESULT RPC_ENTRY NdrDllRegisterProxy(HMODULE,const ProxyFileInfo**,const CLSID*); -HRESULT RPC_ENTRY NdrDllUnregisterProxy(HMODULE,const ProxyFileInfo**,const CLSID*); -#define STUB_FORWARDING_FUNCTION NdrStubForwardingFunction -ULONG STDMETHODCALLTYPE -CStdStubBuffer2_Release(IRpcStubBuffer*); -ULONG STDMETHODCALLTYPE -NdrCStdStubBuffer2_Release(IRpcStubBuffer*,IPSFactoryBuffer*); -#define CStdStubBuffer_DELEGATING_METHODS 0, 0, CStdStubBuffer2_Release, 0, 0, 0, 0, 0, 0, 0 -#endif - -#ifdef __cplusplus -} -#endif -#endif /* defined __cplusplus && !defined CINTERFACE */ -#endif /* ndef _RPCPROXY_H */ - diff --git a/winsup/w32api/include/schannel.h b/winsup/w32api/include/schannel.h deleted file mode 100644 index ae16a4547..000000000 --- a/winsup/w32api/include/schannel.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef _SCHANNEL_H -#define _SCHANNEL_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define SCHANNEL_CRED_VERSION 4 -#define SCHANNEL_SHUTDOWN 1 -/* ? Do these belong here or in wincrypt.h */ -#define AUTHTYPE_CLIENT 1 -#define AUTHTYPE_SERVER 2 - -#define SP_PROT_TLS1_CLIENT 128 -#define SP_PROT_TLS1_SERVER 64 -#define SP_PROT_SSL3_CLIENT 32 -#define SP_PROT_SSL3_SERVER 16 -#define SP_PROT_SSL2_CLIENT 8 -#define SP_PROT_SSL2_SERVER 4 -#define SP_PROT_PCT1_SERVER 1 -#define SP_PROT_PCT1_CLIENT 2 - -#define SP_PROT_PCT1 (SP_PROT_PCT1_CLIENT|SP_PROT_PCT1_SERVER) -#define SP_PROT_TLS1 (SP_PROT_TLS1_CLIENT|SP_PROT_TLS1_SERVER) -#define SP_PROT_SSL2 (SP_PROT_SSL2_CLIENT|SP_PROT_SSL2_SERVER) -#define SP_PROT_SSL3 (SP_PROT_SSL3_CLIENT|SP_PROT_SSL3_SERVER) - -#define SCH_CRED_NO_SYSTEM_MAPPER 2 -#define SCH_CRED_NO_SERVERNAME_CHECK 4 -#define SCH_CRED_MANUAL_CRED_VALIDATION 8 -#define SCH_CRED_NO_DEFAULT_CREDS 16 -#define SCH_CRED_AUTO_CRED_VALIDATION 32 -#define SCH_CRED_REVOCATION_CHECK_CHAIN 512 -#define SCH_CRED_REVOCATION_CHECK_END_CERT 256 -#define SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 1024 -#define SCH_CRED_IGNORE_NO_REVOCATION_CHECK 2048 -#define SCH_CRED_IGNORE_REVOCATION_OFFLINE 4096 -#define SCH_CRED_USE_DEFAULT_CREDS 64 - -typedef struct _SCHANNEL_CRED { - DWORD dwVersion; - DWORD cCreds; - PCCERT_CONTEXT* paCred; - HCERTSTORE hRootStore; - DWORD cMappers; - struct _HMAPPER** aphMappers; - DWORD cSupportedAlgs; - ALG_ID* palgSupportedAlgs; - DWORD grbitEnabledProtocols; - DWORD dwMinimumCypherStrength; - DWORD dwMaximumCypherStrength; - DWORD dwSessionLifespan; - DWORD dwFlags; - DWORD reserved; -} SCHANNEL_CRED, *PSCHANNEL_CRED; -typedef struct _SecPkgCred_SupportedAlgs { - DWORD cSupportedAlgs; - ALG_ID* palgSupportedAlgs; -} SecPkgCred_SupportedAlgs, *PSecPkgCred_SupportedAlgs; -typedef struct _SecPkgCred_CypherStrengths { - DWORD dwMinimumCypherStrength; - DWORD dwMaximumCypherStrength; -} SecPkgCred_CypherStrengths, *PSecPkgCred_CypherStrengths; -typedef struct _SecPkgCred_SupportedProtocols { - DWORD grbitProtocol; -} SecPkgCred_SupportedProtocols, *PSecPkgCred_SupportedProtocols; -typedef struct _SecPkgContext_IssuerListInfoEx { - PCERT_NAME_BLOB aIssuers; - DWORD cIssuers; -} SecPkgContext_IssuerListInfoEx, *PSecPkgContext_IssuerListInfoEx; -typedef struct _SecPkgContext_ConnectionInfo { - DWORD dwProtocol; - ALG_ID aiCipher; - DWORD dwCipherStrength; - ALG_ID aiHash; - DWORD dwHashStrength; - ALG_ID aiExch; - DWORD dwExchStrength; -} SecPkgContext_ConnectionInfo, *PSecPkgContext_ConnectionInfo; - -#ifdef __cplusplus -} -#endif - -#endif /* _SCHANNEL_H */ diff --git a/winsup/w32api/include/schnlsp.h b/winsup/w32api/include/schnlsp.h deleted file mode 100644 index b72a4c25c..000000000 --- a/winsup/w32api/include/schnlsp.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _SCHNLSP_H -#define _SCHNLSP_H - -#define SECPKG_ATTR_SUPPORTED_ALGS 86 -#define SECPKG_ATTR_CIPHER_STRENGTHS 87 -#define SECPKG_ATTR_SUPPORTED_PROTOCOLS 88 - -#include - -#endif /* _SCHNLSP_H */ diff --git a/winsup/w32api/include/scrnsave.h b/winsup/w32api/include/scrnsave.h deleted file mode 100644 index 30889d0ea..000000000 --- a/winsup/w32api/include/scrnsave.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - Screen saver library by Anders Norlander - - This library is (hopefully) compatible with Microsoft's - screen saver library. - - This is public domain software. - - */ -#ifndef _SCRNSAVE_H -#define _SCRNSAVE_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* configure dialog identifier */ -#define DLG_SCRNSAVECONFIGURE 2003 - -#define idsIsPassword 1000 -#define idsIniFile 1001 -#define idsScreenSaver 1002 -#define idsPassword 1003 -#define idsDifferentPW 1004 -#define idsChangePW 1005 -#define idsBadOldPW 1006 -#define idsAppName 1007 -#define idsNoHelpMemory 1008 -#define idsHelpFile 1009 -#define idsDefKeyword 1010 - -#define IDS_DESCRIPTION 1 -#define ID_APP 100 - -#define WS_GT (WS_GROUP | WS_TABSTOP) -#define SCRM_VERIFYPW WM_APP -#define MAXFILELEN 13 -#define TITLEBARNAMELEN 40 -#define APPNAMEBUFFERLEN 40 -#define BUFFLEN 255 - -#ifndef RC_INVOKED - -/* functions provided by the aothor of the screen saver */ -BOOL WINAPI ScreenSaverConfigureDialog(HWND,UINT,WPARAM,LPARAM); -BOOL WINAPI RegisterDialogClasses(HANDLE); -LONG WINAPI ScreenSaverProc(HWND,UINT,WPARAM,LPARAM); - -/* Change name of function if we are using UNICODE */ -#ifdef UNICODE -#define DefScreenSaverProc DefScreenSaverProcW -#endif - -/* default screen saver proc; call instead of DefWindowProc */ -LONG WINAPI DefScreenSaverProc(HWND,UINT,WPARAM,LPARAM); - -/* change password */ -void WINAPI ScreenSaverChangePassword(HWND); - -/* globals that may be used by screen saver */ -extern HINSTANCE hMainInstance; -extern HWND hMainWindow; -extern BOOL fChildPreview; -extern TCHAR szName[]; -extern TCHAR szAppName[]; -extern TCHAR szIniFile[]; -extern TCHAR szScreenSaver[]; -extern TCHAR szHelpFile[]; -extern TCHAR szNoHelpMemory[]; -extern UINT MyHelpMessage; - -#endif /* RC_INVOKED */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SCRNSAVE_H */ diff --git a/winsup/w32api/include/security.h b/winsup/w32api/include/security.h deleted file mode 100644 index bdf8e4116..000000000 --- a/winsup/w32api/include/security.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef _SECURITY_H -#define _SECURITY_H - -#define SEC_E_OK 0 -#define SEC_E_CERT_EXPIRED (-2146893016) -#define SEC_E_INCOMPLETE_MESSAGE (-2146893032) -#define SEC_E_INSUFFICIENT_MEMORY (-2146893056) -#define SEC_E_INTERNAL_ERROR (-2146893052) -#define SEC_E_INVALID_HANDLE (-2146893055) -#define SEC_E_INVALID_TOKEN (-2146893048) -#define SEC_E_LOGON_DENIED (-2146893044) -#define SEC_E_NO_AUTHENTICATING_AUTHORITY (-2146893039) -#define SEC_E_NO_CREDENTIALS (-2146893042) -#define SEC_E_TARGET_UNKNOWN (-2146893053) -#define SEC_E_UNSUPPORTED_FUNCTION (-2146893054) -#define SEC_E_UNTRUSTED_ROOT (-2146893019) -#define SEC_E_WRONG_PRINCIPAL (-2146893022) -#define SEC_E_SECPKG_NOT_FOUND (-2146893051) -#define SEC_E_QOP_NOT_SUPPORTED (-2146893046) -#define SEC_E_UNKNOWN_CREDENTIALS (-2146893043) -#define SEC_E_NOT_OWNER (-2146893050) -#define SEC_I_RENEGOTIATE 590625 -#define SEC_I_COMPLETE_AND_CONTINUE 590612 -#define SEC_I_COMPLETE_NEEDED 590611 -#define SEC_I_CONTINUE_NEEDED 590610 -#define SEC_I_INCOMPLETE_CREDENTIALS 590624 - -/* always a char */ -typedef char SEC_CHAR; -typedef wchar_t SEC_WCHAR; -typedef long SECURITY_STATUS; -#define SEC_FAR - -#include -#include - -#endif /* _SECURITY_H */ diff --git a/winsup/w32api/include/setupapi.h b/winsup/w32api/include/setupapi.h deleted file mode 100644 index 2202e2475..000000000 --- a/winsup/w32api/include/setupapi.h +++ /dev/null @@ -1,1550 +0,0 @@ -#ifndef _SETUPAPI_H_ -#define _SETUPAPI_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define WINSETUPAPI DECLSPEC_IMPORT - -#define LINE_LEN 256 -#define MAX_INF_STRING_LENGTH 4096 -#define MAX_TITLE_LEN 60 -#define MAX_INSTRUCTION_LEN 256 -#define MAX_LABEL_LEN 30 -#define MAX_SERVICE_NAME_LEN 256 -#define MAX_SUBTITLE_LEN 256 -#define SP_MAX_MACHINENAME_LENGTH (MAX_PATH + 3) - -#define COPYFLG_WARN_IF_SKIP 0x00000001 -#define COPYFLG_NOSKIP 0x00000002 -#define COPYFLG_NOVERSIONCHECK 0x00000004 -#define COPYFLG_FORCE_FILE_IN_USE 0x00000008 -#define COPYFLG_NO_OVERWRITE 0x00000010 -#define COPYFLG_NO_VERSION_DIALOG 0x00000020 -#define COPYFLG_OVERWRITE_OLDER_ONLY 0x00000040 -#define COPYFLG_REPLACEONLY 0x00000400 -#define COPYFLG_NODECOMP 0x00000800 -#define COPYFLG_REPLACE_BOOT_FILE 0x00001000 -#define COPYFLG_NOPRUNE 0x00002000 -#define DELFLG_IN_USE 0x00000001 -#define DELFLG_IN_USE1 0x00010000 -#define DI_REMOVEDEVICE_GLOBAL 0x00000001 -#define DI_REMOVEDEVICE_CONFIGSPECIFIC 0x00000002 -#define DI_UNREMOVEDEVICE_CONFIGSPECIFIC 0x00000002 -#define DI_SHOWOEM 0x00000001 -#define DI_SHOWCOMPAT 0x00000002 -#define DI_SHOWCLASS 0x00000004 -#define DI_SHOWALL 0x00000007 -#define DI_NOVCP 0x00000008 -#define DI_DIDCOMPAT 0x00000010 -#define DI_DIDCLASS 0x00000020 -#define DI_AUTOASSIGNRES 0x00000040 -#define DI_NEEDRESTART 0x00000080 -#define DI_NEEDREBOOT 0x00000100 -#define DI_NOBROWSE 0x00000200 -#define DI_MULTMFGS 0x00000400 -#define DI_DISABLED 0x00000800 -#define DI_GENERALPAGE_ADDED 0x00001000 -#define DI_RESOURCEPAGE_ADDED 0x00002000 -#define DI_PROPERTIES_CHANGE 0x00004000 -#define DI_INF_IS_SORTED 0x00008000 -#define DI_ENUMSINGLEINF 0x00010000 -#define DI_DONOTCALLCONFIGMG 0x00020000 -#define DI_INSTALLDISABLED 0x00040000 -#define DI_COMPAT_FROM_CLASS 0x00080000 -#define DI_CLASSINSTALLPARAMS 0x00100000 -#define DI_NODI_DEFAULTACTION 0x00200000 -#define DI_QUIETINSTALL 0x00800000 -#define DI_NOFILECOPY 0x01000000 -#define DI_FORCECOPY 0x02000000 -#define DI_DRIVERPAGE_ADDED 0x04000000 -#define DI_USECI_SELECTSTRINGS 0x08000000 -#define DI_OVERRIDE_INFFLAGS 0x10000000 -#define DI_PROPS_NOCHANGEUSAGE 0x20000000 -#define DI_NOSELECTICONS 0x40000000 -#define DI_NOWRITE_IDS 0x80000000 -#define DI_FLAGSEX_USEOLDINFSEARCH 0x00000001 -#define DI_FLAGSEX_AUTOSELECTRANK0 0x00000002 -#define DI_FLAGSEX_CI_FAILED 0x00000004 -#define DI_FLAGSEX_DIDINFOLIST 0x00000010 -#define DI_FLAGSEX_DIDCOMPATINFO 0x00000020 -#define DI_FLAGSEX_FILTERCLASSES 0x00000040 -#define DI_FLAGSEX_SETFAILEDINSTALL 0x00000080 -#define DI_FLAGSEX_DEVICECHANGE 0x00000100 -#define DI_FLAGSEX_ALWAYSWRITEIDS 0x00000200 -#define DI_FLAGSEX_PROPCHANGE_PENDING 0x00000400 -#define DI_FLAGSEX_ALLOWEXCLUDEDDRVS 0x00000800 -#define DI_FLAGSEX_NOUIONQUERYREMOVE 0x00001000 -#define DI_FLAGSEX_USECLASSFORCOMPAT 0x00002000 -#define DI_FLAGSEX_OLDINF_IN_CLASSLIST 0x00004000 -#define DI_FLAGSEX_NO_DRVREG_MODIFY 0x00008000 -#define DI_FLAGSEX_IN_SYSTEM_SETUP 0x00010000 -#define DI_FLAGSEX_INET_DRIVER 0x00020000 -#define DI_FLAGSEX_APPENDDRIVERLIST 0x00040000 -#define DI_FLAGSEX_PREINSTALLBACKUP 0x00080000 -#define DI_FLAGSEX_BACKUPONREPLACE 0x00100000 -#define DI_FLAGSEX_DRIVERLIST_FROM_URL 0x00200000 -#define DI_FLAGSEX_RESERVED1 0x00400000 -#define DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS 0x00800000 -#define DI_FLAGSEX_POWERPAGE_ADDED 0x01000000 -#define DIBCI_NOINSTALLCLASS 0x00000001 -#define DIBCI_NODISPLAYCLASS 0x00000002 -#define DICD_GENERATE_ID 0x00000001 -#define DICD_INHERIT_CLASSDRVS 0x00000002 -#define DICS_ENABLE 1 -#define DICS_FLAG_GLOBAL 1 -#define DICS_DISABLE 2 -#define DICS_FLAG_CONFIGSPECIFIC 2 -#define DICS_PROPCHANGE 3 -#define DICS_START 4 -#define DICS_FLAG_CONFIGGENERAL 4 -#define DICS_STOP 5 -#define DIF_SELECTDEVICE 1 -#define DIF_INSTALLDEVICE 2 -#define DIF_ASSIGNRESOURCES 3 -#define DIF_PROPERTIES 4 -#define DIF_REMOVE 5 -#define DIF_FIRSTTIMESETUP 6 -#define DIF_FOUNDDEVICE 7 -#define DIF_SELECTCLASSDRIVERS 8 -#define DIF_VALIDATECLASSDRIVERS 9 -#define DIF_INSTALLCLASSDRIVERS 10 -#define DIF_CALCDISKSPACE 11 -#define DIF_DESTROYPRIVATEDATA 12 -#define DIF_VALIDATEDRIVER 13 -#define DIF_MOVEDEVICE 14 -#define DIF_DETECT 15 -#define DIF_INSTALLWIZARD 16 -#define DIF_DESTROYWIZARDDATA 17 -#define DIF_PROPERTYCHANGE 18 -#define DIF_ENABLECLASS 19 -#define DIF_DETECTVERIFY 20 -#define DIF_INSTALLDEVICEFILES 21 -#define DIF_UNREMOVE 22 -#define DIF_SELECTBESTCOMPATDRV 23 -#define DIF_ALLOW_INSTALL 24 -#define DIF_REGISTERDEVICE 25 -#define DIF_NEWDEVICEWIZARD_PRESELECT 26 -#define DIF_NEWDEVICEWIZARD_SELECT 27 -#define DIF_NEWDEVICEWIZARD_PREANALYZE 28 -#define DIF_NEWDEVICEWIZARD_POSTANALYZE 29 -#define DIF_NEWDEVICEWIZARD_FINISHINSTALL 30 -#define DIF_UNUSED1 31 -#define DIF_INSTALLINTERFACES 32 -#define DIF_DETECTCANCEL 33 -#define DIF_REGISTER_COINSTALLERS 34 -#define DIF_ADDPROPERTYPAGE_ADVANCED 35 -#define DIF_ADDPROPERTYPAGE_BASIC 36 -#define DIF_RESERVED1 37 -#define DIF_TROUBLESHOOTER 38 -#define DIF_POWERMESSAGEWAKE 39 -#define DIGCF_DEFAULT 0x00000001 -#define DIGCDP_FLAG_BASIC 0x00000001 -#define DIGCF_PRESENT 0x00000002 -#define DIGCDP_FLAG_ADVANCED 0x00000002 -#define DIGCF_ALLCLASSES 0x00000004 -#define DIGCF_PROFILE 0x00000008 -#define DIGCF_DEVICEINTERFACE 0x00000010 -#define DIGCF_INTERFACEDEVICE 0x00000010 -#define DIOCR_INSTALLER 0x00000001 -#define DIOCR_INTERFACE 0x00000002 -#define DIODI_NO_ADD 0x00000001 -#define DIOD_INHERIT_CLASSDRVS 0x00000002 -#define DIOD_CANCEL_REMOVE 0x00000004 -#define DIREG_DEV 0x00000001 -#define DIREG_DRV 0x00000002 -#define DIREG_BOTH 0x00000004 -#define DIRID_ABSOLUTE -1 -#define DIRID_NULL 0 -#define DIRID_SRCPATH 1 -#define DIRID_WINDOWS 10 -#define DIRID_SYSTEM 11 -#define DIRID_DRIVERS 12 -#define DIRID_INF 17 -#define DIRID_HELP 18 -#define DIRID_FONTS 20 -#define DIRID_VIEWERS 21 -#define DIRID_COLOR 23 -#define DIRID_APPS 24 -#define DIRID_SHARED 25 -#define DIRID_BOOT 30 -#define DIRID_SYSTEM16 50 -#define DIRID_SPOOL 51 -#define DIRID_SPOOLDRIVERS 52 -#define DIRID_USERPROFILE 53 -#define DIRID_LOADER 54 -#define DIRID_PRINTPROCESSOR 55 -#define DIRID_COMMON_STARTMENU 16406 -#define DIRID_COMMON_PROGRAMS 16407 -#define DIRID_COMMON_STARTUP 16408 -#define DIRID_COMMON_DESKTOPDIRECTORY 16409 -#define DIRID_COMMON_FAVORITES 16415 -#define DIRID_COMMON_APPDATA 16419 -#define DIRID_PROGRAM_FILES 16422 -#define DIRID_SYSTEM_X86 16425 -#define DIRID_PROGRAM_FILES_X86 16426 -#define DIRID_PROGRAM_FILES_COMMON 16427 -#define DIRID_PROGRAM_FILES_COMMONX86 16428 -#define DIRID_COMMON_TEMPLATES 16429 -#define DIRID_COMMON_DOCUMENTS 16430 -#define DIRID_USER 0x8000 -#define DIRID_ABSOLUTE_16BIT 0xffff -#define DIRID_IOSUBSYS DIRID_DRIVERS -#define DIRID_DEFAULT DIRID_SYSTEM -#define DMI_MASK 0x00000001 -#define DMI_BKCOLOR 0x00000002 -#define DMI_USERECT 0x00000004 -#define DNF_DUPDESC 0x00000001 -#define DNF_OLDDRIVER 0x00000002 -#define DNF_EXCLUDEFROMLIST 0x00000004 -#define DNF_NODRIVER 0x00000008 -#define DNF_LEGACYINF 0x00000010 -#define DNF_CLASS_DRIVER 0x00000020 -#define DNF_COMPATIBLE_DRIVER 0x00000040 -#define DNF_INET_DRIVER 0x00000080 -#define DNF_UNUSED1 0x00000100 -#define DNF_INDEXED_DRIVER 0x00000200 -#define DNF_OLD_INET_DRIVER 0x00000400 -#define DNF_BAD_DRIVER 0x00000800 -#define DNF_DUPPROVIDER 0x00001000 -#define DPROMPT_SUCCESS 0 -#define DPROMPT_CANCEL 1 -#define DPROMPT_SKIPFILE 2 -#define DPROMPT_BUFFERTOOSMALL 3 -#define DPROMPT_OUTOFMEMORY 4 -#define DRIVER_HARDWAREID_RANK 0x00000FFF -#define DYNAWIZ_FLAG_PAGESADDED 0x00000001 -#define DYNAWIZ_FLAG_INSTALLDET_NEXT 0x00000002 -#define DYNAWIZ_FLAG_INSTALLDET_PREV 0x00000004 -#define DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT 0x00000008 -#define ENABLECLASS_QUERY 0 -#define ENABLECLASS_SUCCESS 1 -#define ENABLECLASS_FAILURE 2 -#define ERROR_EXPECTED_SECTION_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0) -#define ERROR_BAD_SECTION_NAME_LINE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|1) -#define ERROR_SECTION_NAME_TOO_LONG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|2) -#define ERROR_GENERAL_SYNTAX (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|3) -#define ERROR_WRONG_INF_STYLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x100) -#define ERROR_NOT_INSTALLED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x1000) -#define ERROR_SECTION_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x101) -#define ERROR_LINE_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x102) -#define ERROR_NO_BACKUP (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x103) -#define ERROR_NO_ASSOCIATED_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x200) -#define ERROR_CLASS_MISMATCH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x201) -#define ERROR_DUPLICATE_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x202) -#define ERROR_NO_DRIVER_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203) -#define ERROR_KEY_DOES_NOT_EXIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x204) -#define ERROR_INVALID_DEVINST_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x205) -#define ERROR_INVALID_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206) -#define ERROR_DEVINST_ALREADY_EXISTS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x207) -#define ERROR_DEVINFO_NOT_REGISTERED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x208) -#define ERROR_INVALID_REG_PROPERTY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209) -#define ERROR_NO_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20A) -#define ERROR_NO_SUCH_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20B) -#define ERROR_CANT_LOAD_CLASS_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20C) -#define ERROR_INVALID_CLASS_INSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20D) -#define ERROR_DI_DO_DEFAULT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20E) -#define ERROR_DI_NOFILECOPY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20F) -#define ERROR_INVALID_HWPROFILE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x210) -#define ERROR_NO_DEVICE_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x211) -#define ERROR_DEVINFO_LIST_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x212) -#define ERROR_DEVINFO_DATA_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x213) -#define ERROR_DI_BAD_PATH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x214) -#define ERROR_NO_CLASSINSTALL_PARAMS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x215) -#define ERROR_FILEQUEUE_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x216) -#define ERROR_BAD_SERVICE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x217) -#define ERROR_NO_CLASS_DRIVER_LIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x218) -#define ERROR_NO_ASSOCIATED_SERVICE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x219) -#define ERROR_NO_DEFAULT_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21A) -#define ERROR_DEVICE_INTERFACE_ACTIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21B) -#define ERROR_DEVICE_INTERFACE_REMOVED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21C) -#define ERROR_BAD_INTERFACE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21D) -#define ERROR_NO_SUCH_INTERFACE_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21E) -#define ERROR_INVALID_REFERENCE_STRING (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21F) -#define ERROR_INVALID_MACHINENAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x220) -#define ERROR_REMOTE_COMM_FAILURE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x221) -#define ERROR_MACHINE_UNAVAILABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x222) -#define ERROR_NO_CONFIGMGR_SERVICES (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x223) -#define ERROR_INVALID_PROPPAGE_PROVIDER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x224) -#define ERROR_NO_SUCH_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x225) -#define ERROR_DI_POSTPROCESSING_REQUIRED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x226) -#define ERROR_INVALID_COINSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x227) -#define ERROR_NO_COMPAT_DRIVERS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x228) -#define ERROR_NO_DEVICE_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x229) -#define ERROR_INVALID_INF_LOGCONFIG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22A) -#define ERROR_DI_DONT_INSTALL (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22B) -#define ERROR_INVALID_FILTER_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22C) -#define ERROR_NON_WINDOWS_NT_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22D) -#define ERROR_NON_WINDOWS_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22E) -#define ERROR_NO_CATALOG_FOR_OEM_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22F) -#define ERROR_DEVINSTALL_QUEUE_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x230) -#define ERROR_NOT_DISABLEABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x231) -#define ERROR_CANT_REMOVE_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x232) -#define ERROR_INTERFACE_DEVICE_ACTIVE ERROR_DEVICE_INTERFACE_ACTIVE -#define ERROR_INTERFACE_DEVICE_REMOVED ERROR_DEVICE_INTERFACE_REMOVED -#define ERROR_NO_DEFAULT_INTERFACE_DEVICE ERROR_NO_DEFAULT_DEVICE_INTERFACE -#define ERROR_NO_SUCH_INTERFACE_DEVICE ERROR_NO_SUCH_DEVICE_INTERFACE - -#define FILEOP_COPY 0 -#define FILEOP_ABORT 0 -#define FILE_COMPRESSION_NONE 0 -#define FILEOP_RENAME 1 -#define FILEOP_DOIT 1 -#define FILE_COMPRESSION_WINLZA 1 -#define FILEOP_DELETE 2 -#define FILEOP_SKIP 2 -#define FILE_COMPRESSION_MSZIP 2 -#define FILEOP_BACKUP 3 -#define FILE_COMPRESSION_NTCAB 3 -#define FILEOP_NEWPATH 4 -#define FILEOP_RETRY FILEOP_DOIT -#define FLG_ADDREG_TYPE_SZ 0x00000000 -#define FLG_ADDREG_BINVALUETYPE 0x00000001 -#define FLG_ADDREG_NOCLOBBER 0x00000002 -#define FLG_ADDREG_DELVAL 0x00000004 -#define FLG_ADDREG_APPEND 0x00000008 -#define FLG_ADDREG_KEYONLY 0x00000010 -#define FLG_ADDREG_OVERWRITEONLY 0x00000020 -#define FLG_ADDREG_TYPE_MULTI_SZ 0x00010000 -#define FLG_ADDREG_TYPE_EXPAND_SZ 0x00020000 -#define FLG_ADDREG_TYPE_BINARY (0x00000000|FLG_ADDREG_BINVALUETYPE) -#define FLG_ADDREG_TYPE_DWORD (0x00010000|FLG_ADDREG_BINVALUETYPE) -#define FLG_ADDREG_TYPE_NONE (0x00020000|FLG_ADDREG_BINVALUETYPE) -#define FLG_ADDREG_TYPE_MASK (0xFFFF0000|FLG_ADDREG_BINVALUETYPE) -#define FLG_BITREG_CLEARBITS 0x00000000 -#define FLG_BITREG_SETBITS 0x00000001 -#define FLG_PROFITEM_CURRENTUSER 0x00000001 -#define FLG_PROFITEM_DELETE 0x00000002 -#define FLG_PROFITEM_GROUP 0x00000004 -#define FLG_PROFITEM_CSIDL 0x00000008 -#define FLG_REGSVR_DLLREGISTER 0x00000001 -#define FLG_REGSVR_DLLINSTALL 0x00000002 -#define MIN_IDD_DYNAWIZ_RESOURCE_ID 10000 -#define MAX_IDD_DYNAWIZ_RESOURCE_ID 11000 -#define IDD_DYNAWIZ_FIRSTPAGE 10000 -#define IDD_DYNAWIZ_SELECT_PREVPAGE 10001 -#define IDD_DYNAWIZ_SELECT_NEXTPAGE 10002 -#define IDD_DYNAWIZ_ANALYZE_PREVPAGE 10003 -#define IDD_DYNAWIZ_ANALYZE_NEXTPAGE 10004 -#define IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE 10006 -#define IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE 10007 -#define IDD_DYNAWIZ_INSTALLDETECTED_NODEVS 10008 -#define IDD_DYNAWIZ_SELECTDEV_PAGE 10009 -#define IDD_DYNAWIZ_ANALYZEDEV_PAGE 10010 -#define IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE 10011 -#define IDD_DYNAWIZ_SELECTCLASS_PAGE 10012 -#define IDF_NOBROWSE 0x00000001 -#define IDF_NOSKIP 0x00000002 -#define IDF_NODETAILS 0x00000004 -#define IDF_NOCOMPRESSED 0x00000008 -#define IDF_CHECKFIRST 0x00000100 -#define IDF_NOBEEP 0x00000200 -#define IDF_NOFOREGROUND 0x00000400 -#define IDF_WARNIFSKIP 0x00000800 -#define IDF_OEMDISK 0x80000000 -#define IDI_RESOURCEFIRST 159 -#define IDI_RESOURCE 159 -#define IDI_RESOURCELAST 161 -#define IDI_RESOURCEOVERLAYFIRST 161 -#define IDI_RESOURCEOVERLAYLAST 161 -#define IDI_CONFLICT 161 -#define IDI_PROBLEM_OVL 500 -#define IDI_DISABLED_OVL 501 -#define IDI_FORCED_OVL 502 -#define IDI_CLASSICON_OVERLAYFIRST 500 -#define IDI_CLASSICON_OVERLAYLAST 502 -#define INF_STYLE_NONE 0x00000000 -#define INF_STYLE_OLDNT 0x00000001 -#define INF_STYLE_WIN4 0x00000002 -#define INF_STYLE_CACHE_ENABLE 0x00000010 -#define INF_STYLE_CACHE_DISABLE 0x00000020 -#define INFINFO_INF_SPEC_IS_HINF 1 -#define INFINFO_INF_NAME_IS_ABSOLUTE 2 -#define INFINFO_DEFAULT_SEARCH 3 -#define INFINFO_REVERSE_DEFAULT_SEARCH 4 -#define INFINFO_INF_PATH_LIST_SEARCH 5 -#define LogSevInformation 0 -#define LogSevWarning 1 -#define LogSevError 2 -#define LogSevFatalError 3 -#define LogSevMaximum 4 -#define LogSeverity DWORD -#define MAX_INSTALLWIZARD_DYNAPAGES 20 -#define NDW_INSTALLFLAG_DIDFACTDEFS 0x00000001 -#define NDW_INSTALLFLAG_HARDWAREALLREADYIN 0x00000002 -#define NDW_INSTALLFLAG_NEEDSHUTDOWN 0x00000200 -#define NDW_INSTALLFLAG_EXPRESSINTRO 0x00000400 -#define NDW_INSTALLFLAG_SKIPISDEVINSTALLED 0x00000800 -#define NDW_INSTALLFLAG_NODETECTEDDEVS 0x00001000 -#define NDW_INSTALLFLAG_INSTALLSPECIFIC 0x00002000 -#define NDW_INSTALLFLAG_SKIPCLASSLIST 0x00004000 -#define NDW_INSTALLFLAG_CI_PICKED_OEM 0x00008000 -#define NDW_INSTALLFLAG_PCMCIAMODE 0x00010000 -#define NDW_INSTALLFLAG_PCMCIADEVICE 0x00020000 -#define NDW_INSTALLFLAG_USERCANCEL 0x00040000 -#define NDW_INSTALLFLAG_KNOWNCLASS 0x00080000 -#define NDW_INSTALLFLAG_NEEDRESTART 0x00000080 -#define NDW_INSTALLFLAG_NEEDREBOOT 0x00000100 -#define SETDIRID_NOT_FULL_PATH 0x00000001 -#define SP_COPY_DELETESOURCE 0x0000001 -#define SP_COPY_REPLACEONLY 0x0000002 -#define SP_COPY_NEWER 0x0000004 -#define SP_COPY_NEWER_OR_SAME 0x0000004 -#define SP_COPY_NOOVERWRITE 0x0000008 -#define SP_COPY_NODECOMP 0x0000010 -#define SP_COPY_LANGUAGEAWARE 0x0000020 -#define SP_COPY_SOURCE_ABSOLUTE 0x0000040 -#define SP_COPY_SOURCEPATH_ABSOLUTE 0x0000080 -#define SP_COPY_IN_USE_NEEDS_REBOOT 0x0000100 -#define SP_COPY_FORCE_IN_USE 0x0000200 -#define SP_COPY_NOSKIP 0x0000400 -#define SP_COPY_FORCE_NOOVERWRITE 0x0001000 -#define SP_COPY_FORCE_NEWER 0x0002000 -#define SP_COPY_WARNIFSKIP 0x0004000 -#define SP_COPY_NOBROWSE 0x0008000 -#define SP_COPY_NEWER_ONLY 0x0010000 -#define SP_COPY_SOURCE_SIS_MASTER 0x0020000 -#define SP_COPY_OEMINF_CATALOG_ONLY 0x0040000 -#define SP_COPY_REPLACE_BOOT_FILE 0x0080000 -#define SP_COPY_NOPRUNE 0x0100000 -#define SP_FLAG_CABINETCONTINUATION 0x0000800 -#define SPCRP_SECURITY 23 -#define SPCRP_SECURITY_SDS 24 -#define SPCRP_DEVTYPE 25 -#define SPCRP_EXCLUSIVE 26 -#define SPCRP_CHARACTERISTICS 27 -#define SPCRP_MAXIMUM_PROPERTY 28 -#define SPDIT_NODRIVER 0 -#define SPDIT_CLASSDRIVER 1 -#define SPDIT_COMPATDRIVER 2 -#define SPDRP_DEVICEDESC 0 -#define SPDRP_HARDWAREID 1 -#define SPDRP_COMPATIBLEIDS 2 -#define SPDRP_UNUSED0 3 -#define SPDRP_SERVICE 4 -#define SPDRP_UNUSED1 5 -#define SPDRP_UNUSED2 6 -#define SPDRP_CLASS 7 -#define SPDRP_CLASSGUID 8 -#define SPDRP_DRIVER 9 -#define SPDRP_CONFIGFLAGS 10 -#define SPDRP_MFG 11 -#define SPDRP_FRIENDLYNAME 12 -#define SPDRP_LOCATION_INFORMATION 13 -#define SPDRP_PHYSICAL_DEVICE_OBJECT_NAME 14 -#define SPDRP_CAPABILITIES 15 -#define SPDRP_UI_NUMBER 16 -#define SPDRP_UPPERFILTERS 17 -#define SPDRP_LOWERFILTERS 18 -#define SPDRP_BUSTYPEGUID 19 -#define SPDRP_LEGACYBUSTYPE 20 -#define SPDRP_BUSNUMBER 21 -#define SPDRP_ENUMERATOR_NAME 22 -#define SPDRP_SECURITY 23 -#define SPDRP_SECURITY_SDS 24 -#define SPDRP_DEVTYPE 25 -#define SPDRP_EXCLUSIVE 26 -#define SPDRP_CHARACTERISTICS 27 -#define SPDRP_ADDRESS 28 -#define SPDRP_UI_NUMBER_DESC_FORMAT 30 -#define SPDRP_MAXIMUM_PROPERTY 31 -#define SPDSL_IGNORE_DISK 1 -#define SPDSL_DISALLOW_NEGATIVE_ADJUST 2 - -#define SPFILENOTIFY_STARTQUEUE 1 -#define SPFILENOTIFY_ENDQUEUE 2 -#define SPFILENOTIFY_STARTSUBQUEUE 3 -#define SPFILENOTIFY_ENDSUBQUEUE 4 -#define SPFILENOTIFY_STARTDELETE 5 -#define SPFILENOTIFY_ENDDELETE 6 -#define SPFILENOTIFY_DELETEERROR 7 -#define SPFILENOTIFY_STARTRENAME 8 -#define SPFILENOTIFY_ENDRENAME 9 -#define SPFILENOTIFY_RENAMEERROR 10 -#define SPFILENOTIFY_STARTCOPY 11 -#define SPFILENOTIFY_ENDCOPY 12 -#define SPFILENOTIFY_COPYERROR 13 -#define SPFILENOTIFY_NEEDMEDIA 14 -#define SPFILENOTIFY_QUEUESCAN 15 -#define SPFILENOTIFY_CABINETINFO 16 -#define SPFILENOTIFY_FILEINCABINET 17 -#define SPFILENOTIFY_NEEDNEWCABINET 18 -#define SPFILENOTIFY_FILEEXTRACTED 19 -#define SPFILENOTIFY_FILEOPDELAYED 20 -#define SPFILENOTIFY_STARTBACKUP 21 -#define SPFILENOTIFY_BACKUPERROR 22 -#define SPFILENOTIFY_ENDBACKUP 23 -#define SPFILENOTIFY_QUEUESCAN_EX 24 -#define SPFILENOTIFY_LANGMISMATCH 0x00010000 -#define SPFILENOTIFY_TARGETEXISTS 0x00020000 -#define SPFILENOTIFY_TARGETNEWER 0x00040000 -#define SPFILELOG_SYSTEMLOG 0x00000001 -#define SPFILELOG_OEMFILE 0x00000001 -#define SPFILELOG_FORCENEW 0x00000002 -#define SPFILELOG_QUERYONLY 0x00000004 -#define SPFILEQ_FILE_IN_USE 0x00000001 -#define SPFILEQ_REBOOT_RECOMMENDED 0x00000002 -#define SPFILEQ_REBOOT_IN_PROGRESS 0x00000004 -#define SPINT_ACTIVE 0x00000001 -#define SPINT_DEFAULT 0x00000002 -#define SPINT_REMOVED 0x00000004 -#define SPID_ACTIVE 0x00000001 -#define SPID_DEFAULT 0x00000002 -#define SPID_REMOVED 0x00000004 -#define SPINST_LOGCONFIG 0x00000001 -#define SPINST_INIFILES 0x00000002 -#define SPINST_REGISTRY 0x00000004 -#define SPINST_INI2REG 0x00000008 -#define SPINST_FILES 0x00000010 -#define SPINST_BITREG 0x00000020 -#define SPINST_REGSVR 0x00000040 -#define SPINST_UNREGSVR 0x00000080 -#define SPINST_PROFILEITEMS 0x00000100 -#define SPINST_ALL 0x000001ff -#define SPINST_SINGLESECTION 0x00010000 -#define SPINST_LOGCONFIG_IS_FORCED 0x00020000 -#define SPINST_LOGCONFIGS_ARE_OVERRIDES 0x00040000 -#define SPOST_NONE 0 -#define SPOST_PATH 1 -#define SPOST_URL 2 -#define SPOST_MAX 3 -#define SPPSR_SELECT_DEVICE_RESOURCES 1 -#define SPPSR_ENUM_BASIC_DEVICE_PROPERTIES 2 -#define SPPSR_ENUM_ADV_DEVICE_PROPERTIES 3 -#define SPQ_SCAN_FILE_PRESENCE 0x00000001 -#define SPQ_DELAYED_COPY 0x00000001 -#define SPQ_SCAN_FILE_VALIDITY 0x00000002 -#define SPQ_SCAN_USE_CALLBACK 0x00000004 -#define SPQ_SCAN_USE_CALLBACKEX 0x00000008 -#define SPQ_SCAN_INFORM_USER 0x00000010 -#define SPQ_SCAN_PRUNE_COPY_QUEUE 0x00000020 -#define SPRDI_FIND_DUPS 0x00000001 -#define SPSVCINST_TAGTOFRONT 0x00000001 -#define SPSVCINST_ASSOCSERVICE 0x00000002 -#define SPSVCINST_DELETEEVENTLOGENTRY 0x00000004 -#define SPSVCINST_NOCLOBBER_DISPLAYNAME 0x00000008 -#define SPSVCINST_NOCLOBBER_STARTTYPE 0x00000010 -#define SPSVCINST_NOCLOBBER_ERRORCONTROL 0x00000020 -#define SPSVCINST_NOCLOBBER_LOADORDERGROUP 0x00000040 -#define SPSVCINST_NOCLOBBER_DEPENDENCIES 0x00000080 -#define SPSVCINST_NOCLOBBER_DESCRIPTION 0x00000100 -#define SPSVCINST_STOPSERVICE 0x00000200 -#define SPWPT_SELECTDEVICE 0x00000001 -#define SPWP_USE_DEVINFO_DATA 0x00000001 -#define SRCINFO_PATH 1 -#define SRCINFO_TAGFILE 2 -#define SRCINFO_DESCRIPTION 3 -#define SRCINFO_FLAGS 4 -#define SRCLIST_TEMPORARY 0x00000001 -#define SRCLIST_NOBROWSE 0x00000002 -#define SRCLIST_SYSTEM 0x00000010 -#define SRCLIST_USER 0x00000020 -#define SRCLIST_SYSIFADMIN 0x00000040 -#define SRCLIST_SUBDIRS 0x00000100 -#define SRCLIST_APPEND 0x00000200 -#define SRCLIST_NOSTRIPPLATFORM 0x00000400 - -#ifndef RC_INVOKED -typedef PVOID HINF; -typedef PVOID HDSKSPC; -typedef PVOID HDEVINFO; -typedef PVOID HSPFILEQ; -typedef PVOID HSPFILELOG; -typedef UINT DI_FUNCTION; - -typedef enum { - SetupFileLogSourceFilename, - SetupFileLogChecksum, - SetupFileLogDiskTagfile, - SetupFileLogDiskDescription, - SetupFileLogOtherInfo, - SetupFileLogMax -} SetupFileLogInfo; -typedef struct _INFCONTEXT { - PVOID Inf; - PVOID CurrentInf; - UINT Section; - UINT Line; -} INFCONTEXT, *PINFCONTEXT; -typedef struct _SP_INF_INFORMATION { - DWORD InfStyle; - DWORD InfCount; - BYTE VersionData[ANYSIZE_ARRAY]; -} SP_INF_INFORMATION, *PSP_INF_INFORMATION; -typedef struct _SP_ALTPLATFORM_INFO { - DWORD cbSize; - DWORD Platform; - DWORD MajorVersion; - DWORD MinorVersion; - WORD ProcessorArchitecture; - WORD Reserved; -} SP_ALTPLATFORM_INFO, *PSP_ALTPLATFORM_INFO; -typedef struct _SP_ORIGINAL_FILE_INFO_A { - DWORD cbSize; - CHAR OriginalInfName[MAX_PATH]; - CHAR OriginalCatalogName[MAX_PATH]; -} SP_ORIGINAL_FILE_INFO_A, *PSP_ORIGINAL_FILE_INFO_A; -typedef struct _SP_ORIGINAL_FILE_INFO_W { - DWORD cbSize; - WCHAR OriginalInfName[MAX_PATH]; - WCHAR OriginalCatalogName[MAX_PATH]; -} SP_ORIGINAL_FILE_INFO_W, *PSP_ORIGINAL_FILE_INFO_W; -typedef struct _FILEPATHS_A { - PCSTR Target; - PCSTR Source; - UINT Win32Error; - DWORD Flags; -} FILEPATHS_A, *PFILEPATHS_A; -typedef struct _FILEPATHS_W { - PCWSTR Target; - PCWSTR Source; - UINT Win32Error; - DWORD Flags; -} FILEPATHS_W, *PFILEPATHS_W; -typedef struct _SOURCE_MEDIA_A { - PCSTR Reserved; - PCSTR Tagfile; - PCSTR Description; - PCSTR SourcePath; - PCSTR SourceFile; - DWORD Flags; -} SOURCE_MEDIA_A, *PSOURCE_MEDIA_A; -typedef struct _SOURCE_MEDIA_W { - PCWSTR Reserved; - PCWSTR Tagfile; - PCWSTR Description; - PCWSTR SourcePath; - PCWSTR SourceFile; - DWORD Flags; -} SOURCE_MEDIA_W, *PSOURCE_MEDIA_W; -typedef struct _CABINET_INFO_A { - PCSTR CabinetPath; - PCSTR CabinetFile; - PCSTR DiskName; - USHORT SetId; - USHORT CabinetNumber; -} CABINET_INFO_A, *PCABINET_INFO_A; -typedef struct _CABINET_INFO_W { - PCWSTR CabinetPath; - PCWSTR CabinetFile; - PCWSTR DiskName; - USHORT SetId; - USHORT CabinetNumber; -} CABINET_INFO_W, *PCABINET_INFO_W; -typedef struct _FILE_IN_CABINET_INFO_A { - PCSTR NameInCabinet; - DWORD FileSize; - DWORD Win32Error; - WORD DosDate; - WORD DosTime; - WORD DosAttribs; - CHAR FullTargetName[MAX_PATH]; -} FILE_IN_CABINET_INFO_A, *PFILE_IN_CABINET_INFO_A; -typedef struct _FILE_IN_CABINET_INFO_W { - PCWSTR NameInCabinet; - DWORD FileSize; - DWORD Win32Error; - WORD DosDate; - WORD DosTime; - WORD DosAttribs; - WCHAR FullTargetName[MAX_PATH]; -} FILE_IN_CABINET_INFO_W, *PFILE_IN_CABINET_INFO_W; -typedef struct _SP_FILE_COPY_PARAMS_A { - DWORD cbSize; - HSPFILEQ QueueHandle; - PCSTR SourceRootPath; - PCSTR SourcePath; - PCSTR SourceFilename; - PCSTR SourceDescription; - PCSTR SourceTagfile; - PCSTR TargetDirectory; - PCSTR TargetFilename; - DWORD CopyStyle; - HINF LayoutInf; - PCSTR SecurityDescriptor; -} SP_FILE_COPY_PARAMS_A, *PSP_FILE_COPY_PARAMS_A; -typedef struct _SP_FILE_COPY_PARAMS_W { - DWORD cbSize; - HSPFILEQ QueueHandle; - PCWSTR SourceRootPath; - PCWSTR SourcePath; - PCWSTR SourceFilename; - PCWSTR SourceDescription; - PCWSTR SourceTagfile; - PCWSTR TargetDirectory; - PCWSTR TargetFilename; - DWORD CopyStyle; - HINF LayoutInf; - PCWSTR SecurityDescriptor; -} SP_FILE_COPY_PARAMS_W, *PSP_FILE_COPY_PARAMS_W; -typedef struct _SP_DEVINFO_DATA { - DWORD cbSize; - GUID ClassGuid; - DWORD DevInst; - ULONG_PTR Reserved; -} SP_DEVINFO_DATA, *PSP_DEVINFO_DATA; -typedef struct _SP_DEVICE_INTERFACE_DATA { - DWORD cbSize; - GUID InterfaceClassGuid; - DWORD Flags; - ULONG_PTR Reserved; -} SP_DEVICE_INTERFACE_DATA, *PSP_DEVICE_INTERFACE_DATA; -/* For backward compatability */ -typedef SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA, *PSP_INTERFACE_DEVICE_DATA; - -typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A { - DWORD cbSize; - CHAR DevicePath[ANYSIZE_ARRAY]; -} SP_DEVICE_INTERFACE_DETAIL_DATA_A, *PSP_DEVICE_INTERFACE_DETAIL_DATA_A; -typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W { - DWORD cbSize; - WCHAR DevicePath[ANYSIZE_ARRAY]; -} SP_DEVICE_INTERFACE_DETAIL_DATA_W, *PSP_DEVICE_INTERFACE_DETAIL_DATA_W; -/* For backward compatability */ -typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A, - *PSP_INTERFACE_DEVICE_DETAIL_DATA_A; -typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W, - *PSP_INTERFACE_DEVICE_DETAIL_DATA_W; - -typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_A { - DWORD cbSize; - GUID ClassGuid; - HANDLE RemoteMachineHandle; - CHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH]; -} SP_DEVINFO_LIST_DETAIL_DATA_A, *PSP_DEVINFO_LIST_DETAIL_DATA_A; -typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_W { - DWORD cbSize; - GUID ClassGuid; - HANDLE RemoteMachineHandle; - WCHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH]; -} SP_DEVINFO_LIST_DETAIL_DATA_W, *PSP_DEVINFO_LIST_DETAIL_DATA_W; - -typedef UINT (CALLBACK* PSP_FILE_CALLBACK_A)(PVOID,UINT,UINT_PTR,UINT_PTR); -typedef UINT (CALLBACK* PSP_FILE_CALLBACK_W)(PVOID,UINT,UINT_PTR,UINT_PTR); -typedef struct _SP_DEVINSTALL_PARAMS_A { - DWORD cbSize; - DWORD Flags; - DWORD FlagsEx; - HWND hwndParent; - PSP_FILE_CALLBACK_A InstallMsgHandler; - PVOID InstallMsgHandlerContext; - HSPFILEQ FileQueue; - ULONG_PTR ClassInstallReserved; - DWORD Reserved; - CHAR DriverPath[MAX_PATH]; -} SP_DEVINSTALL_PARAMS_A, *PSP_DEVINSTALL_PARAMS_A; -typedef struct _SP_DEVINSTALL_PARAMS_W { - DWORD cbSize; - DWORD Flags; - DWORD FlagsEx; - HWND hwndParent; - PSP_FILE_CALLBACK_W InstallMsgHandler; - PVOID InstallMsgHandlerContext; - HSPFILEQ FileQueue; - ULONG_PTR ClassInstallReserved; - DWORD Reserved; - WCHAR DriverPath[MAX_PATH]; -} SP_DEVINSTALL_PARAMS_W, *PSP_DEVINSTALL_PARAMS_W; -typedef struct _SP_CLASSINSTALL_HEADER { - DWORD cbSize; - DI_FUNCTION InstallFunction; -} SP_CLASSINSTALL_HEADER, *PSP_CLASSINSTALL_HEADER; -typedef struct _SP_ENABLECLASS_PARAMS { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - GUID ClassGuid; - DWORD EnableMessage; -} SP_ENABLECLASS_PARAMS, *PSP_ENABLECLASS_PARAMS; -typedef struct _SP_MOVEDEV_PARAMS { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - SP_DEVINFO_DATA SourceDeviceInfoData; -} SP_MOVEDEV_PARAMS, *PSP_MOVEDEV_PARAMS; -typedef struct _SP_PROPCHANGE_PARAMS { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - DWORD StateChange; - DWORD Scope; - DWORD HwProfile; -} SP_PROPCHANGE_PARAMS, *PSP_PROPCHANGE_PARAMS; -typedef struct _SP_REMOVEDEVICE_PARAMS { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - DWORD Scope; - DWORD HwProfile; -} SP_REMOVEDEVICE_PARAMS, *PSP_REMOVEDEVICE_PARAMS; -typedef struct _SP_UNREMOVEDEVICE_PARAMS { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - DWORD Scope; - DWORD HwProfile; -} SP_UNREMOVEDEVICE_PARAMS, *PSP_UNREMOVEDEVICE_PARAMS; -typedef struct _SP_SELECTDEVICE_PARAMS_A { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - CHAR Title[MAX_TITLE_LEN]; - CHAR Instructions[MAX_INSTRUCTION_LEN]; - CHAR ListLabel[MAX_LABEL_LEN]; - CHAR SubTitle[MAX_SUBTITLE_LEN]; - BYTE Reserved[2]; -} SP_SELECTDEVICE_PARAMS_A, *PSP_SELECTDEVICE_PARAMS_A; -typedef struct _SP_SELECTDEVICE_PARAMS_W { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - WCHAR Title[MAX_TITLE_LEN]; - WCHAR Instructions[MAX_INSTRUCTION_LEN]; - WCHAR ListLabel[MAX_LABEL_LEN]; - WCHAR SubTitle[MAX_SUBTITLE_LEN]; -} SP_SELECTDEVICE_PARAMS_W, *PSP_SELECTDEVICE_PARAMS_W; - -typedef BOOL (CALLBACK* PDETECT_PROGRESS_NOTIFY)(PVOID,DWORD); -typedef struct _SP_DETECTDEVICE_PARAMS { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - PDETECT_PROGRESS_NOTIFY DetectProgressNotify; - PVOID ProgressNotifyParam; -} SP_DETECTDEVICE_PARAMS, *PSP_DETECTDEVICE_PARAMS; -typedef struct _SP_INSTALLWIZARD_DATA { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - DWORD Flags; - HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES]; - DWORD NumDynamicPages; - DWORD DynamicPageFlags; - DWORD PrivateFlags; - LPARAM PrivateData; - HWND hwndWizardDlg; -} SP_INSTALLWIZARD_DATA, *PSP_INSTALLWIZARD_DATA; -typedef struct _SP_NEWDEVICEWIZARD_DATA { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - DWORD Flags; - HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES]; - DWORD NumDynamicPages; - HWND hwndWizardDlg; -} SP_NEWDEVICEWIZARD_DATA, *PSP_NEWDEVICEWIZARD_DATA; -typedef SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA, - *PSP_ADDPROPERTYPAGE_DATA; -typedef struct _SP_TROUBLESHOOTER_PARAMS_A { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - CHAR ChmFile[MAX_PATH]; - CHAR HtmlTroubleShooter[MAX_PATH]; -} SP_TROUBLESHOOTER_PARAMS_A, *PSP_TROUBLESHOOTER_PARAMS_A; -typedef struct _SP_TROUBLESHOOTER_PARAMS_W { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - WCHAR ChmFile[MAX_PATH]; - WCHAR HtmlTroubleShooter[MAX_PATH]; -} SP_TROUBLESHOOTER_PARAMS_W, *PSP_TROUBLESHOOTER_PARAMS_W; -typedef struct _SP_POWERMESSAGEWAKE_PARAMS_A { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - CHAR PowerMessageWake[LINE_LEN*2]; -} SP_POWERMESSAGEWAKE_PARAMS_A, *PSP_POWERMESSAGEWAKE_PARAMS_A; -typedef struct _SP_POWERMESSAGEWAKE_PARAMS_W { - SP_CLASSINSTALL_HEADER ClassInstallHeader; - WCHAR PowerMessageWake[LINE_LEN*2]; -} SP_POWERMESSAGEWAKE_PARAMS_W, *PSP_POWERMESSAGEWAKE_PARAMS_W; -typedef struct _SP_DRVINFO_DATA_V2_A { - DWORD cbSize; - DWORD DriverType; - ULONG_PTR Reserved; - CHAR Description[LINE_LEN]; - CHAR MfgName[LINE_LEN]; - CHAR ProviderName[LINE_LEN]; - FILETIME DriverDate; - DWORDLONG DriverVersion; -} SP_DRVINFO_DATA_V2_A, *PSP_DRVINFO_DATA_V2_A; -typedef struct _SP_DRVINFO_DATA_V2_W { - DWORD cbSize; - DWORD DriverType; - ULONG_PTR Reserved; - WCHAR Description[LINE_LEN]; - WCHAR MfgName[LINE_LEN]; - WCHAR ProviderName[LINE_LEN]; - FILETIME DriverDate; - DWORDLONG DriverVersion; -} SP_DRVINFO_DATA_V2_W, *PSP_DRVINFO_DATA_V2_W; -typedef struct _SP_DRVINFO_DATA_V1_A { - DWORD cbSize; - DWORD DriverType; - ULONG_PTR Reserved; - CHAR Description[LINE_LEN]; - CHAR MfgName[LINE_LEN]; - CHAR ProviderName[LINE_LEN]; -} SP_DRVINFO_DATA_V1_A, *PSP_DRVINFO_DATA_V1_A; -typedef struct _SP_DRVINFO_DATA_V1_W { - DWORD cbSize; - DWORD DriverType; - ULONG_PTR Reserved; - WCHAR Description[LINE_LEN]; - WCHAR MfgName[LINE_LEN]; - WCHAR ProviderName[LINE_LEN]; -} SP_DRVINFO_DATA_V1_W, *PSP_DRVINFO_DATA_V1_W; - -#ifdef UNICODE -typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_V1, *PSP_DRVINFO_DATA_V1; -typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2, *PSP_DRVINFO_DATA_V2; -#else -typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1, *PSP_DRVINFO_DATA_V1; -typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2, *PSP_DRVINFO_DATA_V2; -#endif - -#if USE_SP_DRVINFO_DATA_V1 -typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A; -typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W; -typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA, *PSP_DRVINFO_DATA; -#else -typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A; -typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W; -typedef SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA, *PSP_DRVINFO_DATA; -#endif - -typedef DWORD (CALLBACK* PSP_DETSIG_CMPPROC)(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINFO_DATA,PVOID); - -typedef struct _SP_DRVINFO_DETAIL_DATA_A { - DWORD cbSize; - FILETIME InfDate; - DWORD CompatIDsOffset; - DWORD CompatIDsLength; - ULONG_PTR Reserved; - CHAR SectionName[LINE_LEN]; - CHAR InfFileName[MAX_PATH]; - CHAR DrvDescription[LINE_LEN]; - CHAR HardwareID[ANYSIZE_ARRAY]; -} SP_DRVINFO_DETAIL_DATA_A, *PSP_DRVINFO_DETAIL_DATA_A; -typedef struct _SP_DRVINFO_DETAIL_DATA_W { - DWORD cbSize; - FILETIME InfDate; - DWORD CompatIDsOffset; - DWORD CompatIDsLength; - ULONG_PTR Reserved; - WCHAR SectionName[LINE_LEN]; - WCHAR InfFileName[MAX_PATH]; - WCHAR DrvDescription[LINE_LEN]; - WCHAR HardwareID[ANYSIZE_ARRAY]; -} SP_DRVINFO_DETAIL_DATA_W, *PSP_DRVINFO_DETAIL_DATA_W; -typedef struct _SP_DRVINSTALL_PARAMS { - DWORD cbSize; - DWORD Rank; - DWORD Flags; - DWORD_PTR PrivateData; - DWORD Reserved; -} SP_DRVINSTALL_PARAMS, *PSP_DRVINSTALL_PARAMS; - - -typedef struct _COINSTALLER_CONTEXT_DATA { - BOOL PostProcessing; - DWORD InstallResult; - PVOID PrivateData; -} COINSTALLER_CONTEXT_DATA, *PCOINSTALLER_CONTEXT_DATA; -typedef struct _SP_CLASSIMAGELIST_DATA { - DWORD cbSize; - HIMAGELIST ImageList; - ULONG_PTR Reserved; -} SP_CLASSIMAGELIST_DATA, *PSP_CLASSIMAGELIST_DATA; -typedef struct _SP_PROPSHEETPAGE_REQUEST { - DWORD cbSize; - DWORD PageRequested; - HDEVINFO DeviceInfoSet; - PSP_DEVINFO_DATA DeviceInfoData; -} SP_PROPSHEETPAGE_REQUEST, *PSP_PROPSHEETPAGE_REQUEST; -typedef struct _SP_BACKUP_QUEUE_PARAMS_A { - DWORD cbSize; - CHAR FullInfPath[MAX_PATH]; - INT FilenameOffset; -} SP_BACKUP_QUEUE_PARAMS_A, *PSP_BACKUP_QUEUE_PARAMS_A; -typedef struct _SP_BACKUP_QUEUE_PARAMS_W { - DWORD cbSize; - WCHAR FullInfPath[MAX_PATH]; - INT FilenameOffset; -} SP_BACKUP_QUEUE_PARAMS_W, *PSP_BACKUP_QUEUE_PARAMS_W; - - -#ifdef UNICODE -typedef SP_ORIGINAL_FILE_INFO_W SP_ORIGINAL_FILE_INFO, *PSP_ORIGINAL_FILE_INFO; -typedef FILEPATHS_W FILEPATHS, *PFILEPATHS; -typedef SOURCE_MEDIA_W SOURCE_MEDIA, *PSOURCE_MEDIA; -typedef CABINET_INFO_W CABINET_INFO, *PCABINET_INFO; -typedef FILE_IN_CABINET_INFO_W FILE_IN_CABINET_INFO, *PFILE_IN_CABINET_INFO; -typedef SP_FILE_COPY_PARAMS_W SP_FILE_COPY_PARAMS, PSP_FILE_COPY_PARAMS; -typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA, - *PSP_DEVICE_INTERFACE_DETAIL_DATA; -typedef SP_INTERFACE_DEVICE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA, - *PSP_INTERFACE_DEVICE_DETAIL_DATA; /* deprecated */ -typedef SP_DEVINFO_LIST_DETAIL_DATA_W SP_DEVINFO_LIST_DETAIL_DATA, - *PSP_DEVINFO_LIST_DETAIL_DATA; -typedef SP_DEVINSTALL_PARAMS_W SP_DEVINSTALL_PARAMS, *PSP_DEVINSTALL_PARAMS; -typedef SP_SELECTDEVICE_PARAMS_W SP_SELECTDEVICE_PARAMS, *PSP_SELECTDEVICE_PARAMS; -typedef SP_TROUBLESHOOTER_PARAMS_W SP_TROUBLESHOOTER_PARAMS, - *PSP_TROUBLESHOOTER_PARAMS; -typedef SP_POWERMESSAGEWAKE_PARAMS_W SP_POWERMESSAGEWAKE_PARAMS, - *PSP_POWERMESSAGEWAKE_PARAMS; -typedef SP_DRVINFO_DETAIL_DATA_W SP_DRVINFO_DETAIL_DATA, - *PSP_DRVINFO_DETAIL_DATA; -typedef SP_BACKUP_QUEUE_PARAMS_W SP_BACKUP_QUEUE_PARAMS, - *PSP_BACKUP_QUEUE_PARAMS; -#else -typedef SP_ORIGINAL_FILE_INFO_A SP_ORIGINAL_FILE_INFO, *PSP_ORIGINAL_FILE_INFO; -typedef FILEPATHS_A FILEPATHS, *PFILEPATHS; -typedef SOURCE_MEDIA_A SOURCE_MEDIA, *PSOURCE_MEDIA; -typedef CABINET_INFO_A CABINET_INFO, *PCABINET_INFO; -typedef FILE_IN_CABINET_INFO_A FILE_IN_CABINET_INFO, *PFILE_IN_CABINET_INFO; -typedef SP_FILE_COPY_PARAMS_A SP_FILE_COPY_PARAMS, *PSP_FILE_COPY_PARAMS; -typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_DEVICE_INTERFACE_DETAIL_DATA, - *PSP_DEVICE_INTERFACE_DETAIL_DATA; -typedef SP_INTERFACE_DEVICE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA, - *PSP_INTERFACE_DEVICE_DETAIL_DATA; /* deprecated */ -typedef SP_DEVINFO_LIST_DETAIL_DATA_A SP_DEVINFO_LIST_DETAIL_DATA, - *PSP_DEVINFO_LIST_DETAIL_DATA; -typedef SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS, *PSP_DEVINSTALL_PARAMS; -typedef SP_SELECTDEVICE_PARAMS_A SP_SELECTDEVICE_PARAMS, - *PSP_SELECTDEVICE_PARAMS; -typedef SP_TROUBLESHOOTER_PARAMS_A SP_TROUBLESHOOTER_PARAMS, - *PSP_TROUBLESHOOTER_PARAMS; -typedef SP_POWERMESSAGEWAKE_PARAMS_A SP_POWERMESSAGEWAKE_PARAMS, - *PSP_POWERMESSAGEWAKE_PARAMS; -typedef SP_DRVINFO_DETAIL_DATA_A SP_DRVINFO_DETAIL_DATA, - *PSP_DRVINFO_DETAIL_DATA; -typedef SP_BACKUP_QUEUE_PARAMS_A SP_BACKUP_QUEUE_PARAMS, - *PSP_BACKUP_QUEUE_PARAMS; -#endif /* UNICODE */ - -WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupAddSectionToDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,UINT,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupAddSectionToDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,UINT,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupAddToDiskSpaceListA(HDSKSPC,PCSTR,LONGLONG,UINT,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupAddToDiskSpaceListW(HDSKSPC,PCWSTR,LONGLONG,UINT,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupAddToSourceListA(DWORD,PCSTR); -WINSETUPAPI BOOL WINAPI SetupAddToSourceListW(DWORD,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupAdjustDiskSpaceListA(HDSKSPC,LPCSTR,LONGLONG,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupAdjustDiskSpaceListW(HDSKSPC,LPCWSTR,LONGLONG,PVOID,UINT); -WINSETUPAPI UINT WINAPI SetupBackupErrorA(HWND,PCSTR,PCSTR,PCSTR,UINT,DWORD); -WINSETUPAPI UINT WINAPI SetupBackupErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD); -WINSETUPAPI BOOL WINAPI SetupCancelTemporary(VOID); -WINSETUPAPI BOOL WINAPI SetupCloseFileQueue(HSPFILEQ); -WINSETUPAPI VOID WINAPI SetupCloseInfFile(HINF); -WINSETUPAPI VOID WINAPI SetupCloseLog(VOID); -WINSETUPAPI BOOL WINAPI SetupCommitFileQueueA(HWND,HSPFILEQ,PSP_FILE_CALLBACK_A,PVOID); -WINSETUPAPI BOOL WINAPI SetupCommitFileQueueW(HWND,HSPFILEQ,PSP_FILE_CALLBACK_W,PVOID); -WINSETUPAPI UINT WINAPI SetupCopyErrorA(HWND,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,UINT,DWORD,PSTR,DWORD,PDWORD); -WINSETUPAPI UINT WINAPI SetupCopyErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupCopyOEMInfA(PCSTR,PCSTR,DWORD,DWORD,PSTR,DWORD,PDWORD,PSTR*); -WINSETUPAPI BOOL WINAPI SetupCopyOEMInfW(PCWSTR,PCWSTR,DWORD,DWORD,PWSTR,DWORD,PDWORD,PWSTR*); -WINSETUPAPI HDSKSPC WINAPI SetupCreateDiskSpaceListA(PVOID,DWORD,UINT); -WINSETUPAPI HDSKSPC WINAPI SetupCreateDiskSpaceListW(PVOID,DWORD,UINT); -WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileA(PCSTR,PCSTR,PUINT); -WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileW(PCWSTR,PCWSTR,PUINT); -WINSETUPAPI UINT WINAPI SetupDefaultQueueCallbackA(PVOID,UINT,UINT_PTR,UINT_PTR); -WINSETUPAPI UINT WINAPI SetupDefaultQueueCallbackW(PVOID,UINT,UINT_PTR,UINT_PTR); -WINSETUPAPI UINT WINAPI SetupDeleteErrorA(HWND,PCSTR,PCSTR,UINT,DWORD); -WINSETUPAPI UINT WINAPI SetupDeleteErrorW(HWND,PCWSTR,PCWSTR,UINT,DWORD); -WINSETUPAPI BOOL WINAPI SetupDestroyDiskSpaceList(HDSKSPC); -WINSETUPAPI BOOL WINAPI SetupDiAskForOEMDisk(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiBuildClassInfoList(DWORD,LPGUID,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiBuildClassInfoListExA(DWORD,LPGUID,DWORD,PDWORD,PCSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiBuildClassInfoListExW(DWORD,LPGUID,DWORD,PDWORD,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiBuildDriverInfoList(HDEVINFO,PSP_DEVINFO_DATA,DWORD); -WINSETUPAPI BOOL WINAPI SetupDiCallClassInstaller(DI_FUNCTION,HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiCancelDriverInfoSearch(HDEVINFO); -WINSETUPAPI BOOL WINAPI SetupDiChangeState(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiClassGuidsFromNameA(PCSTR,LPGUID,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiClassGuidsFromNameW(PCWSTR,LPGUID,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiClassGuidsFromNameExA(PCSTR,LPGUID,DWORD,PDWORD,PCSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiClassGuidsFromNameExW(PCWSTR,LPGUID,DWORD,PDWORD,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiClassNameFromGuidA(CONST GUID*,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiClassNameFromGuidW(CONST GUID*,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiClassNameFromGuidExA(CONST GUID*,PSTR,DWORD,PDWORD,PCSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiClassNameFromGuidExW(CONST GUID*,PWSTR,DWORD,PDWORD,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInfoA(HDEVINFO,PCSTR,CONST GUID*,PCSTR,HWND,DWORD,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInfoW(HDEVINFO,PCWSTR,CONST GUID*,PCWSTR,HWND,DWORD,PSP_DEVINFO_DATA); -WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoList(CONST GUID*,HWND); -WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoListExA(CONST GUID*,HWND,PCSTR,PVOID); -WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoListExW(CONST GUID*,HWND,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInterfaceA(HDEVINFO,PSP_DEVINFO_DATA,CONST GUID*,PCSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); -WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInterfaceW(HDEVINFO,PSP_DEVINFO_DATA,CONST GUID*,PCWSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); -WINSETUPAPI HKEY WINAPI SetupDiCreateDeviceInterfaceRegKeyA(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM,HINF,PCSTR); -WINSETUPAPI HKEY WINAPI SetupDiCreateDeviceInterfaceRegKeyW(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM,HINF,PCWSTR); -WINSETUPAPI HKEY WINAPI SetupDiCreateDevRegKeyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,HINF,PCSTR); -WINSETUPAPI HKEY WINAPI SetupDiCreateDevRegKeyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,HINF,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInfo(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInterfaceData(HDEVINFO,PSP_DEVICE_INTERFACE_DATA); -WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInterfaceRegKey(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD); -WINSETUPAPI BOOL WINAPI SetupDiDeleteDevRegKey(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD); -WINSETUPAPI BOOL WINAPI SetupDiDestroyClassImageList(PSP_CLASSIMAGELIST_DATA); -WINSETUPAPI BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO); -WINSETUPAPI BOOL WINAPI SetupDiDestroyDriverInfoList(HDEVINFO,PSP_DEVINFO_DATA,DWORD); -WINSETUPAPI INT WINAPI SetupDiDrawMiniIcon(HDC,RECT,INT,DWORD); -WINSETUPAPI BOOL WINAPI SetupDiEnumDeviceInfo(HDEVINFO,DWORD,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiEnumDeviceInterfaces(HDEVINFO,PSP_DEVINFO_DATA,CONST GUID*,DWORD,PSP_DEVICE_INTERFACE_DATA); -WINSETUPAPI BOOL WINAPI SetupDiEnumDriverInfoA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,PSP_DRVINFO_DATA_A); -WINSETUPAPI BOOL WINAPI SetupDiEnumDriverInfoW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,PSP_DRVINFO_DATA_W); -WINSETUPAPI BOOL WINAPI SetupDiGetActualSectionToInstallA(HINF,PCSTR,PSTR,DWORD,PDWORD,PSTR*); -WINSETUPAPI BOOL WINAPI SetupDiGetActualSectionToInstallW(HINF,PCWSTR,PWSTR,DWORD,PDWORD,PWSTR*); -WINSETUPAPI BOOL WINAPI SetupDiGetClassBitmapIndex(CONST GUID*,PINT); -WINSETUPAPI BOOL WINAPI SetupDiGetClassDescriptionA(CONST GUID*,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetClassDescriptionW(CONST GUID*,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetClassDescriptionExA(CONST GUID*,PSTR,DWORD,PDWORD,PCSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetClassDescriptionExW(CONST GUID*,PWSTR,DWORD,PDWORD,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetClassDevPropertySheetsA(HDEVINFO,PSP_DEVINFO_DATA,LPPROPSHEETHEADERA,DWORD,PDWORD,DWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetClassDevPropertySheetsW(HDEVINFO,PSP_DEVINFO_DATA,LPPROPSHEETHEADERW,DWORD,PDWORD,DWORD); -WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsA(CONST GUID*,PCSTR,HWND,DWORD); -WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsW(CONST GUID*,PCWSTR,HWND,DWORD); -WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsExA(CONST GUID*,PCSTR,HWND,DWORD,HDEVINFO,PCSTR,PVOID); -WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsExW(CONST GUID*,PCWSTR,HWND,DWORD,HDEVINFO,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetClassImageIndex(PSP_CLASSIMAGELIST_DATA,CONST GUID*,PINT); -WINSETUPAPI BOOL WINAPI SetupDiGetClassImageList(PSP_CLASSIMAGELIST_DATA); -WINSETUPAPI BOOL WINAPI SetupDiGetClassImageListExA(PSP_CLASSIMAGELIST_DATA,PCSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetClassImageListExW(PSP_CLASSIMAGELIST_DATA,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetClassInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetClassInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetClassRegistryPropertyA(LPGUID,DWORD,PDWORD,PBYTE,DWORD,PDWORD,PCSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetClassRegistryPropertyW(LPGUID,DWORD,PDWORD,PBYTE,DWORD,PDWORD,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListClass(HDEVINFO,LPGUID); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListDetailA(HDEVINFO,PSP_DEVINFO_LIST_DETAIL_DATA_A); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListDetailW(HDEVINFO,PSP_DEVINFO_LIST_DETAIL_DATA_W); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_A); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_W); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstanceIdA(HDEVINFO,PSP_DEVINFO_DATA,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstanceIdW(HDEVINFO,PSP_DEVINFO_DATA,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInterfaceAlias(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,CONST GUID*,PSP_DEVICE_INTERFACE_DATA); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInterfaceDetailA(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,PSP_DEVICE_INTERFACE_DETAIL_DATA_A,DWORD,PDWORD,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInterfaceDetailW(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,PSP_DEVICE_INTERFACE_DETAIL_DATA_W,DWORD,PDWORD,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceRegistryPropertyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PDWORD,PBYTE,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetDeviceRegistryPropertyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PDWORD,PBYTE,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetDriverInfoDetailA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINFO_DETAIL_DATA_A,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetDriverInfoDetailW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINFO_DETAIL_DATA_W,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetDriverInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINSTALL_PARAMS); -WINSETUPAPI BOOL WINAPI SetupDiGetDriverInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINSTALL_PARAMS); -WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileFriendlyNameA(DWORD,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileFriendlyNameExA(DWORD,PSTR,DWORD,PDWORD,PCSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileFriendlyNameExW(DWORD,PWSTR,DWORD,PDWORD,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileFriendlyNameW(DWORD,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileList(PDWORD,DWORD,PDWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileListExA(PDWORD,DWORD,PDWORD,PDWORD,PCSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileListExW(PDWORD,DWORD,PDWORD,PDWORD,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiGetINFClassA(PCSTR,LPGUID,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetINFClassW(PCWSTR,LPGUID,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDevice(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDriverA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A); -WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDriverW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W); -WINSETUPAPI HPROPSHEETPAGE WINAPI SetupDiGetWizardage(HDEVINFO,PSP_DEVINFO_DATA,PSP_INSTALLWIZARD_DATA,DWORD,DWORD); -WINSETUPAPI BOOL WINAPI SetupDiInstallClassA(HWND,PCSTR,DWORD,HSPFILEQ); -WINSETUPAPI BOOL WINAPI SetupDiInstallClassW(HWND,PCWSTR,DWORD,HSPFILEQ); -WINSETUPAPI BOOL WINAPI SetupDiInstallClassExA(HWND,PCSTR,DWORD,HSPFILEQ,CONST GUID*,PVOID,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiInstallClassExW(HWND,PCWSTR,DWORD,HSPFILEQ,CONST GUID*,PVOID,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiInstallDevice(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiInstallDeviceInterfaces(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiInstallDriverFiles(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiLoadClassIcon(CONST GUID*,HICON*,PINT); -WINSETUPAPI BOOL WINAPI SetupDiMoveDuplicateDevice(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKey(CONST GUID*,REGSAM); -WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKeyExA(CONST GUID*,REGSAM,DWORD,PCSTR,PVOID); -WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKeyExW(CONST GUID*,REGSAM,DWORD,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInfoA(HDEVINFO,PCSTR,HWND,DWORD,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInfoW(HDEVINFO,PCWSTR,HWND,DWORD,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInterfaceA(HDEVINFO,PCSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); -WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInterfaceW(HDEVINFO,PCWSTR,DWORD,PSP_DEVICE_INTERFACE_DATA); -WINSETUPAPI HKEY WINAPI SetupDiOpenDeviceInterfaceRegKey(HDEVINFO,PSP_DEVICE_INTERFACE_DATA,DWORD,REGSAM); -WINSETUPAPI HKEY WINAPI SetupDiOpenDevRegKey(HDEVINFO,PSP_DEVINFO_DATA,DWORD,DWORD,DWORD,REGSAM); -WINSETUPAPI BOOL WINAPI SetupDiRegisterCoDeviceInstallers(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiRegisterDeviceInfo(HDEVINFO,PSP_DEVINFO_DATA,DWORD,PSP_DETSIG_CMPPROC,PVOID,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiRemoveDevice(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiRemoveDeviceInterface(HDEVINFO,PSP_DEVICE_INTERFACE_DATA); -WINSETUPAPI BOOL WINAPI SetupDiSelectBestCompatDrv(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiSelectDevice(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiSelectOEMDrv(HWND,HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiSetClassInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD); -WINSETUPAPI BOOL WINAPI SetupDiSetClassInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_CLASSINSTALL_HEADER,DWORD); -WINSETUPAPI BOOL WINAPI SetupDiSetClassRegistryPropertyA(LPGUID,DWORD,CONST BYTE*,DWORD,PCSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiSetClassRegistryPropertyW(LPGUID,DWORD,CONST BYTE*,DWORD,PCWSTR,PVOID); -WINSETUPAPI BOOL WINAPI SetupDiSetDeviceInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_A); -WINSETUPAPI BOOL WINAPI SetupDiSetDeviceInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINSTALL_PARAMS_W); -WINSETUPAPI BOOL WINAPI SetupDiSetDeviceRegistryPropertyA(HDEVINFO,PSP_DEVINFO_DATA,DWORD,CONST BYTE*,DWORD); -WINSETUPAPI BOOL WINAPI SetupDiSetDeviceRegistryPropertyW(HDEVINFO,PSP_DEVINFO_DATA,DWORD,CONST BYTE*,DWORD); -WINSETUPAPI BOOL WINAPI SetupDiSetDriverInstallParamsA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A,PSP_DRVINSTALL_PARAMS); -WINSETUPAPI BOOL WINAPI SetupDiSetDriverInstallParamsW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W,PSP_DRVINSTALL_PARAMS); -WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDevice(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDriverA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A); -WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDriverW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W); -WINSETUPAPI BOOL WINAPI SetupDiUnremoveDevice(HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI HDSKSPC WINAPI SetupDuplicateDiskSpaceListA(HDSKSPC,PVOID,DWORD,UINT); -WINSETUPAPI HDSKSPC WINAPI SetupDuplicateDiskSpaceListW(HDSKSPC,PVOID,DWORD,UINT); -WINSETUPAPI BOOL WINAPI SetupFindFirstLineA(HINF,PCSTR,PCSTR,PINFCONTEXT); -WINSETUPAPI BOOL WINAPI SetupFindFirstLineW(HINF,PCWSTR,PCWSTR,PINFCONTEXT); -WINSETUPAPI BOOL WINAPI SetupFindNextLine(PINFCONTEXT,PINFCONTEXT); -WINSETUPAPI BOOL WINAPI SetupFindNextMatchLineA(PINFCONTEXT,PCSTR,PINFCONTEXT); -WINSETUPAPI BOOL WINAPI SetupFindNextMatchLineW(PINFCONTEXT,PCWSTR,PINFCONTEXT); -WINSETUPAPI BOOL WINAPI SetupFreeA(PCSTR**,UINT); -WINSETUPAPI BOOL WINAPI SetupFreeW(PCWSTR**,UINT); -WINSETUPAPI BOOL WINAPI SetupGetBackupInformationA(HSPFILEQ,PSP_BACKUP_QUEUE_PARAMS_A); -WINSETUPAPI BOOL WINAPI SetupGetBackupInformationW(HSPFILEQ,PSP_BACKUP_QUEUE_PARAMS_W); -WINSETUPAPI BOOL WINAPI SetupGetBinaryField(PINFCONTEXT,DWORD,PBYTE,DWORD,LPDWORD); -WINSETUPAPI DWORD WINAPI SetupGetFieldCount(PINFCONTEXT); -WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoA(PCSTR,PSTR*,PDWORD,PDWORD,PUINT); -WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoW(PCWSTR,PWSTR*,PDWORD,PDWORD,PUINT); -WINSETUPAPI BOOL WINAPI SetupGetInfFileListA(PCSTR,DWORD,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetInfFileListW(PCWSTR,DWORD,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetInfInformationA(LPCVOID,DWORD,PSP_INF_INFORMATION,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetInfInformationW(LPCVOID,DWORD,PSP_INF_INFORMATION,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetIntField(PINFCONTEXT,DWORD,PINT); -WINSETUPAPI BOOL WINAPI SetupGetLineByIndexA(HINF,PCSTR,DWORD,PINFCONTEXT); -WINSETUPAPI BOOL WINAPI SetupGetLineByIndexW(HINF,PCWSTR,DWORD,PINFCONTEXT); -WINSETUPAPI LONG WINAPI SetupGetLineCountA(HINF,PCSTR); -WINSETUPAPI LONG WINAPI SetupGetLineCountW(HINF,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupGetLineTextA(PINFCONTEXT,HINF,PCSTR,PCSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetLineTextW(PINFCONTEXT,HINF,PCWSTR,PCWSTR,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetMultiSzFieldA(PINFCONTEXT,DWORD,PSTR,DWORD,LPDWORD); -WINSETUPAPI BOOL WINAPI SetupGetMultiSzFieldW(PINFCONTEXT,DWORD,PWSTR,DWORD,LPDWORD); -WINSETUPAPI BOOL WINAPI SetupGetSourceFileLocationA(HINF,PINFCONTEXT,PCSTR,PUINT,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetSourceFileLocationW(HINF,PINFCONTEXT,PCWSTR,PUINT,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetSourceFileSizeA(HINF,PINFCONTEXT,PCSTR,PCSTR,PDWORD,UINT); -WINSETUPAPI BOOL WINAPI SetupGetSourceFileSizeW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PDWORD,UINT); -WINSETUPAPI BOOL WINAPI SetupGetSourceInfoA(HINF,UINT,UINT,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetSourceInfoW(HINF,UINT,UINT,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetStringFieldA(PINFCONTEXT,DWORD,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetStringFieldW(PINFCONTEXT,DWORD,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetTargetPathA(HINF,PINFCONTEXT,PCSTR,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupGetTargetPathW(HINF,PINFCONTEXT,PCWSTR,PWSTR,DWORD,PDWORD); -WINSETUPAPI PVOID WINAPI SetupInitDefaultQueueCallback(HWND); -WINSETUPAPI PVOID WINAPI SetupInitDefaultQueueCallbackEx(HWND,HWND,UINT,DWORD,PVOID); -WINSETUPAPI HSPFILELOG WINAPI SetupInitializeFileLogA(PCSTR,DWORD); -WINSETUPAPI HSPFILELOG WINAPI SetupInitializeFileLogW(PCWSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupInstallFileA(HINF,PINFCONTEXT,PCSTR,PCSTR,PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID); -WINSETUPAPI BOOL WINAPI SetupInstallFileW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID); -WINSETUPAPI BOOL WINAPI SetupInstallFileExA(HINF,PINFCONTEXT,PCSTR,PCSTR,PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID,PBOOL); -WINSETUPAPI BOOL WINAPI SetupInstallFileExW(HINF,PINFCONTEXT,PCWSTR,PCWSTR,PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID,PBOOL); -WINSETUPAPI BOOL WINAPI SetupInstallFilesFromInfSectionA(HINF,HINF,HSPFILEQ,PCSTR,PCSTR,UINT); -WINSETUPAPI BOOL WINAPI SetupInstallFilesFromInfSectionW(HINF,HINF,HSPFILEQ,PCWSTR,PCWSTR,UINT); -WINSETUPAPI BOOL WINAPI SetupInstallFromInfSectionA(HWND,HINF,PCSTR,UINT,HKEY,PCSTR,UINT,PSP_FILE_CALLBACK_A,PVOID,HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupInstallFromInfSectionW(HWND,HINF,PCWSTR,UINT,HKEY,PCWSTR,UINT,PSP_FILE_CALLBACK_W,PVOID,HDEVINFO,PSP_DEVINFO_DATA); -WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionA(HINF,PCSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionW(HINF,PCWSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionExA(HINF,PCSTR,DWORD,HDEVINFO,PSP_DEVINFO_DATA,PVOID,PVOID); -WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionExW(HINF,PCWSTR,DWORD,HDEVINFO,PSP_DEVINFO_DATA,PVOID,PVOID); -WINSETUPAPI BOOL WINAPI SetupIterateCabinetA(PCSTR,DWORD,PSP_FILE_CALLBACK_A,PVOID); -WINSETUPAPI BOOL WINAPI SetupIterateCabinetW(PCWSTR,DWORD,PSP_FILE_CALLBACK_W,PVOID); -WINSETUPAPI BOOL WINAPI SetupLogErrorA(LPCSTR,LogSeverity); -WINSETUPAPI BOOL WINAPI SetupLogErrorW(LPCWSTR,LogSeverity); -WINSETUPAPI BOOL WINAPI SetupLogFileA(HSPFILELOG,PCSTR,PCSTR,PCSTR,DWORD,PCSTR,PCSTR,PCSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupLogFileW(HSPFILELOG,PCWSTR,PCWSTR,PCWSTR,DWORD,PCWSTR,PCWSTR,PCWSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupOpenAppendInfFileA(PCSTR,HINF,PUINT); -WINSETUPAPI BOOL WINAPI SetupOpenAppendInfFileW(PCWSTR,HINF,PUINT); -WINSETUPAPI HSPFILEQ WINAPI SetupOpenFileQueue(VOID); -WINSETUPAPI HINF WINAPI SetupOpenInfFileA(PCSTR,PCSTR,DWORD,PUINT); -WINSETUPAPI HINF WINAPI SetupOpenInfFileW(PCWSTR,PCWSTR,DWORD,PUINT); -WINSETUPAPI BOOL WINAPI SetupOpenLog(BOOL); -WINSETUPAPI HINF WINAPI SetupOpenMasterInf(VOID); -WINSETUPAPI UINT WINAPI SetupPromptForDiskA(HWND,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,DWORD,PSTR,DWORD,PDWORD); -WINSETUPAPI UINT WINAPI SetupPromptForDiskW(HWND,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,DWORD,PWSTR,DWORD,PDWORD); -WINSETUPAPI INT WINAPI SetupPromptReboot(HSPFILEQ,HWND,BOOL); -WINSETUPAPI BOOL WINAPI SetupQueryA(DWORD,PCSTR**,PUINT); -WINSETUPAPI BOOL WINAPI SetupQueryW(DWORD,PCWSTR**,PUINT); -WINSETUPAPI BOOL WINAPI SetupQueryDrivesInDiskSpaceListA(HDSKSPC,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupQueryDrivesInDiskSpaceListW(HDSKSPC,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupQueryFileLogA(HSPFILELOG,PCSTR,PCSTR,SetupFileLogInfo,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupQueryFileLogW(HSPFILELOG,PCWSTR,PCWSTR,SetupFileLogInfo,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupQueryInfFileInformationA(PSP_INF_INFORMATION,UINT,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupQueryInfFileInformationW(PSP_INF_INFORMATION,UINT,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupQueryInfOriginalFileInformationA(PSP_INF_INFORMATION,UINT,PSP_ALTPLATFORM_INFO,PSP_ORIGINAL_FILE_INFO_A); -WINSETUPAPI BOOL WINAPI SetupQueryInfOriginalFileInformationW(PSP_INF_INFORMATION,UINT,PSP_ALTPLATFORM_INFO,PSP_ORIGINAL_FILE_INFO_W); -WINSETUPAPI BOOL WINAPI SetupQueryInfVersionInformationA(PSP_INF_INFORMATION,UINT,PSTR,PSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupQueryInfVersionInformationW(PSP_INF_INFORMATION,UINT,PCWSTR,PWSTR,DWORD,PDWORD); -WINSETUPAPI BOOL WINAPI SetupQuerySpaceRequiredOnDriveA(HDSKSPC,PCSTR,LONGLONG*,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupQuerySpaceRequiredOnDriveW(HDSKSPC,PCWSTR,LONGLONG*,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupQueueCopyA(HSPFILEQ,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupQueueCopyW(HSPFILEQ,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupQueueCopyIndirectA(PSP_FILE_COPY_PARAMS_A); -WINSETUPAPI BOOL WINAPI SetupQueueCopyIndirectW(PSP_FILE_COPY_PARAMS_W); -WINSETUPAPI BOOL WINAPI SetupQueueCopySectionA(HSPFILEQ,PCSTR,HINF,HINF,PCSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupQueueCopySectionW(HSPFILEQ,PCWSTR,HINF,HINF,PCWSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupQueueDefaultCopyA(HSPFILEQ,HINF,PCSTR,PCSTR,PCSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupQueueDefaultCopyW(HSPFILEQ,HINF,PCWSTR,PCWSTR,PCWSTR,DWORD); -WINSETUPAPI BOOL WINAPI SetupQueueDeleteA(HSPFILEQ,PCSTR,PCSTR); -WINSETUPAPI BOOL WINAPI SetupQueueDeleteW(HSPFILEQ,PCWSTR,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupQueueDeleteSectionA(HSPFILEQ,HINF,HINF,PCSTR); -WINSETUPAPI BOOL WINAPI SetupQueueDeleteSectionW(HSPFILEQ,HINF,HINF,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupQueueRenameA(HSPFILEQ,PCSTR,PCSTR,PCSTR,PCSTR); -WINSETUPAPI BOOL WINAPI SetupQueueRenameW(HSPFILEQ,PCWSTR,PCWSTR,PCWSTR,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupQueueRenameSectionA(HSPFILEQ,HINF,HINF,PCSTR); -WINSETUPAPI BOOL WINAPI SetupQueueRenameSectionW(HSPFILEQ,HINF,HINF,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupRemoveFileLogEntryA(HSPFILELOG,PCSTR,PCSTR); -WINSETUPAPI BOOL WINAPI SetupRemoveFileLogEntryW(HSPFILELOG,PCWSTR,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupRemoveFromDiskSpaceListA(HDSKSPC,PCSTR,UINT,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupRemoveFromDiskSpaceListW(HDSKSPC,PCWSTR,UINT,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupRemoveFromSourceListA(DWORD,PCSTR); -WINSETUPAPI BOOL WINAPI SetupRemoveFromSourceListW(DWORD,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupRemoveInstallSectionFromDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupRemoveInstallSectionFromDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupRemoveSectionFromDiskSpaceListA(HDSKSPC,HINF,HINF,PCSTR,UINT,PVOID,UINT); -WINSETUPAPI BOOL WINAPI SetupRemoveSectionFromDiskSpaceListW(HDSKSPC,HINF,HINF,PCWSTR,UINT,PVOID,UINT); -WINSETUPAPI UINT WINAPI SetupRenameErrorA(HWND,PCSTR,PCSTR,PCSTR,UINT,DWORD); -WINSETUPAPI UINT WINAPI SetupRenameErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD); -WINSETUPAPI BOOL WINAPI SetupScanFileQueueA(HSPFILEQ,DWORD,HWND,PSP_FILE_CALLBACK_A,PVOID,PDWORD); -WINSETUPAPI BOOL WINAPI SetupScanFileQueueW(HSPFILEQ,DWORD,HWND,PSP_FILE_CALLBACK_W,PVOID,PDWORD); -WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdA(HINF,DWORD,PCSTR); -WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdW(HINF,DWORD,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdExA(HINF,DWORD,PCSTR,DWORD,DWORD,PVOID); -WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdExW(HINF,DWORD,PCWSTR,DWORD,DWORD,PVOID); -WINSETUPAPI BOOL WINAPI SetupSetFileQueueAlternatePlatformA(HSPFILEQ,PSP_ALTPLATFORM_INFO,PCSTR); -WINSETUPAPI BOOL WINAPI SetupSetFileQueueAlternatePlatformW(HSPFILEQ,PSP_ALTPLATFORM_INFO,PCWSTR); -WINSETUPAPI BOOL WINAPI SetupSetPlatformPathOverrideA(PCSTR); -WINSETUPAPI BOOL WINAPI SetupSetPlatformPathOverrideW(PCWSTR); -WINSETUPAPI BOOL WINAPI SetupSetSourceListA(DWORD,PCSTR*,UINT); -WINSETUPAPI BOOL WINAPI SetupSetSourceListW(DWORD,PCWSTR*,UINT); -WINSETUPAPI VOID WINAPI SetupTermDefaultQueueCallback(PVOID); -WINSETUPAPI BOOL WINAPI SetupTerminateFileLog(HSPFILELOG); - -/* for backward compatability */ -#define SetupDiCreateInterfaceDeviceW SetupDiCreateDeviceInterfaceW -#define SetupDiCreateInterfaceDeviceRegKeyW SetupDiCreateDeviceInterfaceRegKeyW -#define SetupDiOpenInterfaceDeviceW SetupDiOpenDeviceInterfaceW -#define SetupDiGetInterfaceDeviceDetailW SetupDiGetDeviceInterfaceDetailW -#define SetupDiCreateInterfaceDeviceA SetupDiCreateDeviceInterfaceA -#define SetupDiCreateInterfaceDeviceRegKeyA SetupDiCreateDeviceInterfaceRegKeyA -#define SetupDiOpenInterfaceDeviceA SetupDiOpenDeviceInterfaceA -#define SetupDiGetInterfaceDeviceDetailA SetupDiGetDeviceInterfaceDetailA - -#ifdef UNICODE -#define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_W -#define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListW -#define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListW -#define SetupAddToDiskSpaceList SetupAddToDiskSpaceListW -#define SetupAddToSourceList SetupAddToSourceListW -#define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListW -#define SetupBackupError SetupBackupErrorW -#define SetupCommitFileQueue SetupCommitFileQueueW -#define SetupCopyError SetupCopyErrorW -#define SetupCopyOEMInf SetupCopyOEMInfW -#define SetupCreateDiskSpaceList SetupCreateDiskSpaceListW -#define SetupDecompressOrCopyFile SetupDecompressOrCopyFileW -#define SetupDefaultQueueCallback SetupDefaultQueueCallbackW -#define SetupDeleteError SetupDeleteErrorW -#define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExW -#define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExW -#define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameW -#define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExW -#define SetupDiClassNameFromGuid SetupDiClassNameFromGuidW -#define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExW -#define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoW -#define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyW -#define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyW -#define SetupDiCreateDeviceInterface SetupDiCreateDeviceInterfaceW -#define SetupDiCreateInterfaceDevice SetupDiCreateDeviceInterfaceW -#define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyW -#define SetupDiEnumDriverInfo SetupDiEnumDriverInfoW -#define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallW -#define SetupDiGetClassDescriptionEx SetupDiGetClassDescriptionExW -#define SetupDiGetClassDescription SetupDiGetClassDescriptionW -#define SetupDiGetClassDevPropertySheets SetupDiGetClassDevPropertySheetsW -#define SetupDiGetClassDevsEx SetupDiGetClassDevsExW -#define SetupDiGetClassDevs SetupDiGetClassDevsW -#define SetupDiGetClassImageListEx SetupDiGetClassImageListExW -#define SetupDiGetClassInstallParams SetupDiGetClassInstallParamsW -#define SetupDiGetClassRegistryProperty SetupDiGetClassRegistryPropertyW -#define SetupDiGetDeviceInfoListDetail SetupDiGetDeviceInfoListDetailW -#define SetupDiGetDeviceInstallParams SetupDiGetDeviceInstallParamsW -#define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdW -#define SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceInterfaceDetailW -#define SetupDiGetInterfaceDeviceDetail SetupDiGetDeviceInterfaceDetailW -#define SetupDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryPropertyW -#define SetupDiGetDriverInfoDetail SetupDiGetDriverInfoDetailW -#define SetupDiGetDriverInstallParams SetupDiGetDriverInstallParamsW -#define SetupDiGetHwProfileFriendlyNameEx SetupDiGetHwProfileFriendlyNameExW -#define SetupDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyNameW -#define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExW -#define SetupDiGetINFClass SetupDiGetINFClassW -#define SetupDiGetSelectedDriver SetupDiGetSelectedDriverW -#define SetupDiInstallClassEx SetupDiInstallClassExW -#define SetupDiInstallClass SetupDiInstallClassW -#define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExW -#define SetupDiOpenDeviceInfo SetupDiOpenDeviceInfoW -#define SetupDiOpenDeviceInterface SetupDiOpenDeviceInterfaceW -#define SetupDiOpenInterfaceDevice SetupDiOpenDeviceInterfaceW -#define SetupDiSetClassInstallParams SetupDiSetClassInstallParamsW -#define SetupDiSetClassRegistryProperty SetupDiSetClassRegistryPropertyW -#define SetupDiSetDeviceInstallParams SetupDiSetDeviceInstallParamsW -#define SetupDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryPropertyW -#define SetupDiSetDriverInstallParams SetupDiSetDriverInstallParamsW -#define SetupDiSetSelectedDriver SetupDiSetSelectedDriverW -#define SetupDuplicateDiskSpaceList SetupDuplicateDiskSpaceListW -#define SetupFindFirstLine SetupFindFirstLineW -#define SetupFindNextMatchLine SetupFindNextMatchLineW -#define SetupFreeSourceList SetupFreeSourceListW -#define SetupGetBackupInformation SetupGetBackupInformationW -#define SetupGetFileCompressionInfo SetupGetFileCompressionInfoW -#define SetupGetInfFileList SetupGetInfFileListW -#define SetupGetInfInformation SetupGetInfInformationW -#define SetupGetLineByIndex SetupGetLineByIndexW -#define SetupGetLineCount SetupGetLineCountW -#define SetupGetLineText SetupGetLineTextW -#define SetupGetMultiSzField SetupGetMultiSzFieldW -#define SetupGetSourceFileLocation SetupGetSourceFileLocationW -#define SetupGetSourceFileSize SetupGetSourceFileSizeW -#define SetupGetSourceInfo SetupGetSourceInfoW -#define SetupGetStringField SetupGetStringFieldW -#define SetupGetTargetPath SetupGetTargetPathW -#define SetupInitializeFileLog SetupInitializeFileLogW -#define SetupInstallFileEx SetupInstallFileExW -#define SetupInstallFilesFromInfSection SetupInstallFilesFromInfSectionW -#define SetupInstallFile SetupInstallFileW -#define SetupInstallFromInfSection SetupInstallFromInfSectionW -#define SetupInstallServicesFromInfSectionEx SetupInstallServicesFromInfSectionExW -#define SetupInstallServicesFromInfSection SetupInstallServicesFromInfSectionW -#define SetupIterateCabinet SetupIterateCabinetW -#define SetupLogError SetupLogErrorW -#define SetupLogFile SetupLogFileW -#define SetupOpenAppendInfFile SetupOpenAppendInfFileW -#define SetupOpenInfFile SetupOpenInfFileW -#define SetupPromptForDisk SetupPromptForDiskW -#define SetupQueryDrivesInDiskSpaceList SetupQueryDrivesInDiskSpaceListW -#define SetupQueryFileLog SetupQueryFileLogW -#define SetupQueryInfFileInformation SetupQueryInfFileInformationW -#define SetupQueryInfOriginalFileInformation SetupQueryInfOriginalFileInformationW -#define SetupQueryInfVersionInformation SetupQueryInfVersionInformationW -#define SetupQuerySourceList SetupQuerySourceListW -#define SetupQuerySpaceRequiredOnDrive SetupQuerySpaceRequiredOnDriveW -#define SetupQueueCopyIndirect SetupQueueCopyIndirectW -#define SetupQueueCopySection SetupQueueCopySectionW -#define SetupQueueCopy SetupQueueCopyW -#define SetupQueueDefaultCopy SetupQueueDefaultCopyW -#define SetupQueueDeleteSection SetupQueueDeleteSectionW -#define SetupQueueDelete SetupQueueDeleteW -#define SetupQueueRenameSection SetupQueueRenameSectionW -#define SetupQueueRename SetupQueueRenameW -#define SetupRemoveFileLogEntry SetupRemoveFileLogEntryW -#define SetupRemoveFromDiskSpaceList SetupRemoveFromDiskSpaceListW -#define SetupRemoveFromSourceList SetupRemoveFromSourceListW -#define SetupRemoveInstallSectionFromDiskSpaceList SetupRemoveInstallSectionFromDiskSpaceListW -#define SetupRemoveSectionFromDiskSpaceList SetupRemoveSectionFromDiskSpaceListW -#define SetupRenameError SetupRenameErrorW -#define SetupScanFileQueue SetupScanFileQueueW -#define SetupSetDirectoryIdEx SetupSetDirectoryIdExW -#define SetupSetDirectoryId SetupSetDirectoryIdW -#define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformW -#define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideW -#define SetupSetSourceList SetupSetSourceListW -#else -#define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_A -#define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListA -#define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListA -#define SetupAddToDiskSpaceList SetupAddToDiskSpaceListA -#define SetupAddToSourceList SetupAddToSourceListA -#define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListA -#define SetupBackupError SetupBackupErrorA -#define SetupCommitFileQueue SetupCommitFileQueueA -#define SetupCopyError SetupCopyErrorA -#define SetupCopyOEMInf SetupCopyOEMInfA -#define SetupCreateDiskSpaceList SetupCreateDiskSpaceListA -#define SetupDecompressOrCopyFile SetupDecompressOrCopyFileA -#define SetupDefaultQueueCallback SetupDefaultQueueCallbackA -#define SetupDeleteError SetupDeleteErrorA -#define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExA -#define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameA -#define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExA -#define SetupDiClassNameFromGuid SetupDiClassNameFromGuidA -#define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExA -#define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoA -#define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExA -#define SetupDiCreateDeviceInterface SetupDiCreateDeviceInterfaceA -#define SetupDiCreateInterfaceDevice SetupDiCreateDeviceInterfaceA -#define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyA -#define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyA -#define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyA -#define SetupDiDeleteInterfaceDeviceData SetupDiDeleteDeviceInterfaceData -#define SetupDiEnumDriverInfo SetupDiEnumDriverInfoA -#define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallA -#define SetupDiGetClassDescription SetupDiGetClassDescriptionA -#define SetupDiGetClassDescriptionEx SetupDiGetClassDescriptionExA -#define SetupDiGetClassDevPropertySheets SetupDiGetClassDevPropertySheetsA -#define SetupDiGetClassDevs SetupDiGetClassDevsA -#define SetupDiGetClassDevsEx SetupDiGetClassDevsExA -#define SetupDiGetClassImageListEx SetupDiGetClassImageListExA -#define SetupDiGetClassInstallParams SetupDiGetClassInstallParamsA -#define SetupDiGetClassRegistryProperty SetupDiGetClassRegistryPropertyA -#define SetupDiGetDeviceInfoListDetail SetupDiGetDeviceInfoListDetailA -#define SetupDiGetDeviceInstallParams SetupDiGetDeviceInstallParamsA -#define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdA -#define SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceInterfaceDetailA -#define SetupDiGetInterfaceDeviceDetail SetupDiGetDeviceInterfaceDetailA -#define SetupDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryPropertyA -#define SetupDiGetDriverInfoDetail SetupDiGetDriverInfoDetailA -#define SetupDiGetDriverInstallParams SetupDiGetDriverInstallParamsA -#define SetupDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyNameA -#define SetupDiGetHwProfileFriendlyNameEx SetupDiGetHwProfileFriendlyNameExA -#define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExA -#define SetupDiGetINFClass SetupDiGetINFClassA -#define SetupDiGetSelectedDriver SetupDiGetSelectedDriverA -#define SetupDiInstallClass SetupDiInstallClassA -#define SetupDiInstallClassEx SetupDiInstallClassExA -#define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExA -#define SetupDiOpenDeviceInfo SetupDiOpenDeviceInfoA -#define SetupDiOpenDeviceInterface SetupDiOpenDeviceInterfaceA -#define SetupDiOpenInterfaceDevice SetupDiOpenDeviceInterfaceA -#define SetupDiSetClassInstallParams SetupDiSetClassInstallParamsA -#define SetupDiSetClassRegistryProperty SetupDiSetClassRegistryPropertyA -#define SetupDiSetDeviceInstallParams SetupDiSetDeviceInstallParamsA -#define SetupDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryPropertyA -#define SetupDiSetDriverInstallParams SetupDiSetDriverInstallParamsA -#define SetupDiSetSelectedDriver SetupDiSetSelectedDriverA -#define SetupDuplicateDiskSpaceList SetupDuplicateDiskSpaceListA -#define SetupFindFirstLine SetupFindFirstLineA -#define SetupFindNextMatchLine SetupFindNextMatchLineA -#define SetupFreeSourceList SetupFreeSourceListA -#define SetupGetBackupInformation SetupGetBackupInformationA -#define SetupGetFileCompressionInfo SetupGetFileCompressionInfoA -#define SetupGetInfFileList SetupGetInfFileListA -#define SetupGetInfInformation SetupGetInfInformationA -#define SetupGetLineByIndex SetupGetLineByIndexA -#define SetupGetLineCount SetupGetLineCountA -#define SetupGetLineText SetupGetLineTextA -#define SetupGetMultiSzField SetupGetMultiSzFieldA -#define SetupGetSourceFileLocation SetupGetSourceFileLocationA -#define SetupGetSourceFileSize SetupGetSourceFileSizeA -#define SetupGetSourceInfo SetupGetSourceInfoA -#define SetupGetStringField SetupGetStringFieldA -#define SetupGetTargetPath SetupGetTargetPathA -#define SetupInitializeFileLog SetupInitializeFileLogA -#define SetupInstallFile SetupInstallFileA -#define SetupInstallFileEx SetupInstallFileExA -#define SetupInstallFilesFromInfSection SetupInstallFilesFromInfSectionA -#define SetupInstallFromInfSection SetupInstallFromInfSectionA -#define SetupInstallServicesFromInfSection SetupInstallServicesFromInfSectionA -#define SetupInstallServicesFromInfSectionEx SetupInstallServicesFromInfSectionExA -#define SetupIterateCabinet SetupIterateCabinetA -#define SetupLogError SetupLogErrorA -#define SetupLogFile SetupLogFileA -#define SetupOpenAppendInfFile SetupOpenAppendInfFileA -#define SetupOpenInfFile SetupOpenInfFileA -#define SetupPromptForDisk SetupPromptForDiskA -#define SetupQueryDrivesInDiskSpaceList SetupQueryDrivesInDiskSpaceListA -#define SetupQueryFileLog SetupQueryFileLogA -#define SetupQueryInfFileInformation SetupQueryInfFileInformationA -#define SetupQueryInfOriginalFileInformation SetupQueryInfOriginalFileInformationA -#define SetupQueryInfVersionInformation SetupQueryInfVersionInformationA -#define SetupQuerySourceList SetupQuerySourceListA -#define SetupQuerySpaceRequiredOnDrive SetupQuerySpaceRequiredOnDriveA -#define SetupQueueCopy SetupQueueCopyA -#define SetupQueueCopyIndirect SetupQueueCopyIndirectA -#define SetupQueueCopySection SetupQueueCopySectionA -#define SetupQueueDefaultCopy SetupQueueDefaultCopyA -#define SetupQueueDelete SetupQueueDeleteA -#define SetupQueueDeleteSection SetupQueueDeleteSectionA -#define SetupQueueRename SetupQueueRenameA -#define SetupQueueRenameSection SetupQueueRenameSectionA -#define SetupRemoveFileLogEntry SetupRemoveFileLogEntryA -#define SetupRemoveFromDiskSpaceList SetupRemoveFromDiskSpaceListA -#define SetupRemoveFromSourceList SetupRemoveFromSourceListA -#define SetupRemoveInstallSectionFromDiskSpaceList SetupRemoveInstallSectionFromDiskSpaceListA -#define SetupRemoveSectionFromDiskSpaceList SetupRemoveSectionFromDiskSpaceListA -#define SetupRenameError SetupRenameErrorA -#define SetupScanFileQueue SetupScanFileQueueA -#define SetupSetDirectoryId SetupSetDirectoryIdA -#define SetupSetDirectoryIdEx SetupSetDirectoryIdExA -#define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformA -#define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideA -#define SetupSetSourceList SetupSetSourceListA -#endif /* UNICODE */ - -#endif /* RC_INVOKED */ - -#ifdef __cplusplus -} -#endif - -#include -#endif /* _SETUPAPI_H_ */ - diff --git a/winsup/w32api/include/shellapi.h b/winsup/w32api/include/shellapi.h deleted file mode 100644 index dab26593c..000000000 --- a/winsup/w32api/include/shellapi.h +++ /dev/null @@ -1,251 +0,0 @@ -#ifndef _SHELLAPI_H -#define _SHELLAPI_H -#ifdef __cplusplus -extern "C" { -#endif -#define WINSHELLAPI DECLSPEC_IMPORT -#define ABE_LEFT 0 -#define ABE_TOP 1 -#define ABE_RIGHT 2 -#define ABE_BOTTOM 3 -#define SEE_MASK_CLASSNAME 1 -#define SEE_MASK_CLASSKEY 3 -#define SEE_MASK_IDLIST 4 -#define SEE_MASK_INVOKEIDLIST 12 -#define SEE_MASK_ICON 16 -#define SEE_MASK_HOTKEY 32 -#define SEE_MASK_NOCLOSEPROCESS 64 -#define SEE_MASK_CONNECTNETDRV 128 -#define SEE_MASK_FLAG_DDEWAIT 256 -#define SEE_MASK_DOENVSUBST 512 -#define SEE_MASK_FLAG_NO_UI 1024 -#define SEE_MASK_UNICODE 65536 -#define ABM_NEW 0 -#define ABM_REMOVE 1 -#define ABM_QUERYPOS 2 -#define ABM_SETPOS 3 -#define ABM_GETSTATE 4 -#define ABM_GETTASKBARPOS 5 -#define ABM_ACTIVATE 6 -#define ABM_GETAUTOHIDEBAR 7 -#define ABM_SETAUTOHIDEBAR 8 -#define ABM_WINDOWPOSCHANGED 9 -#define ABN_STATECHANGE 0 -#define ABN_POSCHANGED 1 -#define ABN_FULLSCREENAPP 2 -#define ABN_WINDOWARRANGE 3 -#define NIM_ADD 0 -#define NIM_MODIFY 1 -#define NIM_DELETE 2 -#define NIF_MESSAGE 1 -#define NIF_ICON 2 -#define NIF_TIP 4 -#define SE_ERR_FNF 2 -#define SE_ERR_PNF 3 -#define SE_ERR_ACCESSDENIED 5 -#define SE_ERR_OOM 8 -#define SE_ERR_DLLNOTFOUND 32 -#define SE_ERR_SHARE 26 -#define SE_ERR_ASSOCINCOMPLETE 27 -#define SE_ERR_DDETIMEOUT 28 -#define SE_ERR_DDEFAIL 29 -#define SE_ERR_DDEBUSY 30 -#define SE_ERR_NOASSOC 31 -#define FO_MOVE 1 -#define FO_COPY 2 -#define FO_DELETE 3 -#define FO_RENAME 4 -#define FOF_MULTIDESTFILES 1 -#define FOF_CONFIRMMOUSE 2 -#define FOF_SILENT 4 -#define FOF_RENAMEONCOLLISION 8 -#define FOF_NOCONFIRMATION 16 -#define FOF_WANTMAPPINGHANDLE 32 -#define FOF_ALLOWUNDO 64 -#define FOF_FILESONLY 128 -#define FOF_SIMPLEPROGRESS 256 -#define FOF_NOCONFIRMMKDIR 512 -#define PO_DELETE 19 -#define PO_RENAME 20 -#define PO_PORTCHANGE 32 -#define PO_REN_PORT 52 -#define SHGFI_ICON 256 -#define SHGFI_DISPLAYNAME 512 -#define SHGFI_TYPENAME 1024 -#define SHGFI_ATTRIBUTES 2048 -#define SHGFI_ICONLOCATION 4096 -#define SHGFI_EXETYPE 8192 -#define SHGFI_SYSICONINDEX 16384 -#define SHGFI_LINKOVERLAY 32768 -#define SHGFI_SELECTED 65536 -#define SHGFI_LARGEICON 0 -#define SHGFI_SMALLICON 1 -#define SHGFI_OPENICON 2 -#define SHGFI_SHELLICONSIZE 4 -#define SHGFI_PIDL 8 -#define SHGFI_USEFILEATTRIBUTES 16 - -typedef WORD FILEOP_FLAGS; -typedef WORD PRINTEROP_FLAGS; -typedef struct _AppBarData { - DWORD cbSize; - HWND hWnd; - UINT uCallbackMessage; - UINT uEdge; - RECT rc; - LPARAM lParam; -} APPBARDATA,*PAPPBARDATA; -DECLARE_HANDLE(HDROP); -typedef struct _NOTIFYICONDATAA { - DWORD cbSize; - HWND hWnd; - UINT uID; - UINT uFlags; - UINT uCallbackMessage; - HICON hIcon; - CHAR szTip[64]; -} NOTIFYICONDATAA,*PNOTIFYICONDATAA; -typedef struct _NOTIFYICONDATAW { - DWORD cbSize; - HWND hWnd; - UINT uID; - UINT uFlags; - UINT uCallbackMessage; - HICON hIcon; - WCHAR szTip[64]; -} NOTIFYICONDATAW,*PNOTIFYICONDATAW; -typedef struct _SHELLEXECUTEINFOA { - DWORD cbSize; - ULONG fMask; - HWND hwnd; - LPCSTR lpVerb; - LPCSTR lpFile; - LPCSTR lpParameters; - LPCSTR lpDirectory; - int nShow; - HINSTANCE hInstApp; - PVOID lpIDList; - LPCSTR lpClass; - HKEY hkeyClass; - DWORD dwHotKey; - HANDLE hIcon; - HANDLE hProcess; -} SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA; -typedef struct _SHELLEXECUTEINFOW { - DWORD cbSize; - ULONG fMask; - HWND hwnd; - LPCWSTR lpVerb; - LPCWSTR lpFile; - LPCWSTR lpParameters; - LPCWSTR lpDirectory; - int nShow; - HINSTANCE hInstApp; - PVOID lpIDList; - LPCWSTR lpClass; - HKEY hkeyClass; - DWORD dwHotKey; - HANDLE hIcon; - HANDLE hProcess; -} SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW; -typedef struct _SHFILEOPSTRUCTA { - HWND hwnd; - UINT wFunc; - LPCSTR pFrom; - LPCSTR pTo; - FILEOP_FLAGS fFlags; - BOOL fAnyOperationsAborted; - PVOID hNameMappings; - LPCSTR lpszProgressTitle; -} SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA; -typedef struct _SHFILEOPSTRUCTW { - HWND hwnd; - UINT wFunc; - LPCWSTR pFrom; - LPCWSTR pTo; - FILEOP_FLAGS fFlags; - BOOL fAnyOperationsAborted; - PVOID hNameMappings; - LPCWSTR lpszProgressTitle; -} SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW; -typedef struct _SHFILEINFOA { - HICON hIcon; - int iIcon; - DWORD dwAttributes; - CHAR szDisplayName[MAX_PATH]; - CHAR szTypeName[80]; -} SHFILEINFOA; -typedef struct _SHFILEINFOW { - HICON hIcon; - int iIcon; - DWORD dwAttributes; - WCHAR szDisplayName[MAX_PATH]; - WCHAR szTypeName[80]; -} SHFILEINFOW; - -LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*); -void WINAPI DragAcceptFiles(HWND,BOOL); -void WINAPI DragFinish(HDROP); -UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT); -UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT); -BOOL WINAPI DragQueryPoint(HDROP,LPPOINT); -HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPCSTR,PWORD); -HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPCWSTR,PWORD); -HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT); -HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT); -HICON WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT); -HICON WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT); -HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR); -HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR); -UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA); -BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA); -BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW); -int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON); -int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON); -HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT); -HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT); -BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA); -BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW); -int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA); -int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW); -void WINAPI SHFreeNameMappings(HANDLE); -DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT); -DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT); - -#ifdef UNICODE -typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA; -typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO; -typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT; -typedef SHFILEINFOW SHFILEINFO; -#define DragQueryFile DragQueryFileW -#define ExtractAssociatedIcon ExtractAssociatedIconW -#define ExtractIcon ExtractIconW -#define ExtractIconEx ExtractIconExW -#define FindExecutable FindExecutableW -#define Shell_NotifyIcon Shell_NotifyIconW -#define ShellAbout ShellAboutW -#define ShellExecute ShellExecuteW -#define ShellExecuteEx ShellExecuteExW -#define SHFileOperation SHFileOperationW -#define SHGetFileInfo SHGetFileInfoW -#else -typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA; -typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO; -typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT; -typedef SHFILEINFOA SHFILEINFO; -#define DragQueryFile DragQueryFileA -#define ExtractAssociatedIcon ExtractAssociatedIconA -#define ExtractIcon ExtractIconA -#define ExtractIconEx ExtractIconExA -#define FindExecutable FindExecutableA -#define Shell_NotifyIcon Shell_NotifyIconA -#define ShellAbout ShellAboutA -#define ShellExecute ShellExecuteA -#define ShellExecuteEx ShellExecuteExA -#define SHFileOperation SHFileOperationA -#define SHGetFileInfo SHGetFileInfoA -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/shlguid.h b/winsup/w32api/include/shlguid.h deleted file mode 100644 index d658e6ebc..000000000 --- a/winsup/w32api/include/shlguid.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef _SHLGUID_H -#define _SHLGUID_H -#ifdef __cplusplus -extern "C" { -#endif -#define DEFINE_SHLGUID(n,l,w1,w2) DEFINE_GUID(n,l,w1,w2,0xC0,0,0,0,0,0,0,0x46) -#define SID_SShellBrowser IID_IShellBrowser -extern const GUID CLSID_ShellDesktop; -extern const GUID CLSID_ShellLink; -extern const GUID FMTID_Intshcut; -extern const GUID FMTID_InternetSite; -extern const GUID CGID_Explorer; -extern const GUID CGID_ShellDocView; -extern const GUID IID_INewShortcutHookA; -extern const GUID IID_IShellBrowser; -extern const GUID IID_IShellView; -extern const GUID IID_IContextMenu; -extern const GUID IID_IShellIcon; -extern const GUID IID_IShellFolder; -extern const GUID IID_IShellExtInit; -extern const GUID IID_IShellPropSheetExt; -extern const GUID IID_IPersistFolder; -extern const GUID IID_IExtractIconA; -extern const GUID IID_IShellLinkA; -extern const GUID IID_IShellCopyHookA; -extern const GUID IID_IFileViewerA; -extern const GUID IID_ICommDlgBrowser; -extern const GUID IID_IEnumIDList; -extern const GUID IID_IFileViewerSite; -extern const GUID IID_IContextMenu2; -extern const GUID IID_IShellExecuteHookA; -extern const GUID IID_IPropSheetPage; -extern const GUID IID_INewShortcutHookW; -extern const GUID IID_IFileViewerW; -extern const GUID IID_IShellLinkW; -extern const GUID IID_IExtractIconW; -extern const GUID IID_IShellExecuteHookW; -extern const GUID IID_IShellCopyHookW; -extern const GUID IID_IShellView2; -extern const GUID LIBID_SHDocVw; -extern const GUID IID_IShellExplorer; -extern const GUID DIID_DShellExplorerEvents; -extern const GUID CLSID_ShellExplorer; -extern const GUID IID_ISHItemOC; -extern const GUID DIID_DSHItemOCEvents; -extern const GUID CLSID_SHItemOC; -extern const GUID IID_DHyperLink; -extern const GUID IID_DIExplorer; -extern const GUID DIID_DExplorerEvents; -extern const GUID CLSID_InternetExplorer; -extern const GUID CLSID_StdHyperLink; -extern const GUID CLSID_FileTypes; -extern const GUID CLSID_InternetShortcut; -extern const GUID IID_IUniformResourceLocator; -#ifdef UNICODE -#define IID_IFileViewer IID_IFileViewerW -#define IID_IShellLink IID_IShellLinkW -#define IID_IExtractIcon IID_IExtractIconW -#define IID_IShellCopyHook IID_IShellCopyHookW -#define IID_IShellExecuteHook IID_IShellExecuteHookW -#define IID_INewShortcutHook IID_INewShortcutHookW -#else -#define IID_IFileViewer IID_IFileViewerA -#define IID_IShellLink IID_IShellLinkA -#define IID_IExtractIcon IID_IExtractIconA -#define IID_IShellCopyHook IID_IShellCopyHookA -#define IID_IShellExecuteHook IID_IShellExecuteHookA -#define IID_INewShortcutHook IID_INewShortcutHookA -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/shlobj.h b/winsup/w32api/include/shlobj.h deleted file mode 100644 index 2997c573f..000000000 --- a/winsup/w32api/include/shlobj.h +++ /dev/null @@ -1,757 +0,0 @@ -#ifndef _SHLOBJ_H -#define _SHLOBJ_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#pragma pack(push,1) -#include - -#define BIF_RETURNONLYFSDIRS 1 -#define BIF_DONTGOBELOWDOMAIN 2 -#define BIF_STATUSTEXT 4 -#define BIF_RETURNFSANCESTORS 8 -#define BIF_EDITBOX 16 -#define BIF_VALIDATE 32 -#define BIF_NEWDIALOGSTYLE 64 -#define BIF_BROWSEINCLUDEURLS 128 -#define BIF_USENEWUI ( BIF_EDITBOX | BIF_NEWDIALOGSTYLE ) -#define BIF_BROWSEFORCOMPUTER 0x1000 -#define BIF_BROWSEFORPRINTER 0x2000 -#define BIF_BROWSEINCLUDEFILES 0x4000 -#define BIF_SHAREABLE 0x8000 -#define BFFM_INITIALIZED 1 -#define BFFM_SELCHANGED 2 -#define BFFM_SETSTATUSTEXT (WM_USER + 100) -#define BFFM_ENABLEOK (WM_USER + 101) -#define BFFM_SETSELECTION (WM_USER + 102) -#define DVASPECT_SHORTNAME 2 -#define SHARD_PIDL 1 -#define SHARD_PATH 2 -#define SHCNE_RENAMEITEM 1 -#define SHCNE_CREATE 2 -#define SHCNE_DELETE 4 -#define SHCNE_MKDIR 8 -#define SHCNE_RMDIR 16 -#define SHCNE_MEDIAINSERTED 32 -#define SHCNE_MEDIAREMOVED 64 -#define SHCNE_DRIVEREMOVED 128 -#define SHCNE_DRIVEADD 256 -#define SHCNE_NETSHARE 512 -#define SHCNE_NETUNSHARE 1024 -#define SHCNE_ATTRIBUTES 2048 -#define SHCNE_UPDATEDIR 4096 -#define SHCNE_UPDATEITEM 8192 -#define SHCNE_SERVERDISCONNECT 16384 -#define SHCNE_UPDATEIMAGE 32768 -#define SHCNE_DRIVEADDGUI 65536 -#define SHCNE_RENAMEFOLDER 0x20000 -#define SHCNE_FREESPACE 0x40000 -#define SHCNE_ASSOCCHANGED 0x8000000 -#define SHCNE_DISKEVENTS 0x2381F -#define SHCNE_GLOBALEVENTS 0xC0581E0 -#define SHCNE_ALLEVENTS 0x7FFFFFFF -#define SHCNE_INTERRUPT 0x80000000 -#define SHCNF_IDLIST 0 -#define SHCNF_PATH 1 -#define SHCNF_PRINTER 2 -#define SHCNF_DWORD 3 -#define SHCNF_TYPE 0xFF -#define SHCNF_FLUSH 0x1000 -#define SHCNF_FLUSHNOWAIT 0x2000 -#define SFGAO_CANCOPY DROPEFFECT_COPY -#define SFGAO_CANMOVE DROPEFFECT_MOVE -#define SFGAO_CANLINK DROPEFFECT_LINK -#define SFGAO_CANRENAME 0x00000010L -#define SFGAO_CANDELETE 0x00000020L -#define SFGAO_HASPROPSHEET 0x00000040L -#define SFGAO_DROPTARGET 0x00000100L -#define SFGAO_CAPABILITYMASK 0x00000177L -#define SFGAO_LINK 0x00010000L -#define SFGAO_SHARE 0x00020000L -#define SFGAO_READONLY 0x00040000L -#define SFGAO_GHOSTED 0x00080000L -#define SFGAO_DISPLAYATTRMASK 0x000F0000L -#define SFGAO_FILESYSANCESTOR 0x10000000L -#define SFGAO_FOLDER 0x20000000L -#define SFGAO_FILESYSTEM 0x40000000L -#define SFGAO_HASSUBFOLDER 0x80000000L -#define SFGAO_CONTENTSMASK 0x80000000L -#define SFGAO_VALIDATE 0x01000000L -#define SFGAO_REMOVABLE 0x02000000L -#define STRRET_WSTR 0 -#define STRRET_OFFSET 1 -#define STRRET_CSTR 2 -#define SHGDFIL_FINDDATA 1 -#define SHGDFIL_NETRESOURCE 2 -#define SHGDFIL_DESCRIPTIONID 3 -#define SHDID_ROOT_REGITEM 1 -#define SHDID_FS_FILE 2 -#define SHDID_FS_DIRECTORY 3 -#define SHDID_FS_OTHER 4 -#define SHDID_COMPUTER_DRIVE35 5 -#define SHDID_COMPUTER_DRIVE525 6 -#define SHDID_COMPUTER_REMOVABLE 7 -#define SHDID_COMPUTER_FIXED 8 -#define SHDID_COMPUTER_NETDRIVE 9 -#define SHDID_COMPUTER_CDROM 10 -#define SHDID_COMPUTER_RAMDISK 11 -#define SHDID_COMPUTER_OTHER 12 -#define SHDID_NET_DOMAIN 13 -#define SHDID_NET_SERVER 14 -#define SHDID_NET_SHARE 15 -#define SHDID_NET_RESTOFNET 16 -#define SHDID_NET_OTHER 17 -#ifndef REGSTR_PATH_EXPLORER -#define REGSTR_PATH_EXPLORER TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer") -#endif -#define REGSTR_PATH_SPECIAL_FOLDERS REGSTR_PATH_EXPLORER TEXT("\\Shell Folders") -#define CSIDL_DESKTOP 0 -#define CSIDL_INTERNET 1 -#define CSIDL_PROGRAMS 2 -#define CSIDL_CONTROLS 3 -#define CSIDL_PRINTERS 4 -#define CSIDL_PERSONAL 5 -#define CSIDL_FAVORITES 6 -#define CSIDL_STARTUP 7 -#define CSIDL_RECENT 8 -#define CSIDL_SENDTO 9 -#define CSIDL_BITBUCKET 10 -#define CSIDL_STARTMENU 11 -#define CSIDL_DESKTOPDIRECTORY 16 -#define CSIDL_DRIVES 17 -#define CSIDL_NETWORK 18 -#define CSIDL_NETHOOD 19 -#define CSIDL_FONTS 20 -#define CSIDL_TEMPLATES 21 -#define CSIDL_COMMON_STARTMENU 22 -#define CSIDL_COMMON_PROGRAMS 23 -#define CSIDL_COMMON_STARTUP 24 -#define CSIDL_COMMON_DESKTOPDIRECTORY 25 -#define CSIDL_APPDATA 26 -#define CSIDL_PRINTHOOD 27 -#define CSIDL_ALTSTARTUP 29 -#define CSIDL_COMMON_ALTSTARTUP 30 -#define CSIDL_COMMON_FAVORITES 31 -#define CSIDL_INTERNET_CACHE 32 -#define CSIDL_COOKIES 33 -#define CSIDL_HISTORY 34 -#define CFSTR_SHELLIDLIST TEXT("Shell IDList Array") -#define CFSTR_SHELLIDLISTOFFSET TEXT("Shell Object Offsets") -#define CFSTR_NETRESOURCES TEXT("Net Resource") -#define CFSTR_FILEDESCRIPTOR TEXT("FileGroupDescriptor") -#define CFSTR_FILECONTENTS TEXT("FileContents") -#define CFSTR_FILENAME TEXT("FileName") -#define CFSTR_PRINTERGROUP TEXT("PrinterFriendlyName") -#define CFSTR_FILENAMEMAP TEXT("FileNameMap") -#define CFSTR_INDRAGLOOP TEXT("InShellDragLoop") -#define CFSTR_PASTESUCCEEDED TEXT("Paste Succeeded") -#define CFSTR_PERFORMEDDROPEFFECT TEXT("Performed DropEffect") -#define CFSTR_PREFERREDDROPEFFECT TEXT("Preferred DropEffect") -#define CFSTR_SHELLURL TEXT("UniformResourceLocator") -#define CMF_NORMAL 0 -#define CMF_DEFAULTONLY 1 -#define CMF_VERBSONLY 2 -#define CMF_EXPLORE 4 -#define CMF_RESERVED 0xffff0000 -#define GCS_VERBA 0 -#define GCS_HELPTEXTA 1 -#define GCS_VALIDATEA 2 -#define GCS_VERBW 4 -#define GCS_HELPTEXTW 5 -#define GCS_VALIDATEW 6 -#define GCS_UNICODE 4 -#ifdef UNICODE -#define GCS_VERB GCS_VERBW -#define GCS_HELPTEXT GCS_HELPTEXTW -#define GCS_VALIDATE GCS_VALIDATEW -#else -#define GCS_VERB GCS_VERBA -#define GCS_HELPTEXT GCS_HELPTEXTA -#define GCS_VALIDATE GCS_VALIDATEA -#endif -#define CMDSTR_NEWFOLDER TEXT("NewFolder") -#define CMDSTR_VIEWLIST TEXT("ViewList") -#define CMDSTR_VIEWDETAILS TEXT("ViewDetails") -#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY -#define CMIC_MASK_ICON SEE_MASK_ICON -#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI -#define CMIC_MASK_MODAL 0x80000000 -#define CMIC_VALID_SEE_FLAGS SEE_VALID_CMIC_FLAGS -#define GIL_OPENICON 1 -#define GIL_FORSHELL 2 -#define GIL_SIMULATEDOC 1 -#define GIL_PERINSTANCE 2 -#define GIL_PERCLASS 4 -#define GIL_NOTFILENAME 8 -#define GIL_DONTCACHE 16 -#define FVSIF_RECT 1 -#define FVSIF_PINNED 2 -#define FVSIF_NEWFAILED 0x8000000 -#define FVSIF_NEWFILE 0x80000000 -#define FVSIF_CANVIEWIT 0x40000000 -#define CDBOSC_SETFOCUS 0 -#define CDBOSC_KILLFOCUS 1 -#define CDBOSC_SELCHANGE 2 -#define CDBOSC_RENAME 3 -#define FCIDM_SHVIEWFIRST 0 -#define FCIDM_SHVIEWLAST 0x7fff -#define FCIDM_BROWSERFIRST 0xa000 -#define FCIDM_BROWSERLAST 0xbf00 -#define FCIDM_GLOBALFIRST 0x8000 -#define FCIDM_GLOBALLAST 0x9fff -#define FCIDM_MENU_FILE FCIDM_GLOBALFIRST -#define FCIDM_MENU_EDIT (FCIDM_GLOBALFIRST+0x0040) -#define FCIDM_MENU_VIEW (FCIDM_GLOBALFIRST+0x0080) -#define FCIDM_MENU_VIEW_SEP_OPTIONS (FCIDM_GLOBALFIRST+0x0081) -#define FCIDM_MENU_TOOLS (FCIDM_GLOBALFIRST+0x00c0) -#define FCIDM_MENU_TOOLS_SEP_GOTO (FCIDM_GLOBALFIRST+0x00c1) -#define FCIDM_MENU_HELP (FCIDM_GLOBALFIRST+0x0100) -#define FCIDM_MENU_FIND (FCIDM_GLOBALFIRST+0x0140) -#define FCIDM_MENU_EXPLORE (FCIDM_GLOBALFIRST+0x0150) -#define FCIDM_MENU_FAVORITES (FCIDM_GLOBALFIRST+0x0170)  -#define FCIDM_TOOLBAR FCIDM_BROWSERFIRST -#define FCIDM_STATUS (FCIDM_BROWSERFIRST+1) -#define SBSP_DEFBROWSER 0 -#define SBSP_SAMEBROWSER 1 -#define SBSP_NEWBROWSER 2 -#define SBSP_DEFMODE 0 -#define SBSP_OPENMODE 16 -#define SBSP_EXPLOREMODE 32 -#define SBSP_ABSOLUTE 0 -#define SBSP_RELATIVE 0x1000 -#define SBSP_PARENT 0x2000 -#define SBSP_INITIATEDBYHLINKFRAME 0x80000000 -#define SBSP_REDIRECT 0x40000000 -#define FCW_STATUS 1 -#define FCW_TOOLBAR 2 -#define FCW_TREE 3 -#define FCT_MERGE 1 -#define FCT_CONFIGABLE 2 -#define FCT_ADDTOEND 4 -#define SVSI_DESELECT 0 -#define SVSI_SELECT 1 -#define SVSI_EDIT 3 -#define SVSI_DESELECTOTHERS 4 -#define SVSI_ENSUREVISIBLE 8 -#define SVSI_FOCUSED 16 -#define SVGIO_BACKGROUND 0 -#define SVGIO_SELECTION 1 -#define SVGIO_ALLVIEW 2 -#define SV2GV_CURRENTVIEW ((UINT)-1) -#define SV2GV_DEFAULTVIEW ((UINT)-2) - -typedef struct _IDA { - UINT cidl; - UINT aoffset[1]; -} CIDA,*LPIDA; -typedef struct _SHITEMID { - USHORT cb; - BYTE abID[1]; -} SHITEMID, * LPSHITEMID; -typedef const SHITEMID *LPCSHITEMID; -typedef struct _ITEMIDLIST { - SHITEMID mkid; -} ITEMIDLIST,*LPITEMIDLIST; -typedef const ITEMIDLIST *LPCITEMIDLIST; -typedef int (CALLBACK* BFFCALLBACK)(HWND,UINT,LPARAM,LPARAM); -typedef struct _browseinfoA { - HWND hwndOwner; - LPCITEMIDLIST pidlRoot; - LPSTR pszDisplayName; - LPCSTR lpszTitle; - UINT ulFlags; - BFFCALLBACK lpfn; - LPARAM lParam; - int iImage; -} BROWSEINFOA,*PBROWSEINFOA,*LPBROWSEINFOA; -typedef struct _browseinfoW { - HWND hwndOwner; - LPCITEMIDLIST pidlRoot; - LPWSTR pszDisplayName; - LPCWSTR lpszTitle; - UINT ulFlags; - BFFCALLBACK lpfn; - LPARAM lParam; - int iImage; -} BROWSEINFOW,*PBROWSEINFOW,*LPBROWSEINFOW; -typedef struct _CMInvokeCommandInfo { - DWORD cbSize; - DWORD fMask; - HWND hwnd; - LPCSTR lpVerb; - LPCSTR lpParameters; - LPCSTR lpDirectory; - int nShow; - DWORD dwHotKey; - HANDLE hIcon; -} CMINVOKECOMMANDINFO,*LPCMINVOKECOMMANDINFO; -typedef struct _DROPFILES { - DWORD pFiles; - POINT pt; - BOOL fNC; - BOOL fWide; -} DROPFILES,*LPDROPFILES; -typedef enum tagSHGDN { - SHGDN_NORMAL=0, - SHGDN_INFOLDER, - SHGDN_FORPARSING=0x8000 -} SHGNO; -typedef enum tagSHCONTF { - SHCONTF_FOLDERS=32, - SHCONTF_NONFOLDERS=64, - SHCONTF_INCLUDEHIDDEN=128 -} SHCONTF; -typedef struct _STRRET { - UINT uType; - _ANONYMOUS_UNION union { - LPWSTR pOleStr; - UINT uOffset; - char cStr[MAX_PATH]; - } DUMMYUNIONNAME; -} STRRET,*LPSTRRET; -typedef enum { - FD_CLSID=1,FD_SIZEPOINT=2,FD_ATTRIBUTES=4,FD_CREATETIME=8,FD_ACCESSTIME=16, - FD_WRITESTIME=32,FD_FILESIZE=64,FD_LINKUI=0x8000 -} FD_FLAGS; -typedef struct _FILEDESCRIPTOR { - DWORD dwFlags; - CLSID clsid; - SIZEL sizel; - POINTL pointl; - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - CHAR cFileName[MAX_PATH]; -} FILEDESCRIPTOR,*LPFILEDESCRIPTOR; -typedef struct _FILEGROUPDESCRIPTOR { - UINT cItems; - FILEDESCRIPTOR fgd[1]; -} FILEGROUPDESCRIPTOR,*LPFILEGROUPDESCRIPTOR; -typedef enum { - SLR_NO_UI=1, - SLR_ANY_MATCH=2, - SLR_UPDATE=4, - SLR_NOUPDATE=8, - SLR_NOSEARCH=16, - SLR_NOTRACK=32, - SLR_NOLINKINFO=64, - SLR_INVOKE_MSI=128 -} SLR_FLAGS; -typedef enum { - SLGP_SHORTPATH=1, - SLGP_UNCPRIORITY -} SLGP_FLAGS; -typedef PBYTE LPVIEWSETTINGS; -typedef enum { - FWF_AUTOARRANGE=1,FWF_ABBREVIATEDNAMES=2,FWF_SNAPTOGRID=4,FWF_OWNERDATA=8, - FWF_BESTFITWINDOW=16,FWF_DESKTOP=32,FWF_SINGLESEL=64,FWF_NOSUBFOLDERS=128, - FWF_TRANSPARENT=256,FWF_NOCLIENTEDGE=512,FWF_NOSCROLL=0x400,FWF_ALIGNLEFT=0x800, - FWF_SINGLECLICKACTIVATE=0x8000 -} FOLDERFLAGS; -typedef enum { - FVM_ICON=1, - FVM_SMALLICON, - FVM_LIST, - FVM_DETAILS -} FOLDERVIEWMODE; -typedef struct { - UINT ViewMode; - UINT fFlags; -} FOLDERSETTINGS,*LPFOLDERSETTINGS; -typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS; -typedef struct { - DWORD cbSize; - HWND hwndOwner; - int iShow; - DWORD dwFlags; - RECT rect; - LPUNKNOWN punkRel; - OLECHAR strNewFile[MAX_PATH]; -} FVSHOWINFO,*LPFVSHOWINFO; -typedef struct _NRESARRAY { - UINT cItems; - NETRESOURCE nr[1]; -} NRESARRAY, *LPNRESARRAY; -enum { SBSC_HIDE,SBSC_SHOW,SBSC_TOGGLE,SBSC_QUERY }; -enum { - SBCMDID_ENABLESHOWTREE,SBCMDID_SHOWCONTROL,SBCMDID_CANCELNAVIGATION, - SBCMDID_MAYSAVECHANGES,SBCMDID_SETHLINKFRAME,SBCMDID_ENABLESTOP,SBCMDID_OPTIONS -}; -typedef enum { - SVUIA_DEACTIVATE,SVUIA_ACTIVATE_NOFOCUS,SVUIA_ACTIVATE_FOCUS, - SVUIA_INPLACEACTIVATE -} SVUIA_STATUS; - -DECLARE_ENUMERATOR_(IEnumIDList,LPITEMIDLIST); -typedef IEnumIDList *LPENUMIDLIST; - -#undef INTERFACE -#define INTERFACE IContextMenu -DECLARE_INTERFACE_(IContextMenu,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE; - STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE; - STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE; -}; -typedef IContextMenu *LPCONTEXTMENU; - -#undef INTERFACE -#define INTERFACE IContextMenu2 -DECLARE_INTERFACE_(IContextMenu2,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE; - STDMETHOD(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE; - STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE; - STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE; -}; -typedef IContextMenu2 *LPCONTEXTMENU2; - -#undef INTERFACE -#define INTERFACE IShellExtInit -DECLARE_INTERFACE_(IShellExtInit, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST,LPDATAOBJECT,HKEY) PURE; -}; -typedef IShellExtInit *LPSHELLEXTINIT; - -#undef INTERFACE -#define INTERFACE IShellPropSheetExt -DECLARE_INTERFACE_(IShellPropSheetExt, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(AddPages)(THIS_ LPFNADDPROPSHEETPAGE,LPARAM) PURE; - STDMETHOD(ReplacePage)(THIS_ UINT,LPFNADDPROPSHEETPAGE,LPARAM) PURE; -}; -typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT; - -#undef INTERFACE -#define INTERFACE IExtractIcon -DECLARE_INTERFACE_(IExtractIcon, IUnknown) /* exic */ -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetIconLocation)(THIS_ UINT,LPSTR,UINT,int*,PUINT) PURE; - STDMETHOD(Extract)(THIS_ LPCSTR,UINT,HICON*,HICON*,UINT) PURE; -}; -typedef IExtractIcon *LPEXTRACTICON; - -#undef INTERFACE -#define INTERFACE IShellLinkA -DECLARE_INTERFACE_(IShellLinkA, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetPath)(THIS_ LPSTR,int,WIN32_FIND_DATAA*,DWORD) PURE; - STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST*) PURE; - STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST) PURE; - STDMETHOD(GetDescription)(THIS_ LPSTR,int) PURE; - STDMETHOD(SetDescription)(THIS_ LPCSTR) PURE; - STDMETHOD(GetWorkingDirectory)(THIS_ LPSTR,int) PURE; - STDMETHOD(SetWorkingDirectory)(THIS_ LPCSTR) PURE; - STDMETHOD(GetArguments)(THIS_ LPSTR,int) PURE; - STDMETHOD(SetArguments)(THIS_ LPCSTR) PURE; - STDMETHOD(GetHotkey)(THIS_ PWORD) PURE; - STDMETHOD(SetHotkey)(THIS_ WORD) PURE; - STDMETHOD(GetShowCmd)(THIS_ int*) PURE; - STDMETHOD(SetShowCmd)(THIS_ int) PURE; - STDMETHOD(GetIconLocation)(THIS_ LPSTR,int,int*) PURE; - STDMETHOD(SetIconLocation)(THIS_ LPCSTR,int) PURE; - STDMETHOD(SetRelativePath)(THIS_ LPCSTR ,DWORD) PURE; - STDMETHOD(Resolve)(THIS_ HWND,DWORD) PURE; - STDMETHOD(SetPath)(THIS_ LPCSTR) PURE; -}; -#undef INTERFACE -#define INTERFACE IShellLinkW -DECLARE_INTERFACE_(IShellLinkW, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetPath)(THIS_ LPSTR,int,WIN32_FIND_DATAW*,DWORD) PURE; - STDMETHOD(GetIDList)(THIS_ LPITEMIDLIST*) PURE; - STDMETHOD(SetIDList)(THIS_ LPCITEMIDLIST) PURE; - STDMETHOD(GetDescription)(THIS_ LPWSTR,int) PURE; - STDMETHOD(SetDescription)(THIS_ LPCWSTR) PURE; - STDMETHOD(GetWorkingDirectory)(THIS_ LPWSTR,int) PURE; - STDMETHOD(SetWorkingDirectory)(THIS_ LPCWSTR) PURE; - STDMETHOD(GetArguments)(THIS_ LPWSTR,int) PURE; - STDMETHOD(SetArguments)(THIS_ LPCWSTR) PURE; - STDMETHOD(GetHotkey)(THIS_ PWORD) PURE; - STDMETHOD(SetHotkey)(THIS_ WORD) PURE; - STDMETHOD(GetShowCmd)(THIS_ int*) PURE; - STDMETHOD(SetShowCmd)(THIS_ int) PURE; - STDMETHOD(GetIconLocation)(THIS_ LPWSTR,int,int*) PURE; - STDMETHOD(SetIconLocation)(THIS_ LPCWSTR,int) PURE; - STDMETHOD(SetRelativePath)(THIS_ LPCWSTR ,DWORD) PURE; - STDMETHOD(Resolve)(THIS_ HWND,DWORD) PURE; - STDMETHOD(SetPath)(THIS_ LPCWSTR) PURE; -}; - -#undef INTERFACE -#define INTERFACE IShellFolder -DECLARE_INTERFACE_(IShellFolder, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(ParseDisplayName)(THIS_ HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG) PURE; - STDMETHOD(EnumObjects)(THIS_ HWND,DWORD,LPENUMIDLIST*) PURE; - STDMETHOD(BindToObject)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE; - STDMETHOD(BindToStorage)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE; - STDMETHOD(CompareIDs)(THIS_ LPARAM,LPCITEMIDLIST,LPCITEMIDLIST) PURE; - STDMETHOD(CreateViewObject)(THIS_ HWND,REFIID,PVOID*) PURE; - STDMETHOD(GetAttributesOf)(THIS_ UINT,LPCITEMIDLIST*,PULONG) PURE; - STDMETHOD(GetUIObjectOf)(THIS_ HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*) PURE; - STDMETHOD(GetDisplayNameOf)(THIS_ LPCITEMIDLIST,DWORD,LPSTRRET) PURE; - STDMETHOD(SetNameOf)(THIS_ HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*) PURE; -}; -typedef IShellFolder *LPSHELLFOLDER; - -#undef INTERFACE -#define INTERFACE ICopyHook -DECLARE_INTERFACE_(ICopyHook, IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD_(UINT,CopyCallback)(THIS_ HWND,UINT,UINT,LPCSTR,DWORD,LPCSTR,DWORD) PURE; -}; -typedef ICopyHook *LPCOPYHOOK; - -#undef INTERFACE -#define INTERFACE IFileViewerSite -DECLARE_INTERFACE(IFileViewerSite) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(SetPinnedWindow)(THIS_ HWND) PURE; - STDMETHOD(GetPinnedWindow)(THIS_ HWND*) PURE; -}; -typedef IFileViewerSite *LPFILEVIEWERSITE; - -#undef INTERFACE -#define INTERFACE IFileViewer -DECLARE_INTERFACE(IFileViewer) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(ShowInitialize)(THIS_ LPFILEVIEWERSITE) PURE; - STDMETHOD(Show)(THIS_ LPFVSHOWINFO) PURE; - STDMETHOD(PrintTo)(THIS_ LPSTR,BOOL) PURE; -}; -typedef IFileViewer *LPFILEVIEWER; - -#undef INTERFACE -#define INTERFACE ICommDlgBrowser -DECLARE_INTERFACE_(ICommDlgBrowser,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(OnDefaultCommand)(THIS) PURE; - STDMETHOD(OnStateChange)(THIS_ ULONG) PURE; - STDMETHOD(IncludeObject)(THIS_ LPCITEMIDLIST) PURE; -}; -typedef ICommDlgBrowser *LPCOMMDLGBROWSER; - -#undef INTERFACE -#define INTERFACE IPersistFolder -DECLARE_INTERFACE_(IPersistFolder,IPersist) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetClassID)(THIS_ CLSID) PURE; - STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE; -}; -typedef IPersistFolder *LPPERSISTFOLDER; - -typedef interface IShellBrowser *LPSHELLBROWSER; -typedef interface IShellView *LPSHELLVIEW; - -#undef INTERFACE -#define INTERFACE IShellBrowser -DECLARE_INTERFACE_(IShellBrowser,IOleWindow) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(InsertMenusSB)(THIS_ HMENU,LPOLEMENUGROUPWIDTHS) PURE; - STDMETHOD(SetMenuSB)(THIS_ HMENU,HOLEMENU,HWND) PURE; - STDMETHOD(RemoveMenusSB)(THIS_ HMENU) PURE; - STDMETHOD(SetStatusTextSB) (THIS_ LPCOLESTR) PURE; - STDMETHOD(EnableModelessSB) (THIS_ BOOL ) PURE; - STDMETHOD(TranslateAcceleratorSB) (THIS_ LPMSG,WORD) PURE; - STDMETHOD(BrowseObject)(THIS_ LPCITEMIDLIST,UINT) PURE; - STDMETHOD(GetViewStateStream)(THIS_ DWORD,LPSTREAM*) PURE; - STDMETHOD(GetControlWindow)(THIS_ UINT,HWND*) PURE; - STDMETHOD(SendControlMsg)(THIS_ UINT,UINT,WPARAM,LPARAM,LRESULT*) PURE; - STDMETHOD(QueryActiveShellView)(THIS_ LPSHELLVIEW*) PURE; - STDMETHOD(OnViewWindowActive)(THIS_ LPSHELLVIEW) PURE; - STDMETHOD(SetToolbarItems)(THIS_ LPTBBUTTON,UINT,UINT) PURE; -}; - -#undef INTERFACE -#define INTERFACE IShellView -DECLARE_INTERFACE_(IShellView,IOleWindow) -{ - - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(TranslateAccelerator) (THIS_ LPMSG) PURE; -#ifdef _FIX_ENABLEMODELESS_CONFLICT - STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; -#else - STDMETHOD(EnableModeless)(THIS_ BOOL) PURE; -#endif - STDMETHOD(UIActivate)(THIS_ UINT) PURE; - STDMETHOD(Refresh) (THIS) PURE; - STDMETHOD(CreateViewWindow)(THIS_ IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*) PURE; - STDMETHOD(DestroyViewWindow)(THIS) PURE; - STDMETHOD(GetCurrentInfo)(THIS_ LPFOLDERSETTINGS) PURE; - STDMETHOD(AddPropertySheetPages)(THIS_ DWORD,LPFNADDPROPSHEETPAGE,LPARAM) PURE; - STDMETHOD(SaveViewState)(THIS) PURE; - STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST,UINT) PURE; - STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE; -}; -typedef GUID SHELLVIEWID; -typedef struct _SV2CVW2_PARAMS { - DWORD cbSize; - IShellView *psvPrev; - FOLDERSETTINGS const *pfs; - IShellBrowser *psbOwner; - RECT *prcView; - SHELLVIEWID const *pvid; - HWND hwndView; -} SV2CVW2_PARAMS,*LPSV2CVW2_PARAMS; -#undef INTERFACE -#define INTERFACE IShellView2 -DECLARE_INTERFACE_(IShellView2,IShellView) -{ - - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetWindow)(THIS_ HWND*) PURE; - STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE; - STDMETHOD(TranslateAccelerator) (THIS_ LPMSG) PURE; -#ifdef _FIX_ENABLEMODELESS_CONFLICT - STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE; -#else - STDMETHOD(EnableModeless)(THIS_ BOOL) PURE; -#endif - STDMETHOD(UIActivate)(THIS_ UINT) PURE; - STDMETHOD(Refresh) (THIS) PURE; - STDMETHOD(CreateViewWindow)(THIS_ IShellView*,LPCFOLDERSETTINGS,LPSHELLBROWSER,RECT*,HWND*) PURE; - STDMETHOD(DestroyViewWindow)(THIS) PURE; - STDMETHOD(GetCurrentInfo)(THIS_ LPFOLDERSETTINGS) PURE; - STDMETHOD(AddPropertySheetPages)(THIS_ DWORD,LPFNADDPROPSHEETPAGE,LPARAM) PURE; - STDMETHOD(SaveViewState)(THIS) PURE; - STDMETHOD(SelectItem)(THIS_ LPCITEMIDLIST,UINT) PURE; - STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE; - STDMETHOD(GetView)(THIS_ SHELLVIEWID*,ULONG) PURE; - STDMETHOD(CreateViewWindow2)(THIS_ LPSV2CVW2_PARAMS) PURE; -}; - -#undef INTERFACE -#define INTERFACE IShellExecuteHookA -DECLARE_INTERFACE_(IShellExecuteHookA,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOA) PURE; -}; -#undef INTERFACE -#define INTERFACE IShellExecuteHookW -DECLARE_INTERFACE_(IShellExecuteHookW,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(Execute)(THIS_ LPSHELLEXECUTEINFOW) PURE; -}; - -#undef INTERFACE -#define INTERFACE IShellIcon -DECLARE_INTERFACE_(IShellIcon,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(GetIconOf)(THIS_ LPCITEMIDLIST,UINT,PINT) PURE; -}; -typedef IShellIcon *LPSHELLICON; - -void WINAPI SHAddToRecentDocs(UINT,PCVOID); -LPITEMIDLIST WINAPI SHBrowseForFolderA(PBROWSEINFOA); -LPITEMIDLIST WINAPI SHBrowseForFolderW(PBROWSEINFOW); -void WINAPI SHChangeNotify(LONG,UINT,PCVOID,PCVOID); -HRESULT WINAPI SHGetDataFromIDListA(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int); -HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER,LPCITEMIDLIST,int,PVOID,int); -HRESULT WINAPI SHGetDesktopFolder(LPSHELLFOLDER*); -HRESULT WINAPI SHGetInstanceExplorer(LPUNKNOWN); -HRESULT WINAPI SHGetMalloc(LPMALLOC*); -BOOL WINAPI SHGetPathFromIDListA(LPCITEMIDLIST,LPSTR); -BOOL WINAPI SHGetPathFromIDListW(LPCITEMIDLIST,LPWSTR); -HRESULT WINAPI SHGetSpecialFolderLocation(HWND,int,LPITEMIDLIST*); -HRESULT WINAPI SHLoadInProc(REFCLSID); -/* FIXME/TODO: Only valid for _WIN32_IE >= 400? */ -BOOL WINAPI SHGetSpecialFolderPathA(HWND,LPSTR,int,BOOL); -BOOL WINAPI SHGetSpecialFolderPathW(HWND,LPSTR,int,BOOL); - -#ifdef UNICODE -typedef IShellExecuteHookW IShellExecuteHook; -typedef IShellLinkW IShellLink; -typedef BROWSEINFOW BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO; -#define SHBrowseForFolder SHBrowseForFolderW -#define SHGetDataFromIDList SHGetDataFromIDListW -#define SHGetPathFromIDList SHGetPathFromIDListW -/* FIXME/TODO: Only valid for _WIN32_IE >= 400? */ -#define SHGetSpecialFolderPath SHGetSpecialFolderPathW -#else -typedef IShellExecuteHookA IShellExecuteHook; -typedef IShellLinkA IShellLink; -typedef BROWSEINFOA BROWSEINFO,*PBROWSEINFO,*LPBROWSEINFO; -#define SHBrowseForFolder SHBrowseForFolderA -#define SHGetDataFromIDList SHGetDataFromIDListA -#define SHGetPathFromIDList SHGetPathFromIDListA -/* FIXME/TODO: Only valid for _WIN32_IE >= 400? */ -#define SHGetSpecialFolderPath SHGetSpecialFolderPathA -#endif - -#pragma pack(pop) -#ifdef __cplusplus -} -#endif - - -#endif /* _SHLOBJ_H */ diff --git a/winsup/w32api/include/sql.h b/winsup/w32api/include/sql.h deleted file mode 100644 index f5241c1a4..000000000 --- a/winsup/w32api/include/sql.h +++ /dev/null @@ -1,404 +0,0 @@ -#ifndef _SQL_H -#define _SQL_H -#ifdef __cplusplus -extern "C" { -#endif -#ifndef ODBCVER -#define ODBCVER 0x0351 -#endif -#include -#define SQL_ACCESSIBLE_PROCEDURES 20 -#define SQL_ACCESSIBLE_TABLES 19 -#define SQL_ALL_TYPES 0 -#define SQL_ALTER_TABLE 86 -#define SQL_API_SQLALLOCCONNECT 1 -#define SQL_API_SQLALLOCENV 2 -#define SQL_API_SQLALLOCSTMT 3 -#define SQL_API_SQLBINDCOL 4 -#define SQL_API_SQLCANCEL 5 -#define SQL_API_SQLCOLUMNS 40 -#define SQL_API_SQLCONNECT 7 -#define SQL_API_SQLDATASOURCES 57 -#define SQL_API_SQLDESCRIBECOL 8 -#define SQL_API_SQLDISCONNECT 9 -#define SQL_API_SQLERROR 10 -#define SQL_API_SQLEXECDIRECT 11 -#define SQL_API_SQLEXECUTE 12 -#define SQL_API_SQLFETCH 13 -#define SQL_API_SQLFREECONNECT 14 -#define SQL_API_SQLFREEENV 15 -#define SQL_API_SQLFREESTMT 16 -#define SQL_API_SQLGETCONNECTOPTION 42 -#define SQL_API_SQLGETCURSORNAME 17 -#define SQL_API_SQLGETDATA 43 -#define SQL_API_SQLGETFUNCTIONS 44 -#define SQL_API_SQLGETINFO 45 -#define SQL_API_SQLGETSTMTOPTION 46 -#define SQL_API_SQLGETTYPEINFO 47 -#define SQL_API_SQLNUMRESULTCOLS 18 -#define SQL_API_SQLPARAMDATA 48 -#define SQL_API_SQLPREPARE 19 -#define SQL_API_SQLPUTDATA 49 -#define SQL_API_SQLROWCOUNT 20 -#define SQL_API_SQLSETCONNECTOPTION 50 -#define SQL_API_SQLSETCURSORNAME 21 -#define SQL_API_SQLSETPARAM 22 -#define SQL_API_SQLSETSTMTOPTION 51 -#define SQL_API_SQLSPECIALCOLUMNS 52 -#define SQL_API_SQLSTATISTICS 53 -#define SQL_API_SQLTABLES 54 -#define SQL_API_SQLTRANSACT 23 -#define SQL_CB_CLOSE 1 -#define SQL_CB_DELETE 0 -#define SQL_CB_PRESERVE 2 -#define SQL_CHAR 1 -#define SQL_CLOSE 0 -#define SQL_COMMIT 0 -#define SQL_CURSOR_COMMIT_BEHAVIOR 23 -#define SQL_DATA_AT_EXEC (-2) -#define SQL_DATA_SOURCE_NAME 2 -#define SQL_DATA_SOURCE_READ_ONLY 25 -#define SQL_DBMS_NAME 17 -#define SQL_DBMS_VER 18 -#define SQL_DECIMAL 3 -#define SQL_DEFAULT_TXN_ISOLATION 26 -#define SQL_DOUBLE 8 -#define SQL_DROP 1 -#define SQL_ERROR (-1) -#define SQL_FD_FETCH_ABSOLUTE 16 -#define SQL_FD_FETCH_FIRST 2 -#define SQL_FD_FETCH_LAST 4 -#define SQL_FD_FETCH_NEXT 1 -#define SQL_FD_FETCH_PRIOR 8 -#define SQL_FD_FETCH_RELATIVE 32 -#define SQL_FETCH_ABSOLUTE 5 -#define SQL_FETCH_DIRECTION 8 -#define SQL_FETCH_FIRST 2 -#define SQL_FETCH_LAST 3 -#define SQL_FETCH_NEXT 1 -#define SQL_FETCH_PRIOR 4 -#define SQL_FETCH_RELATIVE 6 -#define SQL_FLOAT 6 -#define SQL_GD_ANY_COLUMN 1 -#define SQL_GD_ANY_ORDER 2 -#define SQL_GETDATA_EXTENSIONS 81 -#define SQL_IC_LOWER 2 -#define SQL_IC_MIXED 4 -#define SQL_IC_SENSITIVE 3 -#define SQL_IC_UPPER 1 -#define SQL_IDENTIFIER_CASE 28 -#define SQL_IDENTIFIER_QUOTE_CHAR 29 -#define SQL_INDEX_ALL 1 -#define SQL_INDEX_CLUSTERED 1 -#define SQL_INDEX_HASHED 2 -#define SQL_INDEX_OTHER 3 -#define SQL_INDEX_UNIQUE 0 -#define SQL_INTEGER 4 -#define SQL_INTEGRITY 73 -#define SQL_INVALID_HANDLE (-2) -#define SQL_MAX_CATALOG_NAME_LEN 34 -#define SQL_MAX_COLUMN_NAME_LEN 30 -#define SQL_MAX_COLUMNS_IN_GROUP_BY 97 -#define SQL_MAX_COLUMNS_IN_INDEX 98 -#define SQL_MAX_COLUMNS_IN_ORDER_BY 99 -#define SQL_MAX_COLUMNS_IN_SELECT 100 -#define SQL_MAX_COLUMNS_IN_TABLE 101 -#define SQL_MAX_CURSOR_NAME_LEN 31 -#define SQL_MAX_INDEX_SIZE 102 -#define SQL_MAX_MESSAGE_LENGTH 512 -#define SQL_MAX_ROW_SIZE 104 -#define SQL_MAX_SCHEMA_NAME_LEN 32 -#define SQL_MAX_STATEMENT_LEN 105 -#define SQL_MAX_TABLE_NAME_LEN 35 -#define SQL_MAX_TABLES_IN_SELECT 106 -#define SQL_MAX_USER_NAME_LEN 107 -#define SQL_MAXIMUM_CATALOG_NAME_LENGTH SQL_MAX_CATALOG_NAME_LEN -#define SQL_MAXIMUM_COLUMN_NAME_LENGTH SQL_MAX_COLUMN_NAME_LEN -#define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY SQL_MAX_COLUMNS_IN_GROUP_BY -#define SQL_MAXIMUM_COLUMNS_IN_INDEX SQL_MAX_COLUMNS_IN_INDEX -#define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY SQL_MAX_COLUMNS_IN_ORDER_BY -#define SQL_MAXIMUM_COLUMNS_IN_SELECT SQL_MAX_COLUMNS_IN_SELECT -#define SQL_MAXIMUM_CURSOR_NAME_LENGTH SQL_MAX_CURSOR_NAME_LEN -#define SQL_MAXIMUM_INDEX_SIZE SQL_MAX_INDEX_SIZE -#define SQL_MAXIMUM_ROW_SIZE SQL_MAX_ROW_SIZE -#define SQL_MAXIMUM_SCHEMA_NAME_LENGTH SQL_MAX_SCHEMA_NAME_LEN -#define SQL_MAXIMUM_STATEMENT_LENGTH SQL_MAX_STATEMENT_LEN -#define SQL_MAXIMUM_TABLES_IN_SELECT SQL_MAX_TABLES_IN_SELECT -#define SQL_MAXIMUM_USER_NAME_LENGTH SQL_MAX_USER_NAME_LEN -#define SQL_NC_HIGH 0 -#define SQL_NC_LOW 1 -#define SQL_NEED_DATA 99 -#define SQL_NO_NULLS 0 -#define SQL_NTS (-3) -#define SQL_NTSL (-3L) -#define SQL_NULL_COLLATION 85 -#define SQL_NULL_DATA (-1) -#define SQL_NULL_HDBC 0 -#define SQL_NULL_HENV 0 -#define SQL_NULL_HSTMT 0 -#define SQL_NULLABLE 1 -#define SQL_NULLABLE_UNKNOWN 2 -#define SQL_NUMERIC 2 -#define SQL_ORDER_BY_COLUMNS_IN_SELECT 90 -#define SQL_PC_PSEUDO 2 -#define SQL_PC_UNKNOWN 0 -#define SQL_REAL 7 -#define SQL_RESET_PARAMS 3 -#define SQL_ROLLBACK 1 -#define SQL_SCCO_LOCK 2 -#define SQL_SCCO_OPT_ROWVER 4 -#define SQL_SCCO_OPT_VALUES 8 -#define SQL_SCCO_READ_ONLY 1 -#define SQL_SCOPE_CURROW 0 -#define SQL_SCOPE_SESSION 2 -#define SQL_SCOPE_TRANSACTION 1 -#define SQL_SCROLL_CONCURRENCY 43 -#define SQL_SEARCH_PATTERN_ESCAPE 14 -#define SQL_SERVER_NAME 13 -#define SQL_SMALLINT 5 -#define SQL_SPECIAL_CHARACTERS 94 -#define SQL_STILL_EXECUTING 2 -#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) -#define SQL_SUCCESS 0 -#define SQL_SUCCESS_WITH_INFO 1 -#define SQL_TC_ALL 2 -#define SQL_TC_DDL_COMMIT 3 -#define SQL_TC_DDL_IGNORE 4 -#define SQL_TC_DML 1 -#define SQL_TC_NONE 0 -#define SQL_TRANSACTION_CAPABLE SQL_TXN_CAPABLE -#define SQL_TRANSACTION_ISOLATION_OPTION SQL_TXN_ISOLATION_OPTION -#define SQL_TRANSACTION_READ_COMMITTED SQL_TXN_READ_COMMITTED -#define SQL_TRANSACTION_READ_UNCOMMITTED SQL_TXN_READ_UNCOMMITTED -#define SQL_TRANSACTION_REPEATABLE_READ SQL_TXN_REPEATABLE_READ -#define SQL_TRANSACTION_SERIALIZABLE SQL_TXN_SERIALIZABLE -#define SQL_TXN_CAPABLE 46 -#define SQL_TXN_ISOLATION_OPTION 72 -#define SQL_TXN_READ_COMMITTED 2 -#define SQL_TXN_READ_UNCOMMITTED 1 -#define SQL_TXN_REPEATABLE_READ 4 -#define SQL_TXN_SERIALIZABLE 8 -#define SQL_UNBIND 2 -#define SQL_UNKNOWN_TYPE 0 -#define SQL_USER_NAME 47 -#define SQL_VARCHAR 12 -#if (ODBCVER >= 0x0200) -#define SQL_AT_ADD_COLUMN 1 -#define SQL_AT_DROP_COLUMN 2 -#endif /* ODBCVER >= 0x0200 */ -#if (ODBCVER >= 0x0201) -#define SQL_OJ_LEFT 1 -#define SQL_OJ_RIGHT 2 -#define SQL_OJ_FULL 4 -#define SQL_OJ_NESTED 8 -#define SQL_OJ_NOT_ORDERED 16 -#define SQL_OJ_INNER 32 -#define SQL_OJ_ALL_COMPARISON_OPS 64 -#endif /* ODBCVER >= 0x0201 */ -#if (ODBCVER >= 0x0300) -#define SQL_AM_CONNECTION 1 -#define SQL_AM_NONE 0 -#define SQL_AM_STATEMENT 2 -#define SQL_API_SQLALLOCHANDLE 1001 -#define SQL_API_SQLBINDPARAM 1002 -#define SQL_API_SQLCLOSECURSOR 1003 -#define SQL_API_SQLCOLATTRIBUTE 6 -#define SQL_API_SQLCOPYDESC 1004 -#define SQL_API_SQLENDTRAN 1005 -#define SQL_API_SQLFETCHSCROLL 1021 -#define SQL_API_SQLFREEHANDLE 1006 -#define SQL_API_SQLGETCONNECTATTR 1007 -#define SQL_API_SQLGETDESCFIELD 1008 -#define SQL_API_SQLGETDESCREC 1009 -#define SQL_API_SQLGETDIAGFIELD 1010 -#define SQL_API_SQLGETDIAGREC 1011 -#define SQL_API_SQLGETENVATTR 1012 -#define SQL_API_SQLGETSTMTATTR 1014 -#define SQL_API_SQLSETCONNECTATTR 1016 -#define SQL_API_SQLSETDESCFIELD 1017 -#define SQL_API_SQLSETDESCREC 1018 -#define SQL_API_SQLSETENVATTR 1019 -#define SQL_API_SQLSETSTMTATTR 1020 -#define SQL_ARD_TYPE (-99) -#define SQL_AT_ADD_CONSTRAINT 8 -#define SQL_ATTR_APP_PARAM_DESC 10011 -#define SQL_ATTR_APP_ROW_DESC 10010 -#define SQL_ATTR_AUTO_IPD 10001 -#define SQL_ATTR_CURSOR_SCROLLABLE (-1) -#define SQL_ATTR_CURSOR_SENSITIVITY (-2) -#define SQL_ATTR_IMP_PARAM_DESC 10013 -#define SQL_ATTR_IMP_ROW_DESC 10012 -#define SQL_ATTR_METADATA_ID 10014 -#define SQL_ATTR_OUTPUT_NTS 10001 -#define SQL_CATALOG_NAME 10003 -#define SQL_CODE_DATE 1 -#define SQL_CODE_TIME 2 -#define SQL_CODE_TIMESTAMP 3 -#define SQL_COLLATION_SEQ 10004 -#define SQL_CURSOR_SENSITIVITY 10001 -#define SQL_DATE_LEN 10 -#define SQL_DATETIME 9 -#define SQL_DEFAULT 99 -#define SQL_DESC_ALLOC_AUTO 1 -#define SQL_DESC_ALLOC_TYPE 1099 -#define SQL_DESC_ALLOC_USER 2 -#define SQL_DESC_COUNT 1001 -#define SQL_DESC_DATA_PTR 1010 -#define SQL_DESC_DATETIME_INTERVAL_CODE 1007 -#define SQL_DESC_INDICATOR_PTR 1009 -#define SQL_DESC_LENGTH 1003 -#define SQL_DESC_NAME 1011 -#define SQL_DESC_NULLABLE 1008 -#define SQL_DESC_OCTET_LENGTH 1013 -#define SQL_DESC_OCTET_LENGTH_PTR 1004 -#define SQL_DESC_PRECISION 1005 -#define SQL_DESC_SCALE 1006 -#define SQL_DESC_TYPE 1002 -#define SQL_DESC_UNNAMED 1012 -#define SQL_DESCRIBE_PARAMETER 10002 -#define SQL_DIAG_ALTER_DOMAIN 3 -#define SQL_DIAG_ALTER_TABLE 4 -#define SQL_DIAG_CALL 7 -#define SQL_DIAG_CLASS_ORIGIN 8 -#define SQL_DIAG_CONNECTION_NAME 10 -#define SQL_DIAG_CREATE_ASSERTION 6 -#define SQL_DIAG_CREATE_CHARACTER_SET 8 -#define SQL_DIAG_CREATE_COLLATION 10 -#define SQL_DIAG_CREATE_DOMAIN 23 -#define SQL_DIAG_CREATE_INDEX (-1) -#define SQL_DIAG_CREATE_SCHEMA 64 -#define SQL_DIAG_CREATE_TABLE 77 -#define SQL_DIAG_CREATE_TRANSLATION 79 -#define SQL_DIAG_CREATE_VIEW 84 -#define SQL_DIAG_DELETE_WHERE 19 -#define SQL_DIAG_DROP_ASSERTION 24 -#define SQL_DIAG_DROP_CHARACTER_SET 25 -#define SQL_DIAG_DROP_COLLATION 26 -#define SQL_DIAG_DROP_DOMAIN 27 -#define SQL_DIAG_DROP_INDEX (-2) -#define SQL_DIAG_DROP_SCHEMA 31 -#define SQL_DIAG_DROP_TABLE 32 -#define SQL_DIAG_DROP_TRANSLATION 33 -#define SQL_DIAG_DROP_VIEW 36 -#define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38 -#define SQL_DIAG_DYNAMIC_FUNCTION 7 -#define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12 -#define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81 -#define SQL_DIAG_GRANT 48 -#define SQL_DIAG_INSERT 50 -#define SQL_DIAG_MESSAGE_TEXT 6 -#define SQL_DIAG_NATIVE 5 -#define SQL_DIAG_NUMBER 2 -#define SQL_DIAG_RETURNCODE 1 -#define SQL_DIAG_REVOKE 59 -#define SQL_DIAG_ROW_COUNT 3 -#define SQL_DIAG_SELECT_CURSOR 85 -#define SQL_DIAG_SERVER_NAME 11 -#define SQL_DIAG_SQLSTATE 4 -#define SQL_DIAG_SUBCLASS_ORIGIN 9 -#define SQL_DIAG_UNKNOWN_STATEMENT 0 -#define SQL_DIAG_UPDATE_WHERE 82 -#define SQL_FALSE 0 -#define SQL_HANDLE_DBC 2 -#define SQL_HANDLE_DESC 4 -#define SQL_HANDLE_ENV 1 -#define SQL_HANDLE_STMT 3 -#define SQL_INSENSITIVE 1 -#define SQL_MAX_CONCURRENT_ACTIVITIES 1 -#define SQL_MAX_DRIVER_CONNECTIONS 0 -#define SQL_MAX_IDENTIFIER_LEN 10005 -#define SQL_MAXIMUM_CONCURRENT_ACTIVITIES SQL_MAX_CONCURRENT_ACTIVITIES -#define SQL_MAXIMUM_DRIVER_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS -#define SQL_MAXIMUM_IDENTIFIER_LENGTH SQL_MAX_IDENTIFIER_LEN -#define SQL_NAMED 0 -#define SQL_NO_DATA 100 -#define SQL_NONSCROLLABLE 0 -#define SQL_NULL_HANDLE 0L -#define SQL_NULL_HDESC 0 -#define SQL_OJ_CAPABILITIES 115 -#define SQL_OUTER_JOIN_CAPABILITIES SQL_OJ_CAPABILITIES -#define SQL_PC_NON_PSEUDO 1 -#define SQL_PRED_BASIC 2 -#define SQL_PRED_CHAR 1 -#define SQL_PRED_NONE 0 -#define SQL_ROW_IDENTIFIER 1 -#define SQL_SCROLLABLE 1 -#define SQL_SENSITIVE 2 -#define SQL_TIME_LEN 8 -#define SQL_TIMESTAMP_LEN 19 -#define SQL_TRUE 1 -#define SQL_TYPE_DATE 91 -#define SQL_TYPE_TIME 92 -#define SQL_TYPE_TIMESTAMP 93 -#define SQL_UNNAMED 1 -#define SQL_UNSPECIFIED 0 -#define SQL_XOPEN_CLI_YEAR 10000 -#endif /* ODBCVER >= 0x0300 */ - -#ifndef RC_INVOKED -SQLRETURN SQL_API SQLAllocConnect(SQLHENV,SQLHDBC*); /* deprecated */ -SQLRETURN SQL_API SQLAllocEnv(SQLHENV*); /* deprecated */ -SQLRETURN SQL_API SQLAllocStmt(SQLHDBC,SQLHSTMT*); /* deprecated */ -SQLRETURN SQL_API SQLBindCol(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLPOINTER,SQLLEN,SQLLEN*); -SQLRETURN SQL_API SQLCancel(SQLHSTMT); -SQLRETURN SQL_API SQLConnect(SQLHDBC,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLDescribeCol(SQLHSTMT,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*); -SQLRETURN SQL_API SQLDisconnect(SQLHDBC); -SQLRETURN SQL_API SQLError(SQLHENV,SQLHDBC,SQLHSTMT,SQLCHAR*,SQLINTEGER*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); /* deprecated */ -SQLRETURN SQL_API SQLExecDirect(SQLHSTMT,SQLCHAR*,SQLINTEGER); -SQLRETURN SQL_API SQLExecute(SQLHSTMT); -SQLRETURN SQL_API SQLFetch(SQLHSTMT); -SQLRETURN SQL_API SQLFreeConnect(SQLHDBC); /* deprecated */ -SQLRETURN SQL_API SQLFreeEnv(SQLHENV); /* deprecated */ -SQLRETURN SQL_API SQLFreeStmt(SQLHSTMT,SQLUSMALLINT); -SQLRETURN SQL_API SQLGetCursorName(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLNumResultCols(SQLHSTMT,SQLSMALLINT*); -SQLRETURN SQL_API SQLPrepare(SQLHSTMT,SQLCHAR*,SQLINTEGER); -SQLRETURN SQL_API SQLRowCount(SQLHSTMT,SQLLEN*); -SQLRETURN SQL_API SQLSetCursorName(SQLHSTMT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLTransact(SQLHENV,SQLHDBC,SQLUSMALLINT); -SQLRETURN SQL_API SQLSetParam(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLULEN,SQLSMALLINT,SQLPOINTER,SQLLEN*); /* deprecated */ -SQLRETURN SQL_API SQLColumns(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLGetConnectOption(SQLHDBC,SQLUSMALLINT,SQLPOINTER); /* deprecated */ -SQLRETURN SQL_API SQLGetData(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLPOINTER,SQLLEN,SQLLEN*); -SQLRETURN SQL_API SQLGetFunctions(SQLHDBC,SQLUSMALLINT,SQLUSMALLINT*); -SQLRETURN SQL_API SQLGetInfo(SQLHDBC,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetStmtOption(SQLHSTMT,SQLUSMALLINT,SQLPOINTER); /* deprecated */ -SQLRETURN SQL_API SQLGetTypeInfo(SQLHSTMT,SQLSMALLINT); -SQLRETURN SQL_API SQLParamData(SQLHSTMT,SQLPOINTER*); -SQLRETURN SQL_API SQLPutData(SQLHSTMT,SQLPOINTER,SQLLEN); -SQLRETURN SQL_API SQLSetConnectOption(SQLHDBC,SQLUSMALLINT,SQLULEN); /* deprecated */ -SQLRETURN SQL_API SQLSetStmtOption(SQLHSTMT,SQLUSMALLINT,SQLROWCOUNT); /* deprecated */ -SQLRETURN SQL_API SQLSpecialColumns(SQLHSTMT,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLUSMALLINT,SQLUSMALLINT); -SQLRETURN SQL_API SQLStatistics(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLUSMALLINT,SQLUSMALLINT); -SQLRETURN SQL_API SQLTables(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLDataSources(SQLHENV,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -#if (ODBCVER >= 0x0300) -SQLRETURN SQL_API SQLAllocHandle(SQLSMALLINT,SQLHANDLE,SQLHANDLE*); -SQLRETURN SQL_API SQLBindParam(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLULEN,SQLSMALLINT,SQLPOINTER,SQLLEN*); -SQLRETURN SQL_API SQLCloseCursor(SQLHSTMT); -SQLRETURN SQL_API SQLColAttribute(SQLHSTMT,SQLUSMALLINT,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*,SQLPOINTER); -SQLRETURN SQL_API SQLCopyDesc(SQLHDESC,SQLHDESC); -SQLRETURN SQL_API SQLEndTran(SQLSMALLINT,SQLHANDLE,SQLSMALLINT); -SQLRETURN SQL_API SQLFetchScroll(SQLHSTMT,SQLSMALLINT,SQLROWOFFSET); -SQLRETURN SQL_API SQLFreeHandle(SQLSMALLINT,SQLHANDLE); -SQLRETURN SQL_API SQLGetConnectAttr(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLGetDescField(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLGetDescRec(SQLHDESC,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*, - SQLSMALLINT*,SQLSMALLINT*,SQLLEN*,SQLSMALLINT*,SQLSMALLINT*,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetDiagField(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetDiagRec(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLCHAR*,SQLINTEGER*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetEnvAttr(SQLHENV,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLGetStmtAttr(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLSetConnectAttr(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER); -SQLRETURN SQL_API SQLSetDescField(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER); -SQLRETURN SQL_API SQLSetDescRec(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLLEN,SQLSMALLINT, - SQLSMALLINT,SQLPOINTER,SQLLEN*,SQLLEN*); -SQLRETURN SQL_API SQLSetEnvAttr(SQLHENV,SQLINTEGER,SQLPOINTER,SQLINTEGER); -SQLRETURN SQL_API SQLSetStmtAttr(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER); -#endif /* (ODBCVER >= 0x0300) */ -#endif /* ndef RC_INVOKED */ -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/sqlext.h b/winsup/w32api/include/sqlext.h deleted file mode 100644 index 17235bd58..000000000 --- a/winsup/w32api/include/sqlext.h +++ /dev/null @@ -1,1214 +0,0 @@ -#ifndef _SQLEXT_H -#define _SQLEXT_H -#include -#ifdef __cplusplus -extern "C" { -#endif -#define SQL_SPEC_MAJOR 3 -#define SQL_SPEC_MINOR 51 -#define SQL_SPEC_STRING "03.51" -#define SQL_ACCESS_MODE 101 -#define SQL_ACTIVE_CONNECTIONS 0 -#define SQL_ACTIVE_STATEMENTS 1 -#define SQL_ADD 4 -#define SQL_ALL_EXCEPT_LIKE 2 -#define SQL_API_ALL_FUNCTIONS 0 -#define SQL_API_LOADBYORDINAL 199 -#define SQL_API_SQLBINDPARAMETER 72 -#define SQL_API_SQLBROWSECONNECT 55 -#define SQL_API_SQLCOLATTRIBUTES 6 -#define SQL_API_SQLCOLUMNPRIVILEGES 56 -#define SQL_API_SQLDESCRIBEPARAM 58 -#define SQL_API_SQLDRIVERCONNECT 41 -#define SQL_API_SQLDRIVERS 71 -#define SQL_API_SQLEXTENDEDFETCH 59 -#define SQL_API_SQLFOREIGNKEYS 60 -#define SQL_API_SQLMORERESULTS 61 -#define SQL_API_SQLNATIVESQL 62 -#define SQL_API_SQLNUMPARAMS 63 -#define SQL_API_SQLPARAMOPTIONS 64 -#define SQL_API_SQLPRIMARYKEYS 65 -#define SQL_API_SQLPROCEDURECOLUMNS 66 -#define SQL_API_SQLPROCEDURES 67 -#define SQL_API_SQLSETPOS 68 -#define SQL_API_SQLSETSCROLLOPTIONS 69 -#define SQL_API_SQLTABLEPRIVILEGES 70 -#define SQL_ASYNC_ENABLE 4 -#define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF -#define SQL_ASYNC_ENABLE_OFF 0UL -#define SQL_ASYNC_ENABLE_ON 1UL -#define SQL_ATTR_CONNECTION_DEAD 1209 -#define SQL_ATTR_READONLY 0 -#define SQL_ATTR_READWRITE_UNKNOWN 2 -#define SQL_ATTR_WRITE 1 -#define SQL_AUTOCOMMIT 102 -#define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON -#define SQL_AUTOCOMMIT_OFF 0UL -#define SQL_AUTOCOMMIT_ON 1UL -#define SQL_BEST_ROWID 1 -#define SQL_BIGINT (-5) -#define SQL_BINARY (-2) -#define SQL_BIND_BY_COLUMN 0UL -#define SQL_BIND_TYPE 5 -#define SQL_BIND_TYPE_DEFAULT SQL_BIND_BY_COLUMN -#define SQL_BIT (-7) -#define SQL_BOOKMARK_PERSISTENCE 82 -#define SQL_BP_CLOSE 1 -#define SQL_BP_DELETE 2 -#define SQL_BP_DROP 4 -#define SQL_BP_OTHER_HSTMT 32 -#define SQL_BP_SCROLL 64 -#define SQL_BP_TRANSACTION 8 -#define SQL_BP_UPDATE 16 -#define SQL_C_BINARY SQL_BINARY -#define SQL_C_BIT SQL_BIT -#define SQL_C_BOOKMARK SQL_C_ULONG -#define SQL_C_CHAR SQL_CHAR -#define SQL_C_DATE SQL_DATE -#define SQL_C_DEFAULT 99 -#define SQL_C_DOUBLE SQL_DOUBLE -#define SQL_C_FLOAT SQL_REAL -#define SQL_C_LONG SQL_INTEGER -#define SQL_C_SHORT SQL_SMALLINT -#define SQL_C_SLONG (SQL_C_LONG+SQL_SIGNED_OFFSET) -#define SQL_C_SSHORT (SQL_C_SHORT+SQL_SIGNED_OFFSET) -#define SQL_C_STINYINT (SQL_TINYINT+SQL_SIGNED_OFFSET) -#define SQL_C_TIME SQL_TIME -#define SQL_C_TIMESTAMP SQL_TIMESTAMP -#define SQL_C_TINYINT SQL_TINYINT -#define SQL_C_ULONG (SQL_C_LONG+SQL_UNSIGNED_OFFSET) -#define SQL_C_USHORT (SQL_C_SHORT+SQL_UNSIGNED_OFFSET) -#define SQL_C_UTINYINT (SQL_TINYINT+SQL_UNSIGNED_OFFSET) -#define SQL_CASCADE 0 -#define SQL_CB_NON_NULL 1 -#define SQL_CB_NULL 0 -#define SQL_CC_CLOSE SQL_CB_CLOSE /* deprecated */ -#define SQL_CC_DELETE SQL_CB_DELETE /* deprecated */ -#define SQL_CC_PRESERVE SQL_CB_PRESERVE /* deprecated */ -#define SQL_CD_FALSE 0L -#define SQL_CD_TRUE 1L -#define SQL_CN_ANY 2 -#define SQL_CN_DIFFERENT 1 -#define SQL_CN_NONE 0 -#define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL -#define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT -#define SQL_COLUMN_ALIAS 87 -#define SQL_COLUMN_AUTO_INCREMENT 11 -#define SQL_COLUMN_CASE_SENSITIVE 12 -#define SQL_COLUMN_COUNT 0 -#define SQL_COLUMN_DISPLAY_SIZE 6 -#define SQL_COLUMN_LABEL 18 -#define SQL_COLUMN_LENGTH 3 -#define SQL_COLUMN_MONEY 9 -#define SQL_COLUMN_NAME 1 -#define SQL_COLUMN_NULLABLE 7 -#define SQL_COLUMN_OWNER_NAME 16 -#define SQL_COLUMN_PRECISION 4 -#define SQL_COLUMN_QUALIFIER_NAME 17 -#define SQL_COLUMN_SCALE 5 -#define SQL_COLUMN_SEARCHABLE 13 -#define SQL_COLUMN_TABLE_NAME 15 -#define SQL_COLUMN_TYPE 2 -#define SQL_COLUMN_TYPE_NAME 14 -#define SQL_COLUMN_UNSIGNED 8 -#define SQL_COLUMN_UPDATABLE 10 -#define SQL_CONCAT_NULL_BEHAVIOR 22 -#define SQL_CONCUR_DEFAULT SQL_CONCUR_READ_ONLY -#define SQL_CONCUR_LOCK 2 -#define SQL_CONCUR_READ_ONLY 1 -#define SQL_CONCUR_ROWVER 3 -#define SQL_CONCUR_TIMESTAMP SQL_CONCUR_ROWVER /* deprecated */ -#define SQL_CONCUR_VALUES 4 -#define SQL_CONCURRENCY 7 -#define SQL_CONVERT_BIGINT 53 -#define SQL_CONVERT_BINARY 54 -#define SQL_CONVERT_BIT 55 -#define SQL_CONVERT_CHAR 56 -#define SQL_CONVERT_DATE 57 -#define SQL_CONVERT_DECIMAL 58 -#define SQL_CONVERT_DOUBLE 59 -#define SQL_CONVERT_FLOAT 60 -#define SQL_CONVERT_FUNCTIONS 48 -#define SQL_CONVERT_INTEGER 61 -#define SQL_CONVERT_LONGVARBINARY 71 -#define SQL_CONVERT_LONGVARCHAR 62 -#define SQL_CONVERT_NUMERIC 63 -#define SQL_CONVERT_REAL 64 -#define SQL_CONVERT_SMALLINT 65 -#define SQL_CONVERT_TIME 66 -#define SQL_CONVERT_TIMESTAMP 67 -#define SQL_CONVERT_TINYINT 68 -#define SQL_CONVERT_VARBINARY 69 -#define SQL_CONVERT_VARCHAR 70 -#define SQL_CORRELATION_NAME 74 -#define SQL_CR_CLOSE SQL_CB_CLOSE /* deprecated */ -#define SQL_CR_DELETE SQL_CB_DELETE /* deprecated */ -#define SQL_CR_PRESERVE SQL_CB_PRESERVE /* deprecated */ -#define SQL_CUR_DEFAULT SQL_CUR_USE_DRIVER -#define SQL_CUR_USE_DRIVER 2UL -#define SQL_CUR_USE_IF_NEEDED 0UL -#define SQL_CUR_USE_ODBC 1UL -#define SQL_CURRENT_QUALIFIER 109 -#define SQL_CURSOR_DYNAMIC 2UL -#define SQL_CURSOR_FORWARD_ONLY 0UL -#define SQL_CURSOR_KEYSET_DRIVEN 1UL -#define SQL_CURSOR_ROLLBACK_BEHAVIOR 24 -#define SQL_CURSOR_STATIC 3UL -#define SQL_CURSOR_TYPE 6 -#define SQL_CURSOR_TYPE_DEFAULT SQL_CURSOR_FORWARD_ONLY -#define SQL_CV_CASCADED 0x00000004L -#define SQL_CV_CHECK_OPTION 0x00000002L -#define SQL_CV_CREATE_VIEW 0x00000001L -#define SQL_CV_LOCAL 0x00000008L -#define SQL_CVT_BIGINT 0x00004000L -#define SQL_CVT_BINARY 0x00000400L -#define SQL_CVT_BIT 0x00001000L -#define SQL_CVT_CHAR 0x00000001L -#define SQL_CVT_DATE 0x00008000L -#define SQL_CVT_DECIMAL 0x00000004L -#define SQL_CVT_DOUBLE 0x00000080L -#define SQL_CVT_FLOAT 0x00000020L -#define SQL_CVT_INTEGER 0x00000008L -#define SQL_CVT_LONGVARBINARY 0x00040000L -#define SQL_CVT_LONGVARCHAR 0x00000200L -#define SQL_CVT_NUMERIC 0x00000002L -#define SQL_CVT_REAL 0x00000040L -#define SQL_CVT_SMALLINT 0x00000010L -#define SQL_CVT_TIME 0x00010000L -#define SQL_CVT_TIMESTAMP 0x00020000L -#define SQL_CVT_TINYINT 0x00002000L -#define SQL_CVT_VARBINARY 0x00000800L -#define SQL_CVT_VARCHAR 0x00000100L -#define SQL_DATABASE_NAME 16 /* deprecated */ -#define SQL_DATE 9 -#define SQL_DEFAULT_PARAM (-5) -#define SQL_DELETE 3 -#define SQL_DRIVER_COMPLETE 1 -#define SQL_DRIVER_COMPLETE_REQUIRED 3 -#define SQL_DRIVER_HDBC 3 -#define SQL_DRIVER_HENV 4 -#define SQL_DRIVER_HLIB 76 -#define SQL_DRIVER_HSTMT 5 -#define SQL_DRIVER_NAME 6 -#define SQL_DRIVER_NOPROMPT 0 -#define SQL_DRIVER_ODBC_VER 77 -#define SQL_DRIVER_PROMPT 2 -#define SQL_DRIVER_VER 7 -#define SQL_DTC_ENLIST_EXPENSIVE 1 -#define SQL_DTC_TRANSITION_COST 1750 -#define SQL_DTC_UNENLIST_EXPENSIVE 2 -#define SQL_ENSURE 1 -#define SQL_ENTIRE_ROWSET 0 -#define SQL_EXPRESSIONS_IN_ORDERBY 27 -#define SQL_FD_FETCH_BOOKMARK 128 -#define SQL_FD_FETCH_PREV SQL_FD_FETCH_PRIOR /* deprecated */ -#define SQL_FD_FETCH_RESUME 64 -#define SQL_FETCH_BOOKMARK 8 -#define SQL_FETCH_PREV SQL_FETCH_PRIOR /* deprecated */ -#define SQL_FETCH_RESUME 7 /* deprecated */ -#define SQL_FILE_CATALOG SQL_FILE_QUALIFIER -#define SQL_FILE_NOT_SUPPORTED 0x0000 -#define SQL_FILE_QUALIFIER 0x0002 -#define SQL_FILE_TABLE 0x0001 -#define SQL_FILE_USAGE 84 -#define SQL_FN_CVT_CONVERT 0x00000001L -#define SQL_FN_NUM_ABS 0x00000001L -#define SQL_FN_NUM_ACOS 0x00000002L -#define SQL_FN_NUM_ASIN 0x00000004L -#define SQL_FN_NUM_ATAN 0x00000008L -#define SQL_FN_NUM_ATAN2 0x00000010L -#define SQL_FN_NUM_CEILING 0x00000020L -#define SQL_FN_NUM_COS 0x00000040L -#define SQL_FN_NUM_COT 0x00000080L -#define SQL_FN_NUM_DEGREES 0x00040000L -#define SQL_FN_NUM_EXP 0x00000100L -#define SQL_FN_NUM_FLOOR 0x00000200L -#define SQL_FN_NUM_LOG 0x00000400L -#define SQL_FN_NUM_LOG10 0x00080000L -#define SQL_FN_NUM_MOD 0x00000800L -#define SQL_FN_NUM_PI 0x00010000L -#define SQL_FN_NUM_POWER 0x00100000L -#define SQL_FN_NUM_RADIANS 0x00200000L -#define SQL_FN_NUM_RAND 0x00020000L -#define SQL_FN_NUM_ROUND 0x00400000L -#define SQL_FN_NUM_SIGN 0x00001000L -#define SQL_FN_NUM_SIN 0x00002000L -#define SQL_FN_NUM_SQRT 0x00004000L -#define SQL_FN_NUM_TAN 0x00008000L -#define SQL_FN_NUM_TRUNCATE 0x00800000L -#define SQL_FN_STR_ASCII 0x00002000L -#define SQL_FN_STR_CHAR 0x00004000L -#define SQL_FN_STR_CONCAT 0x00000001L -#define SQL_FN_STR_DIFFERENCE 0x00008000L -#define SQL_FN_STR_INSERT 0x00000002L -#define SQL_FN_STR_LCASE 0x00000040L -#define SQL_FN_STR_LEFT 0x00000004L -#define SQL_FN_STR_LENGTH 0x00000010L -#define SQL_FN_STR_LOCATE 0x00000020L -#define SQL_FN_STR_LOCATE_2 0x00010000L -#define SQL_FN_STR_LTRIM 0x00000008L -#define SQL_FN_STR_REPEAT 0x00000080L -#define SQL_FN_STR_REPLACE 0x00000100L -#define SQL_FN_STR_RIGHT 0x00000200L -#define SQL_FN_STR_RTRIM 0x00000400L -#define SQL_FN_STR_SOUNDEX 0x00020000L -#define SQL_FN_STR_SPACE 0x00040000L -#define SQL_FN_STR_SUBSTRING 0x00000800L -#define SQL_FN_STR_UCASE 0x00001000L -#define SQL_FN_SYS_DBNAME 0x00000002L -#define SQL_FN_SYS_IFNULL 0x00000004L -#define SQL_FN_SYS_USERNAME 0x00000001L -#define SQL_FN_TD_CURDATE 0x00000002L -#define SQL_FN_TD_CURTIME 0x00000200L -#define SQL_FN_TD_DAYNAME 0x00008000L -#define SQL_FN_TD_DAYOFMONTH 0x00000004L -#define SQL_FN_TD_DAYOFWEEK 0x00000008L -#define SQL_FN_TD_DAYOFYEAR 0x00000010L -#define SQL_FN_TD_HOUR 0x00000400L -#define SQL_FN_TD_MINUTE 0x00000800L -#define SQL_FN_TD_MONTH 0x00000020L -#define SQL_FN_TD_MONTHNAME 0x00010000L -#define SQL_FN_TD_NOW 0x00000001L -#define SQL_FN_TD_QUARTER 0x00000040L -#define SQL_FN_TD_SECOND 0x00001000L -#define SQL_FN_TD_TIMESTAMPADD 0x00002000L -#define SQL_FN_TD_TIMESTAMPDIFF 0x00004000L -#define SQL_FN_TD_WEEK 0x00000080L -#define SQL_FN_TD_YEAR 0x00000100L -#define SQL_FN_TSI_DAY 0x00000010L -#define SQL_FN_TSI_FRAC_SECOND 0x00000001L -#define SQL_FN_TSI_HOUR 0x00000008L -#define SQL_FN_TSI_MINUTE 0x00000004L -#define SQL_FN_TSI_MONTH 0x00000040L -#define SQL_FN_TSI_QUARTER 0x00000080L -#define SQL_FN_TSI_SECOND 0x00000002L -#define SQL_FN_TSI_WEEK 0x00000020L -#define SQL_FN_TSI_YEAR 0x00000100L -#define SQL_GB_GROUP_BY_CONTAINS_SELECT 2 -#define SQL_GB_GROUP_BY_EQUALS_SELECT 1 -#define SQL_GB_NO_RELATION 3 -#define SQL_GB_NOT_SUPPORTED 0 -#define SQL_GD_BLOCK 4 -#define SQL_GD_BOUND 8 -#define SQL_GET_BOOKMARK 13 -#define SQL_GROUP_BY 88 -#define SQL_IGNORE (-6) -#define SQL_INFO_FIRST 0 -#define SQL_KEYSET_SIZE 8 -#define SQL_KEYSET_SIZE_DEFAULT 0UL -#define SQL_KEYWORDS 89 -#define SQL_LCK_EXCLUSIVE 2 -#define SQL_LCK_NO_CHANGE 1 -#define SQL_LCK_UNLOCK 4 -#define SQL_LEN_BINARY_ATTR(length) (-(length)+SQL_LEN_BINARY_ATTR_OFFSET) -#define SQL_LEN_BINARY_ATTR_OFFSET (-100) -#define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET) -#define SQL_LEN_DATA_AT_EXEC_OFFSET (-100) -#define SQL_LIKE_ESCAPE_CLAUSE 113 -#define SQL_LIKE_ONLY 1 -#define SQL_LOCK_EXCLUSIVE 1 -#define SQL_LOCK_NO_CHANGE 0 -#define SQL_LOCK_TYPES 78 -#define SQL_LOCK_UNLOCK 2 -#define SQL_LOGIN_TIMEOUT 103 -#define SQL_LOGIN_TIMEOUT_DEFAULT 15UL -#define SQL_LONGVARBINARY (-4) -#define SQL_LONGVARCHAR (-1) -#define SQL_MAX_BINARY_LITERAL_LEN 112 -#define SQL_MAX_CHAR_LITERAL_LEN 108 -#define SQL_MAX_DSN_LENGTH 32 -#define SQL_MAX_LENGTH 3 -#define SQL_MAX_LENGTH_DEFAULT 0UL -#define SQL_MAX_OPTION_STRING_LENGTH 256 -#define SQL_MAX_OWNER_NAME_LEN 32 -#define SQL_MAX_PROCEDURE_NAME_LEN 33 -#define SQL_MAX_QUALIFIER_NAME_LEN 34 -#define SQL_MAX_ROW_SIZE_INCLUDES_LONG 103 -#define SQL_MAX_ROWS 1 -#define SQL_MAX_ROWS_DEFAULT 0UL -#define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE -#define SQL_MODE_READ_ONLY 1UL -#define SQL_MODE_READ_WRITE 0UL -#define SQL_MULT_RESULT_SETS 36 -#define SQL_MULTIPLE_ACTIVE_TXN 37 -#define SQL_NC_END 0x0004 -#define SQL_NC_START 0x0002 -#define SQL_NEED_LONG_DATA_LEN 111 -#define SQL_NNC_NON_NULL 0x0001 -#define SQL_NNC_NULL 0x0000 -#define SQL_NO_TOTAL (-4) -#define SQL_NON_NULLABLE_COLUMNS 75 -#define SQL_NOSCAN 2 -#define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF -#define SQL_NOSCAN_OFF 0UL -#define SQL_NOSCAN_ON 1UL -#define SQL_NUMERIC_FUNCTIONS 49 -#define SQL_OAC_LEVEL1 0x0001 -#define SQL_OAC_LEVEL2 0x0002 -#define SQL_OAC_NONE 0x0000 -#define SQL_ODBC_API_CONFORMANCE 9 -#define SQL_ODBC_CURSORS 110 -#define SQL_ODBC_SAG_CLI_CONFORMANCE 12 -#define SQL_ODBC_SQL_CONFORMANCE 15 -#define SQL_ODBC_SQL_OPT_IEF 73 -#define SQL_ODBC_VER 10 -#define SQL_OPT_TRACE 104 -#define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF -#define SQL_OPT_TRACE_FILE_DEFAULT "\\SQL.LOG" -#define SQL_OPT_TRACE_OFF 0UL -#define SQL_OPT_TRACE_ON 1UL -#define SQL_OPT_TRACEFILE 105 -#define SQL_OSC_CORE 1 -#define SQL_OSC_EXTENDED 2 -#define SQL_OSC_MINIMUM 0 -#define SQL_OSCC_COMPLIANT 1 -#define SQL_OSCC_NOT_COMPLIANT 0 -#define SQL_OU_DML_STATEMENTS 1 -#define SQL_OU_INDEX_DEFINITION 8 -#define SQL_OU_PRIVILEGE_DEFINITION 16 -#define SQL_OU_PROCEDURE_INVOCATION 2 -#define SQL_OU_TABLE_DEFINITION 4 -#define SQL_OUTER_JOINS 38 -#define SQL_OWNER_TERM 39 -#define SQL_OWNER_USAGE 91 -#define SQL_PACKET_SIZE 112 -#define SQL_PARAM_INPUT 1 -#define SQL_PARAM_INPUT_OUTPUT 2 -#define SQL_PARAM_OUTPUT 4 -#define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT -#define SQL_PARAM_TYPE_UNKNOWN 0 -#define SQL_PC_NOT_PSEUDO 1 -#define SQL_POS_ADD 16 -#define SQL_POS_DELETE 8 -#define SQL_POS_OPERATIONS 79 -#define SQL_POS_POSITION 1 -#define SQL_POS_REFRESH 2 -#define SQL_POS_UPDATE 4 -#define SQL_POSITION 0 -#define SQL_POSITIONED_STATEMENTS 80 -#define SQL_PRED_SEARCHABLE SQL_SEARCHABLE -#define SQL_PROCEDURE_TERM 40 -#define SQL_PROCEDURES 21 -#define SQL_PS_POSITIONED_DELETE 1 -#define SQL_PS_POSITIONED_UPDATE 2 -#define SQL_PS_SELECT_FOR_UPDATE 4 -#define SQL_PT_FUNCTION 2 -#define SQL_PT_PROCEDURE 1 -#define SQL_PT_UNKNOWN 0 -#define SQL_QL_END 0x0002 -#define SQL_QL_START 0x0001 -#define SQL_QU_DML_STATEMENTS 1 -#define SQL_QU_INDEX_DEFINITION 8 -#define SQL_QU_PRIVILEGE_DEFINITION 16 -#define SQL_QU_PROCEDURE_INVOCATION 2 -#define SQL_QU_TABLE_DEFINITION 4 -#define SQL_QUALIFIER_LOCATION 114 -#define SQL_QUALIFIER_NAME_SEPARATOR 41 -#define SQL_QUALIFIER_TERM 42 -#define SQL_QUALIFIER_USAGE 92 -#define SQL_QUERY_TIMEOUT 0 -#define SQL_QUERY_TIMEOUT_DEFAULT 0UL -#define SQL_QUICK 0 -#define SQL_QUIET_MODE 111 -#define SQL_QUOTED_IDENTIFIER_CASE 93 -#define SQL_RD_DEFAULT SQL_RD_ON -#define SQL_RD_OFF 0UL -#define SQL_RD_ON 1UL -#define SQL_REFRESH 1 -#define SQL_RESTRICT 1 -#define SQL_RESULT_COL 3 -#define SQL_RETRIEVE_DATA 11 -#define SQL_RETURN_VALUE 5 -#define SQL_ROW_ADDED 4 -#define SQL_ROW_DELETED 1 -#define SQL_ROW_ERROR 5 -#define SQL_ROW_NOROW 3 -#define SQL_ROW_NUMBER 14 -#define SQL_ROW_SUCCESS 0 -#define SQL_ROW_UPDATED 2 -#define SQL_ROW_UPDATES 11 -#define SQL_ROWSET_SIZE 9 -#define SQL_ROWSET_SIZE_DEFAULT 1UL -#define SQL_ROWVER 2 -#define SQL_SC_NON_UNIQUE 0UL -#define SQL_SC_TRY_UNIQUE 1UL -#define SQL_SC_UNIQUE 2UL -#define SQL_SCCO_OPT_TIMESTAMP SQL_SCCO_OPT_ROWVER /* deprecated */ -#define SQL_SCROLL_DYNAMIC (-2L) /* deprecated */ -#define SQL_SCROLL_FORWARD_ONLY 0L /* deprecated */ -#define SQL_SCROLL_KEYSET_DRIVEN (-1L) /* deprecated */ -#define SQL_SCROLL_OPTIONS 44 -#define SQL_SCROLL_STATIC (-3L) /* deprecated */ -#define SQL_SEARCHABLE 3 -#define SQL_SET_NULL 2 -#define SQL_SETPARAM_VALUE_MAX (-1L) -#define SQL_SETPOS_MAX_LOCK_VALUE SQL_LOCK_UNLOCK -#define SQL_SETPOS_MAX_OPTION_VALUE SQL_ADD -#define SQL_SIGNED_OFFSET (-20) -#define SQL_SIMULATE_CURSOR 10 -#define SQL_SO_DYNAMIC 4 -#define SQL_SO_FORWARD_ONLY 1 -#define SQL_SO_KEYSET_DRIVEN 2 -#define SQL_SO_MIXED 8 -#define SQL_SO_STATIC 16 -#define SQL_SQ_COMPARISON 1 -#define SQL_SQ_CORRELATED_SUBQUERIES 16 -#define SQL_SQ_EXISTS 2 -#define SQL_SQ_IN 4 -#define SQL_SQ_QUANTIFIED 8 -#define SQL_SQLSTATE_SIZE 5 -#define SQL_SS_ADDITIONS 1 -#define SQL_SS_DELETIONS 2 -#define SQL_SS_UPDATES 4 -#define SQL_STATIC_SENSITIVITY 83 -#define SQL_STRING_FUNCTIONS 50 -#define SQL_SUBQUERIES 95 -#define SQL_SYSTEM_FUNCTIONS 51 -#define SQL_TABLE_STAT 0 -#define SQL_TABLE_TERM 45 -#define SQL_TIME 10 -#define SQL_TIMEDATE_ADD_INTERVALS 109 -#define SQL_TIMEDATE_DIFF_INTERVALS 110 -#define SQL_TIMEDATE_FUNCTIONS 52 -#define SQL_TIMESTAMP 11 -#define SQL_TINYINT (-6) -#define SQL_TRANSLATE_DLL 106 -#define SQL_TRANSLATE_OPTION 107 -#define SQL_TXN_ISOLATION 108 -#define SQL_TXN_VERSIONING 16 -#define SQL_TYPE_NULL 0 -#define SQL_U_UNION 1 -#define SQL_U_UNION_ALL 2 -#define SQL_UB_DEFAULT SQL_UB_OFF -#define SQL_UB_OFF 0UL -#define SQL_UB_ON 01UL -#define SQL_UNION 96 -#define SQL_UNSEARCHABLE 0 -#define SQL_UNSIGNED_OFFSET (-22) -#define SQL_UPDATE 2 -#define SQL_USE_BOOKMARKS 12 -#define SQL_VARBINARY (-3) -#define SQL_POSITION_TO(s,r) SQLSetPos(s,r,SQL_POSITION,SQL_LOCK_NO_CHANGE) -#define SQL_LOCK_RECORD(s,r,l) SQLSetPos(s,r,SQL_POSITION,l) -#define SQL_REFRESH_RECORD(s,r,l) SQLSetPos(s,r,SQL_REFRESH,l) -#define SQL_UPDATE_RECORD(s,r) SQLSetPos(s,r,SQL_UPDATE,SQL_LOCK_NO_CHANGE) -#define SQL_DELETE_RECORD(s,r) SQLSetPos(s,r,SQL_DELETE,SQL_LOCK_NO_CHANGE) -#define SQL_ADD_RECORD(s,r) SQLSetPos(s,r,SQL_ADD,SQL_LOCK_NO_CHANGE) - -#if (ODBCVER < 0x0300) -#define SQL_CONNECT_OPT_DRVR_START 1000 -#define SQL_CONN_OPT_MAX SQL_PACKET_SIZE -#define SQL_CONN_OPT_MIN SQL_ACCESS_MODE -#define SQL_STMT_OPT_MAX SQL_ROW_NUMBER -#define SQL_STMT_OPT_MIN SQL_QUERY_TIMEOUT -#define SQL_TYPE_DRIVER_START SQL_INTERVAL_YEAR -#define SQL_TYPE_DRIVER_END SQL_UNICODE_LONGVARCHAR -#define SQL_TYPE_MIN SQL_BIT -#define SQL_TYPE_MAX SQL_VARCHAR -#endif - -#if (ODBCVER < 0x0300) -#define SQL_NO_DATA_FOUND 100 -#define SQL_INTERVAL_YEAR (-80) -#define SQL_INTERVAL_MONTH (-81) -#define SQL_INTERVAL_YEAR_TO_MONTH (-82) -#define SQL_INTERVAL_DAY (-83) -#define SQL_INTERVAL_HOUR (-84) -#define SQL_INTERVAL_MINUTE (-85) -#define SQL_INTERVAL_SECOND (-86) -#define SQL_INTERVAL_DAY_TO_HOUR (-87) -#define SQL_INTERVAL_DAY_TO_MINUTE (-88) -#define SQL_INTERVAL_DAY_TO_SECOND (-89) -#define SQL_INTERVAL_HOUR_TO_MINUTE (-90) -#define SQL_INTERVAL_HOUR_TO_SECOND (-91) -#define SQL_INTERVAL_MINUTE_TO_SECOND (-92) -#else -#define SQL_NO_DATA_FOUND SQL_NO_DATA -#define SQL_CODE_YEAR 1 -#define SQL_CODE_MONTH 2 -#define SQL_CODE_DAY 3 -#define SQL_CODE_HOUR 4 -#define SQL_CODE_MINUTE 5 -#define SQL_CODE_SECOND 6 -#define SQL_CODE_YEAR_TO_MONTH 7 -#define SQL_CODE_DAY_TO_HOUR 8 -#define SQL_CODE_DAY_TO_MINUTE 9 -#define SQL_CODE_DAY_TO_SECOND 10 -#define SQL_CODE_HOUR_TO_MINUTE 11 -#define SQL_CODE_HOUR_TO_SECOND 12 -#define SQL_CODE_MINUTE_TO_SECOND 13 -#define SQL_INTERVAL_YEAR (100 + SQL_CODE_SECOND) -#define SQL_INTERVAL_MONTH (100 + SQL_CODE_YEAR_TO_MONTH) -#define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY_TO_HOUR) -#define SQL_INTERVAL_HOUR (100 + SQL_CODE_DAY_TO_MINUTE) -#define SQL_INTERVAL_MINUTE (100 + SQL_CODE_DAY_TO_SECOND) -#define SQL_INTERVAL_SECOND (100 + SQL_CODE_HOUR_TO_MINUTE) -#define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_HOUR_TO_SECOND) -#define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_MINUTE_TO_SECOND) -#define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE) -#define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND) -#define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE) -#define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND) -#define SQL_INTERVAL_MINUTE_TO_SECOND (100 + SQL_CODE_MINUTE_TO_SECOND) -#endif - -#if (ODBCVER <= 0x0300) -#define SQL_UNICODE (-95) -#define SQL_UNICODE_VARCHAR (-96) -#define SQL_UNICODE_LONGVARCHAR (-97) -#define SQL_UNICODE_CHAR SQL_UNICODE -#else -#define SQL_UNICODE SQL_WCHAR -#define SQL_UNICODE_VARCHAR SQL_WVARCHAR -#define SQL_UNICODE_LONGVARCHAR SQL_WLONGVARCHAR -#define SQL_UNICODE_CHAR SQL_WCHAR -#endif - -#if (ODBCVER >= 0x0201) && (ODBCVER < 0x0300) -#define SQL_OJ_CAPABILITIES 65003 -#endif /* ODBCVER < 0x0300 */ - -#if (ODBCVER >= 0x0250) -#define SQL_NO_ACTION 3 -#define SQL_SET_DEFAULT 4 -#endif /* ODBCVER >= 0x0250 */ - -#if (ODBCVER >= 0x0300) -#define SQL_ACTIVE_ENVIRONMENTS 116 -#define SQL_AD_ADD_CONSTRAINT_DEFERRABLE 0x00000080L -#define SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L -#define SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L -#define SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE 0x00000100L -#define SQL_AD_ADD_DOMAIN_CONSTRAINT 0x00000002L -#define SQL_AD_ADD_DOMAIN_DEFAULT 0x00000008L -#define SQL_AD_CONSTRAINT_NAME_DEFINITION 0x00000001L -#define SQL_AD_DROP_DOMAIN_CONSTRAINT 0x00000004L -#define SQL_AD_DROP_DOMAIN_DEFAULT 0x00000010L -#define SQL_AF_ALL 0x00000040L -#define SQL_AF_AVG 0x00000001L -#define SQL_AF_COUNT 0x00000002L -#define SQL_AF_DISTINCT 0x00000020L -#define SQL_AF_MAX 0x00000004L -#define SQL_AF_MIN 0x00000008L -#define SQL_AF_SUM 0x00000010L -#define SQL_AGGREGATE_FUNCTIONS 169 -#define SQL_ALL_CATALOGS "%" -#define SQL_ALL_SCHEMAS "%" -#define SQL_ALL_TABLE_TYPES "%" -#define SQL_ALTER_DOMAIN 117 -#define SQL_AM_CONNECTION 1 -#define SQL_AM_NONE 0 -#define SQL_AM_STATEMENT 2 -#define SQL_API_ODBC3_ALL_FUNCTIONS 999 -#define SQL_API_ODBC3_ALL_FUNCTIONS_SIZE 250 -#define SQL_API_SQLALLOCHANDLESTD 73 -#define SQL_API_SQLBULKOPERATIONS 24 -#define SQL_ASYNC_MODE 10021 -#define SQL_AT_ADD_COLUMN_COLLATION 0x00000080L -#define SQL_AT_ADD_COLUMN_DEFAULT 0x00000040L -#define SQL_AT_ADD_COLUMN_SINGLE 0x00000020L -#define SQL_AT_ADD_TABLE_CONSTRAINT 0x00001000L -#define SQL_AT_CONSTRAINT_DEFERRABLE 0x00040000L -#define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED 0x00010000L -#define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00020000L -#define SQL_AT_CONSTRAINT_NAME_DEFINITION 0x00008000L -#define SQL_AT_CONSTRAINT_NON_DEFERRABLE 0x00080000L -#define SQL_AT_DROP_COLUMN_CASCADE 0x00000400L -#define SQL_AT_DROP_COLUMN_DEFAULT 0x00000200L -#define SQL_AT_DROP_COLUMN_RESTRICT 0x00000800L -#define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE 0x00002000L -#define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT 0x00004000L -#define SQL_AT_SET_COLUMN_DEFAULT 0x00000100L -#define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE -#define SQL_ATTR_ASYNC_ENABLE 4 -#define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT -#define SQL_ATTR_CONCURRENCY SQL_CONCURRENCY -#define SQL_ATTR_CONNECTION_POOLING 201 -#define SQL_ATTR_CONNECTION_TIMEOUT 113 -#define SQL_ATTR_CP_MATCH 202 -#define SQL_ATTR_CURRENT_CATALOG SQL_CURRENT_QUALIFIER -#define SQL_ATTR_CURSOR_TYPE SQL_CURSOR_TYPE -#define SQL_ATTR_DISCONNECT_BEHAVIOR 114 -#define SQL_ATTR_ENABLE_AUTO_IPD 15 -#define SQL_ATTR_ENLIST_IN_DTC 1207 -#define SQL_ATTR_ENLIST_IN_XA 1208 -#define SQL_ATTR_FETCH_BOOKMARK_PTR 16 -#define SQL_ATTR_KEYSET_SIZE SQL_KEYSET_SIZE -#define SQL_ATTR_LOGIN_TIMEOUT SQL_LOGIN_TIMEOUT -#define SQL_ATTR_MAX_LENGTH SQL_MAX_LENGTH -#define SQL_ATTR_MAX_ROWS SQL_MAX_ROWS -#define SQL_ATTR_NOSCAN SQL_NOSCAN -#define SQL_ATTR_ODBC_CURSORS SQL_ODBC_CURSORS -#define SQL_ATTR_ODBC_VERSION 200 -#define SQL_ATTR_PACKET_SIZE SQL_PACKET_SIZE -#define SQL_ATTR_PARAM_BIND_OFFSET_PTR 17 -#define SQL_ATTR_PARAM_BIND_TYPE 18 -#define SQL_ATTR_PARAM_OPERATION_PTR 19 -#define SQL_ATTR_PARAM_STATUS_PTR 20 -#define SQL_ATTR_PARAMS_PROCESSED_PTR 21 -#define SQL_ATTR_PARAMSET_SIZE 22 -#define SQL_ATTR_QUERY_TIMEOUT SQL_QUERY_TIMEOUT -#define SQL_ATTR_QUIET_MODE SQL_QUIET_MODE -#define SQL_ATTR_RETRIEVE_DATA SQL_RETRIEVE_DATA -#define SQL_ATTR_ROW_ARRAY_SIZE 27 -#define SQL_ATTR_ROW_BIND_OFFSET_PTR 23 -#define SQL_ATTR_ROW_BIND_TYPE SQL_BIND_TYPE -#define SQL_ATTR_ROW_NUMBER SQL_ROW_NUMBER -#define SQL_ATTR_ROW_OPERATION_PTR 24 -#define SQL_ATTR_ROW_STATUS_PTR 25 -#define SQL_ATTR_ROWS_FETCHED_PTR 26 -#define SQL_ATTR_SIMULATE_CURSOR SQL_SIMULATE_CURSOR -#define SQL_ATTR_TRACE SQL_OPT_TRACE -#define SQL_ATTR_TRACEFILE SQL_OPT_TRACEFILE -#define SQL_ATTR_TRANSLATE_LIB SQL_TRANSLATE_DLL -#define SQL_ATTR_TRANSLATE_OPTION SQL_TRANSLATE_OPTION -#define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION -#define SQL_ATTR_USE_BOOKMARKS SQL_USE_BOOKMARKS -#define SQL_BATCH_ROW_COUNT 120 -#define SQL_BATCH_SUPPORT 121 -#define SQL_BRC_EXPLICIT 0x0000002 -#define SQL_BRC_PROCEDURES 0x0000001 -#define SQL_BRC_ROLLED_UP 0x0000004 -#define SQL_BS_ROW_COUNT_EXPLICIT 0x00000002L -#define SQL_BS_ROW_COUNT_PROC 0x00000008L -#define SQL_BS_SELECT_EXPLICIT 0x00000001L -#define SQL_BS_SELECT_PROC 0x00000004L -#define SQL_C_INTERVAL_DAY SQL_INTERVAL_DAY -#define SQL_C_INTERVAL_DAY_TO_HOUR SQL_INTERVAL_DAY_TO_HOUR -#define SQL_C_INTERVAL_DAY_TO_MINUTE SQL_INTERVAL_DAY_TO_MINUTE -#define SQL_C_INTERVAL_DAY_TO_SECOND SQL_INTERVAL_DAY_TO_SECOND -#define SQL_C_INTERVAL_HOUR SQL_INTERVAL_HOUR -#define SQL_C_INTERVAL_HOUR_TO_MINUTE SQL_INTERVAL_HOUR_TO_MINUTE -#define SQL_C_INTERVAL_HOUR_TO_SECOND SQL_INTERVAL_HOUR_TO_SECOND -#define SQL_C_INTERVAL_MINUTE SQL_INTERVAL_MINUTE -#define SQL_C_INTERVAL_MINUTE_TO_SECOND SQL_INTERVAL_MINUTE_TO_SECOND -#define SQL_C_INTERVAL_MONTH SQL_INTERVAL_MONTH -#define SQL_C_INTERVAL_SECOND SQL_INTERVAL_SECOND -#define SQL_C_INTERVAL_YEAR SQL_INTERVAL_YEAR -#define SQL_C_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_YEAR_TO_MONTH -#define SQL_C_NUMERIC SQL_NUMERIC -#define SQL_C_SBIGINT (SQL_BIGINT+SQL_SIGNED_OFFSET) -#define SQL_C_TYPE_DATE SQL_TYPE_DATE -#define SQL_C_TYPE_TIME SQL_TYPE_TIME -#define SQL_C_TYPE_TIMESTAMP SQL_TYPE_TIMESTAMP -#define SQL_C_UBIGINT (SQL_BIGINT+SQL_UNSIGNED_OFFSET) -#define SQL_C_VARBOOKMARK SQL_C_BINARY -#define SQL_CA_CONSTRAINT_DEFERRABLE 0x00000040L -#define SQL_CA_CONSTRAINT_INITIALLY_DEFERRED 0x00000010L -#define SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000020L -#define SQL_CA_CONSTRAINT_NON_DEFERRABLE 0x00000080L -#define SQL_CA_CREATE_ASSERTION 0x00000001L -#define SQL_CA1_ABSOLUTE 0x00000002L -#define SQL_CA1_BOOKMARK 0x00000008L -#define SQL_CA1_BULK_ADD 0x00010000L -#define SQL_CA1_BULK_DELETE_BY_BOOKMARK 0x00040000L -#define SQL_CA1_BULK_FETCH_BY_BOOKMARK 0x00080000L -#define SQL_CA1_BULK_UPDATE_BY_BOOKMARK 0x00020000L -#define SQL_CA1_LOCK_EXCLUSIVE 0x00000080L -#define SQL_CA1_LOCK_NO_CHANGE 0x00000040L -#define SQL_CA1_LOCK_UNLOCK 0x00000100L -#define SQL_CA1_NEXT 0x00000001L -#define SQL_CA1_POS_DELETE 0x00000800L -#define SQL_CA1_POS_POSITION 0x00000200L -#define SQL_CA1_POS_REFRESH 0x00001000L -#define SQL_CA1_POS_UPDATE 0x00000400L -#define SQL_CA1_POSITIONED_DELETE 0x00004000L -#define SQL_CA1_POSITIONED_UPDATE 0x00002000L -#define SQL_CA1_RELATIVE 0x00000004L -#define SQL_CA1_SELECT_FOR_UPDATE 0x00008000L -#define SQL_CA2_CRC_APPROXIMATE 0x00002000L -#define SQL_CA2_CRC_EXACT 0x00001000L -#define SQL_CA2_LOCK_CONCURRENCY 0x00000002L -#define SQL_CA2_MAX_ROWS_AFFECTS_ALL (SQL_CA2_MAX_ROWS_SELECT | SQL_CA2_MAX_ROWS_INSERT | \ - SQL_CA2_MAX_ROWS_DELETE | SQL_CA2_MAX_ROWS_UPDATE | SQL_CA2_MAX_ROWS_CATALOG) -#define SQL_CA2_MAX_ROWS_CATALOG 0x00000800L -#define SQL_CA2_MAX_ROWS_DELETE 0x00000200L -#define SQL_CA2_MAX_ROWS_INSERT 0x00000100L -#define SQL_CA2_MAX_ROWS_SELECT 0x00000080L -#define SQL_CA2_MAX_ROWS_UPDATE 0x00000400L -#define SQL_CA2_OPT_ROWVER_CONCURRENCY 0x00000004L -#define SQL_CA2_OPT_VALUES_CONCURRENCY 0x00000008L -#define SQL_CA2_READ_ONLY_CONCURRENCY 0x00000001L -#define SQL_CA2_SENSITIVITY_ADDITIONS 0x00000010L -#define SQL_CA2_SENSITIVITY_DELETIONS 0x00000020L -#define SQL_CA2_SENSITIVITY_UPDATES 0x00000040L -#define SQL_CA2_SIMULATE_NON_UNIQUE 0x00004000L -#define SQL_CA2_SIMULATE_TRY_UNIQUE 0x00008000L -#define SQL_CA2_SIMULATE_UNIQUE 0x00010000L -#define SQL_CATALOG_LOCATION SQL_QUALIFIER_LOCATION -#define SQL_CATALOG_NAME_SEPARATOR SQL_QUALIFIER_NAME_SEPARATOR -#define SQL_CATALOG_TERM SQL_QUALIFIER_TERM -#define SQL_CATALOG_USAGE SQL_QUALIFIER_USAGE -#define SQL_CCOL_CREATE_COLLATION 0x00000001L -#define SQL_CCS_COLLATE_CLAUSE 0x00000002L -#define SQL_CCS_CREATE_CHARACTER_SET 0x00000001L -#define SQL_CCS_LIMITED_COLLATION 0x00000004L -#define SQL_CDO_COLLATION 0x00000008L -#define SQL_CDO_CONSTRAINT 0x00000004L -#define SQL_CDO_CONSTRAINT_DEFERRABLE 0x00000080L -#define SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L -#define SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L -#define SQL_CDO_CONSTRAINT_NAME_DEFINITION 0x00000010L -#define SQL_CDO_CONSTRAINT_NON_DEFERRABLE 0x00000100L -#define SQL_CDO_CREATE_DOMAIN 0x00000001L -#define SQL_CDO_DEFAULT 0x00000002L -#define SQL_CL_END SQL_QL_END -#define SQL_CL_START SQL_QL_START -#define SQL_COL_PRED_BASIC SQL_ALL_EXCEPT_LIKE -#define SQL_COL_PRED_CHAR SQL_LIKE_ONLY -#define SQL_COLUMN_DRIVER_START 1000 -#define SQL_COLUMN_IGNORE SQL_IGNORE -#define SQL_COLUMN_NUMBER_UNKNOWN (-2) -#define SQL_CONVERT_GUID 173 -#define SQL_CONVERT_INTERVAL_DAY_TIME 123 -#define SQL_CONVERT_INTERVAL_YEAR_MONTH 124 -#define SQL_CONVERT_WCHAR 122 -#define SQL_CONVERT_WLONGVARCHAR 125 -#define SQL_CONVERT_WVARCHAR 126 -#define SQL_CP_DEFAULT SQL_CP_OFF -#define SQL_CP_MATCH_DEFAULT SQL_CP_STRICT_MATCH -#define SQL_CP_OFF 0UL -#define SQL_CP_ONE_PER_DRIVER 1UL -#define SQL_CP_ONE_PER_HENV 2UL -#define SQL_CP_RELAXED_MATCH 1UL -#define SQL_CP_STRICT_MATCH 0UL -#define SQL_CREATE_ASSERTION 127 -#define SQL_CREATE_CHARACTER_SET 128 -#define SQL_CREATE_COLLATION 129 -#define SQL_CREATE_DOMAIN 130 -#define SQL_CREATE_SCHEMA 131 -#define SQL_CREATE_TABLE 132 -#define SQL_CREATE_TRANSLATION 133 -#define SQL_CREATE_VIEW 134 -#define SQL_CS_AUTHORIZATION 0x00000002L -#define SQL_CS_CREATE_SCHEMA 0x00000001L -#define SQL_CS_DEFAULT_CHARACTER_SET 0x00000004L -#define SQL_CT_COLUMN_COLLATION 0x00000800L -#define SQL_CT_COLUMN_CONSTRAINT 0x00000200L -#define SQL_CT_COLUMN_DEFAULT 0x00000400L -#define SQL_CT_COMMIT_DELETE 0x00000004L -#define SQL_CT_COMMIT_PRESERVE 0x00000002L -#define SQL_CT_CONSTRAINT_DEFERRABLE 0x00000080L -#define SQL_CT_CONSTRAINT_INITIALLY_DEFERRED 0x00000020L -#define SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00000040L -#define SQL_CT_CONSTRAINT_NAME_DEFINITION 0x00002000L -#define SQL_CT_CONSTRAINT_NON_DEFERRABLE 0x00000100L -#define SQL_CT_CREATE_TABLE 0x00000001L -#define SQL_CT_GLOBAL_TEMPORARY 0x00000008L -#define SQL_CT_LOCAL_TEMPORARY 0x00000010L -#define SQL_CT_TABLE_CONSTRAINT 0x00001000L -#define SQL_CTR_CREATE_TRANSLATION 0x00000001L -#define SQL_CU_DML_STATEMENTS SQL_QU_DML_STATEMENTS -#define SQL_CU_INDEX_DEFINITION SQL_QU_INDEX_DEFINITION -#define SQL_CU_PRIVILEGE_DEFINITION SQL_QU_PRIVILEGE_DEFINITION -#define SQL_CU_PROCEDURE_INVOCATION SQL_QU_PROCEDURE_INVOCATION -#define SQL_CU_TABLE_DEFINITION SQL_QU_TABLE_DEFINITION -#define SQL_CVT_GUID 0x1000000L -#define SQL_CVT_INTERVAL_DAY_TIME 0x00100000L -#define SQL_CVT_INTERVAL_YEAR_MONTH 0x00080000L -#define SQL_CVT_WCHAR 0x00200000L -#define SQL_CVT_WLONGVARCHAR 0x00400000L -#define SQL_CVT_WVARCHAR 0x00800000L -#define SQL_DA_DROP_ASSERTION 0x00000001L -#define SQL_DATETIME_LITERALS 119 -#define SQL_DB_DEFAULT SQL_DB_RETURN_TO_POOL -#define SQL_DB_DISCONNECT 1UL -#define SQL_DB_RETURN_TO_POOL 0UL -#define SQL_DC_DROP_COLLATION 0x00000001L -#define SQL_DCS_DROP_CHARACTER_SET 0x00000001L -#define SQL_DD_CASCADE 0x00000004L -#define SQL_DD_DROP_DOMAIN 0x00000001L -#define SQL_DD_RESTRICT 0x00000002L -#define SQL_DDL_INDEX 170 -#define SQL_DELETE_BY_BOOKMARK 6 -#define SQL_DESC_ARRAY_SIZE 20 -#define SQL_DESC_ARRAY_STATUS_PTR 21 -#define SQL_DESC_AUTO_UNIQUE_VALUE SQL_COLUMN_AUTO_INCREMENT -#define SQL_DESC_BASE_COLUMN_NAME 22 -#define SQL_DESC_BASE_TABLE_NAME 23 -#define SQL_DESC_BIND_OFFSET_PTR 24 -#define SQL_DESC_BIND_TYPE 25 -#define SQL_DESC_CASE_SENSITIVE SQL_COLUMN_CASE_SENSITIVE -#define SQL_DESC_CATALOG_NAME SQL_COLUMN_QUALIFIER_NAME -#define SQL_DESC_CONCISE_TYPE SQL_COLUMN_TYPE -#define SQL_DESC_DATETIME_INTERVAL_PRECISION 26 -#define SQL_DESC_DISPLAY_SIZE SQL_COLUMN_DISPLAY_SIZE -#define SQL_DESC_FIXED_PREC_SCALE SQL_COLUMN_MONEY -#define SQL_DESC_LABEL SQL_COLUMN_LABEL -#define SQL_DESC_LITERAL_PREFIX 27 -#define SQL_DESC_LITERAL_SUFFIX 28 -#define SQL_DESC_LOCAL_TYPE_NAME 29 -#define SQL_DESC_MAXIMUM_SCALE 30 -#define SQL_DESC_MINIMUM_SCALE 31 -#define SQL_DESC_NUM_PREC_RADIX 32 -#define SQL_DESC_PARAMETER_TYPE 33 -#define SQL_DESC_ROWS_PROCESSED_PTR 34 -#define SQL_DESC_SCHEMA_NAME SQL_COLUMN_OWNER_NAME -#define SQL_DESC_SEARCHABLE SQL_COLUMN_SEARCHABLE -#define SQL_DESC_TABLE_NAME SQL_COLUMN_TABLE_NAME -#define SQL_DESC_TYPE_NAME SQL_COLUMN_TYPE_NAME -#define SQL_DESC_UNSIGNED SQL_COLUMN_UNSIGNED -#define SQL_DESC_UPDATABLE SQL_COLUMN_UPDATABLE -#define SQL_DI_CREATE_INDEX 0x00000001L -#define SQL_DI_DROP_INDEX 0x00000002L -#define SQL_DIAG_COLUMN_NUMBER (-1247) -#define SQL_DIAG_CURSOR_ROW_COUNT (-1249) -#define SQL_DIAG_ROW_NUMBER (-1248) -#define SQL_DL_SQL92_DATE 0x00000001L -#define SQL_DL_SQL92_INTERVAL_DAY 0x00000020L -#define SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR 0x00000400L -#define SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE 0x00000800L -#define SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND 0x00001000L -#define SQL_DL_SQL92_INTERVAL_HOUR 0x00000040L -#define SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE 0x00002000L -#define SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND 0x00004000L -#define SQL_DL_SQL92_INTERVAL_MINUTE 0x00000080L -#define SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND 0x00008000L -#define SQL_DL_SQL92_INTERVAL_MONTH 0x00000010L -#define SQL_DL_SQL92_INTERVAL_SECOND 0x00000100L -#define SQL_DL_SQL92_INTERVAL_YEAR 0x00000008L -#define SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH 0x00000200L -#define SQL_DL_SQL92_TIME 0x00000002L -#define SQL_DL_SQL92_TIMESTAMP 0x00000004L -#define SQL_DM_VER 171 -#define SQL_DRIVER_HDESC 135 -#define SQL_DROP_ASSERTION 136 -#define SQL_DROP_CHARACTER_SET 137 -#define SQL_DROP_COLLATION 138 -#define SQL_DROP_DOMAIN 139 -#define SQL_DROP_SCHEMA 140 -#define SQL_DROP_TABLE 141 -#define SQL_DROP_TRANSLATION 142 -#define SQL_DROP_VIEW 143 -#define SQL_DS_CASCADE 0x00000004L -#define SQL_DS_DROP_SCHEMA 0x00000001L -#define SQL_DS_RESTRICT 0x00000002L -#define SQL_DT_CASCADE 0x00000004L -#define SQL_DT_DROP_TABLE 0x00000001L -#define SQL_DT_RESTRICT 0x00000002L -#define SQL_DTC_DONE 0L -#define SQL_DTR_DROP_TRANSLATION 0x00000001L -#define SQL_DV_CASCADE 0x00000004L -#define SQL_DV_DROP_VIEW 0x00000001L -#define SQL_DV_RESTRICT 0x00000002L -#define SQL_DYNAMIC_CURSOR_ATTRIBUTES1 144 -#define SQL_DYNAMIC_CURSOR_ATTRIBUTES2 145 -#define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER -#define SQL_EXT_API_START 40 -#define SQL_FETCH_BY_BOOKMARK 7 -#define SQL_FETCH_FIRST_SYSTEM 32 -#define SQL_FETCH_FIRST_USER 31 -#define SQL_FN_CVT_CAST 0x00000002L -#define SQL_FN_STR_BIT_LENGTH 0x00080000L -#define SQL_FN_STR_CHAR_LENGTH 0x00100000L -#define SQL_FN_STR_CHARACTER_LENGTH 0x00200000L -#define SQL_FN_STR_OCTET_LENGTH 0x00400000L -#define SQL_FN_STR_POSITION 0x00800000L -#define SQL_FN_TD_CURRENT_DATE 0x00020000L -#define SQL_FN_TD_CURRENT_TIME 0x00040000L -#define SQL_FN_TD_CURRENT_TIMESTAMP 0x00080000L -#define SQL_FN_TD_EXTRACT 0x00100000L -#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 146 -#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 147 -#define SQL_FUNC_EXISTS(exists, api) \ - ((*(((UWORD*) (exists)) + ((api) >> 4)) & (1 << ((api) & 15)) ) ? \ - SQL_TRUE : SQL_FALSE ) -#define SQL_GB_COLLATE 0x0004 -#define SQL_HANDLE_SENV 5 -#define SQL_IK_ALL (SQL_IK_ASC | SQL_IK_DESC) -#define SQL_IK_ASC 1 -#define SQL_IK_DESC 2 -#define SQL_IK_NONE 0 -#define SQL_INDEX_KEYWORDS 148 -#define SQL_INFO_DRIVER_START 1000 -#define SQL_INFO_LAST SQL_QUALIFIER_LOCATION -#define SQL_INFO_SCHEMA_VIEWS 149 -#define SQL_INITIALLY_DEFERRED 5 -#define SQL_INITIALLY_IMMEDIATE 6 -#define SQL_INSERT_STATEMENT 172 -#define SQL_INTERVAL 10 -#define SQL_IS_INSERT_LITERALS 0x00000001L -#define SQL_IS_INSERT_SEARCHED 0x00000002L -#define SQL_IS_INTEGER (-6) -#define SQL_IS_POINTER (-4) -#define SQL_IS_SELECT_INTO 0x00000004L -#define SQL_IS_SMALLINT (-8) -#define SQL_IS_UINTEGER (-5) -#define SQL_IS_USMALLINT (-7) -#define SQL_ISV_ASSERTIONS 0x00000001L -#define SQL_ISV_CHARACTER_SETS 0x00000002L -#define SQL_ISV_CHECK_CONSTRAINTS 0x00000004L -#define SQL_ISV_COLLATIONS 0x00000008L -#define SQL_ISV_COLUMN_DOMAIN_USAGE 0x00000010L -#define SQL_ISV_COLUMN_PRIVILEGES 0x00000020L -#define SQL_ISV_COLUMNS 0x00000040L -#define SQL_ISV_CONSTRAINT_COLUMN_USAGE 0x00000080L -#define SQL_ISV_CONSTRAINT_TABLE_USAGE 0x00000100L -#define SQL_ISV_DOMAIN_CONSTRAINTS 0x00000200L -#define SQL_ISV_DOMAINS 0x00000400L -#define SQL_ISV_KEY_COLUMN_USAGE 0x00000800L -#define SQL_ISV_REFERENTIAL_CONSTRAINTS 0x00001000L -#define SQL_ISV_SCHEMATA 0x00002000L -#define SQL_ISV_SQL_LANGUAGES 0x00004000L -#define SQL_ISV_TABLE_CONSTRAINTS 0x00008000L -#define SQL_ISV_TABLE_PRIVILEGES 0x00010000L -#define SQL_ISV_TABLES 0x00020000L -#define SQL_ISV_TRANSLATIONS 0x00040000L -#define SQL_ISV_USAGE_PRIVILEGES 0x00080000L -#define SQL_ISV_VIEW_COLUMN_USAGE 0x00100000L -#define SQL_ISV_VIEW_TABLE_USAGE 0x00200000L -#define SQL_ISV_VIEWS 0x00400000L -#define SQL_KEYSET_CURSOR_ATTRIBUTES1 150 -#define SQL_KEYSET_CURSOR_ATTRIBUTES2 151 -#define SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 10022 -#define SQL_NO_COLUMN_NUMBER (-1) -#define SQL_NO_ROW_NUMBER (-1) -#define SQL_NOT_DEFERRABLE 7 -#define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1) -#define SQL_NUM_FUNCTIONS 23 -#define SQL_ODBC_INTERFACE_CONFORMANCE 152 -#define SQL_OIC_CORE 1UL -#define SQL_OIC_LEVEL1 2UL -#define SQL_OIC_LEVEL2 3UL -#define SQL_OV_ODBC2 2UL -#define SQL_OV_ODBC3 3UL -#define SQL_PARAM_ARRAY_ROW_COUNTS 153 -#define SQL_PARAM_ARRAY_SELECTS 154 -#define SQL_PARAM_BIND_BY_COLUMN 0UL -#define SQL_PARAM_BIND_TYPE_DEFAULT SQL_PARAM_BIND_BY_COLUMN -#define SQL_PARAM_DIAG_UNAVAILABLE 1 -#define SQL_PARAM_ERROR 5 -#define SQL_PARAM_IGNORE 1 -#define SQL_PARAM_PROCEED 0 -#define SQL_PARAM_SUCCESS 0 -#define SQL_PARAM_SUCCESS_WITH_INFO 6 -#define SQL_PARAM_UNUSED 7 -#define SQL_PARC_BATCH 1 -#define SQL_PARC_NO_BATCH 2 -#define SQL_PAS_BATCH 1 -#define SQL_PAS_NO_BATCH 2 -#define SQL_PAS_NO_SELECT 3 -#define SQL_ROW_IGNORE 1 -#define SQL_ROW_NUMBER_UNKNOWN (-2) -#define SQL_ROW_PROCEED 0 -#define SQL_ROW_SUCCESS_WITH_INFO 6 -#define SQL_SC_FIPS127_2_TRANSITIONAL 0x00000002L -#define SQL_SC_SQL92_ENTRY 0x00000001L -#define SQL_SC_SQL92_FULL 0x00000008L -#define SQL_SC_SQL92_INTERMEDIATE 0x00000004L -#define SQL_SCC_ISO92_CLI 0x00000002L -#define SQL_SCC_XOPEN_CLI_VERSION1 0x00000001L -#define SQL_SCHEMA_TERM SQL_OWNER_TERM -#define SQL_SCHEMA_USAGE SQL_OWNER_USAGE -#define SQL_SDF_CURRENT_DATE 0x00000001L -#define SQL_SDF_CURRENT_TIME 0x00000002L -#define SQL_SDF_CURRENT_TIMESTAMP 0x00000004L -#define SQL_SFKD_CASCADE 0x00000001L -#define SQL_SFKD_NO_ACTION 0x00000002L -#define SQL_SFKD_SET_DEFAULT 0x00000004L -#define SQL_SFKD_SET_NULL 0x00000008L -#define SQL_SFKU_CASCADE 0x00000001L -#define SQL_SFKU_NO_ACTION 0x00000002L -#define SQL_SFKU_SET_DEFAULT 0x00000004L -#define SQL_SFKU_SET_NULL 0x00000008L -#define SQL_SG_DELETE_TABLE 0x00000020L -#define SQL_SG_INSERT_COLUMN 0x00000080L -#define SQL_SG_INSERT_TABLE 0x00000040L -#define SQL_SG_REFERENCES_COLUMN 0x00000200L -#define SQL_SG_REFERENCES_TABLE 0x00000100L -#define SQL_SG_SELECT_TABLE 0x00000400L -#define SQL_SG_UPDATE_COLUMN 0x00001000L -#define SQL_SG_UPDATE_TABLE 0x00000800L -#define SQL_SG_USAGE_ON_CHARACTER_SET 0x00000002L -#define SQL_SG_USAGE_ON_COLLATION 0x00000004L -#define SQL_SG_USAGE_ON_DOMAIN 0x00000001L -#define SQL_SG_USAGE_ON_TRANSLATION 0x00000008L -#define SQL_SG_WITH_GRANT_OPTION 0x00000010L -#define SQL_SNVF_BIT_LENGTH 0x00000001L -#define SQL_SNVF_CHAR_LENGTH 0x00000002L -#define SQL_SNVF_CHARACTER_LENGTH 0x00000004L -#define SQL_SNVF_EXTRACT 0x00000008L -#define SQL_SNVF_OCTET_LENGTH 0x00000010L -#define SQL_SNVF_POSITION 0x00000020L -#define SQL_SP_BETWEEN 0x00000800L -#define SQL_SP_COMPARISON 0x00001000L -#define SQL_SP_EXISTS 0x00000001L -#define SQL_SP_IN 0x00000400L -#define SQL_SP_ISNOTNULL 0x00000002L -#define SQL_SP_ISNULL 0x00000004L -#define SQL_SP_LIKE 0x00000200L -#define SQL_SP_MATCH_FULL 0x00000008L -#define SQL_SP_MATCH_PARTIAL 0x00000010L -#define SQL_SP_MATCH_UNIQUE_FULL 0x00000020L -#define SQL_SP_MATCH_UNIQUE_PARTIAL 0x00000040L -#define SQL_SP_OVERLAPS 0x00000080L -#define SQL_SP_QUANTIFIED_COMPARISON 0x00002000L -#define SQL_SP_UNIQUE 0x00000100L -#define SQL_SQL_CONFORMANCE 118 -#define SQL_SQL92_DATETIME_FUNCTIONS 155 -#define SQL_SQL92_FOREIGN_KEY_DELETE_RULE 156 -#define SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 157 -#define SQL_SQL92_GRANT 158 -#define SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 159 -#define SQL_SQL92_PREDICATES 160 -#define SQL_SQL92_RELATIONAL_JOIN_OPERATORS 161 -#define SQL_SQL92_REVOKE 162 -#define SQL_SQL92_ROW_VALUE_CONSTRUCTOR 163 -#define SQL_SQL92_STRING_FUNCTIONS 164 -#define SQL_SQL92_VALUE_EXPRESSIONS 165 -#define SQL_SR_CASCADE 0x00000020L -#define SQL_SR_DELETE_TABLE 0x00000080L -#define SQL_SR_GRANT_OPTION_FOR 0x00000010L -#define SQL_SR_INSERT_COLUMN 0x00000200L -#define SQL_SR_INSERT_TABLE 0x00000100L -#define SQL_SR_REFERENCES_COLUMN 0x00000800L -#define SQL_SR_REFERENCES_TABLE 0x00000400L -#define SQL_SR_RESTRICT 0x00000040L -#define SQL_SR_SELECT_TABLE 0x00001000L -#define SQL_SR_UPDATE_COLUMN 0x00004000L -#define SQL_SR_UPDATE_TABLE 0x00002000L -#define SQL_SR_USAGE_ON_CHARACTER_SET 0x00000002L -#define SQL_SR_USAGE_ON_COLLATION 0x00000004L -#define SQL_SR_USAGE_ON_DOMAIN 0x00000001L -#define SQL_SR_USAGE_ON_TRANSLATION 0x00000008L -#define SQL_SRJO_CORRESPONDING_CLAUSE 0x00000001L -#define SQL_SRJO_CROSS_JOIN 0x00000002L -#define SQL_SRJO_EXCEPT_JOIN 0x00000004L -#define SQL_SRJO_FULL_OUTER_JOIN 0x00000008L -#define SQL_SRJO_INNER_JOIN 0x00000010L -#define SQL_SRJO_INTERSECT_JOIN 0x00000020L -#define SQL_SRJO_LEFT_OUTER_JOIN 0x00000040L -#define SQL_SRJO_NATURAL_JOIN 0x00000080L -#define SQL_SRJO_RIGHT_OUTER_JOIN 0x00000100L -#define SQL_SRJO_UNION_JOIN 0x00000200L -#define SQL_SRVC_DEFAULT 0x00000004L -#define SQL_SRVC_NULL 0x00000002L -#define SQL_SRVC_ROW_SUBQUERY 0x00000008L -#define SQL_SRVC_VALUE_EXPRESSION 0x00000001L -#define SQL_SSF_CONVERT 0x00000001L -#define SQL_SSF_LOWER 0x00000002L -#define SQL_SSF_SUBSTRING 0x00000008L -#define SQL_SSF_TRANSLATE 0x00000010L -#define SQL_SSF_TRIM_BOTH 0x00000020L -#define SQL_SSF_TRIM_LEADING 0x00000040L -#define SQL_SSF_TRIM_TRAILING 0x00000080L -#define SQL_SSF_UPPER 0x00000004L -#define SQL_STANDARD_CLI_CONFORMANCE 166 -#define SQL_STATIC_CURSOR_ATTRIBUTES1 167 -#define SQL_STATIC_CURSOR_ATTRIBUTES2 168 -#define SQL_SU_DML_STATEMENTS SQL_OU_DML_STATEMENTS -#define SQL_SU_INDEX_DEFINITION SQL_OU_INDEX_DEFINITION -#define SQL_SU_PRIVILEGE_DEFINITION SQL_OU_PRIVILEGE_DEFINITION -#define SQL_SU_PROCEDURE_INVOCATION SQL_OU_PROCEDURE_INVOCATION -#define SQL_SU_TABLE_DEFINITION SQL_OU_TABLE_DEFINITION -#define SQL_SVE_CASE 0x00000001L -#define SQL_SVE_CAST 0x00000002L -#define SQL_SVE_COALESCE 0x00000004L -#define SQL_SVE_NULLIF 0x00000008L -#define SQL_UB_FIXED SQL_UB_ON -#define SQL_UB_VARIABLE 2UL -#define SQL_UNION_STATEMENT SQL_UNION -#define SQL_UPDATE_BY_BOOKMARK 5 -#define SQL_US_UNION SQL_U_UNION -#define SQL_US_UNION_ALL SQL_U_UNION_ALL -#endif /* ODBCVER >= 0x300 */ -#if (ODBCVER >= 0x0350) -#define SQL_DESC_ROWVER 35 -#define SQL_GUID (-11) -#define SQL_C_GUID SQL_GUID -#ifdef ODBC_STD -#define SQLAllocHandle SQLAllocHandleStd -#define SQLAllocEnv(p) SQLAllocHandleStd(SQL_HANDLE_ENV,SQL_NULL_HANDLE,p) -#define SQL_YEAR SQL_CODE_YEAR -#define SQL_MONTH SQL_CODE_MONTH -#define SQL_DAY SQL_CODE_DAY -#define SQL_HOUR SQL_CODE_HOUR -#define SQL_MINUTE SQL_CODE_MINUTE -#define SQL_SECOND SQL_CODE_SECOND -#define SQL_YEAR_TO_MONTH SQL_CODE_YEAR_TO_MONTH -#define SQL_DAY_TO_HOUR SQL_CODE_DAY_TO_HOUR -#define SQL_DAY_TO_MINUTE SQL_CODE_DAY_TO_MINUTE -#define SQL_DAY_TO_SECOND SQL_CODE_DAY_TO_SECOND -#define SQL_HOUR_TO_MINUTE SQL_CODE_HOUR_TO_MINUTE -#define SQL_HOUR_TO_SECOND SQL_CODE_HOUR_TO_SECOND -#define SQL_MINUTE_TO_SECOND SQL_CODE_MINUTE_TO_SECOND -#endif /* ODBC_STD */ -#endif /* ODBCVER >= 0x0350 */ -#if (ODBCVER >= 0x0351) -#define SQL_ATTR_ANSI_APP 115 -#define SQL_AA_TRUE 1L -#define SQL_AA_FALSE 0L -#endif - -#define TRACE_VERSION 1000 -#define TRACE_ON 1 - -#ifndef RC_INVOKED -#define SQL_ODBC_KEYWORDS \ -"ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\ -"ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\ -"BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\ -"CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\ -"COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\ -"CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\ -"CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\ -"DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,"\ -"DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\ -"DISTINCT,DOMAIN,DOUBLE,DROP,"\ -"ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,"\ -"EXISTS,EXTERNAL,EXTRACT,"\ -"FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\ -"GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\ -"IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\ -"INPUT,INSENSITIVE,INSERT,INT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,"\ -"JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\ -"MATCH,MAX,MIN,MINUTE,MODULE,MONTH,"\ -"NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\ -"OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\ -"PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\ -"PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\ -"READ,REAL,REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS"\ -"SCHEMA,SCROLL,SECOND,SECTION,SELECT,SESSION,SESSION_USER,SET,SIZE,"\ -"SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\ -"SUBSTRING,SUM,SYSTEM_USER,"\ -"TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\ -"TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\ -"UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\ -"VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,WRITE,"\ -"YEAR,ZONE" - -SQLRETURN SQL_API SQLDriverConnect(SQLHDBC,SQLHWND,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLUSMALLINT); -SQLRETURN SQL_API SQLBrowseConnect(SQLHDBC,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLColumnPrivileges(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLColAttributes(SQLHSTMT,SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLLEN*); -SQLRETURN SQL_API SQLDescribeParam(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*); -SQLRETURN SQL_API SQLExtendedFetch(SQLHSTMT,SQLUSMALLINT,SQLINTEGER,SQLUINTEGER*,SQLUSMALLINT*); -SQLRETURN SQL_API SQLForeignKeys(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLMoreResults(SQLHSTMT); -SQLRETURN SQL_API SQLNativeSql(SQLHDBC,SQLCHAR*,SQLINTEGER,SQLCHAR*,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLNumParams(SQLHSTMT,SQLSMALLINT*); -SQLRETURN SQL_API SQLParamOptions(SQLHSTMT,SQLUINTEGER,SQLUINTEGER*); -SQLRETURN SQL_API SQLPrimaryKeys(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLProcedureColumns(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLProcedures(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLSetPos(SQLHSTMT,SQLUSMALLINT,SQLUSMALLINT,SQLUSMALLINT); -SQLRETURN SQL_API SQLTablePrivileges(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLDrivers(SQLHENV,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLBindParameter(SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLSMALLINT,SQLULEN,SQLSMALLINT,SQLPOINTER,SQLLEN,SQLLEN*); -SQLRETURN SQL_API SQLSetScrollOptions(SQLHSTMT,SQLUSMALLINT,SQLLEN,SQLUSMALLINT); /* deprecated */ -DWORD SQL_API ODBCGetTryWaitValue(void); -BOOL SQL_API ODBCSetTryWaitValue(DWORD); -RETCODE SQL_API TraceOpenLogFile(LPWSTR,LPWSTR,DWORD); -RETCODE SQL_API TraceCloseLogFile(void); -VOID SQL_API TraceReturn(RETCODE,RETCODE); -DWORD SQL_API TraceVersion(void); -#if (ODBCVER >= 0x0300) -SQLRETURN SQL_API SQLBulkOperations(SQLHSTMT,SQLSMALLINT); -SQLRETURN SQL_API SQLAllocHandleStd( SQLSMALLINT,SQLHANDLE,SQLHANDLE*); -#endif -#endif /* ndef RC_INVOKED */ -#include -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/sqltypes.h b/winsup/w32api/include/sqltypes.h deleted file mode 100644 index c2f1bfa50..000000000 --- a/winsup/w32api/include/sqltypes.h +++ /dev/null @@ -1,156 +0,0 @@ -#ifndef _SQLTYPES_H -#define _SQLTYPES_H -#ifdef __cplusplus -extern "C" { -#endif -#define SQL_API __stdcall -#ifndef RC_INVOKED -#define __need_wchar_t -#include -typedef signed char SCHAR; -typedef long SDWORD; -typedef short SWORD; -typedef ULONG UDWORD; -typedef USHORT UWORD; -typedef signed long SLONG; -typedef signed short SSHORT; -typedef double SDOUBLE; -typedef double LDOUBLE; -typedef float SFLOAT; -typedef PVOID PTR; -typedef PVOID HENV; -typedef PVOID HDBC; -typedef PVOID HSTMT; -typedef short RETCODE; -typedef UCHAR SQLCHAR; -typedef SCHAR SQLSCHAR; -typedef SDWORD SQLINTEGER; -typedef SWORD SQLSMALLINT; -#ifndef __WIN64 -typedef UDWORD SQLUINTEGER; -#endif -typedef UWORD SQLUSMALLINT; -typedef PVOID SQLPOINTER; -#if (ODBCVER >= 0x0300) -typedef void* SQLHANDLE; -typedef SQLHANDLE SQLHENV; -typedef SQLHANDLE SQLHDBC; -typedef SQLHANDLE SQLHSTMT; -typedef SQLHANDLE SQLHDESC; -#else -typedef void* SQLHENV; -typedef void* SQLHDBC; -typedef void* SQLHSTMT; -#endif -typedef SQLSMALLINT SQLRETURN; -typedef HWND SQLHWND; -typedef ULONG BOOKMARK; -#ifdef _WIN64 -typedef INT64 SQLLEN; -typedef INT64 SQLROWOFFSET; -typedef UINT64 SQLROWCOUNT; -typedef UINT64 SQLULEN; -typedef UINT64 SQLTRANSID; -typedef unsigned long SQLSETPOSIROW; -#else -#define SQLLEN SQLINTEGER -#define SQLROWOFFSET SQLINTEGER -#define SQLROWCOUNT SQLUINTEGER -#define SQLULEN SQLUINTEGER -#define SQLTRANSID DWORD -#define SQLSETPOSIROW SQLUSMALLINT -#endif -typedef wchar_t SQLWCHAR; -#ifdef UNICODE -typedef SQLWCHAR SQLTCHAR; -#else -typedef SQLCHAR SQLTCHAR; -#endif /* UNICODE */ -#if (ODBCVER >= 0x0300) -typedef unsigned char SQLDATE; -typedef unsigned char SQLDECIMAL; -typedef double SQLDOUBLE; -typedef double SQLFLOAT; -typedef unsigned char SQLNUMERIC; -typedef float SQLREAL; -typedef unsigned char SQLTIME; -typedef unsigned char SQLTIMESTAMP; -typedef unsigned char SQLVARCHAR; -#define ODBCINT64 __int64 -typedef __int64 SQLBIGINT; -typedef unsigned __int64 SQLUBIGINT; -#endif - -typedef struct tagDATE_STRUCT { - SQLSMALLINT year; - SQLUSMALLINT month; - SQLUSMALLINT day; -} DATE_STRUCT; -typedef struct tagTIME_STRUCT { - SQLUSMALLINT hour; - SQLUSMALLINT minute; - SQLUSMALLINT second; -} TIME_STRUCT; -typedef struct tagTIMESTAMP_STRUCT { - SQLSMALLINT year; - SQLUSMALLINT month; - SQLUSMALLINT day; - SQLUSMALLINT hour; - SQLUSMALLINT minute; - SQLUSMALLINT second; - SQLUINTEGER fraction; -} TIMESTAMP_STRUCT; -#if (ODBCVER >= 0x0300) -typedef DATE_STRUCT SQL_DATE_STRUCT; -typedef TIME_STRUCT SQL_TIME_STRUCT; -typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT; -typedef enum { - SQL_IS_YEAR = 1,SQL_IS_MONTH,SQL_IS_DAY,SQL_IS_HOUR, - SQL_IS_MINUTE,SQL_IS_SECOND,SQL_IS_YEAR_TO_MONTH,SQL_IS_DAY_TO_HOUR, - SQL_IS_DAY_TO_MINUTE,SQL_IS_DAY_TO_SECOND,SQL_IS_HOUR_TO_MINUTE, - SQL_IS_HOUR_TO_SECOND,SQL_IS_MINUTE_TO_SECOND -} SQLINTERVAL; -typedef struct tagSQL_YEAR_MONTH { - SQLUINTEGER year; - SQLUINTEGER month; -} SQL_YEAR_MONTH_STRUCT; -typedef struct tagSQL_DAY_SECOND { - SQLUINTEGER day; - SQLUINTEGER hour; - SQLUINTEGER minute; - SQLUINTEGER second; - SQLUINTEGER fraction; -} SQL_DAY_SECOND_STRUCT; -typedef struct tagSQL_INTERVAL_STRUCT { - SQLINTERVAL interval_type; - SQLSMALLINT interval_sign; - union { - SQL_YEAR_MONTH_STRUCT year_month; - SQL_DAY_SECOND_STRUCT day_second; - } intval; -} SQL_INTERVAL_STRUCT; -#define SQL_MAX_NUMERIC_LEN 16 -typedef struct tagSQL_NUMERIC_STRUCT { - SQLCHAR precision; - SQLSCHAR scale; - SQLCHAR sign; - SQLCHAR val[SQL_MAX_NUMERIC_LEN]; -} SQL_NUMERIC_STRUCT; -#endif /* ODBCVER >= 0x0300 */ -#if (ODBCVER >= 0x0350) -#ifdef _GUID_DEFINED -typedef GUID SQLGUID; -#else -typedef struct tagSQLGUID{ - DWORD Data1; - WORD Data2; - WORD Data3; - BYTE Data4[ 8 ]; -} SQLGUID; -#endif /* _GUID_DEFINED */ -#endif /* ODBCVER >= 0x0350 */ -#endif /* RC_INVOKED */ -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/sqlucode.h b/winsup/w32api/include/sqlucode.h deleted file mode 100644 index faef64475..000000000 --- a/winsup/w32api/include/sqlucode.h +++ /dev/null @@ -1,138 +0,0 @@ -#ifndef _SQLUCODE_H -#define _SQLUCODE_H -#include -#ifdef __cplusplus -extern "C" { -#endif -#define SQL_WCHAR (-8) -#define SQL_WVARCHAR (-9) -#define SQL_WLONGVARCHAR (-10) -#define SQL_C_WCHAR SQL_WCHAR -#define SQL_SQLSTATE_SIZEW 10 -#ifdef UNICODE -#define SQL_C_TCHAR SQL_C_WCHAR -#else -#define SQL_C_TCHAR SQL_C_CHAR -#endif -#ifndef RC_INVOKED -SQLRETURN SQL_API SQLBrowseConnectA(SQLHDBC,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLBrowseConnectW(SQLHDBC,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLColAttributeA(SQLHSTMT,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*,SQLPOINTER); -SQLRETURN SQL_API SQLColAttributeW(SQLHSTMT,SQLUSMALLINT,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*,SQLPOINTER); -SQLRETURN SQL_API SQLColAttributesA(SQLHSTMT,SQLUSMALLINT,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*,SQLLEN*); -SQLRETURN SQL_API SQLColAttributesW(SQLHSTMT,SQLUSMALLINT,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*,SQLLEN*); -SQLRETURN SQL_API SQLColumnPrivilegesA( SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT ,SQLCHAR*,SQLSMALLINT ); -SQLRETURN SQL_API SQLColumnPrivilegesW( SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT ); -SQLRETURN SQL_API SQLColumnsA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT ,SQLCHAR*,SQLSMALLINT ); -SQLRETURN SQL_API SQLColumnsW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT ,SQLWCHAR*,SQLSMALLINT ); -SQLRETURN SQL_API SQLConnectA(SQLHDBC,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLConnectW(SQLHDBC,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLDataSourcesA(SQLHENV,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLDataSourcesW(SQLHENV,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLDescribeColA(SQLHSTMT,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*); -SQLRETURN SQL_API SQLDescribeColW(SQLHSTMT,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLULEN*,SQLSMALLINT*,SQLSMALLINT*); -SQLRETURN SQL_API SQLDriverConnectA(SQLHDBC,SQLHWND,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLUSMALLINT); -SQLRETURN SQL_API SQLDriverConnectW(SQLHDBC,SQLHWND,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLUSMALLINT); -SQLRETURN SQL_API SQLDriversA(SQLHENV,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLDriversW(SQLHENV,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLErrorA(SQLHENV,SQLHDBC,SQLHSTMT,SQLCHAR*,SQLINTEGER*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLErrorW(SQLHENV,SQLHDBC,SQLHSTMT,SQLWCHAR*,SQLINTEGER*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLExecDirectA(SQLHSTMT,SQLCHAR*,SQLINTEGER); -SQLRETURN SQL_API SQLExecDirectW(SQLHSTMT,SQLWCHAR*,SQLINTEGER); -SQLRETURN SQL_API SQLForeignKeysA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLForeignKeysW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLGetConnectAttrA(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLGetConnectAttrW(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLGetConnectOptionA(SQLHDBC,SQLUSMALLINT,SQLPOINTER); -SQLRETURN SQL_API SQLGetConnectOptionW(SQLHDBC,SQLUSMALLINT,SQLPOINTER); -SQLRETURN SQL_API SQLGetCursorNameA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetCursorNameW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetInfoA(SQLHDBC,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetInfoW(SQLHDBC,SQLUSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetStmtAttrA(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLGetStmtAttrW(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLGetTypeInfoA(SQLHSTMT,SQLSMALLINT); -SQLRETURN SQL_API SQLGetTypeInfoW(SQLHSTMT,SQLSMALLINT); -SQLRETURN SQL_API SQLNativeSqlA(SQLHDBC,SQLCHAR*,SQLINTEGER,SQLCHAR*,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLNativeSqlW(SQLHDBC,SQLWCHAR*,SQLINTEGER,SQLWCHAR*,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLPrepareA(SQLHSTMT,SQLCHAR*,SQLINTEGER); -SQLRETURN SQL_API SQLPrepareW(SQLHSTMT,SQLWCHAR*,SQLINTEGER); -SQLRETURN SQL_API SQLPrimaryKeysA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT ); -SQLRETURN SQL_API SQLPrimaryKeysW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLProcedureColumnsA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLProcedureColumnsW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLProceduresA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLProceduresW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLSetConnectAttrA(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER); -SQLRETURN SQL_API SQLSetConnectAttrW(SQLHDBC,SQLINTEGER,SQLPOINTER,SQLINTEGER); -SQLRETURN SQL_API SQLSetConnectOptionA(SQLHDBC,SQLUSMALLINT,SQLULEN); -SQLRETURN SQL_API SQLSetConnectOptionW(SQLHDBC,SQLUSMALLINT,SQLULEN); -SQLRETURN SQL_API SQLSetCursorNameA(SQLHSTMT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLSetCursorNameW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLSetStmtAttrA(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER); -SQLRETURN SQL_API SQLSetStmtAttrW(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER); -SQLRETURN SQL_API SQLSpecialColumnsA(SQLHSTMT,SQLUSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT ,SQLUSMALLINT,SQLUSMALLINT); -SQLRETURN SQL_API SQLSpecialColumnsW(SQLHSTMT,SQLUSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT ,SQLUSMALLINT,SQLUSMALLINT); -SQLRETURN SQL_API SQLStatisticsA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT ,SQLUSMALLINT,SQLUSMALLINT); -SQLRETURN SQL_API SQLStatisticsW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT ,SQLUSMALLINT,SQLUSMALLINT); -SQLRETURN SQL_API SQLTablePrivilegesA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLTablePrivilegesW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT ); -SQLRETURN SQL_API SQLTablesA(SQLHSTMT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLCHAR*,SQLSMALLINT); -SQLRETURN SQL_API SQLTablesW(SQLHSTMT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT); -#if (ODBCVER >= 0x0300) -SQLRETURN SQL_API SQLGetDescFieldA(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLSetDescFieldW(SQLHDESC,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLGetDescRecA(SQLHDESC,SQLSMALLINT,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLSMALLINT*,SQLLEN*,SQLSMALLINT*,SQLSMALLINT*,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetDescRecW(SQLHDESC,SQLSMALLINT,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*,SQLSMALLINT*,SQLSMALLINT*,SQLLEN*,SQLSMALLINT*,SQLSMALLINT*,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetDiagFieldA(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetDiagFieldW(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLSMALLINT,SQLPOINTER,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetDiagRecA(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLCHAR*,SQLINTEGER*,SQLCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetDiagRecW(SQLSMALLINT,SQLHANDLE,SQLSMALLINT,SQLWCHAR*,SQLINTEGER*,SQLWCHAR*,SQLSMALLINT,SQLSMALLINT*); -SQLRETURN SQL_API SQLGetStmtAttrA(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -SQLRETURN SQL_API SQLGetStmtAttrW(SQLHSTMT,SQLINTEGER,SQLPOINTER,SQLINTEGER,SQLINTEGER*); -#endif /* (ODBCVER >= 0x0300) */ - -#if defined (UNICODE) && !defined (SQL_NOUNICODEMAP) -#define SQLBrowseConnect SQLBrowseConnectW -#define SQLColAttribute SQLColAttributeW -#define SQLColAttributes SQLColAttributesW -#define SQLColumnPrivileges SQLColumnPrivilegesW -#define SQLColumns SQLColumnsW -#define SQLConnect SQLConnectW -#define SQLDataSources SQLDataSourcesW -#define SQLDescribeCol SQLDescribeColW -#define SQLDriverConnect SQLDriverConnectW -#define SQLDrivers SQLDriversW -#define SQLError SQLErrorW -#define SQLExecDirect SQLExecDirectW -#define SQLForeignKeys SQLForeignKeysW -#define SQLGetConnectAttr SQLGetConnectAttrW -#define SQLGetConnectOption SQLGetConnectOptionW -#define SQLGetCursorName SQLGetCursorNameW -#define SQLGetDescField SQLGetDescFieldW -#define SQLGetDescRec SQLGetDescRecW -#define SQLGetDiagField SQLGetDiagFieldW -#define SQLGetDiagRec SQLGetDiagRecW -#define SQLGetInfo SQLGetInfoW -#define SQLGetStmtAttr SQLGetStmtAttrW -#define SQLGetTypeInfo SQLGetTypeInfoW -#define SQLNativeSql SQLNativeSqlW -#define SQLPrepare SQLPrepareW -#define SQLPrimaryKeys SQLPrimaryKeysW -#define SQLProcedureColumns SQLProcedureColumnsW -#define SQLProcedures SQLProceduresW -#define SQLSetConnectAttr SQLSetConnectAttrW -#define SQLSetConnectOption SQLSetConnectOptionW -#define SQLSetCursorName SQLSetCursorNameW -#define SQLSetDescField SQLSetDescFieldW -#define SQLSetStmtAttr SQLSetStmtAttrW -#define SQLSpecialColumns SQLSpecialColumnsW -#define SQLStatistics SQLStatisticsW -#define SQLTablePrivileges SQLTablePrivilegesW -#define SQLTables SQLTablesW -#endif /* UNICODE && ! SQL_NOUNICODEMAP */ -#endif /* RC_INVOKED */ -#ifdef __cplusplus -} -#endif /* __cplusplus*/ -#endif /* ndef _SQLUCODE_H */ diff --git a/winsup/w32api/include/sspi.h b/winsup/w32api/include/sspi.h deleted file mode 100644 index f24c42084..000000000 --- a/winsup/w32api/include/sspi.h +++ /dev/null @@ -1,332 +0,0 @@ -#ifndef _SSPI_H -#define _SSPI_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define SECPKG_CRED_INBOUND 1 -#define SECPKG_CRED_OUTBOUND 2 -#define SECPKG_CRED_BOTH (SECPKG_CRED_OUTBOUND|SECPKG_CRED_INBOUND) -#define SECPKG_CRED_ATTR_NAMES 1 - -#define SECPKG_FLAG_INTEGRITY 1 -#define SECPKG_FLAG_PRIVACY 2 -#define SECPKG_FLAG_TOKEN_ONLY 4 -#define SECPKG_FLAG_DATAGRAM 8 -#define SECPKG_FLAG_CONNECTION 16 -#define SECPKG_FLAG_MULTI_REQUIRED 32 -#define SECPKG_FLAG_CLIENT_ONLY 64 -#define SECPKG_FLAG_EXTENDED_ERROR 128 -#define SECPKG_FLAG_IMPERSONATION 256 -#define SECPKG_FLAG_ACCEPT_WIN32_NAME 512 -#define SECPKG_FLAG_STREAM 1024 - -#define SECPKG_ATTR_AUTHORITY 6 -#define SECPKG_ATTR_CONNECTION_INFO 90 -#define SECPKG_ATTR_ISSUER_LIST 80 -#define SECPKG_ATTR_ISSUER_LIST_EX 89 -#define SECPKG_ATTR_KEY_INFO 5 -#define SECPKG_ATTR_LIFESPAN 2 -#define SECPKG_ATTR_LOCAL_CERT_CONTEXT 84 -#define SECPKG_ATTR_LOCAL_CRED 82 -#define SECPKG_ATTR_NAMES 1 -#define SECPKG_ATTR_PROTO_INFO 7 -#define SECPKG_ATTR_REMOTE_CERT_CONTEXT 83 -#define SECPKG_ATTR_REMOTE_CRED 81 -#define SECPKG_ATTR_SIZES 0 -#define SECPKG_ATTR_STREAM_SIZES 4 - -#define SECBUFFER_EMPTY 0 -#define SECBUFFER_DATA 1 -#define SECBUFFER_TOKEN 2 -#define SECBUFFER_PKG_PARAMS 3 -#define SECBUFFER_MISSING 4 -#define SECBUFFER_EXTRA 5 -#define SECBUFFER_STREAM_TRAILER 6 -#define SECBUFFER_STREAM_HEADER 7 -#define SECBUFFER_PADDING 9 -#define SECBUFFER_STREAM 10 -#define SECBUFFER_READONLY 0x80000000 -#define SECBUFFER_ATTRMASK 0xf0000000 - -#define UNISP_NAME_A "Microsoft Unified Security Protocol Provider" -#define UNISP_NAME_W L"Microsoft Unified Security Protocol Provider" -#define SECBUFFER_VERSION 0 - -typedef struct _SecHandle { - ULONG_PTR dwLower; - ULONG_PTR dwUpper; -} SecHandle, *PSecHandle; -typedef struct _SecBuffer { - ULONG cbBuffer; - ULONG BufferType; - PVOID pvBuffer; -} SecBuffer, *PSecBuffer; -typedef SecHandle CredHandle; -typedef PSecHandle PCredHandle; -typedef SecHandle CtxtHandle; -typedef PSecHandle PCtxtHandle; -typedef struct _SECURITY_INTEGER { - unsigned long LowPart; - long HighPart; -} SECURITY_INTEGER; -typedef SECURITY_INTEGER TimeStamp, *PTimeStamp; -typedef struct _SecBufferDesc { - ULONG ulVersion; - ULONG cBuffers; - PSecBuffer pBuffers; -} SecBufferDesc, *PSecBufferDesc; -typedef struct _SecPkgContext_StreamSizes { - ULONG cbHeader; - ULONG cbTrailer; - ULONG cbMaximumMessage; - ULONG cBuffers; - ULONG cbBlockSize; -} SecPkgContext_StreamSizes, *PSecPkgContext_StreamSizes; -typedef struct _SecPkgContext_Sizes { - ULONG cbMaxToken; - ULONG cbMaxSIgnature; - ULONG cbBlockSize; - ULONG cbSecurityTrailer; -} SecPkgContext_Sizes, *PSecPkgContext_Sizes; -typedef struct _SecPkgContext_AuthorityW { - SEC_WCHAR* sAuthorityName; -} SecPkgContext_AuthorityW, *PSecPkgContext_AuthorityW; -typedef struct _SecPkgContext_AuthorityA { - SEC_CHAR* sAuthorityName; -} SecPkgContext_AuthorityA, *PSecPkgContext_AuthorityA; -typedef struct _SecPkgContext_KeyInfoW { - SEC_WCHAR* sSignatureAlgorithmName; - SEC_WCHAR* sEncryptAlgorithmName; - ULONG KeySize; - ULONG SignatureAlgorithm; - ULONG EncryptAlgorithm; -} SecPkgContext_KeyInfoW, *PSecPkgContext_KeyInfoW; -typedef struct _SecPkgContext_KeyInfoA { - SEC_CHAR* sSignatureAlgorithmName; - SEC_CHAR* sEncryptAlgorithmName; - ULONG KeySize; - ULONG SignatureAlgorithm; - ULONG EncryptAlgorithm; -} SecPkgContext_KeyInfoA, *PSecPkgContext_KeyInfoA; -typedef struct _SecPkgContext_LifeSpan { - TimeStamp tsStart; - TimeStamp tsExpiry; -} SecPkgContext_LifeSpan, *PSecPkgContext_LifeSpan; -typedef struct _SecPkgContext_NamesW { - SEC_WCHAR* sUserName; -} SecPkgContext_NamesW, *PSecPkgContext_NamesW; -typedef struct _SecPkgContext_NamesA { - SEC_CHAR* sUserName; -} SecPkgContext_NamesA, *PSecPkgContext_NamesA; -typedef struct _SecPkgInfoW { - ULONG fCapabilities; - USHORT wVersion; - USHORT wRPCID; - ULONG cbMaxToken; - SEC_WCHAR* Name; - SEC_WCHAR* Comment; -} SecPkgInfoW, *PSecPkgInfoW; -typedef struct _SecPkgInfoA { - ULONG fCapabilities; - USHORT wVersion; - USHORT wRPCID; - ULONG cbMaxToken; - SEC_CHAR* Name; - SEC_CHAR* Comment; -} SecPkgInfoA, *PSecPkgInfoA; -/* supported only in win2k+, so it should be a PSecPkgInfoW */ -/* PSDK does not say it has ANSI/Unicode versions */ -typedef struct _SecPkgContext_PackageInfo { - PSecPkgInfoW PackageInfo; -} SecPkgContext_PackageInfo, *PSecPkgContext_PackageInfo; -typedef struct _SecPkgCredentials_NamesW { - SEC_WCHAR* sUserName; -} SecPkgCredentialsNamesW, *PSecPkgCredentialsNamesW; -typedef struct _SecPkgCredentials_NamesA { - SEC_CHAR* sUserName; -} SecPkgCredentialsNamesA, *PSecPkgCredentialsNamesA; - -/* TODO: missing type in SDK */ -typedef void (*SEC_GET_KEY_FN)(); - -typedef SECURITY_STATUS (WINAPI *ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG,PSecPkgInfoW*); -typedef SECURITY_STATUS (WINAPI *ENUMERATE_SECURITY_PACKAGES_FN_A)(PULONG,PSecPkgInfoA*); -typedef SECURITY_STATUS (WINAPI *QUERY_CREDENTIALS_ATTRIBUTES_FN_W)(PCredHandle,ULONG,PVOID); -typedef SECURITY_STATUS (WINAPI *QUERY_CREDENTIALS_ATTRIBUTES_FN_A)(PCredHandle,ULONG,PVOID); -typedef SECURITY_STATUS (WINAPI *ACQUIRE_CREDENTIALS_HANDLE_FN_W)(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); -typedef SECURITY_STATUS (WINAPI *ACQUIRE_CREDENTIALS_HANDLE_FN_A)(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); -typedef SECURITY_STATUS (WINAPI *FREE_CREDENTIALS_HANDLE_FN)(PCredHandle); -typedef SECURITY_STATUS (WINAPI *INITIALIZE_SECURITY_CONTEXT_FN_W)(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); -typedef SECURITY_STATUS (WINAPI *INITIALIZE_SECURITY_CONTEXT_FN_A)(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); -typedef SECURITY_STATUS (WINAPI *ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); -typedef SECURITY_STATUS (WINAPI *COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle,PSecBufferDesc); -typedef SECURITY_STATUS (WINAPI *DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle); -typedef SECURITY_STATUS (WINAPI *APPLY_CONTROL_TOKEN_FN_W)(PCtxtHandle,PSecBufferDesc); -typedef SECURITY_STATUS (WINAPI *APPLY_CONTROL_TOKEN_FN_A)(PCtxtHandle,PSecBufferDesc); -typedef SECURITY_STATUS (WINAPI *QUERY_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle,ULONG,PVOID); -typedef SECURITY_STATUS (WINAPI *QUERY_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle,ULONG,PVOID); -typedef SECURITY_STATUS (WINAPI *IMPERSONATE_SECURITY_CONTEXT_FN)(PCtxtHandle); -typedef SECURITY_STATUS (WINAPI *REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle); -typedef SECURITY_STATUS (WINAPI *MAKE_SIGNATURE_FN)(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); -typedef SECURITY_STATUS (WINAPI *VERIFY_SIGNATURE_FN)(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); -typedef SECURITY_STATUS (WINAPI *FREE_CONTEXT_BUFFER_FN)(PVOID); -typedef SECURITY_STATUS (WINAPI *QUERY_SECURITY_PACKAGE_INFO_FN_A)(SEC_CHAR*,PSecPkgInfoA*); -typedef SECURITY_STATUS (WINAPI *QUERY_SECURITY_PACKAGE_INFO_FN_W)(SEC_WCHAR*,PSecPkgInfoW*); -typedef SECURITY_STATUS (WINAPI *ENCRYPT_MESSAGE_FN)(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); -typedef SECURITY_STATUS (WINAPI *DECRYPT_MESSAGE_FN)(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); - -typedef struct _SECURITY_FUNCTION_TABLEW { - unsigned long dwVersion; - ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW; - QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW; - ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW; - FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; - void SEC_FAR* Reserved2; - INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA; - ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; - COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; - DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; - APPLY_CONTROL_TOKEN_FN_W ApplyControlTokenW; - QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW; - IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; - REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; - MAKE_SIGNATURE_FN MakeSignature; - VERIFY_SIGNATURE_FN VerifySignature; - FREE_CONTEXT_BUFFER_FN FreeContextBuffer; - QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA; - void SEC_FAR* Reserved3; - void SEC_FAR* Reserved4; - void SEC_FAR* Unknown1; - void SEC_FAR* Unknown2; - void SEC_FAR* Unknown3; - void SEC_FAR* Unknown4; - void SEC_FAR* Unknown5; - ENCRYPT_MESSAGE_FN EncryptMessage; - DECRYPT_MESSAGE_FN DecryptMessage; -} SecurityFunctionTableW, *PSecurityFunctionTableW; -typedef struct _SECURITY_FUNCTION_TABLEA { - unsigned long dwVersion; - ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA; - QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA; - ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA; - FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; - void SEC_FAR* Reserved2; - INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA; - ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; - COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; - DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; - APPLY_CONTROL_TOKEN_FN_A ApplyControlTokenA; - QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA; - IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; - REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; - MAKE_SIGNATURE_FN MakeSignature; - VERIFY_SIGNATURE_FN VerifySignature; - FREE_CONTEXT_BUFFER_FN FreeContextBuffer; - QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA; - void SEC_FAR* Reserved3; - void SEC_FAR* Reserved4; - void SEC_FAR* Unknown1; - void SEC_FAR* Unknown2; - void SEC_FAR* Unknown3; - void SEC_FAR* Unknown4; - void SEC_FAR* Unknown5; - ENCRYPT_MESSAGE_FN EncryptMessage; - DECRYPT_MESSAGE_FN DecryptMessage; -} SecurityFunctionTableA, *PSecurityFunctionTableA; -typedef PSecurityFunctionTableA (WINAPI *INIT_SECURITY_INTERFACE_A)(VOID); -typedef PSecurityFunctionTableW (WINAPI *INIT_SECURITY_INTERFACE_W)(VOID); - -SECURITY_STATUS WINAPI FreeCredentialsHandle(PCredHandle); -SECURITY_STATUS WINAPI EnumerateSecurityPackagesA(PULONG,PSecPkgInfoA*); -SECURITY_STATUS WINAPI EnumerateSecurityPackagesW(PULONG,PSecPkgInfoW*); -SECURITY_STATUS WINAPI AcquireCredentialsHandleA(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); -SECURITY_STATUS WINAPI AcquireCredentialsHandleW(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); -SECURITY_STATUS WINAPI AcceptSecurityContext(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); -SECURITY_STATUS WINAPI InitializeSecurityContextA(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); -SECURITY_STATUS WINAPI InitializeSecurityContextW(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); -SECURITY_STATUS WINAPI FreeContextBuffer(PVOID); -SECURITY_STATUS WINAPI QueryContextAttributesA(PCtxtHandle,ULONG,PVOID); -SECURITY_STATUS WINAPI QueryContextAttributesW(PCtxtHandle,ULONG,PVOID); -SECURITY_STATUS WINAPI QueryCredentialsAttributesA(PCredHandle,ULONG,PVOID); -SECURITY_STATUS WINAPI QueryCredentialsAttributesW(PCredHandle,ULONG,PVOID); -SECURITY_STATUS WINAPI DecryptMessage(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); -SECURITY_STATUS WINAPI EncryptMessage(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); -SECURITY_STATUS WINAPI DeleteSecurityContext(PCtxtHandle); -SECURITY_STATUS WINAPI CompleteAuthToken(PCtxtHandle,PSecBufferDesc); -SECURITY_STATUS WINAPI ApplyControlTokenA(PCtxtHandle,PSecBufferDesc); -SECURITY_STATUS WINAPI ApplyControlTokenW(PCtxtHandle,PSecBufferDesc); -SECURITY_STATUS WINAPI ImpersonateSecurityContext(PCtxtHandle); -SECURITY_STATUS WINAPI RevertSecurityContext(PCtxtHandle); -SECURITY_STATUS WINAPI MakeSignature(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); -SECURITY_STATUS WINAPI VerifySignature(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); -SECURITY_STATUS WINAPI QuerySecurityPackageInfoA(SEC_CHAR*,PSecPkgInfoA*); -SECURITY_STATUS WINAPI QuerySecurityPackageInfoW(SEC_WCHAR*,PSecPkgInfoW*); -PSecurityFunctionTableA WINAPI InitSecurityInterfaceA(VOID); -PSecurityFunctionTableW WINAPI InitSecurityInterfaceW(VOID); - -#ifdef UNICODE -#define UNISP_NAME UNISP_NAME_W -#define SecPkgInfo SecPkgInfoW -#define PSecPkgInfo PSecPkgInfoW -#define SecPkgCredentialsNames SecPkgCredentialsNamesW -#define PSecPkgCredentialsNames PSecPkgCredentialsNamesW -#define SecPkgContext_Authority SecPkgContext_AuthorityW -#define PSecPkgContext_Authority PSecPkgContext_AuthorityW -#define SecPkgContext_KeyInfo SecPkgContext_KeyInfoW -#define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoW -#define SecPkgContext_Names SecPkgContext_NamesW -#define PSecPkgContext_Names PSecPkgContext_NamesW -#define SecurityFunctionTable SecurityFunctionTableW -#define PSecurityFunctionTable PSecurityFunctionTableW -#define AcquireCredentialsHandle AcquireCredentialsHandleW -#define EnumerateSecurityPackages EnumerateSecurityPackagesW -#define InitializeSecurityContext InitializeSecurityContextW -#define QueryContextAttributes QueryContextAttributesW -#define QueryCredentialsAttributes QueryCredentialsAttributesW -#define QuerySecurityPackageInfo QuerySecurityPackageInfoW -#define ApplyControlToken ApplyControlTokenW -#define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_W -#define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_W -#define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_W -#define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_W -#define APPLY_CONTROL_TOKEN_FN APPLY_CONTROL_TOKEN_FN_W -#define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_W -#define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_W -#define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_W -#else -#define UNISP_NAME UNISP_NAME_A -#define SecPkgInfo SecPkgInfoA -#define PSecPkgInfo PSecPkgInfoA -#define SecPkgCredentialsNames SecPkgCredentialsNamesA -#define PSecPkgCredentialsNames PSecPkgCredentialsNamesA -#define SecPkgContext_Authority SecPkgContext_AuthorityA -#define PSecPkgContext_Authority PSecPkgContext_AuthorityA -#define SecPkgContext_KeyInfo SecPkgContext_KeyInfoA -#define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoA -#define SecPkgContext_Names SecPkgContext_NamesA -#define PSecPkgContext_Names PSecPkgContext_NamesA -#define SecurityFunctionTable SecurityFunctionTableA -#define PSecurityFunctionTable PSecurityFunctionTableA -#define AcquireCredentialsHandle AcquireCredentialsHandleA -#define EnumerateSecurityPackages EnumerateSecurityPackagesA -#define InitializeSecurityContext InitializeSecurityContextA -#define QueryContextAttributes QueryContextAttributesA -#define QueryCredentialsAttributes QueryCredentialsAttributesA -#define QuerySecurityPackageInfo QuerySecurityPackageInfoA -#define ApplyControlToken ApplyControlTokenA -#define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_A -#define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_A -#define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_A -#define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_A -#define APPLY_CONTROL_TOKEN_FN APPLY_CONTROL_TOKEN_FN_A -#define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_A -#define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_A -#define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_A -#endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/subauth.h b/winsup/w32api/include/subauth.h deleted file mode 100644 index b31a4bab7..000000000 --- a/winsup/w32api/include/subauth.h +++ /dev/null @@ -1,205 +0,0 @@ -#ifndef _SUBAUTH_H -#define _SUBAUTH_H -#ifdef __cplusplus -extern "C" { -#endif -#ifndef NT_SUCCESS -#define NT_SUCCESS(x) ((x)>=0) -#define STATUS_SUCCESS 0 -#endif -#define CYPHER_BLOCK_LENGTH 8 -#define USER_SESSION_KEY_LENGTH (CYPHER_BLOCK_LENGTH*2) -#define CLEAR_BLOCK_LENGTH 8 -#define MSV1_0_PASSTHRU 1 -#define MSV1_0_GUEST_LOGON 2 -#define MSV1_0_VALIDATION_LOGOFF_TIME 1 -#define MSV1_0_VALIDATION_KICKOFF_TIME 2 -#define MSV1_0_VALIDATION_LOGON_SERVER 4 -#define MSV1_0_VALIDATION_LOGON_DOMAIN 8 -#define MSV1_0_VALIDATION_SESSION_KEY 16 -#define MSV1_0_VALIDATION_USER_FLAGS 32 -#define MSV1_0_VALIDATION_USER_ID 64 -#define MSV1_0_SUBAUTH_ACCOUNT_DISABLED 1 -#define MSV1_0_SUBAUTH_PASSWORD 2 -#define MSV1_0_SUBAUTH_WORKSTATIONS 4 -#define MSV1_0_SUBAUTH_LOGON_HOURS 8 -#define MSV1_0_SUBAUTH_ACCOUNT_EXPIRY 16 -#define MSV1_0_SUBAUTH_PASSWORD_EXPIRY 32 -#define MSV1_0_SUBAUTH_ACCOUNT_TYPE 64 -#define MSV1_0_SUBAUTH_LOCKOUT 128 -#define NEXT_FREE_ACCOUNT_CONTROL_BIT 131072 -#define SAM_DAYS_PER_WEEK 7 -#define SAM_HOURS_PER_WEEK 168 -#define SAM_MINUTES_PER_WEEK 10080 -#define STATUS_INVALID_INFO_CLASS 0xC0000003L -#define STATUS_NO_SUCH_USER 0xC0000064L -#define STATUS_WRONG_PASSWORD 0xC000006AL -#define STATUS_PASSWORD_RESTRICTION 0xC000006CL -#define STATUS_LOGON_FAILURE 0xC000006DL -#define STATUS_ACCOUNT_RESTRICTION 0xC000006EL -#define STATUS_INVALID_LOGON_HOURS 0xC000006FL -#define STATUS_INVALID_WORKSTATION 0xC0000070L -#define STATUS_PASSWORD_EXPIRED 0xC0000071L -#define STATUS_ACCOUNT_DISABLED 0xC0000072L -#define STATUS_INSUFFICIENT_RESOURCES 0xC000009AL -#define STATUS_ACCOUNT_EXPIRED 0xC0000193L -#define STATUS_PASSWORD_MUST_CHANGE 0xC0000224L -#define STATUS_ACCOUNT_LOCKED_OUT 0xC0000234L -#define USER_ACCOUNT_DISABLED 1 -#define USER_HOME_DIRECTORY_REQUIRED 2 -#define USER_PASSWORD_NOT_REQUIRED 4 -#define USER_TEMP_DUPLICATE_ACCOUNT 8 -#define USER_NORMAL_ACCOUNT 16 -#define USER_MNS_LOGON_ACCOUNT 32 -#define USER_INTERDOMAIN_TRUST_ACCOUNT 64 -#define USER_WORKSTATION_TRUST_ACCOUNT 128 -#define USER_SERVER_TRUST_ACCOUNT 256 -#define USER_DONT_EXPIRE_PASSWORD 512 -#define USER_ACCOUNT_AUTO_LOCKED 1024 -#define USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED 2048 -#define USER_SMARTCARD_REQUIRED 4096 -#define USER_TRUSTED_FOR_DELEGATION 8192 -#define USER_NOT_DELEGATED 16384 -#define USER_USE_DES_KEY_ONLY 32768 -#define USER_DONT_REQUIRE_PREAUTH 65536 -#define USER_MACHINE_ACCOUNT_MASK 448 -#define USER_ACCOUNT_TYPE_MASK 472 -#define USER_ALL_PARAMETERS 2097152 -#if !defined(_NTDEF_H) && !defined(_NTSECAPI_H) -typedef LONG NTSTATUS, *PNTSTATUS; -typedef struct _UNICODE_STRING { - USHORT Length; - USHORT MaximumLength; - PWSTR Buffer; -} UNICODE_STRING, *PUNICODE_STRING; -typedef struct _STRING { - USHORT Length; - USHORT MaximumLength; - PCHAR Buffer; -} STRING, *PSTRING; -#endif -typedef PVOID SAM_HANDLE, *PSAM_HANDLE; -typedef struct _OLD_LARGE_INTEGER { - ULONG LowPart; - LONG HighPart; -} OLD_LARGE_INTEGER, *POLD_LARGE_INTEGER; -typedef enum _NETLOGON_LOGON_INFO_CLASS { - NetlogonInteractiveInformation = 1,NetlogonNetworkInformation, - NetlogonServiceInformation,NetlogonGenericInformation, - NetlogonInteractiveTransitiveInformation,NetlogonNetworkTransitiveInformation, - NetlogonServiceTransitiveInformation -} NETLOGON_LOGON_INFO_CLASS; -typedef struct _CYPHER_BLOCK { - CHAR data[CYPHER_BLOCK_LENGTH]; -} CYPHER_BLOCK, *PCYPHER_BLOCK; -typedef struct _CLEAR_BLOCK { - CHAR data[CLEAR_BLOCK_LENGTH]; -} CLEAR_BLOCK, *PCLEAR_BLOCK; -typedef struct _LM_OWF_PASSWORD { - CYPHER_BLOCK data[2]; -} LM_OWF_PASSWORD, *PLM_OWF_PASSWORD; -typedef struct _USER_SESSION_KEY { - CYPHER_BLOCK data[2]; -} USER_SESSION_KEY, *PUSER_SESSION_KEY; -typedef CLEAR_BLOCK LM_CHALLENGE, *PLM_CHALLENGE; -typedef LM_OWF_PASSWORD NT_OWF_PASSWORD, *PNT_OWF_PASSWORD; -typedef LM_CHALLENGE NT_CHALLENGE, *PNT_CHALLENGE; -typedef struct _LOGON_HOURS { - USHORT UnitsPerWeek; - PUCHAR LogonHours; -} LOGON_HOURS, *PLOGON_HOURS; -typedef struct _SR_SECURITY_DESCRIPTOR { - ULONG Length; - PUCHAR SecurityDescriptor; -} SR_SECURITY_DESCRIPTOR, *PSR_SECURITY_DESCRIPTOR; -#pragma pack(push,4) -typedef struct _USER_ALL_INFORMATION { - LARGE_INTEGER LastLogon; - LARGE_INTEGER LastLogoff; - LARGE_INTEGER PasswordLastSet; - LARGE_INTEGER AccountExpires; - LARGE_INTEGER PasswordCanChange; - LARGE_INTEGER PasswordMustChange; - UNICODE_STRING UserName; - UNICODE_STRING FullName; - UNICODE_STRING HomeDirectory; - UNICODE_STRING HomeDirectoryDrive; - UNICODE_STRING ScriptPath; - UNICODE_STRING ProfilePath; - UNICODE_STRING AdminComment; - UNICODE_STRING WorkStations; - UNICODE_STRING UserComment; - UNICODE_STRING Parameters; - UNICODE_STRING LmPassword; - UNICODE_STRING NtPassword; - UNICODE_STRING PrivateData; - SR_SECURITY_DESCRIPTOR SecurityDescriptor; - ULONG UserId; - ULONG PrimaryGroupId; - ULONG UserAccountControl; - ULONG WhichFields; - LOGON_HOURS LogonHours; - USHORT BadPasswordCount; - USHORT LogonCount; - USHORT CountryCode; - USHORT CodePage; - BOOLEAN LmPasswordPresent; - BOOLEAN NtPasswordPresent; - BOOLEAN PasswordExpired; - BOOLEAN PrivateDataSensitive; -} USER_ALL_INFORMATION, *PUSER_ALL_INFORMATION; -#pragma pack(pop) -typedef struct _MSV1_0_VALIDATION_INFO { - LARGE_INTEGER LogoffTime; - LARGE_INTEGER KickoffTime; - UNICODE_STRING LogonServer; - UNICODE_STRING LogonDomainName; - USER_SESSION_KEY SessionKey; - BOOLEAN Authoritative; - ULONG UserFlags; - ULONG WhichFields; - ULONG UserId; -} MSV1_0_VALIDATION_INFO, *PMSV1_0_VALIDATION_INFO; -typedef struct _NETLOGON_LOGON_IDENTITY_INFO { - UNICODE_STRING LogonDomainName; - ULONG ParameterControl; - OLD_LARGE_INTEGER LogonId; - UNICODE_STRING UserName; - UNICODE_STRING Workstation; -} NETLOGON_LOGON_IDENTITY_INFO, *PNETLOGON_LOGON_IDENTITY_INFO; -typedef struct _NETLOGON_INTERACTIVE_INFO { - NETLOGON_LOGON_IDENTITY_INFO Identity; - LM_OWF_PASSWORD LmOwfPassword; - NT_OWF_PASSWORD NtOwfPassword; -} NETLOGON_INTERACTIVE_INFO, *PNETLOGON_INTERACTIVE_INFO; -typedef struct _NETLOGON_GENERIC_INFO { - NETLOGON_LOGON_IDENTITY_INFO Identity; - UNICODE_STRING PackageName; - ULONG DataLength; - PUCHAR LogonData; -} NETLOGON_GENERIC_INFO, *PNETLOGON_GENERIC_INFO; -typedef struct _NETLOGON_NETWORK_INFO { - NETLOGON_LOGON_IDENTITY_INFO Identity; - LM_CHALLENGE LmChallenge; - STRING NtChallengeResponse; - STRING LmChallengeResponse; -} NETLOGON_NETWORK_INFO, *PNETLOGON_NETWORK_INFO; -typedef struct _NETLOGON_SERVICE_INFO { - NETLOGON_LOGON_IDENTITY_INFO Identity; - LM_OWF_PASSWORD LmOwfPassword; - NT_OWF_PASSWORD NtOwfPassword; -} NETLOGON_SERVICE_INFO, *PNETLOGON_SERVICE_INFO; -NTSTATUS NTAPI Msv1_0SubAuthenticationRoutine(NETLOGON_LOGON_INFO_CLASS,PVOID, - ULONG,PUSER_ALL_INFORMATION,PULONG,PULONG, - PBOOLEAN,PLARGE_INTEGER,PLARGE_INTEGER); -NTSTATUS NTAPI Msv1_0SubAuthenticationFilter(NETLOGON_LOGON_INFO_CLASS,PVOID, - ULONG,PUSER_ALL_INFORMATION,PULONG,PULONG, - PBOOLEAN,PLARGE_INTEGER,PLARGE_INTEGER); -NTSTATUS NTAPI Msv1_0SubAuthenticationRoutineGeneric(PVOID,ULONG,PULONG,PVOID*); -NTSTATUS NTAPI Msv1_0SubAuthenticationRoutineEx(NETLOGON_LOGON_INFO_CLASS,PVOID, - ULONG,PUSER_ALL_INFORMATION,SAM_HANDLE, - PMSV1_0_VALIDATION_INFO,PULONG); -#ifdef __cplusplus -} -#endif -#endif /* _SUBAUTH_H */ diff --git a/winsup/w32api/include/tlhelp32.h b/winsup/w32api/include/tlhelp32.h deleted file mode 100644 index 8f4222e34..000000000 --- a/winsup/w32api/include/tlhelp32.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - tlhelp32.h - Include file for Tool help functions. - - Written by Mumit Khan - - This file is part of a free library for the Win32 API. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -*/ -#ifndef _TLHELP32_H -#define _TLHELP32_H -#ifdef __cplusplus -extern "C" { -#endif -#define HF32_DEFAULT 1 -#define HF32_SHARED 2 -#define LF32_FIXED 0x1 -#define LF32_FREE 0x2 -#define LF32_MOVEABLE 0x4 -#define MAX_MODULE_NAME32 255 -#define TH32CS_SNAPHEAPLIST 0x1 -#define TH32CS_SNAPPROCESS 0x2 -#define TH32CS_SNAPTHREAD 0x4 -#define TH32CS_SNAPMODULE 0x8 -#define TH32CS_SNAPALL (TH32CS_SNAPHEAPLIST|TH32CS_SNAPPROCESS|TH32CS_SNAPTHREAD|TH32CS_SNAPMODULE) -#define TH32CS_INHERIT 0x80000000 -typedef struct tagHEAPLIST32 { - DWORD dwSize; - DWORD th32ProcessID; - DWORD th32HeapID; - DWORD dwFlags; -} HEAPLIST32,*PHEAPLIST32,*LPHEAPLIST32; -typedef struct tagHEAPENTRY32 { - DWORD dwSize; - HANDLE hHandle; - DWORD dwAddress; - DWORD dwBlockSize; - DWORD dwFlags; - DWORD dwLockCount; - DWORD dwResvd; - DWORD th32ProcessID; - DWORD th32HeapID; -} HEAPENTRY32,*PHEAPENTRY32,*LPHEAPENTRY32; -typedef struct tagPROCESSENTRY32W { - DWORD dwSize; - DWORD cntUsage; - DWORD th32ProcessID; - DWORD th32DefaultHeapID; - DWORD th32ModuleID; - DWORD cntThreads; - DWORD th32ParentProcessID; - LONG pcPriClassBase; - DWORD dwFlags; - WCHAR szExeFile[MAX_PATH]; -} PROCESSENTRY32W,*PPROCESSENTRY32W,*LPPROCESSENTRY32W; -typedef struct tagPROCESSENTRY32 { - DWORD dwSize; - DWORD cntUsage; - DWORD th32ProcessID; - DWORD th32DefaultHeapID; - DWORD th32ModuleID; - DWORD cntThreads; - DWORD th32ParentProcessID; - LONG pcPriClassBase; - DWORD dwFlags; - CHAR szExeFile[MAX_PATH]; -} PROCESSENTRY32,*PPROCESSENTRY32,*LPPROCESSENTRY32; -typedef struct tagTHREADENTRY32 { - DWORD dwSize; - DWORD cntUsage; - DWORD th32ThreadID; - DWORD th32OwnerProcessID; - LONG tpBasePri; - LONG tpDeltaPri; - DWORD dwFlags; -} THREADENTRY32,*PTHREADENTRY32,*LPTHREADENTRY32; -typedef struct tagMODULEENTRY32W { - DWORD dwSize; - DWORD th32ModuleID; - DWORD th32ProcessID; - DWORD GlblcntUsage; - DWORD ProccntUsage; - BYTE *modBaseAddr; - DWORD modBaseSize; - HMODULE hModule; - WCHAR szModule[MAX_MODULE_NAME32 + 1]; - WCHAR szExePath[MAX_PATH]; -} MODULEENTRY32W,*PMODULEENTRY32W,*LPMODULEENTRY32W; -typedef struct tagMODULEENTRY32 { - DWORD dwSize; - DWORD th32ModuleID; - DWORD th32ProcessID; - DWORD GlblcntUsage; - DWORD ProccntUsage; - BYTE *modBaseAddr; - DWORD modBaseSize; - HMODULE hModule; - char szModule[MAX_MODULE_NAME32 + 1]; - char szExePath[MAX_PATH]; -} MODULEENTRY32,*PMODULEENTRY32,*LPMODULEENTRY32; -BOOL WINAPI Heap32First(LPHEAPENTRY32,DWORD,DWORD); -BOOL WINAPI Heap32ListFirst(HANDLE,LPHEAPLIST32); -BOOL WINAPI Heap32ListNext(HANDLE,LPHEAPLIST32); -BOOL WINAPI Heap32Next(LPHEAPENTRY32); -BOOL WINAPI Module32First(HANDLE,LPMODULEENTRY32); -BOOL WINAPI Module32FirstW(HANDLE,LPMODULEENTRY32W); -BOOL WINAPI Module32Next(HANDLE,LPMODULEENTRY32); -BOOL WINAPI Module32NextW(HANDLE,LPMODULEENTRY32W); -BOOL WINAPI Process32First(HANDLE,LPPROCESSENTRY32); -BOOL WINAPI Process32FirstW(HANDLE,LPPROCESSENTRY32W); -BOOL WINAPI Process32Next(HANDLE,LPPROCESSENTRY32); -BOOL WINAPI Process32NextW(HANDLE,LPPROCESSENTRY32W); -BOOL WINAPI Thread32First(HANDLE,LPTHREADENTRY32); -BOOL WINAPI Thread32Next(HANDLE,LPTHREADENTRY32); -BOOL WINAPI Toolhelp32ReadProcessMemory(DWORD,LPCVOID,LPVOID,DWORD,LPDWORD); -HANDLE WINAPI CreateToolhelp32Snapshot(DWORD,DWORD); -#ifdef UNICODE -#define LPMODULEENTRY32 LPMODULEENTRY32W -#define LPPROCESSENTRY32 LPPROCESSENTRY32W -#define MODULEENTRY32 MODULEENTRY32W -#define Module32First Module32FirstW -#define Module32Next Module32NextW -#define PMODULEENTRY32 PMODULEENTRY32W -#define PPROCESSENTRY32 PPROCESSENTRY32W -#define PROCESSENTRY32 PROCESSENTRY32W -#define Process32First Process32FirstW -#define Process32Next Process32NextW -#endif /* UNICODE */ -#ifdef __cplusplus -} -#endif -#endif /* _TLHELP32_H */ - diff --git a/winsup/w32api/include/unknwn.h b/winsup/w32api/include/unknwn.h deleted file mode 100644 index 48cea3bc1..000000000 --- a/winsup/w32api/include/unknwn.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef _UNKNWN_H -#define _UNKNWN_H -#include -#ifdef __cplusplus -extern "C"{ -#endif -#include -#include - -void * __RPC_USER MIDL_user_allocate(size_t); -void __RPC_USER MIDL_user_free(void*); -EXTERN_C const IID IID_IUnknown; -EXTERN_C const IID IID_IClassFactory; -#ifndef __IUnknown_INTERFACE_DEFINED__ -#define __IUnknown_INTERFACE_DEFINED__ -#undef INTERFACE -#define INTERFACE IUnknown -DECLARE_INTERFACE(IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -}; -typedef IUnknown *LPUNKNOWN; -#endif -#ifndef __IClassFactory_INTERFACE_DEFINED__ -#define __IClassFactory_INTERFACE_DEFINED__ -#undef INTERFACE -#define INTERFACE IClassFactory -DECLARE_INTERFACE_(IClassFactory,IUnknown) -{ - STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE; - STDMETHOD(LockServer)(THIS_ BOOL) PURE; -}; -typedef IClassFactory *LPCLASSFACTORY; -#endif -HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(IUnknown*,REFIID,void**); -void __RPC_STUB IUnknown_QueryInterface_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); -ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(IUnknown*); -void __RPC_STUB IUnknown_AddRef_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); -ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(IUnknown*); -void __RPC_STUB IUnknown_Release_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IClassFactory_RemoteCreateInstance_Proxy(IClassFactory*,REFIID,IUnknown**); -void __RPC_STUB IClassFactory_RemoteCreateInstance_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); -HRESULT __stdcall IClassFactory_RemoteLockServer_Proxy(IClassFactory*,BOOL); -void __RPC_STUB IClassFactory_RemoteLockServer_Stub(LPRPCSTUBBUFFER,LPRPCCHANNELBUFFER,PRPC_MESSAGE,PDWORD); -HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Proxy(IClassFactory*,IUnknown*,REFIID,void**); -HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_Stub(IClassFactory*,REFIID,IUnknown**); -HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Proxy(IClassFactory*,BOOL); -HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_Stub(IClassFactory*,BOOL); -#ifdef COBJMACROS -#define IUnknown_QueryInterface(T,r,O) (T)->lpVtbl->QueryInterface(T,r,O) -#define IUnknown_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IUnknown_Release(T) (T)->lpVtbl->Release(T) -#define IClassFactory_QueryInterface(T,r,O) (T)->lpVtbl->QueryInterface(T,r,O) -#define IClassFactory_AddRef(T) (T)->lpVtbl->AddRef(T) -#define IClassFactory_Release(T) (T)->lpVtbl->Release(T) -#define IClassFactory_CreateInstance(T,p,r,O) (T)->lpVtbl->CreateInstance(T,p,r,O) -#define IClassFactory_LockServer(T,f) (T)->lpVtbl->LockServer(T,f) -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/userenv.h b/winsup/w32api/include/userenv.h deleted file mode 100644 index a073b7923..000000000 --- a/winsup/w32api/include/userenv.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef _USERENV_H -#define _USERENV_H -#ifdef __cplusplus -extern "C" { -#endif -#define PI_NOUI (1) -#define PI_APPLYPOLICY (2) -typedef struct _PROFILEINFOA { - DWORD dwSize; - DWORD dwFlags; - LPSTR lpUserName; - LPSTR lpProfilePath; - LPSTR lpDefaultPath; - LPSTR lpServerName; - LPSTR lpPolicyPath; - HANDLE hProfile; -} PROFILEINFOA, *LPPROFILEINFOA; -typedef struct _PROFILEINFOW { - DWORD dwSize; - DWORD dwFlags; - LPWSTR lpUserName; - LPWSTR lpProfilePath; - LPWSTR lpDefaultPath; - LPWSTR lpServerName; - LPWSTR lpPolicyPath; - HANDLE hProfile; -} PROFILEINFOW, *LPPROFILEINFOW; -BOOL WINAPI LoadUserProfileA(HANDLE,LPPROFILEINFOA); -BOOL WINAPI LoadUserProfileW(HANDLE,LPPROFILEINFOW); -BOOL WINAPI UnloadUserProfile(HANDLE,HANDLE); -BOOL WINAPI GetProfilesDirectoryA(LPSTR,LPDWORD); -BOOL WINAPI GetProfilesDirectoryW(LPWSTR,LPDWORD); -BOOL WINAPI GetUserProfileDirectoryA(HANDLE,LPSTR,LPDWORD); -BOOL WINAPI GetUserProfileDirectoryW(HANDLE,LPWSTR,LPDWORD); -BOOL WINAPI CreateEnvironmentBlock(LPVOID*,HANDLE,BOOL); -BOOL WINAPI DestroyEnvironmentBlock(LPVOID); -#ifdef UNICODE -typedef PROFILEINFOW PROFILEINFO; -typedef LPPROFILEINFOW LPPROFILEINFO; -#define LoadUserProfile LoadUserProfileW -#define GetProfilesDirectory GetProfilesDirectoryW -#define GetUserProfileDirectory GetUserProfileDirectoryW -#else -typedef PROFILEINFOA PROFILEINFO; -typedef LPPROFILEINFOA LPPROFILEINFO; -#define LoadUserProfile LoadUserProfileA -#define GetProfilesDirectory GetProfilesDirectoryA -#define GetUserProfileDirectory GetUserProfileDirectoryA -#endif -#ifdef __cplusplus -} -#endif -#endif /* _USERENV_H */ diff --git a/winsup/w32api/include/w32api.h b/winsup/w32api/include/w32api.h deleted file mode 100644 index 8add46edf..000000000 --- a/winsup/w32api/include/w32api.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _W32API_H_ -#define _W32API_H_ - -#define __W32API_VERSION 1.3 -#define __W32API_MAJOR_VERSION 1 -#define __W32API_MINOR_VERSION 3 - -#endif /* ndef _W32API_H_ */ diff --git a/winsup/w32api/include/winbase.h b/winsup/w32api/include/winbase.h deleted file mode 100644 index ebc26873b..000000000 --- a/winsup/w32api/include/winbase.h +++ /dev/null @@ -1,1848 +0,0 @@ -#ifndef _WINBASE_H -#define _WINBASE_H -#define WINBASEAPI DECLSPEC_IMPORT -#ifdef __cplusplus -extern "C" { -#endif - -#define SP_SERIALCOMM 1 -#define PST_UNSPECIFIED 0 -#define PST_RS232 1 -#define PST_PARALLELPORT 2 -#define PST_RS422 3 -#define PST_RS423 4 -#define PST_RS449 5 -#define PST_MODEM 6 -#define PST_FAX 0x21 -#define PST_SCANNER 0x22 -#define PST_NETWORK_BRIDGE 0x100 -#define PST_LAT 0x101 -#define PST_TCPIP_TELNET 0x102 -#define PST_X25 0x103 -#define BAUD_075 1 -#define BAUD_110 2 -#define BAUD_134_5 4 -#define BAUD_150 8 -#define BAUD_300 16 -#define BAUD_600 32 -#define BAUD_1200 64 -#define BAUD_1800 128 -#define BAUD_2400 256 -#define BAUD_4800 512 -#define BAUD_7200 1024 -#define BAUD_9600 2048 -#define BAUD_14400 4096 -#define BAUD_19200 8192 -#define BAUD_38400 16384 -#define BAUD_56K 32768 -#define BAUD_128K 65536 -#define BAUD_115200 131072 -#define BAUD_57600 262144 -#define BAUD_USER 0x10000000 -#define PCF_DTRDSR 1 -#define PCF_RTSCTS 2 -#define PCF_RLSD 4 -#define PCF_PARITY_CHECK 8 -#define PCF_XONXOFF 16 -#define PCF_SETXCHAR 32 -#define PCF_TOTALTIMEOUTS 64 -#define PCF_INTTIMEOUTS 128 -#define PCF_SPECIALCHARS 256 -#define PCF_16BITMODE 512 -#define SP_PARITY 1 -#define SP_BAUD 2 -#define SP_DATABITS 4 -#define SP_STOPBITS 8 -#define SP_HANDSHAKING 16 -#define SP_PARITY_CHECK 32 -#define SP_RLSD 64 -#define DATABITS_5 1 -#define DATABITS_6 2 -#define DATABITS_7 4 -#define DATABITS_8 8 -#define DATABITS_16 16 -#define DATABITS_16X 32 -#define STOPBITS_10 1 -#define STOPBITS_15 2 -#define STOPBITS_20 4 -#define PARITY_NONE 256 -#define PARITY_ODD 512 -#define PARITY_EVEN 1024 -#define PARITY_MARK 2048 -#define PARITY_SPACE 4096 -#define EXCEPTION_DEBUG_EVENT 1 -#define CREATE_THREAD_DEBUG_EVENT 2 -#define CREATE_PROCESS_DEBUG_EVENT 3 -#define EXIT_THREAD_DEBUG_EVENT 4 -#define EXIT_PROCESS_DEBUG_EVENT 5 -#define LOAD_DLL_DEBUG_EVENT 6 -#define UNLOAD_DLL_DEBUG_EVENT 7 -#define OUTPUT_DEBUG_STRING_EVENT 8 -#define RIP_EVENT 9 -#define HFILE_ERROR ((HFILE)-1) -#define FILE_BEGIN 0 -#define FILE_CURRENT 1 -#define FILE_END 2 -#define INVALID_SET_FILE_POINTER ((DWORD)-1) -#define OF_READ 0 -#define OF_READWRITE 2 -#define OF_WRITE 1 -#define OF_SHARE_COMPAT 0 -#define OF_SHARE_DENY_NONE 64 -#define OF_SHARE_DENY_READ 48 -#define OF_SHARE_DENY_WRITE 32 -#define OF_SHARE_EXCLUSIVE 16 -#define OF_CANCEL 2048 -#define OF_CREATE 4096 -#define OF_DELETE 512 -#define OF_EXIST 16384 -#define OF_PARSE 256 -#define OF_PROMPT 8192 -#define OF_REOPEN 32768 -#define OF_VERIFY 1024 -#define NMPWAIT_NOWAIT 1 -#define NMPWAIT_WAIT_FOREVER (-1) -#define NMPWAIT_USE_DEFAULT_WAIT 0 -#define CE_BREAK 16 -#define CE_DNS 2048 -#define CE_FRAME 8 -#define CE_IOE 1024 -#define CE_MODE 32768 -#define CE_OOP 4096 -#define CE_OVERRUN 2 -#define CE_PTO 512 -#define CE_RXOVER 1 -#define CE_RXPARITY 4 -#define CE_TXFULL 256 -#define PROGRESS_CONTINUE 0 -#define PROGRESS_CANCEL 1 -#define PROGRESS_STOP 2 -#define PROGRESS_QUIET 3 -#define CALLBACK_CHUNK_FINISHED 0 -#define CALLBACK_STREAM_SWITCH 1 -#define COPY_FILE_FAIL_IF_EXISTS 1 -#define COPY_FILE_RESTARTABLE 2 -#define OFS_MAXPATHNAME 128 -#define DUPLICATE_CLOSE_SOURCE 1 -#define DUPLICATE_SAME_ACCESS 2 -#define FILE_MAP_ALL_ACCESS 0xf001f -#define FILE_MAP_READ 4 -#define FILE_MAP_WRITE 2 -#define FILE_MAP_COPY 1 -#define MUTEX_ALL_ACCESS 0x1f0001 -#define MUTEX_MODIFY_STATE 1 -#define SEMAPHORE_ALL_ACCESS 0x1f0003 -#define SEMAPHORE_MODIFY_STATE 2 -#define EVENT_ALL_ACCESS 0x1f0003 -#define EVENT_MODIFY_STATE 2 -#define PIPE_ACCESS_DUPLEX 3 -#define PIPE_ACCESS_INBOUND 1 -#define PIPE_ACCESS_OUTBOUND 2 -#define PIPE_TYPE_BYTE 0 -#define PIPE_TYPE_MESSAGE 4 -#define PIPE_READMODE_BYTE 0 -#define PIPE_READMODE_MESSAGE 2 -#define PIPE_WAIT 0 -#define PIPE_NOWAIT 1 -#define PIPE_CLIENT_END 0 -#define PIPE_SERVER_END 1 -#define PIPE_UNLIMITED_INSTANCES 255 -#define CREATE_DEFAULT_ERROR_MODE 67108864 -#define DEBUG_PROCESS 1 -#define DEBUG_ONLY_THIS_PROCESS 2 -#define CREATE_SUSPENDED 4 -#define DETACHED_PROCESS 8 -#define CREATE_NEW_CONSOLE 16 -#define NORMAL_PRIORITY_CLASS 32 -#define IDLE_PRIORITY_CLASS 64 -#define HIGH_PRIORITY_CLASS 128 -#define REALTIME_PRIORITY_CLASS 256 -#define CREATE_NEW_PROCESS_GROUP 512 -#define CREATE_UNICODE_ENVIRONMENT 1024 -#define CREATE_SEPARATE_WOW_VDM 2048 -#define CREATE_SHARED_WOW_VDM 4096 -#define CREATE_FORCEDOS 8192 -#define CREATE_NO_WINDOW 0x8000000 -#define CONSOLE_TEXTMODE_BUFFER 1 -#define CREATE_NEW 1 -#define CREATE_ALWAYS 2 -#define OPEN_EXISTING 3 -#define OPEN_ALWAYS 4 -#define TRUNCATE_EXISTING 5 -#define FILE_FLAG_WRITE_THROUGH 0x80000000 -#define FILE_FLAG_OVERLAPPED 1073741824 -#define FILE_FLAG_NO_BUFFERING 536870912 -#define FILE_FLAG_RANDOM_ACCESS 268435456 -#define FILE_FLAG_SEQUENTIAL_SCAN 134217728 -#define FILE_FLAG_DELETE_ON_CLOSE 67108864 -#define FILE_FLAG_BACKUP_SEMANTICS 33554432 -#define FILE_FLAG_POSIX_SEMANTICS 16777216 -#define FILE_FLAG_OPEN_REPARSE_POINT 2097152 -#define FILE_FLAG_OPEN_NO_RECALL 1048576 -#define CLRDTR 6 -#define CLRRTS 4 -#define SETDTR 5 -#define SETRTS 3 -#define SETXOFF 1 -#define SETXON 2 -#define SETBREAK 8 -#define CLRBREAK 9 -#define STILL_ACTIVE 0x103 -#define FIND_FIRST_EX_CASE_SENSITIVE 1 -#define SCS_32BIT_BINARY 0 -#define SCS_DOS_BINARY 1 -#define SCS_OS216_BINARY 5 -#define SCS_PIF_BINARY 3 -#define SCS_POSIX_BINARY 4 -#define SCS_WOW_BINARY 2 -#define MAX_COMPUTERNAME_LENGTH 15 -#define HW_PROFILE_GUIDLEN 39 -#define MAX_PROFILE_LEN 80 -#define DOCKINFO_UNDOCKED 1 -#define DOCKINFO_DOCKED 2 -#define DOCKINFO_USER_SUPPLIED 4 -#define DOCKINFO_USER_UNDOCKED (DOCKINFO_USER_SUPPLIED|DOCKINFO_UNDOCKED) -#define DOCKINFO_USER_DOCKED (DOCKINFO_USER_SUPPLIED|DOCKINFO_DOCKED) -#define DRIVE_REMOVABLE 2 -#define DRIVE_FIXED 3 -#define DRIVE_REMOTE 4 -#define DRIVE_CDROM 5 -#define DRIVE_RAMDISK 6 -#define DRIVE_UNKNOWN 0 -#define DRIVE_NO_ROOT_DIR 1 -#define FILE_TYPE_UNKNOWN 0 -#define FILE_TYPE_DISK 1 -#define FILE_TYPE_CHAR 2 -#define FILE_TYPE_PIPE 3 -#define FILE_TYPE_REMOTE 0x8000 -#define HANDLE_FLAG_INHERIT 1 -#define HANDLE_FLAG_PROTECT_FROM_CLOSE 2 -#define STD_INPUT_HANDLE (DWORD)(0xfffffff6) -#define STD_OUTPUT_HANDLE (DWORD)(0xfffffff5) -#define STD_ERROR_HANDLE (DWORD)(0xfffffff4) -#define INVALID_HANDLE_VALUE (HANDLE)(-1) -#define GET_TAPE_MEDIA_INFORMATION 0 -#define GET_TAPE_DRIVE_INFORMATION 1 -#define SET_TAPE_MEDIA_INFORMATION 0 -#define SET_TAPE_DRIVE_INFORMATION 1 -#define THREAD_PRIORITY_ABOVE_NORMAL 1 -#define THREAD_PRIORITY_BELOW_NORMAL (-1) -#define THREAD_PRIORITY_HIGHEST 2 -#define THREAD_PRIORITY_IDLE (-15) -#define THREAD_PRIORITY_LOWEST (-2) -#define THREAD_PRIORITY_NORMAL 0 -#define THREAD_PRIORITY_TIME_CRITICAL 15 -#define THREAD_PRIORITY_ERROR_RETURN 2147483647 -#define TIME_ZONE_ID_UNKNOWN 0 -#define TIME_ZONE_ID_STANDARD 1 -#define TIME_ZONE_ID_DAYLIGHT 2 -#define TIME_ZONE_ID_INVALID 0xFFFFFFFF -#define FS_CASE_IS_PRESERVED 2 -#define FS_CASE_SENSITIVE 1 -#define FS_UNICODE_STORED_ON_DISK 4 -#define FS_PERSISTENT_ACLS 8 -#define FS_FILE_COMPRESSION 16 -#define FS_VOL_IS_COMPRESSED 32768 -#define GMEM_FIXED 0 -#define GMEM_MOVEABLE 2 -#define GMEM_MODIFY 128 -#define GPTR 64 -#define GHND 66 -#define GMEM_DDESHARE 8192 -#define GMEM_DISCARDABLE 256 -#define GMEM_LOWER 4096 -#define GMEM_NOCOMPACT 16 -#define GMEM_NODISCARD 32 -#define GMEM_NOT_BANKED 4096 -#define GMEM_NOTIFY 16384 -#define GMEM_SHARE 8192 -#define GMEM_ZEROINIT 64 -#define GMEM_DISCARDED 16384 -#define GMEM_INVALID_HANDLE 32768 -#define GMEM_LOCKCOUNT 255 -#define STATUS_WAIT_0 0 -#define STATUS_ABANDONED_WAIT_0 0x80 -#define STATUS_USER_APC 0xC0 -#define STATUS_TIMEOUT 0x102 -#define STATUS_PENDING 0x103 -#define STATUS_SEGMENT_NOTIFICATION 0x40000005 -#define STATUS_GUARD_PAGE_VIOLATION 0x80000001 -#define STATUS_DATATYPE_MISALIGNMENT 0x80000002 -#define STATUS_BREAKPOINT 0x80000003 -#define STATUS_SINGLE_STEP 0x80000004 -#define STATUS_ACCESS_VIOLATION 0xC0000005 -#define STATUS_IN_PAGE_ERROR 0xC0000006 -#define STATUS_INVALID_HANDLE 0xC0000008L -#define STATUS_NO_MEMORY 0xC0000017 -#define STATUS_ILLEGAL_INSTRUCTION 0xC000001D -#define STATUS_NONCONTINUABLE_EXCEPTION 0xC0000025 -#define STATUS_INVALID_DISPOSITION 0xC0000026 -#define STATUS_ARRAY_BOUNDS_EXCEEDED 0xC000008C -#define STATUS_FLOAT_DENORMAL_OPERAND 0xC000008D -#define STATUS_FLOAT_DIVIDE_BY_ZERO 0xC000008E -#define STATUS_FLOAT_INEXACT_RESULT 0xC000008F -#define STATUS_FLOAT_INVALID_OPERATION 0xC0000090 -#define STATUS_FLOAT_OVERFLOW 0xC0000091 -#define STATUS_FLOAT_STACK_CHECK 0xC0000092 -#define STATUS_FLOAT_UNDERFLOW 0xC0000093 -#define STATUS_INTEGER_DIVIDE_BY_ZERO 0xC0000094 -#define STATUS_INTEGER_OVERFLOW 0xC0000095 -#define STATUS_PRIVILEGED_INSTRUCTION 0xC0000096 -#define STATUS_STACK_OVERFLOW 0xC00000FD -#define STATUS_CONTROL_C_EXIT 0xC000013A -#define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION -#define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT -#define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT -#define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP -#define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED -#define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND -#define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO -#define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT -#define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION -#define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW -#define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK -#define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW -#define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO -#define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW -#define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION -#define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR -#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION -#define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION -#define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW -#define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION -#define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION -#define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE -#define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT -#define PROCESS_HEAP_REGION 1 -#define PROCESS_HEAP_UNCOMMITTED_RANGE 2 -#define PROCESS_HEAP_ENTRY_BUSY 4 -#define PROCESS_HEAP_ENTRY_MOVEABLE 16 -#define PROCESS_HEAP_ENTRY_DDESHARE 32 -#define DONT_RESOLVE_DLL_REFERENCES 1 -#define LOAD_LIBRARY_AS_DATAFILE 2 -#define LOAD_WITH_ALTERED_SEARCH_PATH 8 -#define LMEM_FIXED 0 -#define LMEM_MOVEABLE 2 -#define LMEM_NONZEROLHND 2 -#define LMEM_NONZEROLPTR 0 -#define LMEM_DISCARDABLE 3840 -#define LMEM_NOCOMPACT 16 -#define LMEM_NODISCARD 32 -#define LMEM_ZEROINIT 64 -#define LMEM_DISCARDED 16384 -#define LMEM_MODIFY 128 -#define LMEM_INVALID_HANDLE 32768 -#define LMEM_LOCKCOUNT 255 -#define LPTR 64 -#define LHND 66 -#define NONZEROLHND 2 -#define NONZEROLPTR 0 -#define LOCKFILE_FAIL_IMMEDIATELY 1 -#define LOCKFILE_EXCLUSIVE_LOCK 2 -#define LOGON32_PROVIDER_DEFAULT 0 -#define LOGON32_PROVIDER_WINNT35 1 -#define LOGON32_LOGON_INTERACTIVE 2 -#define LOGON32_LOGON_BATCH 4 -#define LOGON32_LOGON_SERVICE 5 -#define MOVEFILE_REPLACE_EXISTING 1 -#define MOVEFILE_COPY_ALLOWED 2 -#define MOVEFILE_DELAY_UNTIL_REBOOT 4 -#define MOVEFILE_WRITE_THROUGH 8 -#define MAXIMUM_WAIT_OBJECTS 64 -#define MAXIMUM_SUSPEND_COUNT 0x7F -#define WAIT_OBJECT_0 0 -#define WAIT_ABANDONED_0 128 -#define WAIT_TIMEOUT 0x102 -#define WAIT_IO_COMPLETION 0xC0 -#define WAIT_ABANDONED 128 -#define WAIT_FAILED 0xFFFFFFFF -#define PURGE_TXABORT 1 -#define PURGE_RXABORT 2 -#define PURGE_TXCLEAR 4 -#define PURGE_RXCLEAR 8 -#define EVENTLOG_FORWARDS_READ 4 -#define EVENTLOG_BACKWARDS_READ 8 -#define EVENTLOG_SEEK_READ 2 -#define EVENTLOG_SEQUENTIAL_READ 1 -#define EVENTLOG_ERROR_TYPE 1 -#define EVENTLOG_WARNING_TYPE 2 -#define EVENTLOG_INFORMATION_TYPE 4 -#define EVENTLOG_AUDIT_SUCCESS 8 -#define EVENTLOG_AUDIT_FAILURE 16 -#define FORMAT_MESSAGE_ALLOCATE_BUFFER 256 -#define FORMAT_MESSAGE_IGNORE_INSERTS 512 -#define FORMAT_MESSAGE_FROM_STRING 1024 -#define FORMAT_MESSAGE_FROM_HMODULE 2048 -#define FORMAT_MESSAGE_FROM_SYSTEM 4096 -#define FORMAT_MESSAGE_ARGUMENT_ARRAY 8192 -#define FORMAT_MESSAGE_MAX_WIDTH_MASK 255 -#define EV_BREAK 64 -#define EV_CTS 8 -#define EV_DSR 16 -#define EV_ERR 128 -#define EV_EVENT1 2048 -#define EV_EVENT2 4096 -#define EV_PERR 512 -#define EV_RING 256 -#define EV_RLSD 32 -#define EV_RX80FULL 1024 -#define EV_RXCHAR 1 -#define EV_RXFLAG 2 -#define EV_TXEMPTY 4 -#define SEM_FAILCRITICALERRORS 1 -#define SEM_NOALIGNMENTFAULTEXCEPT 4 -#define SEM_NOGPFAULTERRORBOX 2 -#define SEM_NOOPENFILEERRORBOX 32768 -#define SLE_ERROR 1 -#define SLE_MINORERROR 2 -#define SLE_WARNING 3 -#define SHUTDOWN_NORETRY 1 -#define EXCEPTION_EXECUTE_HANDLER 1 -#define EXCEPTION_CONTINUE_EXECUTION (-1) -#define EXCEPTION_CONTINUE_SEARCH 0 -#define MAXINTATOM 0xC000 -#define INVALID_ATOM ((ATOM)0) -#define IGNORE 0 -#define INFINITE 0xFFFFFFFF -#define NOPARITY 0 -#define ODDPARITY 1 -#define EVENPARITY 2 -#define MARKPARITY 3 -#define SPACEPARITY 4 -#define ONESTOPBIT 0 -#define ONE5STOPBITS 1 -#define TWOSTOPBITS 2 -#define CBR_110 110 -#define CBR_300 300 -#define CBR_600 600 -#define CBR_1200 1200 -#define CBR_2400 2400 -#define CBR_4800 4800 -#define CBR_9600 9600 -#define CBR_14400 14400 -#define CBR_19200 19200 -#define CBR_38400 38400 -#define CBR_56000 56000 -#define CBR_57600 57600 -#define CBR_115200 115200 -#define CBR_128000 128000 -#define CBR_256000 256000 -#define BACKUP_INVALID 0 -#define BACKUP_DATA 1 -#define BACKUP_EA_DATA 2 -#define BACKUP_SECURITY_DATA 3 -#define BACKUP_ALTERNATE_DATA 4 -#define BACKUP_LINK 5 -#define BACKUP_PROPERTY_DATA 6 -#define BACKUP_OBJECT_ID 7 -#define BACKUP_REPARSE_DATA 8 -#define BACKUP_SPARSE_BLOCK 9 -#define STREAM_NORMAL_ATTRIBUTE 0 -#define STREAM_MODIFIED_WHEN_READ 1 -#define STREAM_CONTAINS_SECURITY 2 -#define STREAM_CONTAINS_PROPERTIES 4 -#define STARTF_USESHOWWINDOW 1 -#define STARTF_USESIZE 2 -#define STARTF_USEPOSITION 4 -#define STARTF_USECOUNTCHARS 8 -#define STARTF_USEFILLATTRIBUTE 16 -#define STARTF_RUNFULLSCREEN 32 -#define STARTF_FORCEONFEEDBACK 64 -#define STARTF_FORCEOFFFEEDBACK 128 -#define STARTF_USESTDHANDLES 256 -#define STARTF_USEHOTKEY 512 -#define TC_NORMAL 0 -#define TC_HARDERR 1 -#define TC_GP_TRAP 2 -#define TC_SIGNAL 3 -#define AC_LINE_OFFLINE 0 -#define AC_LINE_ONLINE 1 -#define AC_LINE_BACKUP_POWER 2 -#define AC_LINE_UNKNOWN 255 -#define BATTERY_FLAG_HIGH 1 -#define BATTERY_FLAG_LOW 2 -#define BATTERY_FLAG_CRITICAL 4 -#define BATTERY_FLAG_CHARGING 8 -#define BATTERY_FLAG_NO_BATTERY 128 -#define BATTERY_FLAG_UNKNOWN 255 -#define BATTERY_PERCENTAGE_UNKNOWN 255 -#define BATTERY_LIFE_UNKNOWN 0xFFFFFFFF -#define DDD_RAW_TARGET_PATH 1 -#define DDD_REMOVE_DEFINITION 2 -#define DDD_EXACT_MATCH_ON_REMOVE 4 -#define HINSTANCE_ERROR 32 -#define MS_CTS_ON 16 -#define MS_DSR_ON 32 -#define MS_RING_ON 64 -#define MS_RLSD_ON 128 -#define PROFILE_USER 0x10000000 -#define PROFILE_KERNEL 0x20000000 -#define PROFILE_SERVER 0x40000000 -#define DTR_CONTROL_DISABLE 0 -#define DTR_CONTROL_ENABLE 1 -#define DTR_CONTROL_HANDSHAKE 2 -#define RTS_CONTROL_DISABLE 0 -#define RTS_CONTROL_ENABLE 1 -#define RTS_CONTROL_HANDSHAKE 2 -#define RTS_CONTROL_TOGGLE 3 -#define SECURITY_ANONYMOUS (SecurityAnonymous<<16) -#define SECURITY_IDENTIFICATION (SecurityIdentification<<16) -#define SECURITY_IMPERSONATION (SecurityImpersonation<<16) -#define SECURITY_DELEGATION (SecurityDelegation<<16) -#define SECURITY_CONTEXT_TRACKING 0x40000 -#define SECURITY_EFFECTIVE_ONLY 0x80000 -#define SECURITY_SQOS_PRESENT 0x100000 -#define SECURITY_VALID_SQOS_FLAGS 0x1F0000 -#define INVALID_FILE_SIZE 0xFFFFFFFF -#define TLS_OUT_OF_INDEXES (DWORD)0xFFFFFFFF - -#ifndef RC_INVOKED -typedef struct _FILETIME { - DWORD dwLowDateTime; - DWORD dwHighDateTime; -} FILETIME,*PFILETIME,*LPFILETIME; -typedef struct _BY_HANDLE_FILE_INFORMATION { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD dwVolumeSerialNumber; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD nNumberOfLinks; - DWORD nFileIndexHigh; - DWORD nFileIndexLow; -} BY_HANDLE_FILE_INFORMATION,*LPBY_HANDLE_FILE_INFORMATION; -typedef struct _DCB { - DWORD DCBlength; - DWORD BaudRate; - DWORD fBinary:1; - DWORD fParity:1; - DWORD fOutxCtsFlow:1; - DWORD fOutxDsrFlow:1; - DWORD fDtrControl:2; - DWORD fDsrSensitivity:1; - DWORD fTXContinueOnXoff:1; - DWORD fOutX:1; - DWORD fInX:1; - DWORD fErrorChar:1; - DWORD fNull:1; - DWORD fRtsControl:2; - DWORD fAbortOnError:1; - DWORD fDummy2:17; - WORD wReserved; - WORD XonLim; - WORD XoffLim; - BYTE ByteSize; - BYTE Parity; - BYTE StopBits; - char XonChar; - char XoffChar; - char ErrorChar; - char EofChar; - char EvtChar; - WORD wReserved1; -} DCB,*LPDCB; -typedef struct _COMM_CONFIG { - DWORD dwSize; - WORD wVersion; - WORD wReserved; - DCB dcb; - DWORD dwProviderSubType; - DWORD dwProviderOffset; - DWORD dwProviderSize; - WCHAR wcProviderData[1]; -} COMMCONFIG,*LPCOMMCONFIG; -typedef struct _COMMPROP { - WORD wPacketLength; - WORD wPacketVersion; - DWORD dwServiceMask; - DWORD dwReserved1; - DWORD dwMaxTxQueue; - DWORD dwMaxRxQueue; - DWORD dwMaxBaud; - DWORD dwProvSubType; - DWORD dwProvCapabilities; - DWORD dwSettableParams; - DWORD dwSettableBaud; - WORD wSettableData; - WORD wSettableStopParity; - DWORD dwCurrentTxQueue; - DWORD dwCurrentRxQueue; - DWORD dwProvSpec1; - DWORD dwProvSpec2; - WCHAR wcProvChar[1]; -} COMMPROP,*LPCOMMPROP; -typedef struct _COMMTIMEOUTS { - DWORD ReadIntervalTimeout; - DWORD ReadTotalTimeoutMultiplier; - DWORD ReadTotalTimeoutConstant; - DWORD WriteTotalTimeoutMultiplier; - DWORD WriteTotalTimeoutConstant; -} COMMTIMEOUTS,*LPCOMMTIMEOUTS; -typedef struct _COMSTAT { - DWORD fCtsHold:1; - DWORD fDsrHold:1; - DWORD fRlsdHold:1; - DWORD fXoffHold:1; - DWORD fXoffSent:1; - DWORD fEof:1; - DWORD fTxim:1; - DWORD fReserved:25; - DWORD cbInQue; - DWORD cbOutQue; -} COMSTAT,*LPCOMSTAT; -typedef DWORD (WINAPI *LPTHREAD_START_ROUTINE)(LPVOID); -typedef struct _CREATE_PROCESS_DEBUG_INFO { - HANDLE hFile; - HANDLE hProcess; - HANDLE hThread; - LPVOID lpBaseOfImage; - DWORD dwDebugInfoFileOffset; - DWORD nDebugInfoSize; - LPVOID lpThreadLocalBase; - LPTHREAD_START_ROUTINE lpStartAddress; - LPVOID lpImageName; - WORD fUnicode; -} CREATE_PROCESS_DEBUG_INFO,*LPCREATE_PROCESS_DEBUG_INFO; -typedef struct _CREATE_THREAD_DEBUG_INFO { - HANDLE hThread; - LPVOID lpThreadLocalBase; - LPTHREAD_START_ROUTINE lpStartAddress; -} CREATE_THREAD_DEBUG_INFO,*LPCREATE_THREAD_DEBUG_INFO; -typedef struct _EXCEPTION_DEBUG_INFO { - EXCEPTION_RECORD ExceptionRecord; - DWORD dwFirstChance; -} EXCEPTION_DEBUG_INFO,*LPEXCEPTION_DEBUG_INFO; -typedef struct _EXIT_THREAD_DEBUG_INFO { - DWORD dwExitCode; -} EXIT_THREAD_DEBUG_INFO,*LPEXIT_THREAD_DEBUG_INFO; -typedef struct _EXIT_PROCESS_DEBUG_INFO { - DWORD dwExitCode; -} EXIT_PROCESS_DEBUG_INFO,*LPEXIT_PROCESS_DEBUG_INFO; -typedef struct _LOAD_DLL_DEBUG_INFO { - HANDLE hFile; - LPVOID lpBaseOfDll; - DWORD dwDebugInfoFileOffset; - DWORD nDebugInfoSize; - LPVOID lpImageName; - WORD fUnicode; -} LOAD_DLL_DEBUG_INFO,*LPLOAD_DLL_DEBUG_INFO; -typedef struct _UNLOAD_DLL_DEBUG_INFO { - LPVOID lpBaseOfDll; -} UNLOAD_DLL_DEBUG_INFO,*LPUNLOAD_DLL_DEBUG_INFO; -typedef struct _OUTPUT_DEBUG_STRING_INFO { - LPSTR lpDebugStringData; - WORD fUnicode; - WORD nDebugStringLength; -} OUTPUT_DEBUG_STRING_INFO,*LPOUTPUT_DEBUG_STRING_INFO; -typedef struct _RIP_INFO { - DWORD dwError; - DWORD dwType; -} RIP_INFO,*LPRIP_INFO; -typedef struct _DEBUG_EVENT { - DWORD dwDebugEventCode; - DWORD dwProcessId; - DWORD dwThreadId; - union { - EXCEPTION_DEBUG_INFO Exception; - CREATE_THREAD_DEBUG_INFO CreateThread; - CREATE_PROCESS_DEBUG_INFO CreateProcessInfo; - EXIT_THREAD_DEBUG_INFO ExitThread; - EXIT_PROCESS_DEBUG_INFO ExitProcess; - LOAD_DLL_DEBUG_INFO LoadDll; - UNLOAD_DLL_DEBUG_INFO UnloadDll; - OUTPUT_DEBUG_STRING_INFO DebugString; - RIP_INFO RipInfo; - } u; -} DEBUG_EVENT,*LPDEBUG_EVENT; -typedef struct _OVERLAPPED { - DWORD Internal; - DWORD InternalHigh; - DWORD Offset; - DWORD OffsetHigh; - HANDLE hEvent; -} OVERLAPPED,*POVERLAPPED,*LPOVERLAPPED; -typedef struct _STARTUPINFOA { - DWORD cb; - LPSTR lpReserved; - LPSTR lpDesktop; - LPSTR lpTitle; - DWORD dwX; - DWORD dwY; - DWORD dwXSize; - DWORD dwYSize; - DWORD dwXCountChars; - DWORD dwYCountChars; - DWORD dwFillAttribute; - DWORD dwFlags; - WORD wShowWindow; - WORD cbReserved2; - PBYTE lpReserved2; - HANDLE hStdInput; - HANDLE hStdOutput; - HANDLE hStdError; -} STARTUPINFOA,*LPSTARTUPINFOA; -typedef struct _STARTUPINFOW { - DWORD cb; - LPWSTR lpReserved; - LPWSTR lpDesktop; - LPWSTR lpTitle; - DWORD dwX; - DWORD dwY; - DWORD dwXSize; - DWORD dwYSize; - DWORD dwXCountChars; - DWORD dwYCountChars; - DWORD dwFillAttribute; - DWORD dwFlags; - WORD wShowWindow; - WORD cbReserved2; - PBYTE lpReserved2; - HANDLE hStdInput; - HANDLE hStdOutput; - HANDLE hStdError; -} STARTUPINFOW,*LPSTARTUPINFOW; -typedef struct _PROCESS_INFORMATION { - HANDLE hProcess; - HANDLE hThread; - DWORD dwProcessId; - DWORD dwThreadId; -} PROCESS_INFORMATION,*LPPROCESS_INFORMATION; -typedef struct _CRITICAL_SECTION_DEBUG { - WORD Type; - WORD CreatorBackTraceIndex; - struct _CRITICAL_SECTION *CriticalSection; - LIST_ENTRY ProcessLocksList; - DWORD EntryCount; - DWORD ContentionCount; - DWORD Spare [2]; -} CRITICAL_SECTION_DEBUG,*PCRITICAL_SECTION_DEBUG; -typedef struct _CRITICAL_SECTION { - PCRITICAL_SECTION_DEBUG DebugInfo; - LONG LockCount; - LONG RecursionCount; - HANDLE OwningThread; - HANDLE LockSemaphore; - DWORD SpinCount; -} CRITICAL_SECTION,*PCRITICAL_SECTION,*LPCRITICAL_SECTION; -typedef struct _SYSTEMTIME { - WORD wYear; - WORD wMonth; - WORD wDayOfWeek; - WORD wDay; - WORD wHour; - WORD wMinute; - WORD wSecond; - WORD wMilliseconds; -} SYSTEMTIME,*LPSYSTEMTIME; -typedef struct _WIN32_FILE_ATTRIBUTE_DATA { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; -} WIN32_FILE_ATTRIBUTE_DATA,*LPWIN32_FILE_ATTRIBUTE_DATA; -typedef struct _WIN32_FIND_DATAA { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD dwReserved0; - DWORD dwReserved1; - CHAR cFileName[MAX_PATH]; - CHAR cAlternateFileName[14]; -} WIN32_FIND_DATAA,*LPWIN32_FIND_DATAA; -typedef struct _WIN32_FIND_DATAW { - DWORD dwFileAttributes; - FILETIME ftCreationTime; - FILETIME ftLastAccessTime; - FILETIME ftLastWriteTime; - DWORD nFileSizeHigh; - DWORD nFileSizeLow; - DWORD dwReserved0; - DWORD dwReserved1; - WCHAR cFileName[MAX_PATH]; - WCHAR cAlternateFileName[14]; -} WIN32_FIND_DATAW,*LPWIN32_FIND_DATAW; -typedef struct _WIN32_STREAM_ID { - DWORD dwStreamId; - DWORD dwStreamAttributes; - LARGE_INTEGER Size; - DWORD dwStreamNameSize; - WCHAR cStreamName[ANYSIZE_ARRAY]; -} WIN32_STREAM_ID; -typedef enum _FINDEX_INFO_LEVELS { - FindExInfoStandard, - FindExInfoMaxInfoLevel -} FINDEX_INFO_LEVELS; -typedef enum _FINDEX_SEARCH_OPS { - FindExSearchNameMatch, - FindExSearchLimitToDirectories, - FindExSearchLimitToDevices, - FindExSearchMaxSearchOp -} FINDEX_SEARCH_OPS; -typedef enum _ACL_INFORMATION_CLASS { - AclRevisionInformation=1, - AclSizeInformation -} ACL_INFORMATION_CLASS; -typedef struct tagHW_PROFILE_INFOA { - DWORD dwDockInfo; - CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]; - CHAR szHwProfileName[MAX_PROFILE_LEN]; -} HW_PROFILE_INFOA,*LPHW_PROFILE_INFOA; -typedef struct tagHW_PROFILE_INFOW { - DWORD dwDockInfo; - WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]; - WCHAR szHwProfileName[MAX_PROFILE_LEN]; -} HW_PROFILE_INFOW,*LPHW_PROFILE_INFOW; -typedef enum _GET_FILEEX_INFO_LEVELS { - GetFileExInfoStandard, - GetFileExMaxInfoLevel -} GET_FILEEX_INFO_LEVELS; -typedef struct _SYSTEM_INFO { - _ANONYMOUS_UNION union { - DWORD dwOemId; - _ANONYMOUS_STRUCT struct { - WORD wProcessorArchitecture; - WORD wReserved; - } DUMMYSTRUCTNAME; - } DUMMYUNIONNAME; - DWORD dwPageSize; - PVOID lpMinimumApplicationAddress; - PVOID lpMaximumApplicationAddress; - DWORD dwActiveProcessorMask; - DWORD dwNumberOfProcessors; - DWORD dwProcessorType; - DWORD dwAllocationGranularity; - WORD wProcessorLevel; - WORD wProcessorRevision; -} SYSTEM_INFO,*LPSYSTEM_INFO; -typedef struct _SYSTEM_POWER_STATUS { - BYTE ACLineStatus; - BYTE BatteryFlag; - BYTE BatteryLifePercent; - BYTE Reserved1; - DWORD BatteryLifeTime; - DWORD BatteryFullLifeTime; -} SYSTEM_POWER_STATUS,*LPSYSTEM_POWER_STATUS; -typedef struct _TIME_ZONE_INFORMATION { - LONG Bias; - WCHAR StandardName[32]; - SYSTEMTIME StandardDate; - LONG StandardBias; - WCHAR DaylightName[32]; - SYSTEMTIME DaylightDate; - LONG DaylightBias; -} TIME_ZONE_INFORMATION,*LPTIME_ZONE_INFORMATION; -typedef struct _MEMORYSTATUS { - DWORD dwLength; - DWORD dwMemoryLoad; - DWORD dwTotalPhys; - DWORD dwAvailPhys; - DWORD dwTotalPageFile; - DWORD dwAvailPageFile; - DWORD dwTotalVirtual; - DWORD dwAvailVirtual; -} MEMORYSTATUS,*LPMEMORYSTATUS; -typedef struct _LDT_ENTRY { - WORD LimitLow; - WORD BaseLow; - union { - struct { - BYTE BaseMid; - BYTE Flags1; - BYTE Flags2; - BYTE BaseHi; - } Bytes; - struct { - DWORD BaseMid:8; - DWORD Type:5; - DWORD Dpl:2; - DWORD Pres:1; - DWORD LimitHi:4; - DWORD Sys:1; - DWORD Reserved_0:1; - DWORD Default_Big:1; - DWORD Granularity:1; - DWORD BaseHi:8; - } Bits; - } HighWord; -} LDT_ENTRY,*PLDT_ENTRY,*LPLDT_ENTRY; -typedef struct _PROCESS_HEAP_ENTRY { - PVOID lpData; - DWORD cbData; - BYTE cbOverhead; - BYTE iRegionIndex; - WORD wFlags; - _ANONYMOUS_UNION union { - struct { - HANDLE hMem; - DWORD dwReserved[3]; - } Block; - struct { - DWORD dwCommittedSize; - DWORD dwUnCommittedSize; - LPVOID lpFirstBlock; - LPVOID lpLastBlock; - } Region; - } DUMMYUNIONNAME; -} PROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY; -typedef struct _OFSTRUCT { - BYTE cBytes; - BYTE fFixedDisk; - WORD nErrCode; - WORD Reserved1; - WORD Reserved2; - CHAR szPathName[OFS_MAXPATHNAME]; -} OFSTRUCT,*LPOFSTRUCT,*POFSTRUCT; -typedef struct _WIN_CERTIFICATE { - DWORD dwLength; - WORD wRevision; - WORD wCertificateType; - BYTE bCertificate[1]; -} WIN_CERTIFICATE, *LPWIN_CERTIFICATE; - -typedef DWORD(WINAPI *LPPROGRESS_ROUTINE)(LARGE_INTEGER,LARGE_INTEGER,LARGE_INTEGER,LARGE_INTEGER,DWORD,DWORD,HANDLE,HANDLE,LPVOID); -typedef void(WINAPI *LPFIBER_START_ROUTINE)(PVOID); -typedef BOOL(CALLBACK *ENUMRESLANGPROC)(HMODULE,LPCTSTR,LPCTSTR,WORD,LONG); -typedef BOOL(CALLBACK *ENUMRESNAMEPROC)(HMODULE,LPCTSTR,LPTSTR,LONG); -typedef BOOL(CALLBACK *ENUMRESTYPEPROC)(HMODULE,LPTSTR,LONG); -typedef void(CALLBACK *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD,DWORD,LPOVERLAPPED); -typedef LONG(CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(LPEXCEPTION_POINTERS); -typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; -typedef void(APIENTRY *PAPCFUNC)(DWORD); -typedef void(CALLBACK *PTIMERAPCROUTINE)(PVOID,DWORD,DWORD); -#define MAKEINTATOM(i) (LPTSTR)((DWORD)((WORD)(i))) -/* Functions */ -#ifndef UNDER_CE -int APIENTRY WinMain(HINSTANCE,HINSTANCE,LPSTR,int); -#else -int APIENTRY WinMain(HINSTANCE,HINSTANCE,LPWSTR,int); -#endif -int APIENTRY wWinMain(HINSTANCE,HINSTANCE,LPWSTR,int); -long WINAPI _hread(HFILE,LPVOID,long); -long WINAPI _hwrite(HFILE,LPCSTR,long); -HFILE WINAPI _lclose(HFILE); -HFILE WINAPI _lcreat(LPCSTR,int); -LONG WINAPI _llseek(HFILE,LONG,int); -HFILE WINAPI _lopen(LPCSTR,int); -UINT WINAPI _lread(HFILE,LPVOID,UINT); -UINT WINAPI _lwrite(HFILE,LPCSTR,UINT); -#define AbnormalTermination() FALSE -BOOL WINAPI AccessCheck(PSECURITY_DESCRIPTOR,HANDLE,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,PDWORD,PDWORD,PBOOL); -BOOL WINAPI AccessCheckAndAuditAlarmA(LPCSTR,LPVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,PDWORD,PBOOL,PBOOL); -BOOL WINAPI AccessCheckAndAuditAlarmW(LPCWSTR,LPVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,DWORD,PGENERIC_MAPPING,BOOL,PDWORD,PBOOL,PBOOL); -BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID); -BOOL WINAPI AddAccessDeniedAce(PACL,DWORD,DWORD,PSID); -BOOL WINAPI AddAce(PACL,DWORD,DWORD,PVOID,DWORD); -ATOM WINAPI AddAtomA(LPCSTR); -ATOM WINAPI AddAtomW(LPCWSTR); -BOOL WINAPI AddAuditAccessAce(PACL,DWORD,DWORD,PSID,BOOL,BOOL); -BOOL WINAPI AdjustTokenGroups(HANDLE,BOOL,PTOKEN_GROUPS,DWORD,PTOKEN_GROUPS,PDWORD); -BOOL WINAPI AdjustTokenPrivileges(HANDLE,BOOL,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD); -BOOL WINAPI AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY,BYTE,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,PSID*); -BOOL WINAPI AllocateLocallyUniqueId(PLUID); -BOOL WINAPI AreAllAccessesGranted(DWORD,DWORD); -BOOL WINAPI AreAnyAccessesGranted(DWORD,DWORD); -BOOL WINAPI AreFileApisANSI(void); -BOOL WINAPI BackupEventLogA(HANDLE,LPCSTR); -BOOL WINAPI BackupEventLogW(HANDLE,LPCWSTR); -BOOL WINAPI BackupRead(HANDLE,PBYTE,DWORD,PDWORD,BOOL,BOOL,PVOID); -BOOL WINAPI BackupSeek(HANDLE,DWORD,DWORD,PDWORD,PDWORD,PVOID); -BOOL WINAPI BackupWrite(HANDLE,PBYTE,DWORD,PDWORD,BOOL,BOOL,PVOID); -BOOL WINAPI Beep(DWORD,DWORD); -HANDLE WINAPI BeginUpdateResourceA(LPCSTR,BOOL); -HANDLE WINAPI BeginUpdateResourceW(LPCWSTR,BOOL); -BOOL WINAPI BuildCommDCBA(LPCSTR,LPDCB); -BOOL WINAPI BuildCommDCBW(LPCWSTR,LPDCB); -BOOL WINAPI BuildCommDCBAndTimeoutsA(LPCSTR,LPDCB,LPCOMMTIMEOUTS); -BOOL WINAPI BuildCommDCBAndTimeoutsW(LPCWSTR,LPDCB,LPCOMMTIMEOUTS); -BOOL WINAPI CallNamedPipeA(LPCSTR,PVOID,DWORD,PVOID,DWORD,PDWORD,DWORD); -BOOL WINAPI CallNamedPipeW(LPCWSTR,PVOID,DWORD,PVOID,DWORD,PDWORD,DWORD); -BOOL WINAPI CancelIo(HANDLE); -BOOL WINAPI CancelWaitableTimer(HANDLE); -BOOL WINAPI ClearCommBreak(HANDLE); -BOOL WINAPI ClearCommError(HANDLE,PDWORD,LPCOMSTAT); -BOOL WINAPI ClearEventLogA(HANDLE,LPCSTR); -BOOL WINAPI ClearEventLogW(HANDLE,LPCWSTR); -BOOL WINAPI CloseEventLog(HANDLE); -BOOL WINAPI CloseHandle(HANDLE); -BOOL WINAPI CommConfigDialogA(LPCSTR,HWND,LPCOMMCONFIG); -BOOL WINAPI CommConfigDialogW(LPCWSTR,HWND,LPCOMMCONFIG); -LONG WINAPI CompareFileTime(CONST FILETIME*,CONST FILETIME*); -BOOL WINAPI ConnectNamedPipe(HANDLE,LPOVERLAPPED); -BOOL WINAPI ContinueDebugEvent(DWORD,DWORD,DWORD); -PVOID WINAPI ConvertThreadToFiber(PVOID); -BOOL WINAPI CopyFileA(LPCSTR,LPCSTR,BOOL); -BOOL WINAPI CopyFileW(LPCWSTR,LPCWSTR,BOOL); -BOOL WINAPI CopyFileExA(LPCSTR,LPCSTR,LPPROGRESS_ROUTINE,LPVOID,LPBOOL,DWORD); -BOOL WINAPI CopyFileExW(LPCWSTR,LPCWSTR,LPPROGRESS_ROUTINE,LPVOID,LPBOOL,DWORD); -#define RtlMoveMemory memmove -#define RtlCopyMemory memcpy -#define RtlFillMemory(d,l,f) memset((d), (f), (l)) -#define RtlZeroMemory(d,l) RtlFillMemory((d),(l),0) -#define MoveMemory RtlMoveMemory -#define CopyMemory RtlCopyMemory -#define FillMemory RtlFillMemory -#define ZeroMemory RtlZeroMemory -BOOL WINAPI CopySid(DWORD,PSID,PSID); -BOOL WINAPI CreateDirectoryA(LPCSTR,LPSECURITY_ATTRIBUTES); -BOOL WINAPI CreateDirectoryW(LPCWSTR,LPSECURITY_ATTRIBUTES); -BOOL WINAPI CreateDirectoryExA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES); -BOOL WINAPI CreateDirectoryExW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES); -HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCSTR); -HANDLE WINAPI CreateEventW(LPSECURITY_ATTRIBUTES,BOOL,BOOL,LPCWSTR); -LPVOID WINAPI CreateFiber(DWORD,LPFIBER_START_ROUTINE,LPVOID); -HANDLE WINAPI CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE); -HANDLE WINAPI CreateFileW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE); -HANDLE WINAPI CreateFileMappingA(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCSTR); -HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,LPCWSTR); -HANDLE WINAPI CreateHardLinkA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES); -HANDLE WINAPI CreateHardLinkW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES); -HANDLE WINAPI CreateIoCompletionPort(HANDLE,HANDLE,DWORD,DWORD); -HANDLE WINAPI CreateMailslotA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES); -HANDLE WINAPI CreateMailslotW(LPCWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES); -HANDLE WINAPI CreateMutexA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR); -HANDLE WINAPI CreateMutexW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR); -HANDLE WINAPI CreateNamedPipeA(LPCSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES); -HANDLE WINAPI CreateNamedPipeW(LPCWSTR,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPSECURITY_ATTRIBUTES); -BOOL WINAPI CreatePipe(PHANDLE,PHANDLE,LPSECURITY_ATTRIBUTES,DWORD); -BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING); -BOOL WINAPI CreateProcessA(LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION); -BOOL WINAPI CreateProcessW(LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION); -BOOL WINAPI CreateProcessAsUserA(HANDLE,LPCSTR,LPSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCSTR,LPSTARTUPINFOA,LPPROCESS_INFORMATION); -BOOL WINAPI CreateProcessAsUserW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,PVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION); -HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD); -HANDLE WINAPI CreateSemaphoreA(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCSTR); -HANDLE WINAPI CreateSemaphoreW(LPSECURITY_ATTRIBUTES,LONG,LONG,LPCWSTR); -DWORD WINAPI CreateTapePartition(HANDLE,DWORD,DWORD,DWORD); -HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,DWORD,LPTHREAD_START_ROUTINE,PVOID,DWORD,PDWORD); -HANDLE WINAPI CreateWaitableTimerA(LPSECURITY_ATTRIBUTES,BOOL,LPCSTR); -HANDLE WINAPI CreateWaitableTimerW(LPSECURITY_ATTRIBUTES,BOOL,LPCWSTR); -BOOL WINAPI DebugActiveProcess(DWORD); -void WINAPI DebugBreak(void); -BOOL WINAPI DefineDosDeviceA(DWORD,LPCSTR,LPCSTR); -BOOL WINAPI DefineDosDeviceW(DWORD,LPCWSTR,LPCWSTR); -#define DefineHandleTable(w) ((w),TRUE) -BOOL WINAPI DeleteAce(PACL,DWORD); -ATOM WINAPI DeleteAtom(ATOM); -void WINAPI DeleteCriticalSection(PCRITICAL_SECTION); -void WINAPI DeleteFiber(PVOID); -BOOL WINAPI DeleteFileA(LPCSTR); -BOOL WINAPI DeleteFileW(LPCWSTR); -BOOL WINAPI DeregisterEventSource(HANDLE); -BOOL WINAPI DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*); -BOOL WINAPI DeviceIoControl(HANDLE,DWORD,PVOID,DWORD,PVOID,DWORD,PDWORD,POVERLAPPED); -BOOL WINAPI DisableThreadLibraryCalls(HMODULE); -BOOL WINAPI DisconnectNamedPipe(HANDLE); -BOOL WINAPI DosDateTimeToFileTime(WORD,WORD,LPFILETIME); -BOOL WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,PHANDLE,DWORD,BOOL,DWORD); -BOOL WINAPI DuplicateToken(HANDLE,SECURITY_IMPERSONATION_LEVEL,PHANDLE); -BOOL WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE); -BOOL WINAPI EndUpdateResourceA(HANDLE,BOOL); -BOOL WINAPI EndUpdateResourceW(HANDLE,BOOL); -void WINAPI EnterCriticalSection(LPCRITICAL_SECTION); -BOOL WINAPI EnumResourceLanguagesA(HINSTANCE,LPCSTR,LPCSTR,ENUMRESLANGPROC,LONG); -BOOL WINAPI EnumResourceLanguagesW(HINSTANCE,LPCWSTR,LPCWSTR,ENUMRESLANGPROC,LONG); -BOOL WINAPI EnumResourceNamesA(HINSTANCE,LPCSTR,ENUMRESNAMEPROC,LONG); -BOOL WINAPI EnumResourceNamesW(HINSTANCE,LPCWSTR,ENUMRESNAMEPROC,LONG); -BOOL WINAPI EnumResourceTypesA(HINSTANCE,ENUMRESTYPEPROC,LONG); -BOOL WINAPI EnumResourceTypesW(HINSTANCE,ENUMRESTYPEPROC,LONG); -BOOL WINAPI EqualPrefixSid(PSID,PSID); -BOOL WINAPI EqualSid(PSID,PSID); -DWORD WINAPI EraseTape(HANDLE,DWORD,BOOL); -BOOL WINAPI EscapeCommFunction(HANDLE,DWORD); -DECLSPEC_NORETURN void WINAPI ExitProcess(UINT); -DECLSPEC_NORETURN void WINAPI ExitThread(DWORD); -DWORD WINAPI ExpandEnvironmentStringsA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI ExpandEnvironmentStringsW(LPCWSTR,LPWSTR,DWORD); -void WINAPI FatalAppExitA(UINT,LPCSTR); -void WINAPI FatalAppExitW(UINT,LPCWSTR); -void WINAPI FatalExit(int); -BOOL WINAPI FileTimeToDosDateTime(CONST FILETIME *,LPWORD,LPWORD); -BOOL WINAPI FileTimeToLocalFileTime(FILETIME *,LPFILETIME); -BOOL WINAPI FileTimeToSystemTime(CONST FILETIME *,LPSYSTEMTIME); -ATOM WINAPI FindAtomA(LPCSTR); -ATOM WINAPI FindAtomW(LPCWSTR); -BOOL WINAPI FindClose(HANDLE); -BOOL WINAPI FindCloseChangeNotification(HANDLE); -HANDLE WINAPI FindFirstChangeNotificationA(LPCSTR,BOOL,DWORD); -HANDLE WINAPI FindFirstChangeNotificationW(LPCWSTR,BOOL,DWORD); -HANDLE WINAPI FindFirstFileA(LPCSTR,LPWIN32_FIND_DATAA); -HANDLE WINAPI FindFirstFileW(LPCWSTR,LPWIN32_FIND_DATAW); -HANDLE WINAPI FindFirstFileExA(LPCSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD); -HANDLE WINAPI FindFirstFileExW(LPCWSTR,FINDEX_INFO_LEVELS,PVOID,FINDEX_SEARCH_OPS,PVOID,DWORD); -BOOL WINAPI FindFirstFreeAce(PACL,PVOID*); -BOOL WINAPI FindNextChangeNotification(HANDLE); -BOOL WINAPI FindNextFileA(HANDLE,LPWIN32_FIND_DATAA); -BOOL WINAPI FindNextFileW(HANDLE,LPWIN32_FIND_DATAW); -HRSRC WINAPI FindResourceA(HMODULE,LPCSTR,LPCSTR); -HRSRC WINAPI FindResourceW(HINSTANCE,LPCWSTR,LPCWSTR); -HRSRC WINAPI FindResourceExA(HINSTANCE,LPCSTR,LPCSTR,WORD); -HRSRC WINAPI FindResourceExW(HINSTANCE,LPCWSTR,LPCWSTR,WORD); -BOOL WINAPI FlushFileBuffers(HANDLE); -BOOL WINAPI FlushInstructionCache(HANDLE,PCVOID,DWORD); -BOOL WINAPI FlushViewOfFile(PCVOID,DWORD); -DWORD WINAPI FormatMessageA(DWORD,PCVOID,DWORD,DWORD,LPSTR,DWORD,va_list*); -DWORD WINAPI FormatMessageW(DWORD,PCVOID,DWORD,DWORD,LPWSTR,DWORD,va_list*); -BOOL WINAPI FreeEnvironmentStringsA(LPSTR); -BOOL WINAPI FreeEnvironmentStringsW(LPWSTR); -BOOL WINAPI FreeLibrary(HMODULE); -DECLSPEC_NORETURN void WINAPI FreeLibraryAndExitThread(HMODULE,DWORD); -#define FreeModule(m) FreeLibrary(m) -#define FreeProcInstance(p) (void)(p) -#ifndef XFree86Server -BOOL WINAPI FreeResource(HGLOBAL); -#endif /* ndef XFree86Server */ -PVOID WINAPI FreeSid(PSID); -BOOL WINAPI GetAce(PACL,DWORD,PVOID); -BOOL WINAPI GetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS); -UINT WINAPI GetAtomNameA(ATOM,LPSTR,int); -UINT WINAPI GetAtomNameW(ATOM,LPWSTR,int); -BOOL WINAPI GetBinaryTypeA(LPCSTR,PDWORD); -BOOL WINAPI GetBinaryTypeW(LPCWSTR,PDWORD); -LPSTR WINAPI GetCommandLineA(VOID); -LPWSTR WINAPI GetCommandLineW(VOID); -BOOL WINAPI GetCommConfig(HANDLE,LPCOMMCONFIG,PDWORD); -BOOL WINAPI GetCommMask(HANDLE,PDWORD); -BOOL WINAPI GetCommModemStatus(HANDLE,PDWORD); -BOOL WINAPI GetCommProperties(HANDLE,LPCOMMPROP); -BOOL WINAPI GetCommState(HANDLE,LPDCB); -BOOL WINAPI GetCommTimeouts(HANDLE,LPCOMMTIMEOUTS); -DWORD WINAPI GetCompressedFileSizeA(LPCSTR,PDWORD); -DWORD WINAPI GetCompressedFileSizeW(LPCWSTR,PDWORD); -BOOL WINAPI GetComputerNameA(LPSTR,PDWORD); -BOOL WINAPI GetComputerNameW(LPWSTR,PDWORD); -DWORD WINAPI GetCurrentDirectoryA(DWORD,LPSTR); -DWORD WINAPI GetCurrentDirectoryW(DWORD,LPWSTR); -BOOL WINAPI GetCurrentHwProfileA(LPHW_PROFILE_INFOA); -BOOL WINAPI GetCurrentHwProfileW(LPHW_PROFILE_INFOW); -HANDLE WINAPI GetCurrentProcess(void); -DWORD WINAPI GetCurrentProcessId(void); -HANDLE WINAPI GetCurrentThread(void); -DWORD WINAPI GetCurrentThreadId(void); -#define GetCurrentTime GetTickCount -BOOL WINAPI GetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,PDWORD); -BOOL WINAPI GetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,PDWORD); -BOOL WINAPI GetDiskFreeSpaceA(LPCSTR,PDWORD,PDWORD,PDWORD,PDWORD); -BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,PDWORD,PDWORD,PDWORD,PDWORD); -BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); -BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); -UINT WINAPI GetDriveTypeA(LPCSTR); -UINT WINAPI GetDriveTypeW(LPCWSTR); -LPSTR WINAPI GetEnvironmentStrings(void); -LPSTR WINAPI GetEnvironmentStringsA(void); -LPWSTR WINAPI GetEnvironmentStringsW(void); -DWORD WINAPI GetEnvironmentVariableA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI GetEnvironmentVariableW(LPCWSTR,LPWSTR,DWORD); -BOOL WINAPI GetExitCodeProcess(HANDLE,PDWORD); -BOOL WINAPI GetExitCodeThread(HANDLE,PDWORD); -DWORD WINAPI GetFileAttributesA(LPCSTR); -DWORD WINAPI GetFileAttributesW(LPCWSTR); -BOOL WINAPI GetFileAttributesExA(LPCSTR,GET_FILEEX_INFO_LEVELS,PVOID); -BOOL WINAPI GetFileAttributesExW(LPCWSTR,GET_FILEEX_INFO_LEVELS,PVOID); -BOOL WINAPI GetFileInformationByHandle(HANDLE,LPBY_HANDLE_FILE_INFORMATION); -BOOL WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD); -BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD); -DWORD WINAPI GetFileSize(HANDLE,PDWORD); -BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME); -DWORD WINAPI GetFileType(HANDLE); -#define GetFreeSpace(w) (0x100000L) -DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*); -DWORD WINAPI GetFullPathNameW(LPCWSTR,DWORD,LPWSTR,LPWSTR*); -BOOL WINAPI GetHandleInformation(HANDLE,PDWORD); -BOOL WINAPI GetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD); -DWORD WINAPI GetLengthSid(PSID); -void WINAPI GetLocalTime(LPSYSTEMTIME); -DWORD WINAPI GetLogicalDrives(void); -DWORD WINAPI GetLogicalDriveStringsA(DWORD,LPSTR); -DWORD WINAPI GetLogicalDriveStringsW(DWORD,LPWSTR); -DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD); -BOOL WINAPI GetMailslotInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD); -DWORD WINAPI GetModuleFileNameA(HINSTANCE,LPSTR,DWORD); -DWORD WINAPI GetModuleFileNameW(HINSTANCE,LPWSTR,DWORD); -HMODULE WINAPI GetModuleHandleA(LPCSTR); -HMODULE WINAPI GetModuleHandleW(LPCWSTR); -BOOL WINAPI GetNamedPipeHandleStateA(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD,LPSTR,DWORD); -BOOL WINAPI GetNamedPipeHandleStateW(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD,LPWSTR,DWORD); -BOOL WINAPI GetNamedPipeInfo(HANDLE,PDWORD,PDWORD,PDWORD,PDWORD); -BOOL WINAPI GetNumberOfEventLogRecords(HANDLE,PDWORD); -BOOL WINAPI GetOldestEventLogRecord(HANDLE,PDWORD); -BOOL WINAPI GetOverlappedResult(HANDLE,LPOVERLAPPED,PDWORD,BOOL); -DWORD WINAPI GetPriorityClass(HANDLE); -BOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD); -UINT WINAPI GetPrivateProfileIntA(LPCSTR,LPCSTR,INT,LPCSTR); -UINT WINAPI GetPrivateProfileIntW(LPCWSTR,LPCWSTR,INT,LPCWSTR); -DWORD WINAPI GetPrivateProfileSectionA(LPCSTR,LPSTR,DWORD,LPCSTR); -DWORD WINAPI GetPrivateProfileSectionW(LPCWSTR,LPWSTR,DWORD,LPCWSTR); -DWORD WINAPI GetPrivateProfileSectionNamesA(LPSTR,DWORD,LPCSTR); -DWORD WINAPI GetPrivateProfileSectionNamesW(LPWSTR,DWORD,LPCWSTR); -DWORD WINAPI GetPrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,DWORD,LPCSTR); -DWORD WINAPI GetPrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD,LPCWSTR); -BOOL WINAPI GetPrivateProfileStructA(LPCSTR,LPCSTR,PVOID,UINT,LPCSTR); -BOOL WINAPI GetPrivateProfileStructW(LPCWSTR,LPCWSTR,PVOID,UINT,LPCWSTR); -FARPROC WINAPI GetProcAddress(HINSTANCE,LPCSTR); -BOOL WINAPI GetProcessAffinityMask(HANDLE,PDWORD,PDWORD); -HANDLE WINAPI GetProcessHeap(VOID); -DWORD WINAPI GetProcessHeaps(DWORD,PHANDLE); -BOOL WINAPI GetProcessPriorityBoost(HANDLE,PBOOL); -BOOL WINAPI GetProcessShutdownParameters(PDWORD,PDWORD); -BOOL WINAPI GetProcessTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME); -DWORD WINAPI GetProcessVersion(DWORD); -HWINSTA WINAPI GetProcessWindowStation(void); -BOOL WINAPI GetProcessWorkingSetSize(HANDLE,PDWORD,PDWORD); -UINT WINAPI GetProfileIntA(LPCSTR,LPCSTR,INT); -UINT WINAPI GetProfileIntW(LPCWSTR,LPCWSTR,INT); -DWORD WINAPI GetProfileSectionA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI GetProfileSectionW(LPCWSTR,LPWSTR,DWORD); -DWORD WINAPI GetProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPSTR,DWORD); -DWORD WINAPI GetProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPWSTR,DWORD); -BOOL WINAPI GetQueuedCompletionStatus(HANDLE,PDWORD,PDWORD,LPOVERLAPPED*,DWORD); -BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,PDWORD); -BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL); -BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID*,LPBOOL); -DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR); -BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID*,LPBOOL); -BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,LPBOOL,PACL*,LPBOOL); -DWORD WINAPI GetShortPathNameA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI GetShortPathNameW(LPCWSTR,LPWSTR,DWORD); -PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority(PSID); -DWORD WINAPI GetSidLengthRequired(UCHAR); -PDWORD WINAPI GetSidSubAuthority(PSID,DWORD); -PUCHAR WINAPI GetSidSubAuthorityCount(PSID); -VOID WINAPI GetStartupInfoA(LPSTARTUPINFOA); -VOID WINAPI GetStartupInfoW(LPSTARTUPINFOW); -HANDLE WINAPI GetStdHandle(DWORD); -UINT WINAPI GetSystemDirectoryA(LPSTR,UINT); -UINT WINAPI GetSystemDirectoryW(LPWSTR,UINT); -VOID WINAPI GetSystemInfo(LPSYSTEM_INFO); -BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); -VOID WINAPI GetSystemTime(LPSYSTEMTIME); -BOOL WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL); -void WINAPI GetSystemTimeAsFileTime(LPFILETIME); -DWORD WINAPI GetTapeParameters(HANDLE,DWORD,PDWORD,PVOID); -DWORD WINAPI GetTapePosition(HANDLE,DWORD,PDWORD,PDWORD,PDWORD); -DWORD WINAPI GetTapeStatus(HANDLE); -UINT WINAPI GetTempFileNameA(LPCSTR,LPCSTR,UINT,LPSTR); -UINT WINAPI GetTempFileNameW(LPCWSTR,LPCWSTR,UINT,LPWSTR); -DWORD WINAPI GetTempPathA(DWORD,LPSTR); -DWORD WINAPI GetTempPathW(DWORD,LPWSTR); -BOOL WINAPI GetThreadContext(HANDLE,LPCONTEXT); -int WINAPI GetThreadPriority(HANDLE); -BOOL WINAPI GetThreadPriorityBoost(HANDLE,PBOOL); -BOOL WINAPI GetThreadSelectorEntry(HANDLE,DWORD,LPLDT_ENTRY); -BOOL WINAPI GetThreadTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME); -DWORD WINAPI GetTickCount(void); -DWORD WINAPI GetTimeZoneInformation(LPTIME_ZONE_INFORMATION); -BOOL WINAPI GetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD,PDWORD); -BOOL WINAPI GetUserNameA (LPSTR,PDWORD); -BOOL WINAPI GetUserNameW(LPWSTR,PDWORD); -DWORD WINAPI GetVersion(void); -BOOL WINAPI GetVersionExA(LPOSVERSIONINFOA); -BOOL WINAPI GetVersionExW(LPOSVERSIONINFOW); -BOOL WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,PDWORD,PDWORD,PDWORD,LPSTR,DWORD); -BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,PDWORD,PDWORD,PDWORD,LPWSTR,DWORD); -UINT WINAPI GetWindowsDirectoryA(LPSTR,UINT); -UINT WINAPI GetWindowsDirectoryW(LPWSTR,UINT); -DWORD WINAPI GetWindowThreadProcessId(HWND,PDWORD); -ATOM WINAPI GlobalAddAtomA(LPCSTR); -ATOM WINAPI GlobalAddAtomW( LPCWSTR); -HGLOBAL WINAPI GlobalAlloc(UINT,DWORD); -UINT WINAPI GlobalCompact(DWORD); -ATOM WINAPI GlobalDeleteAtom(ATOM); -HGLOBAL GlobalDiscard(HGLOBAL); -ATOM WINAPI GlobalFindAtomA(LPCSTR); -ATOM WINAPI GlobalFindAtomW(LPCWSTR); -VOID WINAPI GlobalFix(HGLOBAL); -UINT WINAPI GlobalFlags(HGLOBAL); -HGLOBAL WINAPI GlobalFree(HGLOBAL); -UINT WINAPI GlobalGetAtomNameA(ATOM,LPSTR,int); -UINT WINAPI GlobalGetAtomNameW(ATOM,LPWSTR,int); -HGLOBAL WINAPI GlobalHandle(PCVOID); -LPVOID WINAPI GlobalLock(HGLOBAL); -VOID WINAPI GlobalMemoryStatus(LPMEMORYSTATUS); -HGLOBAL WINAPI GlobalReAlloc(HGLOBAL,DWORD,UINT); -DWORD WINAPI GlobalSize(HGLOBAL); -VOID WINAPI GlobalUnfix(HGLOBAL); -BOOL WINAPI GlobalUnlock(HGLOBAL); -BOOL WINAPI GlobalUnWire(HGLOBAL); -PVOID WINAPI GlobalWire(HGLOBAL); -#define HasOverlappedIoCompleted(lpOverlapped) ((lpOverlapped)->Internal != STATUS_PENDING) -PVOID WINAPI HeapAlloc(HANDLE,DWORD,DWORD); -UINT WINAPI HeapCompact(HANDLE,DWORD); -HANDLE WINAPI HeapCreate(DWORD,DWORD,DWORD); -BOOL WINAPI HeapDestroy(HANDLE); -BOOL WINAPI HeapFree(HANDLE,DWORD,PVOID); -BOOL WINAPI HeapLock(HANDLE); -PVOID WINAPI HeapReAlloc(HANDLE,DWORD,PVOID,DWORD); -DWORD WINAPI HeapSize(HANDLE,DWORD,PCVOID); -BOOL WINAPI HeapUnlock(HANDLE); -BOOL WINAPI HeapValidate(HANDLE,DWORD,PCVOID); -BOOL WINAPI HeapWalk(HANDLE,LPPROCESS_HEAP_ENTRY); -BOOL WINAPI ImpersonateLoggedOnUser(HANDLE); -BOOL WINAPI ImpersonateNamedPipeClient(HANDLE); -BOOL WINAPI ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL); -BOOL WINAPI InitAtomTable(DWORD); -BOOL WINAPI InitializeAcl(PACL,DWORD,DWORD); -VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION); -#if (_WIN32_WINNT >= 0x0403) /* Needs NT4, SP3 or later. */ -BOOL WINAPI InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION,DWORD); -DWORD WINAPI SetCriticalSectionSpinCount(LPCRITICAL_SECTION,DWORD); -#endif -BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR,DWORD); -BOOL WINAPI InitializeSid (PSID,PSID_IDENTIFIER_AUTHORITY,BYTE); -LONG WINAPI InterlockedCompareExchange(LPLONG,LONG,LONG); -/* PVOID WINAPI InterlockedCompareExchangePointer(PVOID*,PVOID,PVOID); */ -#define InterlockedCompareExchangePointer(d,e,c) \ - (PVOID)InterlockedCompareExchange((LPLONG)(d),(LONG)(e),(LONG)(c)) -LONG WINAPI InterlockedDecrement(LPLONG); -LONG WINAPI InterlockedExchange(LPLONG,LONG); -/* PVOID WINAPI InterlockedExchangePointer(PVOID*,PVOID); */ -#define InterlockedExchangePointer(t,v) \ - (PVOID)InterlockedExchange((LPLONG)(t),(LONG)(v)) -LONG WINAPI InterlockedExchangeAdd(PLONG,LONG); -LONG WINAPI InterlockedIncrement(LPLONG); -BOOL WINAPI IsBadCodePtr(FARPROC); -BOOL WINAPI IsBadHugeReadPtr(PCVOID,UINT); -BOOL WINAPI IsBadHugeWritePtr(PVOID,UINT); -BOOL WINAPI IsBadReadPtr(PCVOID,UINT); -BOOL WINAPI IsBadStringPtrA(LPCSTR,UINT); -BOOL WINAPI IsBadStringPtrW(LPCWSTR,UINT); -BOOL WINAPI IsBadWritePtr(PVOID,UINT); -BOOL WINAPI IsDebuggerPresent(void); -BOOL WINAPI IsProcessorFeaturePresent(DWORD); -BOOL WINAPI IsTextUnicode(PCVOID,int,LPINT); -BOOL WINAPI IsValidAcl(PACL); -BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR); -BOOL WINAPI IsValidSid(PSID); -void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION); -#define LimitEmsPages(n) -HINSTANCE WINAPI LoadLibraryA(LPCSTR); -HINSTANCE WINAPI LoadLibraryExA(LPCSTR,HANDLE,DWORD); -HINSTANCE WINAPI LoadLibraryExW(LPCWSTR,HANDLE,DWORD); -HINSTANCE WINAPI LoadLibraryW(LPCWSTR); -DWORD WINAPI LoadModule(LPCSTR,PVOID); -HGLOBAL WINAPI LoadResource(HINSTANCE,HRSRC); -HLOCAL WINAPI LocalAlloc(UINT,UINT); -UINT WINAPI LocalCompact(UINT); -HLOCAL LocalDiscard(HLOCAL); -BOOL WINAPI LocalFileTimeToFileTime(CONST FILETIME *,LPFILETIME); -UINT WINAPI LocalFlags(HLOCAL); -HLOCAL WINAPI LocalFree(HLOCAL); -HLOCAL WINAPI LocalHandle(LPCVOID); -PVOID WINAPI LocalLock(HLOCAL); -HLOCAL WINAPI LocalReAlloc(HLOCAL,UINT,UINT); -UINT WINAPI LocalShrink(HLOCAL,UINT); -UINT WINAPI LocalSize(HLOCAL); -BOOL WINAPI LocalUnlock(HLOCAL); -BOOL WINAPI LockFile(HANDLE,DWORD,DWORD,DWORD,DWORD); -BOOL WINAPI LockFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,LPOVERLAPPED); -PVOID WINAPI LockResource(HGLOBAL); -#define LockSegment(w) GlobalFix((HANDLE)(w)) -BOOL WINAPI LogonUserA(LPSTR,LPSTR,LPSTR,DWORD,DWORD,PHANDLE); -BOOL WINAPI LogonUserW(LPWSTR,LPWSTR,LPWSTR,DWORD,DWORD,PHANDLE); -BOOL WINAPI LookupAccountNameA(LPCSTR,LPCSTR,PSID,PDWORD,LPSTR,PDWORD,PSID_NAME_USE); -BOOL WINAPI LookupAccountNameW(LPCWSTR,LPCWSTR,PSID,PDWORD,LPWSTR,PDWORD,PSID_NAME_USE); -BOOL WINAPI LookupAccountSidA(LPCSTR,PSID,LPSTR,PDWORD,LPSTR,PDWORD,PSID_NAME_USE); -BOOL WINAPI LookupAccountSidW(LPCWSTR,PSID,LPWSTR,PDWORD,LPWSTR,PDWORD,PSID_NAME_USE); -BOOL WINAPI LookupPrivilegeDisplayNameA(LPCSTR,LPCSTR,LPSTR,PDWORD,PDWORD); -BOOL WINAPI LookupPrivilegeDisplayNameW(LPCWSTR,LPCWSTR,LPWSTR,PDWORD,PDWORD); -BOOL WINAPI LookupPrivilegeNameA(LPCSTR,PLUID,LPSTR,PDWORD); -BOOL WINAPI LookupPrivilegeNameW(LPCWSTR,PLUID,LPWSTR,PDWORD); -BOOL WINAPI LookupPrivilegeValueA(LPCSTR,LPCSTR,PLUID); -BOOL WINAPI LookupPrivilegeValueW(LPCWSTR,LPCWSTR,PLUID); -LPSTR WINAPI lstrcatA(LPSTR,LPCSTR); -LPWSTR WINAPI lstrcatW(LPWSTR,LPCWSTR); -int WINAPI lstrcmpA(LPCSTR,LPCSTR); -int WINAPI lstrcmpiA(LPCSTR,LPCSTR); -int WINAPI lstrcmpiW( LPCWSTR,LPCWSTR); -int WINAPI lstrcmpW(LPCWSTR,LPCWSTR); -LPSTR WINAPI lstrcpyA(LPSTR,LPCSTR); -LPSTR WINAPI lstrcpynA(LPSTR,LPCSTR,int); -LPWSTR WINAPI lstrcpynW(LPWSTR,LPCWSTR,int); -LPWSTR WINAPI lstrcpyW(LPWSTR,LPCWSTR); -int WINAPI lstrlenA(LPCSTR); -int WINAPI lstrlenW(LPCWSTR); -BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD,PACL,PDWORD,PACL,PDWORD,PSID,PDWORD,PSID,PDWORD); -#define MakeProcInstance(p,i) (p) -BOOL WINAPI MakeSelfRelativeSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PDWORD); -VOID WINAPI MapGenericMask(PDWORD,PGENERIC_MAPPING); -PVOID WINAPI MapViewOfFile(HANDLE,DWORD,DWORD,DWORD,DWORD); -PVOID WINAPI MapViewOfFileEx(HANDLE,DWORD,DWORD,DWORD,DWORD,PVOID); -BOOL WINAPI MoveFileA(LPCSTR,LPCSTR); -BOOL WINAPI MoveFileExA(LPCSTR,LPCSTR,DWORD); -BOOL WINAPI MoveFileExW(LPCWSTR,LPCWSTR,DWORD); -BOOL WINAPI MoveFileW(LPCWSTR,LPCWSTR); -int WINAPI MulDiv(int,int,int); -BOOL WINAPI NotifyChangeEventLog(HANDLE,HANDLE); -BOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR,PVOID,BOOL); -BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR,PVOID,BOOL); -BOOL WINAPI ObjectDeleteAuditAlarmA(LPCSTR,PVOID,BOOL); -BOOL WINAPI ObjectDeleteAuditAlarmW(LPCWSTR,PVOID,BOOL); -BOOL WINAPI ObjectOpenAuditAlarmA(LPCSTR,PVOID,LPSTR,LPSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,PBOOL); -BOOL WINAPI ObjectOpenAuditAlarmW(LPCWSTR,PVOID,LPWSTR,LPWSTR,PSECURITY_DESCRIPTOR,HANDLE,DWORD,DWORD,PPRIVILEGE_SET,BOOL,BOOL,PBOOL); -BOOL WINAPI ObjectPrivilegeAuditAlarmA(LPCSTR,PVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL); -BOOL WINAPI ObjectPrivilegeAuditAlarmW(LPCWSTR,PVOID,HANDLE,DWORD,PPRIVILEGE_SET,BOOL); -HANDLE WINAPI OpenBackupEventLogA(LPCSTR,LPCSTR); -HANDLE WINAPI OpenBackupEventLogW(LPCWSTR,LPCWSTR); -HANDLE WINAPI OpenEventA(DWORD,BOOL,LPCSTR); -HANDLE WINAPI OpenEventLogA (LPCSTR,LPCSTR); -HANDLE WINAPI OpenEventLogW(LPCWSTR,LPCWSTR); -HANDLE WINAPI OpenEventW(DWORD,BOOL,LPCWSTR); -HFILE WINAPI OpenFile(LPCSTR,LPOFSTRUCT,UINT); -HANDLE WINAPI OpenFileMappingA(DWORD,BOOL,LPCSTR); -HANDLE WINAPI OpenFileMappingW(DWORD,BOOL,LPCWSTR); -HANDLE WINAPI OpenMutexA(DWORD,BOOL,LPCSTR); -HANDLE WINAPI OpenMutexW(DWORD,BOOL,LPCWSTR); -HANDLE WINAPI OpenProcess(DWORD,BOOL,DWORD); -BOOL WINAPI OpenProcessToken(HANDLE,DWORD,PHANDLE); -HANDLE WINAPI OpenSemaphoreA(DWORD,BOOL,LPCSTR); -HANDLE WINAPI OpenSemaphoreW(DWORD,BOOL,LPCWSTR); -BOOL WINAPI OpenThreadToken(HANDLE,DWORD,BOOL,PHANDLE); -HANDLE WINAPI OpenWaitableTimerA(DWORD,BOOL,LPCSTR); -HANDLE WINAPI OpenWaitableTimerW(DWORD,BOOL,LPCWSTR); -void WINAPI OutputDebugStringA(LPCSTR); -void WINAPI OutputDebugStringW(LPCWSTR); -BOOL WINAPI PeekNamedPipe(HANDLE,PVOID,DWORD,PDWORD,PDWORD,PDWORD); -BOOL WINAPI PostQueuedCompletionStatus(HANDLE,DWORD,DWORD,LPOVERLAPPED); -DWORD WINAPI PrepareTape(HANDLE,DWORD,BOOL); -BOOL WINAPI PrivilegeCheck (HANDLE,PPRIVILEGE_SET,PBOOL); -BOOL WINAPI PrivilegedServiceAuditAlarmA(LPCSTR,LPCSTR,HANDLE,PPRIVILEGE_SET,BOOL); -BOOL WINAPI PrivilegedServiceAuditAlarmW(LPCWSTR,LPCWSTR,HANDLE,PPRIVILEGE_SET,BOOL); -BOOL WINAPI PulseEvent(HANDLE); -BOOL WINAPI PurgeComm(HANDLE,DWORD); -DWORD WINAPI QueryDosDeviceA(LPCSTR,LPSTR,DWORD); -DWORD WINAPI QueryDosDeviceW(LPCWSTR,LPWSTR,DWORD); -BOOL WINAPI QueryPerformanceCounter(PLARGE_INTEGER); -BOOL WINAPI QueryPerformanceFrequency(PLARGE_INTEGER); -DWORD WINAPI QueueUserAPC(PAPCFUNC,HANDLE,DWORD); -void WINAPI RaiseException(DWORD,DWORD,DWORD,const DWORD*); -BOOL WINAPI ReadDirectoryChangesW(HANDLE,PVOID,DWORD,BOOL,DWORD,PDWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE); -BOOL WINAPI ReadEventLogA(HANDLE,DWORD,DWORD,PVOID,DWORD,DWORD *,DWORD *); -BOOL WINAPI ReadEventLogW(HANDLE,DWORD,DWORD,PVOID,DWORD,DWORD *,DWORD *); -BOOL WINAPI ReadFile(HANDLE,PVOID,DWORD,PDWORD,LPOVERLAPPED); -BOOL WINAPI ReadFileEx(HANDLE,PVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE); -BOOL WINAPI ReadProcessMemory(HANDLE,PCVOID,PVOID,DWORD,PDWORD); -HANDLE WINAPI RegisterEventSourceA (LPCSTR,LPCSTR); -HANDLE WINAPI RegisterEventSourceW(LPCWSTR,LPCWSTR); -BOOL WINAPI ReleaseMutex(HANDLE); -BOOL WINAPI ReleaseSemaphore(HANDLE,LONG,LPLONG); -BOOL WINAPI RemoveDirectoryA(LPCSTR); -BOOL WINAPI RemoveDirectoryW(LPCWSTR); -BOOL WINAPI ReportEventA(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCSTR*,PVOID); -BOOL WINAPI ReportEventW(HANDLE,WORD,WORD,DWORD,PSID,WORD,DWORD,LPCWSTR*,PVOID); -BOOL WINAPI ResetEvent(HANDLE); -DWORD WINAPI ResumeThread(HANDLE); -BOOL WINAPI RevertToSelf(void); -DWORD WINAPI SearchPathA(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*); -DWORD WINAPI SearchPathW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*); -BOOL WINAPI SetAclInformation(PACL,PVOID,DWORD,ACL_INFORMATION_CLASS); -BOOL WINAPI SetCommBreak(HANDLE); -BOOL WINAPI SetCommConfig(HANDLE,LPCOMMCONFIG,DWORD); -BOOL WINAPI SetCommMask(HANDLE,DWORD); -BOOL WINAPI SetCommState(HANDLE,LPDCB); -BOOL WINAPI SetCommTimeouts(HANDLE,LPCOMMTIMEOUTS); -BOOL WINAPI SetComputerNameA(LPCSTR); -BOOL WINAPI SetComputerNameW(LPCWSTR); -BOOL WINAPI SetCurrentDirectoryA(LPCSTR); -BOOL WINAPI SetCurrentDirectoryW(LPCWSTR); -BOOL WINAPI SetDefaultCommConfigA(LPCSTR,LPCOMMCONFIG,DWORD); -BOOL WINAPI SetDefaultCommConfigW(LPCWSTR,LPCOMMCONFIG,DWORD); -BOOL WINAPI SetEndOfFile(HANDLE); -BOOL WINAPI SetEnvironmentVariableA(LPCSTR,LPCSTR); -BOOL WINAPI SetEnvironmentVariableW(LPCWSTR,LPCWSTR); -UINT WINAPI SetErrorMode(UINT); -BOOL WINAPI SetEvent(HANDLE); -VOID WINAPI SetFileApisToANSI(void); -VOID WINAPI SetFileApisToOEM(void); -BOOL WINAPI SetFileAttributesA(LPCSTR,DWORD); -BOOL WINAPI SetFileAttributesW(LPCWSTR,DWORD); -DWORD WINAPI SetFilePointer(HANDLE,LONG,PLONG,DWORD); -BOOL WINAPI SetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -BOOL WINAPI SetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -BOOL WINAPI SetFileTime(HANDLE,const FILETIME*,const FILETIME*,const FILETIME*); -UINT WINAPI SetHandleCount(UINT); -BOOL WINAPI SetHandleInformation(HANDLE,DWORD,DWORD); -BOOL WINAPI SetKernelObjectSecurity(HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -void WINAPI SetLastError(DWORD); -void WINAPI SetLastErrorEx(DWORD,DWORD); -BOOL WINAPI SetLocalTime(const SYSTEMTIME*); -BOOL WINAPI SetMailslotInfo(HANDLE,DWORD); -BOOL WINAPI SetNamedPipeHandleState(HANDLE,PDWORD,PDWORD,PDWORD); -BOOL WINAPI SetPriorityClass(HANDLE,DWORD); -BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR *,PGENERIC_MAPPING,HANDLE); -BOOL WINAPI SetProcessAffinityMask(HANDLE,DWORD); -BOOL WINAPI SetProcessPriorityBoost(HANDLE,BOOL); -BOOL WINAPI SetProcessShutdownParameters(DWORD,DWORD); -BOOL WINAPI SetProcessWorkingSetSize(HANDLE,DWORD,DWORD); -BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL); -BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL); -BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR,PSID,BOOL); -BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR,PSID,BOOL); -BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,BOOL,PACL,BOOL); -BOOL WINAPI SetStdHandle(DWORD,HANDLE); -#define SetSwapAreaSize(w) (w) -BOOL WINAPI SetSystemPowerState(BOOL,BOOL); -BOOL WINAPI SetSystemTime(const SYSTEMTIME*); -BOOL WINAPI SetSystemTimeAdjustment(DWORD,BOOL); -DWORD WINAPI SetTapeParameters(HANDLE,DWORD,PVOID); -DWORD WINAPI SetTapePosition(HANDLE,DWORD,DWORD,DWORD,DWORD,BOOL); -DWORD WINAPI SetThreadAffinityMask(HANDLE,DWORD); -BOOL WINAPI SetThreadContext(HANDLE,const CONTEXT*); -DWORD WINAPI SetThreadIdealProcessor(HANDLE,DWORD); -BOOL WINAPI SetThreadPriority(HANDLE,int); -BOOL WINAPI SetThreadPriorityBoost(HANDLE,BOOL); -BOOL WINAPI SetThreadToken (PHANDLE,HANDLE); -BOOL WINAPI SetTimeZoneInformation(const TIME_ZONE_INFORMATION *); -BOOL WINAPI SetTokenInformation(HANDLE,TOKEN_INFORMATION_CLASS,PVOID,DWORD); -LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER); -BOOL WINAPI SetupComm(HANDLE,DWORD,DWORD); -BOOL WINAPI SetVolumeLabelA(LPCSTR,LPCSTR); -BOOL WINAPI SetVolumeLabelW(LPCWSTR,LPCWSTR); -BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,PVOID,BOOL); -BOOL WINAPI SignalObjectAndWait(HANDLE,HANDLE,DWORD,BOOL); -DWORD WINAPI SizeofResource(HINSTANCE,HRSRC); -void WINAPI Sleep(DWORD); -DWORD WINAPI SleepEx(DWORD,BOOL); -DWORD WINAPI SuspendThread(HANDLE); -void WINAPI SwitchToFiber(PVOID); -BOOL WINAPI SwitchToThread(void); -BOOL WINAPI SystemTimeToFileTime(const SYSTEMTIME*,LPFILETIME); -BOOL WINAPI SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION,LPSYSTEMTIME,LPSYSTEMTIME); -BOOL WINAPI TerminateProcess(HANDLE,UINT); -BOOL WINAPI TerminateThread(HANDLE,DWORD); -DWORD WINAPI TlsAlloc(VOID); -BOOL WINAPI TlsFree(DWORD); -PVOID WINAPI TlsGetValue(DWORD); -BOOL WINAPI TlsSetValue(DWORD,PVOID); -BOOL WINAPI TransactNamedPipe(HANDLE,PVOID,DWORD,PVOID,DWORD,PDWORD,LPOVERLAPPED); -BOOL WINAPI TransmitCommChar(HANDLE,char); -BOOL WINAPI TryEnterCriticalSection(LPCRITICAL_SECTION); -LONG WINAPI UnhandledExceptionFilter(LPEXCEPTION_POINTERS); -BOOL WINAPI UnlockFile(HANDLE,DWORD,DWORD,DWORD,DWORD); -BOOL WINAPI UnlockFileEx(HANDLE,DWORD,DWORD,DWORD,LPOVERLAPPED); -#define UnlockResource(h) (h) -#define UnlockSegment(w) GlobalUnfix((HANDLE)(w)) -BOOL WINAPI UnmapViewOfFile(PVOID); -BOOL WINAPI UpdateResourceA(HANDLE,LPCSTR,LPCSTR,WORD,PVOID,DWORD); -BOOL WINAPI UpdateResourceW(HANDLE,LPCWSTR,LPCWSTR,WORD,PVOID,DWORD); -BOOL WINAPI VerifyVersionInfoA(LPOSVERSIONINFOEXA,DWORD,DWORDLONG); -BOOL WINAPI VerifyVersionInfoW(LPOSVERSIONINFOEXW,DWORD,DWORDLONG); -PVOID WINAPI VirtualAlloc(PVOID,DWORD,DWORD,DWORD); -PVOID WINAPI VirtualAllocEx(HANDLE,PVOID,DWORD,DWORD,DWORD); -BOOL WINAPI VirtualFree(PVOID,DWORD,DWORD); -BOOL WINAPI VirtualFreeEx(HANDLE,PVOID,DWORD,DWORD); -BOOL WINAPI VirtualLock(PVOID,DWORD); -BOOL WINAPI VirtualProtect(PVOID,DWORD,DWORD,PDWORD); -BOOL WINAPI VirtualProtectEx(HANDLE,PVOID,DWORD,DWORD,PDWORD); -DWORD WINAPI VirtualQuery(LPCVOID,PMEMORY_BASIC_INFORMATION,DWORD); -DWORD WINAPI VirtualQueryEx(HANDLE,LPCVOID,PMEMORY_BASIC_INFORMATION,DWORD); -BOOL WINAPI VirtualUnlock(PVOID,DWORD); -BOOL WINAPI WaitCommEvent(HANDLE,PDWORD,LPOVERLAPPED); -BOOL WINAPI WaitForDebugEvent(LPDEBUG_EVENT,DWORD); -DWORD WINAPI WaitForMultipleObjects(DWORD,const HANDLE*,BOOL,DWORD); -DWORD WINAPI WaitForMultipleObjectsEx(DWORD,const HANDLE*,BOOL,DWORD,BOOL); -DWORD WINAPI WaitForSingleObject(HANDLE,DWORD); -DWORD WINAPI WaitForSingleObjectEx(HANDLE,DWORD,BOOL); -BOOL WINAPI WaitNamedPipeA(LPCSTR,DWORD); -BOOL WINAPI WaitNamedPipeW(LPCWSTR,DWORD); -BOOL WINAPI WinLoadTrustProvider(GUID*); -BOOL WINAPI WriteFile(HANDLE,PCVOID,DWORD,PDWORD,LPOVERLAPPED); -BOOL WINAPI WriteFileEx(HANDLE,PCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE); -BOOL WINAPI WritePrivateProfileSectionA(LPCSTR,LPCSTR,LPCSTR); -BOOL WINAPI WritePrivateProfileSectionW(LPCWSTR,LPCWSTR,LPCWSTR); -BOOL WINAPI WritePrivateProfileStringA(LPCSTR,LPCSTR,LPCSTR,LPCSTR); -BOOL WINAPI WritePrivateProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); -BOOL WINAPI WritePrivateProfileStructA(LPCSTR,LPCSTR,PVOID,UINT,LPCSTR); -BOOL WINAPI WritePrivateProfileStructW(LPCWSTR,LPCWSTR,PVOID,UINT,LPCWSTR); -BOOL WINAPI WriteProcessMemory(HANDLE,PVOID,PVOID,DWORD,PDWORD); -BOOL WINAPI WriteProfileSectionA(LPCSTR,LPCSTR); -BOOL WINAPI WriteProfileSectionW(LPCWSTR,LPCWSTR); -BOOL WINAPI WriteProfileStringA(LPCSTR,LPCSTR,LPCSTR); -BOOL WINAPI WriteProfileStringW(LPCWSTR,LPCWSTR,LPCWSTR); -DWORD WINAPI WriteTapemark(HANDLE,DWORD,DWORD,BOOL); -#define Yield() - -#ifdef UNICODE -typedef STARTUPINFOW STARTUPINFO,*LPSTARTUPINFO; -typedef WIN32_FIND_DATAW WIN32_FIND_DATA,*LPWIN32_FIND_DATA; -typedef HW_PROFILE_INFOW HW_PROFILE_INFO,*LPHW_PROFILE_INFO; -#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW -#define AddAtom AddAtomW -#define BackupEventLog BackupEventLogW -#define BeginUpdateResource BeginUpdateResourceW -#define BuildCommDCB BuildCommDCBW -#define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsW -#define CallNamedPipe CallNamedPipeW -#define ClearEventLog ClearEventLogW -#define CommConfigDialog CommConfigDialogW -#define CopyFile CopyFileW -#define CopyFileEx CopyFileExW -#define CreateDirectory CreateDirectoryW -#define CreateDirectoryEx CreateDirectoryExW -#define CreateEvent CreateEventW -#define CreateFile CreateFileW -#define CreateFileMapping CreateFileMappingW -#define CreateHardLink CreateHardLinkW -#define CreateMailslot CreateMailslotW -#define CreateMutex CreateMutexW -#define CreateNamedPipe CreateNamedPipeW -#define CreateProcess CreateProcessW -#define CreateProcessAsUser CreateProcessAsUserW -#define CreateSemaphore CreateSemaphoreW -#define CreateWaitableTimer CreateWaitableTimerW -#define DefineDosDevice DefineDosDeviceW -#define DeleteFile DeleteFileW -#define EndUpdateResource EndUpdateResourceW -#define EnumResourceLanguages EnumResourceLanguagesW -#define EnumResourceNames EnumResourceNamesW -#define EnumResourceTypes EnumResourceTypesW -#define ExpandEnvironmentStrings ExpandEnvironmentStringsW -#define FatalAppExit FatalAppExitW -#define FindAtom FindAtomW -#define FindFirstChangeNotification FindFirstChangeNotificationW -#define FindFirstFile FindFirstFileW -#define FindFirstFileEx FindFirstFileExW -#define FindNextFile FindNextFileW -#define FindResource FindResourceW -#define FindResourceEx FindResourceExW -#define FormatMessage FormatMessageW -#define FreeEnvironmentStrings FreeEnvironmentStringsW -#define GetAtomName GetAtomNameW -#define GetBinaryType GetBinaryTypeW -#define GetCommandLine GetCommandLineW -#define GetCompressedFileSize GetCompressedFileSizeW -#define GetComputerName GetComputerNameW -#define GetCurrentDirectory GetCurrentDirectoryW -#define GetDefaultCommConfig GetDefaultCommConfigW -#define GetDiskFreeSpace GetDiskFreeSpaceW -#define GetDiskFreeSpaceEx GetDiskFreeSpaceExW -#define GetDriveType GetDriveTypeW -#define GetEnvironmentStrings GetEnvironmentStringsW -#define GetEnvironmentVariable GetEnvironmentVariableW -#define GetFileAttributes GetFileAttributesW -#define GetFileSecurity GetFileSecurityW -#define GetFileAttributesEx GetFileAttributesExW -#define GetFullPathName GetFullPathNameW -#define GetLogicalDriveStrings GetLogicalDriveStringsW -#define GetLongPathName GetLongPathNameW -#define GetModuleFileName GetModuleFileNameW -#define GetModuleHandle GetModuleHandleW -#define GetNamedPipeHandleState GetNamedPipeHandleStateW -#define GetPrivateProfileInt GetPrivateProfileIntW -#define GetPrivateProfileSection GetPrivateProfileSectionW -#define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesW -#define GetPrivateProfileString GetPrivateProfileStringW -#define GetPrivateProfileStruct GetPrivateProfileStructW -#define GetProfileInt GetProfileIntW -#define GetProfileSection GetProfileSectionW -#define GetProfileString GetProfileStringW -#define GetShortPathName GetShortPathNameW -#define GetStartupInfo GetStartupInfoW -#define GetSystemDirectory GetSystemDirectoryW -#define GetTempFileName GetTempFileNameW -#define GetTempPath GetTempPathW -#define GetUserName GetUserNameW -#define GetVersionEx GetVersionExW -#define GetVolumeInformation GetVolumeInformationW -#define GetWindowsDirectory GetWindowsDirectoryW -#define GlobalAddAtom GlobalAddAtomW -#define GlobalFindAtom GlobalFindAtomW -#define GlobalGetAtomName GlobalGetAtomNameW -#define IsBadStringPtr IsBadStringPtrW -#define LoadLibrary LoadLibraryW -#define LoadLibraryEx LoadLibraryExW -#define LogonUser LogonUserW -#define LookupAccountName LookupAccountNameW -#define LookupAccountSid LookupAccountSidW -#define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW -#define LookupPrivilegeName LookupPrivilegeNameW -#define LookupPrivilegeValue LookupPrivilegeValueW -#define lstrcat lstrcatW -#define lstrcmp lstrcmpW -#define lstrcmpi lstrcmpiW -#define lstrcpy lstrcpyW -#define lstrcpyn lstrcpynW -#define lstrlen lstrlenW -#define MoveFile MoveFileW -#define MoveFileEx MoveFileExW -#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW -#define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW -#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW -#define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW -#define OpenBackupEventLog OpenBackupEventLogW -#define OpenEvent OpenEventW -#define OpenEventLog OpenEventLogW -#define OpenFileMapping OpenFileMappingW -#define OpenMutex OpenMutexW -#define OpenSemaphore OpenSemaphoreW -#define OutputDebugString OutputDebugStringW -#define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW -#define QueryDosDevice QueryDosDeviceW -#define ReadEventLog ReadEventLogW -#define RegisterEventSource RegisterEventSourceW -#define RemoveDirectory RemoveDirectoryW -#define ReportEvent ReportEventW -#define SearchPath SearchPathW -#define SetComputerName SetComputerNameW -#define SetCurrentDirectory SetCurrentDirectoryW -#define SetDefaultCommConfig SetDefaultCommConfigW -#define SetEnvironmentVariable SetEnvironmentVariableW -#define SetFileAttributes SetFileAttributesW -#define SetFileSecurity SetFileSecurityW -#define SetVolumeLabel SetVolumeLabelW -#define UpdateResource UpdateResourceW -#define VerifyVersionInfo VerifyVersionInfoW -#define WaitNamedPipe WaitNamedPipeW -#define WritePrivateProfileSection WritePrivateProfileSectionW -#define WritePrivateProfileString WritePrivateProfileStringW -#define WritePrivateProfileStruct WritePrivateProfileStructW -#define WriteProfileSection WriteProfileSectionW -#define WriteProfileString WriteProfileStringW -#else -typedef STARTUPINFOA STARTUPINFO,*LPSTARTUPINFO; -typedef WIN32_FIND_DATAA WIN32_FIND_DATA,*LPWIN32_FIND_DATA; -typedef HW_PROFILE_INFOA HW_PROFILE_INFO,*LPHW_PROFILE_INFO; -#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA -#define AddAtom AddAtomA -#define BackupEventLog BackupEventLogA -#define BeginUpdateResource BeginUpdateResourceA -#define BuildCommDCB BuildCommDCBA -#define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsA -#define CallNamedPipe CallNamedPipeA -#define ClearEventLog ClearEventLogA -#define CommConfigDialog CommConfigDialogA -#define CopyFile CopyFileA -#define CopyFileEx CopyFileExA -#define CreateDirectory CreateDirectoryA -#define CreateDirectoryEx CreateDirectoryExA -#define CreateEvent CreateEventA -#define CreateFile CreateFileA -#define CreateFileMapping CreateFileMappingA -#define CreateHardLink CreateHardLinkA -#define CreateMailslot CreateMailslotA -#define CreateMutex CreateMutexA -#define CreateNamedPipe CreateNamedPipeA -#define CreateProcess CreateProcessA -#define CreateProcessAsUser CreateProcessAsUserA -#define CreateSemaphore CreateSemaphoreA -#define CreateWaitableTimer CreateWaitableTimerA -#define DefineDosDevice DefineDosDeviceA -#define DeleteFile DeleteFileA -#define EndUpdateResource EndUpdateResourceA -#define EnumResourceLanguages EnumResourceLanguagesA -#define EnumResourceNames EnumResourceNamesA -#define EnumResourceTypes EnumResourceTypesA -#define ExpandEnvironmentStrings ExpandEnvironmentStringsA -#define FatalAppExit FatalAppExitA -#define FindAtom FindAtomA -#define FindFirstChangeNotification FindFirstChangeNotificationA -#define FindFirstFile FindFirstFileA -#define FindFirstFileEx FindFirstFileExW -#define FindNextFile FindNextFileA -#define FindResource FindResourceA -#define FindResourceEx FindResourceExA -#define FormatMessage FormatMessageA -#define FreeEnvironmentStrings FreeEnvironmentStringsA -#define GetAtomName GetAtomNameA -#define GetBinaryType GetBinaryTypeA -#define GetCommandLine GetCommandLineA -#define GetComputerName GetComputerNameA -#define GetCompressedFileSize GetCompressedFileSizeA -#define GetCurrentDirectory GetCurrentDirectoryA -#define GetDefaultCommConfig GetDefaultCommConfigA -#define GetDiskFreeSpace GetDiskFreeSpaceA -#define GetDiskFreeSpaceEx GetDiskFreeSpaceExA -#define GetDriveType GetDriveTypeA -#define GetEnvironmentStringsA GetEnvironmentStrings -#define GetEnvironmentVariable GetEnvironmentVariableA -#define GetFileAttributes GetFileAttributesA -#define GetFileSecurity GetFileSecurityA -#define GetFileAttributesEx GetFileAttributesExA -#define GetFullPathName GetFullPathNameA -#define GetLogicalDriveStrings GetLogicalDriveStringsA -#define GetLongPathName GetLongPathNameA -#define GetNamedPipeHandleState GetNamedPipeHandleStateA -#define GetModuleHandle GetModuleHandleA -#define GetModuleFileName GetModuleFileNameA -#define GetPrivateProfileInt GetPrivateProfileIntA -#define GetPrivateProfileSection GetPrivateProfileSectionA -#define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesA -#define GetPrivateProfileString GetPrivateProfileStringA -#define GetPrivateProfileStruct GetPrivateProfileStructA -#define GetProfileInt GetProfileIntA -#define GetProfileSection GetProfileSectionA -#define GetProfileString GetProfileStringA -#define GetShortPathName GetShortPathNameA -#define GetStartupInfo GetStartupInfoA -#define GetSystemDirectory GetSystemDirectoryA -#define GetTempFileName GetTempFileNameA -#define GetTempPath GetTempPathA -#define GetUserName GetUserNameA -#define GetVersionEx GetVersionExA -#define GetVolumeInformation GetVolumeInformationA -#define GetWindowsDirectory GetWindowsDirectoryA -#define GlobalAddAtom GlobalAddAtomA -#define GlobalFindAtom GlobalFindAtomA -#define GlobalGetAtomName GlobalGetAtomNameA -#define IsBadStringPtr IsBadStringPtrA -#define LoadLibrary LoadLibraryA -#define LoadLibraryEx LoadLibraryExA -#define LogonUser LogonUserA -#define LookupAccountName LookupAccountNameA -#define LookupAccountSid LookupAccountSidA -#define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA -#define LookupPrivilegeName LookupPrivilegeNameA -#define LookupPrivilegeValue LookupPrivilegeValueA -#define lstrcat lstrcatA -#define lstrcmp lstrcmpA -#define lstrcmpi lstrcmpiA -#define lstrcpy lstrcpyA -#define lstrcpyn lstrcpynA -#define lstrlen lstrlenA -#define MoveFile MoveFileA -#define MoveFileEx MoveFileExA -#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA -#define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA -#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA -#define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA -#define OpenBackupEventLog OpenBackupEventLogA -#define OpenEvent OpenEventA -#define OpenEventLog OpenEventLogA -#define OpenFileMapping OpenFileMappingA -#define OpenMutex OpenMutexA -#define OpenSemaphore OpenSemaphoreA -#define OutputDebugString OutputDebugStringA -#define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA -#define QueryDosDevice QueryDosDeviceA -#define ReadEventLog ReadEventLogA -#define RegisterEventSource RegisterEventSourceA -#define RemoveDirectory RemoveDirectoryA -#define ReportEvent ReportEventA -#define SearchPath SearchPathA -#define SetComputerName SetComputerNameA -#define SetCurrentDirectory SetCurrentDirectoryA -#define SetDefaultCommConfig SetDefaultCommConfigA -#define SetEnvironmentVariable SetEnvironmentVariableA -#define SetFileAttributes SetFileAttributesA -#define SetFileSecurity SetFileSecurityA -#define SetVolumeLabel SetVolumeLabelA -#define UpdateResource UpdateResourceA -#define VerifyVersionInfo VerifyVersionInfoA -#define WaitNamedPipe WaitNamedPipeA -#define WritePrivateProfileSection WritePrivateProfileSectionA -#define WritePrivateProfileString WritePrivateProfileStringA -#define WritePrivateProfileStruct WritePrivateProfileStructA -#define WriteProfileSection WriteProfileSectionA -#define WriteProfileString WriteProfileStringA -#endif -#endif -#ifdef __cplusplus -} -#endif -#endif /* _WINBASE_H */ diff --git a/winsup/w32api/include/wincon.h b/winsup/w32api/include/wincon.h deleted file mode 100644 index 4ed04abf1..000000000 --- a/winsup/w32api/include/wincon.h +++ /dev/null @@ -1,203 +0,0 @@ -#ifndef _WINCON_H -#define _WINCON_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define FOREGROUND_BLUE 1 -#define FOREGROUND_GREEN 2 -#define FOREGROUND_RED 4 -#define FOREGROUND_INTENSITY 8 -#define BACKGROUND_BLUE 16 -#define BACKGROUND_GREEN 32 -#define BACKGROUND_RED 64 -#define BACKGROUND_INTENSITY 128 -#define CTRL_C_EVENT 0 -#define CTRL_BREAK_EVENT 1 -#define CTRL_CLOSE_EVENT 2 -#define CTRL_LOGOFF_EVENT 5 -#define CTRL_SHUTDOWN_EVENT 6 -#define ENABLE_LINE_INPUT 2 -#define ENABLE_ECHO_INPUT 4 -#define ENABLE_PROCESSED_INPUT 1 -#define ENABLE_WINDOW_INPUT 8 -#define ENABLE_MOUSE_INPUT 16 -#define ENABLE_PROCESSED_OUTPUT 1 -#define ENABLE_WRAP_AT_EOL_OUTPUT 2 -#define KEY_EVENT 1 -#define MOUSE_EVENT 2 -#define WINDOW_BUFFER_SIZE_EVENT 4 -#define MENU_EVENT 8 -#define FOCUS_EVENT 16 -#define CAPSLOCK_ON 128 -#define ENHANCED_KEY 256 -#define RIGHT_ALT_PRESSED 1 -#define LEFT_ALT_PRESSED 2 -#define RIGHT_CTRL_PRESSED 4 -#define LEFT_CTRL_PRESSED 8 -#define SHIFT_PRESSED 16 -#define NUMLOCK_ON 32 -#define SCROLLLOCK_ON 64 -#define FROM_LEFT_1ST_BUTTON_PRESSED 1 -#define RIGHTMOST_BUTTON_PRESSED 2 -#define FROM_LEFT_2ND_BUTTON_PRESSED 4 -#define FROM_LEFT_3RD_BUTTON_PRESSED 8 -#define FROM_LEFT_4TH_BUTTON_PRESSED 16 -#define MOUSE_MOVED 1 -#define DOUBLE_CLICK 2 -#define MOUSE_WHEELED 4 - -typedef struct _CHAR_INFO { - union { - WCHAR UnicodeChar; - CHAR AsciiChar; - } Char; - WORD Attributes; -} CHAR_INFO,*PCHAR_INFO; -typedef struct _SMALL_RECT { - SHORT Left; - SHORT Top; - SHORT Right; - SHORT Bottom; -} SMALL_RECT,*PSMALL_RECT; -typedef struct _CONSOLE_CURSOR_INFO { - DWORD dwSize; - BOOL bVisible; -} CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO; -typedef struct _COORD { - SHORT X; - SHORT Y; -} COORD; -typedef struct _CONSOLE_SCREEN_BUFFER_INFO { - COORD dwSize; - COORD dwCursorPosition; - WORD wAttributes; - SMALL_RECT srWindow; - COORD dwMaximumWindowSize; -} CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO; -typedef BOOL(CALLBACK *PHANDLER_ROUTINE)(DWORD); -typedef struct _KEY_EVENT_RECORD { - BOOL bKeyDown; - WORD wRepeatCount; - WORD wVirtualKeyCode; - WORD wVirtualScanCode; - union { - WCHAR UnicodeChar; - CHAR AsciiChar; - } uChar; - DWORD dwControlKeyState; -} -#ifdef __GNUC__ -/* gcc's alignment is not what win32 expects */ - PACKED -#endif -KEY_EVENT_RECORD; - -typedef struct _MOUSE_EVENT_RECORD { - COORD dwMousePosition; - DWORD dwButtonState; - DWORD dwControlKeyState; - DWORD dwEventFlags; -} MOUSE_EVENT_RECORD; -typedef struct _WINDOW_BUFFER_SIZE_RECORD { COORD dwSize; } WINDOW_BUFFER_SIZE_RECORD; -typedef struct _MENU_EVENT_RECORD { UINT dwCommandId; } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD; -typedef struct _FOCUS_EVENT_RECORD { BOOL bSetFocus; } FOCUS_EVENT_RECORD; -typedef struct _INPUT_RECORD { - WORD EventType; - union { - KEY_EVENT_RECORD KeyEvent; - MOUSE_EVENT_RECORD MouseEvent; - WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; - MENU_EVENT_RECORD MenuEvent; - FOCUS_EVENT_RECORD FocusEvent; - } Event; -} INPUT_RECORD,*PINPUT_RECORD; - -BOOL WINAPI AllocConsole(void); -HANDLE WINAPI CreateConsoleScreenBuffer(DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,PVOID); -BOOL WINAPI FillConsoleOutputAttribute(HANDLE,WORD,DWORD,COORD,PDWORD); -BOOL WINAPI FillConsoleOutputCharacterA(HANDLE,CHAR,DWORD,COORD,PDWORD); -BOOL WINAPI FillConsoleOutputCharacterW(HANDLE,WCHAR,DWORD,COORD,PDWORD); -BOOL WINAPI FlushConsoleInputBuffer(HANDLE); -BOOL WINAPI FreeConsole(void); -BOOL WINAPI GenerateConsoleCtrlEvent(DWORD,DWORD); -UINT WINAPI GetConsoleCP(void); -BOOL WINAPI GetConsoleCursorInfo(HANDLE,PCONSOLE_CURSOR_INFO); -BOOL WINAPI GetConsoleMode(HANDLE,PDWORD); -UINT WINAPI GetConsoleOutputCP(void); -BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE,PCONSOLE_SCREEN_BUFFER_INFO); -DWORD WINAPI GetConsoleTitleA(LPSTR,DWORD); -DWORD WINAPI GetConsoleTitleW(LPWSTR,DWORD); -COORD WINAPI GetLargestConsoleWindowSize(HANDLE); -BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE,PDWORD); -BOOL WINAPI GetNumberOfConsoleMouseButtons(PDWORD); -BOOL WINAPI PeekConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD); -BOOL WINAPI PeekConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD); -BOOL WINAPI ReadConsoleA(HANDLE,PVOID,DWORD,PDWORD,PVOID); -BOOL WINAPI ReadConsoleW(HANDLE,PVOID,DWORD,PDWORD,PVOID); -BOOL WINAPI ReadConsoleInputA(HANDLE,PINPUT_RECORD,DWORD,PDWORD); -BOOL WINAPI ReadConsoleInputW(HANDLE,PINPUT_RECORD,DWORD,PDWORD); -BOOL WINAPI ReadConsoleOutputAttribute(HANDLE,LPWORD,DWORD,COORD,LPDWORD); -BOOL WINAPI ReadConsoleOutputCharacterA(HANDLE,LPSTR,DWORD,COORD,PDWORD); -BOOL WINAPI ReadConsoleOutputCharacterW(HANDLE,LPWSTR,DWORD,COORD,PDWORD); -BOOL WINAPI ReadConsoleOutputA(HANDLE,PCHAR_INFO,COORD,COORD,PSMALL_RECT); -BOOL WINAPI ReadConsoleOutputW(HANDLE,PCHAR_INFO,COORD,COORD,PSMALL_RECT); -BOOL WINAPI ScrollConsoleScreenBufferA(HANDLE,const SMALL_RECT*,const SMALL_RECT*,COORD,const CHAR_INFO*); -BOOL WINAPI ScrollConsoleScreenBufferW(HANDLE,const SMALL_RECT*,const SMALL_RECT*,COORD,const CHAR_INFO*); -BOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE); -BOOL WINAPI SetConsoleCP(UINT); -BOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE,BOOL); -BOOL WINAPI SetConsoleCursorInfo(HANDLE,const CONSOLE_CURSOR_INFO*); -BOOL WINAPI SetConsoleCursorPosition(HANDLE,COORD); -BOOL WINAPI SetConsoleMode(HANDLE,DWORD); -BOOL WINAPI SetConsoleOutputCP(UINT); -BOOL WINAPI SetConsoleScreenBufferSize(HANDLE,COORD); -BOOL WINAPI SetConsoleTextAttribute(HANDLE,WORD); -BOOL WINAPI SetConsoleTitleA(LPCSTR); -BOOL WINAPI SetConsoleTitleW(LPCWSTR); -BOOL WINAPI SetConsoleWindowInfo(HANDLE,BOOL,const SMALL_RECT*); -BOOL WINAPI WriteConsoleA(HANDLE,PCVOID,DWORD,PDWORD,PVOID); -BOOL WINAPI WriteConsoleW(HANDLE,PCVOID,DWORD,PDWORD,PVOID); -BOOL WINAPI WriteConsoleInputA(HANDLE,const INPUT_RECORD*,DWORD,PDWORD); -BOOL WINAPI WriteConsoleInputW(HANDLE,const INPUT_RECORD*,DWORD,PDWORD); -BOOL WINAPI WriteConsoleOutputA(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT); -BOOL WINAPI WriteConsoleOutputW(HANDLE,const CHAR_INFO*,COORD,COORD,PSMALL_RECT); -BOOL WINAPI WriteConsoleOutputAttribute(HANDLE,const WORD*,DWORD,COORD,PDWORD); -BOOL WINAPI WriteConsoleOutputCharacterA(HANDLE,LPCSTR,DWORD,COORD,PDWORD); -BOOL WINAPI WriteConsoleOutputCharacterW(HANDLE,LPCWSTR,DWORD,COORD,PDWORD); - -#ifdef UNICODE -#define FillConsoleOutputCharacter FillConsoleOutputCharacterW -#define GetConsoleTitle GetConsoleTitleW -#define PeekConsoleInput PeekConsoleInputW -#define ReadConsole ReadConsoleW -#define ReadConsoleInput ReadConsoleInputW -#define ReadConsoleOutput ReadConsoleOutputW -#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterW -#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferW -#define SetConsoleTitle SetConsoleTitleW -#define WriteConsole WriteConsoleW -#define WriteConsoleInput WriteConsoleInputW -#define WriteConsoleOutput WriteConsoleOutputW -#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterW -#else -#define FillConsoleOutputCharacter FillConsoleOutputCharacterA -#define GetConsoleTitle GetConsoleTitleA -#define PeekConsoleInput PeekConsoleInputA -#define ReadConsole ReadConsoleA -#define ReadConsoleInput ReadConsoleInputA -#define ReadConsoleOutput ReadConsoleOutputA -#define ReadConsoleOutputCharacter ReadConsoleOutputCharacterA -#define ScrollConsoleScreenBuffer ScrollConsoleScreenBufferA -#define SetConsoleTitle SetConsoleTitleA -#define WriteConsole WriteConsoleA -#define WriteConsoleInput WriteConsoleInputA -#define WriteConsoleOutput WriteConsoleOutputA -#define WriteConsoleOutputCharacter WriteConsoleOutputCharacterA -#endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/wincrypt.h b/winsup/w32api/include/wincrypt.h deleted file mode 100644 index 8ec97703b..000000000 --- a/winsup/w32api/include/wincrypt.h +++ /dev/null @@ -1,549 +0,0 @@ -#ifndef _WINCRYPT_H -#define _WINCRYPT_H -#ifdef __cplusplus -extern "C" { -#endif -#define MS_DEF_PROV_A "Microsoft Base Cryptographic Provider v1.0" -#define MS_DEF_PROV_W L"Microsoft Base Cryptographic Provider v1.0" -#define GET_ALG_CLASS(x) (x&57344) -#define GET_ALG_TYPE(x) (x&7680) -#define GET_ALG_SID(x) (x&511) -#define ALG_CLASS_ANY 0 -#define ALG_CLASS_SIGNATURE 8192 -#define ALG_CLASS_MSG_ENCRYPT 16384 -#define ALG_CLASS_DATA_ENCRYPT 24576 -#define ALG_CLASS_HASH 32768 -#define ALG_CLASS_KEY_EXCHANGE 40960 -#define ALG_TYPE_ANY 0 -#define ALG_TYPE_DSS 512 -#define ALG_TYPE_RSA 1024 -#define ALG_TYPE_BLOCK 1536 -#define ALG_TYPE_STREAM 2048 -#define ALG_SID_ANY 0 -#define ALG_SID_RSA_ANY 0 -#define ALG_SID_RSA_PKCS 1 -#define ALG_SID_RSA_MSATWORK 2 -#define ALG_SID_RSA_ENTRUST 3 -#define ALG_SID_RSA_PGP 4 -#define ALG_SID_DSS_ANY 0 -#define ALG_SID_DSS_PKCS 1 -#define ALG_SID_DSS_DMS 2 -#define ALG_SID_DES 1 -#define ALG_SID_RC2 2 -#define ALG_SID_RC4 1 -#define ALG_SID_SEAL 2 -#define ALG_SID_MD2 1 -#define ALG_SID_MD4 2 -#define ALG_SID_MD5 3 -#define ALG_SID_SHA 4 -#define ALG_SID_MAC 5 -#define ALG_SID_EXAMPLE 80 -#define CALG_MD2 (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MD2) -#define CALG_MD4 (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MD4) -#define CALG_MD5 (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MD5) -#define CALG_SHA (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_SHA) -#define CALG_MAC (ALG_CLASS_HASH|ALG_TYPE_ANY|ALG_SID_MAC) -#define CALG_3DES (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|3) -#define CALG_CYLINK_MEK (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|12) -#define CALG_SKIPJACK (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|10) -#define CALG_KEA_KEYX (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_STREAM|ALG_TYPE_DSS|4) -#define CALG_RSA_SIGN (ALG_CLASS_SIGNATURE|ALG_TYPE_RSA|ALG_SID_RSA_ANY) -#define CALG_DSS_SIGN (ALG_CLASS_SIGNATURE|ALG_TYPE_DSS|ALG_SID_DSS_ANY) -#define CALG_RSA_KEYX (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_RSA|ALG_SID_RSA_ANY) -#define CALG_DES (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DES) -#define CALG_RC2 (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC2) -#define CALG_RC4 (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_RC4) -#define CALG_SEAL (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_SEAL) -#define CALG_DH_EPHEM (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_STREAM|ALG_TYPE_DSS|ALG_SID_DSS_DMS) - -#define CRYPT_VERIFYCONTEXT 0xF0000000 -#define CRYPT_NEWKEYSET 8 -#define CRYPT_DELETEKEYSET 16 -#define CRYPT_MACHINE_KEYSET 32 -#define CRYPT_EXPORTABLE 1 -#define CRYPT_USER_PROTECTED 2 -#define CRYPT_CREATE_SALT 4 -#define CRYPT_UPDATE_KEY 8 -#define SIMPLEBLOB 1 -#define PUBLICKEYBLOB 6 -#define AT_KEYEXCHANGE 1 -#define AT_SIGNATURE 2 -#define CRYPT_USERDATA 1 -#define KP_IV 1 -#define KP_SALT 2 -#define KP_PADDING 3 -#define KP_MODE 4 -#define KP_MODE_BITS 5 -#define KP_PERMISSIONS 6 -#define KP_ALGID 7 -#define KP_BLOCKLEN 8 -#define PKCS5_PADDING 1 -#define CRYPT_MODE_CBC 1 -#define CRYPT_MODE_ECB 2 -#define CRYPT_MODE_OFB 3 -#define CRYPT_MODE_CFB 4 -#define CRYPT_MODE_CTS 5 -#define CRYPT_ENCRYPT 1 -#define CRYPT_DECRYPT 2 -#define CRYPT_EXPORT 4 -#define CRYPT_READ 8 -#define CRYPT_WRITE 16 -#define CRYPT_MAC 32 -#define HP_ALGID 1 -#define HP_HASHVAL 2 -#define HP_HASHSIZE 4 -#define CRYPT_FAILED FALSE -#define CRYPT_SUCCEED TRUE -#define RCRYPT_SUCCEEDED(r) ((r)==CRYPT_SUCCEED) -#define RCRYPT_FAILED(r) ((r)==CRYPT_FAILED) -#define PP_ENUMALGS 1 -#define PP_ENUMCONTAINERS 2 -#define PP_IMPTYPE 3 -#define PP_NAME 4 -#define PP_VERSION 5 -#define PP_CONTAINER 6 -#define CRYPT_FIRST 1 -#define CRYPT_NEXT 2 -#define CRYPT_IMPL_HARDWARE 1 -#define CRYPT_IMPL_SOFTWARE 2 -#define CRYPT_IMPL_MIXED 3 -#define CRYPT_IMPL_UNKNOWN 4 -#define PROV_RSA_FULL 1 -#define PROV_RSA_SIG 2 -#define PROV_DSS 3 -#define PROV_FORTEZZA 4 -#define PROV_MS_MAIL 5 -#define PROV_SSL 6 -#define PROV_STT_MER 7 -#define PROV_STT_ACQ 8 -#define PROV_STT_BRND 9 -#define PROV_STT_ROOT 10 -#define PROV_STT_ISS 11 -#define MAXUIDLEN 64 -#define CUR_BLOB_VERSION 2 -#define X509_ASN_ENCODING 1 -#define PKCS_7_ASN_ENCODING 65536 -#define CERT_V1 0 -#define CERT_V2 1 -#define CERT_V3 2 -#define CERT_E_CHAINING (-2146762486) -#define CERT_E_CN_NO_MATCH (-2146762481) -#define CERT_E_EXPIRED (-2146762495) -#define CERT_E_PURPOSE (-2146762490) -#define CERT_E_REVOCATION_FAILURE (-2146762482) -#define CERT_E_REVOKED (-2146762484) -#define CERT_E_ROLE (-2146762493) -#define CERT_E_UNTRUSTEDROOT (-2146762487) -#define CERT_E_UNTRUSTEDTESTROOT (-2146762483) -#define CERT_E_VALIDITYPERIODNESTING (-2146762494) -#define CERT_E_WRONG_USAGE (-2146762480) -#define CERT_E_PATHLENCONST (-2146762492) -#define CERT_E_CRITICAL (-2146762491) -#define CERT_E_ISSUERCHAINING (-2146762489) -#define CERT_E_MALFORMED (-2146762488) -#define CRYPT_E_REVOCATION_OFFLINE (-2146885613) -#define CRYPT_E_REVOKED (-2146885616) -#define TRUST_E_BASIC_CONSTRAINTS (-2146869223) -#define TRUST_E_CERT_SIGNATURE (-2146869244) -#define TRUST_E_FAIL (-2146762485) -#define CERT_TRUST_NO_ERROR 0 -#define CERT_TRUST_IS_NOT_TIME_VALID 1 -#define CERT_TRUST_IS_NOT_TIME_NESTED 2 -#define CERT_TRUST_IS_REVOKED 4 -#define CERT_TRUST_IS_NOT_SIGNATURE_VALID 8 -#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE 16 -#define CERT_TRUST_IS_UNTRUSTED_ROOT 32 -#define CERT_TRUST_REVOCATION_STATUS_UNKNOWN 64 -#define CERT_TRUST_IS_CYCLIC 128 -#define CERT_TRUST_IS_PARTIAL_CHAIN 65536 -#define CERT_TRUST_CTL_IS_NOT_TIME_VALID 131072 -#define CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID 262144 -#define CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE 524288 -#define CERT_TRUST_HAS_EXACT_MATCH_ISSUER 1 -#define CERT_TRUST_HAS_KEY_MATCH_ISSUER 2 -#define CERT_TRUST_HAS_NAME_MATCH_ISSUER 4 -#define CERT_TRUST_IS_SELF_SIGNED 8 -#define CERT_TRUST_IS_COMPLEX_CHAIN 65536 -#define CERT_CHAIN_POLICY_BASE ((LPCSTR) 1) -#define CERT_CHAIN_POLICY_AUTHENTICODE ((LPCSTR) 2) -#define CERT_CHAIN_POLICY_AUTHENTICODE_TS ((LPCSTR) 3) -#define CERT_CHAIN_POLICY_SSL ((LPCSTR) 4) -#define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS ((LPCSTR) 5) -#define CERT_CHAIN_POLICY_NT_AUTH ((LPCSTR) 6) -#define USAGE_MATCH_TYPE_AND 0 -#define USAGE_MATCH_TYPE_OR 1 -#define CERT_SIMPLE_NAME_STR 1 -#define CERT_OID_NAME_STR 2 -#define CERT_X500_NAME_STR 3 -#define CERT_NAME_STR_SEMICOLON_FLAG 1073741824 -#define CERT_NAME_STR_CRLF_FLAG 134217728 -#define CERT_NAME_STR_NO_PLUS_FLAG 536870912 -#define CERT_NAME_STR_NO_QUOTING_FLAG 268435456 -#define CERT_NAME_STR_REVERSE_FLAG 33554432 -#define CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG 131072 -#define CERT_FIND_ANY 0 -#define CERT_FIND_CERT_ID 1048576 -#define CERT_FIND_CTL_USAGE 655360 -#define CERT_FIND_ENHKEY_USAGE 655360 -#define CERT_FIND_EXISTING 851968 -#define CERT_FIND_HASH 65536 -#define CERT_FIND_ISSUER_ATTR 196612 -#define CERT_FIND_ISSUER_NAME 131076 -#define CERT_FIND_ISSUER_OF 786432 -#define CERT_FIND_KEY_IDENTIFIER 983040 -#define CERT_FIND_KEY_SPEC 589824 -#define CERT_FIND_MD5_HASH 262144 -#define CERT_FIND_PROPERTY 327680 -#define CERT_FIND_PUBLIC_KEY 393216 -#define CERT_FIND_SHA1_HASH 65536 -#define CERT_FIND_SIGNATURE_HASH 917504 -#define CERT_FIND_SUBJECT_ATTR 196615 -#define CERT_FIND_SUBJECT_CERT 720896 -#define CERT_FIND_SUBJECT_NAME 131079 -#define CERT_FIND_SUBJECT_STR_A 458759 -#define CERT_FIND_SUBJECT_STR_W 524295 -#define CERT_FIND_ISSUER_STR_A 458756 -#define CERT_FIND_ISSUER_STR_W 524292 -#define CERT_FIND_OR_ENHKEY_USAGE_FLAG 16 -#define CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG 1 -#define CERT_FIND_NO_ENHKEY_USAGE_FLAG 8 -#define CERT_FIND_VALID_ENHKEY_USAGE_FLAG 32 -#define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG 2 -#define CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG 2 -#define CERT_UNICODE_IS_RDN_ATTRS_FLAG 1 -#define CERT_CHAIN_FIND_BY_ISSUER 1 -#define CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG 1 -#define CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG 2 -#define CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG 32768 -#define CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG 4 -#define CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG 8 -#define CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG 16384 -#define CERT_STORE_PROV_SYSTEM 10 -#define CERT_SYSTEM_STORE_LOCAL_MACHINE 131072 -#define szOID_PKIX_KP_SERVER_AUTH "4235600" -#define szOID_SERVER_GATED_CRYPTO "4235658" -#define szOID_SGC_NETSCAPE "2.16.840.1.113730.4.1" -#define szOID_PKIX_KP_CLIENT_AUTH "1.3.6.1.5.5.7.3.2" - -typedef UINT ALG_ID; -typedef struct _VTableProvStruc {FARPROC FuncVerifyImage;} VTableProvStruc,*PVTableProvStruc; -typedef ULONG HCRYPTPROV; -typedef ULONG HCRYPTKEY; -typedef ULONG HCRYPTHASH; -typedef PVOID HCERTSTORE; -typedef PVOID HCRYPTMSG; -typedef PVOID HCERTCHAINENGINE; -typedef struct _CRYPTOAPI_BLOB { - DWORD cbData; - BYTE* pbData; -} CRYPT_INTEGER_BLOB, *PCRYPT_INTEGER_BLOB, - CRYPT_UINT_BLOB, *PCRYPT_UINT_BLOB, - CRYPT_OBJID_BLOB, *PCRYPT_OBJID_BLOB, - CERT_NAME_BLOB, *PCERT_NAME_BLOB, - CERT_RDN_VALUE_BLOB,*PCERT_RDN_VALUE_BLOB, - CERT_BLOB, *PCERT_BLOB, - CRL_BLOB, *PCRL_BLOB, - DATA_BLOB, *PDATA_BLOB, - CRYPT_DATA_BLOB, *PCRYPT_DATA_BLOB, - CRYPT_HASH_BLOB, *PCRYPT_HASH_BLOB, - CRYPT_DIGEST_BLOB, *PCRYPT_DIGEST_BLOB, - CRYPT_DER_BLOB, *PCRYPT_DER_BLOB, - CRYPT_ATTR_BLOB, *PCRYPT_ATTR_BLOB; -/* not described in SDK; has the same layout as HTTPSPolicyCallbackData */ -typedef struct _SSL_EXTRA_CERT_CHAIN_POLICY_PARA { - DWORD cbStruct; - DWORD dwAuthType; - DWORD fdwChecks; - LPWSTR pwszServerName; -} SSL_EXTRA_CERT_CHAIN_POLICY_PARA, *PSSL_EXTRA_CERT_CHAIN_POLICY_PARA, - HTTPSPolicyCallbackData, *PHTTPSPolicyCallbackData; -/* #if (_WIN32_WINNT>=0x500) */ -typedef struct _CERT_CHAIN_POLICY_PARA { - DWORD cbSize; - DWORD dwFlags; - void* pvExtraPolicyPara; -} CERT_CHAIN_POLICY_PARA, *PCERT_CHAIN_POLICY_PARA; -typedef struct _CERT_CHAIN_POLICY_STATUS { - DWORD cbSize; - DWORD dwError; - LONG lChainIndex; - LONG lElementIndex; - void* pvExtraPolicyStatus; -} CERT_CHAIN_POLICY_STATUS, *PCERT_CHAIN_POLICY_STATUS; -/* #endif */ -typedef struct _CRYPT_ALGORITHM_IDENTIFIER { - LPSTR pszObjId; - CRYPT_OBJID_BLOB Parameters; -} CRYPT_ALGORITHM_IDENTIFIER, *PCRYPT_ALGORITHM_IDENTIFIER; -typedef struct _CRYPT_BIT_BLOB { - DWORD cbData; - BYTE* pbData; - DWORD cUnusedBits; -} CRYPT_BIT_BLOB, *PCRYPT_BIT_BLOB; -typedef struct _CERT_PUBLIC_KEY_INFO { - CRYPT_ALGORITHM_IDENTIFIER Algorithm; - CRYPT_BIT_BLOB PublicKey; -} CERT_PUBLIC_KEY_INFO, *PCERT_PUBLIC_KEY_INFO; -typedef struct _CERT_EXTENSION { - LPSTR pszObjId; - BOOL fCritical; - CRYPT_OBJID_BLOB Value; -} CERT_EXTENSION, *PCERT_EXTENSION; -typedef struct _CERT_INFO { - DWORD dwVersion; - CRYPT_INTEGER_BLOB SerialNumber; - CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; - CERT_NAME_BLOB Issuer; - FILETIME NotBefore; - FILETIME NotAfter; - CERT_NAME_BLOB Subject; - CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; - CRYPT_BIT_BLOB IssuerUniqueId; - CRYPT_BIT_BLOB SubjectUniqueId; - DWORD cExtension; - PCERT_EXTENSION rgExtension; -} CERT_INFO, *PCERT_INFO; -typedef struct _CERT_CONTEXT { - DWORD dwCertEncodingType; - BYTE* pbCertEncoded; - DWORD cbCertEncoded; - PCERT_INFO pCertInfo; - HCERTSTORE hCertStore; -} CERT_CONTEXT, *PCERT_CONTEXT; -typedef const CERT_CONTEXT *PCCERT_CONTEXT; -typedef struct _CTL_USAGE { - DWORD cUsageIdentifier; - LPSTR *rgpszUsageIdentifier; -} CTL_USAGE, *PCTRL_USAGE, - CERT_ENHKEY_USAGE, *PCERT_ENHKEY_USAGE; -typedef struct _CERT_USAGE_MATCH { - DWORD dwType; - CERT_ENHKEY_USAGE Usage; -} CERT_USAGE_MATCH, *PCERT_USAGE_MATCH; -/* #if (_WIN32_WINNT>=0x500) */ -typedef struct _CERT_CHAIN_PARA { - DWORD cbSize; - CERT_USAGE_MATCH RequestedUsage; -#if CERT_CHAIN_PARA_HAS_EXTRA_FIELDS - CERT_USAGE_MATCH RequestedIssuancePolicy; - DWORD dwUrlRetrievalTimeout; - BOOL fCheckRevocationFreshnessTime; - DWORD dwRevocationFreshnessTime; -#endif -} CERT_CHAIN_PARA, *PCERT_CHAIN_PARA; -typedef BOOL (WINAPI *PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK)(PCCERT_CONTEXT,void*); -typedef struct _CERT_CHAIN_FIND_BY_ISSUER_PARA { - DWORD cbSize; - LPCSTR pszUsageIdentifier; - DWORD dwKeySpec; - DWORD dwAcquirePrivateKeyFlags; - DWORD cIssuer; - CERT_NAME_BLOB* rgIssuer; - PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK pfnFIndCallback; - void* pvFindArg; - DWORD* pdwIssuerChainIndex; - DWORD* pdwIssuerElementIndex; -} CERT_CHAIN_FIND_BY_ISSUER_PARA, *PCERT_CHAIN_FIND_BY_ISSUER_PARA; -/* #endif */ -typedef struct _CERT_TRUST_STATUS { - DWORD dwErrorStatus; - DWORD dwInfoStatus; -} CERT_TRUST_STATUS, *PCERT_TRUST_STATUS; -typedef struct _CRL_ENTRY { - CRYPT_INTEGER_BLOB SerialNumber; - FILETIME RevocationDate; - DWORD cExtension; - PCERT_EXTENSION rgExtension; -} CRL_ENTRY, *PCRL_ENTRY; -typedef struct _CRL_INFO { - DWORD dwVersion; - CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; - CERT_NAME_BLOB Issuer; - FILETIME ThisUpdate; - FILETIME NextUpdate; - DWORD cCRLEntry; - PCRL_ENTRY rgCRLEntry; - DWORD cExtension; - PCERT_EXTENSION rgExtension; -} CRL_INFO, *PCRL_INFO; -typedef struct _CRL_CONTEXT { - DWORD dwCertEncodingType; - BYTE* pbCrlEncoded; - DWORD cbCrlEncoded; - PCRL_INFO pCrlInfo; - HCERTSTORE hCertStore; -} CRL_CONTEXT, *PCRL_CONTEXT; -typedef const CRL_CONTEXT *PCCRL_CONTEXT; -typedef struct _CERT_REVOCATION_CRL_INFO { - DWORD cbSize; - PCCRL_CONTEXT pBaseCRLContext; - PCCRL_CONTEXT pDeltaCRLContext; - PCRL_ENTRY pCrlEntry; - BOOL fDeltaCrlEntry; -} CERT_REVOCATION_CRL_INFO, *PCERT_REVOCATION_CRL_INFO; -typedef struct _CERT_REVOCATION_INFO { - DWORD cbSize; - DWORD dwRevocationResult; - LPCSTR pszRevocationOid; - LPVOID pvOidSpecificInfo; - BOOL fHasFreshnessTime; - DWORD dwFreshnessTime; - PCERT_REVOCATION_CRL_INFO pCrlInfo; -} CERT_REVOCATION_INFO, *PCERT_REVOCATION_INFO; -/* #if (_WIN32_WINNT>=0x500) */ -typedef struct _CERT_CHAIN_ELEMENT { - DWORD cbSize; - PCCERT_CONTEXT pCertContext; - CERT_TRUST_STATUS TrustStatus; - PCERT_REVOCATION_INFO pRevocationInfo; - PCERT_ENHKEY_USAGE pIssuanceUsage; - PCERT_ENHKEY_USAGE pApplicationUsage; -} CERT_CHAIN_ELEMENT, *PCERT_CHAIN_ELEMENT; -/* #endif */ -typedef struct _CRYPT_ATTRIBUTE { - LPSTR pszObjId; - DWORD cValue; - PCRYPT_ATTR_BLOB rgValue; -} CRYPT_ATTRIBUTE, *PCRYPT_ATTRIBUTE; -typedef struct _CTL_ENTRY { - CRYPT_DATA_BLOB SubjectIdentifier; - DWORD cAttribute; - PCRYPT_ATTRIBUTE rgAttribute; -} CTL_ENTRY, *PCTL_ENTRY; -typedef struct _CTL_INFO { - DWORD dwVersion; - CTL_USAGE SubjectUsage; - CRYPT_DATA_BLOB ListIdentifier; - CRYPT_INTEGER_BLOB SequenceNumber; - FILETIME ThisUpdate; - FILETIME NextUpdate; - CRYPT_ALGORITHM_IDENTIFIER SubjectAlgorithm; - DWORD cCTLEntry; - PCTL_ENTRY rgCTLEntry; - DWORD cExtension; - PCERT_EXTENSION rgExtension; -} CTL_INFO, *PCTL_INFO; -typedef struct _CTL_CONTEXT { - DWORD dwMsgAndCertEncodingType; - BYTE* pbCtlEncoded; - DWORD cbCtlEncoded; - PCTL_INFO pCtlInfo; - HCERTSTORE hCertStore; - HCRYPTMSG hCryptMsg; - BYTE* pbCtlContent; - DWORD cbCtlContent; -} CTL_CONTEXT, *PCTL_CONTEXT; -typedef const CTL_CONTEXT *PCCTL_CONTEXT; -typedef struct _CERT_TRUST_LIST_INFO { - DWORD cbSize; - PCTL_ENTRY pCtlEntry; - PCCTL_CONTEXT pCtlContext; -} CERT_TRUST_LIST_INFO, *PCERT_TRUST_LIST_INFO; -typedef struct _CERT_SIMPLE_CHAIN { - DWORD cbSize; - CERT_TRUST_STATUS TrustStatus; - DWORD cElement; - PCERT_CHAIN_ELEMENT* rgpElement; - PCERT_TRUST_LIST_INFO pTrustListInfo; - BOOL fHasRevocationFreshnessTime; - DWORD dwRevocationFreshnessTime; -} CERT_SIMPLE_CHAIN, *PCERT_SIMPLE_CHAIN; -/* #if (_WIN32_WINNT>=0x500) */ -typedef const struct _CERT_CHAIN_CONTEXT* PCCERT_CHAIN_CONTEXT; -typedef struct _CERT_CHAIN_CONTEXT { - DWORD cbSize; - CERT_TRUST_STATUS TrustStatus; - DWORD cChain; - PCERT_SIMPLE_CHAIN* rgpChain; - DWORD cLowerQualityChainContext; - PCCERT_CHAIN_CONTEXT* rgpLowerQualityChainContext; - BOOL fHasRevocationFreshnessTime; - DWORD dwRevocationFreshnessTime; -} CERT_CHAIN_CONTEXT, *PCERT_CHAIN_CONTEXT; -/* #endif */ -typedef struct _PROV_ENUMALGS { - ALG_ID aiAlgid; - DWORD dwBitLen; - DWORD dwNameLen; - CHAR szName[20]; -} PROV_ENUMALGS; -typedef struct _PUBLICKEYSTRUC { - BYTE bType; - BYTE bVersion; - WORD reserved; - ALG_ID aiKeyAlg; -} PUBLICKEYSTRUC; -typedef struct _RSAPUBKEY { - DWORD magic; - DWORD bitlen; - DWORD pubexp; -} RSAPUBKEY; - -BOOL WINAPI CertCloseStore(HCERTSTORE,DWORD); -BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE,PCCERT_CONTEXT,LPFILETIME,HCERTSTORE,PCERT_CHAIN_PARA,DWORD,LPVOID,PCCERT_CHAIN_CONTEXT*); -BOOL WINAPI CertVerifyCertificateChainPolicy(LPCSTR,PCCERT_CHAIN_CONTEXT,PCERT_CHAIN_POLICY_PARA,PCERT_CHAIN_POLICY_STATUS); -void WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT); -DWORD WINAPI CertNameToStrA(DWORD,PCERT_NAME_BLOB,DWORD,LPSTR,DWORD); -DWORD WINAPI CertNameToStrW(DWORD,PCERT_NAME_BLOB,DWORD,LPWSTR,DWORD); -HCERTSTORE WINAPI CertOpenSystemStoreA(HCRYPTPROV,LPCSTR); -HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV,LPCWSTR); -HCERTSTORE WINAPI CertOpenStore(LPCSTR,DWORD,HCRYPTPROV,DWORD,const void*); -PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE,DWORD,DWORD,DWORD,const void*,PCCERT_CONTEXT); -BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT); -PCCERT_CONTEXT WINAPI CertGetIssuerCertificateFromStore(HCERTSTORE,PCCERT_CONTEXT,PCCERT_CONTEXT,DWORD*); -PCCERT_CHAIN_CONTEXT WINAPI CertFindChainInStore(HCERTSTORE,DWORD,DWORD,DWORD,const void*,PCCERT_CHAIN_CONTEXT); -BOOL WINAPI CryptAcquireContextA(HCRYPTPROV*,LPCSTR,LPCSTR,DWORD,DWORD); -BOOL WINAPI CryptAcquireContextW(HCRYPTPROV*,LPCWSTR,LPCWSTR,DWORD,DWORD); -BOOL WINAPI CryptReleaseContext(HCRYPTPROV,DWORD); -BOOL WINAPI CryptGenKey(HCRYPTPROV,ALG_ID,DWORD,HCRYPTKEY*); -BOOL WINAPI CryptDeriveKey(HCRYPTPROV,ALG_ID,HCRYPTHASH,DWORD,HCRYPTKEY*); -BOOL WINAPI CryptDestroyKey(HCRYPTKEY); -BOOL WINAPI CryptSetKeyParam(HCRYPTKEY,DWORD,PBYTE,DWORD); -BOOL WINAPI CryptGetKeyParam(HCRYPTKEY,DWORD,PBYTE,PDWORD,DWORD); -BOOL WINAPI CryptSetHashParam(HCRYPTHASH,DWORD,PBYTE,DWORD); -BOOL WINAPI CryptGetHashParam(HCRYPTHASH,DWORD,PBYTE,PDWORD,DWORD); -BOOL WINAPI CryptSetProvParam(HCRYPTPROV,DWORD,PBYTE,DWORD); -BOOL WINAPI CryptGetProvParam(HCRYPTPROV,DWORD,PBYTE,PDWORD,DWORD); -BOOL WINAPI CryptGenRandom(HCRYPTPROV,DWORD,PBYTE); -BOOL WINAPI CryptGetUserKey(HCRYPTPROV,DWORD,HCRYPTKEY*); -BOOL WINAPI CryptExportKey(HCRYPTKEY,HCRYPTKEY,DWORD,DWORD,PBYTE,PDWORD); -BOOL WINAPI CryptImportKey(HCRYPTPROV,PBYTE,DWORD,HCRYPTKEY,DWORD,HCRYPTKEY*); -BOOL WINAPI CryptEncrypt(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,PBYTE,PDWORD,DWORD); -BOOL WINAPI CryptDecrypt(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,PBYTE,PDWORD); -BOOL WINAPI CryptCreateHash(HCRYPTPROV,ALG_ID,HCRYPTKEY,DWORD,HCRYPTHASH*); -BOOL WINAPI CryptHashData(HCRYPTHASH,PBYTE,DWORD,DWORD); -BOOL WINAPI CryptHashSessionKey(HCRYPTHASH,HCRYPTKEY,DWORD); -BOOL WINAPI CryptGetHashValue(HCRYPTHASH,DWORD,PBYTE,PDWORD); -BOOL WINAPI CryptDestroyHash(HCRYPTHASH); -BOOL WINAPI CryptSignHashA(HCRYPTHASH,DWORD,LPCSTR,DWORD,PBYTE,PDWORD); -BOOL WINAPI CryptSignHashW(HCRYPTHASH,DWORD,LPCWSTR,DWORD,PBYTE,PDWORD); -BOOL WINAPI CryptVerifySignatureA(HCRYPTHASH,PBYTE,DWORD,HCRYPTKEY,LPCSTR,DWORD); -BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH,PBYTE,DWORD,HCRYPTKEY,LPCWSTR,DWORD); -BOOL WINAPI CryptSetProviderA(LPCSTR,DWORD); -BOOL WINAPI CryptSetProviderW(LPCWSTR,DWORD); - -#ifdef UNICODE -#define CertNameToStr CertNameToStrW -#define CryptAcquireContext CryptAcquireContextW -#define CryptSignHash CryptSignHashW -#define CryptVerifySignature CryptVerifySignatureW -#define CryptSetProvider CryptSetProviderW -#define CertOpenSystemStore CertOpenSystemStoreW -#define CERT_FIND_SUBJECT_STR CERT_FIND_SUBJECT_STR_W -#define CERT_FIND_ISSUER_STR CERT_FIND_ISSUER_STR_W -#define MS_DEF_PROV MS_DEF_PROV_W -#else -#define CertNameToStr CertNameToStrA -#define CryptAcquireContext CryptAcquireContextA -#define CryptSignHash CryptSignHashA -#define CryptVerifySignature CryptVerifySignatureA -#define CryptSetProvider CryptSetProviderA -#define CertOpenSystemStore CertOpenSystemStoreA -#define CERT_FIND_SUBJECT_STR CERT_FIND_SUBJECT_STR_A -#define CERT_FIND_ISSUER_STR CERT_FIND_ISSUER_STR_A -#define MS_DEF_PROV MS_DEF_PROV_A -#endif -#ifdef __cplusplus -} -#endif -#endif /* _WINCRYPT_H */ diff --git a/winsup/w32api/include/windef.h b/winsup/w32api/include/windef.h deleted file mode 100644 index f4de5cadb..000000000 --- a/winsup/w32api/include/windef.h +++ /dev/null @@ -1,236 +0,0 @@ -#ifndef _WINDEF_H -#define _WINDEF_H -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef WINVER -#define WINVER 0x0400 -#endif -#ifndef _WIN32_WINNT -#define _WIN32_WINNT WINVER -#endif -#ifndef WIN32 -#define WIN32 -#endif -#ifndef _WIN32 -#define _WIN32 -#endif -#define FAR -#define far -#define NEAR -#define near -#ifndef CONST -#define CONST const -#endif -#undef MAX_PATH -#define MAX_PATH 260 - -#ifndef NULL -#ifdef __cplusplus -#define NULL 0 -#else -#define NULL ((void*)0) -#endif -#endif -#ifndef FALSE -#define FALSE 0 -#endif -#ifndef TRUE -#define TRUE 1 -#endif -#define IN -#define OUT -#ifndef OPTIONAL -#define OPTIONAL -#endif - -#ifdef __GNUC__ -#define PACKED __attribute__((packed)) -#ifndef _stdcall -#define _stdcall __attribute__((stdcall)) -#endif -#ifndef __stdcall -#define __stdcall __attribute__((stdcall)) -#endif -#ifndef _cdecl -#define _cdecl __attribute__((cdecl)) -#endif -#ifndef __cdecl -#define __cdecl __attribute__((cdecl)) -#endif -#ifndef __declspec -#define __declspec(e) __attribute__((e)) -#endif -#ifndef _declspec -#define _declspec(e) __attribute__((e)) -#endif -#else -#define PACKED -#define _cdecl -#define __cdecl -#endif - -#undef pascal -#undef _pascal -#undef __pascal -#define pascal __stdcall -#define _pascal __stdcall -#define __pascal __stdcall -#define PASCAL _pascal -#define CDECL _cdecl -#define STDCALL __stdcall -#define WINAPI __stdcall -#define WINAPIV __cdecl -#define APIENTRY __stdcall -#define CALLBACK __stdcall -#define APIPRIVATE __stdcall - -#define DECLSPEC_IMPORT __declspec(dllimport) -#define DECLSPEC_EXPORT __declspec(dllexport) -#ifdef __GNUC__ -#define DECLSPEC_NORETURN __declspec(noreturn) -#define DECLARE_STDCALL_P( type ) __stdcall type -#elif defined(__WATCOMC__) -#define DECLSPEC_NORETURN -#define DECLARE_STDCALL_P( type ) type __stdcall -#endif /* __GNUC__/__WATCOMC__ */ -#define MAKEWORD(a,b) ((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8))) -#define MAKELONG(a,b) ((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16))) -#define LOWORD(l) ((WORD)((DWORD)(l))) -#define HIWORD(l) ((WORD)(((DWORD)(l)>>16)&0xFFFF)) -#define LOBYTE(w) ((BYTE)(w)) -#define HIBYTE(w) ((BYTE)(((WORD)(w)>>8)&0xFF)) - -#ifndef _export -#define _export -#endif -#ifndef __export -#define __export -#endif - -#ifndef NOMINMAX -#ifndef max -#define max(a,b) ((a)>(b)?(a):(b)) -#endif -#ifndef min -#define min(a,b) ((a)<(b)?(a):(b)) -#endif -#endif - -#define UNREFERENCED_PARAMETER(P) {(P)=(P);} -#define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);} -#define DBG_UNREFERENCED_PARAMETER(P) -#define DBG_UNREFERENCED_LOCAL_VARIABLE(L) - -typedef unsigned long DWORD; -typedef int WINBOOL,*PWINBOOL,*LPWINBOOL; -/* FIXME: Is there a good solution to this? */ -#ifndef XFree86Server -#ifndef __OBJC__ -typedef WINBOOL BOOL; -#else -#define BOOL WINBOOL -#endif -typedef unsigned char BYTE; -#endif /* ndef XFree86Server */ -typedef BOOL *PBOOL,*LPBOOL; -typedef unsigned short WORD; -typedef float FLOAT; -typedef FLOAT *PFLOAT; -typedef BYTE *PBYTE,*LPBYTE; -typedef int *PINT,*LPINT; -typedef WORD *PWORD,*LPWORD; -typedef long *LPLONG; -typedef DWORD *PDWORD,*LPDWORD; -typedef void *PVOID,*LPVOID; -typedef CONST void *PCVOID,*LPCVOID; -typedef int INT; -typedef unsigned int UINT,*PUINT,*LPUINT; - -#include - -typedef UINT WPARAM; -typedef LONG LPARAM; -typedef LONG LRESULT; -#ifndef _HRESULT_DEFINED -typedef LONG HRESULT; -#define _HRESULT_DEFINED -#endif -#ifndef XFree86Server -typedef WORD ATOM; -#endif /* XFree86Server */ -typedef HANDLE HGLOBAL; -typedef HANDLE HLOCAL; -typedef HANDLE GLOBALHANDLE; -typedef HANDLE LOCALHANDLE; -typedef void *HGDIOBJ; -DECLARE_HANDLE(HACCEL); -DECLARE_HANDLE(HBITMAP); -DECLARE_HANDLE(HBRUSH); -DECLARE_HANDLE(HCOLORSPACE); -DECLARE_HANDLE(HDC); -DECLARE_HANDLE(HGLRC); -DECLARE_HANDLE(HDESK); -DECLARE_HANDLE(HENHMETAFILE); -DECLARE_HANDLE(HFONT); -DECLARE_HANDLE(HICON); -DECLARE_HANDLE(HKEY); -/* FIXME: How to handle these. SM_CMONITORS etc in winuser.h also. */ -/* #if (WINVER >= 0x0500) */ -DECLARE_HANDLE(HMONITOR); -#define HMONITOR_DECLARED 1 -DECLARE_HANDLE(HTERMINAL); -DECLARE_HANDLE(HWINEVENTHOOK); -/* #endif */ -typedef HKEY *PHKEY; -DECLARE_HANDLE(HMENU); -DECLARE_HANDLE(HMETAFILE); -DECLARE_HANDLE(HINSTANCE); -typedef HINSTANCE HMODULE; -DECLARE_HANDLE(HPALETTE); -DECLARE_HANDLE(HPEN); -DECLARE_HANDLE(HRGN); -DECLARE_HANDLE(HRSRC); -DECLARE_HANDLE(HSTR); -DECLARE_HANDLE(HTASK); -DECLARE_HANDLE(HWND); -DECLARE_HANDLE(HWINSTA); -DECLARE_HANDLE(HKL); -typedef int HFILE; -typedef HICON HCURSOR; -typedef DWORD COLORREF; -typedef int (WINAPI *FARPROC)(); -typedef int (WINAPI *NEARPROC)(); -typedef int (WINAPI *PROC)(); -typedef struct tagRECT { - LONG left; - LONG top; - LONG right; - LONG bottom; -} RECT,*PRECT,*LPRECT; -typedef const RECT *LPCRECT; -typedef struct tagRECTL { - LONG left; - LONG top; - LONG right; - LONG bottom; -} RECTL,*PRECTL,*LPRECTL; -typedef const RECTL *LPCRECTL; -typedef struct tagPOINT { - LONG x; - LONG y; -} POINT,POINTL,*PPOINT,*LPPOINT,*PPOINTL,*LPPOINTL; -typedef struct tagSIZE { - LONG cx; - LONG cy; -} SIZE,SIZEL,*PSIZE,*LPSIZE,*PSIZEL,*LPSIZEL; -typedef struct tagPOINTS { - SHORT x; - SHORT y; -} POINTS,*PPOINTS,*LPPOINTS; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/windows.h b/winsup/w32api/include/windows.h deleted file mode 100644 index 267db18f1..000000000 --- a/winsup/w32api/include/windows.h +++ /dev/null @@ -1,172 +0,0 @@ -/* - windows.h - main header file for the Win32 API - - Written by Anders Norlander - - This file is part of a free library for the Win32 API. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -*/ -#ifndef _WINDOWS_H -#define _WINDOWS_H -/* translate GCC target defines to MS equivalents. Keep this synchronized - with winnt.h. */ -#if defined(__i686__) && !defined(_M_IX86) -#define _M_IX86 600 -#elif defined(__i586__) && !defined(_M_IX86) -#define _M_IX86 500 -#elif defined(__i486__) && !defined(_M_IX86) -#define _M_IX86 400 -#elif defined(__i386__) && !defined(_M_IX86) -#define _M_IX86 300 -#endif -#if defined(_M_IX86) && !defined(_X86_) -#define _X86_ -#elif defined(_M_ALPHA) && !defined(_ALPHA_) -#define _ALPHA_ -#elif defined(_M_PPC) && !defined(_PPC_) -#define _PPC_ -#elif defined(_M_MRX000) && !defined(_MIPS_) -#define _MIPS_ -#elif defined(_M_M68K) && !defined(_68K_) -#define _68K_ -#endif - -#ifdef RC_INVOKED -/* winresrc.h includes the necessary headers */ -#include -#else - -#ifdef __GNUC__ -#ifndef NONAMELESSUNION -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) -#define _ANONYMOUS_UNION __extension__ -#define _ANONYMOUS_STRUCT __extension__ -#else -#if defined(__cplusplus) -#define _ANONYMOUS_UNION __extension__ -#endif /* __cplusplus */ -#endif /* __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) */ -#endif /* NONAMELESSUNION */ -#elif defined(__WATCOMC__) -#define _ANONYMOUS_UNION -#define _ANONYMOUS_STRUCT -#endif /* __GNUC__/__WATCOMC__ */ - -#ifndef _ANONYMOUS_UNION -#define _ANONYMOUS_UNION -#define _UNION_NAME(x) x -#define DUMMYUNIONNAME u -#define DUMMYUNIONNAME2 u2 -#define DUMMYUNIONNAME3 u3 -#define DUMMYUNIONNAME4 u4 -#define DUMMYUNIONNAME5 u5 -#define DUMMYUNIONNAME6 u6 -#define DUMMYUNIONNAME7 u7 -#define DUMMYUNIONNAME8 u8 -#else -#define _UNION_NAME(x) -#define DUMMYUNIONNAME -#define DUMMYUNIONNAME2 -#define DUMMYUNIONNAME3 -#define DUMMYUNIONNAME4 -#define DUMMYUNIONNAME5 -#define DUMMYUNIONNAME6 -#define DUMMYUNIONNAME7 -#define DUMMYUNIONNAME8 -#endif -#ifndef _ANONYMOUS_STRUCT -#define _ANONYMOUS_STRUCT -#define _STRUCT_NAME(x) x -#define DUMMYSTRUCTNAME s -#define DUMMYSTRUCTNAME2 s2 -#define DUMMYSTRUCTNAME3 s3 -#else -#define _STRUCT_NAME(x) -#define DUMMYSTRUCTNAME -#define DUMMYSTRUCTNAME2 -#define DUMMYSTRUCTNAME3 -#endif - -#ifndef NO_STRICT -#ifndef STRICT -#define STRICT 1 -#endif -#endif - -#include -#include -#include -#include -#include -#include -#ifndef _WINGDI_H -#include -#endif -#ifndef _WINUSER_H -#include -#endif -#ifndef _WINNLS_H -#include -#endif -#ifndef _WINVER_H -#include -#endif -#ifndef _WINNETWK_H -#include -#endif -#ifndef _WINREG_H -#include -#endif -#ifndef _WINSVC_H -#include -#endif - -#ifndef WIN32_LEAN_AND_MEAN -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#if defined(Win32_Winsock) -#warning "The Win32_Winsock macro name is deprecated.\ - Please use __USE_W32_SOCKETS instead" -#ifndef __USE_W32_SOCKETS -#define __USE_W32_SOCKETS -#endif -#endif -#if defined(__USE_W32_SOCKETS) || !(defined(__CYGWIN__) || defined(__MSYS__) || defined(_UWIN)) -#if (_WIN32_WINNT >= 0x0400) -#include -/* - * MS likes to include mswsock.h here as well, - * but that can cause undefined symbols if - * winsock2.h is included before windows.h - */ -#else -#include -#endif /* (_WIN32_WINNT >= 0x0400) */ -#endif -#endif /* WIN32_LEAN_AND_MEAN */ - -#endif /* RC_INVOKED */ - -#ifdef __OBJC__ -/* FIXME: Not undefining BOOL here causes all BOOLs to be WINBOOL (int), - but undefining it causes trouble as well if a file is included after - windows.h -*/ -#undef BOOL -#endif - -#endif diff --git a/winsup/w32api/include/windowsx.h b/winsup/w32api/include/windowsx.h deleted file mode 100644 index 37a439a37..000000000 --- a/winsup/w32api/include/windowsx.h +++ /dev/null @@ -1,540 +0,0 @@ -#ifndef _WINDOWSX_H -#define _WINDOWSX_H -#define WM_CTLCOLOR 25 -#define Button_Enable(hwndCtl,fEnable) EnableWindow((hwndCtl),(fEnable)) -#define Button_GetCheck(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),BM_GETCHECK,0,0)) -#define Button_GetState(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),BM_GETSTATE,0,0)) -#define Button_GetText(hwndCtl,lpch,cchMax) GetWindowText((hwndCtl),(lpch),(cchMax)) -#define Button_GetTextLength(hwndCtl) GetWindowTextLength(hwndCtl) -#define Button_SetCheck(hwndCtl,check) ((void)SendMessage((hwndCtl),BM_SETCHECK,(WPARAM)(int)(check),0)) -#define Button_SetState(hwndCtl,state) ((UINT)(DWORD)SendMessage((hwndCtl),BM_SETSTATE,(WPARAM)(int)(state),0)) -#define Button_SetStyle(hwndCtl,style,fRedraw) ((void)SendMessage((hwndCtl),BM_SETSTYLE,(WPARAM)LOWORD(style),MAKELPARAM(((fRedraw) ? TRUE : FALSE),0))) -#define Button_SetText(hwndCtl,lpsz) SetWindowText((hwndCtl),(lpsz)) -#define CheckDefDlgRecursion(pfRecursion) if (*(pfRecursion)) {*(pfRecursion) = FALSE; return FALSE; } -#define ComboBox_AddItemData(hwndCtl,data) ((int)(DWORD)SendMessage((hwndCtl),CB_ADDSTRING,0,(LPARAM)(data))) -#define ComboBox_AddString(hwndCtl,lpsz) ((int)(DWORD)SendMessage((hwndCtl),CB_ADDSTRING,0,(LPARAM)(LPCTSTR)(lpsz))) -#define ComboBox_DeleteString(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),CB_DELETESTRING,(WPARAM)(int)(index),0)) -#define ComboBox_Dir(hwndCtl,attrs,lpszFileSpec) ((int)(DWORD)SendMessage((hwndCtl),CB_DIR,(WPARAM)(UINT)(attrs),(LPARAM)(LPCTSTR)(lpszFileSpec))) -#define ComboBox_Enable(hwndCtl,fEnable) EnableWindow((hwndCtl),(fEnable)) -#define ComboBox_FindItemData(hwndCtl,indexStart,data) ((int)(DWORD)SendMessage((hwndCtl),CB_FINDSTRING,(WPARAM)(int)(indexStart),(LPARAM)(data))) -#define ComboBox_FindString(hwndCtl,indexStart,lpszFind) ((int)(DWORD)SendMessage((hwndCtl),CB_FINDSTRING,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszFind))) -#define ComboBox_FindStringExact(hwndCtl,indexStart,lpszFind) ((int)(DWORD)SendMessage((hwndCtl),CB_FINDSTRINGEXACT,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszFind))) -#define ComboBox_GetCount(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),CB_GETCOUNT,0,0)) -#define ComboBox_GetCurSel(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),CB_GETCURSEL,0,0)) -#define ComboBox_GetDroppedControlRect(hwndCtl,lprc) ((void)SendMessage((hwndCtl),CB_GETDROPPEDCONTROLRECT,0,(LPARAM)(RECT*)(lprc))) -#define ComboBox_GetDroppedState(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),CB_GETDROPPEDSTATE,0,0)) -#define ComboBox_GetEditSel(hwndCtl) ((DWORD)SendMessage((hwndCtl),CB_GETEDITSEL,0,0)) -#define ComboBox_GetExtendedUI(hwndCtl) ((UINT)(DWORD)SendMessage((hwndCtl),CB_GETEXTENDEDUI,0,0)) -#define ComboBox_GetItemData(hwndCtl,index) ((LRESULT)(DWORD)SendMessage((hwndCtl),CB_GETITEMDATA,(WPARAM)(int)(index),0)) -#define ComboBox_GetItemHeight(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),CB_GETITEMHEIGHT,0,0)) -#define ComboBox_GetLBText(hwndCtl,index,lpszBuffer) ((int)(DWORD)SendMessage((hwndCtl),CB_GETLBTEXT,(WPARAM)(int)(index),(LPARAM)(LPCTSTR)(lpszBuffer))) -#define ComboBox_GetLBTextLen(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),CB_GETLBTEXTLEN,(WPARAM)(int)(index),0)) -#define ComboBox_GetText(hwndCtl,lpch,cchMax) GetWindowText((hwndCtl),(lpch),(cchMax)) -#define ComboBox_GetTextLength(hwndCtl) GetWindowTextLength(hwndCtl) -#define ComboBox_InsertItemData(hwndCtl,index,data) ((int)(DWORD)SendMessage((hwndCtl),CB_INSERTSTRING,(WPARAM)(int)(index),(LPARAM)(data))) -#define ComboBox_InsertString(hwndCtl,index,lpsz) ((int)(DWORD)SendMessage((hwndCtl),CB_INSERTSTRING,(WPARAM)(int)(index),(LPARAM)(LPCTSTR)(lpsz))) -#define ComboBox_LimitText(hwndCtl,cchLimit) ((int)(DWORD)SendMessage((hwndCtl),CB_LIMITTEXT,(WPARAM)(int)(cchLimit),0)) -#define ComboBox_ResetContent(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),CB_RESETCONTENT,0,0)) -#define ComboBox_SelectItemData(hwndCtl,indexStart,data) ((int)(DWORD)SendMessage((hwndCtl),CB_SELECTSTRING,(WPARAM)(int)(indexStart),(LPARAM)(data))) -#define ComboBox_SelectString(hwndCtl,indexStart,lpszSelect) ((int)(DWORD)SendMessage((hwndCtl),CB_SELECTSTRING,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszSelect))) -#define ComboBox_SetCurSel(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),CB_SETCURSEL,(WPARAM)(int)(index),0)) -#define ComboBox_SetEditSel(hwndCtl,ichStart,ichEnd) ((int)(DWORD)SendMessage((hwndCtl),CB_SETEDITSEL,0,MAKELPARAM((ichStart),(ichEnd)))) -#define ComboBox_SetExtendedUI(hwndCtl,flags) ((int)(DWORD)SendMessage((hwndCtl),CB_SETEXTENDEDUI,(WPARAM)(UINT)(flags),0)) -#define ComboBox_SetItemData(hwndCtl,index,data) ((int)(DWORD)SendMessage((hwndCtl),CB_SETITEMDATA,(WPARAM)(int)(index),(LPARAM)(data))) -#define ComboBox_SetItemHeight(hwndCtl,index,cyItem) ((int)(DWORD)SendMessage((hwndCtl),CB_SETITEMHEIGHT,(WPARAM)(int)(index),(LPARAM)(int)cyItem)) -#define ComboBox_SetText(hwndCtl,lpsz) SetWindowText((hwndCtl),(lpsz)) -#define ComboBox_ShowDropdown(hwndCtl,fShow) ((BOOL)(DWORD)SendMessage((hwndCtl),CB_SHOWDROPDOWN,(WPARAM)(BOOL)(fShow),0)) -#define CopyRgn(hrgnDst,hrgnSrc) CombineRgn(hrgnDst,hrgnSrc,0,RGN_COPY) -#define DECLARE_HANDLE32 DECLARE_HANDLE -#define DefDlgProcEx(hwnd,msg,wParam,lParam,pfRecursion) (*(pfRecursion) = TRUE,DefDlgProc(hwnd,msg,wParam,lParam)) -#define DeleteBitmap(hbm) DeleteObject((HGDIOBJ)(HBITMAP)(hbm)) -#define DeleteBrush(hbr) DeleteObject((HGDIOBJ)(HBRUSH)(hbr)) -#define DeleteFont(hfont) DeleteObject((HGDIOBJ)(HFONT)(hfont)) -#define DeletePalette(hpal) DeleteObject((HGDIOBJ)(HPALETTE)(hpal)) -#define DeletePen(hpen) DeleteObject((HGDIOBJ)(HPEN)(hpen)) -#define DeleteRgn(hrgn) DeleteObject((HGDIOBJ)(HRGN)(hrgn)) -#define Edit_CanUndo(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_CANUNDO,0,0)) -#define Edit_EmptyUndoBuffer(hwndCtl) ((void)SendMessage((hwndCtl),EM_EMPTYUNDOBUFFER,0,0)) -#define Edit_Enable(hwndCtl,fEnable) EnableWindow((hwndCtl),(fEnable)) -#define Edit_FmtLines(hwndCtl,fAddEOL) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_FMTLINES,(WPARAM)(BOOL)(fAddEOL),0)) -#define Edit_GetFirstVisibleLine(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),EM_GETFIRSTVISIBLELINE,0,0)) -#define Edit_GetHandle(hwndCtl) ((HLOCAL)(UINT)(DWORD)SendMessage((hwndCtl),EM_GETHANDLE,0,0)) -#define Edit_GetLine(hwndCtl,line,lpch,cchMax) ((*((int*)(lpch)) = (cchMax)),((int)(DWORD)SendMessage((hwndCtl),EM_GETLINE,(WPARAM)(int)(line),(LPARAM)(LPTSTR)(lpch)))) -#define Edit_GetLineCount(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),EM_GETLINECOUNT,0,0)) -#define Edit_GetModify(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_GETMODIFY,0,0)) -#define Edit_GetPasswordChar(hwndCtl) ((TCHAR)(DWORD)SendMessage((hwndCtl),EM_GETPASSWORDCHAR,0,0)) -#define Edit_GetRect(hwndCtl,lprc) ((void)SendMessage((hwndCtl),EM_GETRECT,0,(LPARAM)(RECT*)(lprc))) -#define Edit_GetSel(hwndCtl) ((DWORD)SendMessage((hwndCtl),EM_GETSEL,0,0)) -#define Edit_GetText(hwndCtl,lpch,cchMax) GetWindowText((hwndCtl),(lpch),(cchMax)) -#define Edit_GetTextLength(hwndCtl) GetWindowTextLength(hwndCtl) -#define Edit_GetWordBreakProc(hwndCtl) ((EDITWORDBREAKPROC)SendMessage((hwndCtl),EM_GETWORDBREAKPROC,0,0)) -#define Edit_LimitText(hwndCtl,cchMax) ((void)SendMessage((hwndCtl),EM_LIMITTEXT,(WPARAM)(cchMax),0)) -#define Edit_LineFromChar(hwndCtl,ich) ((int)(DWORD)SendMessage((hwndCtl),EM_LINEFROMCHAR,(WPARAM)(int)(ich),0)) -#define Edit_LineIndex(hwndCtl,line) ((int)(DWORD)SendMessage((hwndCtl),EM_LINEINDEX,(WPARAM)(int)(line),0)) -#define Edit_LineLength(hwndCtl,line) ((int)(DWORD)SendMessage((hwndCtl),EM_LINELENGTH,(WPARAM)(int)(line),0)) -#define Edit_ReplaceSel(hwndCtl,lpszReplace) ((void)SendMessage((hwndCtl),EM_REPLACESEL,0,(LPARAM)(LPCTSTR)(lpszReplace))) -#define Edit_Scroll(hwndCtl,dv,dh) ((void)SendMessage((hwndCtl),EM_LINESCROLL,(WPARAM)(dh),(LPARAM)(dv))) -#define Edit_ScrollCaret(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_SCROLLCARET,0,0)) -#define Edit_SetHandle(hwndCtl,h) ((void)SendMessage((hwndCtl),EM_SETHANDLE,(WPARAM)(UINT)(HLOCAL)(h),0)) -#define Edit_SetModify(hwndCtl,fModified) ((void)SendMessage((hwndCtl),EM_SETMODIFY,(WPARAM)(UINT)(fModified),0)) -#define Edit_SetPasswordChar(hwndCtl,ch) ((void)SendMessage((hwndCtl),EM_SETPASSWORDCHAR,(WPARAM)(UINT)(ch),0)) -#define Edit_SetReadOnly(hwndCtl,fReadOnly) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_SETREADONLY,(WPARAM)(BOOL)(fReadOnly),0)) -#define Edit_SetRect(hwndCtl,lprc) ((void)SendMessage((hwndCtl),EM_SETRECT,0,(LPARAM)(const RECT*)(lprc))) -#define Edit_SetRectNoPaint(hwndCtl,lprc) ((void)SendMessage((hwndCtl),EM_SETRECTNP,0,(LPARAM)(const RECT*)(lprc))) -#define Edit_SetSel(hwndCtl,ichStart,ichEnd) ((void)SendMessage((hwndCtl),EM_SETSEL,(ichStart),(ichEnd))) -#define Edit_SetTabStops(hwndCtl,cTabs,lpTabs) ((void)SendMessage((hwndCtl),EM_SETTABSTOPS,(WPARAM)(int)(cTabs),(LPARAM)(const int*)(lpTabs))) -#define Edit_SetText(hwndCtl,lpsz) SetWindowText((hwndCtl),(lpsz)) -#define Edit_SetWordBreakProc(hwndCtl,lpfnWordBreak) ((void)SendMessage((hwndCtl),EM_SETWORDBREAKPROC,0,(LPARAM)(EDITWORDBREAKPROC)(lpfnWordBreak))) -#define Edit_Undo(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),EM_UNDO,0,0)) -#define FORWARD_WM_ACTIVATE(hwnd,state,hwndActDeact,fMinimized,fn) (void)(fn)((hwnd),WM_ACTIVATE,MAKEWPARAM((state),(fMinimized)),(LPARAM)(HWND)(hwndActDeact)) -#define FORWARD_WM_ACTIVATEAPP(hwnd,fActivate,dwThreadId,fn) (void)(fn)((hwnd),WM_ACTIVATEAPP,(WPARAM)(BOOL)(fActivate),(LPARAM)(dwThreadId)) -#define FORWARD_WM_ASKCBFORMATNAME(hwnd,cchMax,rgchName,fn) (void)(fn)((hwnd),WM_ASKCBFORMATNAME,(WPARAM)(int)(cchMax),(LPARAM)(rgchName)) -#define FORWARD_WM_CANCELMODE(hwnd,fn) (void)(fn)((hwnd),WM_CANCELMODE,0,0) -#define FORWARD_WM_CHANGECBCHAIN(hwnd,hwndRemove,hwndNext,fn) (void)(fn)((hwnd),WM_CHANGECBCHAIN,(WPARAM)(HWND)(hwndRemove),(LPARAM)(HWND)(hwndNext)) -#define FORWARD_WM_CHAR(hwnd,ch,cRepeat,fn) (void)(fn)((hwnd),WM_CHAR,(WPARAM)(TCHAR)(ch),MAKELPARAM((cRepeat),0)) -#define FORWARD_WM_CHARTOITEM(hwnd,ch,hwndListBox,iCaret,fn) (int)(DWORD)(fn)((hwnd),WM_CHARTOITEM,MAKEWPARAM((UINT)(iCaret),(UINT)(ch)),(LPARAM)(hwndListBox)) -#define FORWARD_WM_CHILDACTIVATE(hwnd,fn) (void)(fn)((hwnd),WM_CHILDACTIVATE,0,0) -#define FORWARD_WM_CLEAR(hwnd,fn) (void)(fn)((hwnd),WM_CLEAR,0,0) -#define FORWARD_WM_CLOSE(hwnd,fn) (void)(fn)((hwnd),WM_CLOSE,0,0) -#define FORWARD_WM_COMMAND(hwnd,id,hwndCtl,codeNotify,fn) (void)(fn)((hwnd),WM_COMMAND,MAKEWPARAM((UINT)(id),(UINT)(codeNotify)),(LPARAM)(HWND)(hwndCtl)) -#define FORWARD_WM_COMMNOTIFY(hwnd,cid,flags,fn) (void)(fn)((hwnd),WM_COMMNOTIFY,(WPARAM)(cid),MAKELPARAM((flags),0)) -#define FORWARD_WM_COMPACTING(hwnd,compactRatio,fn) (void)(fn)((hwnd),WM_COMPACTING,(WPARAM)(UINT)(compactRatio),0) -#define FORWARD_WM_COMPAREITEM(hwnd,lpCompareItem,fn) (int)(DWORD)(fn)((hwnd),WM_COMPAREITEM,(WPARAM)(((const COMPAREITEMSTRUCT*)(lpCompareItem))->CtlID),(LPARAM)(const COMPAREITEMSTRUCT*)(lpCompareItem)) -#define FORWARD_WM_COPY(hwnd,fn) (void)(fn)((hwnd),WM_COPY,0,0) -#define FORWARD_WM_CREATE(hwnd,lpCreateStruct,fn) (BOOL)(DWORD)(fn)((hwnd),WM_CREATE,0,(LPARAM)(LPCREATESTRUCT)(lpCreateStruct)) -#define FORWARD_WM_CTLCOLORBTN(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORBTN,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild)) -#define FORWARD_WM_CTLCOLORDLG(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORDLG,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild)) -#define FORWARD_WM_CTLCOLOREDIT(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLOREDIT,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild)) -#define FORWARD_WM_CTLCOLORLISTBOX(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORLISTBOX,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild)) -#define FORWARD_WM_CTLCOLORMSGBOX(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORMSGBOX,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild)) -#define FORWARD_WM_CTLCOLORSCROLLBAR(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORSCROLLBAR,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild)) -#define FORWARD_WM_CTLCOLORSTATIC(hwnd,hdc,hwndChild,fn) (HBRUSH)(UINT)(DWORD)(fn)((hwnd),WM_CTLCOLORSTATIC,(WPARAM)(HDC)(hdc),(LPARAM)(HWND)(hwndChild)) -#define FORWARD_WM_CUT(hwnd,fn) (void)(fn)((hwnd),WM_CUT,0,0) -#define FORWARD_WM_DEADCHAR(hwnd,ch,cRepeat,fn) (void)(fn)((hwnd),WM_DEADCHAR,(WPARAM)(TCHAR)(ch),MAKELPARAM((cRepeat),0)) -#define FORWARD_WM_DELETEITEM(hwnd,lpDeleteItem,fn) (void)(fn)((hwnd),WM_DELETEITEM,(WPARAM)(((const DELETEITEMSTRUCT*)(lpDeleteItem))->CtlID),(LPARAM)(const DELETEITEMSTRUCT*)(lpDeleteItem)) -#define FORWARD_WM_DESTROY(hwnd,fn) (void)(fn)((hwnd),WM_DESTROY,0,0) -#define FORWARD_WM_DESTROYCLIPBOARD(hwnd,fn) (void)(fn)((hwnd),WM_DESTROYCLIPBOARD,0,0) -#define FORWARD_WM_DEVMODECHANGE(hwnd,lpszDeviceName,fn) (void)(fn)((hwnd),WM_DEVMODECHANGE,0,(LPARAM)(LPCTSTR)(lpszDeviceName)) -#define FORWARD_WM_DRAWCLIPBOARD(hwnd,fn) (void)(fn)((hwnd),WM_DRAWCLIPBOARD,0,0) -#define FORWARD_WM_DRAWITEM(hwnd,lpDrawItem,fn) (void)(fn)((hwnd),WM_DRAWITEM,(WPARAM)(((const DRAWITEMSTRUCT*)lpDrawItem)->CtlID),(LPARAM)(const DRAWITEMSTRUCT*)(lpDrawItem)) -#define FORWARD_WM_DROPFILES(hwnd,hdrop,fn) (void)(fn)((hwnd),WM_DROPFILES,(WPARAM)(HDROP)(hdrop),0) -#define FORWARD_WM_ENABLE(hwnd,fEnable,fn) (void)(fn)((hwnd),WM_ENABLE,(WPARAM)(BOOL)(fEnable),0) -#define FORWARD_WM_ENDSESSION(hwnd,fEnding,fn) (void)(fn)((hwnd),WM_ENDSESSION,(WPARAM)(BOOL)(fEnding),0) -#define FORWARD_WM_ENTERIDLE(hwnd,source,hwndSource,fn) (void)(fn)((hwnd),WM_ENTERIDLE,(WPARAM)(UINT)(source),(LPARAM)(HWND)(hwndSource)) -#define FORWARD_WM_ERASEBKGND(hwnd,hdc,fn) (BOOL)(DWORD)(fn)((hwnd),WM_ERASEBKGND,(WPARAM)(HDC)(hdc),0) -#define FORWARD_WM_FONTCHANGE(hwnd,fn) (void)(fn)((hwnd),WM_FONTCHANGE,0,0) -#define FORWARD_WM_GETDLGCODE(hwnd,lpmsg,fn) (UINT)(DWORD)(fn)((hwnd),WM_GETDLGCODE,(lpmsg ? lpmsg->wParam : 0),(LPARAM)(LPMSG)(lpmsg)) -#define FORWARD_WM_GETFONT(hwnd,fn) (HFONT)(UINT)(DWORD)(fn)((hwnd),WM_GETFONT,0,0) -#define FORWARD_WM_GETMINMAXINFO(hwnd,lpMinMaxInfo,fn) (void)(fn)((hwnd),WM_GETMINMAXINFO,0,(LPARAM)(LPMINMAXINFO)(lpMinMaxInfo)) -#define FORWARD_WM_GETTEXT(hwnd,cchTextMax,lpszText,fn) (int)(DWORD)(fn)((hwnd),WM_GETTEXT,(WPARAM)(int)(cchTextMax),(LPARAM)(LPTSTR)(lpszText)) -#define FORWARD_WM_GETTEXTLENGTH(hwnd,fn) (int)(DWORD)(fn)((hwnd),WM_GETTEXTLENGTH,0,0) -#define FORWARD_WM_HSCROLL(hwnd,hwndCtl,code,pos,fn) (void)(fn)((hwnd),WM_HSCROLL,MAKEWPARAM((UINT)(int)(code),(UINT)(int)(pos)),(LPARAM)(UINT)(hwndCtl)) -#define FORWARD_WM_HSCROLLCLIPBOARD(hwnd,hwndCBViewer,code,pos,fn) (void)(fn)((hwnd),WM_HSCROLLCLIPBOARD,(WPARAM)(HWND)(hwndCBViewer),MAKELPARAM((code),(pos))) -#define FORWARD_WM_ICONERASEBKGND(hwnd,hdc,fn) (BOOL)(DWORD)(fn)((hwnd),WM_ICONERASEBKGND,(WPARAM)(HDC)(hdc),0) -#define FORWARD_WM_INITDIALOG(hwnd,hwndFocus,lParam,fn) (BOOL)(DWORD)(fn)((hwnd),WM_INITDIALOG,(WPARAM)(HWND)(hwndFocus),(lParam)) -#define FORWARD_WM_INITMENU(hwnd,hMenu,fn) (void)(fn)((hwnd),WM_INITMENU,(WPARAM)(HMENU)(hMenu),0) -#define FORWARD_WM_INITMENUPOPUP(hwnd,hMenu,item,fSystemMenu,fn) (void)(fn)((hwnd),WM_INITMENUPOPUP,(WPARAM)(HMENU)(hMenu),MAKELPARAM((item),(fSystemMenu))) -#define FORWARD_WM_KEYDOWN(hwnd,vk,cRepeat,flags,fn) (void)(fn)((hwnd),WM_KEYDOWN,(WPARAM)(UINT)(vk),MAKELPARAM((cRepeat),(flags))) -#define FORWARD_WM_KEYUP(hwnd,vk,cRepeat,flags,fn) (void)(fn)((hwnd),WM_KEYUP,(WPARAM)(UINT)(vk),MAKELPARAM((cRepeat),(flags))) -#define FORWARD_WM_KILLFOCUS(hwnd,hwndNewFocus,fn) (void)(fn)((hwnd),WM_KILLFOCUS,(WPARAM)(HWND)(hwndNewFocus),0) -#define FORWARD_WM_LBUTTONDOWN(hwnd,fDoubleClick,x,y,keyFlags,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_LBUTTONDBLCLK : WM_LBUTTONDOWN,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y))) -#define FORWARD_WM_LBUTTONUP(hwnd,x,y,keyFlags,fn) (void)(fn)((hwnd),WM_LBUTTONUP,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y))) -#define FORWARD_WM_MBUTTONDOWN(hwnd,fDoubleClick,x,y,keyFlags,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_MBUTTONDBLCLK : WM_MBUTTONDOWN,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y))) -#define FORWARD_WM_MBUTTONUP(hwnd,x,y,keyFlags,fn) (void)(fn)((hwnd),WM_MBUTTONUP,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y))) -#define FORWARD_WM_MDIACTIVATE(hwnd,fActive,hwndActivate,hwndDeactivate,fn) (void)(fn)(hwnd,WM_MDIACTIVATE,(WPARAM)(hwndDeactivate),(LPARAM)(hwndActivate)) -#define FORWARD_WM_MDICASCADE(hwnd,cmd,fn) (BOOL)(DWORD)(fn)((hwnd),WM_MDICASCADE,(WPARAM)(cmd),0) -#define FORWARD_WM_MDICREATE(hwnd,lpmcs,fn) (HWND)(UINT)(DWORD)(fn)((hwnd),WM_MDICREATE,0,(LPARAM)(LPMDICREATESTRUCT)(lpmcs)) -#define FORWARD_WM_MDIDESTROY(hwnd,hwndDestroy,fn) (void)(fn)((hwnd),WM_MDIDESTROY,(WPARAM)(hwndDestroy),0) -#define FORWARD_WM_MDIGETACTIVE(hwnd,fn) (HWND)(UINT)(DWORD)(fn)((hwnd),WM_MDIGETACTIVE,0,0) -#define FORWARD_WM_MDIICONARRANGE(hwnd,fn) (void)(fn)((hwnd),WM_MDIICONARRANGE,0,0) -#define FORWARD_WM_MDIMAXIMIZE(hwnd,hwndMaximize,fn) (void)(fn)((hwnd),WM_MDIMAXIMIZE,(WPARAM)(hwndMaximize),0) -#define FORWARD_WM_MDINEXT(hwnd,hwndCur,fPrev,fn) (HWND)(UINT)(DWORD)(fn)((hwnd),WM_MDINEXT,(WPARAM)(hwndCur),(LPARAM)(fPrev)) -#define FORWARD_WM_MDIRESTORE(hwnd,hwndRestore,fn) (void)(fn)((hwnd),WM_MDIRESTORE,(WPARAM)(hwndRestore),0) -#define FORWARD_WM_MDISETMENU(hwnd,fRefresh,hmenuFrame,hmenuWindow,fn) (HMENU)(UINT)(DWORD)(fn)((hwnd),WM_MDISETMENU,(WPARAM)((fRefresh) ? (hmenuFrame) : 0),(LPARAM)(hmenuWindow)) -#define FORWARD_WM_MDITILE(hwnd,cmd,fn) (BOOL)(DWORD)(fn)((hwnd),WM_MDITILE,(WPARAM)(cmd),0) -#define FORWARD_WM_MEASUREITEM(hwnd,lpMeasureItem,fn) (void)(fn)((hwnd),WM_MEASUREITEM,(WPARAM)(((MEASUREITEMSTRUCT*)lpMeasureItem)->CtlID),(LPARAM)(MEASUREITEMSTRUCT*)(lpMeasureItem)) -#define FORWARD_WM_MENUCHAR(hwnd,ch,flags,hmenu,fn) (DWORD)(fn)((hwnd),WM_MENUCHAR,MAKEWPARAM(flags,(WORD)(ch)),(LPARAM)(HMENU)(hmenu)) -#define FORWARD_WM_MENUSELECT(hwnd,hmenu,item,hmenuPopup,flags,fn) (void)(fn)((hwnd),WM_MENUSELECT,MAKEWPARAM((item),(flags)),(LPARAM)(HMENU)((hmenu) ? (hmenu) : (hmenuPopup))) -#define FORWARD_WM_MOUSEACTIVATE(hwnd,hwndTopLevel,codeHitTest,msg,fn) (int)(DWORD)(fn)((hwnd),WM_MOUSEACTIVATE,(WPARAM)(HWND)(hwndTopLevel),MAKELPARAM((codeHitTest),(msg))) -#define FORWARD_WM_MOUSEMOVE(hwnd,x,y,keyFlags,fn) (void)(fn)((hwnd),WM_MOUSEMOVE,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y))) -#define FORWARD_WM_MOVE(hwnd,x,y,fn) (void)(fn)((hwnd),WM_MOVE,0,MAKELPARAM((x),(y))) -#define FORWARD_WM_NCACTIVATE(hwnd,fActive,hwndActDeact,fMinimized,fn) (BOOL)(DWORD)(fn)((hwnd),WM_NCACTIVATE,(WPARAM)(BOOL)(fActive),0) -#define FORWARD_WM_NCCALCSIZE(hwnd,fCalcValidRects,lpcsp,fn) (UINT)(DWORD)(fn)((hwnd),WM_NCCALCSIZE,0,(LPARAM)(NCCALCSIZE_PARAMS*)(lpcsp)) -#define FORWARD_WM_NCCREATE(hwnd,lpCreateStruct,fn) (BOOL)(DWORD)(fn)((hwnd),WM_NCCREATE,0,(LPARAM)(LPCREATESTRUCT)(lpCreateStruct)) -#define FORWARD_WM_NCDESTROY(hwnd,fn) (void)(fn)((hwnd),WM_NCDESTROY,0,0) -#define FORWARD_WM_NCHITTEST(hwnd,x,y,fn) (UINT)(DWORD)(fn)((hwnd),WM_NCHITTEST,0,MAKELPARAM((x),(y))) -#define FORWARD_WM_NCLBUTTONDOWN(hwnd,fDoubleClick,x,y,codeHitTest,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_NCLBUTTONDBLCLK : WM_NCLBUTTONDOWN,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y))) -#define FORWARD_WM_NCLBUTTONUP(hwnd,x,y,codeHitTest,fn) (void)(fn)((hwnd),WM_NCLBUTTONUP,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y))) -#define FORWARD_WM_NCMBUTTONDOWN(hwnd,fDoubleClick,x,y,codeHitTest,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_NCMBUTTONDBLCLK : WM_NCMBUTTONDOWN,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)) ) -#define FORWARD_WM_NCMBUTTONUP(hwnd,x,y,codeHitTest,fn) (void)(fn)((hwnd),WM_NCMBUTTONUP,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)) ) -#define FORWARD_WM_NCMOUSEMOVE(hwnd,x,y,codeHitTest,fn) (void)(fn)((hwnd),WM_NCMOUSEMOVE,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y))) -#define FORWARD_WM_NCPAINT(hwnd,hrgn,fn) (void)(fn)((hwnd),WM_NCPAINT,(WPARAM)(HRGN)(hrgn),0) -#define FORWARD_WM_NCRBUTTONDOWN(hwnd,fDoubleClick,x,y,codeHitTest,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_NCRBUTTONDBLCLK : WM_NCRBUTTONDOWN,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)) ) -#define FORWARD_WM_NCRBUTTONUP(hwnd,x,y,codeHitTest,fn) (void)(fn)((hwnd),WM_NCRBUTTONUP,(WPARAM)(UINT)(codeHitTest),MAKELPARAM((x),(y)) ) -#define FORWARD_WM_NEXTDLGCTL(hwnd,hwndSetFocus,fNext,fn) (HWND)(UINT)(DWORD)(fn)((hwnd),WM_NEXTDLGCTL,(WPARAM)(HWND)(hwndSetFocus),(LPARAM)(fNext)) -#define FORWARD_WM_PAINT(hwnd,fn) (void)(fn)((hwnd),WM_PAINT,0,0) -#define FORWARD_WM_PAINTCLIPBOARD(hwnd,hwndCBViewer,lpPaintStruct,fn) (void)(fn)((hwnd),WM_PAINTCLIPBOARD,(WPARAM)(HWND)(hwndCBViewer),(LPARAM)(LPPAINTSTRUCT)(lpPaintStruct)) -#define FORWARD_WM_PALETTECHANGED(hwnd,hwndPaletteChange,fn) (void)(fn)((hwnd),WM_PALETTECHANGED,(WPARAM)(HWND)(hwndPaletteChange),0) -#define FORWARD_WM_PALETTEISCHANGING(hwnd,hwndPaletteChange,fn) (void)(fn)((hwnd),WM_PALETTEISCHANGING,(WPARAM)(HWND)(hwndPaletteChange),0) -#define FORWARD_WM_PARENTNOTIFY(hwnd,msg,hwndChild,idChild,fn) (void)(fn)((hwnd),WM_PARENTNOTIFY,MAKEWPARAM(msg,idChild),(LPARAM)(hwndChild)) -#define FORWARD_WM_PASTE(hwnd,fn) (void)(fn)((hwnd),WM_PASTE,0,0) -#define FORWARD_WM_POWER(hwnd,code,fn) (void)(fn)((hwnd),WM_POWER,(WPARAM)(int)(code),0) -#define FORWARD_WM_QUERYDRAGICON(hwnd,fn) (HICON)(UINT)(DWORD)(fn)((hwnd),WM_QUERYDRAGICON,0,0) -#define FORWARD_WM_QUERYENDSESSION(hwnd,fn) (BOOL)(DWORD)(fn)((hwnd),WM_QUERYENDSESSION,0,0) -#define FORWARD_WM_QUERYNEWPALETTE(hwnd,fn) (BOOL)(DWORD)(fn)((hwnd),WM_QUERYNEWPALETTE,0,0) -#define FORWARD_WM_QUERYOPEN(hwnd,fn) (BOOL)(DWORD)(fn)((hwnd),WM_QUERYOPEN,0,0) -#define FORWARD_WM_QUEUESYNC(hwnd,fn) (void)(fn)((hwnd),WM_QUEUESYNC,0,0) -#define FORWARD_WM_QUIT(hwnd,exitCode,fn) (void)(fn)((hwnd),WM_QUIT,(WPARAM)(exitCode),0) -#define FORWARD_WM_RBUTTONDOWN(hwnd,fDoubleClick,x,y,keyFlags,fn) (void)(fn)((hwnd),(fDoubleClick) ? WM_RBUTTONDBLCLK : WM_RBUTTONDOWN,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y))) -#define FORWARD_WM_RBUTTONUP(hwnd,x,y,keyFlags,fn) (void)(fn)((hwnd),WM_RBUTTONUP,(WPARAM)(UINT)(keyFlags),MAKELPARAM((x),(y))) -#define FORWARD_WM_RENDERALLFORMATS(hwnd,fn) (void)(fn)((hwnd),WM_RENDERALLFORMATS,0,0) -#define FORWARD_WM_RENDERFORMAT(hwnd,fmt,fn) (HANDLE)(UINT)(DWORD)(fn)((hwnd),WM_RENDERFORMAT,(WPARAM)(UINT)(fmt),0) -#define FORWARD_WM_SETCURSOR(hwnd,hwndCursor,codeHitTest,msg,fn) (BOOL)(DWORD)(fn)((hwnd),WM_SETCURSOR,(WPARAM)(HWND)(hwndCursor),MAKELPARAM((codeHitTest),(msg))) -#define FORWARD_WM_SETFOCUS(hwnd,hwndOldFocus,fn) (void)(fn)((hwnd),WM_SETFOCUS,(WPARAM)(HWND)(hwndOldFocus),0) -#define FORWARD_WM_SETFONT(hwnd,hfont,fRedraw,fn) (void)(fn)((hwnd),WM_SETFONT,(WPARAM)(HFONT)(hfont),(LPARAM)(BOOL)(fRedraw)) -#define FORWARD_WM_SETREDRAW(hwnd,fRedraw,fn) (void)(fn)((hwnd),WM_SETREDRAW,(WPARAM)(BOOL)(fRedraw),0) -#define FORWARD_WM_SETTEXT(hwnd,lpszText,fn) (void)(fn)((hwnd),WM_SETTEXT,0,(LPARAM)(LPCTSTR)(lpszText)) -#define FORWARD_WM_SHOWWINDOW(hwnd,fShow,status,fn) (void)(fn)((hwnd),WM_SHOWWINDOW,(WPARAM)(BOOL)(fShow),(LPARAM)(UINT)(status)) -#define FORWARD_WM_SIZE(hwnd,state,cx,cy,fn) (void)(fn)((hwnd),WM_SIZE,(WPARAM)(UINT)(state),MAKELPARAM((cx),(cy))) -#define FORWARD_WM_SIZECLIPBOARD(hwnd,hwndCBViewer,lprc,fn) (void)(fn)((hwnd),WM_SIZECLIPBOARD,(WPARAM)(HWND)(hwndCBViewer),(LPARAM)(LPRECT)(lprc)) -#define FORWARD_WM_SPOOLERSTATUS(hwnd,status,cJobInQueue,fn) (void)(fn)((hwnd),WM_SPOOLERSTATUS,(WPARAM)(status),MAKELPARAM((cJobInQueue),0)) -#define FORWARD_WM_SYSCHAR(hwnd,ch,cRepeat,fn) (void)(fn)((hwnd),WM_SYSCHAR,(WPARAM)(TCHAR)(ch),MAKELPARAM((cRepeat),0)) -#define FORWARD_WM_SYSCOLORCHANGE(hwnd,fn) (void)(fn)((hwnd),WM_SYSCOLORCHANGE,0,0) -#define FORWARD_WM_SYSCOMMAND(hwnd,cmd,x,y,fn) (void)(fn)((hwnd),WM_SYSCOMMAND,(WPARAM)(UINT)(cmd),MAKELPARAM((x),(y))) -#define FORWARD_WM_SYSDEADCHAR(hwnd,ch,cRepeat,fn) (void)(fn)((hwnd),WM_SYSDEADCHAR,(WPARAM)(TCHAR)(ch),MAKELPARAM((cRepeat),0)) -#define FORWARD_WM_SYSKEYDOWN(hwnd,vk,cRepeat,flags,fn) (void)(fn)((hwnd),WM_SYSKEYDOWN,(WPARAM)(UINT)(vk),MAKELPARAM((cRepeat),(flags))) -#define FORWARD_WM_SYSKEYUP(hwnd,vk,cRepeat,flags,fn) (void)(fn)((hwnd),WM_SYSKEYUP,(WPARAM)(UINT)(vk),MAKELPARAM((cRepeat),(flags))) -#define FORWARD_WM_SYSTEMERROR(hwnd,errCode,fn) 0 -#define FORWARD_WM_TIMECHANGE(hwnd,fn) (void)(fn)((hwnd),WM_TIMECHANGE,0,0) -#define FORWARD_WM_TIMER(hwnd,id,fn) (void)(fn)((hwnd),WM_TIMER,(WPARAM)(UINT)(id),0) -#define FORWARD_WM_UNDO(hwnd,fn) (void)(fn)((hwnd),WM_UNDO,0,0) -#define FORWARD_WM_VKEYTOITEM(hwnd,vk,hwndListBox,iCaret,fn) (int)(DWORD)(fn)((hwnd),WM_VKEYTOITEM,MAKEWPARAM((vk),(iCaret)),(LPARAM)(hwndListBox)) -#define FORWARD_WM_VSCROLL(hwnd,hwndCtl,code,pos,fn) (void)(fn)((hwnd),WM_VSCROLL,MAKEWPARAM((UINT)(int)(code),(UINT)(int)(pos)),(LPARAM)(HWND)(hwndCtl)) -#define FORWARD_WM_VSCROLLCLIPBOARD(hwnd,hwndCBViewer,code,pos,fn) (void)(fn)((hwnd),WM_VSCROLLCLIPBOARD,(WPARAM)(HWND)(hwndCBViewer),MAKELPARAM((code),(pos))) -#define FORWARD_WM_WINDOWPOSCHANGED(hwnd,lpwpos,fn) (void)(fn)((hwnd),WM_WINDOWPOSCHANGED,0,(LPARAM)(const LPWINDOWPOS)(lpwpos)) -#define FORWARD_WM_WINDOWPOSCHANGING(hwnd,lpwpos,fn) (BOOL)(DWORD)(fn)((hwnd),WM_WINDOWPOSCHANGING,0,(LPARAM)(LPWINDOWPOS)(lpwpos)) -#define FORWARD_WM_WININICHANGE(hwnd,lpszSectionName,fn) (void)(fn)((hwnd),WM_WININICHANGE,0,(LPARAM)(LPCTSTR)(lpszSectionName)) -#define GET_EM_LINESCROLL_MPS(vert,horz) (WPARAM)horz,(LONG)vert -#define GET_EM_SETSEL_END(wp,lp) (lp) -#define GET_EM_SETSEL_MPS(iStart,iEnd) (WPARAM)(iStart),(LONG)(iEnd) -#define GET_EM_SETSEL_START(wp,lp) (INT)(wp) -#define GET_LPARAM(wp,lp) (lp) -#define GET_WM_ACTIVATE_FMINIMIZED(wp,lp) (BOOL)HIWORD(wp) -#define GET_WM_ACTIVATE_HWND(wp,lp) (HWND)(lp) -#define GET_WM_ACTIVATE_MPS(s,fmin,hwnd) (WPARAM)MAKELONG((s),(fmin)),(LONG)(hwnd) -#define GET_WM_ACTIVATE_STATE(wp,lp) LOWORD(wp) -#define GET_WM_CHANGECBCHAIN_HWNDNEXT(wp,lp) (HWND)(lp) -#define GET_WM_CHARTOITEM_CHAR(wp,lp) (TCHAR)LOWORD(wp) -#define GET_WM_CHARTOITEM_HWND(wp,lp) (HWND)(lp) -#define GET_WM_CHARTOITEM_MPS(ch,pos,hwnd) (WPARAM)MAKELONG((pos),(ch)),(LONG)(hwnd) -#define GET_WM_CHARTOITEM_POS(wp,lp) HIWORD(wp) -#define GET_WM_COMMAND_CMD(wp,lp) HIWORD(wp) -#define GET_WM_COMMAND_HWND(wp,lp) (HWND)(lp) -#define GET_WM_COMMAND_ID(wp,lp) LOWORD(wp) -#define GET_WM_COMMAND_MPS(id,hwnd,cmd) (WPARAM)MAKELONG(id,cmd),(LONG)(hwnd) -#define GET_WM_CTLCOLOR_HDC(wp,lp,msg) (HDC)(wp) -#define GET_WM_CTLCOLOR_HWND(wp,lp,msg) (HWND)(lp) -#define GET_WM_CTLCOLOR_MPS(hdc,hwnd,type) (WPARAM)(hdc),(LONG)(hwnd) -#define GET_WM_CTLCOLOR_MSG(type) (WORD)(WM_CTLCOLORMSGBOX+(type)) -#define GET_WM_CTLCOLOR_TYPE(wp,lp,msg) (WORD)(msg - WM_CTLCOLORMSGBOX) -#define GET_WM_HSCROLL_CODE(wp,lp) LOWORD(wp) -#define GET_WM_HSCROLL_HWND(wp,lp) (HWND)(lp) -#define GET_WM_HSCROLL_MPS(code,pos,hwnd) (WPARAM)MAKELONG(code,pos),(LONG)(hwnd) -#define GET_WM_HSCROLL_POS(wp,lp) HIWORD(wp) -#define GET_WM_MDIACTIVATE_FACTIVATE(hwnd,wp,lp) (lp == (LONG)hwnd) -#define GET_WM_MDIACTIVATE_HWNDACTIVATE(wp,lp) (HWND)(lp) -#define GET_WM_MDIACTIVATE_HWNDDEACT(wp,lp) (HWND)(wp) -#define GET_WM_MDIACTIVATE_MPS(f,hwndD,hwndA) (WPARAM)(hwndA),0 -#define GET_WM_MDISETMENU_MPS(hmenuF,hmenuW) (WPARAM)hmenuF,(LONG)hmenuW -#define GET_WM_MENUCHAR_CHAR(wp,lp) (TCHAR)LOWORD(wp) -#define GET_WM_MENUCHAR_FMENU(wp,lp) (BOOL)HIWORD(wp) -#define GET_WM_MENUCHAR_HMENU(wp,lp) (HMENU)(lp) -#define GET_WM_MENUCHAR_MPS(ch,hmenu,f) (WPARAM)MAKELONG(ch,f),(LONG)(hmenu) -#define GET_WM_MENUSELECT_CMD(wp,lp) LOWORD(wp) -#define GET_WM_MENUSELECT_FLAGS(wp,lp) (UINT)(int)(short)HIWORD(wp) -#define GET_WM_MENUSELECT_HMENU(wp,lp) (HMENU)(lp) -#define GET_WM_MENUSELECT_MPS(cmd,f,hmenu) (WPARAM)MAKELONG(cmd,f),(LONG)(hmenu) -#define GET_WM_PARENTNOTIFY2_MPS(msg,x,y) (WPARAM)MAKELONG(0,msg),MAKELONG(x,y) -#define GET_WM_PARENTNOTIFY_HWNDCHILD(wp,lp) (HWND)(lp) -#define GET_WM_PARENTNOTIFY_ID(wp,lp) HIWORD(wp) -#define GET_WM_PARENTNOTIFY_MPS(msg,id,hwnd) (WPARAM)MAKELONG(id,msg),(LONG)(hwnd) -#define GET_WM_PARENTNOTIFY_MSG(wp,lp) LOWORD(wp) -#define GET_WM_PARENTNOTIFY_X(wp,lp) (int)(short)LOWORD(lp) -#define GET_WM_PARENTNOTIFY_Y(wp,lp) (int)(short)HIWORD(lp) -#define GET_WM_VKEYTOITEM_CODE(wp,lp) (int)(short)LOWORD(wp) -#define GET_WM_VKEYTOITEM_HWND(wp,lp) (HWND)(lp) -#define GET_WM_VKEYTOITEM_ITEM(wp,lp) HIWORD(wp) -#define GET_WM_VKEYTOITEM_MPS(code,item,hwnd) (WPARAM)MAKELONG(item,code),(LONG)(hwnd) -#define GET_WM_VSCROLL_CODE(wp,lp) LOWORD(wp) -#define GET_WM_VSCROLL_HWND(wp,lp) (HWND)(lp) -#define GET_WM_VSCROLL_MPS(code,pos,hwnd) (WPARAM)MAKELONG(code,pos),(LONG)(hwnd) -#define GET_WM_VSCROLL_POS(wp,lp) HIWORD(wp) -#define GET_WPARAM(wp,lp) (wp) -#define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp)) -#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp)) -#define GetFirstChild(hwnd) GetTopWindow(hwnd) -#define GetFirstSibling(hwnd) GetWindow(hwnd,GW_HWNDFIRST) -#define GetInstanceModule(hInstance) (HMODULE)(hInstance) -#define GetLastSibling(hwnd) GetWindow(hwnd,GW_HWNDLAST) -#define GetNextSibling(hwnd) GetWindow(hwnd,GW_HWNDNEXT) -#define GetPrevSibling(hwnd) GetWindow(hwnd,GW_HWNDPREV) -#define GetStockBrush(i) ((HBRUSH)GetStockObject(i)) -#define GetStockFont(i) ((HFONT)GetStockObject(i)) -#define GetStockPen(i) ((HPEN)GetStockObject(i)) -#define GetWindowExStyle(hwnd) ((DWORD)GetWindowLong(hwnd,GWL_EXSTYLE)) -#define GetWindowFont(hwnd) FORWARD_WM_GETFONT((hwnd),SendMessage) -#define GetWindowID(hwnd) GetDlgCtrlID(hwnd) -#define GetWindowInstance(hwnd) ((HMODULE)GetWindowLong(hwnd,GWL_HINSTANCE)) -#define GetWindowOwner(hwnd) GetWindow(hwnd,GW_OWNER) -#define GetWindowStyle(hwnd) ((DWORD)GetWindowLong(hwnd,GWL_STYLE)) -#define GlobalAllocPtr(flags,cb) (GlobalLock(GlobalAlloc((flags),(cb)))) -#define GlobalFreePtr(lp) (GlobalUnlockPtr(lp),(BOOL)GlobalFree(GlobalPtrHandle(lp))) -#define GlobalLockPtr(lp) ((BOOL)GlobalLock(GlobalPtrHandle(lp))) -#define GlobalPtrHandle(lp) ((HGLOBAL)GlobalHandle(lp)) -#define GlobalReAllocPtr(lp,cbNew,flags) (GlobalUnlockPtr(lp),GlobalLock(GlobalReAlloc(GlobalPtrHandle(lp) ,(cbNew),(flags)))) -#define GlobalUnlockPtr(lp) GlobalUnlock(GlobalPtrHandle(lp)) -#define HANDLE_MSG(hwnd,message,fn) case (message): return HANDLE_##message((hwnd),(wParam),(lParam),(fn)) -#define HANDLE_WM_ACTIVATE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)LOWORD(wParam),(HWND)(lParam),(BOOL)HIWORD(wParam)),0) -#define HANDLE_WM_ACTIVATEAPP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(wParam),(DWORD)(lParam)),0) -#define HANDLE_WM_ASKCBFORMATNAME(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(wParam),(LPTSTR)(lParam)),0) -#define HANDLE_WM_CANCELMODE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_CHANGECBCHAIN(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam),(HWND)(lParam)),0) -#define HANDLE_WM_CHAR(hwnd,wParam,lParam,fn) ((fn)((hwnd),(TCHAR)(wParam),(int)(short)LOWORD(lParam)),0) -#define HANDLE_WM_CHARTOITEM(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)((hwnd),(UINT)LOWORD(wParam),(HWND)(lParam),(int)(short)HIWORD(wParam)) -#define HANDLE_WM_CHILDACTIVATE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_CLEAR(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_CLOSE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_COMMAND(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(LOWORD(wParam)),(HWND)(lParam),(UINT)HIWORD(wParam)),0) -#define HANDLE_WM_COMMNOTIFY(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(wParam),(UINT)LOWORD(lParam)),0) -#define HANDLE_WM_COMPACTING(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam)),0) -#define HANDLE_WM_COMPAREITEM(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)((hwnd),(const COMPAREITEMSTRUCT*)(lParam)) -#define HANDLE_WM_COPY(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_CREATE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(LPCREATESTRUCT)(lParam)) ? 0 : (LRESULT)-1L) -#define HANDLE_WM_CTLCOLORBTN(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_BTN) -#define HANDLE_WM_CTLCOLORDLG(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_DLG) -#define HANDLE_WM_CTLCOLOREDIT(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_EDIT) -#define HANDLE_WM_CTLCOLORLISTBOX(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_LISTBOX) -#define HANDLE_WM_CTLCOLORMSGBOX(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_MSGBOX) -#define HANDLE_WM_CTLCOLORSCROLLBAR(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_SCROLLBAR) -#define HANDLE_WM_CTLCOLORSTATIC(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HBRUSH)(fn)((hwnd),(HDC)(wParam),(HWND)(lParam),CTLCOLOR_STATIC) -#define HANDLE_WM_CUT(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_DEADCHAR(hwnd,wParam,lParam,fn) ((fn)((hwnd),(TCHAR)(wParam),(int)(short)LOWORD(lParam)),0) -#define HANDLE_WM_DELETEITEM(hwnd,wParam,lParam,fn) ((fn)((hwnd),(const DELETEITEMSTRUCT*)(lParam)),0) -#define HANDLE_WM_DESTROY(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_DESTROYCLIPBOARD(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_DEVMODECHANGE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(LPCTSTR)(lParam)),0) -#define HANDLE_WM_DRAWCLIPBOARD(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_DRAWITEM(hwnd,wParam,lParam,fn) ((fn)((hwnd),(const DRAWITEMSTRUCT*)(lParam)),0) -#define HANDLE_WM_DROPFILES(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HDROP)(wParam)),0) -#define HANDLE_WM_ENABLE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(wParam)),0) -#define HANDLE_WM_ENDSESSION(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(wParam)),0) -#define HANDLE_WM_ENTERIDLE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),(HWND)(lParam)),0) -#define HANDLE_WM_ERASEBKGND(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(HDC)(wParam)) -#define HANDLE_WM_FONTCHANGE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_GETDLGCODE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)(hwnd,(LPMSG)(lParam)) -#define HANDLE_WM_GETFONT(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HFONT)(fn)(hwnd) -#define HANDLE_WM_GETMINMAXINFO(hwnd,wParam,lParam,fn) ((fn)((hwnd),(LPMINMAXINFO)(lParam)),0) -#define HANDLE_WM_GETTEXT(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)((hwnd),(int)(wParam),(LPTSTR)(lParam)) -#define HANDLE_WM_GETTEXTLENGTH(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)(hwnd) -#define HANDLE_WM_HSCROLL(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(lParam),(UINT)(LOWORD(wParam)),(int)(short)HIWORD(wParam)),0) -#define HANDLE_WM_HSCROLLCLIPBOARD(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam),(UINT)LOWORD(lParam),(int)(short)HIWORD(lParam)),0) -#define HANDLE_WM_ICONERASEBKGND(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(HDC)(wParam)) -#define HANDLE_WM_INITDIALOG(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(BOOL)(fn)((hwnd),(HWND)(wParam),lParam) -#define HANDLE_WM_INITMENU(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HMENU)(wParam)),0) -#define HANDLE_WM_INITMENUPOPUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HMENU)(wParam),(UINT)LOWORD(lParam),(BOOL)HIWORD(lParam)),0) -#define HANDLE_WM_KEYDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),TRUE,(int)(short)LOWORD(lParam),(UINT)HIWORD(lParam)),0) -#define HANDLE_WM_KEYUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),FALSE,(int)(short)LOWORD(lParam),(UINT)HIWORD(lParam)),0) -#define HANDLE_WM_KILLFOCUS(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0) -#define HANDLE_WM_LBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_LBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_LBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_MBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_MBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_MBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_MDIACTIVATE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(lParam == (LPARAM)hwnd),(HWND)(lParam),(HWND)(wParam)),0) -#define HANDLE_WM_MDICASCADE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(fn)((hwnd),(UINT)(wParam)) -#define HANDLE_WM_MDICREATE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)((hwnd),(LPMDICREATESTRUCT)(lParam)) -#define HANDLE_WM_MDIDESTROY(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0) -#define HANDLE_WM_MDIGETACTIVE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)(hwnd) -#define HANDLE_WM_MDIICONARRANGE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_MDIMAXIMIZE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0) -#define HANDLE_WM_MDINEXT(hwnd,wParam,lParam,fn) (LRESULT)(HWND)(fn)((hwnd),(HWND)(wParam),(BOOL)lParam) -#define HANDLE_WM_MDIRESTORE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0) -#define HANDLE_WM_MDISETMENU(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)((hwnd),(BOOL)(wParam),(HMENU)(wParam),(HMENU)(lParam)) -#define HANDLE_WM_MDITILE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(fn)((hwnd),(UINT)(wParam)) -#define HANDLE_WM_MEASUREITEM(hwnd,wParam,lParam,fn) ((fn)((hwnd),(MEASUREITEMSTRUCT*)(lParam)),0) -#define HANDLE_WM_MENUCHAR(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(fn)((hwnd),(UINT)(LOWORD(wParam)),(UINT)HIWORD(wParam),(HMENU)(lParam)) -#define HANDLE_WM_MENUSELECT(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HMENU)(lParam),(int)(LOWORD(wParam)),(HIWORD(wParam) & MF_POPUP) ? GetSubMenu((HMENU)lParam,LOWORD(wParam)) : 0,(UINT)(((short)HIWORD(wParam) == -1) ? 0xFFFFFFFF : HIWORD(wParam))),0) -#define HANDLE_WM_MOUSEACTIVATE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)((hwnd),(HWND)(wParam),(UINT)LOWORD(lParam),(UINT)HIWORD(lParam)) -#define HANDLE_WM_MOUSEMOVE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_MOVE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam)),0) -#define HANDLE_WM_NCACTIVATE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(BOOL)(wParam),0,0) -#define HANDLE_WM_NCCALCSIZE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)((hwnd),(BOOL)(0),(NCCALCSIZE_PARAMS*)(lParam)) -#define HANDLE_WM_NCCREATE(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(LPCREATESTRUCT)(lParam)) -#define HANDLE_WM_NCDESTROY(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_NCHITTEST(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam)) -#define HANDLE_WM_NCLBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_NCLBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_NCLBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_NCMBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_NCMBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_NCMBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_NCMOUSEMOVE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_NCPAINT(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HRGN)(wParam)),0) -#define HANDLE_WM_NCRBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_NCRBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_NCRBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_NEXTDLGCTL(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HWND)(fn)((hwnd),(HWND)(wParam),(BOOL)(lParam)) -#define HANDLE_WM_PAINT(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_PAINTCLIPBOARD(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam),(const LPPAINTSTRUCT)GlobalLock((HGLOBAL)(lParam))),GlobalUnlock((HGLOBAL)(lParam)),0) -#define HANDLE_WM_PALETTECHANGED(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0) -#define HANDLE_WM_PALETTEISCHANGING(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0) -#define HANDLE_WM_PARENTNOTIFY(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)LOWORD(wParam),(HWND)(lParam),(UINT)HIWORD(wParam)),0) -#define HANDLE_WM_PASTE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_POWER(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(wParam)),0) -#define HANDLE_WM_QUERYDRAGICON(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(fn)(hwnd) -#define HANDLE_WM_QUERYENDSESSION(hwnd,wParam,lParam,fn) MAKELRESULT((BOOL)(fn)(hwnd),0) -#define HANDLE_WM_QUERYNEWPALETTE(hwnd,wParam,lParam,fn) MAKELRESULT((BOOL)(fn)(hwnd),0) -#define HANDLE_WM_QUERYOPEN(hwnd,wParam,lParam,fn) MAKELRESULT((BOOL)(fn)(hwnd),0) -#define HANDLE_WM_QUEUESYNC(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_QUIT(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(wParam)),0) -#define HANDLE_WM_RBUTTONDBLCLK(hwnd,wParam,lParam,fn) ((fn)((hwnd),TRUE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_RBUTTONDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),FALSE,(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_RBUTTONUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam),(UINT)(wParam)),0) -#define HANDLE_WM_RENDERALLFORMATS(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_RENDERFORMAT(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(UINT)(HANDLE)(fn)((hwnd),(UINT)(wParam)) -#define HANDLE_WM_SETCURSOR(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(HWND)(wParam),(UINT)LOWORD(lParam),(UINT)HIWORD(lParam)) -#define HANDLE_WM_SETFOCUS(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam)),0) -#define HANDLE_WM_SETFONT(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HFONT)(wParam),(BOOL)(lParam)),0) -#define HANDLE_WM_SETREDRAW(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(wParam)),0) -#define HANDLE_WM_SETTEXT(hwnd,wParam,lParam,fn) ((fn)((hwnd),(LPCTSTR)(lParam)),0) -#define HANDLE_WM_SHOWWINDOW(hwnd,wParam,lParam,fn) ((fn)((hwnd),(BOOL)(wParam),(UINT)(lParam)),0) -#define HANDLE_WM_SIZE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam)),0) -#define HANDLE_WM_SIZECLIPBOARD(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam),(const LPRECT)GlobalLock((HGLOBAL)(lParam))),GlobalUnlock((HGLOBAL)(lParam)),0) -#define HANDLE_WM_SPOOLERSTATUS(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),(int)(short)LOWORD(lParam)),0) -#define HANDLE_WM_SYSCHAR(hwnd,wParam,lParam,fn) ((fn)((hwnd),(TCHAR)(wParam),(int)(short)LOWORD(lParam)),0) -#define HANDLE_WM_SYSCOLORCHANGE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_SYSCOMMAND(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),(int)(short)LOWORD(lParam),(int)(short)HIWORD(lParam)),0) -#define HANDLE_WM_SYSDEADCHAR(hwnd,wParam,lParam,fn) ((fn)((hwnd),(TCHAR)(wParam),(int)(short)LOWORD(lParam)),0) -#define HANDLE_WM_SYSKEYDOWN(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),TRUE,(int)(short)LOWORD(lParam),(UINT)HIWORD(lParam)),0) -#define HANDLE_WM_SYSKEYUP(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam),FALSE,(int)(short)LOWORD(lParam),(UINT)HIWORD(lParam)),0) -#define HANDLE_WM_SYSTEMERROR(hwnd,wParam,lParam,fn) 0 -#define HANDLE_WM_TIMECHANGE(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_TIMER(hwnd,wParam,lParam,fn) ((fn)((hwnd),(UINT)(wParam)),0) -#define HANDLE_WM_UNDO(hwnd,wParam,lParam,fn) ((fn)(hwnd),0) -#define HANDLE_WM_VKEYTOITEM(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(int)(fn)((hwnd),(UINT)LOWORD(wParam),(HWND)(lParam),(int)(short)HIWORD(wParam)) -#define HANDLE_WM_VSCROLL(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(lParam),(UINT)(LOWORD(wParam)),(int)(short)HIWORD(wParam)),0) -#define HANDLE_WM_VSCROLLCLIPBOARD(hwnd,wParam,lParam,fn) ((fn)((hwnd),(HWND)(wParam),(UINT)LOWORD(lParam),(int)(short)HIWORD(lParam)),0) -#define HANDLE_WM_WINDOWPOSCHANGED(hwnd,wParam,lParam,fn) ((fn)((hwnd),(const LPWINDOWPOS)(lParam)),0) -#define HANDLE_WM_WINDOWPOSCHANGING(hwnd,wParam,lParam,fn) (LRESULT)(DWORD)(BOOL)(fn)((hwnd),(LPWINDOWPOS)(lParam)) -#define HANDLE_WM_WININICHANGE(hwnd,wParam,lParam,fn) ((fn)((hwnd),(LPCTSTR)(lParam)),0) -#define InsetRect(lprc,dx,dy) InflateRect((lprc),-(dx),-(dy)) -#define IntersectRgn(hrgnResult,hrgnA,hrgnB) CombineRgn(hrgnResult,hrgnA,hrgnB,RGN_AND) -#define IsLButtonDown() (GetKeyState(VK_LBUTTON) < 0) -#define IsMButtonDown() (GetKeyState(VK_MBUTTON) < 0) -#define IsMaximized(hwnd) IsZoomed(hwnd) -#define IsMinimized(hwnd) IsIconic(hwnd) -#define IsRButtonDown() (GetKeyState(VK_RBUTTON) < 0) -#define IsRestored(hwnd) ((GetWindowStyle(hwnd) & (WS_MINIMIZE | WS_MAXIMIZE)) == 0) -#define ListBox_AddItemData(hwndCtl,data) ((int)(DWORD)SendMessage((hwndCtl),LB_ADDSTRING,0,(LPARAM)(data))) -#define ListBox_AddString(hwndCtl,lpsz) ((int)(DWORD)SendMessage((hwndCtl),LB_ADDSTRING,0,(LPARAM)(LPCTSTR)(lpsz))) -#define ListBox_DeleteString(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_DELETESTRING,(WPARAM)(int)(index),0)) -#define ListBox_Dir(hwndCtl,attrs,lpszFileSpec) ((int)(DWORD)SendMessage((hwndCtl),LB_DIR,(WPARAM)(UINT)(attrs),(LPARAM)(LPCTSTR)(lpszFileSpec))) -#define ListBox_Enable(hwndCtl,fEnable) EnableWindow((hwndCtl),(fEnable)) -#define ListBox_FindItemData(hwndCtl,indexStart,data) ((int)(DWORD)SendMessage((hwndCtl),LB_FINDSTRING,(WPARAM)(int)(indexStart),(LPARAM)(data))) -#define ListBox_FindString(hwndCtl,indexStart,lpszFind) ((int)(DWORD)SendMessage((hwndCtl),LB_FINDSTRING,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszFind))) -#define ListBox_FindStringExact(hwndCtl,indexStart,lpszFind) ((int)(DWORD)SendMessage((hwndCtl),LB_FINDSTRINGEXACT,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszFind))) -#define ListBox_GetCaretIndex(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETCARETINDEX,0,0)) -#define ListBox_GetCount(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETCOUNT,0,0)) -#define ListBox_GetCurSel(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETCURSEL,0,0)) -#define ListBox_GetHorizontalExtent(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETHORIZONTALEXTENT,0,0)) -#define ListBox_GetItemData(hwndCtl,index) ((LRESULT)(DWORD)SendMessage((hwndCtl),LB_GETITEMDATA,(WPARAM)(int)(index),0)) -#define ListBox_GetItemHeight(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_GETITEMHEIGHT,(WPARAM)(int)(index),0)) -#define ListBox_GetItemRect(hwndCtl,index,lprc) ((int)(DWORD)SendMessage((hwndCtl),LB_GETITEMRECT,(WPARAM)(int)(index),(LPARAM)(RECT*)(lprc))) -#define ListBox_GetSel(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_GETSEL,(WPARAM)(int)(index),0)) -#define ListBox_GetSelCount(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETSELCOUNT,0,0)) -#define ListBox_GetSelItems(hwndCtl,cItems,lpItems) ((int)(DWORD)SendMessage((hwndCtl),LB_GETSELITEMS,(WPARAM)(int)(cItems),(LPARAM)(int*)(lpItems))) -#define ListBox_GetText(hwndCtl,index,lpszBuffer) ((int)(DWORD)SendMessage((hwndCtl),LB_GETTEXT,(WPARAM)(int)(index),(LPARAM)(LPCTSTR)(lpszBuffer))) -#define ListBox_GetTextLen(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_GETTEXTLEN,(WPARAM)(int)(index),0)) -#define ListBox_GetTopIndex(hwndCtl) ((int)(DWORD)SendMessage((hwndCtl),LB_GETTOPINDEX,0,0)) -#define ListBox_InsertItemData(hwndCtl,index,data) ((int)(DWORD)SendMessage((hwndCtl),LB_INSERTSTRING,(WPARAM)(int)(index),(LPARAM)(data))) -#define ListBox_InsertString(hwndCtl,index,lpsz) ((int)(DWORD)SendMessage((hwndCtl),LB_INSERTSTRING,(WPARAM)(int)(index),(LPARAM)(LPCTSTR)(lpsz))) -#define ListBox_ResetContent(hwndCtl) ((BOOL)(DWORD)SendMessage((hwndCtl),LB_RESETCONTENT,0,0)) -#define ListBox_SelItemRange(hwndCtl,fSelect,first,last) ((int)(DWORD)SendMessage((hwndCtl),LB_SELITEMRANGE,(WPARAM)(BOOL)(fSelect),MAKELPARAM((first),(last)))) -#define ListBox_SelectItemData(hwndCtl,indexStart,data) ((int)(DWORD)SendMessage((hwndCtl),LB_SELECTSTRING,(WPARAM)(int)(indexStart),(LPARAM)(data))) -#define ListBox_SelectString(hwndCtl,indexStart,lpszFind) ((int)(DWORD)SendMessage((hwndCtl),LB_SELECTSTRING,(WPARAM)(int)(indexStart),(LPARAM)(LPCTSTR)(lpszFind))) -#define ListBox_SetCaretIndex(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_SETCARETINDEX,(WPARAM)(int)(index),0)) -#define ListBox_SetColumnWidth(hwndCtl,cxColumn) ((void)SendMessage((hwndCtl),LB_SETCOLUMNWIDTH,(WPARAM)(int)(cxColumn),0)) -#define ListBox_SetCurSel(hwndCtl,index) ((int)(DWORD)SendMessage((hwndCtl),LB_SETCURSEL,(WPARAM)(int)(index),0)) -#define ListBox_SetHorizontalExtent(hwndCtl,cxExtent) ((void)SendMessage((hwndCtl),LB_SETHORIZONTALEXTENT,(WPARAM)(int)(cxExtent),0)) -#define ListBox_SetItemData(hwndCtl,index,data) ((int)(DWORD)SendMessage((hwndCtl),LB_SETITEMDATA,(WPARAM)(int)(index),(LPARAM)(data))) -#define ListBox_SetItemHeight(hwndCtl,index,cy) ((int)(DWORD)SendMessage((hwndCtl),LB_SETITEMHEIGHT,(WPARAM)(int)(index),MAKELPARAM((cy),0))) -#define ListBox_SetSel(hwndCtl,fSelect,index) ((int)(DWORD)SendMessage((hwndCtl),LB_SETSEL,(WPARAM)(BOOL)(fSelect),(LPARAM)(index))) -#define ListBox_SetTabStops(hwndCtl,cTabs,lpTabs) ((BOOL)(DWORD)SendMessage((hwndCtl),LB_SETTABSTOPS,(WPARAM)(int)(cTabs),(LPARAM)(int*)(lpTabs))) -#define ListBox_SetTopIndex(hwndCtl,indexTop) ((int)(DWORD)SendMessage((hwndCtl),LB_SETTOPINDEX,(WPARAM)(int)(indexTop),0)) -#define MapWindowRect(hwndFrom,hwndTo,lprc) MapWindowPoints((hwndFrom),(hwndTo),(POINT*)(lprc),2) -#define ScrollBar_Enable(hwndCtl,flags) EnableScrollBar((hwndCtl),SB_CTL,(flags)) -#define ScrollBar_GetPos(hwndCtl) GetScrollPos((hwndCtl),SB_CTL) -#define ScrollBar_GetRange(hwndCtl,lpposMin,lpposMax) GetScrollRange((hwndCtl),SB_CTL,(lpposMin),(lpposMax)) -#define ScrollBar_SetPos(hwndCtl,pos,fRedraw) SetScrollPos((hwndCtl),SB_CTL,(pos),(fRedraw)) -#define ScrollBar_SetRange(hwndCtl,posMin,posMax,fRedraw) SetScrollRange((hwndCtl),SB_CTL,(posMin),(posMax),(fRedraw)) -#define ScrollBar_Show(hwndCtl,fShow) ShowWindow((hwndCtl),(fShow) ? SW_SHOWNORMAL : SW_HIDE) -#define SelectBitmap(hdc,hbm) ((HBITMAP)SelectObject((hdc),(HGDIOBJ)(HBITMAP)(hbm))) -#define SelectBrush(hdc,hbr) ((HBRUSH)SelectObject((hdc),(HGDIOBJ)(HBRUSH)(hbr))) -#define SelectFont(hdc,hfont) ((HFONT)SelectObject((hdc),(HGDIOBJ)(HFONT)(hfont))) -#define SelectPen(hdc,hpen) ((HPEN)SelectObject((hdc),(HGDIOBJ)(HPEN)(hpen))) -#define SetDlgMsgResult(hwnd,msg,result) (( (msg) == WM_CTLCOLORMSGBOX || (msg) == WM_CTLCOLOREDIT || (msg) == WM_CTLCOLORLISTBOX || (msg) == WM_CTLCOLORBTN || (msg) == WM_CTLCOLORDLG || (msg) == WM_CTLCOLORSCROLLBAR || (msg) == WM_CTLCOLORSTATIC || (msg) == WM_COMPAREITEM || (msg) == WM_VKEYTOITEM || (msg) == WM_CHARTOITEM || (msg) == WM_QUERYDRAGICON || (msg) == WM_INITDIALOG ) ? (BOOL)(result) : (SetWindowLong((hwnd),DWL_MSGRESULT,(LPARAM)(LRESULT)(result)),TRUE)) -#define SetWindowFont(hwnd,hfont,fRedraw) FORWARD_WM_SETFONT((hwnd),(hfont),(fRedraw),SendMessage) -#define SetWindowRedraw(hwnd,fRedraw) ((void)SendMessage(hwnd,WM_SETREDRAW,(WPARAM)(BOOL)(fRedraw),0)) -#define Static_Enable(hwndCtl,fEnable) EnableWindow((hwndCtl),(fEnable)) -#define Static_GetIcon(hwndCtl,hIcon) ((HICON)(UINT)(DWORD)SendMessage((hwndCtl),STM_GETICON,0,0)) -#define Static_GetText(hwndCtl,lpch,cchMax) GetWindowText((hwndCtl),(lpch),(cchMax)) -#define Static_GetTextLength(hwndCtl) GetWindowTextLength(hwndCtl) -#define Static_SetIcon(hwndCtl,hIcon) ((HICON)(UINT)(DWORD)SendMessage((hwndCtl),STM_SETICON,(WPARAM)(HICON)(hIcon),0)) -#define Static_SetText(hwndCtl,lpsz) SetWindowText((hwndCtl),(lpsz)) -#define SubclassDialog(hwndDlg,lpfn) ((DLGPROC)SetWindowLong(hwndDlg,DWL_DLGPROC,(LPARAM)(DLGPROC)(lpfn))) -#define SubclassWindow(hwnd,lpfn) ((WNDPROC)SetWindowLong((hwnd),GWL_WNDPROC,(LPARAM)(WNDPROC)(lpfn))) -#define SubtractRgn(hrgnResult,hrgnA,hrgnB) CombineRgn(hrgnResult,hrgnA,hrgnB,RGN_DIFF) -#define UnionRgn(hrgnResult,hrgnA,hrgnB) CombineRgn(hrgnResult,hrgnA,hrgnB,RGN_OR) -#define XorRgn(hrgnResult,hrgnA,hrgnB) CombineRgn(hrgnResult,hrgnA,hrgnB,RGN_XOR) - -/* FAR versions of mem and string functions for porting from old code*/ -#define _ffree free -#define _fmalloc malloc -#define _frealloc realloc -#define _fmsize _msize - -#define _fmemcpy memcpy -#define _fmemmove memmove -#define _fmemset memset -#define _fmemcmp memcmp -#define _fmemchr memchr -#define _fmemccpy _memccpy -#define _fmemicmp _memicmp - -#define _fstrcat strcat -#define _fstrchr strchr -#define _fstrcmp strcmp -#define _fstrcpy strcpy -#define _fstrcspn strcspn -#define _fstrdup _strdup -#define _fstricmp _stricmp -#define _fstrlen strlen -#define _fstrlwr _strlwr -#define _fstrncat strncat -#define _fstrncmp strncmp -#define _fstrncpy strncpy -#define _fstrnicmp _strnicmp -#define _fstrnset _strnset -#define _fstrpbrk strpbrk -#define _fstrrchr strrchr -#define _fstrrev _strrev -#define _fstrset _strset -#define _fstrspn strspn -#define _fstrstr strstr -#define _fstrtok strtok -#define _fstrupr _strupr - -#define hmemcpy MoveMemory - -#endif diff --git a/winsup/w32api/include/winerror.h b/winsup/w32api/include/winerror.h deleted file mode 100644 index 5dc58c774..000000000 --- a/winsup/w32api/include/winerror.h +++ /dev/null @@ -1,1050 +0,0 @@ -#ifndef _WINERROR_H -#define _WINERROR_H -#define ERROR_SUCCESS 0L -#define NO_ERROR 0L -#define ERROR_INVALID_FUNCTION 1L -#define ERROR_FILE_NOT_FOUND 2L -#define ERROR_PATH_NOT_FOUND 3L -#define ERROR_TOO_MANY_OPEN_FILES 4L -#define ERROR_ACCESS_DENIED 5L -#define ERROR_INVALID_HANDLE 6L -#define ERROR_ARENA_TRASHED 7L -#define ERROR_NOT_ENOUGH_MEMORY 8L -#define ERROR_INVALID_BLOCK 9L -#define ERROR_BAD_ENVIRONMENT 10L -#define ERROR_BAD_FORMAT 11L -#define ERROR_INVALID_ACCESS 12L -#define ERROR_INVALID_DATA 13L -#define ERROR_OUTOFMEMORY 14L -#define ERROR_INVALID_DRIVE 15L -#define ERROR_CURRENT_DIRECTORY 16L -#define ERROR_NOT_SAME_DEVICE 17L -#define ERROR_NO_MORE_FILES 18L -#define ERROR_WRITE_PROTECT 19L -#define ERROR_BAD_UNIT 20L -#define ERROR_NOT_READY 21L -#define ERROR_BAD_COMMAND 22L -#define ERROR_CRC 23L -#define ERROR_BAD_LENGTH 24L -#define ERROR_SEEK 25L -#define ERROR_NOT_DOS_DISK 26L -#define ERROR_SECTOR_NOT_FOUND 27L -#define ERROR_OUT_OF_PAPER 28L -#define ERROR_WRITE_FAULT 29L -#define ERROR_READ_FAULT 30L -#define ERROR_GEN_FAILURE 31L -#define ERROR_SHARING_VIOLATION 32L -#define ERROR_LOCK_VIOLATION 33L -#define ERROR_WRONG_DISK 34L -#define ERROR_SHARING_BUFFER_EXCEEDED 36L -#define ERROR_HANDLE_EOF 38L -#define ERROR_HANDLE_DISK_FULL 39L -#define ERROR_NOT_SUPPORTED 50L -#define ERROR_REM_NOT_LIST 51L -#define ERROR_DUP_NAME 52L -#define ERROR_BAD_NETPATH 53L -#define ERROR_NETWORK_BUSY 54L -#define ERROR_DEV_NOT_EXIST 55L -#define ERROR_TOO_MANY_CMDS 56L -#define ERROR_ADAP_HDW_ERR 57L -#define ERROR_BAD_NET_RESP 58L -#define ERROR_UNEXP_NET_ERR 59L -#define ERROR_BAD_REM_ADAP 60L -#define ERROR_PRINTQ_FULL 61L -#define ERROR_NO_SPOOL_SPACE 62L -#define ERROR_PRINT_CANCELLED 63L -#define ERROR_NETNAME_DELETED 64L -#define ERROR_NETWORK_ACCESS_DENIED 65L -#define ERROR_BAD_DEV_TYPE 66L -#define ERROR_BAD_NET_NAME 67L -#define ERROR_TOO_MANY_NAMES 68L -#define ERROR_TOO_MANY_SESS 69L -#define ERROR_SHARING_PAUSED 70L -#define ERROR_REQ_NOT_ACCEP 71L -#define ERROR_REDIR_PAUSED 72L -#define ERROR_FILE_EXISTS 80L -#define ERROR_CANNOT_MAKE 82L -#define ERROR_FAIL_I24 83L -#define ERROR_OUT_OF_STRUCTURES 84L -#define ERROR_ALREADY_ASSIGNED 85L -#define ERROR_INVALID_PASSWORD 86L -#define ERROR_INVALID_PARAMETER 87L -#define ERROR_NET_WRITE_FAULT 88L -#define ERROR_NO_PROC_SLOTS 89L -#define ERROR_TOO_MANY_SEMAPHORES 100L -#define ERROR_EXCL_SEM_ALREADY_OWNED 101L -#define ERROR_SEM_IS_SET 102L -#define ERROR_TOO_MANY_SEM_REQUESTS 103L -#define ERROR_INVALID_AT_INTERRUPT_TIME 104L -#define ERROR_SEM_OWNER_DIED 105L -#define ERROR_SEM_USER_LIMIT 106L -#define ERROR_DISK_CHANGE 107L -#define ERROR_DRIVE_LOCKED 108L -#define ERROR_BROKEN_PIPE 109L -#define ERROR_OPEN_FAILED 110L -#define ERROR_BUFFER_OVERFLOW 111L -#define ERROR_DISK_FULL 112L -#define ERROR_NO_MORE_SEARCH_HANDLES 113L -#define ERROR_INVALID_TARGET_HANDLE 114L -#define ERROR_INVALID_CATEGORY 117L -#define ERROR_INVALID_VERIFY_SWITCH 118L -#define ERROR_BAD_DRIVER_LEVEL 119L -#define ERROR_CALL_NOT_IMPLEMENTED 120L -#define ERROR_SEM_TIMEOUT 121L -#define ERROR_INSUFFICIENT_BUFFER 122L -#define ERROR_INVALID_NAME 123L -#define ERROR_INVALID_LEVEL 124L -#define ERROR_NO_VOLUME_LABEL 125L -#define ERROR_MOD_NOT_FOUND 126L -#define ERROR_PROC_NOT_FOUND 127L -#define ERROR_WAIT_NO_CHILDREN 128L -#define ERROR_CHILD_NOT_COMPLETE 129L -#define ERROR_DIRECT_ACCESS_HANDLE 130L -#define ERROR_NEGATIVE_SEEK 131L -#define ERROR_SEEK_ON_DEVICE 132L -#define ERROR_IS_JOIN_TARGET 133L -#define ERROR_IS_JOINED 134L -#define ERROR_IS_SUBSTED 135L -#define ERROR_NOT_JOINED 136L -#define ERROR_NOT_SUBSTED 137L -#define ERROR_JOIN_TO_JOIN 138L -#define ERROR_SUBST_TO_SUBST 139L -#define ERROR_JOIN_TO_SUBST 140L -#define ERROR_SUBST_TO_JOIN 141L -#define ERROR_BUSY_DRIVE 142L -#define ERROR_SAME_DRIVE 143L -#define ERROR_DIR_NOT_ROOT 144L -#define ERROR_DIR_NOT_EMPTY 145L -#define ERROR_IS_SUBST_PATH 146L -#define ERROR_IS_JOIN_PATH 147L -#define ERROR_PATH_BUSY 148L -#define ERROR_IS_SUBST_TARGET 149L -#define ERROR_SYSTEM_TRACE 150L -#define ERROR_INVALID_EVENT_COUNT 151L -#define ERROR_TOO_MANY_MUXWAITERS 152L -#define ERROR_INVALID_LIST_FORMAT 153L -#define ERROR_LABEL_TOO_LONG 154L -#define ERROR_TOO_MANY_TCBS 155L -#define ERROR_SIGNAL_REFUSED 156L -#define ERROR_DISCARDED 157L -#define ERROR_NOT_LOCKED 158L -#define ERROR_BAD_THREADID_ADDR 159L -#define ERROR_BAD_ARGUMENTS 160L -#define ERROR_BAD_PATHNAME 161L -#define ERROR_SIGNAL_PENDING 162L -#define ERROR_MAX_THRDS_REACHED 164L -#define ERROR_LOCK_FAILED 167L -#define ERROR_BUSY 170L -#define ERROR_CANCEL_VIOLATION 173L -#define ERROR_ATOMIC_LOCKS_NOT_SUPPORTED 174L -#define ERROR_INVALID_SEGMENT_NUMBER 180L -#define ERROR_INVALID_ORDINAL 182L -#define ERROR_ALREADY_EXISTS 183L -#define ERROR_INVALID_FLAG_NUMBER 186L -#define ERROR_SEM_NOT_FOUND 187L -#define ERROR_INVALID_STARTING_CODESEG 188L -#define ERROR_INVALID_STACKSEG 189L -#define ERROR_INVALID_MODULETYPE 190L -#define ERROR_INVALID_EXE_SIGNATURE 191L -#define ERROR_EXE_MARKED_INVALID 192L -#define ERROR_BAD_EXE_FORMAT 193L -#define ERROR_ITERATED_DATA_EXCEEDS_64k 194L -#define ERROR_INVALID_MINALLOCSIZE 195L -#define ERROR_DYNLINK_FROM_INVALID_RING 196L -#define ERROR_IOPL_NOT_ENABLED 197L -#define ERROR_INVALID_SEGDPL 198L -#define ERROR_AUTODATASEG_EXCEEDS_64k 199L -#define ERROR_RING2SEG_MUST_BE_MOVABLE 200L -#define ERROR_RELOC_CHAIN_XEEDS_SEGLIM 201L -#define ERROR_INFLOOP_IN_RELOC_CHAIN 202L -#define ERROR_ENVVAR_NOT_FOUND 203L -#define ERROR_NO_SIGNAL_SENT 205L -#define ERROR_FILENAME_EXCED_RANGE 206L -#define ERROR_RING2_STACK_IN_USE 207L -#define ERROR_META_EXPANSION_TOO_LONG 208L -#define ERROR_INVALID_SIGNAL_NUMBER 209L -#define ERROR_THREAD_1_INACTIVE 210L -#define ERROR_LOCKED 212L -#define ERROR_TOO_MANY_MODULES 214L -#define ERROR_NESTING_NOT_ALLOWED 215L -#define ERROR_BAD_PIPE 230L -#define ERROR_PIPE_BUSY 231L -#define ERROR_NO_DATA 232L -#define ERROR_PIPE_NOT_CONNECTED 233L -#define ERROR_MORE_DATA 234L -#define ERROR_VC_DISCONNECTED 240L -#define ERROR_INVALID_EA_NAME 254L -#define ERROR_EA_LIST_INCONSISTENT 255L -#define ERROR_NO_MORE_ITEMS 259L -#define ERROR_CANNOT_COPY 266L -#define ERROR_DIRECTORY 267L -#define ERROR_EAS_DIDNT_FIT 275L -#define ERROR_EA_FILE_CORRUPT 276L -#define ERROR_EA_TABLE_FULL 277L -#define ERROR_INVALID_EA_HANDLE 278L -#define ERROR_EAS_NOT_SUPPORTED 282L -#define ERROR_NOT_OWNER 288L -#define ERROR_TOO_MANY_POSTS 298L -#define ERROR_PARTIAL_COPY 299L -#define ERROR_MR_MID_NOT_FOUND 317L -#define ERROR_INVALID_ADDRESS 487L -#define ERROR_ARITHMETIC_OVERFLOW 534L -#define ERROR_PIPE_CONNECTED 535L -#define ERROR_PIPE_LISTENING 536L -#define ERROR_EA_ACCESS_DENIED 994L -#define ERROR_OPERATION_ABORTED 995L -#define ERROR_IO_INCOMPLETE 996L -#define ERROR_IO_PENDING 997L -#define ERROR_NOACCESS 998L -#define ERROR_SWAPERROR 999L -#define ERROR_STACK_OVERFLOW 1001L -#define ERROR_INVALID_MESSAGE 1002L -#define ERROR_CAN_NOT_COMPLETE 1003L -#define ERROR_INVALID_FLAGS 1004L -#define ERROR_UNRECOGNIZED_VOLUME 1005L -#define ERROR_FILE_INVALID 1006L -#define ERROR_FULLSCREEN_MODE 1007L -#define ERROR_NO_TOKEN 1008L -#define ERROR_BADDB 1009L -#define ERROR_BADKEY 1010L -#define ERROR_CANTOPEN 1011L -#define ERROR_CANTREAD 1012L -#define ERROR_CANTWRITE 1013L -#define ERROR_REGISTRY_RECOVERED 1014L -#define ERROR_REGISTRY_CORRUPT 1015L -#define ERROR_REGISTRY_IO_FAILED 1016L -#define ERROR_NOT_REGISTRY_FILE 1017L -#define ERROR_KEY_DELETED 1018L -#define ERROR_NO_LOG_SPACE 1019L -#define ERROR_KEY_HAS_CHILDREN 1020L -#define ERROR_CHILD_MUST_BE_VOLATILE 1021L -#define ERROR_NOTIFY_ENUM_DIR 1022L -#define ERROR_DEPENDENT_SERVICES_RUNNING 1051L -#define ERROR_INVALID_SERVICE_CONTROL 1052L -#define ERROR_SERVICE_REQUEST_TIMEOUT 1053L -#define ERROR_SERVICE_NO_THREAD 1054L -#define ERROR_SERVICE_DATABASE_LOCKED 1055L -#define ERROR_SERVICE_ALREADY_RUNNING 1056L -#define ERROR_INVALID_SERVICE_ACCOUNT 1057L -#define ERROR_SERVICE_DISABLED 1058L -#define ERROR_CIRCULAR_DEPENDENCY 1059L -#define ERROR_SERVICE_DOES_NOT_EXIST 1060L -#define ERROR_SERVICE_CANNOT_ACCEPT_CTRL 1061L -#define ERROR_SERVICE_NOT_ACTIVE 1062L -#define ERROR_FAILED_SERVICE_CONTROLLER_CONNECT 1063L -#define ERROR_EXCEPTION_IN_SERVICE 1064L -#define ERROR_DATABASE_DOES_NOT_EXIST 1065L -#define ERROR_SERVICE_SPECIFIC_ERROR 1066L -#define ERROR_PROCESS_ABORTED 1067L -#define ERROR_SERVICE_DEPENDENCY_FAIL 1068L -#define ERROR_SERVICE_LOGON_FAILED 1069L -#define ERROR_SERVICE_START_HANG 1070L -#define ERROR_INVALID_SERVICE_LOCK 1071L -#define ERROR_SERVICE_MARKED_FOR_DELETE 1072L -#define ERROR_SERVICE_EXISTS 1073L -#define ERROR_ALREADY_RUNNING_LKG 1074L -#define ERROR_SERVICE_DEPENDENCY_DELETED 1075L -#define ERROR_BOOT_ALREADY_ACCEPTED 1076L -#define ERROR_SERVICE_NEVER_STARTED 1077L -#define ERROR_DUPLICATE_SERVICE_NAME 1078L -#define ERROR_END_OF_MEDIA 1100L -#define ERROR_FILEMARK_DETECTED 1101L -#define ERROR_BEGINNING_OF_MEDIA 1102L -#define ERROR_SETMARK_DETECTED 1103L -#define ERROR_NO_DATA_DETECTED 1104L -#define ERROR_PARTITION_FAILURE 1105L -#define ERROR_INVALID_BLOCK_LENGTH 1106L -#define ERROR_DEVICE_NOT_PARTITIONED 1107L -#define ERROR_UNABLE_TO_LOCK_MEDIA 1108L -#define ERROR_UNABLE_TO_UNLOAD_MEDIA 1109L -#define ERROR_MEDIA_CHANGED 1110L -#define ERROR_BUS_RESET 1111L -#define ERROR_NO_MEDIA_IN_DRIVE 1112L -#define ERROR_NO_UNICODE_TRANSLATION 1113L -#define ERROR_DLL_INIT_FAILED 1114L -#define ERROR_SHUTDOWN_IN_PROGRESS 1115L -#define ERROR_NO_SHUTDOWN_IN_PROGRESS 1116L -#define ERROR_IO_DEVICE 1117L -#define ERROR_SERIAL_NO_DEVICE 1118L -#define ERROR_IRQ_BUSY 1119L -#define ERROR_MORE_WRITES 1120L -#define ERROR_COUNTER_TIMEOUT 1121L -#define ERROR_FLOPPY_ID_MARK_NOT_FOUND 1122L -#define ERROR_FLOPPY_WRONG_CYLINDER 1123L -#define ERROR_FLOPPY_UNKNOWN_ERROR 1124L -#define ERROR_FLOPPY_BAD_REGISTERS 1125L -#define ERROR_DISK_RECALIBRATE_FAILED 1126L -#define ERROR_DISK_OPERATION_FAILED 1127L -#define ERROR_DISK_RESET_FAILED 1128L -#define ERROR_EOM_OVERFLOW 1129L -#define ERROR_NOT_ENOUGH_SERVER_MEMORY 1130L -#define ERROR_POSSIBLE_DEADLOCK 1131L -#define ERROR_MAPPED_ALIGNMENT 1132L -#define ERROR_SET_POWER_STATE_VETOED 1140L -#define ERROR_SET_POWER_STATE_FAILED 1141L -#define ERROR_TOO_MANY_LINKS 1142L -#define ERROR_OLD_WIN_VERSION 1150L -#define ERROR_APP_WRONG_OS 1151L -#define ERROR_SINGLE_INSTANCE_APP 1152L -#define ERROR_RMODE_APP 1153L -#define ERROR_INVALID_DLL 1154L -#define ERROR_NO_ASSOCIATION 1155L -#define ERROR_DDE_FAIL 1156L -#define ERROR_DLL_NOT_FOUND 1157L -#define ERROR_BAD_USERNAME 2202L -#define ERROR_NOT_CONNECTED 2250L -#define ERROR_OPEN_FILES 2401L -#define ERROR_ACTIVE_CONNECTIONS 2402L -#define ERROR_DEVICE_IN_USE 2404L -#define ERROR_BAD_DEVICE 1200L -#define ERROR_CONNECTION_UNAVAIL 1201L -#define ERROR_DEVICE_ALREADY_REMEMBERED 1202L -#define ERROR_NO_NET_OR_BAD_PATH 1203L -#define ERROR_BAD_PROVIDER 1204L -#define ERROR_CANNOT_OPEN_PROFILE 1205L -#define ERROR_BAD_PROFILE 1206L -#define ERROR_NOT_CONTAINER 1207L -#define ERROR_EXTENDED_ERROR 1208L -#define ERROR_INVALID_GROUPNAME 1209L -#define ERROR_INVALID_COMPUTERNAME 1210L -#define ERROR_INVALID_EVENTNAME 1211L -#define ERROR_INVALID_DOMAINNAME 1212L -#define ERROR_INVALID_SERVICENAME 1213L -#define ERROR_INVALID_NETNAME 1214L -#define ERROR_INVALID_SHARENAME 1215L -#define ERROR_INVALID_PASSWORDNAME 1216L -#define ERROR_INVALID_MESSAGENAME 1217L -#define ERROR_INVALID_MESSAGEDEST 1218L -#define ERROR_SESSION_CREDENTIAL_CONFLICT 1219L -#define ERROR_REMOTE_SESSION_LIMIT_EXCEEDED 1220L -#define ERROR_DUP_DOMAINNAME 1221L -#define ERROR_NO_NETWORK 1222L -#define ERROR_CANCELLED 1223L -#define ERROR_USER_MAPPED_FILE 1224L -#define ERROR_CONNECTION_REFUSED 1225L -#define ERROR_GRACEFUL_DISCONNECT 1226L -#define ERROR_ADDRESS_ALREADY_ASSOCIATED 1227L -#define ERROR_ADDRESS_NOT_ASSOCIATED 1228L -#define ERROR_CONNECTION_INVALID 1229L -#define ERROR_CONNECTION_ACTIVE 1230L -#define ERROR_NETWORK_UNREACHABLE 1231L -#define ERROR_HOST_UNREACHABLE 1232L -#define ERROR_PROTOCOL_UNREACHABLE 1233L -#define ERROR_PORT_UNREACHABLE 1234L -#define ERROR_REQUEST_ABORTED 1235L -#define ERROR_CONNECTION_ABORTED 1236L -#define ERROR_RETRY 1237L -#define ERROR_CONNECTION_COUNT_LIMIT 1238L -#define ERROR_LOGIN_TIME_RESTRICTION 1239L -#define ERROR_LOGIN_WKSTA_RESTRICTION 1240L -#define ERROR_INCORRECT_ADDRESS 1241L -#define ERROR_ALREADY_REGISTERED 1242L -#define ERROR_SERVICE_NOT_FOUND 1243L -#define ERROR_NOT_AUTHENTICATED 1244L -#define ERROR_NOT_LOGGED_ON 1245L -#define ERROR_CONTINUE 1246L -#define ERROR_ALREADY_INITIALIZED 1247L -#define ERROR_NO_MORE_DEVICES 1248L -#define ERROR_NOT_ALL_ASSIGNED 1300L -#define ERROR_SOME_NOT_MAPPED 1301L -#define ERROR_NO_QUOTAS_FOR_ACCOUNT 1302L -#define ERROR_LOCAL_USER_SESSION_KEY 1303L -#define ERROR_NULL_LM_PASSWORD 1304L -#define ERROR_UNKNOWN_REVISION 1305L -#define ERROR_REVISION_MISMATCH 1306L -#define ERROR_INVALID_OWNER 1307L -#define ERROR_INVALID_PRIMARY_GROUP 1308L -#define ERROR_NO_IMPERSONATION_TOKEN 1309L -#define ERROR_CANT_DISABLE_MANDATORY 1310L -#define ERROR_NO_LOGON_SERVERS 1311L -#define ERROR_NO_SUCH_LOGON_SESSION 1312L -#define ERROR_NO_SUCH_PRIVILEGE 1313L -#define ERROR_PRIVILEGE_NOT_HELD 1314L -#define ERROR_INVALID_ACCOUNT_NAME 1315L -#define ERROR_USER_EXISTS 1316L -#define ERROR_NO_SUCH_USER 1317L -#define ERROR_GROUP_EXISTS 1318L -#define ERROR_NO_SUCH_GROUP 1319L -#define ERROR_MEMBER_IN_GROUP 1320L -#define ERROR_MEMBER_NOT_IN_GROUP 1321L -#define ERROR_LAST_ADMIN 1322L -#define ERROR_WRONG_PASSWORD 1323L -#define ERROR_ILL_FORMED_PASSWORD 1324L -#define ERROR_PASSWORD_RESTRICTION 1325L -#define ERROR_LOGON_FAILURE 1326L -#define ERROR_ACCOUNT_RESTRICTION 1327L -#define ERROR_INVALID_LOGON_HOURS 1328L -#define ERROR_INVALID_WORKSTATION 1329L -#define ERROR_PASSWORD_EXPIRED 1330L -#define ERROR_ACCOUNT_DISABLED 1331L -#define ERROR_NONE_MAPPED 1332L -#define ERROR_TOO_MANY_LUIDS_REQUESTED 1333L -#define ERROR_LUIDS_EXHAUSTED 1334L -#define ERROR_INVALID_SUB_AUTHORITY 1335L -#define ERROR_INVALID_ACL 1336L -#define ERROR_INVALID_SID 1337L -#define ERROR_INVALID_SECURITY_DESCR 1338L -#define ERROR_BAD_INHERITANCE_ACL 1340L -#define ERROR_SERVER_DISABLED 1341L -#define ERROR_SERVER_NOT_DISABLED 1342L -#define ERROR_INVALID_ID_AUTHORITY 1343L -#define ERROR_ALLOTTED_SPACE_EXCEEDED 1344L -#define ERROR_INVALID_GROUP_ATTRIBUTES 1345L -#define ERROR_BAD_IMPERSONATION_LEVEL 1346L -#define ERROR_CANT_OPEN_ANONYMOUS 1347L -#define ERROR_BAD_VALIDATION_CLASS 1348L -#define ERROR_BAD_TOKEN_TYPE 1349L -#define ERROR_NO_SECURITY_ON_OBJECT 1350L -#define ERROR_CANT_ACCESS_DOMAIN_INFO 1351L -#define ERROR_INVALID_SERVER_STATE 1352L -#define ERROR_INVALID_DOMAIN_STATE 1353L -#define ERROR_INVALID_DOMAIN_ROLE 1354L -#define ERROR_NO_SUCH_DOMAIN 1355L -#define ERROR_DOMAIN_EXISTS 1356L -#define ERROR_DOMAIN_LIMIT_EXCEEDED 1357L -#define ERROR_INTERNAL_DB_CORRUPTION 1358L -#define ERROR_INTERNAL_ERROR 1359L -#define ERROR_GENERIC_NOT_MAPPED 1360L -#define ERROR_BAD_DESCRIPTOR_FORMAT 1361L -#define ERROR_NOT_LOGON_PROCESS 1362L -#define ERROR_LOGON_SESSION_EXISTS 1363L -#define ERROR_NO_SUCH_PACKAGE 1364L -#define ERROR_BAD_LOGON_SESSION_STATE 1365L -#define ERROR_LOGON_SESSION_COLLISION 1366L -#define ERROR_INVALID_LOGON_TYPE 1367L -#define ERROR_CANNOT_IMPERSONATE 1368L -#define ERROR_RXACT_INVALID_STATE 1369L -#define ERROR_RXACT_COMMIT_FAILURE 1370L -#define ERROR_SPECIAL_ACCOUNT 1371L -#define ERROR_SPECIAL_GROUP 1372L -#define ERROR_SPECIAL_USER 1373L -#define ERROR_MEMBERS_PRIMARY_GROUP 1374L -#define ERROR_TOKEN_ALREADY_IN_USE 1375L -#define ERROR_NO_SUCH_ALIAS 1376L -#define ERROR_MEMBER_NOT_IN_ALIAS 1377L -#define ERROR_MEMBER_IN_ALIAS 1378L -#define ERROR_ALIAS_EXISTS 1379L -#define ERROR_LOGON_NOT_GRANTED 1380L -#define ERROR_TOO_MANY_SECRETS 1381L -#define ERROR_SECRET_TOO_LONG 1382L -#define ERROR_INTERNAL_DB_ERROR 1383L -#define ERROR_TOO_MANY_CONTEXT_IDS 1384L -#define ERROR_LOGON_TYPE_NOT_GRANTED 1385L -#define ERROR_NT_CROSS_ENCRYPTION_REQUIRED 1386L -#define ERROR_NO_SUCH_MEMBER 1387L -#define ERROR_INVALID_MEMBER 1388L -#define ERROR_TOO_MANY_SIDS 1389L -#define ERROR_LM_CROSS_ENCRYPTION_REQUIRED 1390L -#define ERROR_NO_INHERITANCE 1391L -#define ERROR_FILE_CORRUPT 1392L -#define ERROR_DISK_CORRUPT 1393L -#define ERROR_NO_USER_SESSION_KEY 1394L -#define ERROR_LICENSE_QUOTA_EXCEEDED 1395L -#define ERROR_INVALID_WINDOW_HANDLE 1400L -#define ERROR_INVALID_MENU_HANDLE 1401L -#define ERROR_INVALID_CURSOR_HANDLE 1402L -#define ERROR_INVALID_ACCEL_HANDLE 1403L -#define ERROR_INVALID_HOOK_HANDLE 1404L -#define ERROR_INVALID_DWP_HANDLE 1405L -#define ERROR_TLW_WITH_WSCHILD 1406L -#define ERROR_CANNOT_FIND_WND_CLASS 1407L -#define ERROR_WINDOW_OF_OTHER_THREAD 1408L -#define ERROR_HOTKEY_ALREADY_REGISTERED 1409L -#define ERROR_CLASS_ALREADY_EXISTS 1410L -#define ERROR_CLASS_DOES_NOT_EXIST 1411L -#define ERROR_CLASS_HAS_WINDOWS 1412L -#define ERROR_INVALID_INDEX 1413L -#define ERROR_INVALID_ICON_HANDLE 1414L -#define ERROR_PRIVATE_DIALOG_INDEX 1415L -#define ERROR_LISTBOX_ID_NOT_FOUND 1416L -#define ERROR_NO_WILDCARD_CHARACTERS 1417L -#define ERROR_CLIPBOARD_NOT_OPEN 1418L -#define ERROR_HOTKEY_NOT_REGISTERED 1419L -#define ERROR_WINDOW_NOT_DIALOG 1420L -#define ERROR_CONTROL_ID_NOT_FOUND 1421L -#define ERROR_INVALID_COMBOBOX_MESSAGE 1422L -#define ERROR_WINDOW_NOT_COMBOBOX 1423L -#define ERROR_INVALID_EDIT_HEIGHT 1424L -#define ERROR_DC_NOT_FOUND 1425L -#define ERROR_INVALID_HOOK_FILTER 1426L -#define ERROR_INVALID_FILTER_PROC 1427L -#define ERROR_HOOK_NEEDS_HMOD 1428L -#define ERROR_GLOBAL_ONLY_HOOK 1429L -#define ERROR_JOURNAL_HOOK_SET 1430L -#define ERROR_HOOK_NOT_INSTALLED 1431L -#define ERROR_INVALID_LB_MESSAGE 1432L -#define ERROR_SETCOUNT_ON_BAD_LB 1433L -#define ERROR_LB_WITHOUT_TABSTOPS 1434L -#define ERROR_DESTROY_OBJECT_OF_OTHER_THREAD 1435L -#define ERROR_CHILD_WINDOW_MENU 1436L -#define ERROR_NO_SYSTEM_MENU 1437L -#define ERROR_INVALID_MSGBOX_STYLE 1438L -#define ERROR_INVALID_SPI_VALUE 1439L -#define ERROR_SCREEN_ALREADY_LOCKED 1440L -#define ERROR_HWNDS_HAVE_DIFF_PARENT 1441L -#define ERROR_NOT_CHILD_WINDOW 1442L -#define ERROR_INVALID_GW_COMMAND 1443L -#define ERROR_INVALID_THREAD_ID 1444L -#define ERROR_NON_MDICHILD_WINDOW 1445L -#define ERROR_POPUP_ALREADY_ACTIVE 1446L -#define ERROR_NO_SCROLLBARS 1447L -#define ERROR_INVALID_SCROLLBAR_RANGE 1448L -#define ERROR_INVALID_SHOWWIN_COMMAND 1449L -#define ERROR_NO_SYSTEM_RESOURCES 1450L -#define ERROR_NONPAGED_SYSTEM_RESOURCES 1451L -#define ERROR_PAGED_SYSTEM_RESOURCES 1452L -#define ERROR_WORKING_SET_QUOTA 1453L -#define ERROR_PAGEFILE_QUOTA 1454L -#define ERROR_COMMITMENT_LIMIT 1455L -#define ERROR_MENU_ITEM_NOT_FOUND 1456L -#define ERROR_EVENTLOG_FILE_CORRUPT 1500L -#define ERROR_EVENTLOG_CANT_START 1501L -#define ERROR_LOG_FILE_FULL 1502L -#define ERROR_EVENTLOG_FILE_CHANGED 1503L -#define RPC_S_INVALID_STRING_BINDING 1700L -#define RPC_S_WRONG_KIND_OF_BINDING 1701L -#define RPC_S_INVALID_BINDING 1702L -#define RPC_S_PROTSEQ_NOT_SUPPORTED 1703L -#define RPC_S_INVALID_RPC_PROTSEQ 1704L -#define RPC_S_INVALID_STRING_UUID 1705L -#define RPC_S_INVALID_ENDPOINT_FORMAT 1706L -#define RPC_S_INVALID_NET_ADDR 1707L -#define RPC_S_NO_ENDPOINT_FOUND 1708L -#define RPC_S_INVALID_TIMEOUT 1709L -#define RPC_S_OBJECT_NOT_FOUND 1710L -#define RPC_S_ALREADY_REGISTERED 1711L -#define RPC_S_TYPE_ALREADY_REGISTERED 1712L -#define RPC_S_ALREADY_LISTENING 1713L -#define RPC_S_NO_PROTSEQS_REGISTERED 1714L -#define RPC_S_NOT_LISTENING 1715L -#define RPC_S_UNKNOWN_MGR_TYPE 1716L -#define RPC_S_UNKNOWN_IF 1717L -#define RPC_S_NO_BINDINGS 1718L -#define RPC_S_NO_PROTSEQS 1719L -#define RPC_S_CANT_CREATE_ENDPOINT 1720L -#define RPC_S_OUT_OF_RESOURCES 1721L -#define RPC_S_SERVER_UNAVAILABLE 1722L -#define RPC_S_SERVER_TOO_BUSY 1723L -#define RPC_S_INVALID_NETWORK_OPTIONS 1724L -#define RPC_S_NO_CALL_ACTIVE 1725L -#define RPC_S_CALL_FAILED 1726L -#define RPC_S_CALL_FAILED_DNE 1727L -#define RPC_S_PROTOCOL_ERROR 1728L -#define RPC_S_UNSUPPORTED_TRANS_SYN 1730L -#define RPC_S_UNSUPPORTED_TYPE 1732L -#define RPC_S_INVALID_TAG 1733L -#define RPC_S_INVALID_BOUND 1734L -#define RPC_S_NO_ENTRY_NAME 1735L -#define RPC_S_INVALID_NAME_SYNTAX 1736L -#define RPC_S_UNSUPPORTED_NAME_SYNTAX 1737L -#define RPC_S_UUID_NO_ADDRESS 1739L -#define RPC_S_DUPLICATE_ENDPOINT 1740L -#define RPC_S_UNKNOWN_AUTHN_TYPE 1741L -#define RPC_S_MAX_CALLS_TOO_SMALL 1742L -#define RPC_S_STRING_TOO_LONG 1743L -#define RPC_S_PROTSEQ_NOT_FOUND 1744L -#define RPC_S_PROCNUM_OUT_OF_RANGE 1745L -#define RPC_S_BINDING_HAS_NO_AUTH 1746L -#define RPC_S_UNKNOWN_AUTHN_SERVICE 1747L -#define RPC_S_UNKNOWN_AUTHN_LEVEL 1748L -#define RPC_S_INVALID_AUTH_IDENTITY 1749L -#define RPC_S_UNKNOWN_AUTHZ_SERVICE 1750L -#define EPT_S_INVALID_ENTRY 1751L -#define EPT_S_CANT_PERFORM_OP 1752L -#define EPT_S_NOT_REGISTERED 1753L -#define RPC_S_NOTHING_TO_EXPORT 1754L -#define RPC_S_INCOMPLETE_NAME 1755L -#define RPC_S_INVALID_VERS_OPTION 1756L -#define RPC_S_NO_MORE_MEMBERS 1757L -#define RPC_S_NOT_ALL_OBJS_UNEXPORTED 1758L -#define RPC_S_INTERFACE_NOT_FOUND 1759L -#define RPC_S_ENTRY_ALREADY_EXISTS 1760L -#define RPC_S_ENTRY_NOT_FOUND 1761L -#define RPC_S_NAME_SERVICE_UNAVAILABLE 1762L -#define RPC_S_INVALID_NAF_ID 1763L -#define RPC_S_CANNOT_SUPPORT 1764L -#define RPC_S_NO_CONTEXT_AVAILABLE 1765L -#define RPC_S_INTERNAL_ERROR 1766L -#define RPC_S_ZERO_DIVIDE 1767L -#define RPC_S_ADDRESS_ERROR 1768L -#define RPC_S_FP_DIV_ZERO 1769L -#define RPC_S_FP_UNDERFLOW 1770L -#define RPC_S_FP_OVERFLOW 1771L -#define RPC_X_NO_MORE_ENTRIES 1772L -#define RPC_X_SS_CHAR_TRANS_OPEN_FAIL 1773L -#define RPC_X_SS_CHAR_TRANS_SHORT_FILE 1774L -#define RPC_X_SS_IN_NULL_CONTEXT 1775L -#define RPC_X_SS_CONTEXT_DAMAGED 1777L -#define RPC_X_SS_HANDLES_MISMATCH 1778L -#define RPC_X_SS_CANNOT_GET_CALL_HANDLE 1779L -#define RPC_X_NULL_REF_POINTER 1780L -#define RPC_X_ENUM_VALUE_OUT_OF_RANGE 1781L -#define RPC_X_BYTE_COUNT_TOO_SMALL 1782L -#define RPC_X_BAD_STUB_DATA 1783L -#define ERROR_INVALID_USER_BUFFER 1784L -#define ERROR_UNRECOGNIZED_MEDIA 1785L -#define ERROR_NO_TRUST_LSA_SECRET 1786L -#define ERROR_NO_TRUST_SAM_ACCOUNT 1787L -#define ERROR_TRUSTED_DOMAIN_FAILURE 1788L -#define ERROR_TRUSTED_RELATIONSHIP_FAILURE 1789L -#define ERROR_TRUST_FAILURE 1790L -#define RPC_S_CALL_IN_PROGRESS 1791L -#define ERROR_NETLOGON_NOT_STARTED 1792L -#define ERROR_ACCOUNT_EXPIRED 1793L -#define ERROR_REDIRECTOR_HAS_OPEN_HANDLES 1794L -#define ERROR_PRINTER_DRIVER_ALREADY_INSTALLED 1795L -#define ERROR_UNKNOWN_PORT 1796L -#define ERROR_UNKNOWN_PRINTER_DRIVER 1797L -#define ERROR_UNKNOWN_PRINTPROCESSOR 1798L -#define ERROR_INVALID_SEPARATOR_FILE 1799L -#define ERROR_INVALID_PRIORITY 1800L -#define ERROR_INVALID_PRINTER_NAME 1801L -#define ERROR_PRINTER_ALREADY_EXISTS 1802L -#define ERROR_INVALID_PRINTER_COMMAND 1803L -#define ERROR_INVALID_DATATYPE 1804L -#define ERROR_INVALID_ENVIRONMENT 1805L -#define RPC_S_NO_MORE_BINDINGS 1806L -#define ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT 1807L -#define ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT 1808L -#define ERROR_NOLOGON_SERVER_TRUST_ACCOUNT 1809L -#define ERROR_DOMAIN_TRUST_INCONSISTENT 1810L -#define ERROR_SERVER_HAS_OPEN_HANDLES 1811L -#define ERROR_RESOURCE_DATA_NOT_FOUND 1812L -#define ERROR_RESOURCE_TYPE_NOT_FOUND 1813L -#define ERROR_RESOURCE_NAME_NOT_FOUND 1814L -#define ERROR_RESOURCE_LANG_NOT_FOUND 1815L -#define ERROR_NOT_ENOUGH_QUOTA 1816L -#define RPC_S_NO_INTERFACES 1817L -#define RPC_S_CALL_CANCELLED 1818L -#define RPC_S_BINDING_INCOMPLETE 1819L -#define RPC_S_COMM_FAILURE 1820L -#define RPC_S_UNSUPPORTED_AUTHN_LEVEL 1821L -#define RPC_S_NO_PRINC_NAME 1822L -#define RPC_S_NOT_RPC_ERROR 1823L -#define RPC_S_UUID_LOCAL_ONLY 1824L -#define RPC_S_SEC_PKG_ERROR 1825L -#define RPC_S_NOT_CANCELLED 1826L -#define RPC_X_INVALID_ES_ACTION 1827L -#define RPC_X_WRONG_ES_VERSION 1828L -#define RPC_X_WRONG_STUB_VERSION 1829L -#define RPC_S_GROUP_MEMBER_NOT_FOUND 1898L -#define EPT_S_CANT_CREATE 1899L -#define RPC_S_INVALID_OBJECT 1900L -#define ERROR_INVALID_TIME 1901L -#define ERROR_INVALID_FORM_NAME 1902L -#define ERROR_INVALID_FORM_SIZE 1903L -#define ERROR_ALREADY_WAITING 1904L -#define ERROR_PRINTER_DELETED 1905L -#define ERROR_INVALID_PRINTER_STATE 1906L -#define ERROR_PASSWORD_MUST_CHANGE 1907L -#define ERROR_DOMAIN_CONTROLLER_NOT_FOUND 1908L -#define ERROR_ACCOUNT_LOCKED_OUT 1909L -#define ERROR_NO_BROWSER_SERVERS_FOUND 6118L -#define ERROR_INVALID_PIXEL_FORMAT 2000L -#define ERROR_BAD_DRIVER 2001L -#define ERROR_INVALID_WINDOW_STYLE 2002L -#define ERROR_METAFILE_NOT_SUPPORTED 2003L -#define ERROR_TRANSFORM_NOT_SUPPORTED 2004L -#define ERROR_CLIPPING_NOT_SUPPORTED 2005L -#define ERROR_UNKNOWN_PRINT_MONITOR 3000L -#define ERROR_PRINTER_DRIVER_IN_USE 3001L -#define ERROR_SPOOL_FILE_NOT_FOUND 3002L -#define ERROR_SPL_NO_STARTDOC 3003L -#define ERROR_SPL_NO_ADDJOB 3004L -#define ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED 3005L -#define ERROR_PRINT_MONITOR_ALREADY_INSTALLED 3006L -#define ERROR_WINS_INTERNAL 4000L -#define ERROR_CAN_NOT_DEL_LOCAL_WINS 4001L -#define ERROR_STATIC_INIT 4002L -#define ERROR_INC_BACKUP 4003L -#define ERROR_FULL_BACKUP 4004L -#define ERROR_REC_NON_EXISTENT 4005L -#define ERROR_RPL_NOT_ALLOWED 4006L -#define SEVERITY_SUCCESS 0 -#define SEVERITY_ERROR 1 -#define FACILITY_WINDOWS 8 -#define FACILITY_STORAGE 3 -#define FACILITY_RPC 1 -#define FACILITY_WIN32 7 -#define FACILITY_CONTROL 10 -#define FACILITY_NULL 0 -#define FACILITY_ITF 4 -#define FACILITY_DISPATCH 2 -#define SUCCEEDED(Status) ((HRESULT)(Status) >= 0) -#define FAILED(Status) ((HRESULT)(Status)<0) -#define IS_ERROR(Status) ((unsigned long)(Status) >> 31 == SEVERITY_ERROR) -#define HRESULT_CODE(r) ((r)&0xFFFF) -#define SCODE_CODE(c) ((c)&0xFFFF) -#define HRESULT_FACILITY(r) (((r)>>16)&0x1fff) -#define SCODE_FACILITY(c) (((c)>>16)&0x1fff) -#define HRESULT_SEVERITY(r) (((r)>>31)&0x1) -#define SCODE_SEVERITY(c) (((c)>>31)&0x1) -#define MAKE_HRESULT(s,f,c) ((HRESULT)(((unsigned long)(s)<<31)|((unsigned long)(f)<<16)|((unsigned long)(c)))) -#define MAKE_SCODE(s,f,c) ((SCODE)(((unsigned long)(s)<<31)|((unsigned long)(f)<<16)|((unsigned long)(c))) ) -#define FACILITY_NT_BIT 0x10000000 -#define HRESULT_FROM_WIN32(x) (x?((HRESULT)(((x)&0x0000FFFF)|(FACILITY_WIN32<<16)|0x80000000)):0) -#define HRESULT_FROM_NT(x) ((HRESULT)((x)|FACILITY_NT_BIT)) -#define GetScode(hr) ((SCODE) (hr)) -#define ResultFromScode(sc) ((HRESULT) (sc)) -#define PropagateResult(hrPrevious, scBase) ((HRESULT) scBase) - -#define NOERROR S_OK -#define E_UNEXPECTED 0x8000FFFFL -#define E_NOTIMPL 0x80004001L -#define E_OUTOFMEMORY 0x8007000EL -#define E_INVALIDARG 0x80070057L -#define E_NOINTERFACE 0x80004002L -#define E_POINTER 0x80004003L -#define E_HANDLE 0x80070006L -#define E_ABORT 0x80004004L -#define E_FAIL 0x80004005L -#define E_ACCESSDENIED 0x80070005L -#define E_PENDING 0x8000000AL -#define CO_E_INIT_TLS 0x80004006L -#define CO_E_INIT_SHARED_ALLOCATOR 0x80004007L -#define CO_E_INIT_MEMORY_ALLOCATOR 0x80004008L -#define CO_E_INIT_CLASS_CACHE 0x80004009L -#define CO_E_INIT_RPC_CHANNEL 0x8000400AL -#define CO_E_INIT_TLS_SET_CHANNEL_CONTROL 0x8000400BL -#define CO_E_INIT_TLS_CHANNEL_CONTROL 0x8000400CL -#define CO_E_INIT_UNACCEPTED_USER_ALLOCATOR 0x8000400DL -#define CO_E_INIT_SCM_MUTEX_EXISTS 0x8000400EL -#define CO_E_INIT_SCM_FILE_MAPPING_EXISTS 0x8000400FL -#define CO_E_INIT_SCM_MAP_VIEW_OF_FILE 0x80004010L -#define CO_E_INIT_SCM_EXEC_FAILURE 0x80004011L -#define CO_E_INIT_ONLY_SINGLE_THREADED 0x80004012L -#define S_OK (0x00000000L) -#define S_FALSE (0x00000001L) -#define OLE_E_FIRST 0x80040000L -#define OLE_E_LAST 0x800400FFL -#define OLE_S_FIRST 0x00040000L -#define OLE_S_LAST 0x000400FFL -#define OLE_E_OLEVERB 0x80040000L -#define OLE_E_ADVF 0x80040001L -#define OLE_E_ENUM_NOMORE 0x80040002L -#define OLE_E_ADVISENOTSUPPORTED 0x80040003L -#define OLE_E_NOCONNECTION 0x80040004L -#define OLE_E_NOTRUNNING 0x80040005L -#define OLE_E_NOCACHE 0x80040006L -#define OLE_E_BLANK 0x80040007L -#define OLE_E_CLASSDIFF 0x80040008L -#define OLE_E_CANT_GETMONIKER 0x80040009L -#define OLE_E_CANT_BINDTOSOURCE 0x8004000AL -#define OLE_E_STATIC 0x8004000BL -#define OLE_E_PROMPTSAVECANCELLED 0x8004000CL -#define OLE_E_INVALIDRECT 0x8004000DL -#define OLE_E_WRONGCOMPOBJ 0x8004000EL -#define OLE_E_INVALIDHWND 0x8004000FL -#define OLE_E_NOT_INPLACEACTIVE 0x80040010L -#define OLE_E_CANTCONVERT 0x80040011L -#define OLE_E_NOSTORAGE 0x80040012L -#define DV_E_FORMATETC 0x80040064L -#define DV_E_DVTARGETDEVICE 0x80040065L -#define DV_E_STGMEDIUM 0x80040066L -#define DV_E_STATDATA 0x80040067L -#define DV_E_LINDEX 0x80040068L -#define DV_E_TYMED 0x80040069L -#define DV_E_CLIPFORMAT 0x8004006AL -#define DV_E_DVASPECT 0x8004006BL -#define DV_E_DVTARGETDEVICE_SIZE 0x8004006CL -#define DV_E_NOIVIEWOBJECT 0x8004006DL -#define DRAGDROP_E_FIRST 0x80040100L -#define DRAGDROP_E_LAST 0x8004010FL -#define DRAGDROP_S_FIRST 0x00040100L -#define DRAGDROP_S_LAST 0x0004010FL -#define DRAGDROP_E_NOTREGISTERED 0x80040100L -#define DRAGDROP_E_ALREADYREGISTERED 0x80040101L -#define DRAGDROP_E_INVALIDHWND 0x80040102L -#define CLASSFACTORY_E_FIRST 0x80040110L -#define CLASSFACTORY_E_LAST 0x8004011FL -#define CLASSFACTORY_S_FIRST 0x00040110L -#define CLASSFACTORY_S_LAST 0x0004011FL -#define CLASS_E_NOAGGREGATION 0x80040110L -#define CLASS_E_CLASSNOTAVAILABLE 0x80040111L -#define MARSHAL_E_FIRST 0x80040120L -#define MARSHAL_E_LAST 0x8004012FL -#define MARSHAL_S_FIRST 0x00040120L -#define MARSHAL_S_LAST 0x0004012FL -#define DATA_E_FIRST 0x80040130L -#define DATA_E_LAST 0x8004013FL -#define DATA_S_FIRST 0x00040130L -#define DATA_S_LAST 0x0004013FL -#define VIEW_E_FIRST 0x80040140L -#define VIEW_E_LAST 0x8004014FL -#define VIEW_S_FIRST 0x00040140L -#define VIEW_S_LAST 0x0004014FL -#define VIEW_E_DRAW 0x80040140L -#define REGDB_E_FIRST 0x80040150L -#define REGDB_E_LAST 0x8004015FL -#define REGDB_S_FIRST 0x00040150L -#define REGDB_S_LAST 0x0004015FL -#define REGDB_E_READREGDB 0x80040150L -#define REGDB_E_WRITEREGDB 0x80040151L -#define REGDB_E_KEYMISSING 0x80040152L -#define REGDB_E_INVALIDVALUE 0x80040153L -#define REGDB_E_CLASSNOTREG 0x80040154L -#define REGDB_E_IIDNOTREG 0x80040155L -#define CACHE_E_FIRST 0x80040170L -#define CACHE_E_LAST 0x8004017FL -#define CACHE_S_FIRST 0x00040170L -#define CACHE_S_LAST 0x0004017FL -#define CACHE_E_NOCACHE_UPDATED 0x80040170L -#define OLEOBJ_E_FIRST 0x80040180L -#define OLEOBJ_E_LAST 0x8004018FL -#define OLEOBJ_S_FIRST 0x00040180L -#define OLEOBJ_S_LAST 0x0004018FL -#define OLEOBJ_E_NOVERBS 0x80040180L -#define OLEOBJ_E_INVALIDVERB 0x80040181L -#define CLIENTSITE_E_FIRST 0x80040190L -#define CLIENTSITE_E_LAST 0x8004019FL -#define CLIENTSITE_S_FIRST 0x00040190L -#define CLIENTSITE_S_LAST 0x0004019FL -#define INPLACE_E_NOTUNDOABLE 0x800401A0L -#define INPLACE_E_NOTOOLSPACE 0x800401A1L -#define INPLACE_E_FIRST 0x800401A0L -#define INPLACE_E_LAST 0x800401AFL -#define INPLACE_S_FIRST 0x000401A0L -#define INPLACE_S_LAST 0x000401AFL -#define ENUM_E_FIRST 0x800401B0L -#define ENUM_E_LAST 0x800401BFL -#define ENUM_S_FIRST 0x000401B0L -#define ENUM_S_LAST 0x000401BFL -#define CONVERT10_E_FIRST 0x800401C0L -#define CONVERT10_E_LAST 0x800401CFL -#define CONVERT10_S_FIRST 0x000401C0L -#define CONVERT10_S_LAST 0x000401CFL -#define CONVERT10_E_OLESTREAM_GET 0x800401C0L -#define CONVERT10_E_OLESTREAM_PUT 0x800401C1L -#define CONVERT10_E_OLESTREAM_FMT 0x800401C2L -#define CONVERT10_E_OLESTREAM_BITMAP_TO_DIB 0x800401C3L -#define CONVERT10_E_STG_FMT 0x800401C4L -#define CONVERT10_E_STG_NO_STD_STREAM 0x800401C5L -#define CONVERT10_E_STG_DIB_TO_BITMAP 0x800401C6L -#define CLIPBRD_E_FIRST 0x800401D0L -#define CLIPBRD_E_LAST 0x800401DFL -#define CLIPBRD_S_FIRST 0x000401D0L -#define CLIPBRD_S_LAST 0x000401DFL -#define CLIPBRD_E_CANT_OPEN 0x800401D0L -#define CLIPBRD_E_CANT_EMPTY 0x800401D1L -#define CLIPBRD_E_CANT_SET 0x800401D2L -#define CLIPBRD_E_BAD_DATA 0x800401D3L -#define CLIPBRD_E_CANT_CLOSE 0x800401D4L -#define MK_E_FIRST 0x800401E0L -#define MK_E_LAST 0x800401EFL -#define MK_S_FIRST 0x000401E0L -#define MK_S_LAST 0x000401EFL -#define MK_E_CONNECTMANUALLY 0x800401E0L -#define MK_E_EXCEEDEDDEADLINE 0x800401E1L -#define MK_E_NEEDGENERIC 0x800401E2L -#define MK_E_UNAVAILABLE 0x800401E3L -#define MK_E_SYNTAX 0x800401E4L -#define MK_E_NOOBJECT 0x800401E5L -#define MK_E_INVALIDEXTENSION 0x800401E6L -#define MK_E_INTERMEDIATEINTERFACENOTSUPPORTED 0x800401E7L -#define MK_E_NOTBINDABLE 0x800401E8L -#define MK_E_NOTBOUND 0x800401E9L -#define MK_E_CANTOPENFILE 0x800401EAL -#define MK_E_MUSTBOTHERUSER 0x800401EBL -#define MK_E_NOINVERSE 0x800401ECL -#define MK_E_NOSTORAGE 0x800401EDL -#define MK_E_NOPREFIX 0x800401EEL -#define MK_E_ENUMERATION_FAILED 0x800401EFL -#define CO_E_FIRST 0x800401F0L -#define CO_E_LAST 0x800401FFL -#define CO_S_FIRST 0x000401F0L -#define CO_S_LAST 0x000401FFL -#define CO_E_NOTINITIALIZED 0x800401F0L -#define CO_E_ALREADYINITIALIZED 0x800401F1L -#define CO_E_CANTDETERMINECLASS 0x800401F2L -#define CO_E_CLASSSTRING 0x800401F3L -#define CO_E_IIDSTRING 0x800401F4L -#define CO_E_APPNOTFOUND 0x800401F5L -#define CO_E_APPSINGLEUSE 0x800401F6L -#define CO_E_ERRORINAPP 0x800401F7L -#define CO_E_DLLNOTFOUND 0x800401F8L -#define CO_E_ERRORINDLL 0x800401F9L -#define CO_E_WRONGOSFORAPP 0x800401FAL -#define CO_E_OBJNOTREG 0x800401FBL -#define CO_E_OBJISREG 0x800401FCL -#define CO_E_OBJNOTCONNECTED 0x800401FDL -#define CO_E_APPDIDNTREG 0x800401FEL -#define CO_E_RELEASED 0x800401FFL -#define OLE_S_USEREG 0x00040000L -#define OLE_S_STATIC 0x00040001L -#define OLE_S_MAC_CLIPFORMAT 0x00040002L -#define DRAGDROP_S_DROP 0x00040100L -#define DRAGDROP_S_CANCEL 0x00040101L -#define DRAGDROP_S_USEDEFAULTCURSORS 0x00040102L -#define DATA_S_SAMEFORMATETC 0x00040130L -#define VIEW_S_ALREADY_FROZEN 0x00040140L -#define CACHE_S_FORMATETC_NOTSUPPORTED 0x00040170L -#define CACHE_S_SAMECACHE 0x00040171L -#define CACHE_S_SOMECACHES_NOTUPDATED 0x00040172L -#define OLEOBJ_S_INVALIDVERB 0x00040180L -#define OLEOBJ_S_CANNOT_DOVERB_NOW 0x00040181L -#define OLEOBJ_S_INVALIDHWND 0x00040182L -#define INPLACE_S_TRUNCATED 0x000401A0L -#define CONVERT10_S_NO_PRESENTATION 0x000401C0L -#define MK_S_REDUCED_TO_SELF 0x000401E2L -#define MK_S_ME 0x000401E4L -#define MK_S_HIM 0x000401E5L -#define MK_S_US 0x000401E6L -#define MK_S_MONIKERALREADYREGISTERED 0x000401E7L -#define CO_E_CLASS_CREATE_FAILED 0x80080001L -#define CO_E_SCM_ERROR 0x80080002L -#define CO_E_SCM_RPC_FAILURE 0x80080003L -#define CO_E_BAD_PATH 0x80080004L -#define CO_E_SERVER_EXEC_FAILURE 0x80080005L -#define CO_E_OBJSRV_RPC_FAILURE 0x80080006L -#define MK_E_NO_NORMALIZED 0x80080007L -#define CO_E_SERVER_STOPPING 0x80080008L -#define MEM_E_INVALID_ROOT 0x80080009L -#define MEM_E_INVALID_LINK 0x80080010L -#define MEM_E_INVALID_SIZE 0x80080011L -#define DISP_E_UNKNOWNINTERFACE 0x80020001L -#define DISP_E_MEMBERNOTFOUND 0x80020003L -#define DISP_E_PARAMNOTFOUND 0x80020004L -#define DISP_E_TYPEMISMATCH 0x80020005L -#define DISP_E_UNKNOWNNAME 0x80020006L -#define DISP_E_NONAMEDARGS 0x80020007L -#define DISP_E_BADVARTYPE 0x80020008L -#define DISP_E_EXCEPTION 0x80020009L -#define DISP_E_OVERFLOW 0x8002000AL -#define DISP_E_BADINDEX 0x8002000BL -#define DISP_E_UNKNOWNLCID 0x8002000CL -#define DISP_E_ARRAYISLOCKED 0x8002000DL -#define DISP_E_BADPARAMCOUNT 0x8002000EL -#define DISP_E_PARAMNOTOPTIONAL 0x8002000FL -#define DISP_E_BADCALLEE 0x80020010L -#define DISP_E_NOTACOLLECTION 0x80020011L -#define TYPE_E_BUFFERTOOSMALL 0x80028016L -#define TYPE_E_INVDATAREAD 0x80028018L -#define TYPE_E_UNSUPFORMAT 0x80028019L -#define TYPE_E_REGISTRYACCESS 0x8002801CL -#define TYPE_E_LIBNOTREGISTERED 0x8002801DL -#define TYPE_E_UNDEFINEDTYPE 0x80028027L -#define TYPE_E_QUALIFIEDNAMEDISALLOWED 0x80028028L -#define TYPE_E_INVALIDSTATE 0x80028029L -#define TYPE_E_WRONGTYPEKIND 0x8002802AL -#define TYPE_E_ELEMENTNOTFOUND 0x8002802BL -#define TYPE_E_AMBIGUOUSNAME 0x8002802CL -#define TYPE_E_NAMECONFLICT 0x8002802DL -#define TYPE_E_UNKNOWNLCID 0x8002802EL -#define TYPE_E_DLLFUNCTIONNOTFOUND 0x8002802FL -#define TYPE_E_BADMODULEKIND 0x800288BDL -#define TYPE_E_SIZETOOBIG 0x800288C5L -#define TYPE_E_DUPLICATEID 0x800288C6L -#define TYPE_E_INVALIDID 0x800288CFL -#define TYPE_E_TYPEMISMATCH 0x80028CA0L -#define TYPE_E_OUTOFBOUNDS 0x80028CA1L -#define TYPE_E_IOERROR 0x80028CA2L -#define TYPE_E_CANTCREATETMPFILE 0x80028CA3L -#define TYPE_E_CANTLOADLIBRARY 0x80029C4AL -#define TYPE_E_INCONSISTENTPROPFUNCS 0x80029C83L -#define TYPE_E_CIRCULARTYPE 0x80029C84L -#define STG_E_INVALIDFUNCTION 0x80030001L -#define STG_E_FILENOTFOUND 0x80030002L -#define STG_E_PATHNOTFOUND 0x80030003L -#define STG_E_TOOMANYOPENFILES 0x80030004L -#define STG_E_ACCESSDENIED 0x80030005L -#define STG_E_INVALIDHANDLE 0x80030006L -#define STG_E_INSUFFICIENTMEMORY 0x80030008L -#define STG_E_INVALIDPOINTER 0x80030009L -#define STG_E_NOMOREFILES 0x80030012L -#define STG_E_DISKISWRITEPROTECTED 0x80030013L -#define STG_E_SEEKERROR 0x80030019L -#define STG_E_WRITEFAULT 0x8003001DL -#define STG_E_READFAULT 0x8003001EL -#define STG_E_SHAREVIOLATION 0x80030020L -#define STG_E_LOCKVIOLATION 0x80030021L -#define STG_E_FILEALREADYEXISTS 0x80030050L -#define STG_E_INVALIDPARAMETER 0x80030057L -#define STG_E_MEDIUMFULL 0x80030070L -#define STG_E_ABNORMALAPIEXIT 0x800300FAL -#define STG_E_INVALIDHEADER 0x800300FBL -#define STG_E_INVALIDNAME 0x800300FCL -#define STG_E_UNKNOWN 0x800300FDL -#define STG_E_UNIMPLEMENTEDFUNCTION 0x800300FEL -#define STG_E_INVALIDFLAG 0x800300FFL -#define STG_E_INUSE 0x80030100L -#define STG_E_NOTCURRENT 0x80030101L -#define STG_E_REVERTED 0x80030102L -#define STG_E_CANTSAVE 0x80030103L -#define STG_E_OLDFORMAT 0x80030104L -#define STG_E_OLDDLL 0x80030105L -#define STG_E_SHAREREQUIRED 0x80030106L -#define STG_E_NOTFILEBASEDSTORAGE 0x80030107L -#define STG_E_EXTANTMARSHALLINGS 0x80030108L -#define STG_S_CONVERTED 0x00030200L -#define RPC_E_CALL_REJECTED 0x80010001L -#define RPC_E_CALL_CANCELED 0x80010002L -#define RPC_E_CANTPOST_INSENDCALL 0x80010003L -#define RPC_E_CANTCALLOUT_INASYNCCALL 0x80010004L -#define RPC_E_CANTCALLOUT_INEXTERNALCALL 0x80010005L -#define RPC_E_CONNECTION_TERMINATED 0x80010006L -#define RPC_E_SERVER_DIED 0x80010007L -#define RPC_E_CLIENT_DIED 0x80010008L -#define RPC_E_INVALID_DATAPACKET 0x80010009L -#define RPC_E_CANTTRANSMIT_CALL 0x8001000AL -#define RPC_E_CLIENT_CANTMARSHAL_DATA 0x8001000BL -#define RPC_E_CLIENT_CANTUNMARSHAL_DATA 0x8001000CL -#define RPC_E_SERVER_CANTMARSHAL_DATA 0x8001000DL -#define RPC_E_SERVER_CANTUNMARSHAL_DATA 0x8001000EL -#define RPC_E_INVALID_DATA 0x8001000FL -#define RPC_E_INVALID_PARAMETER 0x80010010L -#define RPC_E_CANTCALLOUT_AGAIN 0x80010011L -#define RPC_E_SERVER_DIED_DNE 0x80010012L -#define RPC_E_SYS_CALL_FAILED 0x80010100L -#define RPC_E_OUT_OF_RESOURCES 0x80010101L -#define RPC_E_ATTEMPTED_MULTITHREAD 0x80010102L -#define RPC_E_NOT_REGISTERED 0x80010103L -#define RPC_E_FAULT 0x80010104L -#define RPC_E_SERVERFAULT 0x80010105L -#define RPC_E_CHANGED_MODE 0x80010106L -#define RPC_E_INVALIDMETHOD 0x80010107L -#define RPC_E_DISCONNECTED 0x80010108L -#define RPC_E_RETRY 0x80010109L -#define RPC_E_SERVERCALL_RETRYLATER 0x8001010AL -#define RPC_E_SERVERCALL_REJECTED 0x8001010BL -#define RPC_E_INVALID_CALLDATA 0x8001010CL -#define RPC_E_CANTCALLOUT_ININPUTSYNCCALL 0x8001010DL -#define RPC_E_WRONG_THREAD 0x8001010EL -#define RPC_E_THREAD_NOT_INIT 0x8001010FL -#define RPC_E_UNEXPECTED 0x8001FFFFL - -#define NTE_BAD_UID 0x80090001L -#define NTE_BAD_HASH 0x80090002L -#define NTE_BAD_KEY 0x80090003L -#define NTE_BAD_LEN 0x80090004L -#define NTE_BAD_DATA 0x80090005L -#define NTE_BAD_SIGNATURE 0x80090006L -#define NTE_BAD_VER 0x80090007L -#define NTE_BAD_ALGID 0x80090008L -#define NTE_BAD_FLAGS 0x80090009L -#define NTE_BAD_TYPE 0x8009000AL -#define NTE_BAD_KEY_STATE 0x8009000BL -#define NTE_BAD_HASH_STATE 0x8009000CL -#define NTE_NO_KEY 0x8009000DL -#define NTE_NO_MEMORY 0x8009000EL -#define NTE_EXISTS 0x8009000FL -#define NTE_PERM 0x80090010L -#define NTE_NOT_FOUND 0x80090011L -#define NTE_DOUBLE_ENCRYPT 0x80090012L -#define NTE_BAD_PROVIDER 0x80090013L -#define NTE_BAD_PROV_TYPE 0x80090014L -#define NTE_BAD_PUBLIC_KEY 0x80090015L -#define NTE_BAD_KEYSET 0x80090016L -#define NTE_PROV_TYPE_NOT_DEF 0x80090017L -#define NTE_PROV_TYPE_ENTRY_BAD 0x80090018L -#define NTE_KEYSET_NOT_DEF 0x80090019L -#define NTE_KEYSET_ENTRY_BAD 0x8009001AL -#define NTE_PROV_TYPE_NO_MATCH 0x8009001BL -#define NTE_SIGNATURE_FILE_BAD 0x8009001CL -#define NTE_PROVIDER_DLL_FAIL 0x8009001DL -#define NTE_PROV_DLL_NOT_FOUND 0x8009001EL -#define NTE_BAD_KEYSET_PARAM 0x8009001FL -#define NTE_FAIL 0x80090020L -#define NTE_SYS_ERR 0x80090021L -/* #define NTE_TOKEN_KEYSET_STORAGE ??? */ - -#endif diff --git a/winsup/w32api/include/wingdi.h b/winsup/w32api/include/wingdi.h deleted file mode 100644 index c938b1d22..000000000 --- a/winsup/w32api/include/wingdi.h +++ /dev/null @@ -1,2839 +0,0 @@ -#ifndef _WINGDI_H -#define _WINGDI_H -#ifdef __cplusplus -extern "C" { -#endif - -#define WINGDIAPI -#define BI_RGB 0 -#define BI_RLE8 1 -#define BI_RLE4 2 -#define BI_BITFIELDS 3 -#define BI_JPEG 4 -#define BI_PNG 5 -#define LF_FACESIZE 32 -#define LF_FULLFACESIZE 64 -#define CA_NEGATIVE 1 -#define CA_LOG_FILTER 2 -#define ILLUMINANT_DEVICE_DEFAULT 0 -#define ILLUMINANT_A 1 -#define ILLUMINANT_B 2 -#define ILLUMINANT_C 3 -#define ILLUMINANT_D50 4 -#define ILLUMINANT_D55 5 -#define ILLUMINANT_D65 6 -#define ILLUMINANT_D75 7 -#define ILLUMINANT_F2 8 -#define ILLUMINANT_MAX_INDEX ILLUMINANT_F2 -#define ILLUMINANT_TUNGSTEN ILLUMINANT_A -#define ILLUMINANT_DAYLIGHT ILLUMINANT_C -#define ILLUMINANT_FLUORESCENT ILLUMINANT_F2 -#define ILLUMINANT_NTSC ILLUMINANT_C -#define RGB_GAMMA_MIN 2500 -#define RGB_GAMMA_MAX 65000 -#define REFERENCE_WHITE_MIN 6000 -#define REFERENCE_WHITE_MAX 10000 -#define REFERENCE_BLACK_MIN 0 -#define REFERENCE_BLACK_MAX 4000 -#define COLOR_ADJ_MIN (-100) -#define COLOR_ADJ_MAX 100 -#define CCHDEVICENAME 32 -#define CCHFORMNAME 32 -#define DI_COMPAT 4 -#define DI_DEFAULTSIZE 8 -#define DI_IMAGE 2 -#define DI_MASK 1 -#define DI_NORMAL 3 -#define DI_APPBANDING 1 -#define EMR_HEADER 1 -#define EMR_POLYBEZIER 2 -#define EMR_POLYGON 3 -#define EMR_POLYLINE 4 -#define EMR_POLYBEZIERTO 5 -#define EMR_POLYLINETO 6 -#define EMR_POLYPOLYLINE 7 -#define EMR_POLYPOLYGON 8 -#define EMR_SETWINDOWEXTEX 9 -#define EMR_SETWINDOWORGEX 10 -#define EMR_SETVIEWPORTEXTEX 11 -#define EMR_SETVIEWPORTORGEX 12 -#define EMR_SETBRUSHORGEX 13 -#define EMR_EOF 14 -#define EMR_SETPIXELV 15 -#define EMR_SETMAPPERFLAGS 16 -#define EMR_SETMAPMODE 17 -#define EMR_SETBKMODE 18 -#define EMR_SETPOLYFILLMODE 19 -#define EMR_SETROP2 20 -#define EMR_SETSTRETCHBLTMODE 21 -#define EMR_SETTEXTALIGN 22 -#define EMR_SETCOLORADJUSTMENT 23 -#define EMR_SETTEXTCOLOR 24 -#define EMR_SETBKCOLOR 25 -#define EMR_OFFSETCLIPRGN 26 -#define EMR_MOVETOEX 27 -#define EMR_SETMETARGN 28 -#define EMR_EXCLUDECLIPRECT 29 -#define EMR_INTERSECTCLIPRECT 30 -#define EMR_SCALEVIEWPORTEXTEX 31 -#define EMR_SCALEWINDOWEXTEX 32 -#define EMR_SAVEDC 33 -#define EMR_RESTOREDC 34 -#define EMR_SETWORLDTRANSFORM 35 -#define EMR_MODIFYWORLDTRANSFORM 36 -#define EMR_SELECTOBJECT 37 -#define EMR_CREATEPEN 38 -#define EMR_CREATEBRUSHINDIRECT 39 -#define EMR_DELETEOBJECT 40 -#define EMR_ANGLEARC 41 -#define EMR_ELLIPSE 42 -#define EMR_RECTANGLE 43 -#define EMR_ROUNDRECT 44 -#define EMR_ARC 45 -#define EMR_CHORD 46 -#define EMR_PIE 47 -#define EMR_SELECTPALETTE 48 -#define EMR_CREATEPALETTE 49 -#define EMR_SETPALETTEENTRIES 50 -#define EMR_RESIZEPALETTE 51 -#define EMR_REALIZEPALETTE 52 -#define EMR_EXTFLOODFILL 53 -#define EMR_LINETO 54 -#define EMR_ARCTO 55 -#define EMR_POLYDRAW 56 -#define EMR_SETARCDIRECTION 57 -#define EMR_SETMITERLIMIT 58 -#define EMR_BEGINPATH 59 -#define EMR_ENDPATH 60 -#define EMR_CLOSEFIGURE 61 -#define EMR_FILLPATH 62 -#define EMR_STROKEANDFILLPATH 63 -#define EMR_STROKEPATH 64 -#define EMR_FLATTENPATH 65 -#define EMR_WIDENPATH 66 -#define EMR_SELECTCLIPPATH 67 -#define EMR_ABORTPATH 68 -#define EMR_GDICOMMENT 70 -#define EMR_FILLRGN 71 -#define EMR_FRAMERGN 72 -#define EMR_INVERTRGN 73 -#define EMR_PAINTRGN 74 -#define EMR_EXTSELECTCLIPRGN 75 -#define EMR_BITBLT 76 -#define EMR_STRETCHBLT 77 -#define EMR_MASKBLT 78 -#define EMR_PLGBLT 79 -#define EMR_SETDIBITSTODEVICE 80 -#define EMR_STRETCHDIBITS 81 -#define EMR_EXTCREATEFONTINDIRECTW 82 -#define EMR_EXTTEXTOUTA 83 -#define EMR_EXTTEXTOUTW 84 -#define EMR_POLYBEZIER16 85 -#define EMR_POLYGON16 86 -#define EMR_POLYLINE16 87 -#define EMR_POLYBEZIERTO16 88 -#define EMR_POLYLINETO16 89 -#define EMR_POLYPOLYLINE16 90 -#define EMR_POLYPOLYGON16 91 -#define EMR_POLYDRAW16 92 -#define EMR_CREATEMONOBRUSH 93 -#define EMR_CREATEDIBPATTERNBRUSHPT 94 -#define EMR_EXTCREATEPEN 95 -#define EMR_POLYTEXTOUTA 96 -#define EMR_POLYTEXTOUTW 97 -#define EMR_SETICMMODE 98 -#define EMR_CREATECOLORSPACE 99 -#define EMR_SETCOLORSPACE 100 -#define EMR_DELETECOLORSPACE 101 -#define EMR_GLSRECORD 102 -#define EMR_GLSBOUNDEDRECORD 103 -#define EMR_PIXELFORMAT 104 -#define ENHMETA_SIGNATURE 1179469088 -#define EPS_SIGNATURE 0x46535045 -#define META_SETBKCOLOR 0x201 -#define META_SETBKMODE 0x102 -#define META_SETMAPMODE 0x103 -#define META_SETROP2 0x104 -#define META_SETRELABS 0x105 -#define META_SETPOLYFILLMODE 0x106 -#define META_SETSTRETCHBLTMODE 0x107 -#define META_SETTEXTCHAREXTRA 0x108 -#define META_SETTEXTCOLOR 0x209 -#define META_SETTEXTJUSTIFICATION 0x20A -#define META_SETWINDOWORG 0x20B -#define META_SETWINDOWEXT 0x20C -#define META_SETVIEWPORTORG 0x20D -#define META_SETVIEWPORTEXT 0x20E -#define META_OFFSETWINDOWORG 0x20F -#define META_SCALEWINDOWEXT 0x410 -#define META_OFFSETVIEWPORTORG 0x211 -#define META_SCALEVIEWPORTEXT 0x412 -#define META_LINETO 0x213 -#define META_MOVETO 0x214 -#define META_EXCLUDECLIPRECT 0x415 -#define META_INTERSECTCLIPRECT 0x416 -#define META_ARC 0x817 -#define META_ELLIPSE 0x418 -#define META_FLOODFILL 0x419 -#define META_PIE 0x81A -#define META_RECTANGLE 0x41B -#define META_ROUNDRECT 0x61C -#define META_PATBLT 0x61D -#define META_SAVEDC 0x1E -#define META_SETPIXEL 0x41F -#define META_OFFSETCLIPRGN 0x220 -#define META_TEXTOUT 0x521 -#define META_BITBLT 0x922 -#define META_STRETCHBLT 0xB23 -#define META_POLYGON 0x324 -#define META_POLYLINE 0x325 -#define META_ESCAPE 0x626 -#define META_RESTOREDC 0x127 -#define META_FILLREGION 0x228 -#define META_FRAMEREGION 0x429 -#define META_INVERTREGION 0x12A -#define META_PAINTREGION 0x12B -#define META_SELECTCLIPREGION 0x12C -#define META_SELECTOBJECT 0x12D -#define META_SETTEXTALIGN 0x12E -#define META_CHORD 0x830 -#define META_SETMAPPERFLAGS 0x231 -#define META_EXTTEXTOUT 0xa32 -#define META_SETDIBTODEV 0xd33 -#define META_SELECTPALETTE 0x234 -#define META_REALIZEPALETTE 0x35 -#define META_ANIMATEPALETTE 0x436 -#define META_SETPALENTRIES 0x37 -#define META_POLYPOLYGON 0x538 -#define META_RESIZEPALETTE 0x139 -#define META_DIBBITBLT 0x940 -#define META_DIBSTRETCHBLT 0xb41 -#define META_DIBCREATEPATTERNBRUSH 0x142 -#define META_STRETCHDIB 0xf43 -#define META_EXTFLOODFILL 0x548 -#define META_DELETEOBJECT 0x1f0 -#define META_CREATEPALETTE 0xf7 -#define META_CREATEPATTERNBRUSH 0x1F9 -#define META_CREATEPENINDIRECT 0x2FA -#define META_CREATEFONTINDIRECT 0x2FB -#define META_CREATEBRUSHINDIRECT 0x2FC -#define META_CREATEREGION 0x6FF -#define PT_MOVETO 6 -#define PT_LINETO 2 -#define PT_BEZIERTO 4 -#define PT_CLOSEFIGURE 1 -#define ELF_VENDOR_SIZE 4 -#define ELF_VERSION 0 -#define ELF_CULTURE_LATIN 0 -#define PFD_TYPE_RGBA 0 -#define PFD_TYPE_COLORINDEX 1 -#define PFD_MAIN_PLANE 0 -#define PFD_OVERLAY_PLANE 1 -#define PFD_UNDERLAY_PLANE (-1) -#define PFD_DOUBLEBUFFER 1 -#define PFD_STEREO 2 -#define PFD_DRAW_TO_WINDOW 4 -#define PFD_DRAW_TO_BITMAP 8 -#define PFD_SUPPORT_GDI 16 -#define PFD_SUPPORT_OPENGL 32 -#define PFD_GENERIC_FORMAT 64 -#define PFD_NEED_PALETTE 128 -#define PFD_NEED_SYSTEM_PALETTE 0x00000100 -#define PFD_SWAP_EXCHANGE 0x00000200 -#define PFD_SWAP_COPY 0x00000400 -#define PFD_GENERIC_ACCELERATED 0x00001000 -#define PFD_DEPTH_DONTCARE 0x20000000 -#define PFD_DOUBLEBUFFER_DONTCARE 0x40000000 -#define PFD_STEREO_DONTCARE 0x80000000 -#define SP_ERROR (-1) -#define SP_OUTOFDISK (-4) -#define SP_OUTOFMEMORY (-5) -#define SP_USERABORT (-3) -#define SP_APPABORT (-2) -#define BLACKNESS 0x42 -#define NOTSRCERASE 0x1100A6 -#define NOTSRCCOPY 0x330008 -#define SRCERASE 0x440328 -#define DSTINVERT 0x550009 -#define PATINVERT 0x5A0049 -#define SRCINVERT 0x660046 -#define SRCAND 0x8800C6 -#define MERGEPAINT 0xBB0226 -#define MERGECOPY 0xC000CA -#define SRCCOPY 0xCC0020 -#define SRCPAINT 0xEE0086 -#define PATCOPY 0xF00021 -#define PATPAINT 0xFB0A09 -#define WHITENESS 0xFF0062 -#define R2_BLACK 1 -#define R2_COPYPEN 13 -#define R2_MASKNOTPEN 3 -#define R2_MASKPEN 9 -#define R2_MASKPENNOT 5 -#define R2_MERGENOTPEN 12 -#define R2_MERGEPEN 15 -#define R2_MERGEPENNOT 14 -#define R2_NOP 11 -#define R2_NOT 6 -#define R2_NOTCOPYPEN 4 -#define R2_NOTMASKPEN 8 -#define R2_NOTMERGEPEN 2 -#define R2_NOTXORPEN 10 -#define R2_WHITE 16 -#define R2_XORPEN 7 -#define CM_OUT_OF_GAMUT 255 -#define CM_IN_GAMUT 0 -#define RGN_AND 1 -#define RGN_COPY 5 -#define RGN_DIFF 4 -#define RGN_OR 2 -#define RGN_XOR 3 -#define NULLREGION 1 -#define SIMPLEREGION 2 -#define COMPLEXREGION 3 -#define ERROR 0 -#define CBM_INIT 4 -#define DIB_PAL_COLORS 1 -#define DIB_RGB_COLORS 0 -#define FW_DONTCARE 0 -#define FW_THIN 100 -#define FW_EXTRALIGHT 200 -#define FW_ULTRALIGHT FW_EXTRALIGHT -#define FW_LIGHT 300 -#define FW_NORMAL 400 -#define FW_REGULAR 400 -#define FW_MEDIUM 500 -#define FW_SEMIBOLD 600 -#define FW_DEMIBOLD FW_SEMIBOLD -#define FW_BOLD 700 -#define FW_EXTRABOLD 800 -#define FW_ULTRABOLD FW_EXTRABOLD -#define FW_HEAVY 900 -#define FW_BLACK FW_HEAVY -#define ANSI_CHARSET 0 -#define DEFAULT_CHARSET 1 -#define SYMBOL_CHARSET 2 -#define SHIFTJIS_CHARSET 128 -#define HANGEUL_CHARSET 129 -#define HANGUL_CHARSET 129 -#define GB2312_CHARSET 134 -#define CHINESEBIG5_CHARSET 136 -#define GREEK_CHARSET 161 -#define TURKISH_CHARSET 162 -#define HEBREW_CHARSET 177 -#define ARABIC_CHARSET 178 -#define BALTIC_CHARSET 186 -#define RUSSIAN_CHARSET 204 -#define THAI_CHARSET 222 -#define EASTEUROPE_CHARSET 238 -#define OEM_CHARSET 255 -#define JOHAB_CHARSET 130 -#define VIETNAMESE_CHARSET 163 -#define MAC_CHARSET 77 -#define BALTIC_CHARSET 186 -#define JOHAB_CHARSET 130 -#define VIETNAMESE_CHARSET 163 -#define OUT_DEFAULT_PRECIS 0 -#define OUT_STRING_PRECIS 1 -#define OUT_CHARACTER_PRECIS 2 -#define OUT_STROKE_PRECIS 3 -#define OUT_TT_PRECIS 4 -#define OUT_DEVICE_PRECIS 5 -#define OUT_RASTER_PRECIS 6 -#define OUT_TT_ONLY_PRECIS 7 -#define OUT_OUTLINE_PRECIS 8 -#define CLIP_DEFAULT_PRECIS 0 -#define CLIP_CHARACTER_PRECIS 1 -#define CLIP_STROKE_PRECIS 2 -#define CLIP_MASK 15 -#define CLIP_LH_ANGLES 16 -#define CLIP_TT_ALWAYS 32 -#define CLIP_EMBEDDED 128 -#define DEFAULT_QUALITY 0 -#define DRAFT_QUALITY 1 -#define PROOF_QUALITY 2 -#define NONANTIALIASED_QUALITY 3 -#define ANTIALIASED_QUALITY 4 -#define DEFAULT_PITCH 0 -#define FIXED_PITCH 1 -#define VARIABLE_PITCH 2 -#define MONO_FONT 8 -#define FF_DECORATIVE 80 -#define FF_DONTCARE 0 -#define FF_MODERN 48 -#define FF_ROMAN 16 -#define FF_SCRIPT 64 -#define FF_SWISS 32 -#define PANOSE_COUNT 10 -#define PAN_FAMILYTYPE_INDEX 0 -#define PAN_SERIFSTYLE_INDEX 1 -#define PAN_WEIGHT_INDEX 2 -#define PAN_PROPORTION_INDEX 3 -#define PAN_CONTRAST_INDEX 4 -#define PAN_STROKEVARIATION_INDEX 5 -#define PAN_ARMSTYLE_INDEX 6 -#define PAN_LETTERFORM_INDEX 7 -#define PAN_MIDLINE_INDEX 8 -#define PAN_XHEIGHT_INDEX 9 -#define PAN_CULTURE_LATIN 0 -#define PAN_ANY 0 -#define PAN_NO_FIT 1 -#define PAN_FAMILY_TEXT_DISPLAY 2 -#define PAN_FAMILY_SCRIPT 3 -#define PAN_FAMILY_DECORATIVE 4 -#define PAN_FAMILY_PICTORIAL 5 -#define PAN_SERIF_COVE 2 -#define PAN_SERIF_OBTUSE_COVE 3 -#define PAN_SERIF_SQUARE_COVE 4 -#define PAN_SERIF_OBTUSE_SQUARE_COVE 5 -#define PAN_SERIF_SQUARE 6 -#define PAN_SERIF_THIN 7 -#define PAN_SERIF_BONE 8 -#define PAN_SERIF_EXAGGERATED 9 -#define PAN_SERIF_TRIANGLE 10 -#define PAN_SERIF_NORMAL_SANS 11 -#define PAN_SERIF_OBTUSE_SANS 12 -#define PAN_SERIF_PERP_SANS 13 -#define PAN_SERIF_FLARED 14 -#define PAN_SERIF_ROUNDED 15 -#define PAN_WEIGHT_VERY_LIGHT 2 -#define PAN_WEIGHT_LIGHT 3 -#define PAN_WEIGHT_THIN 4 -#define PAN_WEIGHT_BOOK 5 -#define PAN_WEIGHT_MEDIUM 6 -#define PAN_WEIGHT_DEMI 7 -#define PAN_WEIGHT_BOLD 8 -#define PAN_WEIGHT_HEAVY 9 -#define PAN_WEIGHT_BLACK 10 -#define PAN_WEIGHT_NORD 11 -#define PAN_PROP_OLD_STYLE 2 -#define PAN_PROP_MODERN 3 -#define PAN_PROP_EVEN_WIDTH 4 -#define PAN_PROP_EXPANDED 5 -#define PAN_PROP_CONDENSED 6 -#define PAN_PROP_VERY_EXPANDED 7 -#define PAN_PROP_VERY_CONDENSED 8 -#define PAN_PROP_MONOSPACED 9 -#define PAN_CONTRAST_NONE 2 -#define PAN_CONTRAST_VERY_LOW 3 -#define PAN_CONTRAST_LOW 4 -#define PAN_CONTRAST_MEDIUM_LOW 5 -#define PAN_CONTRAST_MEDIUM 6 -#define PAN_CONTRAST_MEDIUM_HIGH 7 -#define PAN_CONTRAST_HIGH 8 -#define PAN_CONTRAST_VERY_HIGH 9 -#define PAN_STROKE_GRADUAL_DIAG 2 -#define PAN_STROKE_GRADUAL_TRAN 3 -#define PAN_STROKE_GRADUAL_VERT 4 -#define PAN_STROKE_GRADUAL_HORZ 5 -#define PAN_STROKE_RAPID_VERT 6 -#define PAN_STROKE_RAPID_HORZ 7 -#define PAN_STROKE_INSTANT_VERT 8 -#define PAN_STRAIGHT_ARMS_HORZ 2 -#define PAN_STRAIGHT_ARMS_WEDGE 3 -#define PAN_STRAIGHT_ARMS_VERT 4 -#define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5 -#define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6 -#define PAN_BENT_ARMS_HORZ 7 -#define PAN_BENT_ARMS_WEDGE 8 -#define PAN_BENT_ARMS_VERT 9 -#define PAN_BENT_ARMS_SINGLE_SERIF 10 -#define PAN_BENT_ARMS_DOUBLE_SERIF 11 -#define PAN_LETT_NORMAL_CONTACT 2 -#define PAN_LETT_NORMAL_WEIGHTED 3 -#define PAN_LETT_NORMAL_BOXED 4 -#define PAN_LETT_NORMAL_FLATTENED 5 -#define PAN_LETT_NORMAL_ROUNDED 6 -#define PAN_LETT_NORMAL_OFF_CENTER 7 -#define PAN_LETT_NORMAL_SQUARE 8 -#define PAN_LETT_OBLIQUE_CONTACT 9 -#define PAN_LETT_OBLIQUE_WEIGHTED 10 -#define PAN_LETT_OBLIQUE_BOXED 11 -#define PAN_LETT_OBLIQUE_FLATTENED 12 -#define PAN_LETT_OBLIQUE_ROUNDED 13 -#define PAN_LETT_OBLIQUE_OFF_CENTER 14 -#define PAN_LETT_OBLIQUE_SQUARE 15 -#define PAN_MIDLINE_STANDARD_TRIMMED 2 -#define PAN_MIDLINE_STANDARD_POINTED 3 -#define PAN_MIDLINE_STANDARD_SERIFED 4 -#define PAN_MIDLINE_HIGH_TRIMMED 5 -#define PAN_MIDLINE_HIGH_POINTED 6 -#define PAN_MIDLINE_HIGH_SERIFED 7 -#define PAN_MIDLINE_CONSTANT_TRIMMED 8 -#define PAN_MIDLINE_CONSTANT_POINTED 9 -#define PAN_MIDLINE_CONSTANT_SERIFED 10 -#define PAN_MIDLINE_LOW_TRIMMED 11 -#define PAN_MIDLINE_LOW_POINTED 12 -#define PAN_MIDLINE_LOW_SERIFED 13 -#define PAN_XHEIGHT_CONSTANT_SMALL 2 -#define PAN_XHEIGHT_CONSTANT_STD 3 -#define PAN_XHEIGHT_CONSTANT_LARGE 4 -#define PAN_XHEIGHT_DUCKING_SMALL 5 -#define PAN_XHEIGHT_DUCKING_STD 6 -#define PAN_XHEIGHT_DUCKING_LARGE 7 -#define FS_LATIN1 1 -#define FS_LATIN2 2 -#define FS_CYRILLIC 4 -#define FS_GREEK 8 -#define FS_TURKISH 16 -#define FS_HEBREW 32 -#define FS_ARABIC 64 -#define FS_BALTIC 128 -#define FS_THAI 0x10000 -#define FS_JISJAPAN 0x20000 -#define FS_CHINESESIMP 0x40000 -#define FS_WANSUNG 0x80000 -#define FS_CHINESETRAD 0x100000 -#define FS_JOHAB 0x200000 -#define FS_SYMBOL 0x80000000 -#define HS_BDIAGONAL 3 -#define HS_CROSS 4 -#define HS_DIAGCROSS 5 -#define HS_FDIAGONAL 2 -#define HS_HORIZONTAL 0 -#define HS_VERTICAL 1 -#define PS_GEOMETRIC 65536 -#define PS_COSMETIC 0 -#define PS_ALTERNATE 8 -#define PS_SOLID 0 -#define PS_DASH 1 -#define PS_DOT 2 -#define PS_DASHDOT 3 -#define PS_DASHDOTDOT 4 -#define PS_NULL 5 -#define PS_USERSTYLE 7 -#define PS_INSIDEFRAME 6 -#define PS_ENDCAP_ROUND 0 -#define PS_ENDCAP_SQUARE 256 -#define PS_ENDCAP_FLAT 512 -#define PS_JOIN_BEVEL 4096 -#define PS_JOIN_MITER 8192 -#define PS_JOIN_ROUND 0 -#define PS_STYLE_MASK 15 -#define PS_ENDCAP_MASK 3840 -#define PS_TYPE_MASK 983040 -#define ALTERNATE 1 -#define WINDING 2 -#define DC_BINNAMES 12 -#define DC_BINS 6 -#define DC_COPIES 18 -#define DC_DRIVER 11 -#define DC_DATATYPE_PRODUCED 21 -#define DC_DUPLEX 7 -#define DC_EMF_COMPLIANT 20 -#define DC_ENUMRESOLUTIONS 13 -#define DC_EXTRA 9 -#define DC_FIELDS 1 -#define DC_FILEDEPENDENCIES 14 -#define DC_MAXEXTENT 5 -#define DC_MINEXTENT 4 -#define DC_ORIENTATION 17 -#define DC_PAPERNAMES 16 -#define DC_PAPERS 2 -#define DC_PAPERSIZE 3 -#define DC_SIZE 8 -#define DC_TRUETYPE 15 -#define DCTT_BITMAP 1 -#define DCTT_DOWNLOAD 2 -#define DCTT_SUBDEV 4 -#define DCTT_DOWNLOAD_OUTLINE 8 -#define DC_VERSION 10 -#define DC_BINADJUST 19 -#define DC_EMF_COMPLIANT 20 -#define DC_DATATYPE_PRODUCED 21 -#define DC_MANUFACTURER 23 -#define DC_MODEL 24 -#define DCBA_FACEUPNONE 0 -#define DCBA_FACEUPCENTER 1 -#define DCBA_FACEUPLEFT 2 -#define DCBA_FACEUPRIGHT 3 -#define DCBA_FACEDOWNNONE 256 -#define DCBA_FACEDOWNCENTER 257 -#define DCBA_FACEDOWNLEFT 258 -#define DCBA_FACEDOWNRIGHT 259 -#define FLOODFILLBORDER 0 -#define FLOODFILLSURFACE 1 -#define ETO_CLIPPED 4 -#define ETO_GLYPH_INDEX 16 -#define ETO_OPAQUE 2 -#define ETO_RTLREADING 128 -#define GDICOMMENT_WINDOWS_METAFILE (-2147483647) -#define GDICOMMENT_BEGINGROUP 2 -#define GDICOMMENT_ENDGROUP 3 -#define GDICOMMENT_MULTIFORMATS 1073741828 -#define GDICOMMENT_IDENTIFIER 1128875079 -#define AD_COUNTERCLOCKWISE 1 -#define AD_CLOCKWISE 2 -#define RDH_RECTANGLES 1 -#define GCPCLASS_LATIN 1 -#define GCPCLASS_HEBREW 2 -#define GCPCLASS_ARABIC 2 -#define GCPCLASS_NEUTRAL 3 -#define GCPCLASS_LOCALNUMBER 4 -#define GCPCLASS_LATINNUMBER 5 -#define GCPCLASS_LATINNUMERICTERMINATOR 6 -#define GCPCLASS_LATINNUMERICSEPARATOR 7 -#define GCPCLASS_NUMERICSEPARATOR 8 -#define GCPCLASS_PREBOUNDLTR 128 -#define GCPCLASS_PREBOUNDRTL 64 -#define GCPCLASS_POSTBOUNDLTR 32 -#define GCPCLASS_POSTBOUNDRTL 16 -#define GCPGLYPH_LINKBEFORE 0x8000 -#define GCPGLYPH_LINKAFTER 0x4000 -#define DCB_DISABLE 8 -#define DCB_ENABLE 4 -#define DCB_RESET 1 -#define DCB_SET 3 -#define DCB_ACCUMULATE 2 -#define DCB_DIRTY 2 -#define OBJ_BRUSH 2 -#define OBJ_PEN 1 -#define OBJ_PAL 5 -#define OBJ_FONT 6 -#define OBJ_BITMAP 7 -#define OBJ_EXTPEN 11 -#define OBJ_REGION 8 -#define OBJ_DC 3 -#define OBJ_MEMDC 10 -#define OBJ_METAFILE 9 -#define OBJ_METADC 4 -#define OBJ_ENHMETAFILE 13 -#define OBJ_ENHMETADC 12 -#define DRIVERVERSION 0 -#define TECHNOLOGY 2 -#define DT_PLOTTER 0 -#define DT_RASDISPLAY 1 -#define DT_RASPRINTER 2 -#define DT_RASCAMERA 3 -#define DT_CHARSTREAM 4 -#define DT_METAFILE 5 -#define DT_DISPFILE 6 -#define HORZSIZE 4 -#define VERTSIZE 6 -#define HORZRES 8 -#define VERTRES 10 -#define LOGPIXELSX 88 -#define LOGPIXELSY 90 -#define BITSPIXEL 12 -#define PLANES 14 -#define NUMBRUSHES 16 -#define NUMPENS 18 -#define NUMFONTS 22 -#define NUMCOLORS 24 -#define NUMMARKERS 20 -#define ASPECTX 40 -#define ASPECTY 42 -#define ASPECTXY 44 -#define PDEVICESIZE 26 -#define CLIPCAPS 36 -#define SIZEPALETTE 104 -#define NUMRESERVED 106 -#define COLORRES 108 -#define PHYSICALWIDTH 110 -#define PHYSICALHEIGHT 111 -#define PHYSICALOFFSETX 112 -#define PHYSICALOFFSETY 113 -#define SCALINGFACTORX 114 -#define SCALINGFACTORY 115 -#define VREFRESH 116 -#define DESKTOPHORZRES 118 -#define DESKTOPVERTRES 117 -#define BLTALIGNMENT 119 -#define RASTERCAPS 38 -#define RC_BANDING 2 -#define RC_BITBLT 1 -#define RC_BITMAP64 8 -#define RC_DI_BITMAP 128 -#define RC_DIBTODEV 512 -#define RC_FLOODFILL 4096 -#define RC_GDI20_OUTPUT 16 -#define RC_PALETTE 256 -#define RC_SCALING 4 -#define RC_STRETCHBLT 2048 -#define RC_STRETCHDIB 8192 -#define RC_DEVBITS 0x8000 -#define RC_OP_DX_OUTPUT 0x4000 -#define CURVECAPS 28 -#define CC_NONE 0 -#define CC_CIRCLES 1 -#define CC_PIE 2 -#define CC_CHORD 4 -#define CC_ELLIPSES 8 -#define CC_WIDE 16 -#define CC_STYLED 32 -#define CC_WIDESTYLED 64 -#define CC_INTERIORS 128 -#define CC_ROUNDRECT 256 -#define LINECAPS 30 -#define LC_NONE 0 -#define LC_POLYLINE 2 -#define LC_MARKER 4 -#define LC_POLYMARKER 8 -#define LC_WIDE 16 -#define LC_STYLED 32 -#define LC_WIDESTYLED 64 -#define LC_INTERIORS 128 -#define POLYGONALCAPS 32 -#define RC_BANDING 2 -#define RC_BIGFONT 1024 -#define RC_BITBLT 1 -#define RC_BITMAP64 8 -#define RC_DEVBITS 0x8000 -#define RC_DI_BITMAP 128 -#define RC_GDI20_OUTPUT 16 -#define RC_GDI20_STATE 32 -#define RC_NONE 0 -#define RC_OP_DX_OUTPUT 0x4000 -#define RC_PALETTE 256 -#define RC_SAVEBITMAP 64 -#define RC_SCALING 4 -#define PC_NONE 0 -#define PC_POLYGON 1 -#define PC_POLYPOLYGON 256 -#define PC_PATHS 512 -#define PC_RECTANGLE 2 -#define PC_WINDPOLYGON 4 -#define PC_SCANLINE 8 -#define PC_TRAPEZOID 4 -#define PC_WIDE 16 -#define PC_STYLED 32 -#define PC_WIDESTYLED 64 -#define PC_INTERIORS 128 -#define PC_PATHS 512 -#define TEXTCAPS 34 -#define TC_OP_CHARACTER 1 -#define TC_OP_STROKE 2 -#define TC_CP_STROKE 4 -#define TC_CR_90 8 -#define TC_CR_ANY 16 -#define TC_SF_X_YINDEP 32 -#define TC_SA_DOUBLE 64 -#define TC_SA_INTEGER 128 -#define TC_SA_CONTIN 256 -#define TC_EA_DOUBLE 512 -#define TC_IA_ABLE 1024 -#define TC_UA_ABLE 2048 -#define TC_SO_ABLE 4096 -#define TC_RA_ABLE 8192 -#define TC_VA_ABLE 16384 -#define TC_RESERVED 32768 -#define TC_SCROLLBLT 65536 -#define GCP_DBCS 1 -#define GCP_ERROR 0x8000 -#define GCP_CLASSIN 0x80000 -#define GCP_DIACRITIC 256 -#define GCP_DISPLAYZWG 0x400000 -#define GCP_GLYPHSHAPE 16 -#define GCP_JUSTIFY 0x10000 -#define GCP_JUSTIFYIN 0x200000 -#define GCP_KASHIDA 1024 -#define GCP_LIGATE 32 -#define GCP_MAXEXTENT 0x100000 -#define GCP_NEUTRALOVERRIDE 0x2000000 -#define GCP_NUMERICOVERRIDE 0x1000000 -#define GCP_NUMERICSLATIN 0x4000000 -#define GCP_NUMERICSLOCAL 0x8000000 -#define GCP_REORDER 2 -#define GCP_SYMSWAPOFF 0x800000 -#define GCP_USEKERNING 8 -#define FLI_GLYPHS 0x40000 -#define FLI_MASK 0x103b -#define GGO_METRICS 0 -#define GGO_BITMAP 1 -#define GGO_NATIVE 2 -#define GGO_BEZIER 3 -#define GGO_GRAY2_BITMAP 4 -#define GGO_GRAY4_BITMAP 5 -#define GGO_GRAY8_BITMAP 6 -#define GGO_GLYPH_INDEX 128 -#define GGO_UNHINTED 256 -#define GM_COMPATIBLE 1 -#define GM_ADVANCED 2 -#define MM_ANISOTROPIC 8 -#define MM_HIENGLISH 5 -#define MM_HIMETRIC 3 -#define MM_ISOTROPIC 7 -#define MM_LOENGLISH 4 -#define MM_LOMETRIC 2 -#define MM_TEXT 1 -#define MM_TWIPS 6 -#define MM_MAX_FIXEDSCALE MM_TWIPS -#define ABSOLUTE 1 -#define RELATIVE 2 -#define PC_EXPLICIT 2 -#define PC_NOCOLLAPSE 4 -#define PC_RESERVED 1 -#define CLR_NONE 0xffffffff -#define CLR_INVALID CLR_NONE -#define CLR_DEFAULT 0xff000000 -#define PT_MOVETO 6 -#define PT_LINETO 2 -#define PT_BEZIERTO 4 -#define PT_CLOSEFIGURE 1 -#define TT_AVAILABLE 1 -#define TT_ENABLED 2 -#define BLACK_BRUSH 4 -#define DKGRAY_BRUSH 3 -#define GRAY_BRUSH 2 -#define HOLLOW_BRUSH 5 -#define LTGRAY_BRUSH 1 -#define NULL_BRUSH 5 -#define WHITE_BRUSH 0 -#define BLACK_PEN 7 -#define NULL_PEN 8 -#define WHITE_PEN 6 -#define ANSI_FIXED_FONT 11 -#define ANSI_VAR_FONT 12 -#define DEVICE_DEFAULT_FONT 14 -#define DEFAULT_GUI_FONT 17 -#define OEM_FIXED_FONT 10 -#define SYSTEM_FONT 13 -#define SYSTEM_FIXED_FONT 16 -#define DEFAULT_PALETTE 15 -#define SYSPAL_NOSTATIC 2 -#define SYSPAL_STATIC 1 -#define SYSPAL_ERROR 0 -#define TA_BASELINE 24 -#define TA_BOTTOM 8 -#define TA_TOP 0 -#define TA_CENTER 6 -#define TA_LEFT 0 -#define TA_RIGHT 2 -#define TA_RTLREADING 256 -#define TA_NOUPDATECP 0 -#define TA_UPDATECP 1 -#define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING) -#define VTA_BASELINE 24 -#define VTA_CENTER 6 -#define VTA_LEFT TA_BOTTOM -#define VTA_RIGHT TA_TOP -#define VTA_BOTTOM TA_RIGHT -#define VTA_TOP TA_LEFT -#define MWT_IDENTITY 1 -#define MWT_LEFTMULTIPLY 2 -#define MWT_RIGHTMULTIPLY 3 -#define OPAQUE 2 -#define TRANSPARENT 1 -#define BLACKONWHITE 1 -#define WHITEONBLACK 2 -#define COLORONCOLOR 3 -#define HALFTONE 4 -#define MAXSTRETCHBLTMODE 4 -#define STRETCH_ANDSCANS 1 -#define STRETCH_DELETESCANS 3 -#define STRETCH_HALFTONE 4 -#define STRETCH_ORSCANS 2 -#define TCI_SRCCHARSET 1 -#define TCI_SRCCODEPAGE 2 -#define TCI_SRCFONTSIG 3 -#define ICM_ON 2 -#define ICM_OFF 1 -#define ICM_QUERY 3 -#define NEWFRAME 1 -#define ABORTDOC 2 -#define NEXTBAND 3 -#define SETCOLORTABLE 4 -#define GETCOLORTABLE 5 -#define FLUSHOUTPUT 6 -#define DRAFTMODE 7 -#define QUERYESCSUPPORT 8 -#define SETABORTPROC 9 -#define STARTDOC 10 -#define ENDDOC 11 -#define GETPHYSPAGESIZE 12 -#define GETPRINTINGOFFSET 13 -#define GETSCALINGFACTOR 14 -#define MFCOMMENT 15 -#define GETPENWIDTH 16 -#define SETCOPYCOUNT 17 -#define SELECTPAPERSOURCE 18 -#define DEVICEDATA 19 -#define PASSTHROUGH 19 -#define GETTECHNOLGY 20 -#define GETTECHNOLOGY 20 -#define SETLINECAP 21 -#define SETLINEJOIN 22 -#define SETMITERLIMIT 23 -#define BANDINFO 24 -#define DRAWPATTERNRECT 25 -#define GETVECTORPENSIZE 26 -#define GETVECTORBRUSHSIZE 27 -#define ENABLEDUPLEX 28 -#define GETSETPAPERBINS 29 -#define GETSETPRINTORIENT 30 -#define ENUMPAPERBINS 31 -#define SETDIBSCALING 32 -#define EPSPRINTING 33 -#define ENUMPAPERMETRICS 34 -#define GETSETPAPERMETRICS 35 -#define POSTSCRIPT_DATA 37 -#define POSTSCRIPT_IGNORE 38 -#define MOUSETRAILS 39 -#define GETDEVICEUNITS 42 -#define GETEXTENDEDTEXTMETRICS 256 -#define GETEXTENTTABLE 257 -#define GETPAIRKERNTABLE 258 -#define GETTRACKKERNTABLE 259 -#define EXTTEXTOUT 512 -#define GETFACENAME 513 -#define DOWNLOADFACE 514 -#define ENABLERELATIVEWIDTHS 768 -#define ENABLEPAIRKERNING 769 -#define SETKERNTRACK 770 -#define SETALLJUSTVALUES 771 -#define SETCHARSET 772 -#define STRETCHBLT 2048 -#define GETSETSCREENPARAMS 3072 -#define QUERYDIBSUPPORT 3073 -#define BEGIN_PATH 4096 -#define CLIP_TO_PATH 4097 -#define END_PATH 4098 -#define EXT_DEVICE_CAPS 4099 -#define RESTORE_CTM 4100 -#define SAVE_CTM 4101 -#define SET_ARC_DIRECTION 4102 -#define SET_BACKGROUND_COLOR 4103 -#define SET_POLY_MODE 4104 -#define SET_SCREEN_ANGLE 4105 -#define SET_SPREAD 4106 -#define TRANSFORM_CTM 4107 -#define SET_CLIP_BOX 4108 -#define SET_BOUNDS 4109 -#define SET_MIRROR_MODE 4110 -#define OPENCHANNEL 4110 -#define DOWNLOADHEADER 4111 -#define CLOSECHANNEL 4112 -#define POSTSCRIPT_PASSTHROUGH 4115 -#define ENCAPSULATED_POSTSCRIPT 4116 -#define QDI_SETDIBITS 1 -#define QDI_GETDIBITS 2 -#define QDI_DIBTOSCREEN 4 -#define QDI_STRETCHDIB 8 -#define SP_NOTREPORTED 0x4000 -#define PR_JOBSTATUS 0 -#define ASPECT_FILTERING 1 -#define BS_SOLID 0 -#define BS_NULL 1 -#define BS_HOLLOW 1 -#define BS_HATCHED 2 -#define BS_PATTERN 3 -#define BS_INDEXED 4 -#define BS_DIBPATTERN 5 -#define BS_DIBPATTERNPT 6 -#define BS_PATTERN8X8 7 -#define BS_DIBPATTERN8X8 8 -#define LCS_CALIBRATED_RGB 0 -#define LCS_DEVICE_RGB 1 -#define LCS_DEVICE_CMYK 2 -#define LCS_GM_BUSINESS 1 -#define LCS_GM_GRAPHICS 2 -#define LCS_GM_IMAGES 4 -#define RASTER_FONTTYPE 1 -#define DEVICE_FONTTYPE 2 -#define TRUETYPE_FONTTYPE 4 -#define DMORIENT_PORTRAIT 1 -#define DMORIENT_LANDSCAPE 2 -#define DMPAPER_FIRST 1 -#define DMPAPER_LETTER 1 -#define DMPAPER_LETTERSMALL 2 -#define DMPAPER_TABLOID 3 -#define DMPAPER_LEDGER 4 -#define DMPAPER_LEGAL 5 -#define DMPAPER_STATEMENT 6 -#define DMPAPER_EXECUTIVE 7 -#define DMPAPER_A3 8 -#define DMPAPER_A4 9 -#define DMPAPER_A4SMALL 10 -#define DMPAPER_A5 11 -#define DMPAPER_B4 12 -#define DMPAPER_B5 13 -#define DMPAPER_FOLIO 14 -#define DMPAPER_QUARTO 15 -#define DMPAPER_10X14 16 -#define DMPAPER_11X17 17 -#define DMPAPER_NOTE 18 -#define DMPAPER_ENV_9 19 -#define DMPAPER_ENV_10 20 -#define DMPAPER_ENV_11 21 -#define DMPAPER_ENV_12 22 -#define DMPAPER_ENV_14 23 -#define DMPAPER_CSHEET 24 -#define DMPAPER_DSHEET 25 -#define DMPAPER_ESHEET 26 -#define DMPAPER_ENV_DL 27 -#define DMPAPER_ENV_C5 28 -#define DMPAPER_ENV_C3 29 -#define DMPAPER_ENV_C4 30 -#define DMPAPER_ENV_C6 31 -#define DMPAPER_ENV_C65 32 -#define DMPAPER_ENV_B4 33 -#define DMPAPER_ENV_B5 34 -#define DMPAPER_ENV_B6 35 -#define DMPAPER_ENV_ITALY 36 -#define DMPAPER_ENV_MONARCH 37 -#define DMPAPER_ENV_PERSONAL 38 -#define DMPAPER_FANFOLD_US 39 -#define DMPAPER_FANFOLD_STD_GERMAN 40 -#define DMPAPER_FANFOLD_LGL_GERMAN 41 -#define DMPAPER_ISO_B4 42 -#define DMPAPER_JAPANESE_POSTCARD 43 -#define DMPAPER_9X11 44 -#define DMPAPER_10X11 45 -#define DMPAPER_15X11 46 -#define DMPAPER_ENV_INVITE 47 -#define DMPAPER_RESERVED_48 48 -#define DMPAPER_RESERVED_49 49 -#define DMPAPER_LETTER_EXTRA 50 -#define DMPAPER_LEGAL_EXTRA 51 -#define DMPAPER_TABLOID_EXTRA 52 -#define DMPAPER_A4_EXTRA 53 -#define DMPAPER_LETTER_TRANSVERSE 54 -#define DMPAPER_A4_TRANSVERSE 55 -#define DMPAPER_LETTER_EXTRA_TRANSVERSE 56 -#define DMPAPER_A_PLUS 57 -#define DMPAPER_B_PLUS 58 -#define DMPAPER_LETTER_PLUS 59 -#define DMPAPER_A4_PLUS 60 -#define DMPAPER_A5_TRANSVERSE 61 -#define DMPAPER_B5_TRANSVERSE 62 -#define DMPAPER_A3_EXTRA 63 -#define DMPAPER_A5_EXTRA 64 -#define DMPAPER_B5_EXTRA 65 -#define DMPAPER_A2 66 -#define DMPAPER_A3_TRANSVERSE 67 -#define DMPAPER_A3_EXTRA_TRANSVERSE 68 -#define DMPAPER_LAST 68 -#define DMPAPER_USER 256 -#define DMBIN_FIRST 1 -#define DMBIN_UPPER 1 -#define DMBIN_ONLYONE 1 -#define DMBIN_LOWER 2 -#define DMBIN_MIDDLE 3 -#define DMBIN_MANUAL 4 -#define DMBIN_ENVELOPE 5 -#define DMBIN_ENVMANUAL 6 -#define DMBIN_AUTO 7 -#define DMBIN_TRACTOR 8 -#define DMBIN_SMALLFMT 9 -#define DMBIN_LARGEFMT 10 -#define DMBIN_LARGECAPACITY 11 -#define DMBIN_CASSETTE 14 -#define DMBIN_FORMSOURCE 15 -#define DMBIN_LAST 15 -#define DMBIN_USER 256 -#define DMRES_DRAFT (-1) -#define DMRES_LOW (-2) -#define DMRES_MEDIUM (-3) -#define DMRES_HIGH (-4) -#define DMCOLOR_MONOCHROME 1 -#define DMCOLOR_COLOR 2 -#define DMDUP_SIMPLEX 1 -#define DMDUP_VERTICAL 2 -#define DMDUP_HORIZONTAL 3 -#define DMTT_BITMAP 1 -#define DMTT_DOWNLOAD 2 -#define DMTT_SUBDEV 3 -#define DMTT_DOWNLOAD_OUTLINE 4 -#define DMCOLLATE_FALSE 0 -#define DMCOLLATE_TRUE 1 -#define DM_GRAYSCALE 1 -#define DM_INTERLACED 2 -#define DM_UPDATE 1 -#define DM_COPY 2 -#define DM_PROMPT 4 -#define DM_MODIFY 8 -#define DM_IN_BUFFER DM_MODIFY -#define DM_IN_PROMPT DM_PROMPT -#define DM_OUT_BUFFER DM_COPY -#define DM_OUT_DEFAULT DM_UPDATE -#define DM_ORIENTATION 1 -#define DM_PAPERSIZE 2 -#define DM_PAPERLENGTH 4 -#define DM_PAPERWIDTH 8 -#define DM_SCALE 16 -#define DM_COPIES 256 -#define DM_DEFAULTSOURCE 512 -#define DM_PRINTQUALITY 1024 -#define DM_COLOR 2048 -#define DM_DUPLEX 4096 -#define DM_YRESOLUTION 8192 -#define DM_TTOPTION 16384 -#define DM_COLLATE 32768 -#define DM_FORMNAME 65536 -#define DM_LOGPIXELS 0x20000 -#define DM_BITSPERPEL 0x40000 -#define DM_PELSWIDTH 0x80000 -#define DM_PELSHEIGHT 0x100000 -#define DM_DISPLAYFLAGS 0x200000 -#define DM_DISPLAYFREQUENCY 0x400000 -#define DM_ICMMETHOD 0x800000 -#define DM_ICMINTENT 0x1000000 -#define DM_MEDIATYPE 0x2000000 -#define DM_DITHERTYPE 0x4000000 -#define DMICMMETHOD_NONE 1 -#define DMICMMETHOD_SYSTEM 2 -#define DMICMMETHOD_DRIVER 3 -#define DMICMMETHOD_DEVICE 4 -#define DMICMMETHOD_USER 256 -#define DMICM_SATURATE 1 -#define DMICM_CONTRAST 2 -#define DMICM_COLORMETRIC 3 -#define DMICM_USER 256 -#define DMMEDIA_STANDARD 1 -#define DMMEDIA_TRANSPARENCY 2 -#define DMMEDIA_GLOSSY 3 -#define DMMEDIA_USER 256 -#define DMDITHER_NONE 1 -#define DMDITHER_COARSE 2 -#define DMDITHER_FINE 3 -#define DMDITHER_LINEART 4 -#define DMDITHER_ERRORDIFFUSION 5 -#define DMDITHER_RESERVED6 6 -#define DMDITHER_RESERVED7 7 -#define DMDITHER_RESERVED8 8 -#define DMDITHER_RESERVED9 9 -#define DMDITHER_GRAYSCALE 10 -#define DMDITHER_USER 256 -#define GDI_ERROR 0xFFFFFFFF -#define HGDI_ERROR ((HANDLE)GDI_ERROR) -#define TMPF_FIXED_PITCH 1 -#define TMPF_VECTOR 2 -#define TMPF_TRUETYPE 4 -#define TMPF_DEVICE 8 -#define NTM_ITALIC 1 -#define NTM_BOLD 32 -#define NTM_REGULAR 64 -#define TT_POLYGON_TYPE 24 -#define TT_PRIM_LINE 1 -#define TT_PRIM_QSPLINE 2 -#define FONTMAPPER_MAX 10 -#define ENHMETA_STOCK_OBJECT 0x80000000 -#define WGL_FONT_LINES 0 -#define WGL_FONT_POLYGONS 1 -#define LPD_DOUBLEBUFFER 1 -#define LPD_STEREO 2 -#define LPD_SUPPORT_GDI 16 -#define LPD_SUPPORT_OPENGL 32 -#define LPD_SHARE_DEPTH 64 -#define LPD_SHARE_STENCIL 128 -#define LPD_SHARE_ACCUM 256 -#define LPD_SWAP_EXCHANGE 512 -#define LPD_SWAP_COPY 1024 -#define LPD_TRANSPARENT 4096 -#define LPD_TYPE_RGBA 0 -#define LPD_TYPE_COLORINDEX 1 -#define WGL_SWAP_MAIN_PLANE 1 -#define WGL_SWAP_OVERLAY1 2 -#define WGL_SWAP_OVERLAY2 4 -#define WGL_SWAP_OVERLAY3 8 -#define WGL_SWAP_OVERLAY4 16 -#define WGL_SWAP_OVERLAY5 32 -#define WGL_SWAP_OVERLAY6 64 -#define WGL_SWAP_OVERLAY7 128 -#define WGL_SWAP_OVERLAY8 256 -#define WGL_SWAP_OVERLAY9 512 -#define WGL_SWAP_OVERLAY10 1024 -#define WGL_SWAP_OVERLAY11 2048 -#define WGL_SWAP_OVERLAY12 4096 -#define WGL_SWAP_OVERLAY13 8192 -#define WGL_SWAP_OVERLAY14 16384 -#define WGL_SWAP_OVERLAY15 32768 -#define WGL_SWAP_UNDERLAY1 65536 -#define WGL_SWAP_UNDERLAY2 0x20000 -#define WGL_SWAP_UNDERLAY3 0x40000 -#define WGL_SWAP_UNDERLAY4 0x80000 -#define WGL_SWAP_UNDERLAY5 0x100000 -#define WGL_SWAP_UNDERLAY6 0x200000 -#define WGL_SWAP_UNDERLAY7 0x400000 -#define WGL_SWAP_UNDERLAY8 0x800000 -#define WGL_SWAP_UNDERLAY9 0x1000000 -#define WGL_SWAP_UNDERLAY10 0x2000000 -#define WGL_SWAP_UNDERLAY11 0x4000000 -#define WGL_SWAP_UNDERLAY12 0x8000000 -#define WGL_SWAP_UNDERLAY13 0x10000000 -#define WGL_SWAP_UNDERLAY14 0x20000000 -#define WGL_SWAP_UNDERLAY15 0x40000000 -#define AC_SRC_OVER 0 -#define LAYOUT_RTL 1 -#define LAYOUT_BITMAPORIENTATIONPRESERVED 8 - -#ifndef RC_INVOKED -typedef struct _ABC { - int abcA; - UINT abcB; - int abcC; -} ABC,*LPABC; -typedef struct _ABCFLOAT { - FLOAT abcfA; - FLOAT abcfB; - FLOAT abcfC; -} ABCFLOAT,*LPABCFLOAT; -typedef struct tagBITMAP { - LONG bmType; - LONG bmWidth; - LONG bmHeight; - LONG bmWidthBytes; - WORD bmPlanes; - WORD bmBitsPixel; - LPVOID bmBits; -} BITMAP,*PBITMAP,*LPBITMAP; -typedef struct tagBITMAPCOREHEADER { - DWORD bcSize; - WORD bcWidth; - WORD bcHeight; - WORD bcPlanes; - WORD bcBitCount; -} BITMAPCOREHEADER,*LPBITMAPCOREHEADER,*PBITMAPCOREHEADER; -#pragma pack(push,1) -typedef struct tagRGBTRIPLE { - BYTE rgbtBlue; - BYTE rgbtGreen; - BYTE rgbtRed; -} RGBTRIPLE; -#pragma pack(pop) -#pragma pack(push,2) -typedef struct tagBITMAPFILEHEADER { - WORD bfType; - DWORD bfSize; - WORD bfReserved1; - WORD bfReserved2; - DWORD bfOffBits; -} BITMAPFILEHEADER,*LPBITMAPFILEHEADER,*PBITMAPFILEHEADER; -#pragma pack(pop) -typedef struct _BITMAPCOREINFO { - BITMAPCOREHEADER bmciHeader; - RGBTRIPLE bmciColors[1]; -} BITMAPCOREINFO,*LPBITMAPCOREINFO,*PBITMAPCOREINFO; -typedef struct tagBITMAPINFOHEADER{ - DWORD biSize; - LONG biWidth; - LONG biHeight; - WORD biPlanes; - WORD biBitCount; - DWORD biCompression; - DWORD biSizeImage; - LONG biXPelsPerMeter; - LONG biYPelsPerMeter; - DWORD biClrUsed; - DWORD biClrImportant; -} BITMAPINFOHEADER,*LPBITMAPINFOHEADER,*PBITMAPINFOHEADER; -typedef struct tagRGBQUAD { - BYTE rgbBlue; - BYTE rgbGreen; - BYTE rgbRed; - BYTE rgbReserved; -} RGBQUAD; -typedef struct tagBITMAPINFO { - BITMAPINFOHEADER bmiHeader; - RGBQUAD bmiColors[1]; -} BITMAPINFO,*LPBITMAPINFO,*PBITMAPINFO; -typedef long FXPT16DOT16,*LPFXPT16DOT16; -typedef long FXPT2DOT30,*LPFXPT2DOT30; -typedef struct tagCIEXYZ { - FXPT2DOT30 ciexyzX; - FXPT2DOT30 ciexyzY; - FXPT2DOT30 ciexyzZ; -} CIEXYZ,*LPCIEXYZ; -typedef struct tagCIEXYZTRIPLE { - CIEXYZ ciexyzRed; - CIEXYZ ciexyzGreen; - CIEXYZ ciexyzBlue; -} CIEXYZTRIPLE,*LPCIEXYZTRIPLE; -typedef struct { - DWORD bV4Size; - LONG bV4Width; - LONG bV4Height; - WORD bV4Planes; - WORD bV4BitCount; - DWORD bV4V4Compression; - DWORD bV4SizeImage; - LONG bV4XPelsPerMeter; - LONG bV4YPelsPerMeter; - DWORD bV4ClrUsed; - DWORD bV4ClrImportant; - DWORD bV4RedMask; - DWORD bV4GreenMask; - DWORD bV4BlueMask; - DWORD bV4AlphaMask; - DWORD bV4CSType; - CIEXYZTRIPLE bV4Endpoints; - DWORD bV4GammaRed; - DWORD bV4GammaGreen; - DWORD bV4GammaBlue; -} BITMAPV4HEADER,*LPBITMAPV4HEADER,*PBITMAPV4HEADER; -typedef struct tagFONTSIGNATURE { - DWORD fsUsb[4]; - DWORD fsCsb[2]; -} FONTSIGNATURE,*LPFONTSIGNATURE; -typedef struct { - UINT ciCharset; - UINT ciACP; - FONTSIGNATURE fs; -} CHARSETINFO,*LPCHARSETINFO; -typedef struct tagCOLORADJUSTMENT { - WORD caSize; - WORD caFlags; - WORD caIlluminantIndex; - WORD caRedGamma; - WORD caGreenGamma; - WORD caBlueGamma; - WORD caReferenceBlack; - WORD caReferenceWhite; - SHORT caContrast; - SHORT caBrightness; - SHORT caColorfulness; - SHORT caRedGreenTint; -} COLORADJUSTMENT,*LPCOLORADJUSTMENT; -typedef struct _devicemodeA { - BYTE dmDeviceName[CCHDEVICENAME]; - WORD dmSpecVersion; - WORD dmDriverVersion; - WORD dmSize; - WORD dmDriverExtra; - DWORD dmFields; - short dmOrientation; - short dmPaperSize; - short dmPaperLength; - short dmPaperWidth; - short dmScale; - short dmCopies; - short dmDefaultSource; - short dmPrintQuality; - short dmColor; - short dmDuplex; - short dmYResolution; - short dmTTOption; - short dmCollate; - BYTE dmFormName[CCHFORMNAME]; - WORD dmLogPixels; - DWORD dmBitsPerPel; - DWORD dmPelsWidth; - DWORD dmPelsHeight; - DWORD dmDisplayFlags; - DWORD dmDisplayFrequency; - DWORD dmICMMethod; - DWORD dmICMIntent; - DWORD dmMediaType; - DWORD dmDitherType; - DWORD dmICCManufacturer; - DWORD dmICCModel; -} DEVMODEA,*LPDEVMODEA,*PDEVMODEA; -typedef struct _devicemodeW { - WCHAR dmDeviceName[CCHDEVICENAME]; - WORD dmSpecVersion; - WORD dmDriverVersion; - WORD dmSize; - WORD dmDriverExtra; - DWORD dmFields; - short dmOrientation; - short dmPaperSize; - short dmPaperLength; - short dmPaperWidth; - short dmScale; - short dmCopies; - short dmDefaultSource; - short dmPrintQuality; - short dmColor; - short dmDuplex; - short dmYResolution; - short dmTTOption; - short dmCollate; - WCHAR dmFormName[CCHFORMNAME]; - WORD dmLogPixels; - DWORD dmBitsPerPel; - DWORD dmPelsWidth; - DWORD dmPelsHeight; - DWORD dmDisplayFlags; - DWORD dmDisplayFrequency; - DWORD dmICMMethod; - DWORD dmICMIntent; - DWORD dmMediaType; - DWORD dmDitherType; - DWORD dmICCManufacturer; - DWORD dmICCModel; -} DEVMODEW,*LPDEVMODEW,*PDEVMODEW; -typedef struct tagDIBSECTION { - BITMAP dsBm; - BITMAPINFOHEADER dsBmih; - DWORD dsBitfields[3]; - HANDLE dshSection; - DWORD dsOffset; -} DIBSECTION; -typedef struct _DOCINFOA { - int cbSize; - LPCTSTR lpszDocName; - LPCTSTR lpszOutput; - LPCTSTR lpszDatatype; - DWORD fwType; -} DOCINFOA,*LPDOCINFOA; -typedef struct _DOCINFOW { - int cbSize; - LPCWSTR lpszDocName; - LPCWSTR lpszOutput; - LPCWSTR lpszDatatype; - DWORD fwType; -} DOCINFOW,*LPDOCINFOW; -typedef struct tagEMR { - DWORD iType; - DWORD nSize; -} EMR,*PEMR; -typedef struct tagEMRANGLEARC { - EMR emr; - POINTL ptlCenter; - DWORD nRadius; - FLOAT eStartAngle; - FLOAT eSweepAngle; -} EMRANGLEARC,*PEMRANGLEARC; -typedef struct tagEMRARC { - EMR emr; - RECTL rclBox; - POINTL ptlStart; - POINTL ptlEnd; -} EMRARC,*PEMRARC,EMRARCTO,*PEMRARCTO,EMRCHORD,*PEMRCHORD,EMRPIE,*PEMRPIE; -typedef struct _XFORM { - FLOAT eM11; - FLOAT eM12; - FLOAT eM21; - FLOAT eM22; - FLOAT eDx; - FLOAT eDy; -} XFORM,*LPXFORM; -typedef struct tagEMRBITBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - DWORD offBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; -} EMRBITBLT,*PEMRBITBLT; -typedef struct tagLOGBRUSH { - UINT lbStyle; - COLORREF lbColor; - LONG lbHatch; -} LOGBRUSH,*LPLOGBRUSH; -typedef LOGBRUSH PATTERN,*PPATTERN,*LPPATTERN; -typedef struct tagEMRCREATEBRUSHINDIRECT { - EMR emr; - DWORD ihBrush; - LOGBRUSH lb; -} EMRCREATEBRUSHINDIRECT,*PEMRCREATEBRUSHINDIRECT; -typedef LONG LCSCSTYPE; -typedef LONG LCSGAMUTMATCH; -typedef struct tagLOGCOLORSPACEA { - DWORD lcsSignature; - DWORD lcsVersion; - DWORD lcsSize; - LCSCSTYPE lcsCSType; - LCSGAMUTMATCH lcsIntent; - CIEXYZTRIPLE lcsEndpoints; - DWORD lcsGammaRed; - DWORD lcsGammaGreen; - DWORD lcsGammaBlue; - CHAR lcsFilename[MAX_PATH]; -} LOGCOLORSPACEA,*LPLOGCOLORSPACEA; -typedef struct tagLOGCOLORSPACEW { - DWORD lcsSignature; - DWORD lcsVersion; - DWORD lcsSize; - LCSCSTYPE lcsCSType; - LCSGAMUTMATCH lcsIntent; - CIEXYZTRIPLE lcsEndpoints; - DWORD lcsGammaRed; - DWORD lcsGammaGreen; - DWORD lcsGammaBlue; - WCHAR lcsFilename[MAX_PATH]; -} LOGCOLORSPACEW,*LPLOGCOLORSPACEW; -typedef struct tagEMRCREATECOLORSPACE { - EMR emr; - DWORD ihCS; - LOGCOLORSPACEW lcs; -} EMRCREATECOLORSPACE,*PEMRCREATECOLORSPACE; -typedef struct tagEMRCREATEDIBPATTERNBRUSHPT { - EMR emr; - DWORD ihBrush; - DWORD iUsage; - DWORD offBmi; - DWORD cbBmi; - DWORD offBits; - DWORD cbBits; -} EMRCREATEDIBPATTERNBRUSHPT,*PEMRCREATEDIBPATTERNBRUSHPT; -typedef struct tagEMRCREATEMONOBRUSH { - EMR emr; - DWORD ihBrush; - DWORD iUsage; - DWORD offBmi; - DWORD cbBmi; - DWORD offBits; - DWORD cbBits; -} EMRCREATEMONOBRUSH,*PEMRCREATEMONOBRUSH; -typedef struct tagPALETTEENTRY { - BYTE peRed; - BYTE peGreen; - BYTE peBlue; - BYTE peFlags; -} PALETTEENTRY,*LPPALETTEENTRY,*PPALETTEENTRY; -typedef struct tagLOGPALETTE { - WORD palVersion; - WORD palNumEntries; - PALETTEENTRY palPalEntry[1]; -} LOGPALETTE,*NPLOGPALETTE,*PLOGPALETTE,*LPLOGPALETTE; -typedef struct tagEMRCREATEPALETTE { - EMR emr; - DWORD ihPal; - LOGPALETTE lgpl; -} EMRCREATEPALETTE,*PEMRCREATEPALETTE; -typedef struct tagLOGPEN { - UINT lopnStyle; - POINT lopnWidth; - COLORREF lopnColor; -} LOGPEN,*LPLOGPEN; -typedef struct tagEMRCREATEPEN { - EMR emr; - DWORD ihPen; - LOGPEN lopn; -} EMRCREATEPEN,*PEMRCREATEPEN; -typedef struct tagEMRELLIPSE { - EMR emr; - RECTL rclBox; -} EMRELLIPSE,*PEMRELLIPSE,EMRRECTANGLE,*PEMRRECTANGLE; -typedef struct tagEMREOF { - EMR emr; - DWORD nPalEntries; - DWORD offPalEntries; - DWORD nSizeLast; -} EMREOF,*PEMREOF; -typedef struct tagEMREXCLUDECLIPRECT { - EMR emr; - RECTL rclClip; -} EMREXCLUDECLIPRECT,*PEMREXCLUDECLIPRECT,EMRINTERSECTCLIPRECT,*PEMRINTERSECTCLIPRECT; -typedef struct tagPANOSE { - BYTE bFamilyType; - BYTE bSerifStyle; - BYTE bWeight; - BYTE bProportion; - BYTE bContrast; - BYTE bStrokeVariation; - BYTE bArmStyle; - BYTE bLetterform; - BYTE bMidline; - BYTE bXHeight; -} PANOSE; -typedef struct tagLOGFONTA { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - CHAR lfFaceName[LF_FACESIZE]; -} LOGFONTA,*PLOGFONTA,*LPLOGFONTA; -typedef struct tagLOGFONTW { - LONG lfHeight; - LONG lfWidth; - LONG lfEscapement; - LONG lfOrientation; - LONG lfWeight; - BYTE lfItalic; - BYTE lfUnderline; - BYTE lfStrikeOut; - BYTE lfCharSet; - BYTE lfOutPrecision; - BYTE lfClipPrecision; - BYTE lfQuality; - BYTE lfPitchAndFamily; - WCHAR lfFaceName[LF_FACESIZE]; -} LOGFONTW,*PLOGFONTW,*LPLOGFONTW; -typedef struct tagEXTLOGFONTA { - LOGFONTA elfLogFont; - BYTE elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; - DWORD elfVersion; - DWORD elfStyleSize; - DWORD elfMatch; - DWORD elfReserved; - BYTE elfVendorId[ELF_VENDOR_SIZE]; - DWORD elfCulture; - PANOSE elfPanose; -} EXTLOGFONTA,*PEXTLOGFONTA,*LPEXTLOGFONTA; -typedef struct tagEXTLOGFONTW { - LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - WCHAR elfStyle[LF_FACESIZE]; - DWORD elfVersion; - DWORD elfStyleSize; - DWORD elfMatch; - DWORD elfReserved; - BYTE elfVendorId[ELF_VENDOR_SIZE]; - DWORD elfCulture; - PANOSE elfPanose; -} EXTLOGFONTW,*PEXTLOGFONTW,*LPEXTLOGFONTW; -typedef struct tagEMREXTCREATEFONTINDIRECTW { - EMR emr; - DWORD ihFont; - EXTLOGFONTW elfw; -} EMREXTCREATEFONTINDIRECTW,*PEMREXTCREATEFONTINDIRECTW; -typedef struct tagEXTLOGPEN { - UINT elpPenStyle; - UINT elpWidth; - UINT elpBrushStyle; - COLORREF elpColor; - LONG elpHatch; - DWORD elpNumEntries; - DWORD elpStyleEntry[1]; -} EXTLOGPEN,*PEXTLOGPEN,*LPEXTLOGPEN; -typedef struct tagEMREXTCREATEPEN { - EMR emr; - DWORD ihPen; - DWORD offBmi; - DWORD cbBmi; - DWORD offBits; - DWORD cbBits; - EXTLOGPEN elp; -} EMREXTCREATEPEN,*PEMREXTCREATEPEN; -typedef struct tagEMREXTFLOODFILL { - EMR emr; - POINTL ptlStart; - COLORREF crColor; - DWORD iMode; -} EMREXTFLOODFILL,*PEMREXTFLOODFILL; -typedef struct tagEMREXTSELECTCLIPRGN { - EMR emr; - DWORD cbRgnData; - DWORD iMode; - BYTE RgnData[1]; -} EMREXTSELECTCLIPRGN,*PEMREXTSELECTCLIPRGN; -typedef struct tagEMRTEXT { - POINTL ptlReference; - DWORD nChars; - DWORD offString; - DWORD fOptions; - RECTL rcl; - DWORD offDx; -} EMRTEXT,*PEMRTEXT; -typedef struct tagEMREXTTEXTOUTA { - EMR emr; - RECTL rclBounds; - DWORD iGraphicsMode; - FLOAT exScale; - FLOAT eyScale; - EMRTEXT emrtext; -} EMREXTTEXTOUTA,*PEMREXTTEXTOUTA,EMREXTTEXTOUTW,*PEMREXTTEXTOUTW; -typedef struct tagEMRFILLPATH { - EMR emr; - RECTL rclBounds; -} EMRFILLPATH,*PEMRFILLPATH,EMRSTROKEANDFILLPATH,*PEMRSTROKEANDFILLPATH,EMRSTROKEPATH,*PEMRSTROKEPATH; -typedef struct tagEMRFILLRGN { - EMR emr; - RECTL rclBounds; - DWORD cbRgnData; - DWORD ihBrush; - BYTE RgnData[1]; -} EMRFILLRGN,*PEMRFILLRGN; -typedef struct tagEMRFORMAT { - DWORD dSignature; - DWORD nVersion; - DWORD cbData; - DWORD offData; -} EMRFORMAT; -typedef struct tagEMRFRAMERGN { - EMR emr; - RECTL rclBounds; - DWORD cbRgnData; - DWORD ihBrush; - SIZEL szlStroke; - BYTE RgnData[1]; -} EMRFRAMERGN,*PEMRFRAMERGN; -typedef struct tagEMRGDICOMMENT { - EMR emr; - DWORD cbData; - BYTE Data[1]; -} EMRGDICOMMENT,*PEMRGDICOMMENT; -typedef struct tagEMRINVERTRGN { - EMR emr; - RECTL rclBounds; - DWORD cbRgnData; - BYTE RgnData[1]; -} EMRINVERTRGN,*PEMRINVERTRGN,EMRPAINTRGN,*PEMRPAINTRGN; -typedef struct tagEMRLINETO { - EMR emr; - POINTL ptl; -} EMRLINETO,*PEMRLINETO,EMRMOVETOEX,*PEMRMOVETOEX; -typedef struct tagEMRMASKBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG xMask; - LONG yMask; - DWORD iUsageMask; - DWORD offBmiMask; - DWORD cbBmiMask; - DWORD offBitsMask; - DWORD cbBitsMask; -} EMRMASKBLT,*PEMRMASKBLT; -typedef struct tagEMRMODIFYWORLDTRANSFORM { - EMR emr; - XFORM xform; - DWORD iMode; -} EMRMODIFYWORLDTRANSFORM,*PEMRMODIFYWORLDTRANSFORM; -typedef struct tagEMROFFSETCLIPRGN { - EMR emr; - POINTL ptlOffset; -} EMROFFSETCLIPRGN,*PEMROFFSETCLIPRGN; -typedef struct tagEMRPLGBLT { - EMR emr; - RECTL rclBounds; - POINTL aptlDest[3]; - LONG xSrc; - LONG ySrc; - LONG cxSrc; - LONG cySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG xMask; - LONG yMask; - DWORD iUsageMask; - DWORD offBmiMask; - DWORD cbBmiMask; - DWORD offBitsMask; - DWORD cbBitsMask; -} EMRPLGBLT,*PEMRPLGBLT; -typedef struct tagEMRPOLYDRAW { - EMR emr; - RECTL rclBounds; - DWORD cptl; - POINTL aptl[1]; - BYTE abTypes[1]; -} EMRPOLYDRAW,*PEMRPOLYDRAW; -typedef struct tagEMRPOLYDRAW16 { - EMR emr; - RECTL rclBounds; - DWORD cpts; - POINTS apts[1]; - BYTE abTypes[1]; -} EMRPOLYDRAW16,*PEMRPOLYDRAW16; -typedef struct tagEMRPOLYLINE { - EMR emr; - RECTL rclBounds; - DWORD cptl; - POINTL aptl[1]; -} EMRPOLYLINE,*PEMRPOLYLINE,EMRPOLYBEZIER,*PEMRPOLYBEZIER,EMRPOLYGON,*PEMRPOLYGON,EMRPOLYBEZIERTO,*PEMRPOLYBEZIERTO,EMRPOLYLINETO,*PEMRPOLYLINETO; -typedef struct tagEMRPOLYLINE16 { - EMR emr; - RECTL rclBounds; - DWORD cpts; - POINTL apts[1]; -} EMRPOLYLINE16,*PEMRPOLYLINE16,EMRPOLYBEZIER16,*PEMRPOLYBEZIER16,EMRPOLYGON16,*PEMRPOLYGON16,EMRPOLYBEZIERTO16,*PEMRPOLYBEZIERTO16,EMRPOLYLINETO16,*PEMRPOLYLINETO16; -typedef struct tagEMRPOLYPOLYLINE { - EMR emr; - RECTL rclBounds; - DWORD nPolys; - DWORD cptl; - DWORD aPolyCounts[1]; - POINTL aptl[1]; -} EMRPOLYPOLYLINE,*PEMRPOLYPOLYLINE,EMRPOLYPOLYGON,*PEMRPOLYPOLYGON; -typedef struct tagEMRPOLYPOLYLINE16 { - EMR emr; - RECTL rclBounds; - DWORD nPolys; - DWORD cpts; - DWORD aPolyCounts[1]; - POINTS apts[1]; -} EMRPOLYPOLYLINE16,*PEMRPOLYPOLYLINE16,EMRPOLYPOLYGON16,*PEMRPOLYPOLYGON16; -typedef struct tagEMRPOLYTEXTOUTA { - EMR emr; - RECTL rclBounds; - DWORD iGraphicsMode; - FLOAT exScale; - FLOAT eyScale; - LONG cStrings; - EMRTEXT aemrtext[1]; -} EMRPOLYTEXTOUTA,*PEMRPOLYTEXTOUTA,EMRPOLYTEXTOUTW,*PEMRPOLYTEXTOUTW; -typedef struct tagEMRRESIZEPALETTE { - EMR emr; - DWORD ihPal; - DWORD cEntries; -} EMRRESIZEPALETTE,*PEMRRESIZEPALETTE; -typedef struct tagEMRRESTOREDC { - EMR emr; - LONG iRelative; -} EMRRESTOREDC,*PEMRRESTOREDC; -typedef struct tagEMRROUNDRECT { - EMR emr; - RECTL rclBox; - SIZEL szlCorner; -} EMRROUNDRECT,*PEMRROUNDRECT; -typedef struct tagEMRSCALEVIEWPORTEXTEX { - EMR emr; - LONG xNum; - LONG xDenom; - LONG yNum; - LONG yDenom; -} EMRSCALEVIEWPORTEXTEX,*PEMRSCALEVIEWPORTEXTEX,EMRSCALEWINDOWEXTEX,*PEMRSCALEWINDOWEXTEX; -typedef struct tagEMRSELECTCOLORSPACE { - EMR emr; - DWORD ihCS; -} EMRSELECTCOLORSPACE,*PEMRSELECTCOLORSPACE,EMRDELETECOLORSPACE,*PEMRDELETECOLORSPACE; -typedef struct tagEMRSELECTOBJECT { - EMR emr; - DWORD ihObject; -} EMRSELECTOBJECT,*PEMRSELECTOBJECT,EMRDELETEOBJECT,*PEMRDELETEOBJECT; -typedef struct tagEMRSELECTPALETTE { - EMR emr; - DWORD ihPal; -} EMRSELECTPALETTE,*PEMRSELECTPALETTE; -typedef struct tagEMRSETARCDIRECTION { - EMR emr; - DWORD iArcDirection; -} EMRSETARCDIRECTION,*PEMRSETARCDIRECTION; -typedef struct tagEMRSETTEXTCOLOR { - EMR emr; - COLORREF crColor; -} EMRSETBKCOLOR,*PEMRSETBKCOLOR,EMRSETTEXTCOLOR,*PEMRSETTEXTCOLOR; -typedef struct tagEMRSETCOLORADJUSTMENT { - EMR emr; - COLORADJUSTMENT ColorAdjustment; -} EMRSETCOLORADJUSTMENT,*PEMRSETCOLORADJUSTMENT; -typedef struct tagEMRSETDIBITSTODEVICE { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG xSrc; - LONG ySrc; - LONG cxSrc; - LONG cySrc; - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - DWORD iUsageSrc; - DWORD iStartScan; - DWORD cScans; -} EMRSETDIBITSTODEVICE,*PEMRSETDIBITSTODEVICE; -typedef struct tagEMRSETMAPPERFLAGS { - EMR emr; - DWORD dwFlags; -} EMRSETMAPPERFLAGS,*PEMRSETMAPPERFLAGS; -typedef struct tagEMRSETMITERLIMIT { - EMR emr; - FLOAT eMiterLimit; -} EMRSETMITERLIMIT,*PEMRSETMITERLIMIT; -typedef struct tagEMRSETPALETTEENTRIES { - EMR emr; - DWORD ihPal; - DWORD iStart; - DWORD cEntries; - PALETTEENTRY aPalEntries[1]; -} EMRSETPALETTEENTRIES,*PEMRSETPALETTEENTRIES; -typedef struct tagEMRSETPIXELV { - EMR emr; - POINTL ptlPixel; - COLORREF crColor; -} EMRSETPIXELV,*PEMRSETPIXELV; -typedef struct tagEMRSETVIEWPORTEXTEX { - EMR emr; - SIZEL szlExtent; -} EMRSETVIEWPORTEXTEX,*PEMRSETVIEWPORTEXTEX,EMRSETWINDOWEXTEX,*PEMRSETWINDOWEXTEX; -typedef struct tagEMRSETVIEWPORTORGEX { - EMR emr; - POINTL ptlOrigin; -} EMRSETVIEWPORTORGEX,*PEMRSETVIEWPORTORGEX,EMRSETWINDOWORGEX,*PEMRSETWINDOWORGEX,EMRSETBRUSHORGEX,*PEMRSETBRUSHORGEX; -typedef struct tagEMRSETWORLDTRANSFORM { - EMR emr; - XFORM xform; -} EMRSETWORLDTRANSFORM,*PEMRSETWORLDTRANSFORM; -typedef struct tagEMRSTRETCHBLT { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG cxDest; - LONG cyDest; - DWORD dwRop; - LONG xSrc; - LONG ySrc; - XFORM xformSrc; - COLORREF crBkColorSrc; - DWORD iUsageSrc; - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - LONG cxSrc; - LONG cySrc; -} EMRSTRETCHBLT,*PEMRSTRETCHBLT; -typedef struct tagEMRSTRETCHDIBITS { - EMR emr; - RECTL rclBounds; - LONG xDest; - LONG yDest; - LONG xSrc; - LONG ySrc; - LONG cxSrc; - LONG cySrc; - DWORD offBmiSrc; - DWORD cbBmiSrc; - DWORD offBitsSrc; - DWORD cbBitsSrc; - DWORD iUsageSrc; - DWORD dwRop; - LONG cxDest; - LONG cyDest; -} EMRSTRETCHDIBITS,*PEMRSTRETCHDIBITS; -typedef struct tagABORTPATH { - EMR emr; -} EMRABORTPATH,*PEMRABORTPATH,EMRBEGINPATH,*PEMRBEGINPATH,EMRENDPATH,*PEMRENDPATH,EMRCLOSEFIGURE,*PEMRCLOSEFIGURE,EMRFLATTENPATH,*PEMRFLATTENPATH,EMRWIDENPATH,*PEMRWIDENPATH,EMRSETMETARGN,*PEMRSETMETARGN,EMRSAVEDC,*PEMRSAVEDC,EMRREALIZEPALETTE,*PEMRREALIZEPALETTE; -typedef struct tagEMRSELECTCLIPPATH { - EMR emr; - DWORD iMode; -} EMRSELECTCLIPPATH,*PEMRSELECTCLIPPATH,EMRSETBKMODE,*PEMRSETBKMODE,EMRSETMAPMODE,*PEMRSETMAPMODE,EMRSETPOLYFILLMODE,*PEMRSETPOLYFILLMODE,EMRSETROP2,*PEMRSETROP2,EMRSETSTRETCHBLTMODE,*PEMRSETSTRETCHBLTMODE,EMRSETTEXTALIGN,*PEMRSETTEXTALIGN,EMRENABLEICM,*PEMRENABLEICM; -#pragma pack(push,2) -typedef struct tagMETAHEADER { - WORD mtType; - WORD mtHeaderSize; - WORD mtVersion; - DWORD mtSize; - WORD mtNoObjects; - DWORD mtMaxRecord; - WORD mtNoParameters; -} METAHEADER,*PMETAHEADER,*LPMETAHEADER; -#pragma pack(pop) -typedef struct tagENHMETAHEADER { - DWORD iType; - DWORD nSize; - RECTL rclBounds; - RECTL rclFrame; - DWORD dSignature; - DWORD nVersion; - DWORD nBytes; - DWORD nRecords; - WORD nHandles; - WORD sReserved; - DWORD nDescription; - DWORD offDescription; - DWORD nPalEntries; - SIZEL szlDevice; - SIZEL szlMillimeters; -} ENHMETAHEADER,*LPENHMETAHEADER; -typedef struct tagMETARECORD { - DWORD rdSize; - WORD rdFunction; - WORD rdParm[1]; -} METARECORD,*PMETARECORD,*LPMETARECORD; -typedef struct tagENHMETARECORD { - DWORD iType; - DWORD nSize; - DWORD dParm[1]; -} ENHMETARECORD,*LPENHMETARECORD; -typedef struct tagHANDLETABLE { - HGDIOBJ objectHandle[1]; -} HANDLETABLE,*LPHANDLETABLE; -typedef struct tagTEXTMETRICA { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - BYTE tmFirstChar; - BYTE tmLastChar; - BYTE tmDefaultChar; - BYTE tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; -} TEXTMETRICA,*PTEXTMETRICA,*LPTEXTMETRICA; -typedef struct tagTEXTMETRICW { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - WCHAR tmFirstChar; - WCHAR tmLastChar; - WCHAR tmDefaultChar; - WCHAR tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; -} TEXTMETRICW,*PTEXTMETRICW,*LPTEXTMETRICW; -typedef struct _RGNDATAHEADER { - DWORD dwSize; - DWORD iType; - DWORD nCount; - DWORD nRgnSize; - RECT rcBound; -} RGNDATAHEADER; -typedef struct _RGNDATA { - RGNDATAHEADER rdh; - char Buffer[1]; -} RGNDATA,*LPRGNDATA; -/* for GetRandomRgn */ -#define SYSRGN 4 -typedef struct tagGCP_RESULTSA { - DWORD lStructSize; - LPSTR lpOutString; - UINT *lpOrder; - INT *lpDx; - INT *lpCaretPos; - LPSTR lpClass; - UINT *lpGlyphs; - UINT nGlyphs; - UINT nMaxFit; -} GCP_RESULTSA,*LPGCP_RESULTSA; -typedef struct tagGCP_RESULTSW { - DWORD lStructSize; - LPWSTR lpOutString; - UINT *lpOrder; - INT *lpDx; - INT *lpCaretPos; - LPWSTR lpClass; - UINT *lpGlyphs; - UINT nGlyphs; - UINT nMaxFit; -} GCP_RESULTSW,*LPGCP_RESULTSW; -typedef struct _GLYPHMETRICS { - UINT gmBlackBoxX; - UINT gmBlackBoxY; - POINT gmptGlyphOrigin; - short gmCellIncX; - short gmCellIncY; -} GLYPHMETRICS,*LPGLYPHMETRICS; -typedef struct tagKERNINGPAIR { - WORD wFirst; - WORD wSecond; - int iKernAmount; -} KERNINGPAIR,*LPKERNINGPAIR; -typedef struct _FIXED { - WORD fract; - short value; -} FIXED; -typedef struct _MAT2 { - FIXED eM11; - FIXED eM12; - FIXED eM21; - FIXED eM22; -} MAT2,*LPMAT2; -typedef struct _OUTLINETEXTMETRICA { - UINT otmSize; - TEXTMETRICA otmTextMetrics; - BYTE otmFiller; - PANOSE otmPanoseNumber; - UINT otmfsSelection; - UINT otmfsType; - int otmsCharSlopeRise; - int otmsCharSlopeRun; - int otmItalicAngle; - UINT otmEMSquare; - int otmAscent; - int otmDescent; - UINT otmLineGap; - UINT otmsCapEmHeight; - UINT otmsXHeight; - RECT otmrcFontBox; - int otmMacAscent; - int otmMacDescent; - UINT otmMacLineGap; - UINT otmusMinimumPPEM; - POINT otmptSubscriptSize; - POINT otmptSubscriptOffset; - POINT otmptSuperscriptSize; - POINT otmptSuperscriptOffset; - UINT otmsStrikeoutSize; - int otmsStrikeoutPosition; - int otmsUnderscoreSize; - int otmsUnderscorePosition; - PSTR otmpFamilyName; - PSTR otmpFaceName; - PSTR otmpStyleName; - PSTR otmpFullName; -} OUTLINETEXTMETRICA,*POUTLINETEXTMETRICA,*LPOUTLINETEXTMETRICA; -typedef struct _OUTLINETEXTMETRICW { - UINT otmSize; - TEXTMETRICW otmTextMetrics; - BYTE otmFiller; - PANOSE otmPanoseNumber; - UINT otmfsSelection; - UINT otmfsType; - int otmsCharSlopeRise; - int otmsCharSlopeRun; - int otmItalicAngle; - UINT otmEMSquare; - int otmAscent; - int otmDescent; - UINT otmLineGap; - UINT otmsCapEmHeight; - UINT otmsXHeight; - RECT otmrcFontBox; - int otmMacAscent; - int otmMacDescent; - UINT otmMacLineGap; - UINT otmusMinimumPPEM; - POINT otmptSubscriptSize; - POINT otmptSubscriptOffset; - POINT otmptSuperscriptSize; - POINT otmptSuperscriptOffset; - UINT otmsStrikeoutSize; - int otmsStrikeoutPosition; - int otmsUnderscoreSize; - int otmsUnderscorePosition; - PSTR otmpFamilyName; - PSTR otmpFaceName; - PSTR otmpStyleName; - PSTR otmpFullName; -} OUTLINETEXTMETRICW,*POUTLINETEXTMETRICW,*LPOUTLINETEXTMETRICW; -typedef struct _RASTERIZER_STATUS { - short nSize; - short wFlags; - short nLanguageID; -} RASTERIZER_STATUS,*LPRASTERIZER_STATUS; -typedef struct _POLYTEXTA { - int x; - int y; - UINT n; - LPCSTR lpstr; - UINT uiFlags; - RECT rcl; - int *pdx; -} POLYTEXTA; -typedef struct _POLYTEXTW { - int x; - int y; - UINT n; - LPCWSTR lpstr; - UINT uiFlags; - RECT rcl; - int *pdx; -} POLYTEXTW; -typedef struct tagPIXELFORMATDESCRIPTOR { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerType; - BYTE bReserved; - DWORD dwLayerMask; - DWORD dwVisibleMask; - DWORD dwDamageMask; -} PIXELFORMATDESCRIPTOR,*PPIXELFORMATDESCRIPTOR,*LPPIXELFORMATDESCRIPTOR; -typedef struct tagMETAFILEPICT { - LONG mm; - LONG xExt; - LONG yExt; - HMETAFILE hMF; -} METAFILEPICT,*LPMETAFILEPICT; -typedef struct tagLOCALESIGNATURE { - DWORD lsUsb[4]; - DWORD lsCsbDefault[2]; - DWORD lsCsbSupported[2]; -} LOCALESIGNATURE,*PLOCALESIGNATURE,*LPLOCALESIGNATURE; -typedef LONG LCSTYPE; -#pragma pack(push,4) -typedef struct tagNEWTEXTMETRICA { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - BYTE tmFirstChar; - BYTE tmLastChar; - BYTE tmDefaultChar; - BYTE tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; - DWORD ntmFlags; - UINT ntmSizeEM; - UINT ntmCellHeight; - UINT ntmAvgWidth; -} NEWTEXTMETRICA,*PNEWTEXTMETRICA,*LPNEWTEXTMETRICA; -typedef struct tagNEWTEXTMETRICW { - LONG tmHeight; - LONG tmAscent; - LONG tmDescent; - LONG tmInternalLeading; - LONG tmExternalLeading; - LONG tmAveCharWidth; - LONG tmMaxCharWidth; - LONG tmWeight; - LONG tmOverhang; - LONG tmDigitizedAspectX; - LONG tmDigitizedAspectY; - WCHAR tmFirstChar; - WCHAR tmLastChar; - WCHAR tmDefaultChar; - WCHAR tmBreakChar; - BYTE tmItalic; - BYTE tmUnderlined; - BYTE tmStruckOut; - BYTE tmPitchAndFamily; - BYTE tmCharSet; - DWORD ntmFlags; - UINT ntmSizeEM; - UINT ntmCellHeight; - UINT ntmAvgWidth; -} NEWTEXTMETRICW,*PNEWTEXTMETRICW,*LPNEWTEXTMETRICW; -#pragma pack(pop) -typedef struct tagNEWTEXTMETRICEXA { - NEWTEXTMETRICA ntmTm; - FONTSIGNATURE ntmFontSig; -} NEWTEXTMETRICEXA; -typedef struct tagNEWTEXTMETRICEXW { - NEWTEXTMETRICW ntmTm; - FONTSIGNATURE ntmFontSig; -} NEWTEXTMETRICEXW; -typedef struct tagPELARRAY { - LONG paXCount; - LONG paYCount; - LONG paXExt; - LONG paYExt; - BYTE paRGBs; -} PELARRAY,*PPELARRAY,*LPPELARRAY; -typedef struct tagENUMLOGFONTA { - LOGFONTA elfLogFont; - BYTE elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; -} ENUMLOGFONTA,*LPENUMLOGFONTA; -typedef struct tagENUMLOGFONTW { - LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - WCHAR elfStyle[LF_FACESIZE]; -} ENUMLOGFONTW,*LPENUMLOGFONTW; -typedef struct tagENUMLOGFONTEXA { - LOGFONTA elfLogFont; - BYTE elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; - BYTE elfScript[LF_FACESIZE]; -} ENUMLOGFONTEXA,*LPENUMLOGFONTEXA; -typedef struct tagENUMLOGFONTEXW { - LOGFONTW elfLogFont; - WCHAR elfFullName[LF_FULLFACESIZE]; - BYTE elfStyle[LF_FACESIZE]; - BYTE elfScript[LF_FACESIZE]; -} ENUMLOGFONTEXW,*LPENUMLOGFONTEXW; -typedef struct tagPOINTFX { - FIXED x; - FIXED y; -} POINTFX,*LPPOINTFX; -typedef struct tagTTPOLYCURVE { - WORD wType; - WORD cpfx; - POINTFX apfx[1]; -} TTPOLYCURVE,*LPTTPOLYCURVE; -typedef struct tagTTPOLYGONHEADER { - DWORD cb; - DWORD dwType; - POINTFX pfxStart; -} TTPOLYGONHEADER,*LPTTPOLYGONHEADER; -typedef struct _POINTFLOAT { - FLOAT x; - FLOAT y; -} POINTFLOAT,*PPOINTFLOAT; -typedef struct _GLYPHMETRICSFLOAT { - FLOAT gmfBlackBoxX; - FLOAT gmfBlackBoxY; - POINTFLOAT gmfptGlyphOrigin; - FLOAT gmfCellIncX; - FLOAT gmfCellIncY; -} GLYPHMETRICSFLOAT,*PGLYPHMETRICSFLOAT,*LPGLYPHMETRICSFLOAT; -typedef struct tagLAYERPLANEDESCRIPTOR { - WORD nSize; - WORD nVersion; - DWORD dwFlags; - BYTE iPixelType; - BYTE cColorBits; - BYTE cRedBits; - BYTE cRedShift; - BYTE cGreenBits; - BYTE cGreenShift; - BYTE cBlueBits; - BYTE cBlueShift; - BYTE cAlphaBits; - BYTE cAlphaShift; - BYTE cAccumBits; - BYTE cAccumRedBits; - BYTE cAccumGreenBits; - BYTE cAccumBlueBits; - BYTE cAccumAlphaBits; - BYTE cDepthBits; - BYTE cStencilBits; - BYTE cAuxBuffers; - BYTE iLayerPlane; - BYTE bReserved; - COLORREF crTransparent; -} LAYERPLANEDESCRIPTOR,*PLAYERPLANEDESCRIPTOR,*LPLAYERPLANEDESCRIPTOR; -typedef struct _BLENDFUNCTION { - BYTE BlendOp; - BYTE BlendFlags; - BYTE SourceConstantAlpha; - BYTE AlphaFormat; -} BLENDFUNCTION,*PBLENDFUNCTION,*LPBLENDFUNCTION; -typedef BOOL (CALLBACK *ABORTPROC)(HDC,int); -typedef int (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,int,LPARAM); -typedef int (CALLBACK *ENHMFENUMPROC)(HDC,HANDLETABLE*,ENHMETARECORD*,int,LPARAM); -typedef int (CALLBACK *OLDFONTENUMPROCA)(const LOGFONTA*,const TEXTMETRICA*,DWORD,LPARAM); -typedef int (CALLBACK *OLDFONTENUMPROCW)(const LOGFONTW*,const TEXTMETRICW*,DWORD,LPARAM); -typedef OLDFONTENUMPROCA FONTENUMPROCA; -typedef OLDFONTENUMPROCW FONTENUMPROCW; -typedef int (CALLBACK *ICMENUMPROCA)(LPSTR,LPARAM); -typedef int (CALLBACK *ICMENUMPROCW)(LPWSTR,LPARAM); -typedef void (CALLBACK *GOBJENUMPROC)(LPVOID,LPARAM); -typedef void (CALLBACK *LINEDDAPROC)(int,int,LPARAM); -typedef UINT (CALLBACK *LPFNDEVMODE)(HWND,HMODULE,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,UINT); -typedef DWORD (CALLBACK *LPFNDEVCAPS)(LPSTR,LPSTR,UINT,LPSTR,LPDEVMODEA); - - -#define RGB(r,g,b) ((DWORD)(((BYTE)(r)|((WORD)(g)<<8))|(((DWORD)(BYTE)(b))<<16))) -#define MAKEPOINTS(l) (*((POINTS*)&(l))) -#define MAKEROP4(f,b) (DWORD)((((b)<<8)&0xFF000000)|(f)) -#define PALETTEINDEX(i) ((0x01000000|(COLORREF)(WORD)(i))) -#define PALETTERGB(r,g,b) (0x02000000|RGB(r,g,b)) -int WINAPI AbortDoc(HDC); -BOOL WINAPI AbortPath(HDC); -int WINAPI AddFontResourceA(LPCSTR); -int WINAPI AddFontResourceW(LPCWSTR); -BOOL WINAPI AngleArc(HDC,int,int,DWORD,FLOAT,FLOAT); -BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*); -BOOL WINAPI Arc(HDC,int,int,int,int,int,int,int,int); -BOOL WINAPI ArcTo(HDC,int,int,int,int,int,int,int,int); -BOOL WINAPI BeginPath(HDC); -BOOL WINAPI BitBlt(HDC,int,int,int,int,HDC,int,int,DWORD); -BOOL WINAPI CancelDC(HDC); -BOOL WINAPI CheckColorsInGamut(HDC,PVOID,PVOID,DWORD); -BOOL WINAPI Chord(HDC,int,int,int,int,int,int,int,int); -int WINAPI ChoosePixelFormat(HDC,CONST PIXELFORMATDESCRIPTOR*); -HENHMETAFILE WINAPI CloseEnhMetaFile(HDC); -BOOL WINAPI CloseFigure(HDC); -HMETAFILE WINAPI CloseMetaFile(HDC); -BOOL WINAPI ColorMatchToTarget(HDC,HDC,DWORD); -int WINAPI CombineRgn(HRGN,HRGN,HRGN,int); -BOOL WINAPI CombineTransform(LPXFORM,const XFORM*,const XFORM*); -HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR); -HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR); -HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR); -HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR); -HBITMAP WINAPI CreateBitmap(int,int,UINT,UINT,PCVOID); -HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*); -HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*); -HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA); -HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW); -HBITMAP WINAPI CreateCompatibleBitmap(HDC,int,int); -HDC WINAPI CreateCompatibleDC(HDC); -HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*); -HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*); -HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,PCVOID,const BITMAPINFO*,UINT); -HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT); -HBRUSH WINAPI CreateDIBPatternBrushPt(PCVOID,UINT); -HBITMAP WINAPI CreateDIBSection(HDC,const BITMAPINFO*,UINT,void**,HANDLE,DWORD); -HBITMAP WINAPI CreateDiscardableBitmap(HDC,int,int); -HRGN WINAPI CreateEllipticRgn(int,int,int,int); -HRGN WINAPI CreateEllipticRgnIndirect(LPCRECT); -HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,LPCRECT,LPCSTR); -HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,LPCRECT,LPCWSTR); -HFONT WINAPI CreateFontA(int,int,int,int,int,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR); -HFONT WINAPI CreateFontW(int,int,int,int,int,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR); -HFONT WINAPI CreateFontIndirectA(const LOGFONTA*); -HFONT WINAPI CreateFontIndirectW(const LOGFONTW*); -HPALETTE WINAPI CreateHalftonePalette(HDC); -HBRUSH WINAPI CreateHatchBrush(int,COLORREF); -HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*); -HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*); -HDC WINAPI CreateMetaFileA(LPCSTR); -HDC WINAPI CreateMetaFileW(LPCWSTR); -HPALETTE WINAPI CreatePalette(const LOGPALETTE*); -HBRUSH WINAPI CreatePatternBrush(HBITMAP); -HPEN WINAPI CreatePen(int,int,COLORREF); -HPEN WINAPI CreatePenIndirect(const LOGPEN*); -HRGN WINAPI CreatePolygonRgn(const POINT*,int,int); -HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,int,int); -HRGN WINAPI CreateRectRgn(int,int,int,int); -HRGN WINAPI CreateRectRgnIndirect(LPCRECT); -HRGN WINAPI CreateRoundRectRgn(int,int,int,int,int,int); -BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR); -BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR); -HBRUSH WINAPI CreateSolidBrush(COLORREF); -BOOL WINAPI DeleteColorSpace(HCOLORSPACE); -BOOL WINAPI DeleteDC(HDC); -BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE); -BOOL WINAPI DeleteMetaFile(HMETAFILE); -BOOL WINAPI DeleteObject(HGDIOBJ); -int WINAPI DescribePixelFormat(HDC,int,UINT,LPPIXELFORMATDESCRIPTOR); -DWORD WINAPI DeviceCapabilitiesA(LPCSTR,LPCSTR,WORD,LPSTR,const DEVMODEA*); -DWORD WINAPI DeviceCapabilitiesW(LPCWSTR,LPCWSTR,WORD,LPWSTR,const DEVMODEW*); -BOOL WINAPI DPtoLP(HDC,LPPOINT,int); -int WINAPI DrawEscape(HDC,int,int,LPCSTR); -BOOL WINAPI Ellipse(HDC,int,int,int,int); -int WINAPI EndDoc(HDC); -int WINAPI EndPage(HDC); -BOOL WINAPI EndPath(HDC); -BOOL WINAPI EnumEnhMetaFile(HDC,HENHMETAFILE,ENHMFENUMPROC,PVOID,LPCRECT); -int WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM); -int WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM); -int WINAPI EnumFontFamiliesExA(HDC,PLOGFONTA,FONTENUMPROCA,LPARAM,DWORD); -int WINAPI EnumFontFamiliesExW(HDC,PLOGFONTW,FONTENUMPROCW,LPARAM,DWORD); -int WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM); -int WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCA,LPARAM); -int WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM); -int WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM); -BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM); -int WINAPI EnumObjects(HDC,int,GOBJENUMPROC,LPARAM); -BOOL WINAPI EqualRgn(HRGN,HRGN); -int WINAPI Escape(HDC,int,int,LPCSTR,PVOID); -int WINAPI ExcludeClipRect(HDC,int,int,int,int); -int WINAPI ExcludeUpdateRgn(HDC,HWND); -HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*); -HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*); -int WINAPI ExtEscape(HDC,int,int,LPCSTR,int,LPSTR); -BOOL WINAPI ExtFloodFill(HDC,int,int,COLORREF,UINT); -int WINAPI ExtSelectClipRgn(HDC,HRGN,int); -BOOL WINAPI ExtTextOutA(HDC,int,int,UINT,LPCRECT,LPCSTR,UINT,const INT*); -BOOL WINAPI ExtTextOutW(HDC,int,int,UINT,LPCRECT,LPCWSTR,UINT,const INT*); -BOOL WINAPI FillPath(HDC); -int WINAPI FillRect(HDC,LPCRECT,HBRUSH); -int WINAPI FillRgn(HDC,HRGN,HBRUSH); -BOOL WINAPI FixBrushOrgEx(HDC,int,int,LPPOINT); -BOOL WINAPI FlattenPath(HDC); -BOOL WINAPI FloodFill(HDC,int,int,COLORREF); -BOOL WINAPI GdiComment(HDC,UINT,const BYTE*); -BOOL WINAPI GdiFlush(void); -DWORD WINAPI GdiGetBatchLimit(void); -DWORD WINAPI GdiSetBatchLimit(DWORD); -#define GetCValue(cmyk) ((BYTE)(cmyk)) -#define GetMValue(cmyk) ((BYTE)((cmyk)>> 8)) -#define GetYValue(cmyk) ((BYTE)((cmyk)>>16)) -#define GetKValue(cmyk) ((BYTE)((cmyk)>>24)) -#define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(c)|((WORD)((BYTE)(m))<<8))|(((DWORD)(BYTE)(y))<<16))|(((DWORD)(BYTE)(k))<<24))) -#define GetRValue(c) ((BYTE)(c)) -#define GetGValue(c) ((BYTE)(((WORD)(c))>>8)) -#define GetBValue(c) ((BYTE)((c)>>16)) -int WINAPI GetArcDirection(HDC); -BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE); -LONG WINAPI GetBitmapBits(HBITMAP,LONG,PVOID); -BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE); -COLORREF WINAPI GetBkColor(HDC); -int WINAPI GetBkMode(HDC); -UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT); -BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT); -BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC); -BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC); -BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT); -BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT); -DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,int,int,LPGCP_RESULTSA,DWORD); -DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,int,int,LPGCP_RESULTSW,DWORD); -BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT); -BOOL WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT); -BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT); -BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT); -BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT); -BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT); -int WINAPI GetClipBox(HDC,LPRECT); -int WINAPI GetClipRgn(HDC,HRGN); -BOOL WINAPI GetColorAdjustment(HDC,LPCOLORADJUSTMENT); -HANDLE WINAPI GetColorSpace(HDC); -HGDIOBJ WINAPI GetCurrentObject(HDC,UINT); -BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT); -HCURSOR WINAPI GetCursor(void); -BOOL WINAPI GetDCOrgEx(HDC,LPPOINT); -int WINAPI GetDeviceCaps(HDC,int); -BOOL WINAPI GetDeviceGammaRamp(HDC,PVOID); -UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*); -int WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,PVOID,LPBITMAPINFO,UINT); -HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR); -HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR); -UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE,UINT,LPSTR); -UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR); -UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER); -UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY); -UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE,DWORD,PIXELFORMATDESCRIPTOR*); -DWORD WINAPI GetFontData(HDC,DWORD,DWORD,PVOID,DWORD); -DWORD WINAPI GetFontLanguageInfo(HDC); -DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*); -DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*); -int WINAPI GetGraphicsMode(HDC); -BOOL WINAPI GetICMProfileA(HDC,DWORD,LPSTR); -BOOL WINAPI GetICMProfileW(HDC,DWORD,LPWSTR); -DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR); -DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR); -BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD); -BOOL WINAPI GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD); -int WINAPI GetMapMode(HDC); -HMETAFILE WINAPI GetMetaFileA(LPCSTR); -HMETAFILE WINAPI GetMetaFileW(LPCWSTR); -UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,PVOID); -int WINAPI GetMetaRgn(HDC,HRGN); -BOOL WINAPI GetMiterLimit(HDC,PFLOAT); -COLORREF WINAPI GetNearestColor(HDC,COLORREF); -UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF); -int WINAPI GetObjectA(HGDIOBJ,int,PVOID); -int WINAPI GetObjectW(HGDIOBJ,int,PVOID); -DWORD WINAPI GetObjectType(HGDIOBJ); -UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA); -UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW); -UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY); -int WINAPI GetPath(HDC,LPPOINT,PBYTE,int); -COLORREF WINAPI GetPixel(HDC,int,int); -int WINAPI GetPixelFormat(HDC); -int WINAPI GetPolyFillMode(HDC); -BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT); -int WINAPI GetRandomRgn (HDC,HRGN,INT); -DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA); -int WINAPI GetRgnBox(HRGN,LPRECT); -int WINAPI GetROP2(HDC); -HGDIOBJ WINAPI GetStockObject(int); -int WINAPI GetStretchBltMode(HDC); -UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY); -UINT WINAPI GetSystemPaletteUse(HDC); -UINT WINAPI GetTextAlign(HDC); -int WINAPI GetTextCharacterExtra(HDC); -int WINAPI GetTextCharset(HDC); -int WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD); -COLORREF WINAPI GetTextColor(HDC); -BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,int,int,LPINT,LPINT,LPSIZE); -BOOL WINAPI GetTextExtentExPointW( HDC,LPCWSTR,int,int,LPINT,LPINT,LPSIZE ); -BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,int,LPSIZE); -BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,int,LPSIZE); -BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,int,LPSIZE); -BOOL WINAPI GetTextExtentPoint32W( HDC,LPCWSTR,int,LPSIZE); -int WINAPI GetTextFaceA(HDC,int,LPSTR); -int WINAPI GetTextFaceW(HDC,int,LPWSTR); -BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA); -BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW); -BOOL WINAPI GetViewportExtEx(HDC,LPSIZE); -BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT); -BOOL WINAPI GetWindowExtEx(HDC,LPSIZE); -BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT); -UINT WINAPI GetWinMetaFileBits(HENHMETAFILE,UINT,LPBYTE,INT,HDC); -BOOL WINAPI GetWorldTransform(HDC,LPXFORM); -int WINAPI IntersectClipRect(HDC,int,int,int,int); -BOOL WINAPI InvertRgn(HDC,HRGN); -BOOL WINAPI LineDDA(int,int,int,int,LINEDDAPROC,LPARAM); -BOOL WINAPI LineTo(HDC,int,int); -BOOL WINAPI LPtoDP(HDC,LPPOINT,int); -BOOL WINAPI MaskBlt(HDC,int,int,int,int,HDC,int,int,HBITMAP,int,int,DWORD); -BOOL WINAPI ModifyWorldTransform(HDC,const XFORM*,DWORD); -BOOL WINAPI MoveToEx(HDC,int,int,LPPOINT); -int WINAPI OffsetClipRgn(HDC,int,int); -int WINAPI OffsetRgn(HRGN,int,int); -BOOL WINAPI OffsetViewportOrgEx(HDC,int,int,LPPOINT); -BOOL WINAPI OffsetWindowOrgEx(HDC,int,int,LPPOINT); -BOOL WINAPI PaintRgn(HDC,HRGN); -BOOL WINAPI PatBlt(HDC,int,int,int,int,DWORD); -HRGN WINAPI PathToRegion(HDC); -BOOL WINAPI Pie(HDC,int,int,int,int,int,int,int,int); -BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,LPCRECT); -BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT); -BOOL WINAPI PlayMetaFile(HDC,HMETAFILE); -BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT); -BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,int,int,int,int,HBITMAP,int,int); -BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD); -BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD); -BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,int); -BOOL WINAPI Polygon(HDC,const POINT*,int); -BOOL WINAPI Polyline(HDC,const POINT*,int); -BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD); -BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,int); -BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD); -BOOL WINAPI PolyTextOutA(HDC,const POLYTEXTA*,int); -BOOL WINAPI PolyTextOutW(HDC,const POLYTEXTW*,int); -BOOL WINAPI PtInRegion(HRGN,int,int); -BOOL WINAPI PtVisible(HDC,int,int); -UINT WINAPI RealizePalette(HDC); -BOOL WINAPI Rectangle(HDC,int,int,int,int); -BOOL WINAPI RectInRegion(HRGN,LPCRECT); -BOOL WINAPI RectVisible(HDC,LPCRECT); -BOOL WINAPI RemoveFontResourceA(LPCSTR); -BOOL WINAPI RemoveFontResourceW(LPCWSTR); -HDC WINAPI ResetDCA(HDC,const DEVMODEA*); -HDC WINAPI ResetDCW(HDC,const DEVMODEW*); -BOOL WINAPI ResizePalette(HPALETTE,UINT); -BOOL WINAPI RestoreDC(HDC,int); -BOOL WINAPI RoundRect(HDC,int,int,int,int,int,int); -int WINAPI SaveDC(HDC); -BOOL WINAPI ScaleViewportExtEx(HDC,int,int,int,int,LPSIZE); -BOOL WINAPI ScaleWindowExtEx(HDC,int,int,int,int,LPSIZE); -BOOL WINAPI SelectClipPath(HDC,int); -int WINAPI SelectClipRgn(HDC,HRGN); -HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ); -HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL); -int WINAPI SetAbortProc(HDC,ABORTPROC); -int WINAPI SetArcDirection(HDC,int); -LONG WINAPI SetBitmapBits(HBITMAP,DWORD,PCVOID); -BOOL WINAPI SetBitmapDimensionEx(HBITMAP,int,int,LPSIZE); -COLORREF WINAPI SetBkColor(HDC,COLORREF); -int WINAPI SetBkMode(HDC,int); -UINT WINAPI SetBoundsRect(HDC,LPCRECT,UINT); -BOOL WINAPI SetBrushOrgEx(HDC,int,int,LPPOINT); -BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*); -BOOL WINAPI SetColorSpace(HDC,HCOLORSPACE); -BOOL WINAPI SetDeviceGammaRamp(HDC,PVOID); -UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,const RGBQUAD*); -int WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,PCVOID,const BITMAPINFO*,UINT); -int WINAPI SetDIBitsToDevice(HDC,int,int,DWORD,DWORD,int,int,UINT,UINT,PCVOID,const BITMAPINFO*,UINT); -HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE*); -int WINAPI SetGraphicsMode(HDC,int); -int WINAPI SetICMMode(HDC,int); -BOOL WINAPI SetICMProfileA(HDC,LPSTR); -BOOL WINAPI SetICMProfileW(HDC,LPWSTR); -int WINAPI SetMapMode(HDC,int); -DWORD WINAPI SetMapperFlags(HDC,DWORD); -HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE *); -int WINAPI SetMetaRgn(HDC); -BOOL WINAPI SetMiterLimit(HDC,FLOAT,PFLOAT); -UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,const PALETTEENTRY*); -COLORREF WINAPI SetPixel(HDC,int,int,COLORREF); -BOOL WINAPI SetPixelFormat(HDC,int,PIXELFORMATDESCRIPTOR*); -BOOL WINAPI SetPixelV(HDC,int,int,COLORREF); -int WINAPI SetPolyFillMode(HDC,int); -BOOL WINAPI SetRectRgn(HRGN,int,int,int,int); -int WINAPI SetROP2(HDC,int); -int WINAPI SetStretchBltMode(HDC,int); -UINT WINAPI SetSystemPaletteUse(HDC,UINT); -UINT WINAPI SetTextAlign(HDC,UINT); -int WINAPI SetTextCharacterExtra(HDC,int); -COLORREF WINAPI SetTextColor(HDC,COLORREF); -BOOL WINAPI SetTextJustification(HDC,int,int); -BOOL WINAPI SetViewportExtEx(HDC,int,int,LPSIZE); -BOOL WINAPI SetViewportOrgEx(HDC,int,int,LPPOINT); -BOOL WINAPI SetWindowExtEx(HDC,int,int,LPSIZE); -BOOL WINAPI SetWindowOrgEx(HDC,int,int,LPPOINT); -HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,const BYTE*,HDC,const METAFILEPICT*); -BOOL WINAPI SetWorldTransform(HDC,const XFORM *); -int WINAPI StartDocA(HDC,const DOCINFOA*); -int WINAPI StartDocW(HDC,const DOCINFOW*); -int WINAPI StartPage(HDC); -BOOL WINAPI StretchBlt(HDC,int,int,int,int,HDC,int,int,int,int,DWORD); -int WINAPI StretchDIBits(HDC,int,int,int,int,int,int,int,int,const VOID *,const BITMAPINFO *,UINT,DWORD); -BOOL WINAPI StrokeAndFillPath(HDC); -BOOL WINAPI StrokePath(HDC); -BOOL WINAPI SwapBuffers(HDC); -BOOL WINAPI TextOutA(HDC,int,int,LPCSTR,int); -BOOL WINAPI TextOutW(HDC,int,int,LPCWSTR,int); -BOOL WINAPI TranslateCharsetInfo(PDWORD,LPCHARSETINFO,DWORD); -BOOL WINAPI UnrealizeObject(HGDIOBJ); -BOOL WINAPI UpdateColors(HDC); -BOOL WINAPI UpdateICMRegKeyA(DWORD,DWORD,LPSTR,UINT); -BOOL WINAPI UpdateICMRegKeyW(DWORD,DWORD,LPWSTR,UINT); -BOOL WINAPI WidenPath(HDC); -BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT); -HGLRC WINAPI wglCreateContext(HDC); -HGLRC WINAPI wglCreateLayerContext(HDC,int); -BOOL WINAPI wglDeleteContext(HGLRC); -BOOL WINAPI wglDescribeLayerPlane(HDC,int,int,UINT,LPLAYERPLANEDESCRIPTOR); -HGLRC WINAPI wglGetCurrentContext(void); -HDC WINAPI wglGetCurrentDC(void); -int WINAPI wglGetLayerPaletteEntries(HDC,int,int,int,COLORREF*); -PROC WINAPI wglGetProcAddress(LPCSTR); -BOOL WINAPI wglMakeCurrent(HDC,HGLRC); -BOOL WINAPI wglRealizeLayerPalette(HDC,int,BOOL); -int WINAPI wglSetLayerPaletteEntries(HDC,int,int,int,const COLORREF*); -BOOL WINAPI wglShareLists(HGLRC,HGLRC); -BOOL WINAPI wglSwapLayerBuffers(HDC,UINT); -BOOL WINAPI wglUseFontBitmapsA(HDC,DWORD,DWORD,DWORD); -BOOL WINAPI wglUseFontBitmapsW(HDC,DWORD,DWORD,DWORD); -BOOL WINAPI wglUseFontOutlinesA(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT); -BOOL WINAPI wglUseFontOutlinesW(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,int,LPGLYPHMETRICSFLOAT); - -#ifdef UNICODE -typedef WCHAR BCHAR; -typedef DOCINFOW DOCINFO, *LPDOCINFO; -typedef LOGFONTW LOGFONT,*PLOGFONT,*LPLOGFONT; -typedef TEXTMETRICW TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC; -#define ICMENUMPROC ICMENUMPROCW -#define FONTENUMPROC FONTENUMPROCW -typedef DEVMODEW DEVMODE,*PDEVMODE,*LPDEVMODE; -typedef EXTLOGFONTW EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT; -typedef GCP_RESULTSW GCP_RESULTS,*LPGCP_RESULTS; -typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC; -typedef POLYTEXTW POLYTEXT; -typedef LOGCOLORSPACEW LOGCOLORSPACE,*LPLOGCOLORSPACE; -typedef NEWTEXTMETRICW NEWTEXTMETRIC,*PNEWTEXTMETRIC,*LPNEWTEXTMETRIC; -typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX; -typedef ENUMLOGFONTW ENUMLOGFONT,*LPENUMLOGFONT; -typedef ENUMLOGFONTEXW ENUMLOGFONTEX,*LPENUMLOGFONTEX; -#define AddFontResource AddFontResourceW -#define CopyEnhMetaFile CopyEnhMetaFileW -#define CopyMetaFile CopyMetaFileW -#define CreateDC CreateDCW -#define CreateEnhMetaFile CreateEnhMetaFileW -#define CreateFont CreateFontW -#define CreateFontIndirect CreateFontIndirectW -#define CreateIC CreateICW -#define CreateMetaFile CreateMetaFileW -#define CreateScalableFontResource CreateScalableFontResourceW -#define DeviceCapabilities DeviceCapabilitiesW -#define EnumFontFamilies EnumFontFamiliesW -#define EnumFontFamiliesEx EnumFontFamiliesExW -#define EnumFonts EnumFontsW -#define EnumICMProfiles EnumICMProfilesW -#define ExtTextOut ExtTextOutW -#define GetCharABCWidthsFloat GetCharABCWidthsFloatW -#define GetCharABCWidths GetCharABCWidthsW -#define GetCharacterPlacement GetCharacterPlacementW -#define GetCharWidth32 GetCharWidth32W -#define GetCharWidthFloat GetCharWidthFloatW -#define GetCharWidth GetCharWidthW -#define GetEnhMetaFile GetEnhMetaFileW -#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW -#define GetGlyphOutline GetGlyphOutlineW -#define GetICMProfile GetICMProfileW -#define GetKerningPairs GetKerningPairsW -#define GetLogColorSpace GetLogColorSpaceW -#define GetMetaFile GetMetaFileW -#define GetObject GetObjectW -#define GetOutlineTextMetrics GetOutlineTextMetricsW -#define GetTextExtentPoint GetTextExtentPointW -#define GetTextExtentExPoint GetTextExtentExPointW -#define GetTextExtentPoint32 GetTextExtentPoint32W -#define GetTextFace GetTextFaceW -#define GetTextMetrics GetTextMetricsW -#define PolyTextOut PolyTextOutW -#define RemoveFontResource RemoveFontResourceW -#define ResetDC ResetDCW -#define SetICMProfile SetICMProfileW -#define StartDoc StartDocW -#define TextOut TextOutW -#define UpdateICMRegKey UpdateICMRegKeyW -#define wglUseFontBitmaps wglUseFontBitmapsW -#define wglUseFontOutlines wglUseFontOutlinesW -#else -typedef BYTE BCHAR; -typedef DOCINFOA DOCINFO, *LPDOCINFO; -typedef LOGFONTA LOGFONT,*PLOGFONT,*LPLOGFONT; -typedef TEXTMETRICA TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC; -#define ICMENUMPROC ICMENUMPROCA -#define FONTENUMPROC FONTENUMPROCA -typedef DEVMODEA DEVMODE,*PDEVMODE,*LPDEVMODE; -typedef EXTLOGFONTA EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT; -typedef GCP_RESULTSA GCP_RESULTS,*LPGCP_RESULTS; -typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC; -typedef POLYTEXTA POLYTEXT; -typedef LOGCOLORSPACEA LOGCOLORSPACE,*LPLOGCOLORSPACE; -typedef NEWTEXTMETRICA NEWTEXTMETRIC,*PNEWTEXTMETRIC,*LPNEWTEXTMETRIC; -typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX; -typedef ENUMLOGFONTA ENUMLOGFONT,*LPENUMLOGFONT; -typedef ENUMLOGFONTEXA ENUMLOGFONTEX,*LPENUMLOGFONTEX; -#define AddFontResource AddFontResourceA -#define CopyEnhMetaFile CopyEnhMetaFileA -#define CopyMetaFile CopyMetaFileA -#define CreateDC CreateDCA -#define CreateEnhMetaFile CreateEnhMetaFileA -#define CreateFont CreateFontA -#define CreateFontIndirect CreateFontIndirectA -#define CreateIC CreateICA -#define CreateMetaFile CreateMetaFileA -#define CreateScalableFontResource CreateScalableFontResourceA -#define DeviceCapabilities DeviceCapabilitiesA -#define EnumFontFamilies EnumFontFamiliesA -#define EnumFontFamiliesEx EnumFontFamiliesExA -#define EnumFonts EnumFontsA -#define EnumICMProfiles EnumICMProfilesA -#define ExtTextOut ExtTextOutA -#define GetCharWidthFloat GetCharWidthFloatA -#define GetCharWidth GetCharWidthA -#define GetCharacterPlacement GetCharacterPlacementA -#define GetCharABCWidths GetCharABCWidthsA -#define GetCharABCWidthsFloat GetCharABCWidthsFloatA -#define GetCharWidth32 GetCharWidth32A -#define GetEnhMetaFile GetEnhMetaFileA -#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA -#define GetGlyphOutline GetGlyphOutlineA -#define GetICMProfile GetICMProfileA -#define GetKerningPairs GetKerningPairsA -#define GetLogColorSpace GetLogColorSpaceA -#define GetMetaFile GetMetaFileA -#define GetObject GetObjectA -#define GetOutlineTextMetrics GetOutlineTextMetricsA -#define GetTextExtentPoint GetTextExtentPointA -#define GetTextExtentExPoint GetTextExtentExPointA -#define GetTextExtentPoint32 GetTextExtentPoint32A -#define GetTextFace GetTextFaceA -#define GetTextMetrics GetTextMetricsA -#define PolyTextOut PolyTextOutA -#define RemoveFontResource RemoveFontResourceA -#define ResetDC ResetDCA -#define SetICMProfile SetICMProfileA -#define StartDoc StartDocA -#define TextOut TextOutA -#define UpdateICMRegKey UpdateICMRegKeyA -#define wglUseFontBitmaps wglUseFontBitmapsA -#define wglUseFontOutlines wglUseFontOutlinesA -#endif -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/wininet.h b/winsup/w32api/include/wininet.h deleted file mode 100644 index 690d6c055..000000000 --- a/winsup/w32api/include/wininet.h +++ /dev/null @@ -1,909 +0,0 @@ -#ifndef _WININET_H -#define _WININET_H -#include -#ifdef __cplusplus -extern "C" { -#endif -#define INTERNET_INVALID_PORT_NUMBER 0 -#define INTERNET_DEFAULT_FTP_PORT 21 -#define INTERNET_DEFAULT_GOPHER_PORT 70 -#define INTERNET_DEFAULT_HTTP_PORT 80 -#define INTERNET_DEFAULT_HTTPS_PORT 443 -#define INTERNET_DEFAULT_SOCKS_PORT 1080 -#define MAX_CACHE_ENTRY_INFO_SIZE 4096 -#define INTERNET_MAX_HOST_NAME_LENGTH 256 -#define INTERNET_MAX_USER_NAME_LENGTH 128 -#define INTERNET_MAX_PASSWORD_LENGTH 128 -#define INTERNET_MAX_PORT_NUMBER_LENGTH 5 -#define INTERNET_MAX_PORT_NUMBER_VALUE 65535 -#define INTERNET_MAX_PATH_LENGTH 2048 -#define INTERNET_MAX_SCHEME_LENGTH 32 -#define INTERNET_MAX_URL_LENGTH (INTERNET_MAX_SCHEME_LENGTH+sizeof("://")+INTERNET_MAX_PATH_LENGTH) -#define INTERNET_KEEP_ALIVE_UNKNOWN ((DWORD)-1) -#define INTERNET_KEEP_ALIVE_ENABLED 1 -#define INTERNET_KEEP_ALIVE_DISABLED 0 -#define INTERNET_REQFLAG_FROM_CACHE 1 -#define INTERNET_REQFLAG_ASYNC 2 -#define INTERNET_FLAG_RELOAD 0x80000000 -#define INTERNET_FLAG_RAW_DATA 0x40000000 -#define INTERNET_FLAG_EXISTING_CONNECT 0x20000000 -#define INTERNET_FLAG_ASYNC 0x10000000 -#define INTERNET_FLAG_PASSIVE 0x08000000 -#define INTERNET_FLAG_NO_CACHE_WRITE 0x04000000 -#define INTERNET_FLAG_DONT_CACHE INTERNET_FLAG_NO_CACHE_WRITE -#define INTERNET_FLAG_MAKE_PERSISTENT 0x02000000 -#define INTERNET_FLAG_OFFLINE 0x1000000 -#define INTERNET_FLAG_SECURE 0x800000 -#define INTERNET_FLAG_KEEP_CONNECTION 0x400000 -#define INTERNET_FLAG_NO_AUTO_REDIRECT 0x200000 -#define INTERNET_FLAG_READ_PREFETCH 0x100000 -#define INTERNET_FLAG_NO_COOKIES 0x80000 -#define INTERNET_FLAG_NO_AUTH 0x40000 -#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP 0x8000 -#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS 0x4000 -#define INTERNET_FLAG_IGNORE_CERT_DATE_INVALID 0x2000 -#define INTERNET_FLAG_IGNORE_CERT_CN_INVALID 0x1000 -#define INTERNET_FLAG_MUST_CACHE_REQUEST 16 -#define INTERNET_FLAG_RESYNCHRONIZE 0x800 -#define INTERNET_FLAG_HYPERLINK 0x400 -#define INTERNET_FLAG_NO_UI 0x200 -#define INTERNET_FLAG_PRAGMA_NOCACHE 0x100 -#define INTERNET_FLAG_TRANSFER_ASCII FTP_TRANSFER_TYPE_ASCII -#define INTERNET_FLAG_TRANSFER_BINARY FTP_TRANSFER_TYPE_BINARY -#define SECURITY_INTERNET_MASK (INTERNET_FLAG_IGNORE_CERT_CN_INVALID|INTERNET_FLAG_IGNORE_CERT_DATE_INVALID|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP) -#define SECURITY_SET_MASK SECURITY_INTERNET_MASK -#define INTERNET_FLAGS_MASK (INTERNET_FLAG_RELOAD|INTERNET_FLAG_RAW_DATA|INTERNET_FLAG_EXISTING_CONNECT|\ -INTERNET_FLAG_ASYNC|INTERNET_FLAG_PASSIVE|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_MAKE_PERSISTENT|INTERNET_FLAG_OFFLINE|\ -INTERNET_FLAG_SECURE|INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_NO_AUTO_REDIRECT|INTERNET_FLAG_READ_PREFETCH |\ -INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_AUTH|SECURITY_INTERNET_MASK|INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_TRANSFER_BINARY\ -|INTERNET_FLAG_RESYNCHRONIZE|INTERNET_FLAG_MUST_CACHE_REQUEST|INTERNET_FLAG_HYPERLINK|INTERNET_FLAG_NO_UI) -#define INTERNET_OPTIONS_MASK (~INTERNET_FLAGS_MASK) -#define INTERNET_NO_CALLBACK 0 -#define INTERNET_RFC1123_FORMAT 0 -#define INTERNET_RFC1123_BUFSIZE 30 -#define ICU_ESCAPE 0x80000000 -#define ICU_USERNAME 0x40000000 -#define ICU_NO_ENCODE 0x20000000 -#define ICU_DECODE 0x10000000 -#define ICU_NO_META 0x08000000 -#define ICU_ENCODE_SPACES_ONLY 0x04000000 -#define ICU_BROWSER_MODE 0x02000000 -#define INTERNET_OPEN_TYPE_PRECONFIG 0 -#define INTERNET_OPEN_TYPE_DIRECT 1 -#define INTERNET_OPEN_TYPE_PROXY 3 -#define PRE_CONFIG_INTERNET_ACCESS INTERNET_OPEN_TYPE_PRECONFIG -#define LOCAL_INTERNET_ACCESS INTERNET_OPEN_TYPE_DIRECT -#define GATEWAY_INTERNET_ACCESS 2 -#define CERN_PROXY_INTERNET_ACCESS INTERNET_OPEN_TYPE_PROXY -#define ISO_GLOBAL 1 -#define ISO_REGISTRY 2 -#define ISO_VALID_FLAGS (ISO_GLOBAL | ISO_REGISTRY) -#define INTERNET_OPTION_CALLBACK 1 -#define INTERNET_OPTION_CONNECT_TIMEOUT 2 -#define INTERNET_OPTION_CONNECT_RETRIES 3 -#define INTERNET_OPTION_CONNECT_BACKOFF 4 -#define INTERNET_OPTION_SEND_TIMEOUT 5 -#define INTERNET_OPTION_CONTROL_SEND_TIMEOUT INTERNET_OPTION_SEND_TIMEOUT -#define INTERNET_OPTION_RECEIVE_TIMEOUT 6 -#define INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT INTERNET_OPTION_RECEIVE_TIMEOUT -#define INTERNET_OPTION_DATA_SEND_TIMEOUT 7 -#define INTERNET_OPTION_DATA_RECEIVE_TIMEOUT 8 -#define INTERNET_OPTION_HANDLE_TYPE 9 -#define INTERNET_OPTION_CONTEXT_VALUE 10 -#define INTERNET_OPTION_LISTEN_TIMEOUT 11 -#define INTERNET_OPTION_READ_BUFFER_SIZE 12 -#define INTERNET_OPTION_WRITE_BUFFER_SIZE 13 -#define INTERNET_OPTION_ASYNC_ID 15 -#define INTERNET_OPTION_ASYNC_PRIORITY 16 -#define INTERNET_OPTION_PARENT_HANDLE 21 -#define INTERNET_OPTION_KEEP_CONNECTION 22 -#define INTERNET_OPTION_REQUEST_FLAGS 23 -#define INTERNET_OPTION_EXTENDED_ERROR 24 -#define INTERNET_OPTION_OFFLINE_MODE 26 -#define INTERNET_OPTION_CACHE_STREAM_HANDLE 27 -#define INTERNET_OPTION_USERNAME 28 -#define INTERNET_OPTION_PASSWORD 29 -#define INTERNET_OPTION_ASYNC 30 -#define INTERNET_OPTION_SECURITY_FLAGS 31 -#define INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT 32 -#define INTERNET_OPTION_DATAFILE_NAME 33 -#define INTERNET_OPTION_URL 34 -#define INTERNET_OPTION_SECURITY_CERTIFICATE 35 -#define INTERNET_OPTION_SECURITY_KEY_BITNESS 36 -#define INTERNET_OPTION_REFRESH 37 -#define INTERNET_OPTION_PROXY 38 -#define INTERNET_OPTION_SETTINGS_CHANGED 39 -#define INTERNET_OPTION_VERSION 40 -#define INTERNET_OPTION_USER_AGENT 41 -#define INTERNET_OPTION_END_BROWSER_SESSION 42 -#define INTERNET_OPTION_PROXY_USERNAME 43 -#define INTERNET_OPTION_PROXY_PASSWORD 44 -#define INTERNET_FIRST_OPTION INTERNET_OPTION_CALLBACK -#define INTERNET_LAST_OPTION INTERNET_OPTION_USER_AGENT -#define INTERNET_PRIORITY_FOREGROUND 1000 -#define INTERNET_HANDLE_TYPE_INTERNET 1 -#define INTERNET_HANDLE_TYPE_CONNECT_FTP 2 -#define INTERNET_HANDLE_TYPE_CONNECT_GOPHER 3 -#define INTERNET_HANDLE_TYPE_CONNECT_HTTP 4 -#define INTERNET_HANDLE_TYPE_FTP_FIND 5 -#define INTERNET_HANDLE_TYPE_FTP_FIND_HTML 6 -#define INTERNET_HANDLE_TYPE_FTP_FILE 7 -#define INTERNET_HANDLE_TYPE_FTP_FILE_HTML 8 -#define INTERNET_HANDLE_TYPE_GOPHER_FIND 9 -#define INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML 10 -#define INTERNET_HANDLE_TYPE_GOPHER_FILE 11 -#define INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML 12 -#define INTERNET_HANDLE_TYPE_HTTP_REQUEST 13 -#define SECURITY_FLAG_SECURE 1 -#define SECURITY_FLAG_SSL 2 -#define SECURITY_FLAG_SSL3 4 -#define SECURITY_FLAG_PCT 8 -#define SECURITY_FLAG_PCT4 16 -#define SECURITY_FLAG_IETFSSL4 0x20 -#define SECURITY_FLAG_IGNORE_REVOCATION 0x00000080 -#define SECURITY_FLAG_IGNORE_UNKNOWN_CA 0x00000100 -#define SECURITY_FLAG_IGNORE_WRONG_USAGE 0x00000200 -#define SECURITY_FLAG_40BIT 0x10000000 -#define SECURITY_FLAG_128BIT 0x20000000 -#define SECURITY_FLAG_56BIT 0x40000000 -#define SECURITY_FLAG_UNKNOWNBIT 0x80000000 -#define SECURITY_FLAG_NORMALBITNESS SECURITY_FLAG_40BIT -#define SECURITY_FLAG_IGNORE_CERT_CN_INVALID INTERNET_FLAG_IGNORE_CERT_CN_INVALID -#define SECURITY_FLAG_IGNORE_CERT_DATE_INVALID INTERNET_FLAG_IGNORE_CERT_DATE_INVALID -#define SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS -#define SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP -#define INTERNET_SERVICE_FTP 1 -#define INTERNET_SERVICE_GOPHER 2 -#define INTERNET_SERVICE_HTTP 3 -#define INTERNET_STATUS_RESOLVING_NAME 10 -#define INTERNET_STATUS_NAME_RESOLVED 11 -#define INTERNET_STATUS_CONNECTING_TO_SERVER 20 -#define INTERNET_STATUS_CONNECTED_TO_SERVER 21 -#define INTERNET_STATUS_SENDING_REQUEST 30 -#define INTERNET_STATUS_REQUEST_SENT 31 -#define INTERNET_STATUS_RECEIVING_RESPONSE 40 -#define INTERNET_STATUS_RESPONSE_RECEIVED 41 -#define INTERNET_STATUS_CTL_RESPONSE_RECEIVED 42 -#define INTERNET_STATUS_PREFETCH 43 -#define INTERNET_STATUS_CLOSING_CONNECTION 50 -#define INTERNET_STATUS_CONNECTION_CLOSED 51 -#define INTERNET_STATUS_HANDLE_CREATED 60 -#define INTERNET_STATUS_HANDLE_CLOSING 70 -#define INTERNET_STATUS_REQUEST_COMPLETE 100 -#define INTERNET_STATUS_REDIRECT 110 -#define INTERNET_INVALID_STATUS_CALLBACK ((INTERNET_STATUS_CALLBACK)(-1L)) -#define FTP_TRANSFER_TYPE_UNKNOWN 0 -#define FTP_TRANSFER_TYPE_ASCII 1 -#define FTP_TRANSFER_TYPE_BINARY 2 -#define FTP_TRANSFER_TYPE_MASK (FTP_TRANSFER_TYPE_ASCII | FTP_TRANSFER_TYPE_BINARY) -#define MAX_GOPHER_DISPLAY_TEXT 128 -#define MAX_GOPHER_SELECTOR_TEXT 256 -#define MAX_GOPHER_HOST_NAME INTERNET_MAX_HOST_NAME_LENGTH -#define MAX_GOPHER_LOCATOR_LENGTH (1+MAX_GOPHER_DISPLAY_TEXT+1+MAX_GOPHER_SELECTOR_TEXT+1+MAX_GOPHER_HOST_NAME+1+INTERNET_MAX_PORT_NUMBER_LENGTH+1+1+2) -#define GOPHER_TYPE_TEXT_FILE 1 -#define GOPHER_TYPE_DIRECTORY 2 -#define GOPHER_TYPE_CSO 4 -#define GOPHER_TYPE_ERROR 8 -#define GOPHER_TYPE_MAC_BINHEX 16 -#define GOPHER_TYPE_DOS_ARCHIVE 32 -#define GOPHER_TYPE_UNIX_UUENCODED 64 -#define GOPHER_TYPE_INDEX_SERVER 128 -#define GOPHER_TYPE_TELNET 256 -#define GOPHER_TYPE_BINARY 512 -#define GOPHER_TYPE_REDUNDANT 1024 -#define GOPHER_TYPE_TN3270 0x800 -#define GOPHER_TYPE_GIF 0x1000 -#define GOPHER_TYPE_IMAGE 0x2000 -#define GOPHER_TYPE_BITMAP 0x4000 -#define GOPHER_TYPE_MOVIE 0x8000 -#define GOPHER_TYPE_SOUND 0x10000 -#define GOPHER_TYPE_HTML 0x20000 -#define GOPHER_TYPE_PDF 0x40000 -#define GOPHER_TYPE_CALENDAR 0x80000 -#define GOPHER_TYPE_INLINE 0x100000 -#define GOPHER_TYPE_UNKNOWN 0x20000000 -#define GOPHER_TYPE_ASK 0x40000000 -#define GOPHER_TYPE_GOPHER_PLUS 0x80000000 -#define IS_GOPHER_FILE(t) (BOOL)(((t)&GOPHER_TYPE_FILE_MASK)?TRUE:FALSE) -#define IS_GOPHER_DIRECTORY(t) (BOOL)(((t)&GOPHER_TYPE_DIRECTORY)?TRUE:FALSE) -#define IS_GOPHER_PHONE_SERVER(t) (BOOL)(((t)&GOPHER_TYPE_CSO)?TRUE:FALSE) -#define IS_GOPHER_ERROR(t) (BOOL)(((t)&GOPHER_TYPE_ERROR)?TRUE:FALSE) -#define IS_GOPHER_INDEX_SERVER(t) (BOOL)(((t)&GOPHER_TYPE_INDEX_SERVER)?TRUE:FALSE) -#define IS_GOPHER_TELNET_SESSION(t) (BOOL)(((t)&GOPHER_TYPE_TELNET)?TRUE:FALSE) -#define IS_GOPHER_BACKUP_SERVER(t) (BOOL)(((t)&GOPHER_TYPE_REDUNDANT)?TRUE:FALSE) -#define IS_GOPHER_TN3270_SESSION(t) (BOOL)(((t)&GOPHER_TYPE_TN3270)?TRUE:FALSE) -#define IS_GOPHER_ASK(t) (BOOL)(((t)&GOPHER_TYPE_ASK)?TRUE:FALSE) -#define IS_GOPHER_PLUS(t) (BOOL)(((t)&GOPHER_TYPE_GOPHER_PLUS)?TRUE:FALSE) -#define IS_GOPHER_TYPE_KNOWN(t) (BOOL)(((t)&GOPHER_TYPE_UNKNOWN)?FALSE:TRUE) -#define GOPHER_TYPE_FILE_MASK (GOPHER_TYPE_TEXT_FILE|GOPHER_TYPE_MAC_BINHEX|GOPHER_TYPE_DOS_ARCHIVE|\ -GOPHER_TYPE_UNIX_UUENCODED|GOPHER_TYPE_BINARY|GOPHER_TYPE_GIF|GOPHER_TYPE_IMAGE|GOPHER_TYPE_BITMAP\ -|GOPHER_TYPE_MOVIE|GOPHER_TYPE_SOUND|GOPHER_TYPE_HTML|GOPHER_TYPE_PDF|GOPHER_TYPE_CALENDAR|GOPHER_TYPE_INLINE) -#define MAX_GOPHER_CATEGORY_NAME 128 -#define MAX_GOPHER_ATTRIBUTE_NAME 128 -#define MIN_GOPHER_ATTRIBUTE_LENGTH 256 -#define GOPHER_INFO_CATEGORY TEXT("+INFO") -#define GOPHER_ADMIN_CATEGORY TEXT("+ADMIN") -#define GOPHER_VIEWS_CATEGORY TEXT("+VIEWS") -#define GOPHER_ABSTRACT_CATEGORY TEXT("+ABSTRACT") -#define GOPHER_VERONICA_CATEGORY TEXT("+VERONICA") -#define GOPHER_ADMIN_ATTRIBUTE TEXT("Admin") -#define GOPHER_MOD_DATE_ATTRIBUTE TEXT("Mod-Date") -#define GOPHER_TTL_ATTRIBUTE TEXT("TTL") -#define GOPHER_SCORE_ATTRIBUTE TEXT("Score") -#define GOPHER_RANGE_ATTRIBUTE TEXT("Score-range") -#define GOPHER_SITE_ATTRIBUTE TEXT("Site") -#define GOPHER_ORG_ATTRIBUTE TEXT("Org") -#define GOPHER_LOCATION_ATTRIBUTE TEXT("Loc") -#define GOPHER_GEOG_ATTRIBUTE TEXT("Geog") -#define GOPHER_TIMEZONE_ATTRIBUTE TEXT("TZ") -#define GOPHER_PROVIDER_ATTRIBUTE TEXT("Provider") -#define GOPHER_VERSION_ATTRIBUTE TEXT("Version") -#define GOPHER_ABSTRACT_ATTRIBUTE TEXT("Abstract") -#define GOPHER_VIEW_ATTRIBUTE TEXT("View") -#define GOPHER_TREEWALK_ATTRIBUTE TEXT("treewalk") -#define GOPHER_ATTRIBUTE_ID_BASE 0xabcccc00 -#define GOPHER_CATEGORY_ID_ALL (GOPHER_ATTRIBUTE_ID_BASE+1) -#define GOPHER_CATEGORY_ID_INFO (GOPHER_ATTRIBUTE_ID_BASE+2) -#define GOPHER_CATEGORY_ID_ADMIN (GOPHER_ATTRIBUTE_ID_BASE+3) -#define GOPHER_CATEGORY_ID_VIEWS (GOPHER_ATTRIBUTE_ID_BASE+4) -#define GOPHER_CATEGORY_ID_ABSTRACT (GOPHER_ATTRIBUTE_ID_BASE+5) -#define GOPHER_CATEGORY_ID_VERONICA (GOPHER_ATTRIBUTE_ID_BASE+6) -#define GOPHER_CATEGORY_ID_ASK (GOPHER_ATTRIBUTE_ID_BASE+7) -#define GOPHER_CATEGORY_ID_UNKNOWN (GOPHER_ATTRIBUTE_ID_BASE+8) -#define GOPHER_ATTRIBUTE_ID_ALL (GOPHER_ATTRIBUTE_ID_BASE+9) -#define GOPHER_ATTRIBUTE_ID_ADMIN (GOPHER_ATTRIBUTE_ID_BASE+10) -#define GOPHER_ATTRIBUTE_ID_MOD_DATE (GOPHER_ATTRIBUTE_ID_BASE+11) -#define GOPHER_ATTRIBUTE_ID_TTL (GOPHER_ATTRIBUTE_ID_BASE+12) -#define GOPHER_ATTRIBUTE_ID_SCORE (GOPHER_ATTRIBUTE_ID_BASE+13) -#define GOPHER_ATTRIBUTE_ID_RANGE (GOPHER_ATTRIBUTE_ID_BASE+14) -#define GOPHER_ATTRIBUTE_ID_SITE (GOPHER_ATTRIBUTE_ID_BASE+15) -#define GOPHER_ATTRIBUTE_ID_ORG (GOPHER_ATTRIBUTE_ID_BASE+16) -#define GOPHER_ATTRIBUTE_ID_LOCATION (GOPHER_ATTRIBUTE_ID_BASE+17) -#define GOPHER_ATTRIBUTE_ID_GEOG (GOPHER_ATTRIBUTE_ID_BASE+18) -#define GOPHER_ATTRIBUTE_ID_TIMEZONE (GOPHER_ATTRIBUTE_ID_BASE+19) -#define GOPHER_ATTRIBUTE_ID_PROVIDER (GOPHER_ATTRIBUTE_ID_BASE+20) -#define GOPHER_ATTRIBUTE_ID_VERSION (GOPHER_ATTRIBUTE_ID_BASE+21) -#define GOPHER_ATTRIBUTE_ID_ABSTRACT (GOPHER_ATTRIBUTE_ID_BASE+22) -#define GOPHER_ATTRIBUTE_ID_VIEW (GOPHER_ATTRIBUTE_ID_BASE+23) -#define GOPHER_ATTRIBUTE_ID_TREEWALK (GOPHER_ATTRIBUTE_ID_BASE+24) -#define GOPHER_ATTRIBUTE_ID_UNKNOWN (GOPHER_ATTRIBUTE_ID_BASE+25) -#define HTTP_MAJOR_VERSION 1 -#define HTTP_MINOR_VERSION 0 -#define HTTP_VERSION TEXT("HTTP/1.0") -#define HTTP_QUERY_MIME_VERSION 0 -#define HTTP_QUERY_CONTENT_TYPE 1 -#define HTTP_QUERY_CONTENT_TRANSFER_ENCODING 2 -#define HTTP_QUERY_CONTENT_ID 3 -#define HTTP_QUERY_CONTENT_DESCRIPTION 4 -#define HTTP_QUERY_CONTENT_LENGTH 5 -#define HTTP_QUERY_CONTENT_LANGUAGE 6 -#define HTTP_QUERY_ALLOW 7 -#define HTTP_QUERY_PUBLIC 8 -#define HTTP_QUERY_DATE 9 -#define HTTP_QUERY_EXPIRES 10 -#define HTTP_QUERY_LAST_MODIFIED 11 -#define HTTP_QUERY_MESSAGE_ID 12 -#define HTTP_QUERY_URI 13 -#define HTTP_QUERY_DERIVED_FROM 14 -#define HTTP_QUERY_COST 15 -#define HTTP_QUERY_LINK 16 -#define HTTP_QUERY_PRAGMA 17 -#define HTTP_QUERY_VERSION 18 -#define HTTP_QUERY_STATUS_CODE 19 -#define HTTP_QUERY_STATUS_TEXT 20 -#define HTTP_QUERY_RAW_HEADERS 21 -#define HTTP_QUERY_RAW_HEADERS_CRLF 22 -#define HTTP_QUERY_CONNECTION 23 -#define HTTP_QUERY_ACCEPT 24 -#define HTTP_QUERY_ACCEPT_CHARSET 25 -#define HTTP_QUERY_ACCEPT_ENCODING 26 -#define HTTP_QUERY_ACCEPT_LANGUAGE 27 -#define HTTP_QUERY_AUTHORIZATION 28 -#define HTTP_QUERY_CONTENT_ENCODING 29 -#define HTTP_QUERY_FORWARDED 30 -#define HTTP_QUERY_FROM 31 -#define HTTP_QUERY_IF_MODIFIED_SINCE 32 -#define HTTP_QUERY_LOCATION 33 -#define HTTP_QUERY_ORIG_URI 34 -#define HTTP_QUERY_REFERER 35 -#define HTTP_QUERY_RETRY_AFTER 36 -#define HTTP_QUERY_SERVER 37 -#define HTTP_QUERY_TITLE 38 -#define HTTP_QUERY_USER_AGENT 39 -#define HTTP_QUERY_WWW_AUTHENTICATE 40 -#define HTTP_QUERY_PROXY_AUTHENTICATE 41 -#define HTTP_QUERY_ACCEPT_RANGES 42 -#define HTTP_QUERY_SET_COOKIE 43 -#define HTTP_QUERY_COOKIE 44 -#define HTTP_QUERY_REQUEST_METHOD 45 -#define HTTP_QUERY_MAX 45 -#define HTTP_QUERY_CUSTOM 65535 -#define HTTP_QUERY_FLAG_REQUEST_HEADERS 0x80000000 -#define HTTP_QUERY_FLAG_SYSTEMTIME 0x40000000 -#define HTTP_QUERY_FLAG_NUMBER 0x20000000 -#define HTTP_QUERY_FLAG_COALESCE 0x10000000 -#define HTTP_QUERY_MODIFIER_FLAGS_MASK (HTTP_QUERY_FLAG_REQUEST_HEADERS|HTTP_QUERY_FLAG_SYSTEMTIME|HTTP_QUERY_FLAG_NUMBER|HTTP_QUERY_FLAG_COALESCE) -#define HTTP_QUERY_HEADER_MASK (~HTTP_QUERY_MODIFIER_FLAGS_MASK) -#define HTTP_STATUS_OK 200 -#define HTTP_STATUS_CREATED 201 -#define HTTP_STATUS_ACCEPTED 202 -#define HTTP_STATUS_PARTIAL 203 -#define HTTP_STATUS_NO_CONTENT 204 -#define HTTP_STATUS_AMBIGUOUS 300 -#define HTTP_STATUS_MOVED 301 -#define HTTP_STATUS_REDIRECT 302 -#define HTTP_STATUS_REDIRECT_METHOD 303 -#define HTTP_STATUS_NOT_MODIFIED 304 -#define HTTP_STATUS_BAD_REQUEST 400 -#define HTTP_STATUS_DENIED 401 -#define HTTP_STATUS_PAYMENT_REQ 402 -#define HTTP_STATUS_FORBIDDEN 403 -#define HTTP_STATUS_NOT_FOUND 404 -#define HTTP_STATUS_BAD_METHOD 405 -#define HTTP_STATUS_NONE_ACCEPTABLE 406 -#define HTTP_STATUS_PROXY_AUTH_REQ 407 -#define HTTP_STATUS_REQUEST_TIMEOUT 408 -#define HTTP_STATUS_CONFLICT 409 -#define HTTP_STATUS_GONE 410 -#define HTTP_STATUS_AUTH_REFUSED 411 -#define HTTP_STATUS_SERVER_ERROR 500 -#define HTTP_STATUS_NOT_SUPPORTED 501 -#define HTTP_STATUS_BAD_GATEWAY 502 -#define HTTP_STATUS_SERVICE_UNAVAIL 503 -#define HTTP_STATUS_GATEWAY_TIMEOUT 504 -#define INTERNET_PREFETCH_PROGRESS 0 -#define INTERNET_PREFETCH_COMPLETE 1 -#define INTERNET_PREFETCH_ABORTED 2 -#define FLAGS_ERROR_UI_FILTER_FOR_ERRORS 0x01 -#define FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS 0x02 -#define FLAGS_ERROR_UI_FLAGS_GENERATE_DATA 0x04 -#define FLAGS_ERROR_UI_FLAGS_NO_UI 0x08 -#define HTTP_ADDREQ_INDEX_MASK 0x0000FFFF -#define HTTP_ADDREQ_FLAGS_MASK 0xFFFF0000 -#define HTTP_ADDREQ_FLAG_ADD_IF_NEW 0x10000000 -#define HTTP_ADDREQ_FLAG_ADD 0x20000000 -#define HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA 0x40000000 -#define HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON 0x01000000 -#define HTTP_ADDREQ_FLAG_COALESCE HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA -#define HTTP_ADDREQ_FLAG_REPLACE 0x80000000 -#define INTERNET_ERROR_BASE 12000 -#define ERROR_INTERNET_OUT_OF_HANDLES (INTERNET_ERROR_BASE+1) -#define ERROR_INTERNET_TIMEOUT (INTERNET_ERROR_BASE+2) -#define ERROR_INTERNET_EXTENDED_ERROR (INTERNET_ERROR_BASE+3) -#define ERROR_INTERNET_INTERNAL_ERROR (INTERNET_ERROR_BASE+4) -#define ERROR_INTERNET_INVALID_URL (INTERNET_ERROR_BASE+5) -#define ERROR_INTERNET_UNRECOGNIZED_SCHEME (INTERNET_ERROR_BASE+6) -#define ERROR_INTERNET_NAME_NOT_RESOLVED (INTERNET_ERROR_BASE+7) -#define ERROR_INTERNET_PROTOCOL_NOT_FOUND (INTERNET_ERROR_BASE+8) -#define ERROR_INTERNET_INVALID_OPTION (INTERNET_ERROR_BASE+9) -#define ERROR_INTERNET_BAD_OPTION_LENGTH (INTERNET_ERROR_BASE+10) -#define ERROR_INTERNET_OPTION_NOT_SETTABLE (INTERNET_ERROR_BASE+11) -#define ERROR_INTERNET_SHUTDOWN (INTERNET_ERROR_BASE+12) -#define ERROR_INTERNET_INCORRECT_USER_NAME (INTERNET_ERROR_BASE+13) -#define ERROR_INTERNET_INCORRECT_PASSWORD (INTERNET_ERROR_BASE+14) -#define ERROR_INTERNET_LOGIN_FAILURE (INTERNET_ERROR_BASE+15) -#define ERROR_INTERNET_INVALID_OPERATION (INTERNET_ERROR_BASE+16) -#define ERROR_INTERNET_OPERATION_CANCELLED (INTERNET_ERROR_BASE+17) -#define ERROR_INTERNET_INCORRECT_HANDLE_TYPE (INTERNET_ERROR_BASE+18) -#define ERROR_INTERNET_INCORRECT_HANDLE_STATE (INTERNET_ERROR_BASE+19) -#define ERROR_INTERNET_NOT_PROXY_REQUEST (INTERNET_ERROR_BASE+20) -#define ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND (INTERNET_ERROR_BASE+21) -#define ERROR_INTERNET_BAD_REGISTRY_PARAMETER (INTERNET_ERROR_BASE+22) -#define ERROR_INTERNET_NO_DIRECT_ACCESS (INTERNET_ERROR_BASE+23) -#define ERROR_INTERNET_NO_CONTEXT (INTERNET_ERROR_BASE+24) -#define ERROR_INTERNET_NO_CALLBACK (INTERNET_ERROR_BASE+25) -#define ERROR_INTERNET_REQUEST_PENDING (INTERNET_ERROR_BASE+26) -#define ERROR_INTERNET_INCORRECT_FORMAT (INTERNET_ERROR_BASE+27) -#define ERROR_INTERNET_ITEM_NOT_FOUND (INTERNET_ERROR_BASE+28) -#define ERROR_INTERNET_CANNOT_CONNECT (INTERNET_ERROR_BASE+29) -#define ERROR_INTERNET_CONNECTION_ABORTED (INTERNET_ERROR_BASE+30) -#define ERROR_INTERNET_CONNECTION_RESET (INTERNET_ERROR_BASE+31) -#define ERROR_INTERNET_FORCE_RETRY (INTERNET_ERROR_BASE+32) -#define ERROR_INTERNET_INVALID_PROXY_REQUEST (INTERNET_ERROR_BASE+33) -#define ERROR_INTERNET_NEED_UI (INTERNET_ERROR_BASE+34) -#define ERROR_INTERNET_HANDLE_EXISTS (INTERNET_ERROR_BASE+36) -#define ERROR_INTERNET_SEC_CERT_DATE_INVALID (INTERNET_ERROR_BASE+37) -#define ERROR_INTERNET_SEC_CERT_CN_INVALID (INTERNET_ERROR_BASE+38) -#define ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR (INTERNET_ERROR_BASE+39) -#define ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR (INTERNET_ERROR_BASE+40) -#define ERROR_INTERNET_MIXED_SECURITY (INTERNET_ERROR_BASE+41) -#define ERROR_INTERNET_CHG_POST_IS_NON_SECURE (INTERNET_ERROR_BASE+42) -#define ERROR_INTERNET_POST_IS_NON_SECURE (INTERNET_ERROR_BASE+43) -#define ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED (INTERNET_ERROR_BASE+44) -#define ERROR_INTERNET_INVALID_CA (INTERNET_ERROR_BASE+45) -#define ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP (INTERNET_ERROR_BASE+46) -#define ERROR_INTERNET_ASYNC_THREAD_FAILED (INTERNET_ERROR_BASE+47) -#define ERROR_INTERNET_REDIRECT_SCHEME_CHANGE (INTERNET_ERROR_BASE+48) -#define ERROR_FTP_TRANSFER_IN_PROGRESS (INTERNET_ERROR_BASE+110) -#define ERROR_FTP_DROPPED (INTERNET_ERROR_BASE+111) -#define ERROR_GOPHER_PROTOCOL_ERROR (INTERNET_ERROR_BASE+130) -#define ERROR_GOPHER_NOT_FILE (INTERNET_ERROR_BASE+131) -#define ERROR_GOPHER_DATA_ERROR (INTERNET_ERROR_BASE+132) -#define ERROR_GOPHER_END_OF_DATA (INTERNET_ERROR_BASE+133) -#define ERROR_GOPHER_INVALID_LOCATOR (INTERNET_ERROR_BASE+134) -#define ERROR_GOPHER_INCORRECT_LOCATOR_TYPE (INTERNET_ERROR_BASE+135) -#define ERROR_GOPHER_NOT_GOPHER_PLUS (INTERNET_ERROR_BASE+136) -#define ERROR_GOPHER_ATTRIBUTE_NOT_FOUND (INTERNET_ERROR_BASE+137) -#define ERROR_GOPHER_UNKNOWN_LOCATOR (INTERNET_ERROR_BASE+138) -#define ERROR_HTTP_HEADER_NOT_FOUND (INTERNET_ERROR_BASE+150) -#define ERROR_HTTP_DOWNLEVEL_SERVER (INTERNET_ERROR_BASE+151) -#define ERROR_HTTP_INVALID_SERVER_RESPONSE (INTERNET_ERROR_BASE+152) -#define ERROR_HTTP_INVALID_HEADER (INTERNET_ERROR_BASE+153) -#define ERROR_HTTP_INVALID_QUERY_REQUEST (INTERNET_ERROR_BASE+154) -#define ERROR_HTTP_HEADER_ALREADY_EXISTS (INTERNET_ERROR_BASE+155) -#define ERROR_HTTP_REDIRECT_FAILED (INTERNET_ERROR_BASE+156) -#define ERROR_HTTP_NOT_REDIRECTED (INTERNET_ERROR_BASE+160) -#define ERROR_INTERNET_SECURITY_CHANNEL_ERROR (INTERNET_ERROR_BASE+157) -#define ERROR_INTERNET_UNABLE_TO_CACHE_FILE (INTERNET_ERROR_BASE+158) -#define ERROR_INTERNET_TCPIP_NOT_INSTALLED (INTERNET_ERROR_BASE+159) -#define INTERNET_ERROR_LAST ERROR_INTERNET_TCPIP_NOT_INSTALLED -#define URLCACHEAPI DECLSPEC_IMPORT -#define NORMAL_CACHE_ENTRY 1 -#define STABLE_CACHE_ENTRY 2 -#define STICKY_CACHE_ENTRY 4 -#define SPARSE_CACHE_ENTRY 0x10000 -#define OCX_CACHE_ENTRY 0x20000 -#define COOKIE_CACHE_ENTRY 0x100000 -#define URLHISTORY_CACHE_ENTRY 0x200000 -#define CACHE_ENTRY_ATTRIBUTE_FC 4 -#define CACHE_ENTRY_HITRATE_FC 0x10 -#define CACHE_ENTRY_MODTIME_FC 0x40 -#define CACHE_ENTRY_EXPTIME_FC 0x80 -#define CACHE_ENTRY_ACCTIME_FC 0x100 -#define CACHE_ENTRY_SYNCTIME_FC 0x200 -#define CACHE_ENTRY_HEADERINFO_FC 0x400 -#define HSR_ASYNC WININET_API_FLAG_ASYNC -#define HSR_SYNC WININET_API_FLAG_SYNC -#define HSR_USE_CONTEXT WININET_API_FLAG_USE_CONTEXT -#define HSR_INITIATE 8 -#define HSR_DOWNLOAD 16 -#define HSR_CHUNKED 32 -#define INTERNET_DIAL_UNATTENDED 0x8000 -#define INTERNET_DIALSTATE_DISCONNECTED 1 -#define INTERENT_GOONLINE_REFRESH 1 -#define INTERENT_GOONLINE_MASK 1 -#define INTERNET_AUTODIAL_FORCE_ONLINE 1 -#define INTERNET_AUTODIAL_FORCE_UNATTENDED 2 -#define INTERNET_AUTODIAL_FAILIFSECURITYCHECK 4 -#define INTERNET_CONNECTION_MODEM 1 -#define INTERNET_CONNECTION_LAN 2 -#define INTERNET_CONNECTION_PROXY 4 -#define INTERNET_CONNECTION_MODEM_BUSY 8 - -#ifndef RC_INVOKED -typedef PVOID HINTERNET; -typedef HINTERNET *LPHINTERNET; -typedef WORD INTERNET_PORT,*LPINTERNET_PORT; -typedef enum { - INTERNET_SCHEME_PARTIAL = -2, INTERNET_SCHEME_UNKNOWN = -1, - INTERNET_SCHEME_DEFAULT = 0, INTERNET_SCHEME_FTP, INTERNET_SCHEME_GOPHER, - INTERNET_SCHEME_HTTP, INTERNET_SCHEME_HTTPS, INTERNET_SCHEME_FILE, - INTERNET_SCHEME_NEWS, INTERNET_SCHEME_MAILTO, INTERNET_SCHEME_SOCKS, - INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP, INTERNET_SCHEME_LAST = INTERNET_SCHEME_SOCKS -} INTERNET_SCHEME,*LPINTERNET_SCHEME; -typedef struct { DWORD dwResult; DWORD dwError; } INTERNET_ASYNC_RESULT,*LPINTERNET_ASYNC_RESULT; -typedef struct { DWORD dwStatus; DWORD dwSize; } INTERNET_PREFETCH_STATUS,*LPINTERNET_PREFETCH_STATUS; -typedef struct { - DWORD dwAccessType; - LPCTSTR lpszProxy; - LPCTSTR lpszProxyBypass; -} INTERNET_PROXY_INFO,*LPINTERNET_PROXY_INFO; -typedef struct { - DWORD dwMajorVersion; - DWORD dwMinorVersion; -} INTERNET_VERSION_INFO,*LPINTERNET_VERSION_INFO; -typedef struct { - DWORD dwStructSize; - LPSTR lpszScheme; - DWORD dwSchemeLength; - INTERNET_SCHEME nScheme; - LPSTR lpszHostName; - DWORD dwHostNameLength; - INTERNET_PORT nPort; - LPSTR lpszUserName; - DWORD dwUserNameLength; - LPSTR lpszPassword; - DWORD dwPasswordLength; - LPSTR lpszUrlPath; - DWORD dwUrlPathLength; - LPSTR lpszExtraInfo; - DWORD dwExtraInfoLength; -} URL_COMPONENTSA,*LPURL_COMPONENTSA; -typedef struct { - DWORD dwStructSize; - LPWSTR lpszScheme; - DWORD dwSchemeLength; - INTERNET_SCHEME nScheme; - LPWSTR lpszHostName; - DWORD dwHostNameLength; - INTERNET_PORT nPort; - LPWSTR lpszUserName; - DWORD dwUserNameLength; - LPWSTR lpszPassword; - DWORD dwPasswordLength; - LPWSTR lpszUrlPath; - DWORD dwUrlPathLength; - LPWSTR lpszExtraInfo; - DWORD dwExtraInfoLength; -} URL_COMPONENTSW,*LPURL_COMPONENTSW; -typedef struct { - FILETIME ftExpiry; - FILETIME ftStart; - LPTSTR lpszSubjectInfo; - LPTSTR lpszIssuerInfo; - LPTSTR lpszProtocolName; - LPTSTR lpszSignatureAlgName; - LPTSTR lpszEncryptionAlgName; - DWORD dwKeySize; -} INTERNET_CERTIFICATE_INFO,*LPINTERNET_CERTIFICATE_INFO; -typedef VOID (CALLBACK * INTERNET_STATUS_CALLBACK)(HINTERNET,DWORD,DWORD,PVOID,DWORD); -typedef INTERNET_STATUS_CALLBACK * LPINTERNET_STATUS_CALLBACK; -typedef struct { - CHAR DisplayString[MAX_GOPHER_DISPLAY_TEXT+1]; - DWORD GopherType; - DWORD SizeLow; - DWORD SizeHigh; - FILETIME LastModificationTime; - CHAR Locator[MAX_GOPHER_LOCATOR_LENGTH+1]; -} GOPHER_FIND_DATAA,*LPGOPHER_FIND_DATAA; -typedef struct { - WCHAR DisplayString[MAX_GOPHER_DISPLAY_TEXT+1]; - DWORD GopherType; - DWORD SizeLow; - DWORD SizeHigh; - FILETIME LastModificationTime; - WCHAR Locator[MAX_GOPHER_LOCATOR_LENGTH+1]; -} GOPHER_FIND_DATAW,*LPGOPHER_FIND_DATAW; -typedef struct { - LPCTSTR Comment; - LPCTSTR EmailAddress; -} GOPHER_ADMIN_ATTRIBUTE_TYPE,*LPGOPHER_ADMIN_ATTRIBUTE_TYPE; -typedef struct {FILETIME DateAndTime;} GOPHER_MOD_DATE_ATTRIBUTE_TYPE,*LPGOPHER_MOD_DATE_ATTRIBUTE_TYPE; -typedef struct {DWORD Ttl;} GOPHER_TTL_ATTRIBUTE_TYPE,*LPGOPHER_TTL_ATTRIBUTE_TYPE; -typedef struct {INT Score;} GOPHER_SCORE_ATTRIBUTE_TYPE,*LPGOPHER_SCORE_ATTRIBUTE_TYPE; -typedef struct { - INT LowerBound; - INT UpperBound; -} GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE,*LPGOPHER_SCORE_RANGE_ATTRIBUTE_TYPE; -typedef struct {LPCTSTR Site;} GOPHER_SITE_ATTRIBUTE_TYPE,*LPGOPHER_SITE_ATTRIBUTE_TYPE; -typedef struct {LPCTSTR Organization;} GOPHER_ORGANIZATION_ATTRIBUTE_TYPE,*LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPE; -typedef struct {LPCTSTR Location;} GOPHER_LOCATION_ATTRIBUTE_TYPE,*LPGOPHER_LOCATION_ATTRIBUTE_TYPE; -typedef struct { - INT DegreesNorth; - INT MinutesNorth; - INT SecondsNorth; - INT DegreesEast; - INT MinutesEast; - INT SecondsEast; -} GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE,*LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE; -typedef struct {INT Zone;} GOPHER_TIMEZONE_ATTRIBUTE_TYPE,*LPGOPHER_TIMEZONE_ATTRIBUTE_TYPE; -typedef struct {LPCTSTR Provider;} GOPHER_PROVIDER_ATTRIBUTE_TYPE,*LPGOPHER_PROVIDER_ATTRIBUTE_TYPE; -typedef struct {LPCTSTR Version;} GOPHER_VERSION_ATTRIBUTE_TYPE,*LPGOPHER_VERSION_ATTRIBUTE_TYPE; -typedef struct { - LPCTSTR ShortAbstract; - LPCTSTR AbstractFile; -} GOPHER_ABSTRACT_ATTRIBUTE_TYPE,*LPGOPHER_ABSTRACT_ATTRIBUTE_TYPE; -typedef struct { - LPCTSTR ContentType; - LPCTSTR Language; - DWORD Size; -} GOPHER_VIEW_ATTRIBUTE_TYPE,*LPGOPHER_VIEW_ATTRIBUTE_TYPE; -typedef struct {BOOL TreeWalk;} GOPHER_VERONICA_ATTRIBUTE_TYPE,*LPGOPHER_VERONICA_ATTRIBUTE_TYPE; -typedef struct { - LPCTSTR QuestionType; - LPCTSTR QuestionText; -} GOPHER_ASK_ATTRIBUTE_TYPE,*LPGOPHER_ASK_ATTRIBUTE_TYPE; -typedef struct {LPCTSTR Text;} GOPHER_UNKNOWN_ATTRIBUTE_TYPE,*LPGOPHER_UNKNOWN_ATTRIBUTE_TYPE; -typedef struct { - DWORD CategoryId; - DWORD AttributeId; - union { - GOPHER_ADMIN_ATTRIBUTE_TYPE Admin; - GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate; - GOPHER_TTL_ATTRIBUTE_TYPE Ttl; - GOPHER_SCORE_ATTRIBUTE_TYPE Score; - GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange; - GOPHER_SITE_ATTRIBUTE_TYPE Site; - GOPHER_ORGANIZATION_ATTRIBUTE_TYPE Organization; - GOPHER_LOCATION_ATTRIBUTE_TYPE Location; - GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE GeographicalLocation; - GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone; - GOPHER_PROVIDER_ATTRIBUTE_TYPE Provider; - GOPHER_VERSION_ATTRIBUTE_TYPE Version; - GOPHER_ABSTRACT_ATTRIBUTE_TYPE Abstract; - GOPHER_VIEW_ATTRIBUTE_TYPE View; - GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica; - GOPHER_ASK_ATTRIBUTE_TYPE Ask; - GOPHER_UNKNOWN_ATTRIBUTE_TYPE Unknown; - } AttributeType; -} GOPHER_ATTRIBUTE_TYPE,*LPGOPHER_ATTRIBUTE_TYPE; -typedef BOOL(CALLBACK *GOPHER_ATTRIBUTE_ENUMERATOR)(LPGOPHER_ATTRIBUTE_TYPE,DWORD); -typedef struct _INTERNET_CACHE_ENTRY_INFOA { - DWORD dwStructSize; - LPSTR lpszSourceUrlName; - LPSTR lpszLocalFileName; - DWORD CacheEntryType; - DWORD dwUseCount; - DWORD dwHitRate; - DWORD dwSizeLow; - DWORD dwSizeHigh; - FILETIME LastModifiedTime; - FILETIME ExpireTime; - FILETIME LastAccessTime; - FILETIME LastSyncTime; - PBYTE lpHeaderInfo; - DWORD dwHeaderInfoSize; - LPSTR lpszFileExtension; - DWORD dwReserved; -} INTERNET_CACHE_ENTRY_INFOA,*LPINTERNET_CACHE_ENTRY_INFOA; -typedef struct _INTERNET_CACHE_ENTRY_INFOW { - DWORD dwStructSize; - LPSTR lpszSourceUrlName; - LPWSTR lpszLocalFileName; - DWORD CacheEntryType; - DWORD dwUseCount; - DWORD dwHitRate; - DWORD dwSizeLow; - DWORD dwSizeHigh; - FILETIME LastModifiedTime; - FILETIME ExpireTime; - FILETIME LastAccessTime; - FILETIME LastSyncTime; - PBYTE lpHeaderInfo; - DWORD dwHeaderInfoSize; - LPWSTR lpszFileExtension; - DWORD dwReserved; -} INTERNET_CACHE_ENTRY_INFOW,*LPINTERNET_CACHE_ENTRY_INFOW; -typedef struct _INTERNET_BUFFERSA { - DWORD dwStructSize; - struct _INTERNET_BUFFERSA *Next; - LPCSTR lpcszHeader; - DWORD dwHeadersLength; - DWORD dwHeadersTotal; - LPVOID lpvBuffer; - DWORD dwBufferLength; - DWORD dwBufferTotal; - DWORD dwOffsetLow; - DWORD dwOffsetHigh; -} INTERNET_BUFFERSA,*LPINTERNET_BUFFERSA; -typedef struct _INTERNET_BUFFERSW { - DWORD dwStructSize; - struct _INTERNET_BUFFERS *Next; - LPCWSTR lpcszHeader; - DWORD dwHeadersLength; - DWORD dwHeadersTotal; - LPVOID lpvBuffer; - DWORD dwBufferLength; - DWORD dwBufferTotal; - DWORD dwOffsetLow; - DWORD dwOffsetHigh; -} INTERNET_BUFFERSW,*LPINTERNET_BUFFERSW; - -#ifdef UNICODE -typedef URL_COMPONENTSW URL_COMPONENTS; -typedef LPURL_COMPONENTSW LPURL_COMPONENTS; -typedef GOPHER_FIND_DATAW GOPHER_FIND_DATA; -typedef LPGOPHER_FIND_DATAW LPGOPHER_FIND_DATA; -typedef INTERNET_CACHE_ENTRY_INFOW INTERNET_CACHE_ENTRY_INFO; -typedef LPINTERNET_CACHE_ENTRY_INFOW LPINTERNET_CACHE_ENTRY_INFO; -typedef INTERNET_BUFFERSW INTERNET_BUFFERS,*LPINTERNET_BUFFERS; -#else -typedef URL_COMPONENTSA URL_COMPONENTS; -typedef LPURL_COMPONENTSA LPURL_COMPONENTS; -typedef GOPHER_FIND_DATAA GOPHER_FIND_DATA; -typedef LPGOPHER_FIND_DATAA LPGOPHER_FIND_DATA; -typedef INTERNET_CACHE_ENTRY_INFOA INTERNET_CACHE_ENTRY_INFO; -typedef LPINTERNET_CACHE_ENTRY_INFOA LPINTERNET_CACHE_ENTRY_INFO; -typedef INTERNET_BUFFERSA INTERNET_BUFFERS,*LPINTERNET_BUFFERS; -#endif -BOOL WINAPI InternetTimeFromSystemTime(SYSTEMTIME*,DWORD,LPSTR,DWORD); -BOOL WINAPI InternetTimeToSystemTime(LPCSTR,SYSTEMTIME*,DWORD); -BOOL WINAPI InternetDebugGetLocalTime(SYSTEMTIME*,PDWORD); -BOOL WINAPI InternetCrackUrlA(LPCSTR,DWORD,DWORD,LPURL_COMPONENTSA); -BOOL WINAPI InternetCrackUrlW(LPCWSTR,DWORD,DWORD,LPURL_COMPONENTSW); -BOOL WINAPI InternetCreateUrlA(LPURL_COMPONENTSA,DWORD,LPSTR,PDWORD); -BOOL WINAPI InternetCreateUrlW(LPURL_COMPONENTSW,DWORD,LPWSTR,PDWORD); -BOOL WINAPI InternetCanonicalizeUrlA(LPCSTR,LPSTR,PDWORD,DWORD); -BOOL WINAPI InternetCanonicalizeUrlW(LPCWSTR,LPWSTR,PDWORD,DWORD); -BOOL WINAPI InternetCombineUrlA(LPCSTR,LPCSTR,LPSTR,PDWORD,DWORD); -BOOL WINAPI InternetCombineUrlW(LPCWSTR,LPCWSTR,LPWSTR,PDWORD,DWORD); -HINTERNET WINAPI InternetOpenA(LPCSTR,DWORD,LPCSTR,LPCSTR,DWORD); -HINTERNET WINAPI InternetOpenW(LPCWSTR,DWORD,LPCWSTR,LPCWSTR,DWORD); -BOOL WINAPI InternetCloseHandle(HINTERNET); -HINTERNET WINAPI InternetConnectA(HINTERNET,LPCSTR,INTERNET_PORT,LPCSTR,LPCSTR,DWORD,DWORD,DWORD); -HINTERNET WINAPI InternetConnectW(HINTERNET,LPCWSTR,INTERNET_PORT,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD); -HINTERNET WINAPI InternetOpenUrlA(HINTERNET,LPCSTR,LPCSTR,DWORD,DWORD,DWORD); -HINTERNET WINAPI InternetOpenUrlW(HINTERNET,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD); -BOOL WINAPI InternetReadFile(HINTERNET,PVOID,DWORD,PDWORD); -DWORD WINAPI InternetSetFilePointer( HINTERNET,LONG,PVOID,DWORD,DWORD); -BOOL WINAPI InternetWriteFile(HINTERNET,LPCVOID,DWORD,PDWORD); -BOOL WINAPI InternetQueryDataAvailable( HINTERNET,PDWORD,DWORD,DWORD); -BOOL WINAPI InternetFindNextFileA(HINTERNET,PVOID); -BOOL WINAPI InternetFindNextFileW(HINTERNET,PVOID); -BOOL WINAPI InternetQueryOptionA(HINTERNET,DWORD,PVOID,PDWORD); -BOOL WINAPI InternetQueryOptionW(HINTERNET,DWORD,PVOID,PDWORD); -BOOL WINAPI InternetSetOptionA(HINTERNET,DWORD,PVOID,DWORD); -BOOL WINAPI InternetSetOptionW(HINTERNET,DWORD,PVOID,DWORD); -BOOL WINAPI InternetSetOptionExA(HINTERNET,DWORD,PVOID,DWORD,DWORD); -BOOL WINAPI InternetSetOptionExW(HINTERNET,DWORD,PVOID,DWORD,DWORD); -BOOL WINAPI InternetGetLastResponseInfoA(PDWORD,LPSTR,PDWORD); -BOOL WINAPI InternetGetLastResponseInfoW(PDWORD,LPWSTR,PDWORD); -INTERNET_STATUS_CALLBACK WINAPI InternetSetStatusCallback(HINTERNET,INTERNET_STATUS_CALLBACK); -HINTERNET WINAPI FtpFindFirstFileA(HINTERNET,LPCSTR,LPWIN32_FIND_DATA,DWORD,DWORD); -HINTERNET WINAPI FtpFindFirstFileW(HINTERNET,LPCWSTR,LPWIN32_FIND_DATA,DWORD,DWORD); -BOOL WINAPI FtpGetFileA(HINTERNET,LPCSTR,LPCSTR,BOOL,DWORD,DWORD,DWORD); -BOOL WINAPI FtpGetFileW( HINTERNET,LPCWSTR,LPCWSTR,BOOL,DWORD,DWORD,DWORD); -BOOL WINAPI FtpPutFileA(HINTERNET,LPCSTR,LPCSTR,DWORD,DWORD); -BOOL WINAPI FtpPutFileW(HINTERNET,LPCWSTR,LPCWSTR,DWORD,DWORD); -BOOL WINAPI FtpDeleteFileA(HINTERNET,LPCSTR); -BOOL WINAPI FtpDeleteFileW(HINTERNET,LPCWSTR); -BOOL WINAPI FtpRenameFileA(HINTERNET, LPCSTR,LPCSTR); -BOOL WINAPI FtpRenameFileW(HINTERNET,LPCWSTR,LPCWSTR); -HINTERNET WINAPI FtpOpenFileA(HINTERNET,LPCSTR,DWORD,DWORD,DWORD); -HINTERNET WINAPI FtpOpenFileW(HINTERNET,LPCWSTR,DWORD,DWORD,DWORD); -BOOL WINAPI FtpCreateDirectoryA(HINTERNET,LPCSTR); -BOOL WINAPI FtpCreateDirectoryW(HINTERNET,LPCWSTR); -BOOL WINAPI FtpRemoveDirectoryA(HINTERNET,LPCSTR); -BOOL WINAPI FtpRemoveDirectoryW(HINTERNET,LPCWSTR); -BOOL WINAPI FtpSetCurrentDirectoryA(HINTERNET,LPCSTR); -BOOL WINAPI FtpSetCurrentDirectoryW(HINTERNET,LPCWSTR); -BOOL WINAPI FtpGetCurrentDirectoryA(HINTERNET,LPSTR,PDWORD); -BOOL WINAPI FtpGetCurrentDirectoryW(HINTERNET,LPWSTR,PDWORD); -BOOL WINAPI FtpCommandA(HINTERNET,BOOL,DWORD,LPCSTR,DWORD); -BOOL WINAPI FtpCommandW( HINTERNET,BOOL,DWORD,LPCWSTR,DWORD); -BOOL WINAPI GopherCreateLocatorA(LPCSTR,INTERNET_PORT,LPCSTR,LPCSTR,DWORD,LPSTR,PDWORD); -BOOL WINAPI GopherCreateLocatorW(LPCWSTR,INTERNET_PORT,LPCWSTR,LPCWSTR,DWORD,LPWSTR,PDWORD); -BOOL WINAPI GopherGetLocatorTypeA(LPCSTR,PDWORD); -BOOL WINAPI GopherGetLocatorTypeW(LPCWSTR,PDWORD); -HINTERNET WINAPI GopherFindFirstFileA(HINTERNET,LPCSTR,LPCSTR,LPGOPHER_FIND_DATAA,DWORD,DWORD); -HINTERNET WINAPI GopherFindFirstFileW(HINTERNET,LPCWSTR,LPCWSTR,LPGOPHER_FIND_DATAW,DWORD,DWORD); -HINTERNET WINAPI GopherOpenFileA(HINTERNET,LPCSTR,LPCSTR,DWORD,DWORD); -HINTERNET WINAPI GopherOpenFileW(HINTERNET,LPCWSTR,LPCWSTR,DWORD,DWORD); -BOOL WINAPI GopherGetAttributeA(HINTERNET,LPCSTR,LPCSTR,LPBYTE,DWORD,PDWORD,GOPHER_ATTRIBUTE_ENUMERATOR,DWORD); -BOOL WINAPI GopherGetAttributeW(HINTERNET,LPCWSTR, -LPCWSTR, LPBYTE, DWORD, PDWORD, GOPHER_ATTRIBUTE_ENUMERATOR, DWORD); -HINTERNET WINAPI HttpOpenRequestA(HINTERNET,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR *,DWORD,DWORD); -HINTERNET WINAPI HttpOpenRequestW(HINTERNET,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR FAR * lplpszAcceptTypes , DWORD dwFlags, DWORD dwContext); -BOOL WINAPI HttpAddRequestHeadersA(HINTERNET,LPCSTR,DWORD,DWORD); -BOOL WINAPI HttpAddRequestHeadersW(HINTERNET,LPCWSTR,DWORD,DWORD); -BOOL WINAPI HttpSendRequestA(HINTERNET,LPCSTR,DWORD,PVOID,DWORD); -BOOL WINAPI HttpSendRequestW(HINTERNET,LPCWSTR,DWORD,PVOID,DWORD); -BOOL WINAPI HttpQueryInfoA(HINTERNET,DWORD,PVOID,PDWORD,PDWORD); -BOOL WINAPI HttpQueryInfoW(HINTERNET,DWORD,PVOID,PDWORD,PDWORD); -BOOL WINAPI InternetSetCookieA(LPCSTR,LPCSTR,LPCSTR); -BOOL WINAPI InternetSetCookieW(LPCSTR,LPCWSTR,LPCWSTR); -BOOL WINAPI InternetGetCookieA(LPCSTR,LPCSTR,LPSTR,PDWORD); -BOOL WINAPI InternetGetCookieW(LPCSTR,LPCWSTR,LPWSTR,PDWORD); -DWORD WINAPI InternetAttemptConnect(DWORD); -DWORD WINAPI InternetErrorDlg(HWND,HINTERNET,DWORD,DWORD,PVOID *); -DWORD WINAPI InternetConfirmZoneCrossing(HWND,LPSTR,LPSTR,BOOL); -BOOL WINAPI CreateUrlCacheEntryA(LPCSTR,DWORD,LPCSTR,LPSTR,DWORD); -BOOL WINAPI CreateUrlCacheEntryW(LPCSTR,DWORD,LPCSTR,LPWSTR,DWORD); -BOOL WINAPI CommitUrlCacheEntryA(LPCSTR,LPCSTR,FILETIME,FILETIME,DWORD,LPBYTE,DWORD,LPCSTR,DWORD); -BOOL WINAPI CommitUrlCacheEntryW(LPCSTR,LPCWSTR,FILETIME,FILETIME,DWORD,LPBYTE,DWORD,LPCWSTR,DWORD); -BOOL WINAPI RetrieveUrlCacheEntryFileA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD,DWORD); -BOOL WINAPI RetrieveUrlCacheEntryFileW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD,DWORD); -BOOL WINAPI UnlockUrlCacheEntryFile(LPCSTR,DWORD); -HANDLE WINAPI RetrieveUrlCacheEntryStreamA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD,BOOL,DWORD); -HANDLE WINAPI RetrieveUrlCacheEntryStreamW( LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD,BOOL,DWORD); -BOOL WINAPI ReadUrlCacheEntryStream(HANDLE,DWORD,PVOID,PDWORD,DWORD); -BOOL WINAPI UnlockUrlCacheEntryStream( HANDLE,DWORD); -BOOL WINAPI GetUrlCacheEntryInfoA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD); -BOOL WINAPI GetUrlCacheEntryInfoW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD); -BOOL WINAPI SetUrlCacheEntryInfoA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,DWORD); -BOOL WINAPI SetUrlCacheEntryInfoW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,DWORD); -HANDLE WINAPI FindFirstUrlCacheEntryA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD); -HANDLE WINAPI FindFirstUrlCacheEntryW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD); -BOOL WINAPI FindNextUrlCacheEntryA(HANDLE,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD); -BOOL WINAPI FindNextUrlCacheEntryW(HANDLE,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD); -BOOL WINAPI FindCloseUrlCache(HANDLE); -BOOL WINAPI DeleteUrlCacheEntry(LPCSTR); -DWORD AuthenticateUser(PVOID*,LPSTR,LPSTR,DWORD,LPSTR,DWORD,LPSTR,LPSTR); -BOOL WINAPI HttpSendRequestExA(HINTERNET,LPINTERNET_BUFFERSA,LPINTERNET_BUFFERSA,DWORD,DWORD); -BOOL WINAPI HttpSendRequestExW(HINTERNET,LPINTERNET_BUFFERSW,LPINTERNET_BUFFERSW,DWORD,DWORD); -BOOL WINAPI HttpEndRequestA(HINTERNET,LPINTERNET_BUFFERSA,DWORD,DWORD); -BOOL WINAPI HttpEndRequestW(HINTERNET,LPINTERNET_BUFFERSW,DWORD,DWORD); -DWORD WINAPI InternetDial(HWND,LPTSTR,DWORD,LPDWORD,DWORD); -DWORD WINAPI InternetHangUp(DWORD,DWORD); -BOOL WINAPI InternetGoOnline(LPTSTR,HWND,DWORD); -BOOL WINAPI InternetAutodial(DWORD,DWORD); -BOOL WINAPI InternetAutodialHangup(DWORD); -BOOL WINAPI InternetGetConnectedState(LPDWORD,DWORD); -BOOL WINAPI InternetSetDialState(LPCTSTR,DWORD,DWORD); - -#ifdef UNICODE -#define InternetCrackUrl InternetCrackUrlW -#define InternetCreateUrl InternetCreateUrlW -#define InternetCanonicalizeUrl InternetCanonicalizeUrlW -#define InternetCombineUrl InternetCombineUrlW -#define InternetOpen InternetOpenW -#define InternetConnect InternetConnectW -#define InternetOpenUrl InternetOpenUrlW -#define InternetFindNextFile InternetFindNextFileW -#define InternetQueryOption InternetQueryOptionW -#define InternetSetOption InternetSetOptionW -#define InternetSetOptionEx InternetSetOptionExW -#define InternetGetLastResponseInfo InternetGetLastResponseInfoW -#define FtpFindFirstFile FtpFindFirstFileW -#define FtpGetFile FtpGetFileW -#define FtpPutFile FtpPutFileW -#define FtpDeleteFile FtpDeleteFileW -#define FtpRenameFile FtpRenameFileW -#define FtpOpenFile FtpOpenFileW -#define FtpCreateDirectory FtpCreateDirectoryW -#define FtpRemoveDirectory FtpRemoveDirectoryW -#define FtpSetCurrentDirectory FtpSetCurrentDirectoryW -#define FtpGetCurrentDirectory FtpGetCurrentDirectoryW -#define FtpCommand FtpCommandW -#define GopherGetLocatorType GopherGetLocatorTypeW -#define GopherCreateLocator GopherCreateLocatorW -#define GopherFindFirstFile GopherFindFirstFileW -#define GopherOpenFile GopherOpenFileW -#define GopherGetAttribute GopherGetAttributeW -#define HttpSendRequest HttpSendRequestW -#define HttpOpenRequest HttpOpenRequestW -#define HttpAddRequestHeaders HttpAddRequestHeadersW -#define HttpQueryInfo HttpQueryInfoW -#define InternetSetCookie InternetSetCookieW -#define InternetGetCookie InternetGetCookieW -#define CreateUrlCacheEntry CreateUrlCacheEntryW -#define RetrieveUrlCacheEntryStream RetrieveUrlCacheEntryStreamW -#define FindNextUrlCacheEntry FindNextUrlCacheEntryW -#define CommitUrlCacheEntry CommitUrlCacheEntryW -#define GetUrlCacheEntryInfo GetUrlCacheEntryInfoW -#define SetUrlCacheEntryInfo SetUrlCacheEntryInfoW -#define FindFirstUrlCacheEntry FindFirstUrlCacheEntryW -#define RetrieveUrlCacheEntryFile RetrieveUrlCacheEntryFileW -#define HttpSendRequestEx HttpSendRequestExW -#define HttpEndRequest HttpEndRequestW -#else -#define GopherGetAttribute GopherGetAttributeA -#define InternetCrackUrl InternetCrackUrlA -#define InternetCreateUrl InternetCreateUrlA -#define InternetCanonicalizeUrl InternetCanonicalizeUrlA -#define InternetCombineUrl InternetCombineUrlA -#define InternetOpen InternetOpenA -#define InternetConnect InternetConnectA -#define InternetOpenUrl InternetOpenUrlA -#define InternetFindNextFile InternetFindNextFileA -#define InternetQueryOption InternetQueryOptionA -#define InternetSetOption InternetSetOptionA -#define InternetSetOptionEx InternetSetOptionExA -#define InternetGetLastResponseInfo InternetGetLastResponseInfoA -#define FtpFindFirstFile FtpFindFirstFileA -#define FtpGetFile FtpGetFileA -#define FtpPutFile FtpPutFileA -#define FtpDeleteFile FtpDeleteFileA -#define FtpRenameFile FtpRenameFileA -#define FtpOpenFile FtpOpenFileA -#define FtpCreateDirectory FtpCreateDirectoryA -#define FtpRemoveDirectory FtpRemoveDirectoryA -#define FtpSetCurrentDirectory FtpSetCurrentDirectoryA -#define FtpGetCurrentDirectory FtpGetCurrentDirectoryA -#define FtpCommand FtpCommandA -#define GopherGetLocatorType GopherGetLocatorTypeA -#define GopherCreateLocator GopherCreateLocatorA -#define GopherFindFirstFile GopherFindFirstFileA -#define GopherOpenFile GopherOpenFileA -#define HttpSendRequest HttpSendRequestA -#define HttpOpenRequest HttpOpenRequestA -#define HttpAddRequestHeaders HttpAddRequestHeadersA -#define HttpQueryInfo HttpQueryInfoA -#define InternetSetCookie InternetSetCookieA -#define InternetGetCookie InternetGetCookieA -#define CreateUrlCacheEntry CreateUrlCacheEntryA -#define RetrieveUrlCacheEntryStream RetrieveUrlCacheEntryStreamA -#define FindNextUrlCacheEntry FindNextUrlCacheEntryA -#define CommitUrlCacheEntry CommitUrlCacheEntryA -#define GetUrlCacheEntryInfo GetUrlCacheEntryInfoA -#define SetUrlCacheEntryInfo SetUrlCacheEntryInfoA -#define FindFirstUrlCacheEntry FindFirstUrlCacheEntryA -#define RetrieveUrlCacheEntryFile RetrieveUrlCacheEntryFileA -#define HttpSendRequestEx HttpSendRequestExA -#define HttpEndRequest HttpEndRequestA -#endif /* UNICODE */ -#endif /* RC_INVOKED */ -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/winioctl.h b/winsup/w32api/include/winioctl.h deleted file mode 100644 index b01719923..000000000 --- a/winsup/w32api/include/winioctl.h +++ /dev/null @@ -1,291 +0,0 @@ -#ifndef _WINIOCTL_H -#define _WINIOCTL_H -#ifdef __cplusplus -extern "C" { -#endif -#define HIST_NO_OF_BUCKETS 24 -#define HISTOGRAM_BUCKET_SIZE sizeof(HISTOGRAM_BUCKET) -#define DISK_HISTOGRAM_SIZE sizeof(DISK_HISTOGRAM) -#define CTL_CODE(t,f,m,a) (((t)<<16)|((a)<<14)|((f)<<2)|(m)) -#define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE -#define IOCTL_STORAGE_CHECK_VERIFY CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_STORAGE_CHECK_VERIFY2 CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS) -#define IOCTL_STORAGE_MEDIA_REMOVAL CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_STORAGE_EJECT_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_STORAGE_LOAD_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_STORAGE_LOAD_MEDIA2 CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS) -#define IOCTL_STORAGE_RESERVE CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_STORAGE_RELEASE CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_STORAGE_FIND_NEW_DEVICES CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_STORAGE_EJECTION_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS) -#define IOCTL_STORAGE_MCN_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS) -#define IOCTL_STORAGE_GET_MEDIA_TYPES CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) -#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS) -#define IOCTL_STORAGE_RESET_BUS CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_STORAGE_RESET_DEVICE CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS) -#define IOCTL_STORAGE_GET_DEVICE_NUMBER CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS) -#define IOCTL_STORAGE_PREDICT_FAILURE CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS) -#define IOCTL_DISK_BASE FILE_DEVICE_DISK -#define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE,0,METHOD_BUFFERED, FILE_ANY_ACCESS) -#define IOCTL_DISK_GET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,1,METHOD_BUFFERED,FILE_READ_ACCESS) -#define IOCTL_DISK_SET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,2,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS) -#define IOCTL_DISK_GET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,3,METHOD_BUFFERED,FILE_READ_ACCESS) -#define IOCTL_DISK_SET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,4,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS) -#define IOCTL_DISK_VERIFY CTL_CODE(IOCTL_DISK_BASE,5,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define IOCTL_DISK_FORMAT_TRACKS CTL_CODE(IOCTL_DISK_BASE,6,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS) -#define IOCTL_DISK_REASSIGN_BLOCKS CTL_CODE(IOCTL_DISK_BASE,7,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS) -#define IOCTL_DISK_PERFORMANCE CTL_CODE(IOCTL_DISK_BASE,8,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define IOCTL_DISK_IS_WRITABLE CTL_CODE(IOCTL_DISK_BASE,9,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define IOCTL_DISK_LOGGING CTL_CODE(IOCTL_DISK_BASE,10,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define IOCTL_DISK_FORMAT_TRACKS_EX CTL_CODE(IOCTL_DISK_BASE,11,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS) -#define IOCTL_DISK_HISTOGRAM_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,12,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define IOCTL_DISK_HISTOGRAM_DATA CTL_CODE(IOCTL_DISK_BASE,13,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define IOCTL_DISK_HISTOGRAM_RESET CTL_CODE(IOCTL_DISK_BASE,14,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define IOCTL_DISK_REQUEST_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,15,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define IOCTL_DISK_REQUEST_DATA CTL_CODE(IOCTL_DISK_BASE,16,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define IOCTL_DISK_CHECK_VERIFY CTL_CODE(IOCTL_DISK_BASE,0x200,METHOD_BUFFERED,FILE_READ_ACCESS) -#define IOCTL_DISK_MEDIA_REMOVAL CTL_CODE(IOCTL_DISK_BASE,0x201,METHOD_BUFFERED,FILE_READ_ACCESS) -#define IOCTL_DISK_EJECT_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x202,METHOD_BUFFERED,FILE_READ_ACCESS) -#define IOCTL_DISK_LOAD_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x203,METHOD_BUFFERED,FILE_READ_ACCESS) -#define IOCTL_DISK_RESERVE CTL_CODE(IOCTL_DISK_BASE,0x204,METHOD_BUFFERED,FILE_READ_ACCESS) -#define IOCTL_DISK_RELEASE CTL_CODE(IOCTL_DISK_BASE,0x205,METHOD_BUFFERED,FILE_READ_ACCESS) -#define IOCTL_DISK_FIND_NEW_DEVICES CTL_CODE(IOCTL_DISK_BASE,0x206,METHOD_BUFFERED,FILE_READ_ACCESS) -#define IOCTL_DISK_REMOVE_DEVICE CTL_CODE(IOCTL_DISK_BASE,0x207,METHOD_BUFFERED,FILE_READ_ACCESS) -#define IOCTL_DISK_GET_MEDIA_TYPES CTL_CODE(IOCTL_DISK_BASE,0x300,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define IOCTL_SERIAL_LSRMST_INSERT CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define FSCTL_LOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,6,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define FSCTL_UNLOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,7,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define FSCTL_DISMOUNT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,8,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define FSCTL_MOUNT_DBLS_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,13,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,15,METHOD_BUFFERED,FILE_ANY_ACCESS) -#define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16,METHOD_BUFFERED,FILE_READ_DATA|FILE_WRITE_DATA) -#define FSCTL_READ_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA) -#define FSCTL_WRITE_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA) -#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) -#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_WRITE_DATA) -#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_WRITE_DATA) -#define DEVICE_TYPE DWORD -#define FILE_DEVICE_BEEP 1 -#define FILE_DEVICE_CD_ROM 2 -#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 3 -#define FILE_DEVICE_CONTROLLER 4 -#define FILE_DEVICE_DATALINK 5 -#define FILE_DEVICE_DFS 6 -#define FILE_DEVICE_DISK 7 -#define FILE_DEVICE_DISK_FILE_SYSTEM 8 -#define FILE_DEVICE_FILE_SYSTEM 9 -#define FILE_DEVICE_INPORT_PORT 10 -#define FILE_DEVICE_KEYBOARD 11 -#define FILE_DEVICE_MAILSLOT 12 -#define FILE_DEVICE_MIDI_IN 13 -#define FILE_DEVICE_MIDI_OUT 14 -#define FILE_DEVICE_MOUSE 15 -#define FILE_DEVICE_MULTI_UNC_PROVIDER 16 -#define FILE_DEVICE_NAMED_PIPE 17 -#define FILE_DEVICE_NETWORK 18 -#define FILE_DEVICE_NETWORK_BROWSER 19 -#define FILE_DEVICE_NETWORK_FILE_SYSTEM 20 -#define FILE_DEVICE_NULL 21 -#define FILE_DEVICE_PARALLEL_PORT 22 -#define FILE_DEVICE_PHYSICAL_NETCARD 23 -#define FILE_DEVICE_PRINTER 24 -#define FILE_DEVICE_SCANNER 25 -#define FILE_DEVICE_SERIAL_MOUSE_PORT 26 -#define FILE_DEVICE_SERIAL_PORT 27 -#define FILE_DEVICE_SCREEN 28 -#define FILE_DEVICE_SOUND 29 -#define FILE_DEVICE_STREAMS 30 -#define FILE_DEVICE_TAPE 31 -#define FILE_DEVICE_TAPE_FILE_SYSTEM 32 -#define FILE_DEVICE_TRANSPORT 33 -#define FILE_DEVICE_UNKNOWN 34 -#define FILE_DEVICE_VIDEO 35 -#define FILE_DEVICE_VIRTUAL_DISK 36 -#define FILE_DEVICE_WAVE_IN 37 -#define FILE_DEVICE_WAVE_OUT 38 -#define FILE_DEVICE_8042_PORT 39 -#define FILE_DEVICE_NETWORK_REDIRECTOR 40 -#define FILE_DEVICE_BATTERY 41 -#define FILE_DEVICE_BUS_EXTENDER 42 -#define FILE_DEVICE_MODEM 43 -#define FILE_DEVICE_VDM 44 -#define FILE_DEVICE_MASS_STORAGE 45 -#define FILE_DEVICE_SMB 46 -#define FILE_DEVICE_KS 47 -#define FILE_DEVICE_CHANGER 48 -#define FILE_DEVICE_SMARTCARD 49 -#define FILE_DEVICE_ACPI 50 -#define FILE_DEVICE_DVD 51 -#define FILE_DEVICE_FULLSCREEN_VIDEO 52 -#define FILE_DEVICE_DFS_FILE_SYSTEM 53 -#define FILE_DEVICE_DFS_VOLUME 54 -#define FILE_DEVICE_SERENUM 55 -#define FILE_DEVICE_TERMSRV 56 -#define FILE_DEVICE_KSEC 57 -#define PARTITION_ENTRY_UNUSED 0 -#define PARTITION_FAT_12 1 -#define PARTITION_XENIX_1 2 -#define PARTITION_XENIX_2 3 -#define PARTITION_FAT_16 4 -#define PARTITION_EXTENDED 5 -#define PARTITION_HUGE 6 -#define PARTITION_IFS 7 -#define PARTITION_PREP 0x41 -#define PARTITION_UNIX 0x63 -#define PARTITION_NTFT 128 -#define VALID_NTFT 0xC0 -#define METHOD_BUFFERED 0 -#define METHOD_IN_DIRECT 1 -#define METHOD_OUT_DIRECT 2 -#define METHOD_NEITHER 3 -#define SERIAL_LSRMST_ESCAPE 0 -#define SERIAL_LSRMST_LSR_DATA 1 -#define SERIAL_LSRMST_LSR_NODATA 2 -#define SERIAL_LSRMST_MST 3 -#define FILE_ANY_ACCESS 0 -#define FILE_READ_ACCESS 1 -#define FILE_WRITE_ACCESS 2 -#define DISK_LOGGING_START 0 -#define DISK_LOGGING_STOP 1 -#define DISK_LOGGING_DUMP 2 -#define DISK_BINNING 3 -typedef WORD BAD_TRACK_NUMBER,*PBAD_TRACK_NUMBER; -typedef enum _BIN_TYPES {RequestSize,RequestLocation} BIN_TYPES; -typedef struct _BIN_RANGE { - LARGE_INTEGER StartValue; - LARGE_INTEGER Length; -} BIN_RANGE,*PBIN_RANGE; -typedef struct _BIN_COUNT { - BIN_RANGE BinRange; - DWORD BinCount; -} BIN_COUNT,*PBIN_COUNT; -typedef struct _BIN_RESULTS { - DWORD NumberOfBins; - BIN_COUNT BinCounts[1]; -} BIN_RESULTS,*PBIN_RESULTS; -typedef enum _MEDIA_TYPE { - Unknown, - F5_1Pt2_512, - F3_1Pt44_512, - F3_2Pt88_512, - F3_20Pt8_512, - F3_720_512, - F5_360_512, - F5_320_512, - F5_320_1024, - F5_180_512, - F5_160_512, - RemovableMedia, - FixedMedia -} MEDIA_TYPE, *PMEDIA_TYPE ; -typedef struct _DISK_GEOMETRY { - LARGE_INTEGER Cylinders; - MEDIA_TYPE MediaType; - DWORD TracksPerCylinder; - DWORD SectorsPerTrack; - DWORD BytesPerSector; -} DISK_GEOMETRY, *PDISK_GEOMETRY; -typedef struct _DISK_PERFORMANCE { - LARGE_INTEGER BytesRead; - LARGE_INTEGER BytesWritten; - LARGE_INTEGER ReadTime; - LARGE_INTEGER WriteTime; - DWORD ReadCount; - DWORD WriteCount; - DWORD QueueDepth; -} DISK_PERFORMANCE, *PDISK_PERFORMANCE; -typedef struct _DISK_RECORD { - LARGE_INTEGER ByteOffset; - LARGE_INTEGER StartTime; - LARGE_INTEGER EndTime; - PVOID VirtualAddress; - DWORD NumberOfBytes; - BYTE DeviceNumber; - BOOLEAN ReadRequest; -} DISK_RECORD,*PDISK_RECORD; -typedef struct _DISK_LOGGING { - BYTE Function; - PVOID BufferAddress; - DWORD BufferSize; -} DISK_LOGGING,*PDISK_LOGGING; -typedef struct _FORMAT_PARAMETERS { - MEDIA_TYPE MediaType; - DWORD StartCylinderNumber; - DWORD EndCylinderNumber; - DWORD StartHeadNumber; - DWORD EndHeadNumber; -} FORMAT_PARAMETERS,*PFORMAT_PARAMETERS; -typedef struct _FORMAT_EX_PARAMETERS { - MEDIA_TYPE MediaType; - DWORD StartCylinderNumber; - DWORD EndCylinderNumber; - DWORD StartHeadNumber; - DWORD EndHeadNumber; - WORD FormatGapLength; - WORD SectorsPerTrack; - WORD SectorNumber[1]; -} FORMAT_EX_PARAMETERS,*PFORMAT_EX_PARAMETERS; -typedef struct _HISTOGRAM_BUCKET { - DWORD Reads; - DWORD Writes; -} HISTOGRAM_BUCKET,*PHISTOGRAM_BUCKET; -typedef struct _DISK_HISTOGRAM { - LARGE_INTEGER DiskSize; - LARGE_INTEGER Start; - LARGE_INTEGER End; - LARGE_INTEGER Average; - LARGE_INTEGER AverageRead; - LARGE_INTEGER AverageWrite; - DWORD Granularity; - DWORD Size; - DWORD ReadCount; - DWORD WriteCount; - PHISTOGRAM_BUCKET Histogram; -} DISK_HISTOGRAM,*PDISK_HISTOGRAM; -typedef struct _PARTITION_INFORMATION { - LARGE_INTEGER StartingOffset; - LARGE_INTEGER PartitionLength; - DWORD HiddenSectors; - DWORD PartitionNumber; - BYTE PartitionType; - BOOLEAN BootIndicator; - BOOLEAN RecognizedPartition; - BOOLEAN RewritePartition; -} PARTITION_INFORMATION,*PPARTITION_INFORMATION; -typedef struct _DRIVE_LAYOUT_INFORMATION { - DWORD PartitionCount; - DWORD Signature; - PARTITION_INFORMATION PartitionEntry[1]; -} DRIVE_LAYOUT_INFORMATION; -typedef struct _PERF_BIN { - DWORD NumberOfBins; - DWORD TypeOfBin; - BIN_RANGE BinsRanges[1]; -} PERF_BIN,*PPERF_BIN; -typedef struct _PREVENT_MEDIA_REMOVAL { - BOOLEAN PreventMediaRemoval; -} PREVENT_MEDIA_REMOVAL,*PPREVENT_MEDIA_REMOVAL; -typedef struct _REASSIGN_BLOCKS { - WORD Reserved; - WORD Count; - DWORD BlockNumber[1]; -} REASSIGN_BLOCKS,*PREASSIGN_BLOCKS; -typedef struct _SET_PARTITION_INFORMATION { - BYTE PartitionType; -} SET_PARTITION_INFORMATION,*PSET_PARTITION_INFORMATION; -typedef struct _VERIFY_INFORMATION { - LARGE_INTEGER StartingOffset; - DWORD Length; -} VERIFY_INFORMATION,*PVERIFY_INFORMATION; -#define IsRecognizedPartition(t) (((t&PARTITION_NTFT)&&((t&~0xC0)==PARTITION_FAT_12))||\ - ((t&PARTITION_NTFT)&&((t&~0xC0)==PARTITION_FAT_16))||\ - ((t&PARTITION_NTFT)&&((t&~0xC0)==PARTITION_IFS))||\ - ((t&PARTITION_NTFT)&&((t&~0xC0)==PARTITION_HUGE))||\ - ((t&~PARTITION_NTFT)==PARTITION_FAT_12)||\ - ((t&~PARTITION_NTFT)==PARTITION_FAT_16)||\ - ((t&~PARTITION_NTFT)==PARTITION_IFS)||\ - ((t&~PARTITION_NTFT)==PARTITION_HUGE)) -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/winnetwk.h b/winsup/w32api/include/winnetwk.h deleted file mode 100644 index f65bd5ae1..000000000 --- a/winsup/w32api/include/winnetwk.h +++ /dev/null @@ -1,342 +0,0 @@ -#ifndef _WINNETWK_H -#define _WINNETWK_H -#ifdef __cplusplus -extern "C" { -#endif -#define WNNC_NET_MSNET 0x00010000 -#define WNNC_NET_LANMAN 0x00020000 -#define WNNC_NET_NETWARE 0x00030000 -#define WNNC_NET_VINES 0x00040000 -#define WNNC_NET_10NET 0x00050000 -#define WNNC_NET_LOCUS 0x00060000 -#define WNNC_NET_SUN_PC_NFS 0x00070000 -#define WNNC_NET_LANSTEP 0x00080000 -#define WNNC_NET_9TILES 0x00090000 -#define WNNC_NET_LANTASTIC 0x000A0000 -#define WNNC_NET_AS400 0x000B0000 -#define WNNC_NET_FTP_NFS 0x000C0000 -#define WNNC_NET_PATHWORKS 0x000D0000 -#define WNNC_NET_LIFENET 0x000E0000 -#define WNNC_NET_POWERLAN 0x000F0000 -#define WNNC_NET_BWNFS 0x00100000 -#define WNNC_NET_COGENT 0x00110000 -#define WNNC_NET_FARALLON 0x00120000 -#define WNNC_NET_APPLETALK 0x00130000 -#define WNNC_NET_INTERGRAPH 0x00140000 -#define WNNC_NET_SYMFONET 0x00150000 -#define WNNC_NET_CLEARCASE 0x00160000 -#define WNNC_NET_FRONTIER 0x00170000 -#define WNNC_NET_BMC 0x00180000 -#define WNNC_NET_DCE 0x00190000 -#define WNNC_NET_AVID 0x001A0000 -#define WNNC_NET_DOCUSPACE 0x001B0000 -#define WNNC_NET_MANGOSOFT 0x001C0000 -#define WNNC_NET_SERNET 0x001D0000 -#define WNNC_NET_DECORB 0x00200000 -#define WNNC_NET_PROTSTOR 0x00210000 -#define WNNC_NET_FJ_REDIR 0x00220000 -#define WNNC_NET_DISTINCT 0x00230000 -#define WNNC_NET_TWINS 0x00240000 -#define WNNC_NET_RDR2SAMPLE 0x00250000 -#define WNNC_NET_CSC 0x00260000 -#define WNNC_NET_3IN1 0x00270000 -#define WNNC_NET_EXTENDNET 0x00290000 -#define WNNC_NET_OBJECT_DIRE 0x00300000 -#define WNNC_NET_MASFAX 0x00310000 -#define WNNC_NET_HOB_NFS 0x00320000 -#define WNNC_NET_SHIVA 0x00330000 -#define WNNC_NET_IBMAL 0x00340000 -#define WNNC_CRED_MANAGER 0xFFFF0000 - -#define RESOURCE_CONNECTED 1 -#define RESOURCE_GLOBALNET 2 -#define RESOURCE_REMEMBERED 3 -#define RESOURCE_RECENT 4 -#define RESOURCE_CONTEXT 5 -#define RESOURCETYPE_ANY 0 -#define RESOURCETYPE_DISK 1 -#define RESOURCETYPE_PRINT 2 -#define RESOURCETYPE_RESERVED 8 -#define RESOURCETYPE_UNKNOWN 0xFFFFFFFF -#define RESOURCEUSAGE_CONNECTABLE 0x00000001 -#define RESOURCEUSAGE_CONTAINER 0x00000002 -#define RESOURCEUSAGE_NOLOCALDEVICE 0x00000004 -#define RESOURCEUSAGE_SIBLING 0x00000008 -#define RESOURCEUSAGE_ATTACHED 0x00000010 -#define RESOURCEUSAGE_ALL (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED) -#define RESOURCEUSAGE_RESERVED 0x80000000 -#define RESOURCEDISPLAYTYPE_GENERIC 0 -#define RESOURCEDISPLAYTYPE_DOMAIN 1 -#define RESOURCEDISPLAYTYPE_SERVER 2 -#define RESOURCEDISPLAYTYPE_SHARE 3 -#define RESOURCEDISPLAYTYPE_FILE 4 -#define RESOURCEDISPLAYTYPE_GROUP 5 -#define RESOURCEDISPLAYTYPE_NETWORK 6 -#define RESOURCEDISPLAYTYPE_ROOT 7 -#define RESOURCEDISPLAYTYPE_SHAREADMIN 8 -#define RESOURCEDISPLAYTYPE_DIRECTORY 9 -#define RESOURCEDISPLAYTYPE_TREE 10 -#define NETPROPERTY_PERSISTENT 1 -#define CONNECT_UPDATE_PROFILE 1 -#define CONNECT_UPDATE_RECENT 2 -#define CONNECT_TEMPORARY 4 -#define CONNECT_INTERACTIVE 8 -#define CONNECT_PROMPT 16 -#define CONNECT_NEED_DRIVE 32 -#define CONNECT_REFCOUNT 64 -#define CONNECT_REDIRECT 128 -#define CONNECT_LOCALDRIVE 256 -#define CONNECT_CURRENT_MEDIA 512 -#define CONNDLG_RO_PATH 1 -#define CONNDLG_CONN_POINT 2 -#define CONNDLG_USE_MRU 4 -#define CONNDLG_HIDE_BOX 8 -#define CONNDLG_PERSIST 16 -#define CONNDLG_NOT_PERSIST 32 -#define DISC_UPDATE_PROFILE 1 -#define DISC_NO_FORCE 64 -#define WNFMT_MULTILINE 1 -#define WNFMT_ABBREVIATED 2 -#define WNFMT_INENUM 16 -#define WNFMT_CONNECTION 32 -#define WN_SUCCESS NO_ERROR -#define WN_NO_ERROR NO_ERROR -#define WN_NOT_SUPPORTED ERROR_NOT_SUPPORTED -#define WN_CANCEL ERROR_CANCELLED -#define WN_RETRY ERROR_RETRY -#define WN_NET_ERROR ERROR_UNEXP_NET_ERR -#define WN_MORE_DATA ERROR_MORE_DATA -#define WN_BAD_POINTER ERROR_INVALID_ADDRESS -#define WN_BAD_VALUE ERROR_INVALID_PARAMETER -#define WN_BAD_USER ERROR_BAD_USERNAME -#define WN_BAD_PASSWORD ERROR_INVALID_PASSWORD -#define WN_ACCESS_DENIED ERROR_ACCESS_DENIED -#define WN_FUNCTION_BUSY ERROR_BUSY -#define WN_WINDOWS_ERROR ERROR_UNEXP_NET_ERR -#define WN_OUT_OF_MEMORY ERROR_NOT_ENOUGH_MEMORY -#define WN_NO_NETWORK ERROR_NO_NETWORK -#define WN_EXTENDED_ERROR ERROR_EXTENDED_ERROR -#define WN_BAD_LEVEL ERROR_INVALID_LEVEL -#define WN_BAD_HANDLE ERROR_INVALID_HANDLE -#define WN_NOT_INITIALIZING ERROR_ALREADY_INITIALIZED -#define WN_NO_MORE_DEVICES ERROR_NO_MORE_DEVICES -#define WN_NOT_CONNECTED ERROR_NOT_CONNECTED -#define WN_OPEN_FILES ERROR_OPEN_FILES -#define WN_DEVICE_IN_USE ERROR_DEVICE_IN_USE -#define WN_BAD_NETNAME ERROR_BAD_NET_NAME -#define WN_BAD_LOCALNAME ERROR_BAD_DEVICE -#define WN_ALREADY_CONNECTED ERROR_ALREADY_ASSIGNED -#define WN_DEVICE_ERROR ERROR_GEN_FAILURE -#define WN_CONNECTION_CLOSED ERROR_CONNECTION_UNAVAIL -#define WN_NO_NET_OR_BAD_PATH ERROR_NO_NET_OR_BAD_PATH -#define WN_BAD_PROVIDER ERROR_BAD_PROVIDER -#define WN_CANNOT_OPEN_PROFILE ERROR_CANNOT_OPEN_PROFILE -#define WN_BAD_PROFILE ERROR_BAD_PROFILE -#define WN_BAD_DEV_TYPE ERROR_BAD_DEV_TYPE -#define WN_DEVICE_ALREADY_REMEMBERED ERROR_DEVICE_ALREADY_REMEMBERED -#define WN_NO_MORE_ENTRIES ERROR_NO_MORE_ITEMS -#define WN_NOT_CONTAINER ERROR_NOT_CONTAINER -#define WN_NOT_AUTHENTICATED ERROR_NOT_AUTHENTICATED -#define WN_NOT_LOGGED_ON ERROR_NOT_LOGGED_ON -#define WN_NOT_VALIDATED ERROR_NO_LOGON_SERVERS -#define UNIVERSAL_NAME_INFO_LEVEL 1 -#define REMOTE_NAME_INFO_LEVEL 2 -#define NETINFO_DLL16 1 -#define NETINFO_DISKRED 4 -#define NETINFO_PRINTERRED 8 -#define RP_LOGON 1 -#define RP_INIFILE 2 -#define PP_DISPLAYERRORS 1 -#define WNCON_FORNETCARD 1 -#define WNCON_NOTROUTED 2 -#define WNCON_SLOWLINK 4 -#define WNCON_DYNAMIC 8 - -#ifndef RC_INVOKED -typedef struct _NETRESOURCEA { - DWORD dwScope; - DWORD dwType; - DWORD dwDisplayType; - DWORD dwUsage; - LPSTR lpLocalName; - LPSTR lpRemoteName; - LPSTR lpComment ; - LPSTR lpProvider; -}NETRESOURCEA,*LPNETRESOURCEA; -typedef struct _NETRESOURCEW { - DWORD dwScope; - DWORD dwType; - DWORD dwDisplayType; - DWORD dwUsage; - LPWSTR lpLocalName; - LPWSTR lpRemoteName; - LPWSTR lpComment ; - LPWSTR lpProvider; -}NETRESOURCEW,*LPNETRESOURCEW; -typedef struct _CONNECTDLGSTRUCTA{ - DWORD cbStructure; - HWND hwndOwner; - LPNETRESOURCEA lpConnRes; - DWORD dwFlags; - DWORD dwDevNum; -} CONNECTDLGSTRUCTA,*LPCONNECTDLGSTRUCTA; -typedef struct _CONNECTDLGSTRUCTW{ - DWORD cbStructure; - HWND hwndOwner; - LPNETRESOURCEW lpConnRes; - DWORD dwFlags; - DWORD dwDevNum; -} CONNECTDLGSTRUCTW,*LPCONNECTDLGSTRUCTW; -typedef struct _DISCDLGSTRUCTA{ - DWORD cbStructure; - HWND hwndOwner; - LPSTR lpLocalName; - LPSTR lpRemoteName; - DWORD dwFlags; -} DISCDLGSTRUCTA,*LPDISCDLGSTRUCTA; -typedef struct _DISCDLGSTRUCTW{ - DWORD cbStructure; - HWND hwndOwner; - LPWSTR lpLocalName; - LPWSTR lpRemoteName; - DWORD dwFlags; -} DISCDLGSTRUCTW,*LPDISCDLGSTRUCTW; -typedef struct _UNIVERSAL_NAME_INFOA { LPSTR lpUniversalName; }UNIVERSAL_NAME_INFOA,*LPUNIVERSAL_NAME_INFOA; -typedef struct _UNIVERSAL_NAME_INFOW { LPWSTR lpUniversalName; }UNIVERSAL_NAME_INFOW,*LPUNIVERSAL_NAME_INFOW; -typedef struct _REMOTE_NAME_INFOA { - LPSTR lpUniversalName; - LPSTR lpConnectionName; - LPSTR lpRemainingPath; -}REMOTE_NAME_INFOA,*LPREMOTE_NAME_INFOA; -typedef struct _REMOTE_NAME_INFOW { - LPWSTR lpUniversalName; - LPWSTR lpConnectionName; - LPWSTR lpRemainingPath; -}REMOTE_NAME_INFOW,*LPREMOTE_NAME_INFOW; -typedef struct _NETINFOSTRUCT{ - DWORD cbStructure; - DWORD dwProviderVersion; - DWORD dwStatus; - DWORD dwCharacteristics; - DWORD dwHandle; - WORD wNetType; - DWORD dwPrinters; - DWORD dwDrives; -} NETINFOSTRUCT,*LPNETINFOSTRUCT; -typedef UINT(PASCAL *PFNGETPROFILEPATHA)(LPCSTR,LPSTR,UINT); -typedef UINT(PASCAL *PFNGETPROFILEPATHW)(LPCWSTR,LPWSTR,UINT); -typedef UINT(PASCAL *PFNRECONCILEPROFILEA)(LPCSTR,LPCSTR,DWORD); -typedef UINT(PASCAL *PFNRECONCILEPROFILEW)(LPCWSTR,LPCWSTR,DWORD); -typedef BOOL(PASCAL *PFNPROCESSPOLICIESA)(HWND,LPCSTR,LPCSTR,LPCSTR,DWORD); -typedef BOOL(PASCAL *PFNPROCESSPOLICIESW)(HWND,LPCWSTR,LPCWSTR,LPCWSTR,DWORD); -typedef struct _NETCONNECTINFOSTRUCT{ - DWORD cbStructure; - DWORD dwFlags; - DWORD dwSpeed; - DWORD dwDelay; - DWORD dwOptDataSize; -} NETCONNECTINFOSTRUCT,*LPNETCONNECTINFOSTRUCT; - -DWORD APIENTRY WNetAddConnectionA(LPCSTR,LPCSTR,LPCSTR); -DWORD APIENTRY WNetAddConnectionW(LPCWSTR,LPCWSTR,LPCWSTR); -DWORD APIENTRY WNetAddConnection2A(LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD); -DWORD APIENTRY WNetAddConnection2W(LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD); -DWORD APIENTRY WNetAddConnection3A(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD); -DWORD APIENTRY WNetAddConnection3W(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD); -DWORD APIENTRY WNetCancelConnectionA(LPCSTR,BOOL); -DWORD APIENTRY WNetCancelConnectionW(LPCWSTR,BOOL); -DWORD APIENTRY WNetCancelConnection2A(LPCSTR,DWORD,BOOL); -DWORD APIENTRY WNetCancelConnection2W(LPCWSTR,DWORD,BOOL); -DWORD APIENTRY WNetGetConnectionA(LPCSTR,LPSTR,PDWORD); -DWORD APIENTRY WNetGetConnectionW(LPCWSTR,LPWSTR,PDWORD); -DWORD APIENTRY WNetUseConnectionA(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD,LPSTR,PDWORD,PDWORD); -DWORD APIENTRY WNetUseConnectionW(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD,LPWSTR,PDWORD,PDWORD); -DWORD APIENTRY WNetSetConnectionA(LPCSTR,DWORD,PVOID); -DWORD APIENTRY WNetSetConnectionW(LPCWSTR,DWORD,PVOID); -DWORD APIENTRY WNetConnectionDialog(HWND,DWORD); -DWORD APIENTRY WNetDisconnectDialog(HWND,DWORD); -DWORD APIENTRY WNetConnectionDialog1A(LPCONNECTDLGSTRUCTA); -DWORD APIENTRY WNetConnectionDialog1W(LPCONNECTDLGSTRUCTW); -DWORD APIENTRY WNetDisconnectDialog1A(LPDISCDLGSTRUCTA); -DWORD APIENTRY WNetDisconnectDialog1W(LPDISCDLGSTRUCTW); -DWORD APIENTRY WNetOpenEnumA(DWORD,DWORD,DWORD,LPNETRESOURCEA,LPHANDLE); -DWORD APIENTRY WNetOpenEnumW(DWORD,DWORD,DWORD,LPNETRESOURCEW,LPHANDLE); -DWORD APIENTRY WNetEnumResourceA(HANDLE,PDWORD,PVOID,PDWORD); -DWORD APIENTRY WNetEnumResourceW(HANDLE,PDWORD,PVOID,PDWORD); -DWORD APIENTRY WNetCloseEnum(HANDLE); -DWORD APIENTRY WNetGetUniversalNameA(LPCSTR,DWORD,PVOID,PDWORD); -DWORD APIENTRY WNetGetUniversalNameW(LPCWSTR,DWORD,PVOID,PDWORD); -DWORD APIENTRY WNetGetUserA(LPCSTR,LPSTR,PDWORD); -DWORD APIENTRY WNetGetUserW(LPCWSTR,LPWSTR,PDWORD); -DWORD APIENTRY WNetGetProviderNameA(DWORD,LPSTR,PDWORD); -DWORD APIENTRY WNetGetProviderNameW(DWORD,LPWSTR,PDWORD); -DWORD APIENTRY WNetGetNetworkInformationA(LPCSTR,LPNETINFOSTRUCT); -DWORD APIENTRY WNetGetNetworkInformationW(LPCWSTR,LPNETINFOSTRUCT); -DWORD APIENTRY WNetGetResourceInformationA(LPNETRESOURCEA,LPVOID,LPDWORD,LPCSTR*); -DWORD APIENTRY WNetGetResourceInformationW(LPNETRESOURCEA,LPVOID,LPDWORD,LPCWSTR*); -DWORD APIENTRY WNetGetLastErrorA(PDWORD,LPSTR,DWORD,LPSTR,DWORD); -DWORD APIENTRY WNetGetLastErrorW(PDWORD,LPWSTR,DWORD,LPWSTR,DWORD); -DWORD APIENTRY MultinetGetConnectionPerformanceA(LPNETRESOURCEA,LPNETCONNECTINFOSTRUCT); -DWORD APIENTRY MultinetGetConnectionPerformanceW(LPNETRESOURCEW,LPNETCONNECTINFOSTRUCT); -#ifdef UNICODE -#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESW -#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEW -#define PFNGETPROFILEPATH PFNGETPROFILEPATHW -typedef NETRESOURCEW NETRESOURCE,*LPNETRESOURCE; -typedef CONNECTDLGSTRUCTW CONNECTDLGSTRUCT,*LPCONNECTDLGSTRUCT; -typedef DISCDLGSTRUCTW DISCDLGSTRUCT,*LPDISCDLGSTRUCT; -typedef REMOTE_NAME_INFOW REMOTE_NAME_INFO,*LPREMOTE_NAME_INFO; -typedef UNIVERSAL_NAME_INFOW UNIVERSAL_NAME_INFO,*LPUNIVERSAL_NAME_INFO; -#define WNetEnumResource WNetEnumResourceW -#define WNetOpenEnum WNetOpenEnumW -#define WNetGetResourceInformation WNetGetResourceInformationW -#define WNetGetUniversalName WNetGetUniversalNameW -#define WNetSetConnection WNetSetConnectionW -#define WNetUseConnection WNetUseConnectionW -#define WNetGetConnection WNetGetConnectionW -#define WNetCancelConnection2 WNetCancelConnection2W -#define WNetCancelConnection WNetCancelConnectionW -#define WNetAddConnection3 WNetAddConnection3W -#define WNetAddConnection2 WNetAddConnection2W -#define WNetAddConnection WNetAddConnectionW -#define WNetConnectionDialog1 WNetConnectionDialog1W -#define WNetDisconnectDialog1 WNetDisconnectDialog1W -#define WNetGetNetworkInformation WNetGetNetworkInformationW -#define WNetGetProviderName WNetGetProviderNameW -#define WNetGetUser WNetGetUserW -#define MultinetGetConnectionPerformance MultinetGetConnectionPerformanceW -#define WNetGetLastError WNetGetLastErrorW -#else -#define PFNGETPROFILEPATH PFNGETPROFILEPATHA -#define PFNRECONCILEPROFILE PFNRECONCILEPROFILEA -#define PFNPROCESSPOLICIES PFNPROCESSPOLICIESA -typedef NETRESOURCEA NETRESOURCE,*LPNETRESOURCE; -typedef CONNECTDLGSTRUCTA CONNECTDLGSTRUCT,*LPCONNECTDLGSTRUCT; -typedef DISCDLGSTRUCTA DISCDLGSTRUCT,*LPDISCDLGSTRUCT; -typedef UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFO,*LPUNIVERSAL_NAME_INFO; -typedef REMOTE_NAME_INFOA REMOTE_NAME_INFO,*LPREMOTE_NAME_INFO; -#define WNetOpenEnum WNetOpenEnumA -#define WNetEnumResource WNetEnumResourceA -#define WNetGetResourceInformation WNetGetResourceInformationA -#define WNetGetUniversalName WNetGetUniversalNameA -#define WNetConnectionDialog1 WNetConnectionDialog1A -#define WNetDisconnectDialog1 WNetDisconnectDialog1A -#define WNetAddConnection2 WNetAddConnection2A -#define WNetAddConnection3 WNetAddConnection3A -#define WNetCancelConnection WNetCancelConnectionA -#define WNetCancelConnection2 WNetCancelConnection2A -#define WNetGetConnection WNetGetConnectionA -#define WNetUseConnection WNetUseConnectionA -#define WNetSetConnection WNetSetConnectionA -#define WNetAddConnection WNetAddConnectionA -#define WNetGetUser WNetGetUserA -#define WNetGetProviderName WNetGetProviderNameA -#define WNetGetNetworkInformation WNetGetNetworkInformationA -#define WNetGetLastError WNetGetLastErrorA -#define MultinetGetConnectionPerformance MultinetGetConnectionPerformanceA -#endif -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/winnls.h b/winsup/w32api/include/winnls.h deleted file mode 100644 index ea72eda7b..000000000 --- a/winsup/w32api/include/winnls.h +++ /dev/null @@ -1,647 +0,0 @@ -#ifndef _WINNLS_H -#define _WINNLS_H -#ifdef __cplusplus -extern "C" { -#endif - -#define MAX_LEADBYTES 12 -#define MAX_DEFAULTCHAR 2 -#define LOCALE_NOUSEROVERRIDE 0x80000000 -#define LOCALE_USE_CP_ACP 0x40000000 -#define LOCALE_ILANGUAGE 1 -#define LOCALE_SLANGUAGE 2 -#define LOCALE_SENGLANGUAGE 0x1001 -#define LOCALE_SABBREVLANGNAME 3 -#define LOCALE_SNATIVELANGNAME 4 -#define LOCALE_ICOUNTRY 5 -#define LOCALE_SCOUNTRY 6 -#define LOCALE_SENGCOUNTRY 0x1002 -#define LOCALE_SABBREVCTRYNAME 7 -#define LOCALE_SNATIVECTRYNAME 8 -#define LOCALE_IDEFAULTLANGUAGE 9 -#define LOCALE_IDEFAULTCOUNTRY 10 -#define LOCALE_IDEFAULTCODEPAGE 11 -#define LOCALE_IDEFAULTANSICODEPAGE 0x1004 -#define LOCALE_SLIST 12 -#define LOCALE_IMEASURE 13 -#define LOCALE_SDECIMAL 14 -#define LOCALE_STHOUSAND 15 -#define LOCALE_SGROUPING 16 -#define LOCALE_IDIGITS 17 -#define LOCALE_ILZERO 18 -#define LOCALE_INEGNUMBER 0x1010 -#define LOCALE_SNATIVEDIGITS 19 -#define LOCALE_SCURRENCY 20 -#define LOCALE_SINTLSYMBOL 21 -#define LOCALE_SMONDECIMALSEP 22 -#define LOCALE_SMONTHOUSANDSEP 23 -#define LOCALE_SMONGROUPING 24 -#define LOCALE_ICURRDIGITS 25 -#define LOCALE_IINTLCURRDIGITS 26 -#define LOCALE_ICURRENCY 27 -#define LOCALE_INEGCURR 28 -#define LOCALE_SDATE 29 -#define LOCALE_STIME 30 -#define LOCALE_SSHORTDATE 31 -#define LOCALE_SLONGDATE 32 -#define LOCALE_STIMEFORMAT 0x1003 -#define LOCALE_IDATE 33 -#define LOCALE_ILDATE 34 -#define LOCALE_ITIME 35 -#define LOCALE_ITIMEMARKPOSN 0x1005 -#define LOCALE_ICENTURY 36 -#define LOCALE_ITLZERO 37 -#define LOCALE_IDAYLZERO 38 -#define LOCALE_IMONLZERO 39 -#define LOCALE_S1159 40 -#define LOCALE_S2359 41 -#define LOCALE_ICALENDARTYPE 0x1009 -#define LOCALE_IOPTIONALCALENDAR 0x100B -#define LOCALE_IFIRSTDAYOFWEEK 0x100C -#define LOCALE_IFIRSTWEEKOFYEAR 0x100D -#define LOCALE_SDAYNAME1 42 -#define LOCALE_SDAYNAME2 43 -#define LOCALE_SDAYNAME3 44 -#define LOCALE_SDAYNAME4 45 -#define LOCALE_SDAYNAME5 46 -#define LOCALE_SDAYNAME6 47 -#define LOCALE_SDAYNAME7 48 -#define LOCALE_SABBREVDAYNAME1 49 -#define LOCALE_SABBREVDAYNAME2 50 -#define LOCALE_SABBREVDAYNAME3 51 -#define LOCALE_SABBREVDAYNAME4 52 -#define LOCALE_SABBREVDAYNAME5 53 -#define LOCALE_SABBREVDAYNAME6 54 -#define LOCALE_SABBREVDAYNAME7 55 -#define LOCALE_SMONTHNAME1 56 -#define LOCALE_SMONTHNAME2 57 -#define LOCALE_SMONTHNAME3 58 -#define LOCALE_SMONTHNAME4 59 -#define LOCALE_SMONTHNAME5 60 -#define LOCALE_SMONTHNAME6 61 -#define LOCALE_SMONTHNAME7 62 -#define LOCALE_SMONTHNAME8 63 -#define LOCALE_SMONTHNAME9 64 -#define LOCALE_SMONTHNAME10 65 -#define LOCALE_SMONTHNAME11 66 -#define LOCALE_SMONTHNAME12 67 -#define LOCALE_SMONTHNAME13 0x100E -#define LOCALE_SABBREVMONTHNAME1 68 -#define LOCALE_SABBREVMONTHNAME2 69 -#define LOCALE_SABBREVMONTHNAME3 70 -#define LOCALE_SABBREVMONTHNAME4 71 -#define LOCALE_SABBREVMONTHNAME5 72 -#define LOCALE_SABBREVMONTHNAME6 73 -#define LOCALE_SABBREVMONTHNAME7 74 -#define LOCALE_SABBREVMONTHNAME8 75 -#define LOCALE_SABBREVMONTHNAME9 76 -#define LOCALE_SABBREVMONTHNAME10 77 -#define LOCALE_SABBREVMONTHNAME11 78 -#define LOCALE_SABBREVMONTHNAME12 79 -#define LOCALE_SABBREVMONTHNAME13 0x100F -#define LOCALE_SPOSITIVESIGN 80 -#define LOCALE_SNEGATIVESIGN 81 -#define LOCALE_IPOSSIGNPOSN 82 -#define LOCALE_INEGSIGNPOSN 83 -#define LOCALE_IPOSSYMPRECEDES 84 -#define LOCALE_IPOSSEPBYSPACE 85 -#define LOCALE_INEGSYMPRECEDES 86 -#define LOCALE_INEGSEPBYSPACE 87 -#define LOCALE_FONTSIGNATURE 88 -#define LOCALE_SISO639LANGNAME 89 -#define LOCALE_SISO3166CTRYNAME 90 -#define LOCALE_SYSTEM_DEFAULT 0x800 -#define LOCALE_USER_DEFAULT 0x400 -#define NORM_IGNORECASE 1 -#define NORM_IGNOREKANATYPE 65536 -#define NORM_IGNORENONSPACE 2 -#define NORM_IGNORESYMBOLS 4 -#define NORM_IGNOREWIDTH 131072 -#define SORT_STRINGSORT 4096 -#define LCMAP_LOWERCASE 0x00000100 -#define LCMAP_UPPERCASE 0x00000200 -#define LCMAP_SORTKEY 0x00000400 -#define LCMAP_BYTEREV 0x00000800 -#define LCMAP_HIRAGANA 0x00100000 -#define LCMAP_KATAKANA 0x00200000 -#define LCMAP_HALFWIDTH 0x00400000 -#define LCMAP_FULLWIDTH 0x00800000 -#define LCMAP_LINGUISTIC_CASING 0x01000000 -#define LCMAP_SIMPLIFIED_CHINESE 0x02000000 -#define LCMAP_TRADITIONAL_CHINESE 0x04000000 -#define ENUM_ALL_CALENDARS (-1) -#define DATE_SHORTDATE 1 -#define DATE_LONGDATE 2 -#define DATE_USE_ALT_CALENDAR 4 -#define CP_INSTALLED 1 -#define CP_SUPPORTED 2 -#define LCID_INSTALLED 1 -#define LCID_SUPPORTED 2 -#define LCID_ALTERNATE_SORTS 4 -#define MAP_FOLDCZONE 16 -#define MAP_FOLDDIGITS 128 -#define MAP_PRECOMPOSED 32 -#define MAP_COMPOSITE 64 -#define CP_ACP 0 -#define CP_OEMCP 1 -#define CP_MACCP 2 -#define CP_THREAD_ACP 3 -#define CP_SYMBOL 42 -#define CP_UTF7 65000 -#define CP_UTF8 65001 -#define CT_CTYPE1 1 -#define CT_CTYPE2 2 -#define CT_CTYPE3 4 -#define C1_UPPER 1 -#define C1_LOWER 2 -#define C1_DIGIT 4 -#define C1_SPACE 8 -#define C1_PUNCT 16 -#define C1_CNTRL 32 -#define C1_BLANK 64 -#define C1_XDIGIT 128 -#define C1_ALPHA 256 -#define C2_LEFTTORIGHT 1 -#define C2_RIGHTTOLEFT 2 -#define C2_EUROPENUMBER 3 -#define C2_EUROPESEPARATOR 4 -#define C2_EUROPETERMINATOR 5 -#define C2_ARABICNUMBER 6 -#define C2_COMMONSEPARATOR 7 -#define C2_BLOCKSEPARATOR 8 -#define C2_SEGMENTSEPARATOR 9 -#define C2_WHITESPACE 10 -#define C2_OTHERNEUTRAL 11 -#define C2_NOTAPPLICABLE 0 -#define C3_NONSPACING 1 -#define C3_DIACRITIC 2 -#define C3_VOWELMARK 4 -#define C3_SYMBOL 8 -#define C3_KATAKANA 16 -#define C3_HIRAGANA 32 -#define C3_HALFWIDTH 64 -#define C3_FULLWIDTH 128 -#define C3_IDEOGRAPH 256 -#define C3_KASHIDA 512 -#define C3_LEXICAL 1024 -#define C3_ALPHA 32768 -#define C3_NOTAPPLICABLE 0 -#define TIME_NOMINUTESORSECONDS 1 -#define TIME_NOSECONDS 2 -#define TIME_NOTIMEMARKER 4 -#define TIME_FORCE24HOURFORMAT 8 -#define MB_PRECOMPOSED 1 -#define MB_COMPOSITE 2 -#define MB_ERR_INVALID_CHARS 8 -#define MB_USEGLYPHCHARS 4 -#define WC_COMPOSITECHECK 512 -#define WC_DISCARDNS 16 -#define WC_SEPCHARS 32 -#define WC_DEFAULTCHAR 64 -#define CTRY_DEFAULT 0 -#define CTRY_ALBANIA 355 -#define CTRY_ALGERIA 213 -#define CTRY_ARGENTINA 54 -#define CTRY_ARMENIA 374 -#define CTRY_AUSTRALIA 61 -#define CTRY_AUSTRIA 43 -#define CTRY_AZERBAIJAN 994 -#define CTRY_BAHRAIN 973 -#define CTRY_BELARUS 375 -#define CTRY_BELGIUM 32 -#define CTRY_BELIZE 501 -#define CTRY_BOLIVIA 591 -#define CTRY_BRAZIL 55 -#define CTRY_BRUNEI_DARUSSALAM 673 -#define CTRY_BULGARIA 359 -#define CTRY_CANADA 2 -#define CTRY_CARIBBEAN 1 -#define CTRY_CHILE 56 -#define CTRY_COLOMBIA 57 -#define CTRY_COSTA_RICA 506 -#define CTRY_CROATIA 385 -#define CTRY_CZECH 420 -#define CTRY_DENMARK 45 -#define CTRY_DOMINICAN_REPUBLIC 1 -#define CTRY_ECUADOR 593 -#define CTRY_EGYPT 20 -#define CTRY_EL_SALVADOR 503 -#define CTRY_ESTONIA 372 -#define CTRY_FAEROE_ISLANDS 298 -#define CTRY_FINLAND 358 -#define CTRY_FRANCE 33 -#define CTRY_GEORGIA 995 -#define CTRY_GERMANY 49 -#define CTRY_GREECE 30 -#define CTRY_GUATEMALA 502 -#define CTRY_HONDURAS 504 -#define CTRY_HONG_KONG 852 -#define CTRY_HUNGARY 36 -#define CTRY_ICELAND 354 -#define CTRY_INDIA 91 -#define CTRY_INDONESIA 62 -#define CTRY_IRAN 981 -#define CTRY_IRAQ 964 -#define CTRY_IRELAND 353 -#define CTRY_ISRAEL 972 -#define CTRY_ITALY 39 -#define CTRY_JAMAICA 1 -#define CTRY_JAPAN 81 -#define CTRY_JORDAN 962 -#define CTRY_KAZAKSTAN 7 -#define CTRY_KENYA 254 -#define CTRY_KUWAIT 965 -#define CTRY_LATVIA 371 -#define CTRY_LEBANON 961 -#define CTRY_LIBYA 218 -#define CTRY_LIECHTENSTEIN 41 -#define CTRY_LITHUANIA 370 -#define CTRY_LUXEMBOURG 352 -#define CTRY_MACAU 853 -#define CTRY_MACEDONIA 389 -#define CTRY_MALAYSIA 60 -#define CTRY_MEXICO 52 -#define CTRY_MONACO 33 -#define CTRY_MOROCCO 212 -#define CTRY_NETHERLANDS 31 -#define CTRY_NEW_ZEALAND 64 -#define CTRY_NICARAGUA 505 -#define CTRY_NORWAY 47 -#define CTRY_OMAN 968 -#define CTRY_PAKISTAN 92 -#define CTRY_PANAMA 507 -#define CTRY_PARAGUAY 595 -#define CTRY_PERU 51 -#define CTRY_PHILIPPINES 63 -#define CTRY_POLAND 48 -#define CTRY_PORTUGAL 351 -#define CTRY_PRCHINA 86 -#define CTRY_PUERTO_RICO 1 -#define CTRY_QATAR 974 -#define CTRY_ROMANIA 40 -#define CTRY_RUSSIA 7 -#define CTRY_SAUDI_ARABIA 966 -#define CTRY_SERBIA 381 -#define CTRY_SINGAPORE 65 -#define CTRY_SLOVAK 421 -#define CTRY_SLOVENIA 386 -#define CTRY_SOUTH_AFRICA 27 -#define CTRY_SOUTH_KOREA 82 -#define CTRY_SPAIN 34 -#define CTRY_SWEDEN 46 -#define CTRY_SWITZERLAND 41 -#define CTRY_SYRIA 963 -#define CTRY_TAIWAN 886 -#define CTRY_TATARSTAN 7 -#define CTRY_THAILAND 66 -#define CTRY_TRINIDAD_Y_TOBAGO 1 -#define CTRY_TUNISIA 216 -#define CTRY_TURKEY 90 -#define CTRY_UAE 971 -#define CTRY_UKRAINE 380 -#define CTRY_UNITED_KINGDOM 44 -#define CTRY_UNITED_STATES 1 -#define CTRY_URUGUAY 598 -#define CTRY_UZBEKISTAN 7 -#define CTRY_VENEZUELA 58 -#define CTRY_VIET_NAM 84 -#define CTRY_YEMEN 967 -#define CTRY_ZIMBABWE 263 -#define CAL_ICALINTVALUE 1 -#define CAL_SCALNAME 2 -#define CAL_IYEAROFFSETRANGE 3 -#define CAL_SERASTRING 4 -#define CAL_SSHORTDATE 5 -#define CAL_SLONGDATE 6 -#define CAL_SDAYNAME1 7 -#define CAL_SDAYNAME2 8 -#define CAL_SDAYNAME3 9 -#define CAL_SDAYNAME4 10 -#define CAL_SDAYNAME5 11 -#define CAL_SDAYNAME6 12 -#define CAL_SDAYNAME7 13 -#define CAL_SABBREVDAYNAME1 14 -#define CAL_SABBREVDAYNAME2 15 -#define CAL_SABBREVDAYNAME3 16 -#define CAL_SABBREVDAYNAME4 17 -#define CAL_SABBREVDAYNAME5 18 -#define CAL_SABBREVDAYNAME6 19 -#define CAL_SABBREVDAYNAME7 20 -#define CAL_SMONTHNAME1 21 -#define CAL_SMONTHNAME2 22 -#define CAL_SMONTHNAME3 23 -#define CAL_SMONTHNAME4 24 -#define CAL_SMONTHNAME5 25 -#define CAL_SMONTHNAME6 26 -#define CAL_SMONTHNAME7 27 -#define CAL_SMONTHNAME8 28 -#define CAL_SMONTHNAME9 29 -#define CAL_SMONTHNAME10 30 -#define CAL_SMONTHNAME11 31 -#define CAL_SMONTHNAME12 32 -#define CAL_SMONTHNAME13 33 -#define CAL_SABBREVMONTHNAME1 34 -#define CAL_SABBREVMONTHNAME2 35 -#define CAL_SABBREVMONTHNAME3 36 -#define CAL_SABBREVMONTHNAME4 37 -#define CAL_SABBREVMONTHNAME5 38 -#define CAL_SABBREVMONTHNAME6 39 -#define CAL_SABBREVMONTHNAME7 40 -#define CAL_SABBREVMONTHNAME8 41 -#define CAL_SABBREVMONTHNAME9 42 -#define CAL_SABBREVMONTHNAME10 43 -#define CAL_SABBREVMONTHNAME11 44 -#define CAL_SABBREVMONTHNAME12 45 -#define CAL_SABBREVMONTHNAME13 46 -#define CAL_GREGORIAN 1 -#define CAL_GREGORIAN_US 2 -#define CAL_JAPAN 3 -#define CAL_TAIWAN 4 -#define CAL_KOREA 5 -#define CAL_HIJRI 6 -#define CAL_THAI 7 -#define CAL_HEBREW 8 -#define CAL_GREGORIAN_ME_FRENCH 9 -#define CAL_GREGORIAN_ARABIC 10 -#define CAL_GREGORIAN_XLIT_ENGLISH 11 -#define CAL_GREGORIAN_XLIT_FRENCH 12 -#define CSTR_LESS_THAN 1 -#define CSTR_EQUAL 2 -#define CSTR_GREATER_THAN 3 -#define LGRPID_INSTALLED 1 -#define LGRPID_SUPPORTED 2 -#define LGRPID_WESTERN_EUROPE 1 -#define LGRPID_CENTRAL_EUROPE 2 -#define LGRPID_BALTIC 3 -#define LGRPID_GREEK 4 -#define LGRPID_CYRILLIC 5 -#define LGRPID_TURKISH 6 -#define LGRPID_JAPANESE 7 -#define LGRPID_KOREAN 8 -#define LGRPID_TRADITIONAL_CHINESE 9 -#define LGRPID_SIMPLIFIED_CHINESE 10 -#define LGRPID_THAI 11 -#define LGRPID_HEBREW 12 -#define LGRPID_ARABIC 13 -#define LGRPID_VIETNAMESE 14 -#define LGRPID_INDIC 15 -#define LGRPID_GEORGIAN 16 -#define LGRPID_ARMENIAN 17 - -#if(WINVER >= 0x0500) -#define LOCALE_SYEARMONTH 0x1006 -#define LOCALE_SENGCURRNAME 0x1007 -#define LOCALE_SNATIVECURRNAME 0x1008 -#define LOCALE_IDEFAULTEBCDICCODEPAGE 0x1012 -#define LOCALE_SSORTNAME 0x1013 -#define LOCALE_IDIGITSUBSTITUTION 0x1014 -#define LOCALE_IPAPERSIZE 0x100A -#define DATE_YEARMONTH 8 -#define DATE_LTRREADING 16 -#define DATE_RTLREADING 32 -#define MAP_EXPAND_LIGATURES 0x2000 -#define WC_NO_BEST_FIT_CHARS 1024 -#define CAL_SYEARMONTH 47 -#define CAL_ITWODIGITYEARMAX 48 -#define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE -#define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER -#define CAL_USE_CP_ACP LOCALE_USE_CP_ACP -#endif /* WINVER >= 0x0500 */ -#ifndef _BASETSD_H -typedef long LONG_PTR; -#endif - -#ifndef RC_INVOKED -typedef DWORD LCTYPE; -typedef DWORD CALTYPE; -typedef DWORD CALID; -typedef DWORD LGRPID; -typedef BOOL (CALLBACK *CALINFO_ENUMPROCA)(LPSTR); -typedef BOOL (CALLBACK *CALINFO_ENUMPROCW)(LPWSTR); -typedef BOOL (CALLBACK* CALINFO_ENUMPROCEXA)(LPSTR, CALID); -typedef BOOL (CALLBACK* CALINFO_ENUMPROCEXW)(LPWSTR, CALID); -typedef BOOL (CALLBACK* LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR); -typedef BOOL (CALLBACK* LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR); -typedef BOOL (CALLBACK* LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR); -typedef BOOL (CALLBACK* LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR); -typedef BOOL (CALLBACK* UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR); -typedef BOOL (CALLBACK* UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR); -typedef BOOL (CALLBACK *LOCALE_ENUMPROCA)(LPSTR); -typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)(LPWSTR); -typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCA)(LPSTR); -typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCW)(LPWSTR); -typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA)(LPSTR); -typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW)(LPWSTR); -typedef BOOL (CALLBACK* DATEFMT_ENUMPROCEXA)(LPSTR, CALID); -typedef BOOL (CALLBACK* DATEFMT_ENUMPROCEXW)(LPWSTR, CALID); -typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA)(LPSTR); -typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW)(LPWSTR); - -typedef struct _cpinfo { - UINT MaxCharSize; - BYTE DefaultChar[MAX_DEFAULTCHAR]; - BYTE LeadByte[MAX_LEADBYTES]; -} CPINFO,*LPCPINFO; -typedef struct _cpinfoexA { - UINT MaxCharSize; - BYTE DefaultChar[MAX_DEFAULTCHAR]; - BYTE LeadByte[MAX_LEADBYTES]; - WCHAR UnicodeDefaultChar; - UINT CodePage; - CHAR CodePageName[MAX_PATH]; -} CPINFOEXA, *LPCPINFOEXA; -typedef struct _cpinfoexW { - UINT MaxCharSize; - BYTE DefaultChar[MAX_DEFAULTCHAR]; - BYTE LeadByte[MAX_LEADBYTES]; - WCHAR UnicodeDefaultChar; - UINT CodePage; - WCHAR CodePageName[MAX_PATH]; -} CPINFOEXW, *LPCPINFOEXW; -typedef struct _currencyfmtA { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPSTR lpDecimalSep; - LPSTR lpThousandSep; - UINT NegativeOrder; - UINT PositiveOrder; - LPSTR lpCurrencySymbol; -} CURRENCYFMTA, *LPCURRENCYFMTA; -typedef struct _currencyfmtW { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPWSTR lpDecimalSep; - LPWSTR lpThousandSep; - UINT NegativeOrder; - UINT PositiveOrder; - LPWSTR lpCurrencySymbol; -} CURRENCYFMTW, *LPCURRENCYFMTW; -typedef struct _numberfmtA { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPSTR lpDecimalSep; - LPSTR lpThousandSep; - UINT NegativeOrder; -} NUMBERFMTA, *LPNUMBERFMTA; -typedef struct _numberfmtW { - UINT NumDigits; - UINT LeadingZero; - UINT Grouping; - LPWSTR lpDecimalSep; - LPWSTR lpThousandSep; - UINT NegativeOrder; -} NUMBERFMTW, *LPNUMBERFMTW; - -int WINAPI CompareStringA(LCID,DWORD,LPCSTR,int,LPCSTR,int); -int WINAPI CompareStringW(LCID,DWORD,LPCWSTR,int,LPCWSTR,int); -LCID WINAPI ConvertDefaultLocale(LCID); -BOOL WINAPI EnumCalendarInfoA(CALINFO_ENUMPROCA,LCID,CALID,CALTYPE); -BOOL WINAPI EnumCalendarInfoW(CALINFO_ENUMPROCW,LCID,CALID,CALTYPE); -BOOL WINAPI EnumDateFormatsA(DATEFMT_ENUMPROCA,LCID,DWORD); -BOOL WINAPI EnumDateFormatsW(DATEFMT_ENUMPROCW,LCID,DWORD); -BOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA,DWORD); -BOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW,DWORD); -BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD); -BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD); -BOOL WINAPI EnumTimeFormatsA(TIMEFMT_ENUMPROCA,LCID,DWORD); -BOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW,LCID,DWORD); -int WINAPI FoldStringA(DWORD,LPCSTR,int,LPSTR,int); -int WINAPI FoldStringW(DWORD,LPCWSTR,int,LPWSTR,int); -UINT WINAPI GetACP(void); -BOOL WINAPI GetCPInfo(UINT,LPCPINFO); -BOOL WINAPI GetCPInfoExA(UINT,DWORD,LPCPINFOEXA); -BOOL WINAPI GetCPInfoExW(UINT,DWORD,LPCPINFOEXW); -int WINAPI GetCurrencyFormatA(LCID,DWORD,LPCSTR,const CURRENCYFMTA*,LPSTR,int); -int WINAPI GetCurrencyFormatW(LCID,DWORD,LPCWSTR,const CURRENCYFMTW*,LPWSTR,int); -int WINAPI GetDateFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int); -int WINAPI GetDateFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int); -int WINAPI GetLocaleInfoA(LCID,LCTYPE,LPSTR,int); -int WINAPI GetLocaleInfoW(LCID,LCTYPE,LPWSTR,int); -int WINAPI GetNumberFormatA(LCID,DWORD,LPCSTR,const NUMBERFMTA*,LPSTR,int); -int WINAPI GetNumberFormatW(LCID,DWORD,LPCWSTR,const NUMBERFMTW*,LPWSTR,int); -UINT WINAPI GetOEMCP(void); -BOOL WINAPI GetStringTypeA(LCID,DWORD,LPCSTR,int,LPWORD); -BOOL WINAPI GetStringTypeW(DWORD,LPCWSTR,int,LPWORD); -BOOL WINAPI GetStringTypeExA(LCID,DWORD,LPCSTR,int,LPWORD); -BOOL WINAPI GetStringTypeExW(LCID,DWORD,LPCWSTR,int,LPWORD); -LANGID WINAPI GetSystemDefaultLangID(void); -LCID WINAPI GetSystemDefaultLCID(void); -LCID WINAPI GetThreadLocale(void); -int WINAPI GetTimeFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int); -int WINAPI GetTimeFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int); -LANGID WINAPI GetUserDefaultLangID(void); -LCID WINAPI GetUserDefaultLCID(void); -BOOL WINAPI IsDBCSLeadByte(BYTE); -BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE); -BOOL WINAPI IsValidCodePage(UINT); -BOOL WINAPI IsValidLocale(LCID,DWORD); -int WINAPI LCMapStringA(LCID,DWORD,LPCSTR,int,LPSTR,int); -int WINAPI LCMapStringW(LCID,DWORD,LPCWSTR,int,LPWSTR,int); -int WINAPI MultiByteToWideChar(UINT,DWORD,LPCSTR,int,LPWSTR,int); -BOOL WINAPI SetLocaleInfoA(LCID,LCTYPE,LPCSTR); -BOOL WINAPI SetLocaleInfoW(LCID,LCTYPE,LPCWSTR); -BOOL WINAPI SetThreadLocale(LCID); -int WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,int,LPSTR,int,LPCSTR,LPBOOL); -#if (WINVER >= 0x0500) -BOOL WINAPI EnumCalendarInfoExA(CALINFO_ENUMPROCEXA,LCID,CALID,CALTYPE); -BOOL WINAPI EnumCalendarInfoExW(CALINFO_ENUMPROCEXW,LCID,CALID,CALTYPE); -BOOL WINAPI EnumDateFormatsExA(DATEFMT_ENUMPROCEXA,LCID,DWORD); -BOOL WINAPI EnumDateFormatsExW(DATEFMT_ENUMPROCEXW,LCID,DWORD); -BOOL WINAPI EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA,DWORD,LONG_PTR); -BOOL WINAPI EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW,DWORD,LONG_PTR); -BOOL WINAPI EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA,LGRPID,DWORD,LONG_PTR); -BOOL WINAPI EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW,LGRPID,DWORD,LONG_PTR); -BOOL WINAPI EnumUILanguagesA(UILANGUAGE_ENUMPROCA,DWORD,LONG_PTR); -BOOL WINAPI EnumUILanguagesW(UILANGUAGE_ENUMPROCW,DWORD,LONG_PTR); -LANGID WINAPI GetSystemDefaultUILanguage(void); -LANGID WINAPI GetUserDefaultUILanguage(void); -BOOL WINAPI IsValidLanguageGroup(LGRPID,DWORD); -#endif /* (WINVER >= 0x0500) */ - -#ifdef UNICODE -#define CALINFO_ENUMPROC CALINFO_ENUMPROCW -#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXW -#define LOCALE_ENUMPROC LOCALE_ENUMPROCW -#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW -#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW -#define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXW -#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW -#define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCW -#define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCW -#define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCW -typedef CPINFOEXW CPINFOEX; -typedef LPCPINFOEXW LPCPINFOEX; -typedef CURRENCYFMTW CURRENCYFMT; -typedef LPCURRENCYFMTW LPCURRENCYFMT; -typedef NUMBERFMTW NUMBERFMT; -typedef LPNUMBERFMTW LPNUMBERFMT; -#define CompareString CompareStringW -#define EnumCalendarInfo EnumCalendarInfoW -#define EnumSystemCodePages EnumSystemCodePagesW -#define EnumSystemLocales EnumSystemLocalesW -#define EnumTimeFormats EnumTimeFormatsW -#define FoldString FoldStringW -#define GetCPInfoEx GetCPInfoExW -#define GetCurrencyFormat GetCurrencyFormatW -#define GetDateFormat GetDateFormatW -#define GetLocaleInfo GetLocaleInfoW -#define GetNumberFormat GetNumberFormatW -#define GetStringTypeEx GetStringTypeExW -#define GetTimeFormat GetTimeFormatW -#define LCMapString LCMapStringW -#define SetLocaleInfo SetLocaleInfoW -#if (WINVER >= 0x0500) -#define EnumCalendarInfoEx EnumCalendarInfoExW; -#define EnumDateFormatsEx EnumDateFormatsExW; -#define EnumSystemLanguageGroups EnumSystemLanguageGroupsW; -#define EnumLanguageGroupLocales EnumLanguageGroupLocalesW; -#define EnumUILanguages EnumUILanguagesW; -#endif /* (WINVER >= 0x0500) */ -#else -#define CALINFO_ENUMPROC CALINFO_ENUMPROCA -#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXA -#define LOCALE_ENUMPROC LOCALE_ENUMPROCA -#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA -#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA -#define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXA -#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA -#define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCA -#define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCA -#define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCA -typedef CPINFOEXA CPINFOEX; -typedef LPCPINFOEXA LPCPINFOEX; -typedef CURRENCYFMTA CURRENCYFMT; -typedef LPCURRENCYFMTA LPCURRENCYFMT; -typedef NUMBERFMTA NUMBERFMT; -typedef LPNUMBERFMTA LPNUMBERFMT; -#define CompareString CompareStringA -#define EnumCalendarInfo EnumCalendarInfoA -#define EnumSystemCodePages EnumSystemCodePagesA -#define EnumSystemLocales EnumSystemLocalesA -#define EnumTimeFormats EnumTimeFormatsA -#define FoldString FoldStringA -#define GetCPInfoEx GetCPInfoExA -#define GetCurrencyFormat GetCurrencyFormatA -#define GetDateFormat GetDateFormatA -#define GetLocaleInfo GetLocaleInfoA -#define GetNumberFormat GetNumberFormatA -#define GetStringTypeEx GetStringTypeExA -#define GetTimeFormat GetTimeFormatA -#define LCMapString LCMapStringA -#define SetLocaleInfo SetLocaleInfoA -#if (WINVER >= 0x0500) -#define EnumCalendarInfoEx EnumCalendarInfoExA; -#define EnumDateFormatsEx EnumDateFormatsExA; -#define EnumSystemLanguageGroups EnumSystemLanguageGroupsA; -#define EnumLanguageGroupLocales EnumLanguageGroupLocalesA; -#define EnumUILanguages EnumUILanguagesA; -#endif /* (WINVER >= 0x0500) */ -#endif /* UNICODE */ -#endif /* RC_INVOKED */ -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/winnt.h b/winsup/w32api/include/winnt.h deleted file mode 100644 index 7276945c8..000000000 --- a/winsup/w32api/include/winnt.h +++ /dev/null @@ -1,2663 +0,0 @@ -#ifndef _WINNT_H -#define _WINNT_H -/* translate GCC target defines to MS equivalents. Keep this synchronized - with windows.h. */ -#if defined(__i686__) && !defined(_M_IX86) -#define _M_IX86 600 -#elif defined(__i586__) && !defined(_M_IX86) -#define _M_IX86 500 -#elif defined(__i486__) && !defined(_M_IX86) -#define _M_IX86 400 -#elif defined(__i386__) && !defined(_M_IX86) -#define _M_IX86 300 -#endif -#if defined(_M_IX86) && !defined(_X86_) -#define _X86_ -#elif defined(_M_ALPHA) && !defined(_ALPHA_) -#define _ALPHA_ -#elif defined(_M_PPC) && !defined(_PPC_) -#define _PPC_ -#elif defined(_M_MRX000) && !defined(_MIPS_) -#define _MIPS_ -#elif defined(_M_M68K) && !defined(_68K_) -#define _68K_ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#ifndef RC_INVOKED -#include - -/* FIXME: add more architectures. Is there a way to specify this in GCC? */ -#ifdef _X86_ -#define UNALIGNED -#else -#define UNALIGNED -#endif - -#ifndef VOID -#define VOID void -#endif -typedef char CHAR; -typedef short SHORT; -typedef long LONG; -typedef CHAR CCHAR; -typedef unsigned char UCHAR,*PUCHAR; -typedef unsigned short USHORT,*PUSHORT; -typedef unsigned long ULONG,*PULONG; -typedef char *PSZ; - -#ifndef _WCHAR_T_DEFINED -#define _WCHAR_T_DEFINED -#ifndef _WCHAR_T_ -#define _WCHAR_T_ -#undef __need_wchar_t -#ifndef __cplusplus -typedef unsigned short wchar_t; -#endif -#endif -#endif - -typedef wchar_t WCHAR; -typedef WCHAR *PWCHAR,*LPWCH,*PWCH,*NWPSTR,*LPWSTR,*PWSTR; -typedef CONST WCHAR *LPCWCH,*PCWCH,*LPCWSTR,*PCWSTR; -typedef CHAR *PCHAR,*LPCH,*PCH,*NPSTR,*LPSTR,*PSTR; -typedef CONST CHAR *LPCCH,*PCSTR,*LPCSTR; -#ifndef _TCHAR_DEFINED -#define _TCHAR_DEFINED -#ifdef UNICODE -/* - * NOTE: This tests UNICODE, which is different from the _UNICODE define - * used to differentiate standard C runtime calls. - */ -typedef WCHAR TCHAR; -typedef WCHAR _TCHAR; -#else -typedef CHAR TCHAR; -typedef CHAR _TCHAR; -#endif -#endif -typedef TCHAR TBYTE,*PTCH,*PTBYTE; -typedef TCHAR *LPTCH,*PTSTR,*LPTSTR,*LP,*PTCHAR; -typedef const TCHAR *LPCTSTR; -#ifdef UNICODE -/* - * __TEXT is a private macro whose specific use is to force the expansion of a - * macro passed as an argument to the macro TEXT. DO NOT use this - * macro within your programs. It's name and function could change without - * notice. - */ -#define __TEXT(q) L##q -#else -#define __TEXT(q) q -#endif -/* - * UNICODE a constant string when UNICODE is defined, else returns the string - * unmodified. - * The corresponding macros _TEXT() and _T() for mapping _UNICODE strings - * passed to C runtime functions are defined in mingw/tchar.h - */ -#define TEXT(q) __TEXT(q) -typedef SHORT *PSHORT; -typedef LONG *PLONG; -typedef void *HANDLE; -typedef HANDLE *PHANDLE,*LPHANDLE; -#ifdef STRICT -#define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n -#else -#define DECLARE_HANDLE(n) typedef HANDLE n -#endif -typedef DWORD LCID; -typedef PDWORD PLCID; -typedef WORD LANGID; -#ifdef __GNUC__ -#define _HAVE_INT64 -#define _INTEGRAL_MAX_BITS 64 -#undef __int64 -#define __int64 long long -#elif defined(__WATCOMC__) && (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64 ) -#define _HAVE_INT64 -#endif /* __GNUC__/__WATCOMC */ -#if defined(_HAVE_INT64) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64) -typedef __int64 LONGLONG; -typedef unsigned __int64 DWORDLONG; -#else -typedef double LONGLONG,DWORDLONG; -#endif -typedef LONGLONG *PLONGLONG; -typedef DWORDLONG *PDWORDLONG; -typedef DWORDLONG ULONGLONG,*PULONGLONG; -typedef LONGLONG USN; -#ifdef _HAVE_INT64 -#define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b)) -#define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b)) -#define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b)) -#define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b)) -#define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b)) -#endif -#define ANSI_NULL '\0' -#define UNICODE_NULL L'\0' -typedef BYTE BOOLEAN,*PBOOLEAN; -#endif - -#define NTAPI __stdcall -#include -#define APPLICATION_ERROR_MASK 0x20000000 -#define ERROR_SEVERITY_SUCCESS 0x00000000 -#define ERROR_SEVERITY_INFORMATIONAL 0x40000000 -#define ERROR_SEVERITY_WARNING 0x80000000 -#define ERROR_SEVERITY_ERROR 0xC0000000 -#define COMPRESSION_FORMAT_NONE 0 -#define COMPRESSION_FORMAT_DEFAULT 1 -#define COMPRESSION_FORMAT_LZNT1 2 -#define COMPRESSION_ENGINE_STANDARD 0 -#define COMPRESSION_ENGINE_MAXIMUM 256 -#define ACCESS_ALLOWED_ACE_TYPE 0 -#define ACCESS_DENIED_ACE_TYPE 1 -#define ANYSIZE_ARRAY 1 -#define SYSTEM_AUDIT_ACE_TYPE 2 -#define SYSTEM_ALARM_ACE_TYPE 3 -#define OBJECT_INHERIT_ACE 1 -#define CONTAINER_INHERIT_ACE 2 -#define NO_PROPAGATE_INHERIT_ACE 4 -#define INHERIT_ONLY_ACE 8 -#define VALID_INHERIT_FLAGS 16 -#define SUCCESSFUL_ACCESS_ACE_FLAG 64 -#define FAILED_ACCESS_ACE_FLAG 128 -#define DELETE 0x00010000L -#define READ_CONTROL 0x20000L -#define WRITE_DAC 0x40000L -#define WRITE_OWNER 0x80000L -#define SYNCHRONIZE 0x100000L -#define STANDARD_RIGHTS_REQUIRED 0xF0000 -#define STANDARD_RIGHTS_READ 0x20000 -#define STANDARD_RIGHTS_WRITE 0x20000 -#define STANDARD_RIGHTS_EXECUTE 0x20000 -#define STANDARD_RIGHTS_ALL 0x1F0000 -#define SPECIFIC_RIGHTS_ALL 0xFFFF -#define ACCESS_SYSTEM_SECURITY 0x1000000 -#define MAXIMUM_ALLOWED 0x2000000 -#define GENERIC_READ 0x80000000 -#define GENERIC_WRITE 0x40000000 -#define GENERIC_EXECUTE 0x20000000 -#define GENERIC_ALL 0x10000000 -#define FILE_READ_DATA 1 -#define FILE_LIST_DIRECTORY 1 -#define FILE_WRITE_DATA 2 -#define FILE_ADD_FILE 2 -#define FILE_APPEND_DATA 4 -#define FILE_ADD_SUBDIRECTORY 4 -#define FILE_CREATE_PIPE_INSTANCE 4 -#define FILE_READ_EA 8 -#define FILE_READ_PROPERTIES 8 -#define FILE_WRITE_EA 16 -#define FILE_WRITE_PROPERTIES 16 -#define FILE_EXECUTE 32 -#define FILE_TRAVERSE 32 -#define FILE_DELETE_CHILD 64 -#define FILE_READ_ATTRIBUTES 128 -#define FILE_WRITE_ATTRIBUTES 256 -#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x1FF) -#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ|FILE_READ_DATA|FILE_READ_ATTRIBUTES|FILE_READ_EA|SYNCHRONIZE) -#define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE|FILE_WRITE_DATA|FILE_WRITE_ATTRIBUTES|FILE_WRITE_EA|FILE_APPEND_DATA|SYNCHRONIZE) -#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE|FILE_READ_ATTRIBUTES|FILE_EXECUTE|SYNCHRONIZE) -#define FILE_SHARE_READ 1 -#define FILE_SHARE_WRITE 2 -#define FILE_SHARE_DELETE 4 -#define FILE_ATTRIBUTE_READONLY 1 -#define FILE_ATTRIBUTE_HIDDEN 2 -#define FILE_ATTRIBUTE_SYSTEM 4 -#define FILE_ATTRIBUTE_DIRECTORY 16 -#define FILE_ATTRIBUTE_ARCHIVE 32 -#define FILE_ATTRIBUTE_DEVICE 64 -#define FILE_ATTRIBUTE_NORMAL 128 -#define FILE_ATTRIBUTE_TEMPORARY 256 -#define FILE_ATTRIBUTE_SPARSE_FILE 512 -#define FILE_ATTRIBUTE_REPARSE_POINT 1024 -#define FILE_ATTRIBUTE_COMPRESSED 2048 -#define FILE_ATTRIBUTE_OFFLINE 0x1000 -#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x2000 -#define FILE_ATTRIBUTE_ENCRYPTED 0x4000 -#define INVALID_FILE_ATTRIBUTES ((DWORD)-1) -#define FILE_NOTIFY_CHANGE_FILE_NAME 1 -#define FILE_NOTIFY_CHANGE_DIR_NAME 2 -#define FILE_NOTIFY_CHANGE_ATTRIBUTES 4 -#define FILE_NOTIFY_CHANGE_SIZE 8 -#define FILE_NOTIFY_CHANGE_LAST_WRITE 16 -#define FILE_NOTIFY_CHANGE_LAST_ACCESS 32 -#define FILE_NOTIFY_CHANGE_CREATION 64 -#define FILE_NOTIFY_CHANGE_SECURITY 256 -#define MAILSLOT_NO_MESSAGE ((DWORD)-1) -#define MAILSLOT_WAIT_FOREVER ((DWORD)-1) -#define FILE_CASE_SENSITIVE_SEARCH 1 -#define FILE_CASE_PRESERVED_NAMES 2 -#define FILE_UNICODE_ON_DISK 4 -#define FILE_PERSISTENT_ACLS 8 -#define FILE_FILE_COMPRESSION 16 -#define FILE_VOLUME_QUOTAS 32 -#define FILE_SUPPORTS_SPARSE_FILES 64 -#define FILE_SUPPORTS_REPARSE_POINTS 128 -#define FILE_SUPPORTS_REMOTE_STORAGE 256 -#define FILE_VOLUME_IS_COMPRESSED 0x8000 -#define FILE_SUPPORTS_OBJECT_IDS 0x10000 -#define FILE_SUPPORTS_ENCRYPTION 0x20000 -#define FILE_NAMED_STREAMS 0x40000 -#define IO_COMPLETION_MODIFY_STATE 2 -#define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|3) -#define DUPLICATE_CLOSE_SOURCE 1 -#define DUPLICATE_SAME_ACCESS 2 -#define PROCESS_TERMINATE 1 -#define PROCESS_CREATE_THREAD 2 -#define PROCESS_VM_OPERATION 8 -#define PROCESS_VM_READ 16 -#define PROCESS_VM_WRITE 32 -#define PROCESS_DUP_HANDLE 64 -#define PROCESS_CREATE_PROCESS 128 -#define PROCESS_SET_QUOTA 256 -#define PROCESS_SET_INFORMATION 512 -#define PROCESS_QUERY_INFORMATION 1024 -#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0xFFF) -#define THREAD_TERMINATE 1 -#define THREAD_SUSPEND_RESUME 2 -#define THREAD_GET_CONTEXT 8 -#define THREAD_SET_CONTEXT 16 -#define THREAD_SET_INFORMATION 32 -#define THREAD_QUERY_INFORMATION 64 -#define THREAD_SET_THREAD_TOKEN 128 -#define THREAD_IMPERSONATE 256 -#define THREAD_DIRECT_IMPERSONATION 0x200 -#define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF) -#define EXCEPTION_NONCONTINUABLE 1 -#define EXCEPTION_MAXIMUM_PARAMETERS 15 -/* - * To prevent gcc compiler warnings, bracket these defines when initialising - * a SID_IDENTIFIER_AUTHORITY, eg. - * SID_IDENTIFIER_AUTHORITY aNullSidAuthority = {SECURITY_NULL_SID_AUTHORITY}; - */ -#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0} -#define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} -#define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2} -#define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3} -#define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4} -#define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} -#define SECURITY_NULL_RID 0 -#define SECURITY_WORLD_RID 0 -#define SECURITY_LOCAL_RID 0 -#define SECURITY_CREATOR_OWNER_RID 0 -#define SECURITY_CREATOR_GROUP_RID 1 -#define SECURITY_DIALUP_RID 1 -#define SECURITY_NETWORK_RID 2 -#define SECURITY_BATCH_RID 3 -#define SECURITY_INTERACTIVE_RID 4 -#define SECURITY_LOGON_IDS_RID 5 -#define SECURITY_SERVICE_RID 6 -#define SECURITY_LOCAL_SYSTEM_RID 18 -#define SECURITY_BUILTIN_DOMAIN_RID 32 -#define SECURITY_PRINCIPAL_SELF_RID 10 -#define SID_REVISION 1 -#define DOMAIN_USER_RID_ADMIN 0x1F4L -#define DOMAIN_USER_RID_GUEST 0x1F5L -#define DOMAIN_GROUP_RID_ADMINS 0x200L -#define DOMAIN_GROUP_RID_USERS 0x201L -#define DOMAIN_ALIAS_RID_ADMINS 0x220L -#define DOMAIN_ALIAS_RID_USERS 0x221L -#define DOMAIN_ALIAS_RID_GUESTS 0x222L -#define DOMAIN_ALIAS_RID_POWER_USERS 0x223L -#define DOMAIN_ALIAS_RID_ACCOUNT_OPS 0x224L -#define DOMAIN_ALIAS_RID_SYSTEM_OPS 0x225L -#define DOMAIN_ALIAS_RID_PRINT_OPS 0x226L -#define DOMAIN_ALIAS_RID_BACKUP_OPS 0x227L -#define DOMAIN_ALIAS_RID_REPLICATOR 0x228L -#define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege") -#define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege") -#define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege") -#define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege") -#define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege") -#define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege") -#define SE_TCB_NAME TEXT("SeTcbPrivilege") -#define SE_SECURITY_NAME TEXT("SeSecurityPrivilege") -#define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege") -#define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege") -#define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege") -#define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege") -#define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege") -#define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege") -#define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege") -#define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege") -#define SE_BACKUP_NAME TEXT("SeBackupPrivilege") -#define SE_RESTORE_NAME TEXT("SeRestorePrivilege") -#define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege") -#define SE_DEBUG_NAME TEXT("SeDebugPrivilege") -#define SE_AUDIT_NAME TEXT("SeAuditPrivilege") -#define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege") -#define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege") -#define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege") -#define SE_GROUP_MANDATORY 1 -#define SE_GROUP_ENABLED_BY_DEFAULT 2 -#define SE_GROUP_ENABLED 4 -#define SE_GROUP_OWNER 8 -#define SE_GROUP_USE_FOR_DENY_ONLY 16 -#define SE_GROUP_LOGON_ID 3221225472U -#define SE_GROUP_RESOURCE 536870912 -#define LANG_NEUTRAL 0x00 -#define LANG_ARABIC 0x01 -#define LANG_BULGARIAN 0x02 -#define LANG_CATALAN 0x03 -#define LANG_CHINESE 0x04 -#define LANG_CZECH 0x05 -#define LANG_DANISH 0x06 -#define LANG_GERMAN 0x07 -#define LANG_GREEK 0x08 -#define LANG_ENGLISH 0x09 -#define LANG_SPANISH 0x0a -#define LANG_FINNISH 0x0b -#define LANG_FRENCH 0x0c -#define LANG_HEBREW 0x0d -#define LANG_HUNGARIAN 0x0e -#define LANG_ICELANDIC 0x0f -#define LANG_ITALIAN 0x10 -#define LANG_JAPANESE 0x11 -#define LANG_KOREAN 0x12 -#define LANG_DUTCH 0x13 -#define LANG_NORWEGIAN 0x14 -#define LANG_POLISH 0x15 -#define LANG_PORTUGUESE 0x16 -#define LANG_ROMANIAN 0x18 -#define LANG_RUSSIAN 0x19 -#define LANG_CROATIAN 0x1a -#define LANG_SERBIAN 0x1a -#define LANG_SLOVAK 0x1b -#define LANG_ALBANIAN 0x1c -#define LANG_SWEDISH 0x1d -#define LANG_THAI 0x1e -#define LANG_TURKISH 0x1f -#define LANG_URDU 0x20 -#define LANG_INDONESIAN 0x21 -#define LANG_UKRAINIAN 0x22 -#define LANG_BELARUSIAN 0x23 -#define LANG_SLOVENIAN 0x24 -#define LANG_ESTONIAN 0x25 -#define LANG_LATVIAN 0x26 -#define LANG_LITHUANIAN 0x27 -#define LANG_FARSI 0x29 -#define LANG_VIETNAMESE 0x2a -#define LANG_ARMENIAN 0x2b -#define LANG_AZERI 0x2c -#define LANG_BASQUE 0x2d -#define LANG_MACEDONIAN 0x2f -#define LANG_AFRIKAANS 0x36 -#define LANG_GEORGIAN 0x37 -#define LANG_FAEROESE 0x38 -#define LANG_HINDI 0x39 -#define LANG_MALAY 0x3e -#define LANG_KAZAK 0x3f -#define LANG_SWAHILI 0x41 -#define LANG_UZBEK 0x43 -#define LANG_TATAR 0x44 -#define LANG_BENGALI 0x45 -#define LANG_PUNJABI 0x46 -#define LANG_GUJARATI 0x47 -#define LANG_ORIYA 0x48 -#define LANG_TAMIL 0x49 -#define LANG_TELUGU 0x4a -#define LANG_KANNADA 0x4b -#define LANG_MALAYALAM 0x4c -#define LANG_ASSAMESE 0x4d -#define LANG_MARATHI 0x4e -#define LANG_SANSKRIT 0x4f -#define LANG_KONKANI 0x57 -#define LANG_MANIPURI 0x58 -#define LANG_SINDHI 0x59 -#define LANG_KASHMIRI 0x60 -#define LANG_NEPALI 0x61 -#define SUBLANG_NEUTRAL 0x00 -#define SUBLANG_DEFAULT 0x01 -#define SUBLANG_SYS_DEFAULT 0x02 -#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 -#define SUBLANG_ARABIC_IRAQ 0x02 -#define SUBLANG_ARABIC_EGYPT 0x03 -#define SUBLANG_ARABIC_LIBYA 0x04 -#define SUBLANG_ARABIC_ALGERIA 0x05 -#define SUBLANG_ARABIC_MOROCCO 0x06 -#define SUBLANG_ARABIC_TUNISIA 0x07 -#define SUBLANG_ARABIC_OMAN 0x08 -#define SUBLANG_ARABIC_YEMEN 0x09 -#define SUBLANG_ARABIC_SYRIA 0x0a -#define SUBLANG_ARABIC_JORDAN 0x0b -#define SUBLANG_ARABIC_LEBANON 0x0c -#define SUBLANG_ARABIC_KUWAIT 0x0d -#define SUBLANG_ARABIC_UAE 0x0e -#define SUBLANG_ARABIC_BAHRAIN 0x0f -#define SUBLANG_ARABIC_QATAR 0x10 -#define SUBLANG_AZERI_CYRILLIC 0x01 -#define SUBLANG_AZERI_LATIN 0x02 -#define SUBLANG_CHINESE_TRADITIONAL 0x01 -#define SUBLANG_CHINESE_SIMPLIFIED 0x02 -#define SUBLANG_CHINESE_HONGKONG 0x03 -#define SUBLANG_CHINESE_SINGAPORE 0x04 -#define SUBLANG_CHINESE_MACAU 0x05 -#define SUBLANG_DUTCH 0x01 -#define SUBLANG_DUTCH_BELGIAN 0x02 -#define SUBLANG_ENGLISH_US 0x01 -#define SUBLANG_ENGLISH_UK 0x02 -#define SUBLANG_ENGLISH_AUS 0x03 -#define SUBLANG_ENGLISH_CAN 0x04 -#define SUBLANG_ENGLISH_NZ 0x05 -#define SUBLANG_ENGLISH_EIRE 0x06 -#define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 -#define SUBLANG_ENGLISH_JAMAICA 0x08 -#define SUBLANG_ENGLISH_CARIBBEAN 0x09 -#define SUBLANG_ENGLISH_BELIZE 0x0a -#define SUBLANG_ENGLISH_TRINIDAD 0x0b -#define SUBLANG_ENGLISH_PHILIPPINES 0x0c -#define SUBLANG_ENGLISH_ZIMBABWE 0x0d -#define SUBLANG_FRENCH 0x01 -#define SUBLANG_FRENCH_BELGIAN 0x02 -#define SUBLANG_FRENCH_CANADIAN 0x03 -#define SUBLANG_FRENCH_SWISS 0x04 -#define SUBLANG_FRENCH_LUXEMBOURG 0x05 -#define SUBLANG_FRENCH_MONACO 0x06 -#define SUBLANG_GERMAN 0x01 -#define SUBLANG_GERMAN_SWISS 0x02 -#define SUBLANG_GERMAN_AUSTRIAN 0x03 -#define SUBLANG_GERMAN_LUXEMBOURG 0x04 -#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 -#define SUBLANG_ITALIAN 0x01 -#define SUBLANG_ITALIAN_SWISS 0x02 -#define SUBLANG_KASHMIRI_INDIA 0x02 -#define SUBLANG_KOREAN 0x01 -#define SUBLANG_LITHUANIAN 0x01 -#define SUBLANG_MALAY_MALAYSIA 0x01 -#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 -#define SUBLANG_NEPALI_INDIA 0x02 -#define SUBLANG_NORWEGIAN_BOKMAL 0x01 -#define SUBLANG_NORWEGIAN_NYNORSK 0x02 -#define SUBLANG_PORTUGUESE 0x01 -#define SUBLANG_PORTUGUESE_BRAZILIAN 0x02 -#define SUBLANG_SERBIAN_LATIN 0x02 -#define SUBLANG_SERBIAN_CYRILLIC 0x03 -#define SUBLANG_SPANISH 0x01 -#define SUBLANG_SPANISH_MEXICAN 0x02 -#define SUBLANG_SPANISH_MODERN 0x03 -#define SUBLANG_SPANISH_GUATEMALA 0x04 -#define SUBLANG_SPANISH_COSTA_RICA 0x05 -#define SUBLANG_SPANISH_PANAMA 0x06 -#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 -#define SUBLANG_SPANISH_VENEZUELA 0x08 -#define SUBLANG_SPANISH_COLOMBIA 0x09 -#define SUBLANG_SPANISH_PERU 0x0a -#define SUBLANG_SPANISH_ARGENTINA 0x0b -#define SUBLANG_SPANISH_ECUADOR 0x0c -#define SUBLANG_SPANISH_CHILE 0x0d -#define SUBLANG_SPANISH_URUGUAY 0x0e -#define SUBLANG_SPANISH_PARAGUAY 0x0f -#define SUBLANG_SPANISH_BOLIVIA 0x10 -#define SUBLANG_SPANISH_EL_SALVADOR 0x11 -#define SUBLANG_SPANISH_HONDURAS 0x12 -#define SUBLANG_SPANISH_NICARAGUA 0x13 -#define SUBLANG_SPANISH_PUERTO_RICO 0x14 -#define SUBLANG_SWEDISH 0x01 -#define SUBLANG_SWEDISH_FINLAND 0x02 -#define SUBLANG_URDU_PAKISTAN 0x01 -#define SUBLANG_URDU_INDIA 0x02 -#define SUBLANG_UZBEK_LATIN 0x01 -#define SUBLANG_UZBEK_CYRILLIC 0x02 -#define NLS_VALID_LOCALE_MASK 1048575 -#define SORT_DEFAULT 0 -#define SORT_JAPANESE_XJIS 0 -#define SORT_JAPANESE_UNICODE 1 -#define SORT_CHINESE_BIG5 0 -#define SORT_CHINESE_PRCP 0 -#define SORT_CHINESE_UNICODE 1 -#define SORT_CHINESE_PRC 2 -#define SORT_CHINESE_BOPOMOFO 3 -#define SORT_KOREAN_KSC 0 -#define SORT_KOREAN_UNICODE 1 -#define SORT_GERMAN_PHONE_BOOK 1 -#define SORT_HUNGARIAN_DEFAULT 0 -#define SORT_HUNGARIAN_TECHNICAL 1 -#define SORT_GEORGIAN_TRADITIONAL 0 -#define SORT_GEORGIAN_MODERN 1 -#define MAKELANGID(p,s) ((((WORD)(s))<<10)|(WORD)(p)) -#define MAKELCID(l,s) ((DWORD)((((DWORD)((WORD)(s)))<<16)|((DWORD)((WORD)(l))))) -#define PRIMARYLANGID(l) ((WORD)(l)&0x3ff) -#define SORTIDFROMLCID(l) ((WORD)((((DWORD)(l))&NLS_VALID_LOCALE_MASK)>>16)) -#define SORTVERSIONFROMLCID(l) ((WORD)((((DWORD)(l))>>20)&0xf)) -#define SUBLANGID(l) ((WORD)(l)>>10) -#define LANGIDFROMLCID(l) ((WORD)(l)) -#define LANG_SYSTEM_DEFAULT MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT) -#define LANG_USER_DEFAULT MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT) -#define LOCALE_NEUTRAL MAKELCID(MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL),SORT_DEFAULT) -#define ACL_REVISION 2 -#define ACL_REVISION_DS 4 -#define ACL_REVISION1 1 -#define ACL_REVISION2 2 -#define ACL_REVISION3 3 -#define ACL_REVISION4 4 -#define MIN_ACL_REVISION 2 -#define MAX_ACL_REVISION 4 -#define MINCHAR 0x80 -#define MAXCHAR 0x7f -#define MINSHORT 0x8000 -#define MAXSHORT 0x7fff -#define MINLONG 0x80000000 -#define MAXLONG 0x7fffffff -#define MAXBYTE 0xff -#define MAXWORD 0xffff -#define MAXDWORD 0xffffffff -#define PROCESSOR_INTEL_386 386 -#define PROCESSOR_INTEL_486 486 -#define PROCESSOR_INTEL_PENTIUM 586 -#define PROCESSOR_MIPS_R4000 4000 -#define PROCESSOR_ALPHA_21064 21064 -#define PROCESSOR_ARCHITECTURE_INTEL 0 -#define PROCESSOR_ARCHITECTURE_MIPS 1 -#define PROCESSOR_ARCHITECTURE_ALPHA 2 -#define PROCESSOR_ARCHITECTURE_PPC 3 -#define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF -#define PF_FLOATING_POINT_PRECISION_ERRATA 0 -#define PF_FLOATING_POINT_EMULATED 1 -#define PF_COMPARE_EXCHANGE_DOUBLE 2 -#define PF_MMX_INSTRUCTIONS_AVAILABLE 3 -#define PF_PPC_MOVEMEM_64BIT_OK 4 -#define PF_ALPHA_BYTE_INSTRUCTIONS 5 -#define PF_XMMI_INSTRUCTIONS_AVAILABLE 6 -#define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7 -#define PF_RDTSC_INSTRUCTION_AVAILABLE 8 -#define PF_PAE_ENABLED 9 -#define PAGE_READONLY 2 -#define PAGE_READWRITE 4 -#define PAGE_WRITECOPY 8 -#define FILE_ACTION_ADDED 1 -#define FILE_ACTION_REMOVED 2 -#define FILE_ACTION_MODIFIED 3 -#define FILE_ACTION_RENAMED_OLD_NAME 4 -#define FILE_ACTION_RENAMED_NEW_NAME 5 -#define HEAP_NO_SERIALIZE 1 -#define HEAP_GROWABLE 2 -#define HEAP_GENERATE_EXCEPTIONS 4 -#define HEAP_ZERO_MEMORY 8 -#define HEAP_REALLOC_IN_PLACE_ONLY 16 -#define HEAP_TAIL_CHECKING_ENABLED 32 -#define HEAP_FREE_CHECKING_ENABLED 64 -#define HEAP_DISABLE_COALESCE_ON_FREE 128 -#define HEAP_CREATE_ALIGN_16 0x0000 -#define HEAP_CREATE_ENABLE_TRACING 0x20000 -#define HEAP_MAXIMUM_TAG 0xFFF -#define HEAP_PSEUDO_TAG_FLAG 0x8000 -#define HEAP_TAG_SHIFT 16 -#define HEAP_MAKE_TAG_FLAGS(b,o) ((DWORD)((b)+(o)<<16))) -#define KEY_QUERY_VALUE 1 -#define KEY_SET_VALUE 2 -#define KEY_CREATE_SUB_KEY 4 -#define KEY_ENUMERATE_SUB_KEYS 8 -#define KEY_NOTIFY 16 -#define KEY_CREATE_LINK 32 -#define KEY_WRITE 0x20006 -#define KEY_EXECUTE 0x20019 -#define KEY_READ 0x20019 -#define KEY_ALL_ACCESS 0xf003f -#define REG_WHOLE_HIVE_VOLATILE 1 -#define REG_REFRESH_HIVE 2 -#define REG_NO_LAZY_FLUSH 4 -#define REG_OPTION_RESERVED 0 -#define REG_OPTION_NON_VOLATILE 0 -#define REG_OPTION_VOLATILE 1 -#define REG_OPTION_CREATE_LINK 2 -#define REG_OPTION_BACKUP_RESTORE 4 -#define REG_OPTION_OPEN_LINK 8 -#define REG_LEGAL_OPTION 15 -#define OWNER_SECURITY_INFORMATION 1 -#define GROUP_SECURITY_INFORMATION 2 -#define DACL_SECURITY_INFORMATION 4 -#define SACL_SECURITY_INFORMATION 8 -#define MAXIMUM_PROCESSORS 32 -#define PAGE_EXECUTE 16 -#define PAGE_EXECUTE_READ 32 -#define PAGE_EXECUTE_READWRITE 64 -#define PAGE_GUARD 256 -#define PAGE_NOACCESS 1 -#define PAGE_NOCACHE 512 -#define MEM_COMMIT 0x1000 -#define MEM_RESERVE 0x2000 -#define MEM_DECOMMIT 0x4000 -#define MEM_RELEASE 0x8000 -#define MEM_FREE 0x10000 -#define MEM_PRIVATE 0x20000 -#define MEM_MAPPED 0x40000 -#define MEM_RESET 0x80000 -#define MEM_TOP_DOWN 0x100000 -#define MEM_WRITE_WATCH 0x200000 /* 98/Me */ -#define MEM_PHYSICAL 0x400000 -#define MEM_4MB_PAGES 0x80000000 -#define MEM_IMAGE 16777216 -#define SEC_FILE 0x800000 -#define SEC_IMAGE 0x1000000 -#define SEC_VLM 0x2000000 -#define SEC_RESERVE 0x4000000 -#define SEC_COMMIT 0x8000000 -#define SEC_NOCACHE 0x10000000 -#define PAGE_EXECUTE_WRITECOPY 128 -#define SECTION_EXTEND_SIZE 16 -#define SECTION_MAP_READ 4 -#define SECTION_MAP_WRITE 2 -#define SECTION_QUERY 1 -#define SECTION_ALL_ACCESS 0xf001f -#define MESSAGE_RESOURCE_UNICODE 1 -#define RTL_CRITSECT_TYPE 0 -#define RTL_RESOURCE_TYPE 1 -#define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f)) -#define IMAGE_SIZEOF_FILE_HEADER 20 -#define IMAGE_FILE_RELOCS_STRIPPED 1 -#define IMAGE_FILE_EXECUTABLE_IMAGE 2 -#define IMAGE_FILE_LINE_NUMS_STRIPPED 4 -#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 8 -#define IMAGE_FILE_BYTES_REVERSED_LO 128 -#define IMAGE_FILE_32BIT_MACHINE 256 -#define IMAGE_FILE_DEBUG_STRIPPED 512 -#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 1024 -#define IMAGE_FILE_NET_RUN_FROM_SWAP 2048 -#define IMAGE_FILE_SYSTEM 4096 -#define IMAGE_FILE_DLL 8192 -#define IMAGE_FILE_UP_SYSTEM_ONLY 16384 -#define IMAGE_FILE_BYTES_REVERSED_HI 32768 -#define IMAGE_FILE_MACHINE_UNKNOWN 0 -#define IMAGE_FILE_MACHINE_I386 332 -#define IMAGE_FILE_MACHINE_R3000 354 -#define IMAGE_FILE_MACHINE_R4000 358 -#define IMAGE_FILE_MACHINE_R10000 360 -#define IMAGE_FILE_MACHINE_ALPHA 388 -#define IMAGE_FILE_MACHINE_POWERPC 496 -#define IMAGE_DOS_SIGNATURE 0x5A4D -#define IMAGE_OS2_SIGNATURE 0x454E -#define IMAGE_OS2_SIGNATURE_LE 0x454C -#define IMAGE_VXD_SIGNATURE 0x454C -#define IMAGE_NT_SIGNATURE 0x00004550 -#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b -#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107 -#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944 -#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 -#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56 -#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28 -#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER 224 -#define IMAGE_SIZEOF_SHORT_NAME 8 -#define IMAGE_SIZEOF_SECTION_HEADER 40 -#define IMAGE_SIZEOF_SYMBOL 18 -#define IMAGE_SIZEOF_AUX_SYMBOL 18 -#define IMAGE_SIZEOF_RELOCATION 10 -#define IMAGE_SIZEOF_BASE_RELOCATION 8 -#define IMAGE_SIZEOF_LINENUMBER 6 -#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 -#define SIZEOF_RFPO_DATA 16 -#define IMAGE_SUBSYSTEM_UNKNOWN 0 -#define IMAGE_SUBSYSTEM_NATIVE 1 -#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 -#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 -#define IMAGE_SUBSYSTEM_OS2_CUI 5 -#define IMAGE_SUBSYSTEM_POSIX_CUI 7 -#define IMAGE_FIRST_SECTION(h) ((PIMAGE_SECTION_HEADER) ((DWORD)h+FIELD_OFFSET(IMAGE_NT_HEADERS,OptionalHeader)+((PIMAGE_NT_HEADERS)(h))->FileHeader.SizeOfOptionalHeader)) -#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 -#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 -#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 -#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 -#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 -#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 -#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 -#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 -#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 -#define IMAGE_DIRECTORY_ENTRY_TLS 9 -#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 -#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 -#define IMAGE_DIRECTORY_ENTRY_IAT 12 -#define IMAGE_SCN_TYPE_NO_PAD 8 -#define IMAGE_SCN_CNT_CODE 32 -#define IMAGE_SCN_CNT_INITIALIZED_DATA 64 -#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 128 -#define IMAGE_SCN_LNK_OTHER 256 -#define IMAGE_SCN_LNK_INFO 512 -#define IMAGE_SCN_LNK_REMOVE 2048 -#define IMAGE_SCN_LNK_COMDAT 4096 -#define IMAGE_SCN_MEM_FARDATA 0x8000 -#define IMAGE_SCN_MEM_PURGEABLE 0x20000 -#define IMAGE_SCN_MEM_16BIT 0x20000 -#define IMAGE_SCN_MEM_LOCKED 0x40000 -#define IMAGE_SCN_MEM_PRELOAD 0x80000 -#define IMAGE_SCN_ALIGN_1BYTES 0x100000 -#define IMAGE_SCN_ALIGN_2BYTES 0x200000 -#define IMAGE_SCN_ALIGN_4BYTES 0x300000 -#define IMAGE_SCN_ALIGN_8BYTES 0x400000 -#define IMAGE_SCN_ALIGN_16BYTES 0x500000 -#define IMAGE_SCN_ALIGN_32BYTES 0x600000 -#define IMAGE_SCN_ALIGN_64BYTES 0x700000 -#define IMAGE_SCN_LNK_NRELOC_OVFL 0x1000000 -#define IMAGE_SCN_MEM_DISCARDABLE 0x2000000 -#define IMAGE_SCN_MEM_NOT_CACHED 0x4000000 -#define IMAGE_SCN_MEM_NOT_PAGED 0x8000000 -#define IMAGE_SCN_MEM_SHARED 0x10000000 -#define IMAGE_SCN_MEM_EXECUTE 0x20000000 -#define IMAGE_SCN_MEM_READ 0x40000000 -#define IMAGE_SCN_MEM_WRITE 0x80000000 -#define IMAGE_SYM_UNDEFINED 0 -#define IMAGE_SYM_ABSOLUTE (-1) -#define IMAGE_SYM_DEBUG (-2) -#define IMAGE_SYM_TYPE_NULL 0 -#define IMAGE_SYM_TYPE_VOID 1 -#define IMAGE_SYM_TYPE_CHAR 2 -#define IMAGE_SYM_TYPE_SHORT 3 -#define IMAGE_SYM_TYPE_INT 4 -#define IMAGE_SYM_TYPE_LONG 5 -#define IMAGE_SYM_TYPE_FLOAT 6 -#define IMAGE_SYM_TYPE_DOUBLE 7 -#define IMAGE_SYM_TYPE_STRUCT 8 -#define IMAGE_SYM_TYPE_UNION 9 -#define IMAGE_SYM_TYPE_ENUM 10 -#define IMAGE_SYM_TYPE_MOE 11 -#define IMAGE_SYM_TYPE_BYTE 12 -#define IMAGE_SYM_TYPE_WORD 13 -#define IMAGE_SYM_TYPE_UINT 14 -#define IMAGE_SYM_TYPE_DWORD 15 -#define IMAGE_SYM_TYPE_PCODE 32768 -#define IMAGE_SYM_DTYPE_NULL 0 -#define IMAGE_SYM_DTYPE_POINTER 1 -#define IMAGE_SYM_DTYPE_FUNCTION 2 -#define IMAGE_SYM_DTYPE_ARRAY 3 -#define IMAGE_SYM_CLASS_END_OF_FUNCTION (-1) -#define IMAGE_SYM_CLASS_NULL 0 -#define IMAGE_SYM_CLASS_AUTOMATIC 1 -#define IMAGE_SYM_CLASS_EXTERNAL 2 -#define IMAGE_SYM_CLASS_STATIC 3 -#define IMAGE_SYM_CLASS_REGISTER 4 -#define IMAGE_SYM_CLASS_EXTERNAL_DEF 5 -#define IMAGE_SYM_CLASS_LABEL 6 -#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 7 -#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8 -#define IMAGE_SYM_CLASS_ARGUMENT 9 -#define IMAGE_SYM_CLASS_STRUCT_TAG 10 -#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 11 -#define IMAGE_SYM_CLASS_UNION_TAG 12 -#define IMAGE_SYM_CLASS_TYPE_DEFINITION 13 -#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 14 -#define IMAGE_SYM_CLASS_ENUM_TAG 15 -#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16 -#define IMAGE_SYM_CLASS_REGISTER_PARAM 17 -#define IMAGE_SYM_CLASS_BIT_FIELD 18 -#define IMAGE_SYM_CLASS_FAR_EXTERNAL 68 -#define IMAGE_SYM_CLASS_BLOCK 100 -#define IMAGE_SYM_CLASS_FUNCTION 101 -#define IMAGE_SYM_CLASS_END_OF_STRUCT 102 -#define IMAGE_SYM_CLASS_FILE 103 -#define IMAGE_SYM_CLASS_SECTION 104 -#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 105 -#define IMAGE_COMDAT_SELECT_NODUPLICATES 1 -#define IMAGE_COMDAT_SELECT_ANY 2 -#define IMAGE_COMDAT_SELECT_SAME_SIZE 3 -#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4 -#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5 -#define IMAGE_COMDAT_SELECT_LARGEST 6 -#define IMAGE_COMDAT_SELECT_NEWEST 7 -#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1 -#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 -#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 -#define IMAGE_REL_I386_ABSOLUTE 0 -#define IMAGE_REL_I386_DIR16 1 -#define IMAGE_REL_I386_REL16 2 -#define IMAGE_REL_I386_DIR32 6 -#define IMAGE_REL_I386_DIR32NB 7 -#define IMAGE_REL_I386_SEG12 9 -#define IMAGE_REL_I386_SECTION 10 -#define IMAGE_REL_I386_SECREL 11 -#define IMAGE_REL_I386_REL32 20 -#define IMAGE_REL_MIPS_ABSOLUTE 0 -#define IMAGE_REL_MIPS_REFHALF 1 -#define IMAGE_REL_MIPS_REFWORD 2 -#define IMAGE_REL_MIPS_JMPADDR 3 -#define IMAGE_REL_MIPS_REFHI 4 -#define IMAGE_REL_MIPS_REFLO 5 -#define IMAGE_REL_MIPS_GPREL 6 -#define IMAGE_REL_MIPS_LITERAL 7 -#define IMAGE_REL_MIPS_SECTION 10 -#define IMAGE_REL_MIPS_SECREL 11 -#define IMAGE_REL_MIPS_SECRELLO 12 -#define IMAGE_REL_MIPS_SECRELHI 13 -#define IMAGE_REL_MIPS_REFWORDNB 34 -#define IMAGE_REL_MIPS_PAIR 35 -#define IMAGE_REL_ALPHA_ABSOLUTE 0 -#define IMAGE_REL_ALPHA_REFLONG 1 -#define IMAGE_REL_ALPHA_REFQUAD 2 -#define IMAGE_REL_ALPHA_GPREL32 3 -#define IMAGE_REL_ALPHA_LITERAL 4 -#define IMAGE_REL_ALPHA_LITUSE 5 -#define IMAGE_REL_ALPHA_GPDISP 6 -#define IMAGE_REL_ALPHA_BRADDR 7 -#define IMAGE_REL_ALPHA_HINT 8 -#define IMAGE_REL_ALPHA_INLINE_REFLONG 9 -#define IMAGE_REL_ALPHA_REFHI 10 -#define IMAGE_REL_ALPHA_REFLO 11 -#define IMAGE_REL_ALPHA_PAIR 12 -#define IMAGE_REL_ALPHA_MATCH 13 -#define IMAGE_REL_ALPHA_SECTION 14 -#define IMAGE_REL_ALPHA_SECREL 15 -#define IMAGE_REL_ALPHA_REFLONGNB 16 -#define IMAGE_REL_ALPHA_SECRELLO 17 -#define IMAGE_REL_ALPHA_SECRELHI 18 -#define IMAGE_REL_PPC_ABSOLUTE 0 -#define IMAGE_REL_PPC_ADDR64 1 -#define IMAGE_REL_PPC_ADDR32 2 -#define IMAGE_REL_PPC_ADDR24 3 -#define IMAGE_REL_PPC_ADDR16 4 -#define IMAGE_REL_PPC_ADDR14 5 -#define IMAGE_REL_PPC_REL24 6 -#define IMAGE_REL_PPC_REL14 7 -#define IMAGE_REL_PPC_TOCREL16 8 -#define IMAGE_REL_PPC_TOCREL14 9 -#define IMAGE_REL_PPC_ADDR32NB 10 -#define IMAGE_REL_PPC_SECREL 11 -#define IMAGE_REL_PPC_SECTION 12 -#define IMAGE_REL_PPC_IFGLUE 13 -#define IMAGE_REL_PPC_IMGLUE 14 -#define IMAGE_REL_PPC_SECREL16 15 -#define IMAGE_REL_PPC_REFHI 16 -#define IMAGE_REL_PPC_REFLO 17 -#define IMAGE_REL_PPC_PAIR 18 -#define IMAGE_REL_PPC_TYPEMASK 255 -#define IMAGE_REL_PPC_NEG 256 -#define IMAGE_REL_PPC_BRTAKEN 512 -#define IMAGE_REL_PPC_BRNTAKEN 1024 -#define IMAGE_REL_PPC_TOCDEFN 2048 -#define IMAGE_REL_BASED_ABSOLUTE 0 -#define IMAGE_REL_BASED_HIGH 1 -#define IMAGE_REL_BASED_LOW 2 -#define IMAGE_REL_BASED_HIGHLOW 3 -#define IMAGE_REL_BASED_HIGHADJ 4 -#define IMAGE_REL_BASED_MIPS_JMPADDR 5 -#define IMAGE_ARCHIVE_START_SIZE 8 -#define IMAGE_ARCHIVE_START "!\n" -#define IMAGE_ARCHIVE_END "`\n" -#define IMAGE_ARCHIVE_PAD "\n" -#define IMAGE_ARCHIVE_LINKER_MEMBER "/ " -#define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// " -#define IMAGE_ORDINAL_FLAG 0x80000000 -#define IMAGE_SNAP_BY_ORDINAL(o) ((o&IMAGE_ORDINAL_FLAG)!=0) -#define IMAGE_ORDINAL(o) (o&0xffff) -#define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000 -#define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000 -#define IMAGE_DEBUG_TYPE_UNKNOWN 0 -#define IMAGE_DEBUG_TYPE_COFF 1 -#define IMAGE_DEBUG_TYPE_CODEVIEW 2 -#define IMAGE_DEBUG_TYPE_FPO 3 -#define IMAGE_DEBUG_TYPE_MISC 4 -#define IMAGE_DEBUG_TYPE_EXCEPTION 5 -#define IMAGE_DEBUG_TYPE_FIXUP 6 -#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7 -#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8 -#define FRAME_FPO 0 -#define FRAME_TRAP 1 -#define FRAME_TSS 2 -#define FRAME_NONFPO 3 -#define IMAGE_DEBUG_MISC_EXENAME 1 -#define N_BTMASK 0x000F -#define N_TMASK 0x0030 -#define N_TMASK1 0x00C0 -#define N_TMASK2 0x00F0 -#define N_BTSHFT 4 -#define N_TSHIFT 2 -#define IS_TEXT_UNICODE_ASCII16 1 -#define IS_TEXT_UNICODE_REVERSE_ASCII16 16 -#define IS_TEXT_UNICODE_STATISTICS 2 -#define IS_TEXT_UNICODE_REVERSE_STATISTICS 32 -#define IS_TEXT_UNICODE_CONTROLS 4 -#define IS_TEXT_UNICODE_REVERSE_CONTROLS 64 -#define IS_TEXT_UNICODE_SIGNATURE 8 -#define IS_TEXT_UNICODE_REVERSE_SIGNATURE 128 -#define IS_TEXT_UNICODE_ILLEGAL_CHARS 256 -#define IS_TEXT_UNICODE_ODD_LENGTH 512 -#define IS_TEXT_UNICODE_NULL_BYTES 4096 -#define IS_TEXT_UNICODE_UNICODE_MASK 15 -#define IS_TEXT_UNICODE_REVERSE_MASK 240 -#define IS_TEXT_UNICODE_NOT_UNICODE_MASK 3840 -#define IS_TEXT_UNICODE_NOT_ASCII_MASK 61440 -#define SERVICE_KERNEL_DRIVER 1 -#define SERVICE_FILE_SYSTEM_DRIVER 2 -#define SERVICE_ADAPTER 4 -#define SERVICE_RECOGNIZER_DRIVER 8 -#define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER|SERVICE_FILE_SYSTEM_DRIVER|SERVICE_RECOGNIZER_DRIVER) -#define SERVICE_WIN32_OWN_PROCESS 16 -#define SERVICE_WIN32_SHARE_PROCESS 32 -#define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS|SERVICE_WIN32_SHARE_PROCESS) -#define SERVICE_INTERACTIVE_PROCESS 256 -#define SERVICE_TYPE_ALL (SERVICE_WIN32|SERVICE_ADAPTER|SERVICE_DRIVER|SERVICE_INTERACTIVE_PROCESS) -#define SERVICE_BOOT_START 0 -#define SERVICE_SYSTEM_START 1 -#define SERVICE_AUTO_START 2 -#define SERVICE_DEMAND_START 3 -#define SERVICE_DISABLED 4 -#define SERVICE_ERROR_IGNORE 0 -#define SERVICE_ERROR_NORMAL 1 -#define SERVICE_ERROR_SEVERE 2 -#define SERVICE_ERROR_CRITICAL 3 -#define SE_OWNER_DEFAULTED 1 -#define SE_GROUP_DEFAULTED 2 -#define SE_DACL_PRESENT 4 -#define SE_DACL_DEFAULTED 8 -#define SE_SACL_PRESENT 16 -#define SE_SACL_DEFAULTED 32 -#define SE_DACL_AUTO_INHERIT_REQ 256 -#define SE_SACL_AUTO_INHERIT_REQ 512 -#define SE_DACL_AUTO_INHERITED 1024 -#define SE_SACL_AUTO_INHERITED 2048 -#define SE_DACL_PROTECTED 4096 -#define SE_SACL_PROTECTED 8192 -#define SE_SELF_RELATIVE 0x8000 -#define SECURITY_DESCRIPTOR_MIN_LENGTH 20 -#define SECURITY_DESCRIPTOR_REVISION 1 -#define SECURITY_DESCRIPTOR_REVISION1 1 -#define SE_PRIVILEGE_ENABLED_BY_DEFAULT 1 -#define SE_PRIVILEGE_ENABLED 2 -#define SE_PRIVILEGE_USED_FOR_ACCESS 0x80000000 -#define PRIVILEGE_SET_ALL_NECESSARY 1 -#define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation -#define DEFAULT_IMPERSONATION_LEVEL SecurityImpersonation -#define SECURITY_DYNAMIC_TRACKING TRUE -#define SECURITY_STATIC_TRACKING FALSE -#define TOKEN_SOURCE_LENGTH 8 -#define TOKEN_ADJUST_DEFAULT 128 -#define TOKEN_ADJUST_GROUPS 64 -#define TOKEN_ADJUST_PRIVILEGES 32 -#define TOKEN_ALL_ACCESS 0xf00ff -#define TOKEN_ASSIGN_PRIMARY 1 -#define TOKEN_DUPLICATE 2 -#define TOKEN_EXECUTE 0x20000 -#define TOKEN_IMPERSONATE 4 -#define TOKEN_QUERY 8 -#define TOKEN_QUERY_SOURCE 16 -#define TOKEN_READ 0x20008 -#define TOKEN_WRITE 0x200e0 -#define DLL_PROCESS_DETACH 0 -#define DLL_PROCESS_ATTACH 1 -#define DLL_THREAD_ATTACH 2 -#define DLL_THREAD_DETACH 3 -#define DBG_CONTINUE 0x10002 -#define DBG_TERMINATE_THREAD 0x40010003 -#define DBG_TERMINATE_PROCESS 0x40010004 -#define DBG_CONTROL_C 0x40010005 -#define DBG_CONTROL_BREAK 0x40010008 -#define DBG_EXCEPTION_NOT_HANDLED 0x80010001 -#define TAPE_ABSOLUTE_POSITION 0 -#define TAPE_LOGICAL_POSITION 1 -#define TAPE_PSEUDO_LOGICAL_POSITION 2 -#define TAPE_REWIND 0 -#define TAPE_ABSOLUTE_BLOCK 1 -#define TAPE_LOGICAL_BLOCK 2 -#define TAPE_PSEUDO_LOGICAL_BLOCK 3 -#define TAPE_SPACE_END_OF_DATA 4 -#define TAPE_SPACE_RELATIVE_BLOCKS 5 -#define TAPE_SPACE_FILEMARKS 6 -#define TAPE_SPACE_SEQUENTIAL_FMKS 7 -#define TAPE_SPACE_SETMARKS 8 -#define TAPE_SPACE_SEQUENTIAL_SMKS 9 -#define TAPE_DRIVE_FIXED 1 -#define TAPE_DRIVE_SELECT 2 -#define TAPE_DRIVE_INITIATOR 4 -#define TAPE_DRIVE_ERASE_SHORT 16 -#define TAPE_DRIVE_ERASE_LONG 32 -#define TAPE_DRIVE_ERASE_BOP_ONLY 64 -#define TAPE_DRIVE_ERASE_IMMEDIATE 128 -#define TAPE_DRIVE_TAPE_CAPACITY 256 -#define TAPE_DRIVE_TAPE_REMAINING 512 -#define TAPE_DRIVE_FIXED_BLOCK 1024 -#define TAPE_DRIVE_VARIABLE_BLOCK 2048 -#define TAPE_DRIVE_WRITE_PROTECT 4096 -#define TAPE_DRIVE_EOT_WZ_SIZE 8192 -#define TAPE_DRIVE_ECC 0x10000 -#define TAPE_DRIVE_COMPRESSION 0x20000 -#define TAPE_DRIVE_PADDING 0x40000 -#define TAPE_DRIVE_REPORT_SMKS 0x80000 -#define TAPE_DRIVE_GET_ABSOLUTE_BLK 0x100000 -#define TAPE_DRIVE_GET_LOGICAL_BLK 0x200000 -#define TAPE_DRIVE_SET_EOT_WZ_SIZE 0x400000 -#define TAPE_DRIVE_EJECT_MEDIA 0x1000000 -#define TAPE_DRIVE_CLEAN_REQUESTS 0x2000000 -#define TAPE_DRIVE_SET_CMP_BOP_ONLY 0x4000000 -#define TAPE_DRIVE_RESERVED_BIT 0x80000000 -#define TAPE_DRIVE_LOAD_UNLOAD 0x80000001 -#define TAPE_DRIVE_TENSION 0x80000002 -#define TAPE_DRIVE_LOCK_UNLOCK 0x80000004 -#define TAPE_DRIVE_REWIND_IMMEDIATE 0x80000008 -#define TAPE_DRIVE_SET_BLOCK_SIZE 0x80000010 -#define TAPE_DRIVE_LOAD_UNLD_IMMED 0x80000020 -#define TAPE_DRIVE_TENSION_IMMED 0x80000040 -#define TAPE_DRIVE_LOCK_UNLK_IMMED 0x80000080 -#define TAPE_DRIVE_SET_ECC 0x80000100 -#define TAPE_DRIVE_SET_COMPRESSION 0x80000200 -#define TAPE_DRIVE_SET_PADDING 0x80000400 -#define TAPE_DRIVE_SET_REPORT_SMKS 0x80000800 -#define TAPE_DRIVE_ABSOLUTE_BLK 0x80001000 -#define TAPE_DRIVE_ABS_BLK_IMMED 0x80002000 -#define TAPE_DRIVE_LOGICAL_BLK 0x80004000 -#define TAPE_DRIVE_LOG_BLK_IMMED 0x80008000 -#define TAPE_DRIVE_END_OF_DATA 0x80010000 -#define TAPE_DRIVE_RELATIVE_BLKS 0x80020000 -#define TAPE_DRIVE_FILEMARKS 0x80040000 -#define TAPE_DRIVE_SEQUENTIAL_FMKS 0x80080000 -#define TAPE_DRIVE_SETMARKS 0x80100000 -#define TAPE_DRIVE_SEQUENTIAL_SMKS 0x80200000 -#define TAPE_DRIVE_REVERSE_POSITION 0x80400000 -#define TAPE_DRIVE_SPACE_IMMEDIATE 0x80800000 -#define TAPE_DRIVE_WRITE_SETMARKS 0x81000000 -#define TAPE_DRIVE_WRITE_FILEMARKS 0x82000000 -#define TAPE_DRIVE_WRITE_SHORT_FMKS 0x84000000 -#define TAPE_DRIVE_WRITE_LONG_FMKS 0x88000000 -#define TAPE_DRIVE_WRITE_MARK_IMMED 0x90000000 -#define TAPE_DRIVE_FORMAT 0xA0000000 -#define TAPE_DRIVE_FORMAT_IMMEDIATE 0xC0000000 -#define TAPE_DRIVE_HIGH_FEATURES 0x80000000 -#define TAPE_FIXED_PARTITIONS 0 -#define TAPE_INITIATOR_PARTITIONS 2 -#define TAPE_SELECT_PARTITIONS 1 -#define TAPE_FILEMARKS 1 -#define TAPE_LONG_FILEMARKS 3 -#define TAPE_SETMARKS 0 -#define TAPE_SHORT_FILEMARKS 2 -#define TAPE_ERASE_LONG 1 -#define TAPE_ERASE_SHORT 0 -#define TAPE_LOAD 0 -#define TAPE_UNLOAD 1 -#define TAPE_TENSION 2 -#define TAPE_LOCK 3 -#define TAPE_UNLOCK 4 -#define TAPE_FORMAT 5 -#define VER_PLATFORM_WIN32s 0 -#define VER_PLATFORM_WIN32_WINDOWS 1 -#define VER_PLATFORM_WIN32_NT 2 -#define VER_NT_WORKSTATION 1 -#define VER_NT_DOMAIN_CONTROLLER 2 -#define VER_NT_SERVER 3 -#define VER_SUITE_SMALLBUSINESS 1 -#define VER_SUITE_ENTERPRISE 2 -#define VER_SUITE_BACKOFFICE 4 -#define VER_SUITE_TERMINAL 16 -#define VER_SUITE_SMALLBUSINESS_RESTRICTED 32 -#define VER_SUITE_DATACENTER 128 -#define VER_SUITE_PERSONAL 512 -#define BTYPE(x) ((x)&N_BTMASK) -#define ISPTR(x) (((x)&N_TMASK)==(IMAGE_SYM_DTYPE_POINTER<>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK)) -#define TLS_MINIMUM_AVAILABLE 64 -#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer) -#define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer) -#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE 16384 -#define IO_REPARSE_TAG_RESERVED_ZERO 0 -#define IO_REPARSE_TAG_RESERVED_ONE 1 -#define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_ONE -#define IsReparseTagMicrosoft(x) ((x)&0x80000000) -#define IsReparseTagHighLatency(x) ((x)&0x40000000) -#define IsReparseTagNameSurrogate(x) ((x)&0x20000000) -#define IO_REPARSE_TAG_VALID_VALUES 0xE000FFFF -#define IsReparseTagValid(x) (!((x)&~IO_REPARSE_TAG_VALID_VALUES)&&((x)>IO_REPARSE_TAG_RESERVED_RANGE)) -#define IO_REPARSE_TAG_SYMBOLIC_LINK IO_REPARSE_TAG_RESERVED_ZERO -#define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003 -#ifndef RC_INVOKED -typedef DWORD ACCESS_MASK, *PACCESS_MASK; -#ifndef _GUID_DEFINED /* also defined in basetyps.h */ -#define _GUID_DEFINED -typedef struct _GUID { - unsigned long Data1; - unsigned short Data2; - unsigned short Data3; - unsigned char Data4[8]; -} GUID, *REFGUID, *LPGUID; -#define SYSTEM_LUID { QuadPart:999 } -#endif /* _GUID_DEFINED */ -typedef struct _GENERIC_MAPPING { - ACCESS_MASK GenericRead; - ACCESS_MASK GenericWrite; - ACCESS_MASK GenericExecute; - ACCESS_MASK GenericAll; -} GENERIC_MAPPING, *PGENERIC_MAPPING; -typedef struct _ACE_HEADER { - BYTE AceType; - BYTE AceFlags; - WORD AceSize; -} ACE_HEADER; -typedef struct _ACCESS_ALLOWED_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} ACCESS_ALLOWED_ACE; -typedef struct _ACCESS_DENIED_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} ACCESS_DENIED_ACE; -typedef struct _SYSTEM_AUDIT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} SYSTEM_AUDIT_ACE; -typedef SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE; -typedef struct _SYSTEM_ALARM_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD SidStart; -} SYSTEM_ALARM_ACE,*PSYSTEM_ALARM_ACE; -typedef struct _ACCESS_ALLOWED_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} ACCESS_ALLOWED_OBJECT_ACE,*PACCESS_ALLOWED_OBJECT_ACE; -typedef struct _ACCESS_DENIED_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} ACCESS_DENIED_OBJECT_ACE,*PACCESS_DENIED_OBJECT_ACE; -typedef struct _SYSTEM_AUDIT_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} SYSTEM_AUDIT_OBJECT_ACE,*PSYSTEM_AUDIT_OBJECT_ACE; -typedef struct _SYSTEM_ALARM_OBJECT_ACE { - ACE_HEADER Header; - ACCESS_MASK Mask; - DWORD Flags; - GUID ObjectType; - GUID InheritedObjectType; - DWORD SidStart; -} SYSTEM_ALARM_OBJECT_ACE,*PSYSTEM_ALARM_OBJECT_ACE; -typedef struct _ACL { - BYTE AclRevision; - BYTE Sbz1; - WORD AclSize; - WORD AceCount; - WORD Sbz2; -} ACL,*PACL; -typedef struct _ACL_REVISION_INFORMATION { - DWORD AclRevision; -} ACL_REVISION_INFORMATION; -typedef struct _ACL_SIZE_INFORMATION { - DWORD AceCount; - DWORD AclBytesInUse; - DWORD AclBytesFree; -} ACL_SIZE_INFORMATION; - -/* FIXME: add more machines */ -#ifdef _X86_ -#define SIZE_OF_80387_REGISTERS 80 -#define CONTEXT_i386 0x10000 -#define CONTEXT_i486 0x10000 -#define CONTEXT_CONTROL (CONTEXT_i386|0x00000001L) -#define CONTEXT_INTEGER (CONTEXT_i386|0x00000002L) -#define CONTEXT_SEGMENTS (CONTEXT_i386|0x00000004L) -#define CONTEXT_FLOATING_POINT (CONTEXT_i386|0x00000008L) -#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386|0x00000010L) -#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386|0x00000020L) -#define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_INTEGER|CONTEXT_SEGMENTS) -#define MAXIMUM_SUPPORTED_EXTENSION 512 -typedef struct _FLOATING_SAVE_AREA { - DWORD ControlWord; - DWORD StatusWord; - DWORD TagWord; - DWORD ErrorOffset; - DWORD ErrorSelector; - DWORD DataOffset; - DWORD DataSelector; - BYTE RegisterArea[80]; - DWORD Cr0NpxState; -} FLOATING_SAVE_AREA; -typedef struct _CONTEXT { - DWORD ContextFlags; - DWORD Dr0; - DWORD Dr1; - DWORD Dr2; - DWORD Dr3; - DWORD Dr6; - DWORD Dr7; - FLOATING_SAVE_AREA FloatSave; - DWORD SegGs; - DWORD SegFs; - DWORD SegEs; - DWORD SegDs; - DWORD Edi; - DWORD Esi; - DWORD Ebx; - DWORD Edx; - DWORD Ecx; - DWORD Eax; - DWORD Ebp; - DWORD Eip; - DWORD SegCs; - DWORD EFlags; - DWORD Esp; - DWORD SegSs; - BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; -} CONTEXT; -#elif defined(_PPC_) -#define CONTEXT_CONTROL 1L -#define CONTEXT_FLOATING_POINT 2L -#define CONTEXT_INTEGER 4L -#define CONTEXT_DEBUG_REGISTERS 8L -#define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_FLOATING_POINT|CONTEXT_INTEGER) -typedef struct { - double Fpr0; - double Fpr1; - double Fpr2; - double Fpr3; - double Fpr4; - double Fpr5; - double Fpr6; - double Fpr7; - double Fpr8; - double Fpr9; - double Fpr10; - double Fpr11; - double Fpr12; - double Fpr13; - double Fpr14; - double Fpr15; - double Fpr16; - double Fpr17; - double Fpr18; - double Fpr19; - double Fpr20; - double Fpr21; - double Fpr22; - double Fpr23; - double Fpr24; - double Fpr25; - double Fpr26; - double Fpr27; - double Fpr28; - double Fpr29; - double Fpr30; - double Fpr31; - double Fpscr; - DWORD Gpr0; - DWORD Gpr1; - DWORD Gpr2; - DWORD Gpr3; - DWORD Gpr4; - DWORD Gpr5; - DWORD Gpr6; - DWORD Gpr7; - DWORD Gpr8; - DWORD Gpr9; - DWORD Gpr10; - DWORD Gpr11; - DWORD Gpr12; - DWORD Gpr13; - DWORD Gpr14; - DWORD Gpr15; - DWORD Gpr16; - DWORD Gpr17; - DWORD Gpr18; - DWORD Gpr19; - DWORD Gpr20; - DWORD Gpr21; - DWORD Gpr22; - DWORD Gpr23; - DWORD Gpr24; - DWORD Gpr25; - DWORD Gpr26; - DWORD Gpr27; - DWORD Gpr28; - DWORD Gpr29; - DWORD Gpr30; - DWORD Gpr31; - DWORD Cr; - DWORD Xer; - DWORD Msr; - DWORD Iar; - DWORD Lr; - DWORD Ctr; - DWORD ContextFlags; - DWORD Fill[3]; - DWORD Dr0; - DWORD Dr1; - DWORD Dr2; - DWORD Dr3; - DWORD Dr4; - DWORD Dr5; - DWORD Dr6; - DWORD Dr7; -} CONTEXT; -#elif defined(_ALPHA_) -#define CONTEXT_ALPHA 0x20000 -#define CONTEXT_CONTROL (CONTEXT_ALPHA|1L) -#define CONTEXT_FLOATING_POINT (CONTEXT_ALPHA|2L) -#define CONTEXT_INTEGER (CONTEXT_ALPHA|4L) -#define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_FLOATING_POINT|CONTEXT_INTEGER) -typedef struct _CONTEXT { - ULONGLONG FltF0; - ULONGLONG FltF1; - ULONGLONG FltF2; - ULONGLONG FltF3; - ULONGLONG FltF4; - ULONGLONG FltF5; - ULONGLONG FltF6; - ULONGLONG FltF7; - ULONGLONG FltF8; - ULONGLONG FltF9; - ULONGLONG FltF10; - ULONGLONG FltF11; - ULONGLONG FltF12; - ULONGLONG FltF13; - ULONGLONG FltF14; - ULONGLONG FltF15; - ULONGLONG FltF16; - ULONGLONG FltF17; - ULONGLONG FltF18; - ULONGLONG FltF19; - ULONGLONG FltF20; - ULONGLONG FltF21; - ULONGLONG FltF22; - ULONGLONG FltF23; - ULONGLONG FltF24; - ULONGLONG FltF25; - ULONGLONG FltF26; - ULONGLONG FltF27; - ULONGLONG FltF28; - ULONGLONG FltF29; - ULONGLONG FltF30; - ULONGLONG FltF31; - ULONGLONG IntV0; - ULONGLONG IntT0; - ULONGLONG IntT1; - ULONGLONG IntT2; - ULONGLONG IntT3; - ULONGLONG IntT4; - ULONGLONG IntT5; - ULONGLONG IntT6; - ULONGLONG IntT7; - ULONGLONG IntS0; - ULONGLONG IntS1; - ULONGLONG IntS2; - ULONGLONG IntS3; - ULONGLONG IntS4; - ULONGLONG IntS5; - ULONGLONG IntFp; - ULONGLONG IntA0; - ULONGLONG IntA1; - ULONGLONG IntA2; - ULONGLONG IntA3; - ULONGLONG IntA4; - ULONGLONG IntA5; - ULONGLONG IntT8; - ULONGLONG IntT9; - ULONGLONG IntT10; - ULONGLONG IntT11; - ULONGLONG IntRa; - ULONGLONG IntT12; - ULONGLONG IntAt; - ULONGLONG IntGp; - ULONGLONG IntSp; - ULONGLONG IntZero; - ULONGLONG Fpcr; - ULONGLONG SoftFpcr; - ULONGLONG Fir; - DWORD Psr; - DWORD ContextFlags; - DWORD Fill[4]; -} CONTEXT; -#elif defined(SHx) - -/* These are the debug or break registers on the SH3 */ -typedef struct _DEBUG_REGISTERS { - ULONG BarA; - UCHAR BasrA; - UCHAR BamrA; - USHORT BbrA; - ULONG BarB; - UCHAR BasrB; - UCHAR BamrB; - USHORT BbrB; - ULONG BdrB; - ULONG BdmrB; - USHORT Brcr; - USHORT Align; -} DEBUG_REGISTERS, *PDEBUG_REGISTERS; - -/* The following flags control the contents of the CONTEXT structure. */ - -#define CONTEXT_SH3 0x00000040 -#define CONTEXT_SH4 0x000000c0 /* CONTEXT_SH3 | 0x80 - must contain the SH3 bits */ - -#ifdef SH3 -#define CONTEXT_CONTROL (CONTEXT_SH3 | 0x00000001L) -#define CONTEXT_INTEGER (CONTEXT_SH3 | 0x00000002L) -#define CONTEXT_DEBUG_REGISTERS (CONTEXT_SH3 | 0x00000008L) -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_DEBUG_REGISTERS) -#else /* SH4 */ -#define CONTEXT_CONTROL (CONTEXT_SH4 | 0x00000001L) -#define CONTEXT_INTEGER (CONTEXT_SH4 | 0x00000002L) -#define CONTEXT_DEBUG_REGISTERS (CONTEXT_SH4 | 0x00000008L) -#define CONTEXT_FLOATING_POINT (CONTEXT_SH4 | 0x00000004L) -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_DEBUG_REGISTERS | CONTEXT_FLOATING_POINT) -#endif - -/* Context Frame */ - -/* This frame is used to store a limited processor context into the */ -/* Thread structure for CPUs which have no floating point support. */ - -typedef struct _CONTEXT { - /* The flags values within this flag control the contents of */ - /* a CONTEXT record. */ - - /* If the context record is used as an input parameter, then */ - /* for each portion of the context record controlled by a flag */ - /* whose value is set, it is assumed that that portion of the */ - /* context record contains valid context. If the context record */ - /* is being used to modify a thread's context, then only that */ - /* portion of the threads context will be modified. */ - - /* If the context record is used as an IN OUT parameter to capture */ - /* the context of a thread, then only those portions of the thread's */ - /* context corresponding to set flags will be returned. */ - - /* The context record is never used as an OUT only parameter. */ - - - ULONG ContextFlags; - - /* This section is specified/returned if the ContextFlags word contains */ - /* the flag CONTEXT_INTEGER. */ - - /* N.B. The registers RA and R15 are defined in this section, but are */ - /* considered part of the control context rather than part of the integer */ - /* context. */ - - ULONG PR; - ULONG MACH; - ULONG MACL; - ULONG GBR; - ULONG R0; - ULONG R1; - ULONG R2; - ULONG R3; - ULONG R4; - ULONG R5; - ULONG R6; - ULONG R7; - ULONG R8; - ULONG R9; - ULONG R10; - ULONG R11; - ULONG R12; - ULONG R13; - ULONG R14; - ULONG R15; - - /* This section is specified/returned if the ContextFlags word contains */ - /* the flag CONTEXT_CONTROL. */ - - /* N.B. The registers r15 and ra are defined in the integer section, */ - /* but are considered part of the control context rather than part of */ - /* the integer context. */ - - ULONG Fir; - ULONG Psr; - -#if !defined(SH3e) && !defined(SH4) - ULONG OldStuff[2]; - DEBUG_REGISTERS DebugRegisters; -#else - ULONG Fpscr; - ULONG Fpul; - ULONG FRegs[16]; -#if defined(SH4) - ULONG xFRegs[16]; -#endif -#endif -} CONTEXT; - -#elif defined(MIPS) - -/* The following flags control the contents of the CONTEXT structure. */ - -#define CONTEXT_R4000 0x00010000 /* r4000 context */ - -#define CONTEXT_CONTROL (CONTEXT_R4000 | 0x00000001L) -#define CONTEXT_FLOATING_POINT (CONTEXT_R4000 | 0x00000002L) -#define CONTEXT_INTEGER (CONTEXT_R4000 | 0x00000004L) - -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) - -/* Context Frame */ - -/* N.B. This frame must be exactly a multiple of 16 bytes in length. */ - -/* This frame has a several purposes: 1) it is used as an argument to */ -/* NtContinue, 2) it is used to constuct a call frame for APC delivery, */ -/* 3) it is used to construct a call frame for exception dispatching */ -/* in user mode, and 4) it is used in the user level thread creation */ -/* routines. */ - -/* The layout of the record conforms to a standard call frame. */ - - -typedef struct _CONTEXT { - - /* This section is always present and is used as an argument build */ - /* area. */ - - DWORD Argument[4]; - - /* This section is specified/returned if the ContextFlags word contains */ - /* the flag CONTEXT_FLOATING_POINT. */ - - DWORD FltF0; - DWORD FltF1; - DWORD FltF2; - DWORD FltF3; - DWORD FltF4; - DWORD FltF5; - DWORD FltF6; - DWORD FltF7; - DWORD FltF8; - DWORD FltF9; - DWORD FltF10; - DWORD FltF11; - DWORD FltF12; - DWORD FltF13; - DWORD FltF14; - DWORD FltF15; - DWORD FltF16; - DWORD FltF17; - DWORD FltF18; - DWORD FltF19; - DWORD FltF20; - DWORD FltF21; - DWORD FltF22; - DWORD FltF23; - DWORD FltF24; - DWORD FltF25; - DWORD FltF26; - DWORD FltF27; - DWORD FltF28; - DWORD FltF29; - DWORD FltF30; - DWORD FltF31; - - /* This section is specified/returned if the ContextFlags word contains */ - /* the flag CONTEXT_INTEGER. */ - - /* N.B. The registers gp, sp, and ra are defined in this section, but are */ - /* considered part of the control context rather than part of the integer */ - /* context. */ - - /* N.B. Register zero is not stored in the frame. */ - - DWORD IntZero; - DWORD IntAt; - DWORD IntV0; - DWORD IntV1; - DWORD IntA0; - DWORD IntA1; - DWORD IntA2; - DWORD IntA3; - DWORD IntT0; - DWORD IntT1; - DWORD IntT2; - DWORD IntT3; - DWORD IntT4; - DWORD IntT5; - DWORD IntT6; - DWORD IntT7; - DWORD IntS0; - DWORD IntS1; - DWORD IntS2; - DWORD IntS3; - DWORD IntS4; - DWORD IntS5; - DWORD IntS6; - DWORD IntS7; - DWORD IntT8; - DWORD IntT9; - DWORD IntK0; - DWORD IntK1; - DWORD IntGp; - DWORD IntSp; - DWORD IntS8; - DWORD IntRa; - DWORD IntLo; - DWORD IntHi; - - /* This section is specified/returned if the ContextFlags word contains */ - /* the flag CONTEXT_FLOATING_POINT. */ - - DWORD Fsr; - - /* This section is specified/returned if the ContextFlags word contains */ - /* the flag CONTEXT_CONTROL. */ - - /* N.B. The registers gp, sp, and ra are defined in the integer section, */ - /* but are considered part of the control context rather than part of */ - /* the integer context. */ - - DWORD Fir; - DWORD Psr; - - /* The flags values within this flag control the contents of */ - /* a CONTEXT record. */ - - /* If the context record is used as an input parameter, then */ - /* for each portion of the context record controlled by a flag */ - /* whose value is set, it is assumed that that portion of the */ - /* context record contains valid context. If the context record */ - /* is being used to modify a thread's context, then only that */ - /* portion of the threads context will be modified. */ - - /* If the context record is used as an IN OUT parameter to capture */ - /* the context of a thread, then only those portions of the thread's */ - /* context corresponding to set flags will be returned. */ - - /* The context record is never used as an OUT only parameter. */ - - DWORD ContextFlags; - - DWORD Fill[2]; - -} CONTEXT; -#elif defined(ARM) - -/* The following flags control the contents of the CONTEXT structure. */ - -#define CONTEXT_ARM 0x0000040 -#define CONTEXT_CONTROL (CONTEXT_ARM | 0x00000001L) -#define CONTEXT_INTEGER (CONTEXT_ARM | 0x00000002L) - -#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER) - -typedef struct _CONTEXT { - /* The flags values within this flag control the contents of - a CONTEXT record. - - If the context record is used as an input parameter, then - for each portion of the context record controlled by a flag - whose value is set, it is assumed that that portion of the - context record contains valid context. If the context record - is being used to modify a thread's context, then only that - portion of the threads context will be modified. - - If the context record is used as an IN OUT parameter to capture - the context of a thread, then only those portions of the thread's - context corresponding to set flags will be returned. - - The context record is never used as an OUT only parameter. */ - - ULONG ContextFlags; - - /* This section is specified/returned if the ContextFlags word contains - the flag CONTEXT_INTEGER. */ - ULONG R0; - ULONG R1; - ULONG R2; - ULONG R3; - ULONG R4; - ULONG R5; - ULONG R6; - ULONG R7; - ULONG R8; - ULONG R9; - ULONG R10; - ULONG R11; - ULONG R12; - - ULONG Sp; - ULONG Lr; - ULONG Pc; - ULONG Psr; -} CONTEXT; - -#else -#error "undefined processor type" -#endif -typedef CONTEXT *PCONTEXT,*LPCONTEXT; -typedef struct _EXCEPTION_RECORD { - DWORD ExceptionCode; - DWORD ExceptionFlags; - struct _EXCEPTION_RECORD *ExceptionRecord; - PVOID ExceptionAddress; - DWORD NumberParameters; - DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; -} EXCEPTION_RECORD,*PEXCEPTION_RECORD; -typedef struct _EXCEPTION_POINTERS { - PEXCEPTION_RECORD ExceptionRecord; - PCONTEXT ContextRecord; -} EXCEPTION_POINTERS,*PEXCEPTION_POINTERS,*LPEXCEPTION_POINTERS; -typedef union _LARGE_INTEGER { - struct { - DWORD LowPart; - LONG HighPart; - } u; -#if ! defined(NONAMELESSUNION) || defined(__cplusplus) - _ANONYMOUS_STRUCT struct { - DWORD LowPart; - LONG HighPart; - }; -#endif /* NONAMELESSUNION */ - LONGLONG QuadPart; -} LARGE_INTEGER, *PLARGE_INTEGER; -typedef union _ULARGE_INTEGER { - struct { - DWORD LowPart; - DWORD HighPart; - } u; -#if ! defined(NONAMELESSUNION) || defined(__cplusplus) - _ANONYMOUS_STRUCT struct { - DWORD LowPart; - DWORD HighPart; - }; -#endif /* NONAMELESSUNION */ - ULONGLONG QuadPart; -} ULARGE_INTEGER, *PULARGE_INTEGER; -typedef LARGE_INTEGER LUID,*PLUID; -#pragma pack(push,4) -typedef struct _LUID_AND_ATTRIBUTES { - LUID Luid; - DWORD Attributes; -} LUID_AND_ATTRIBUTES; -#pragma pack(pop) -typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; -typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY; -typedef struct _PRIVILEGE_SET { - DWORD PrivilegeCount; - DWORD Control; - LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; -} PRIVILEGE_SET,*PPRIVILEGE_SET; -typedef struct _SECURITY_ATTRIBUTES { - DWORD nLength; - LPVOID lpSecurityDescriptor; - BOOL bInheritHandle; -} SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES; -typedef enum _SECURITY_IMPERSONATION_LEVEL { - SecurityAnonymous, - SecurityIdentification, - SecurityImpersonation, - SecurityDelegation -} SECURITY_IMPERSONATION_LEVEL; -typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE,*PSECURITY_CONTEXT_TRACKING_MODE; -typedef struct _SECURITY_QUALITY_OF_SERVICE { - DWORD Length; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; - BOOLEAN EffectiveOnly; -} SECURITY_QUALITY_OF_SERVICE,*PSECURITY_QUALITY_OF_SERVICE; -typedef PVOID PACCESS_TOKEN; -typedef struct _SE_IMPERSONATION_STATE { - PACCESS_TOKEN Token; - BOOLEAN CopyOnOpen; - BOOLEAN EffectiveOnly; - SECURITY_IMPERSONATION_LEVEL Level; -} SE_IMPERSONATION_STATE,*PSE_IMPERSONATION_STATE; -typedef struct _SID_IDENTIFIER_AUTHORITY { - BYTE Value[6]; -} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY; -typedef PVOID PSID; -typedef struct _SID { - BYTE Revision; - BYTE SubAuthorityCount; - SID_IDENTIFIER_AUTHORITY IdentifierAuthority; - DWORD SubAuthority[ANYSIZE_ARRAY]; -} SID, *PISID; -typedef struct _SID_AND_ATTRIBUTES { - PSID Sid; - DWORD Attributes; -} SID_AND_ATTRIBUTES; -typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; -typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY; -typedef struct _TOKEN_SOURCE { - CHAR SourceName[TOKEN_SOURCE_LENGTH]; - LUID SourceIdentifier; -} TOKEN_SOURCE,*PTOKEN_SOURCE; -typedef struct _TOKEN_CONTROL { - LUID TokenId; - LUID AuthenticationId; - LUID ModifiedId; - TOKEN_SOURCE TokenSource; -} TOKEN_CONTROL,*PTOKEN_CONTROL; -typedef struct _TOKEN_DEFAULT_DACL { - PACL DefaultDacl; -} TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL; -typedef struct _TOKEN_GROUPS { - DWORD GroupCount; - SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; -} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS; -typedef struct _TOKEN_OWNER { - PSID Owner; -} TOKEN_OWNER,*PTOKEN_OWNER; -typedef struct _TOKEN_PRIMARY_GROUP { - PSID PrimaryGroup; -} TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP; -typedef struct _TOKEN_PRIVILEGES { - DWORD PrivilegeCount; - LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; -} TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES; -typedef enum tagTOKEN_TYPE { TokenPrimary=1,TokenImpersonation }TOKEN_TYPE; -typedef struct _TOKEN_STATISTICS { - LUID TokenId; - LUID AuthenticationId; - LARGE_INTEGER ExpirationTime; - TOKEN_TYPE TokenType; - SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; - DWORD DynamicCharged; - DWORD DynamicAvailable; - DWORD GroupCount; - DWORD PrivilegeCount; - LUID ModifiedId; -} TOKEN_STATISTICS; -typedef struct _TOKEN_USER { - SID_AND_ATTRIBUTES User; -} TOKEN_USER, *PTOKEN_USER; -typedef DWORD SECURITY_INFORMATION,*PSECURITY_INFORMATION; -typedef WORD SECURITY_DESCRIPTOR_CONTROL,*PSECURITY_DESCRIPTOR_CONTROL; -typedef struct _SECURITY_DESCRIPTOR { - BYTE Revision; - BYTE Sbz1; - SECURITY_DESCRIPTOR_CONTROL Control; - PSID Owner; - PSID Group; - PACL Sacl; - PACL Dacl; -} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR; -typedef enum _TOKEN_INFORMATION_CLASS { - TokenUser=1,TokenGroups,TokenPrivileges,TokenOwner, - TokenPrimaryGroup,TokenDefaultDacl,TokenSource,TokenType, - TokenImpersonationLevel,TokenStatistics,TokenRestrictedSids, - TokenSessionId -} TOKEN_INFORMATION_CLASS; -typedef enum _SID_NAME_USE { - SidTypeUser=1,SidTypeGroup,SidTypeDomain,SidTypeAlias,SidTypeWellKnownGroup, - SidTypeDeletedAccount,SidTypeInvalid,SidTypeUnknown -} SID_NAME_USE,*PSID_NAME_USE; -typedef struct _QUOTA_LIMITS { - SIZE_T PagedPoolLimit; - SIZE_T NonPagedPoolLimit; - SIZE_T MinimumWorkingSetSize; - SIZE_T MaximumWorkingSetSize; - SIZE_T PagefileLimit; - LARGE_INTEGER TimeLimit; -} QUOTA_LIMITS,*PQUOTA_LIMITS; -typedef struct _IO_COUNTERS { - ULONGLONG ReadOperationCount; - ULONGLONG WriteOperationCount; - ULONGLONG OtherOperationCount; - ULONGLONG ReadTransferCount; - ULONGLONG WriteTransferCount; - ULONGLONG OtherTransferCount; -} IO_COUNTERS, *PIO_COUNTERS; -typedef struct _FILE_NOTIFY_INFORMATION { - DWORD NextEntryOffset; - DWORD Action; - DWORD FileNameLength; - WCHAR FileName[1]; -} FILE_NOTIFY_INFORMATION,*PFILE_NOTIFY_INFORMATION; -typedef struct _TAPE_ERASE { - DWORD Type; - BOOLEAN Immediate; -} TAPE_ERASE,*PTAPE_ERASE; -typedef struct _TAPE_GET_DRIVE_PARAMETERS { - BOOLEAN ECC; - BOOLEAN Compression; - BOOLEAN DataPadding; - BOOLEAN ReportSetmarks; - DWORD DefaultBlockSize; - DWORD MaximumBlockSize; - DWORD MinimumBlockSize; - DWORD MaximumPartitionCount; - DWORD FeaturesLow; - DWORD FeaturesHigh; - DWORD EOTWarningZoneSize; -} TAPE_GET_DRIVE_PARAMETERS,*PTAPE_GET_DRIVE_PARAMETERS; -typedef struct _TAPE_GET_MEDIA_PARAMETERS { - LARGE_INTEGER Capacity; - LARGE_INTEGER Remaining; - DWORD BlockSize; - DWORD PartitionCount; - BOOLEAN WriteProtected; -} TAPE_GET_MEDIA_PARAMETERS,*PTAPE_GET_MEDIA_PARAMETERS; -typedef struct _TAPE_GET_POSITION { - ULONG Type; - ULONG Partition; - ULONG OffsetLow; - ULONG OffsetHigh; -} TAPE_GET_POSITION,*PTAPE_GET_POSITION; -typedef struct _TAPE_PREPARE { - DWORD Operation; - BOOLEAN Immediate; -} TAPE_PREPARE,*PTAPE_PREPARE; -typedef struct _TAPE_SET_DRIVE_PARAMETERS { - BOOLEAN ECC; - BOOLEAN Compression; - BOOLEAN DataPadding; - BOOLEAN ReportSetmarks; - ULONG EOTWarningZoneSize; -} TAPE_SET_DRIVE_PARAMETERS,*PTAPE_SET_DRIVE_PARAMETERS; -typedef struct _TAPE_SET_MEDIA_PARAMETERS { - ULONG BlockSize; -} TAPE_SET_MEDIA_PARAMETERS,*PTAPE_SET_MEDIA_PARAMETERS; -typedef struct _TAPE_SET_POSITION { - DWORD Method; - DWORD Partition; - LARGE_INTEGER Offset; - BOOLEAN Immediate; -} TAPE_SET_POSITION,*PTAPE_SET_POSITION; -typedef struct _TAPE_WRITE_MARKS { - DWORD Type; - DWORD Count; - BOOLEAN Immediate; -} TAPE_WRITE_MARKS,*PTAPE_WRITE_MARKS; -typedef struct _TAPE_CREATE_PARTITION { - DWORD Method; - DWORD Count; - DWORD Size; -} TAPE_CREATE_PARTITION,*PTAPE_CREATE_PARTITION; -typedef struct _MEMORY_BASIC_INFORMATION { - PVOID BaseAddress; - PVOID AllocationBase; - DWORD AllocationProtect; - DWORD RegionSize; - DWORD State; - DWORD Protect; - DWORD Type; -} MEMORY_BASIC_INFORMATION,*PMEMORY_BASIC_INFORMATION; -typedef struct _MESSAGE_RESOURCE_ENTRY { - WORD Length; - WORD Flags; - BYTE Text[1]; -} MESSAGE_RESOURCE_ENTRY,*PMESSAGE_RESOURCE_ENTRY; -typedef struct _MESSAGE_RESOURCE_BLOCK { - DWORD LowId; - DWORD HighId; - DWORD OffsetToEntries; -} MESSAGE_RESOURCE_BLOCK,*PMESSAGE_RESOURCE_BLOCK; -typedef struct _MESSAGE_RESOURCE_DATA { - DWORD NumberOfBlocks; - MESSAGE_RESOURCE_BLOCK Blocks[1]; -} MESSAGE_RESOURCE_DATA,*PMESSAGE_RESOURCE_DATA; -typedef struct _LIST_ENTRY { - struct _LIST_ENTRY *Flink; - struct _LIST_ENTRY *Blink; -} LIST_ENTRY,*PLIST_ENTRY; -typedef struct _RTL_CRITICAL_SECTION_DEBUG { - WORD Type; - WORD CreatorBackTraceIndex; - struct _RTL_CRITICAL_SECTION *CriticalSection; - LIST_ENTRY ProcessLocksList; - DWORD EntryCount; - DWORD ContentionCount; - DWORD Spare[2]; -} RTL_CRITICAL_SECTION_DEBUG,*PRTL_CRITICAL_SECTION_DEBUG; -typedef struct _RTL_CRITICAL_SECTION { - PRTL_CRITICAL_SECTION_DEBUG DebugInfo; - LONG LockCount; - LONG RecursionCount; - HANDLE OwningThread; - HANDLE LockSemaphore; - DWORD Reserved; -} RTL_CRITICAL_SECTION,*PRTL_CRITICAL_SECTION; -typedef struct _EVENTLOGRECORD { - DWORD Length; - DWORD Reserved; - DWORD RecordNumber; - DWORD TimeGenerated; - DWORD TimeWritten; - DWORD EventID; - WORD EventType; - WORD NumStrings; - WORD EventCategory; - WORD ReservedFlags; - DWORD ClosingRecordNumber; - DWORD StringOffset; - DWORD UserSidLength; - DWORD UserSidOffset; - DWORD DataLength; - DWORD DataOffset; -} EVENTLOGRECORD,*PEVENTLOGRECORD; -typedef struct _OSVERSIONINFOA { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[128]; -} OSVERSIONINFOA,*POSVERSIONINFOA,*LPOSVERSIONINFOA; -typedef struct _OSVERSIONINFOW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[128]; -} OSVERSIONINFOW,*POSVERSIONINFOW,*LPOSVERSIONINFOW; -typedef struct _OSVERSIONINFOEXA { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - CHAR szCSDVersion[128]; - WORD wServicePackMajor; - WORD wServicePackMinor; - WORD wSuiteMask; - BYTE wProductType; - BYTE wReserved; -} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA; -typedef struct _OSVERSIONINFOEXW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[128]; - WORD wServicePackMajor; - WORD wServicePackMinor; - WORD wSuiteMask; - BYTE wProductType; - BYTE wReserved; -} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW; -#pragma pack(push,2) -typedef struct _IMAGE_VXD_HEADER { - WORD e32_magic; - BYTE e32_border; - BYTE e32_worder; - DWORD e32_level; - WORD e32_cpu; - WORD e32_os; - DWORD e32_ver; - DWORD e32_mflags; - DWORD e32_mpages; - DWORD e32_startobj; - DWORD e32_eip; - DWORD e32_stackobj; - DWORD e32_esp; - DWORD e32_pagesize; - DWORD e32_lastpagesize; - DWORD e32_fixupsize; - DWORD e32_fixupsum; - DWORD e32_ldrsize; - DWORD e32_ldrsum; - DWORD e32_objtab; - DWORD e32_objcnt; - DWORD e32_objmap; - DWORD e32_itermap; - DWORD e32_rsrctab; - DWORD e32_rsrccnt; - DWORD e32_restab; - DWORD e32_enttab; - DWORD e32_dirtab; - DWORD e32_dircnt; - DWORD e32_fpagetab; - DWORD e32_frectab; - DWORD e32_impmod; - DWORD e32_impmodcnt; - DWORD e32_impproc; - DWORD e32_pagesum; - DWORD e32_datapage; - DWORD e32_preload; - DWORD e32_nrestab; - DWORD e32_cbnrestab; - DWORD e32_nressum; - DWORD e32_autodata; - DWORD e32_debuginfo; - DWORD e32_debuglen; - DWORD e32_instpreload; - DWORD e32_instdemand; - DWORD e32_heapsize; - BYTE e32_res3[12]; - DWORD e32_winresoff; - DWORD e32_winreslen; - WORD e32_devid; - WORD e32_ddkver; -} IMAGE_VXD_HEADER,*PIMAGE_VXD_HEADER; -#pragma pack(pop) -#pragma pack(push,4) -typedef struct _IMAGE_FILE_HEADER { - WORD Machine; - WORD NumberOfSections; - DWORD TimeDateStamp; - DWORD PointerToSymbolTable; - DWORD NumberOfSymbols; - WORD SizeOfOptionalHeader; - WORD Characteristics; -} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; -typedef struct _IMAGE_DATA_DIRECTORY { - DWORD VirtualAddress; - DWORD Size; -} IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY; -typedef struct _IMAGE_OPTIONAL_HEADER { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - DWORD ImageBase; - DWORD SectionAlignment; - DWORD FileAlignment; - WORD MajorOperatingSystemVersion; - WORD MinorOperatingSystemVersion; - WORD MajorImageVersion; - WORD MinorImageVersion; - WORD MajorSubsystemVersion; - WORD MinorSubsystemVersion; - DWORD Reserved1; - DWORD SizeOfImage; - DWORD SizeOfHeaders; - DWORD CheckSum; - WORD Subsystem; - WORD DllCharacteristics; - DWORD SizeOfStackReserve; - DWORD SizeOfStackCommit; - DWORD SizeOfHeapReserve; - DWORD SizeOfHeapCommit; - DWORD LoaderFlags; - DWORD NumberOfRvaAndSizes; - IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; -} IMAGE_OPTIONAL_HEADER,*PIMAGE_OPTIONAL_HEADER; -typedef struct _IMAGE_ROM_OPTIONAL_HEADER { - WORD Magic; - BYTE MajorLinkerVersion; - BYTE MinorLinkerVersion; - DWORD SizeOfCode; - DWORD SizeOfInitializedData; - DWORD SizeOfUninitializedData; - DWORD AddressOfEntryPoint; - DWORD BaseOfCode; - DWORD BaseOfData; - DWORD BaseOfBss; - DWORD GprMask; - DWORD CprMask[4]; - DWORD GpValue; -} IMAGE_ROM_OPTIONAL_HEADER,*PIMAGE_ROM_OPTIONAL_HEADER; -#pragma pack(pop) -#pragma pack(push,2) -typedef struct _IMAGE_DOS_HEADER { - WORD e_magic; - WORD e_cblp; - WORD e_cp; - WORD e_crlc; - WORD e_cparhdr; - WORD e_minalloc; - WORD e_maxalloc; - WORD e_ss; - WORD e_sp; - WORD e_csum; - WORD e_ip; - WORD e_cs; - WORD e_lfarlc; - WORD e_ovno; - WORD e_res[4]; - WORD e_oemid; - WORD e_oeminfo; - WORD e_res2[10]; - LONG e_lfanew; -} IMAGE_DOS_HEADER,*PIMAGE_DOS_HEADER; -typedef struct _IMAGE_OS2_HEADER { - WORD ne_magic; - CHAR ne_ver; - CHAR ne_rev; - WORD ne_enttab; - WORD ne_cbenttab; - LONG ne_crc; - WORD ne_flags; - WORD ne_autodata; - WORD ne_heap; - WORD ne_stack; - LONG ne_csip; - LONG ne_sssp; - WORD ne_cseg; - WORD ne_cmod; - WORD ne_cbnrestab; - WORD ne_segtab; - WORD ne_rsrctab; - WORD ne_restab; - WORD ne_modtab; - WORD ne_imptab; - LONG ne_nrestab; - WORD ne_cmovent; - WORD ne_align; - WORD ne_cres; - BYTE ne_exetyp; - BYTE ne_flagsothers; - WORD ne_pretthunks; - WORD ne_psegrefbytes; - WORD ne_swaparea; - WORD ne_expver; -} IMAGE_OS2_HEADER,*PIMAGE_OS2_HEADER; -#pragma pack(pop) -#pragma pack(push,4) -typedef struct _IMAGE_NT_HEADERS { - DWORD Signature; - IMAGE_FILE_HEADER FileHeader; - IMAGE_OPTIONAL_HEADER OptionalHeader; -} IMAGE_NT_HEADERS,*PIMAGE_NT_HEADERS; -typedef struct _IMAGE_ROM_HEADERS { - IMAGE_FILE_HEADER FileHeader; - IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; -} IMAGE_ROM_HEADERS,*PIMAGE_ROM_HEADERS; -typedef struct _IMAGE_SECTION_HEADER { - BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; - union { - DWORD PhysicalAddress; - DWORD VirtualSize; - } Misc; - DWORD VirtualAddress; - DWORD SizeOfRawData; - DWORD PointerToRawData; - DWORD PointerToRelocations; - DWORD PointerToLinenumbers; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD Characteristics; -} IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER; -#pragma pack(pop) -#pragma pack(push,2) -typedef struct _IMAGE_SYMBOL { - union { - BYTE ShortName[8]; - struct { - DWORD Short; - DWORD Long; - } Name; - PBYTE LongName[2]; - } N; - DWORD Value; - SHORT SectionNumber; - WORD Type; - BYTE StorageClass; - BYTE NumberOfAuxSymbols; -} IMAGE_SYMBOL,*PIMAGE_SYMBOL; -typedef union _IMAGE_AUX_SYMBOL { - struct { - DWORD TagIndex; - union { - struct { - WORD Linenumber; - WORD Size; - } LnSz; - DWORD TotalSize; - } Misc; - union { - struct { - DWORD PointerToLinenumber; - DWORD PointerToNextFunction; - } Function; - struct { - WORD Dimension[4]; - } Array; - } FcnAry; - WORD TvIndex; - } Sym; - struct { - BYTE Name[IMAGE_SIZEOF_SYMBOL]; - } File; - struct { - DWORD Length; - WORD NumberOfRelocations; - WORD NumberOfLinenumbers; - DWORD CheckSum; - SHORT Number; - BYTE Selection; - } Section; -} IMAGE_AUX_SYMBOL,*PIMAGE_AUX_SYMBOL; -typedef struct _IMAGE_COFF_SYMBOLS_HEADER { - DWORD NumberOfSymbols; - DWORD LvaToFirstSymbol; - DWORD NumberOfLinenumbers; - DWORD LvaToFirstLinenumber; - DWORD RvaToFirstByteOfCode; - DWORD RvaToLastByteOfCode; - DWORD RvaToFirstByteOfData; - DWORD RvaToLastByteOfData; -} IMAGE_COFF_SYMBOLS_HEADER,*PIMAGE_COFF_SYMBOLS_HEADER; -typedef struct _IMAGE_RELOCATION { - _ANONYMOUS_UNION union { - DWORD VirtualAddress; - DWORD RelocCount; - } DUMMYUNIONNAME; - DWORD SymbolTableIndex; - WORD Type; -} IMAGE_RELOCATION,*PIMAGE_RELOCATION; -#pragma pack(pop) -#pragma pack(push,4) -typedef struct _IMAGE_BASE_RELOCATION { - DWORD VirtualAddress; - DWORD SizeOfBlock; -} IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION; -#pragma pack(pop) -#pragma pack(push,2) -typedef struct _IMAGE_LINENUMBER { - union { - DWORD SymbolTableIndex; - DWORD VirtualAddress; - } Type; - WORD Linenumber; -} IMAGE_LINENUMBER,*PIMAGE_LINENUMBER; -#pragma pack(pop) -#pragma pack(push,4) -typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER { - BYTE Name[16]; - BYTE Date[12]; - BYTE UserID[6]; - BYTE GroupID[6]; - BYTE Mode[8]; - BYTE Size[10]; - BYTE EndHeader[2]; -} IMAGE_ARCHIVE_MEMBER_HEADER,*PIMAGE_ARCHIVE_MEMBER_HEADER; -typedef struct _IMAGE_EXPORT_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Name; - DWORD Base; - DWORD NumberOfFunctions; - DWORD NumberOfNames; - PDWORD *AddressOfFunctions; - PDWORD *AddressOfNames; - PWORD *AddressOfNameOrdinals; -} IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY; -typedef struct _IMAGE_IMPORT_BY_NAME { - WORD Hint; - BYTE Name[1]; -} IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME; -typedef struct _IMAGE_THUNK_DATA { - union { - PBYTE ForwarderString; - PDWORD Function; - DWORD Ordinal; - PIMAGE_IMPORT_BY_NAME AddressOfData; - } u1; -} IMAGE_THUNK_DATA,*PIMAGE_THUNK_DATA; -typedef struct _IMAGE_IMPORT_DESCRIPTOR { - _ANONYMOUS_UNION union { - DWORD Characteristics; - PIMAGE_THUNK_DATA OriginalFirstThunk; - } DUMMYUNIONNAME; - DWORD TimeDateStamp; - DWORD ForwarderChain; - DWORD Name; - PIMAGE_THUNK_DATA FirstThunk; -} IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR; -typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { - DWORD TimeDateStamp; - WORD OffsetModuleName; - WORD NumberOfModuleForwarderRefs; -} IMAGE_BOUND_IMPORT_DESCRIPTOR,*PIMAGE_BOUND_IMPORT_DESCRIPTOR; -typedef struct _IMAGE_BOUND_FORWARDER_REF { - DWORD TimeDateStamp; - WORD OffsetModuleName; - WORD Reserved; -} IMAGE_BOUND_FORWARDER_REF,*PIMAGE_BOUND_FORWARDER_REF; -typedef void(NTAPI *PIMAGE_TLS_CALLBACK)(PVOID,DWORD,PVOID); -typedef struct _IMAGE_TLS_DIRECTORY { - DWORD StartAddressOfRawData; - DWORD EndAddressOfRawData; - PDWORD AddressOfIndex; - PIMAGE_TLS_CALLBACK *AddressOfCallBacks; - DWORD SizeOfZeroFill; - DWORD Characteristics; -} IMAGE_TLS_DIRECTORY,*PIMAGE_TLS_DIRECTORY; -typedef struct _IMAGE_RESOURCE_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - WORD NumberOfNamedEntries; - WORD NumberOfIdEntries; -} IMAGE_RESOURCE_DIRECTORY,*PIMAGE_RESOURCE_DIRECTORY; -_ANONYMOUS_STRUCT typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY { - _ANONYMOUS_UNION union { - _ANONYMOUS_STRUCT struct { - DWORD NameOffset:31; - DWORD NameIsString:1; - }DUMMYSTRUCTNAME; - DWORD Name; - WORD Id; - } DUMMYUNIONNAME; - _ANONYMOUS_UNION union { - DWORD OffsetToData; - _ANONYMOUS_STRUCT struct { - DWORD OffsetToDirectory:31; - DWORD DataIsDirectory:1; - } DUMMYSTRUCTNAME2; - } DUMMYUNIONNAME2; -} IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY; -typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING { - WORD Length; - CHAR NameString[1]; -} IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING; -typedef struct _IMAGE_RESOURCE_DIR_STRING_U { - WORD Length; - WCHAR NameString[1]; -} IMAGE_RESOURCE_DIR_STRING_U,*PIMAGE_RESOURCE_DIR_STRING_U; -typedef struct _IMAGE_RESOURCE_DATA_ENTRY { - DWORD OffsetToData; - DWORD Size; - DWORD CodePage; - DWORD Reserved; -} IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY; -typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD GlobalFlagsClear; - DWORD GlobalFlagsSet; - DWORD CriticalSectionDefaultTimeout; - DWORD DeCommitFreeBlockThreshold; - DWORD DeCommitTotalFreeThreshold; - PVOID LockPrefixTable; - DWORD MaximumAllocationSize; - DWORD VirtualMemoryThreshold; - DWORD ProcessHeapFlags; - DWORD Reserved[4]; -} IMAGE_LOAD_CONFIG_DIRECTORY,*PIMAGE_LOAD_CONFIG_DIRECTORY; -typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY { - DWORD BeginAddress; - DWORD EndAddress; - PVOID ExceptionHandler; - PVOID HandlerData; - DWORD PrologEndAddress; -} IMAGE_RUNTIME_FUNCTION_ENTRY,*PIMAGE_RUNTIME_FUNCTION_ENTRY; -typedef struct _IMAGE_DEBUG_DIRECTORY { - DWORD Characteristics; - DWORD TimeDateStamp; - WORD MajorVersion; - WORD MinorVersion; - DWORD Type; - DWORD SizeOfData; - DWORD AddressOfRawData; - DWORD PointerToRawData; -} IMAGE_DEBUG_DIRECTORY,*PIMAGE_DEBUG_DIRECTORY; -typedef struct _FPO_DATA { - DWORD ulOffStart; - DWORD cbProcSize; - DWORD cdwLocals; - WORD cdwParams; - WORD cbProlog:8; - WORD cbRegs:3; - WORD fHasSEH:1; - WORD fUseBP:1; - WORD reserved:1; - WORD cbFrame:2; -} FPO_DATA,*PFPO_DATA; -typedef struct _IMAGE_DEBUG_MISC { - DWORD DataType; - DWORD Length; - BOOLEAN Unicode; - BYTE Reserved[3]; - BYTE Data[1]; -} IMAGE_DEBUG_MISC,*PIMAGE_DEBUG_MISC; -typedef struct _IMAGE_FUNCTION_ENTRY { - DWORD StartingAddress; - DWORD EndingAddress; - DWORD EndOfPrologue; -} IMAGE_FUNCTION_ENTRY,*PIMAGE_FUNCTION_ENTRY; -typedef struct _IMAGE_SEPARATE_DEBUG_HEADER { - WORD Signature; - WORD Flags; - WORD Machine; - WORD Characteristics; - DWORD TimeDateStamp; - DWORD CheckSum; - DWORD ImageBase; - DWORD SizeOfImage; - DWORD NumberOfSections; - DWORD ExportedNamesSize; - DWORD DebugDirectorySize; - DWORD Reserved[3]; -} IMAGE_SEPARATE_DEBUG_HEADER,*PIMAGE_SEPARATE_DEBUG_HEADER; -#pragma pack(pop) -typedef enum _CM_SERVICE_NODE_TYPE { - DriverType=SERVICE_KERNEL_DRIVER, - FileSystemType=SERVICE_FILE_SYSTEM_DRIVER, - Win32ServiceOwnProcess=SERVICE_WIN32_OWN_PROCESS, - Win32ServiceShareProcess=SERVICE_WIN32_SHARE_PROCESS, - AdapterType=SERVICE_ADAPTER, - RecognizerType=SERVICE_RECOGNIZER_DRIVER -} SERVICE_NODE_TYPE; -typedef enum _CM_SERVICE_LOAD_TYPE { - BootLoad=SERVICE_BOOT_START, - SystemLoad=SERVICE_SYSTEM_START, - AutoLoad=SERVICE_AUTO_START, - DemandLoad=SERVICE_DEMAND_START, - DisableLoad=SERVICE_DISABLED -} SERVICE_LOAD_TYPE; -typedef enum _CM_ERROR_CONTROL_TYPE { - IgnoreError=SERVICE_ERROR_IGNORE, - NormalError=SERVICE_ERROR_NORMAL, - SevereError=SERVICE_ERROR_SEVERE, - CriticalError=SERVICE_ERROR_CRITICAL -} SERVICE_ERROR_TYPE; -typedef struct _NT_TIB { - struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; - PVOID StackBase; - PVOID StackLimit; - PVOID SubSystemTib; - _ANONYMOUS_UNION union { - PVOID FiberData; - DWORD Version; - } DUMMYUNIONNAME; - PVOID ArbitraryUserPointer; - struct _NT_TIB *Self; -} NT_TIB,*PNT_TIB; -typedef struct _REPARSE_DATA_BUFFER { - DWORD ReparseTag; - WORD ReparseDataLength; - WORD Reserved; - _ANONYMOUS_UNION union { - struct { - WORD SubstituteNameOffset; - WORD SubstituteNameLength; - WORD PrintNameOffset; - WORD PrintNameLength; - WCHAR PathBuffer[1]; - } SymbolicLinkReparseBuffer; - struct { - WORD SubstituteNameOffset; - WORD SubstituteNameLength; - WORD PrintNameOffset; - WORD PrintNameLength; - WCHAR PathBuffer[1]; - } MountPointReparseBuffer; - struct { - BYTE DataBuffer[1]; - } GenericReparseBuffer; - } DUMMYUNIONNAME; -} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER; -typedef struct _REPARSE_GUID_DATA_BUFFER { - DWORD ReparseTag; - WORD ReparseDataLength; - WORD Reserved; - GUID ReparseGuid; - struct { - BYTE DataBuffer[1]; - } GenericReparseBuffer; -} REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER; -typedef struct _REPARSE_POINT_INFORMATION { - WORD ReparseDataLength; - WORD UnparsedNameLength; -} REPARSE_POINT_INFORMATION, *PREPARSE_POINT_INFORMATION; - -#ifdef UNICODE -typedef OSVERSIONINFOW OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO; -typedef OSVERSIONINFOEXW OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX; -#else -typedef OSVERSIONINFOA OSVERSIONINFO,*POSVERSIONINFO,*LPOSVERSIONINFO; -typedef OSVERSIONINFOEXA OSVERSIONINFOEX,*POSVERSIONINFOEX,*LPOSVERSIONINFOEX; -#endif - -#if defined(__GNUC__) - -PVOID GetCurrentFiber(void); -PVOID GetFiberData(void); - -PVOID GetCurrentFiber(void); -extern __inline__ PVOID GetCurrentFiber(void) -{ - void* ret; - __asm__ volatile ( - "movl %%fs:0x10,%0" - : "=r" (ret) /* allow use of reg eax,ebx,ecx,edx,esi,edi */ - : - ); - return ret; -} - -PVOID GetFiberData(void); -extern __inline__ PVOID GetFiberData(void) -{ - void* ret; - __asm__ volatile ( - "movl %%fs:0x10,%0\n" - "movl (%0),%0" - : "=r" (ret) /* allow use of reg eax,ebx,ecx,edx,esi,edi */ - : - ); - return ret; -} - -#else - -extern PVOID GetCurrentFiber(void); -#pragma aux GetCurrentFiber = \ - "mov eax, dword ptr fs:0x10" \ - value [eax] \ - modify [eax]; - -extern PVOID GetFiberData(void); -#pragma aux GetFiberData = \ - "mov eax, dword ptr fs:0x10" \ - "mov eax, [eax]" \ - value [eax] \ - modify [eax]; - -#endif /* __GNUC__ */ - -#endif -#ifdef __cplusplus -} -#endif -#endif - diff --git a/winsup/w32api/include/winperf.h b/winsup/w32api/include/winperf.h deleted file mode 100644 index 99620e47e..000000000 --- a/winsup/w32api/include/winperf.h +++ /dev/null @@ -1,135 +0,0 @@ -#ifndef _WINPERF_H -#define _WINPERF_H -#ifdef __cplusplus -extern "C" { -#endif -#define PERF_DATA_VERSION 1 -#define PERF_DATA_REVISION 1 -#define PERF_NO_INSTANCES -1 -#define PERF_SIZE_DWORD 0 -#define PERF_SIZE_LARGE 256 -#define PERF_SIZE_ZERO 512 -#define PERF_SIZE_VARIABLE_LEN 768 -#define PERF_TYPE_NUMBER 0 -#define PERF_TYPE_COUNTER 1024 -#define PERF_TYPE_TEXT 2048 -#define PERF_TYPE_ZERO 0xC00 -#define PERF_NUMBER_HEX 0 -#define PERF_NUMBER_DECIMAL 0x10000 -#define PERF_NUMBER_DEC_1000 0x20000 -#define PERF_COUNTER_VALUE 0 -#define PERF_COUNTER_RATE 0x10000 -#define PERF_COUNTER_FRACTION 0x20000 -#define PERF_COUNTER_BASE 0x30000 -#define PERF_COUNTER_ELAPSED 0x40000 -#define PERF_COUNTER_QUEUELEN 0x50000 -#define PERF_COUNTER_HISTOGRAM 0x60000 -#define PERF_TEXT_UNICODE 0 -#define PERF_TEXT_ASCII 0x10000 -#define PERF_TIMER_TICK 0 -#define PERF_TIMER_100NS 0x100000 -#define PERF_OBJECT_TIMER 0x200000 -#define PERF_DELTA_COUNTER 0x400000 -#define PERF_DELTA_BASE 0x800000 -#define PERF_INVERSE_COUNTER 0x1000000 -#define PERF_MULTI_COUNTER 0x2000000 -#define PERF_DISPLAY_NO_SUFFIX 0 -#define PERF_DISPLAY_PER_SEC 0x10000000 -#define PERF_DISPLAY_PERCENT 0x20000000 -#define PERF_DISPLAY_SECONDS 0x30000000 -#define PERF_DISPLAY_NOSHOW 0x40000000 -#define PERF_COUNTER_HISTOGRAM_TYPE 0x80000000 -#define PERF_NO_UNIQUE_ID (-1) -#define PERF_DETAIL_NOVICE 100 -#define PERF_DETAIL_ADVANCED 200 -#define PERF_DETAIL_EXPERT 300 -#define PERF_DETAIL_WIZARD 400 -#define PERF_COUNTER_COUNTER (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_PER_SEC) -#define PERF_COUNTER_TIMER (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_PERCENT) -#define PERF_COUNTER_QUEUELEN_TYPE (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_QUEUELEN|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_NO_SUFFIX) -#define PERF_COUNTER_BULK_COUNT (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_PER_SEC) -#define PERF_COUNTER_TEXT (PERF_SIZE_VARIABLE_LEN|PERF_TYPE_TEXT|PERF_TEXT_UNICODE|PERF_DISPLAY_NO_SUFFIX) -#define PERF_COUNTER_RAWCOUNT (PERF_SIZE_DWORD|PERF_TYPE_NUMBER|PERF_NUMBER_DECIMAL|PERF_DISPLAY_NO_SUFFIX) -#define PERF_COUNTER_LARGE_RAWCOUNT (PERF_SIZE_LARGE|PERF_TYPE_NUMBER|PERF_NUMBER_DECIMAL|PERF_DISPLAY_NO_SUFFIX) -#define PERF_COUNTER_RAWCOUNT_HEX (PERF_SIZE_DWORD|PERF_TYPE_NUMBER|PERF_NUMBER_HEX|PERF_DISPLAY_NO_SUFFIX) -#define PERF_COUNTER_LARGE_RAWCOUNT_HEX (PERF_SIZE_LARGE|PERF_TYPE_NUMBER|PERF_NUMBER_HEX|PERF_DISPLAY_NO_SUFFIX) -#define PERF_SAMPLE_FRACTION (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DELTA_COUNTER|PERF_DELTA_BASE|PERF_DISPLAY_PERCENT) -#define PERF_SAMPLE_COUNTER (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_DISPLAY_NO_SUFFIX) -#define PERF_COUNTER_NODATA (PERF_SIZE_ZERO|PERF_DISPLAY_NOSHOW) -#define PERF_COUNTER_TIMER_INV (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_TICK|PERF_DELTA_COUNTER|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT) -#define PERF_SAMPLE_BASE (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_DISPLAY_NOSHOW|1) -#define PERF_AVERAGE_TIMER (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DISPLAY_SECONDS) -#define PERF_AVERAGE_BASE (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_DISPLAY_NOSHOW|2) -#define PERF_AVERAGE_BULK (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DISPLAY_NOSHOW) -#define PERF_100NSEC_TIMER (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_DELTA_COUNTER|PERF_DISPLAY_PERCENT) -#define PERF_100NSEC_TIMER_INV (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_DELTA_COUNTER|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT) -#define PERF_COUNTER_MULTI_TIMER (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_DELTA_COUNTER|PERF_TIMER_TICK|PERF_MULTI_COUNTER|PERF_DISPLAY_PERCENT) -#define PERF_COUNTER_MULTI_TIMER_INV (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_RATE|PERF_DELTA_COUNTER|PERF_MULTI_COUNTER|PERF_TIMER_TICK|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT) -#define PERF_COUNTER_MULTI_BASE (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_MULTI_COUNTER|PERF_DISPLAY_NOSHOW) -#define PERF_100NSEC_MULTI_TIMER (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_DELTA_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_MULTI_COUNTER|PERF_DISPLAY_PERCENT) -#define PERF_100NSEC_MULTI_TIMER_INV (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_DELTA_COUNTER|PERF_COUNTER_RATE|PERF_TIMER_100NS|PERF_MULTI_COUNTER|PERF_INVERSE_COUNTER|PERF_DISPLAY_PERCENT) -#define PERF_RAW_FRACTION (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_FRACTION|PERF_DISPLAY_PERCENT) -#define PERF_RAW_BASE (PERF_SIZE_DWORD|PERF_TYPE_COUNTER|PERF_COUNTER_BASE|PERF_DISPLAY_NOSHOW|3) -#define PERF_ELAPSED_TIME (PERF_SIZE_LARGE|PERF_TYPE_COUNTER|PERF_COUNTER_ELAPSED|PERF_OBJECT_TIMER|PERF_DISPLAY_SECONDS) -typedef struct _PERF_DATA_BLOCK { - WCHAR Signature[4]; - DWORD LittleEndian; - DWORD Version; - DWORD Revision; - DWORD TotalByteLength; - DWORD HeaderLength; - DWORD NumObjectTypes; - LONG DefaultObject; - SYSTEMTIME SystemTime; - LARGE_INTEGER PerfTime; - LARGE_INTEGER PerfFreq; - LARGE_INTEGER PerfTime100nSec; - DWORD SystemNameLength; - DWORD SystemNameOffset; -} PERF_DATA_BLOCK, *PPERF_DATA_BLOCK; -typedef struct _PERF_OBJECT_TYPE { - DWORD TotalByteLength; - DWORD DefinitionLength; - DWORD HeaderLength; - DWORD ObjectNameTitleIndex; - LPWSTR ObjectNameTitle; - DWORD ObjectHelpTitleIndex; - LPWSTR ObjectHelpTitle; - DWORD DetailLevel; - DWORD NumCounters; - LONG DefaultCounter; - LONG NumInstances; - DWORD CodePage; - LARGE_INTEGER PerfTime; - LARGE_INTEGER PerfFreq; -} PERF_OBJECT_TYPE, *PPERF_OBJECT_TYPE; -typedef struct _PERF_COUNTER_DEFINITION { - DWORD ByteLength; - DWORD CounterNameTitleIndex; - LPWSTR CounterNameTitle; - DWORD CounterHelpTitleIndex; - LPWSTR CounterHelpTitle; - LONG DefaultScale; - DWORD DetailLevel; - DWORD CounterType; - DWORD CounterSize; - DWORD CounterOffset; -} PERF_COUNTER_DEFINITION,*PPERF_COUNTER_DEFINITION; -typedef struct _PERF_INSTANCE_DEFINITION { - DWORD ByteLength; - DWORD ParentObjectTitleIndex; - DWORD ParentObjectInstance; - LONG UniqueID; - DWORD NameOffset; - DWORD NameLength; -} PERF_INSTANCE_DEFINITION,*PPERF_INSTANCE_DEFINITION; -typedef struct _PERF_COUNTER_BLOCK { - DWORD ByteLength; -} PERF_COUNTER_BLOCK, *PPERF_COUNTER_BLOCK; -typedef DWORD(CALLBACK PM_OPEN_PROC)(LPWSTR); -typedef DWORD(CALLBACK PM_COLLECT_PROC)(LPWSTR,PVOID*,PDWORD,PDWORD); -typedef DWORD(CALLBACK PM_CLOSE_PROC)(void); -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/winreg.h b/winsup/w32api/include/winreg.h deleted file mode 100644 index aae020a39..000000000 --- a/winsup/w32api/include/winreg.h +++ /dev/null @@ -1,155 +0,0 @@ -#ifndef _WINREG_H -#define _WINREG_H -#ifdef __cplusplus -extern "C" { -#endif -#define HKEY_CLASSES_ROOT ((HKEY)0x80000000) -#define HKEY_CURRENT_USER ((HKEY)0x80000001) -#define HKEY_LOCAL_MACHINE ((HKEY)0x80000002) -#define HKEY_USERS ((HKEY)0x80000003) -#define HKEY_PERFORMANCE_DATA ((HKEY)0x80000004) -#define HKEY_CURRENT_CONFIG ((HKEY)0x80000005) -#define HKEY_DYN_DATA ((HKEY)0x80000006) -#define REG_OPTION_VOLATILE 1 -#define REG_OPTION_NON_VOLATILE 0 -#define REG_CREATED_NEW_KEY 1 -#define REG_OPENED_EXISTING_KEY 2 -#define REG_NONE 0 -#define REG_SZ 1 -#define REG_EXPAND_SZ 2 -#define REG_BINARY 3 -#define REG_DWORD 4 -#define REG_DWORD_BIG_ENDIAN 5 -#define REG_DWORD_LITTLE_ENDIAN 4 -#define REG_LINK 6 -#define REG_MULTI_SZ 7 -#define REG_RESOURCE_LIST 8 -#define REG_FULL_RESOURCE_DESCRIPTOR 9 -#define REG_RESOURCE_REQUIREMENTS_LIST 10 -#define REG_NOTIFY_CHANGE_NAME 1 -#define REG_NOTIFY_CHANGE_ATTRIBUTES 2 -#define REG_NOTIFY_CHANGE_LAST_SET 4 -#define REG_NOTIFY_CHANGE_SECURITY 8 - -#ifndef RC_INVOKED -typedef ACCESS_MASK REGSAM; -typedef struct value_entA { - LPSTR ve_valuename; - DWORD ve_valuelen; - DWORD ve_valueptr; - DWORD ve_type; -} VALENTA,*PVALENTA; -typedef struct value_entW { - LPWSTR ve_valuename; - DWORD ve_valuelen; - DWORD ve_valueptr; - DWORD ve_type; -} VALENTW,*PVALENTW; -BOOL WINAPI AbortSystemShutdownA(LPCSTR); -BOOL WINAPI AbortSystemShutdownW(LPCWSTR); -BOOL WINAPI InitiateSystemShutdownA(LPSTR,LPSTR,DWORD,BOOL,BOOL); -BOOL WINAPI InitiateSystemShutdownW(LPWSTR,LPWSTR,DWORD,BOOL,BOOL); -LONG WINAPI RegCloseKey(HKEY); -LONG WINAPI RegConnectRegistryA(LPSTR,HKEY,PHKEY); -LONG WINAPI RegConnectRegistryW(LPWSTR,HKEY,PHKEY); -LONG WINAPI RegCreateKeyA(HKEY,LPCSTR,PHKEY); -LONG WINAPI RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD); -LONG WINAPI RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,PDWORD); -LONG WINAPI RegCreateKeyW(HKEY,LPCWSTR,PHKEY); -LONG WINAPI RegDeleteKeyA(HKEY,LPCSTR); -LONG WINAPI RegDeleteKeyW(HKEY,LPCWSTR); -LONG WINAPI RegDeleteValueA (HKEY,LPCSTR); -LONG WINAPI RegDeleteValueW(HKEY,LPCWSTR); -LONG WINAPI RegEnumKeyA (HKEY,DWORD,LPSTR,DWORD); -LONG WINAPI RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD); -LONG WINAPI RegEnumKeyExA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,LPSTR,PDWORD,PFILETIME); -LONG WINAPI RegEnumKeyExW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,LPWSTR,PDWORD,PFILETIME); -LONG WINAPI RegEnumValueA(HKEY,DWORD,LPSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD); -LONG WINAPI RegEnumValueW(HKEY,DWORD,LPWSTR,PDWORD,PDWORD,PDWORD,LPBYTE,PDWORD); -LONG WINAPI RegFlushKey(HKEY); -LONG WINAPI RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PDWORD); -LONG WINAPI RegLoadKeyA(HKEY,LPCSTR,LPCSTR); -LONG WINAPI RegLoadKeyW(HKEY,LPCWSTR,LPCWSTR); -LONG WINAPI RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL); -LONG WINAPI RegOpenKeyA(HKEY,LPCSTR,PHKEY); -LONG WINAPI RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,PHKEY); -LONG WINAPI RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,PHKEY); -LONG WINAPI RegOpenKeyW(HKEY,LPCWSTR,PHKEY); -LONG WINAPI RegQueryInfoKeyA(HKEY,LPSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME); -LONG WINAPI RegQueryInfoKeyW(HKEY,LPWSTR,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PDWORD,PFILETIME); -LONG WINAPI RegQueryMultipleValuesA(HKEY,PVALENTA,DWORD,LPSTR,PDWORD); -LONG WINAPI RegQueryMultipleValuesW(HKEY,PVALENTW,DWORD,LPWSTR,PDWORD); -LONG WINAPI RegQueryValueA(HKEY,LPCSTR,LPSTR,PLONG); -LONG WINAPI RegQueryValueExA (HKEY,LPCSTR,PDWORD,PDWORD,LPBYTE,PDWORD); -LONG WINAPI RegQueryValueExW(HKEY,LPCWSTR,PDWORD,PDWORD,LPBYTE,PDWORD); -LONG WINAPI RegQueryValueW(HKEY,LPCWSTR,LPWSTR,PLONG); -LONG WINAPI RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR); -LONG WINAPI RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR); -LONG WINAPI RegRestoreKeyA (HKEY,LPCSTR,DWORD); -LONG WINAPI RegRestoreKeyW(HKEY,LPCWSTR,DWORD); -LONG WINAPI RegSaveKeyA(HKEY,LPCSTR,LPSECURITY_ATTRIBUTES); -LONG WINAPI RegSaveKeyW(HKEY,LPCWSTR,LPSECURITY_ATTRIBUTES); -LONG WINAPI RegSetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -LONG WINAPI RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD); -LONG WINAPI RegSetValueExA(HKEY,LPCSTR,DWORD,DWORD,const BYTE*,DWORD); -LONG WINAPI RegSetValueExW(HKEY,LPCWSTR,DWORD,DWORD,const BYTE*,DWORD); -LONG WINAPI RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD); -LONG WINAPI RegUnLoadKeyA(HKEY,LPCSTR); -LONG WINAPI RegUnLoadKeyW(HKEY,LPCWSTR); - -#ifdef UNICODE -typedef VALENTW VALENT,*PVALENT; -#define AbortSystemShutdown AbortSystemShutdownW -#define InitiateSystemShutdown InitiateSystemShutdownW -#define RegConnectRegistry RegConnectRegistryW -#define RegCreateKey RegCreateKeyW -#define RegCreateKeyEx RegCreateKeyExW -#define RegDeleteKey RegDeleteKeyW -#define RegDeleteValue RegDeleteValueW -#define RegEnumKey RegEnumKeyW -#define RegEnumKeyEx RegEnumKeyExW -#define RegEnumValue RegEnumValueW -#define RegLoadKey RegLoadKeyW -#define RegOpenKey RegOpenKeyW -#define RegOpenKeyEx RegOpenKeyExW -#define RegQueryInfoKey RegQueryInfoKeyW -#define RegQueryMultipleValues RegQueryMultipleValuesW -#define RegQueryValue RegQueryValueW -#define RegQueryValueEx RegQueryValueExW -#define RegReplaceKey RegReplaceKeyW -#define RegRestoreKey RegRestoreKeyW -#define RegSaveKey RegSaveKeyW -#define RegSetValue RegSetValueW -#define RegSetValueEx RegSetValueExW -#define RegUnLoadKey RegUnLoadKeyW -#else -typedef VALENTA VALENT,*PVALENT; -#define AbortSystemShutdown AbortSystemShutdownA -#define InitiateSystemShutdown InitiateSystemShutdownA -#define RegConnectRegistry RegConnectRegistryA -#define RegCreateKey RegCreateKeyA -#define RegCreateKeyEx RegCreateKeyExA -#define RegDeleteKey RegDeleteKeyA -#define RegDeleteValue RegDeleteValueA -#define RegEnumKey RegEnumKeyA -#define RegEnumKeyEx RegEnumKeyExA -#define RegEnumValue RegEnumValueA -#define RegLoadKey RegLoadKeyA -#define RegOpenKey RegOpenKeyA -#define RegOpenKeyEx RegOpenKeyExA -#define RegQueryInfoKey RegQueryInfoKeyA -#define RegQueryMultipleValues RegQueryMultipleValuesA -#define RegQueryValue RegQueryValueA -#define RegQueryValueEx RegQueryValueExA -#define RegReplaceKey RegReplaceKeyA -#define RegRestoreKey RegRestoreKeyA -#define RegSaveKey RegSaveKeyA -#define RegSetValue RegSetValueA -#define RegSetValueEx RegSetValueExA -#define RegUnLoadKey RegUnLoadKeyA -#endif -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/winresrc.h b/winsup/w32api/include/winresrc.h deleted file mode 100644 index 59e0cd062..000000000 --- a/winsup/w32api/include/winresrc.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _WINRESRC_H -#define _WINRESRC_H -#define WIN32_LEAN_AND_MEAN -#include -#include -#include -#include -#include -#include -#endif diff --git a/winsup/w32api/include/winsock.h b/winsup/w32api/include/winsock.h deleted file mode 100644 index 8ab489998..000000000 --- a/winsup/w32api/include/winsock.h +++ /dev/null @@ -1,525 +0,0 @@ -/* - - Definitions for winsock 1.1 - - Portions Copyright (c) 1980, 1983, 1988, 1993 - The Regents of the University of California. All rights reserved. - - Portions Copyright (c) 1993 by Digital Equipment Corporation. - */ - -#ifndef _WINSOCK_H -#define _WINSOCK_H -#define _GNU_H_WINDOWS32_SOCKETS -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if !defined ( _BSDTYPES_DEFINED ) -/* also defined in gmon.h and in cygwin's sys/types */ -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; -typedef unsigned long u_long; -#define _BSDTYPES_DEFINED -#endif /* !defined _BSDTYPES_DEFINED */ -typedef u_int SOCKET; -#ifndef FD_SETSIZE -#define FD_SETSIZE 64 -#endif - -/* shutdown() how types */ -#define SD_RECEIVE 0x00 -#define SD_SEND 0x01 -#define SD_BOTH 0x02 - -#ifndef _SYS_TYPES_FD_SET -/* fd_set may have be defined by the newlib - * if __USE_W32_SOCKETS not defined. - */ -#ifdef fd_set -#undef fd_set -#endif -typedef struct fd_set { - u_int fd_count; - SOCKET fd_array[FD_SETSIZE]; -} fd_set; -int PASCAL __WSAFDIsSet(SOCKET,fd_set*); -#ifndef FD_CLR -#define FD_CLR(fd,set) do { u_int __i;\ -for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\ - if (((fd_set *)(set))->fd_array[__i] == (fd)) {\ - while (__i < ((fd_set *)(set))->fd_count-1) {\ - ((fd_set*)(set))->fd_array[__i] = ((fd_set*)(set))->fd_array[__i+1];\ - __i++;\ - }\ - ((fd_set*)(set))->fd_count--;\ - break;\ - }\ -}\ -} while (0) -#endif -#ifndef FD_SET -#define FD_SET(fd, set) do { \ - if (((fd_set *)(set))->fd_count < FD_SETSIZE) \ - ((fd_set *)(set))->fd_array[((fd_set *)(set))->fd_count++]=(fd);\ -}while (0) -#endif -#ifndef FD_ZERO -#define FD_ZERO(set) (((fd_set *)(set))->fd_count=0) -#endif -#ifndef FD_ISSET -#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set *)(set)) -#endif -#elif !defined(USE_SYS_TYPES_FD_SET) -#warning "fd_set and associated macros have been defined in sys/types. \ - This can cause runtime problems with W32 sockets" -#endif /* ndef _SYS_TYPES_FD_SET */ - -#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -struct timeval { - long tv_sec; - long tv_usec; -}; -struct hostent { - char *h_name; - char **h_aliases; - short h_addrtype; - short h_length; - char **h_addr_list; -#define h_addr h_addr_list[0] -}; -struct linger { - u_short l_onoff; - u_short l_linger; -}; -#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) -#define timercmp(tvp, uvp, cmp) \ - (((tvp)->tv_sec != (uvp)->tv_sec) ? \ - ((tvp)->tv_sec cmp (uvp)->tv_sec) : \ - ((tvp)->tv_usec cmp (uvp)->tv_usec)) -#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ -#define IOCPARM_MASK 0x7f -#define IOC_VOID 0x20000000 -#define IOC_OUT 0x40000000 -#define IOC_IN 0x80000000 -#define IOC_INOUT (IOC_IN|IOC_OUT) - -#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -#define _IO(x,y) (IOC_VOID|((x)<<8)|(y)) -#define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) -#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) -#define FIONBIO _IOW('f', 126, u_long) -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ - -#define FIONREAD _IOR('f', 127, u_long) -#define FIOASYNC _IOW('f', 125, u_long) -#define SIOCSHIWAT _IOW('s', 0, u_long) -#define SIOCGHIWAT _IOR('s', 1, u_long) -#define SIOCSLOWAT _IOW('s', 2, u_long) -#define SIOCGLOWAT _IOR('s', 3, u_long) -#define SIOCATMARK _IOR('s', 7, u_long) - -#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -struct netent { - char * n_name; - char **n_aliases; - short n_addrtype; - u_long n_net; -}; -struct servent { - char *s_name; - char **s_aliases; - short s_port; - char *s_proto; -}; -struct protoent { - char *p_name; - char **p_aliases; - short p_proto; -}; -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ - -#define IPPROTO_IP 0 -#define IPPROTO_ICMP 1 -#define IPPROTO_IGMP 2 -#define IPPROTO_GGP 3 -#define IPPROTO_TCP 6 -#define IPPROTO_PUP 12 -#define IPPROTO_UDP 17 -#define IPPROTO_IDP 22 -#define IPPROTO_ND 77 -#define IPPROTO_RAW 255 -#define IPPROTO_MAX 256 -#define IPPORT_ECHO 7 -#define IPPORT_DISCARD 9 -#define IPPORT_SYSTAT 11 -#define IPPORT_DAYTIME 13 -#define IPPORT_NETSTAT 15 -#define IPPORT_FTP 21 -#define IPPORT_TELNET 23 -#define IPPORT_SMTP 25 -#define IPPORT_TIMESERVER 37 -#define IPPORT_NAMESERVER 42 -#define IPPORT_WHOIS 43 -#define IPPORT_MTP 57 -#define IPPORT_TFTP 69 -#define IPPORT_RJE 77 -#define IPPORT_FINGER 79 -#define IPPORT_TTYLINK 87 -#define IPPORT_SUPDUP 95 -#define IPPORT_EXECSERVER 512 -#define IPPORT_LOGINSERVER 513 -#define IPPORT_CMDSERVER 514 -#define IPPORT_EFSSERVER 520 -#define IPPORT_BIFFUDP 512 -#define IPPORT_WHOSERVER 513 -#define IPPORT_ROUTESERVER 520 -#define IPPORT_RESERVED 1024 -#define IMPLINK_IP 155 -#define IMPLINK_LOWEXPER 156 -#define IMPLINK_HIGHEXPER 158 -struct in_addr { - union { - struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; - struct { u_short s_w1,s_w2; } S_un_w; - u_long S_addr; - } S_un; -#define s_addr S_un.S_addr -#define s_host S_un.S_un_b.s_b2 -#define s_net S_un.S_un_b.s_b1 -#define s_imp S_un.S_un_w.s_w2 -#define s_impno S_un.S_un_b.s_b4 -#define s_lh S_un.S_un_b.s_b3 -}; -#define IN_CLASSA(i) ((long)(i)&0x80000000) -#define IN_CLASSA_NET 0xff000000 -#define IN_CLASSA_NSHIFT 24 -#define IN_CLASSA_HOST 0x00ffffff -#define IN_CLASSA_MAX 128 -#define IN_CLASSB(i) (((long)(i)&0xc0000000)==0x80000000) -#define IN_CLASSB_NET 0xffff0000 -#define IN_CLASSB_NSHIFT 16 -#define IN_CLASSB_HOST 0x0000ffff -#define IN_CLASSB_MAX 65536 -#define IN_CLASSC(i) (((long)(i)&0xe0000000)==0xc0000000) -#define IN_CLASSC_NET 0xffffff00 -#define IN_CLASSC_NSHIFT 8 -#define IN_CLASSC_HOST 0xff -#define INADDR_ANY (u_long)0 -#define INADDR_LOOPBACK 0x7f000001 -#define INADDR_BROADCAST (u_long)0xffffffff -#define INADDR_NONE 0xffffffff -struct sockaddr_in { - short sin_family; - u_short sin_port; - struct in_addr sin_addr; - char sin_zero[8]; -}; -#define WSADESCRIPTION_LEN 256 -#define WSASYS_STATUS_LEN 128 -typedef struct WSAData { - WORD wVersion; - WORD wHighVersion; - char szDescription[WSADESCRIPTION_LEN+1]; - char szSystemStatus[WSASYS_STATUS_LEN+1]; - unsigned short iMaxSockets; - unsigned short iMaxUdpDg; - char * lpVendorInfo; -} WSADATA; -typedef WSADATA *LPWSADATA; - -#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -#define IP_OPTIONS 1 -#define SO_DEBUG 1 -#define SO_ACCEPTCONN 2 -#define SO_REUSEADDR 4 -#define SO_KEEPALIVE 8 -#define SO_DONTROUTE 16 -#define SO_BROADCAST 32 -#define SO_USELOOPBACK 64 -#define SO_LINGER 128 -#define SO_OOBINLINE 256 -#define SO_DONTLINGER (u_int)(~SO_LINGER) -#define SO_SNDBUF 0x1001 -#define SO_RCVBUF 0x1002 -#define SO_SNDLOWAT 0x1003 -#define SO_RCVLOWAT 0x1004 -#define SO_SNDTIMEO 0x1005 -#define SO_RCVTIMEO 0x1006 -#define SO_ERROR 0x1007 -#define SO_TYPE 0x1008 -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ -/* - * Note that the next 5 IP defines are specific to WinSock 1.1 (wsock32.dll). - * They will cause errors or unexpected results if used with the - * (gs)etsockopts exported from the WinSock 2 lib, ws2_32.dll. Refer ws2tcpip.h. - */ -#define IP_MULTICAST_IF 2 -#define IP_MULTICAST_TTL 3 -#define IP_MULTICAST_LOOP 4 -#define IP_ADD_MEMBERSHIP 5 -#define IP_DROP_MEMBERSHIP 6 - -#define IP_DEFAULT_MULTICAST_TTL 1 -#define IP_DEFAULT_MULTICAST_LOOP 1 -#define IP_MAX_MEMBERSHIPS 20 -struct ip_mreq { - struct in_addr imr_multiaddr; - struct in_addr imr_interface; -}; -#define INVALID_SOCKET (SOCKET)(~0) -#define SOCKET_ERROR (-1) -#define SOCK_STREAM 1 -#define SOCK_DGRAM 2 -#define SOCK_RAW 3 -#define SOCK_RDM 4 -#define SOCK_SEQPACKET 5 -#define TCP_NODELAY 0x0001 -#define AF_UNSPEC 0 -#define AF_UNIX 1 -#define AF_INET 2 -#define AF_IMPLINK 3 -#define AF_PUP 4 -#define AF_CHAOS 5 -#define AF_IPX 6 -#define AF_NS 6 -#define AF_ISO 7 -#define AF_OSI AF_ISO -#define AF_ECMA 8 -#define AF_DATAKIT 9 -#define AF_CCITT 10 -#define AF_SNA 11 -#define AF_DECnet 12 -#define AF_DLI 13 -#define AF_LAT 14 -#define AF_HYLINK 15 -#define AF_APPLETALK 16 -#define AF_NETBIOS 17 -#define AF_VOICEVIEW 18 -#define AF_FIREFOX 19 -#define AF_UNKNOWN1 20 -#define AF_BAN 21 -#define AF_ATM 22 -#define AF_INET6 23 -#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -#define AF_MAX 24 -struct sockaddr { - u_short sa_family; - char sa_data[14]; -}; -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ - -struct sockproto { - u_short sp_family; - u_short sp_protocol; -}; -#define PF_UNSPEC AF_UNSPEC -#define PF_UNIX AF_UNIX -#define PF_INET AF_INET -#define PF_IMPLINK AF_IMPLINK -#define PF_PUP AF_PUP -#define PF_CHAOS AF_CHAOS -#define PF_NS AF_NS -#define PF_IPX AF_IPX -#define PF_ISO AF_ISO -#define PF_OSI AF_OSI -#define PF_ECMA AF_ECMA -#define PF_DATAKIT AF_DATAKIT -#define PF_CCITT AF_CCITT -#define PF_SNA AF_SNA -#define PF_DECnet AF_DECnet -#define PF_DLI AF_DLI -#define PF_LAT AF_LAT -#define PF_HYLINK AF_HYLINK -#define PF_APPLETALK AF_APPLETALK -#define PF_VOICEVIEW AF_VOICEVIEW -#define PF_FIREFOX AF_FIREFOX -#define PF_UNKNOWN1 AF_UNKNOWN1 -#define PF_BAN AF_BAN -#define PF_ATM AF_ATM -#define PF_INET6 AF_INET6 -#define PF_MAX AF_MAX -#define SOL_SOCKET 0xffff -#define SOMAXCONN 5 -#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -#define MSG_OOB 1 -#define MSG_PEEK 2 -#define MSG_DONTROUTE 4 -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ -#define MSG_MAXIOVLEN 16 -#define MSG_PARTIAL 0x8000 -#define MAXGETHOSTSTRUCT 1024 -#define FD_READ 1 -#define FD_WRITE 2 -#define FD_OOB 4 -#define FD_ACCEPT 8 -#define FD_CONNECT 16 -#define FD_CLOSE 32 -#define WSABASEERR 10000 -#define WSAEINTR (WSABASEERR+4) -#define WSAEBADF (WSABASEERR+9) -#define WSAEACCES (WSABASEERR+13) -#define WSAEFAULT (WSABASEERR+14) -#define WSAEINVAL (WSABASEERR+22) -#define WSAEMFILE (WSABASEERR+24) -#define WSAEWOULDBLOCK (WSABASEERR+35) -#define WSAEINPROGRESS (WSABASEERR+36) -#define WSAEALREADY (WSABASEERR+37) -#define WSAENOTSOCK (WSABASEERR+38) -#define WSAEDESTADDRREQ (WSABASEERR+39) -#define WSAEMSGSIZE (WSABASEERR+40) -#define WSAEPROTOTYPE (WSABASEERR+41) -#define WSAENOPROTOOPT (WSABASEERR+42) -#define WSAEPROTONOSUPPORT (WSABASEERR+43) -#define WSAESOCKTNOSUPPORT (WSABASEERR+44) -#define WSAEOPNOTSUPP (WSABASEERR+45) -#define WSAEPFNOSUPPORT (WSABASEERR+46) -#define WSAEAFNOSUPPORT (WSABASEERR+47) -#define WSAEADDRINUSE (WSABASEERR+48) -#define WSAEADDRNOTAVAIL (WSABASEERR+49) -#define WSAENETDOWN (WSABASEERR+50) -#define WSAENETUNREACH (WSABASEERR+51) -#define WSAENETRESET (WSABASEERR+52) -#define WSAECONNABORTED (WSABASEERR+53) -#define WSAECONNRESET (WSABASEERR+54) -#define WSAENOBUFS (WSABASEERR+55) -#define WSAEISCONN (WSABASEERR+56) -#define WSAENOTCONN (WSABASEERR+57) -#define WSAESHUTDOWN (WSABASEERR+58) -#define WSAETOOMANYREFS (WSABASEERR+59) -#define WSAETIMEDOUT (WSABASEERR+60) -#define WSAECONNREFUSED (WSABASEERR+61) -#define WSAELOOP (WSABASEERR+62) -#define WSAENAMETOOLONG (WSABASEERR+63) -#define WSAEHOSTDOWN (WSABASEERR+64) -#define WSAEHOSTUNREACH (WSABASEERR+65) -#define WSAENOTEMPTY (WSABASEERR+66) -#define WSAEPROCLIM (WSABASEERR+67) -#define WSAEUSERS (WSABASEERR+68) -#define WSAEDQUOT (WSABASEERR+69) -#define WSAESTALE (WSABASEERR+70) -#define WSAEREMOTE (WSABASEERR+71) -#define WSAEDISCON (WSABASEERR+101) -#define WSASYSNOTREADY (WSABASEERR+91) -#define WSAVERNOTSUPPORTED (WSABASEERR+92) -#define WSANOTINITIALISED (WSABASEERR+93) -#define WSAHOST_NOT_FOUND (WSABASEERR+1001) -#define WSATRY_AGAIN (WSABASEERR+1002) -#define WSANO_RECOVERY (WSABASEERR+1003) -#define WSANO_DATA (WSABASEERR+1004) -#define WSANO_ADDRESS WSANO_DATA -#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -#define h_errno WSAGetLastError() -#define HOST_NOT_FOUND WSAHOST_NOT_FOUND -#define TRY_AGAIN WSATRY_AGAIN -#define NO_RECOVERY WSANO_RECOVERY -#define NO_DATA WSANO_DATA -#define NO_ADDRESS WSANO_ADDRESS -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ -SOCKET PASCAL accept(SOCKET,struct sockaddr*,int*); -int PASCAL bind(SOCKET,const struct sockaddr*,int); -int PASCAL closesocket(SOCKET); -int PASCAL connect(SOCKET,const struct sockaddr*,int); -int PASCAL ioctlsocket(SOCKET,long,u_long *); -int PASCAL getpeername(SOCKET,struct sockaddr*,int*); -int PASCAL getsockname(SOCKET,struct sockaddr*,int*); -int PASCAL getsockopt(SOCKET,int,int,char*,int*); -unsigned long PASCAL inet_addr(const char*); -DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr); -int PASCAL listen(SOCKET,int); -int PASCAL recv(SOCKET,char*,int,int); -int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*); -int PASCAL send(SOCKET,const char*,int,int); -int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int); -int PASCAL setsockopt(SOCKET,int,int,const char*,int); -int PASCAL shutdown(SOCKET,int); -SOCKET PASCAL socket(int,int,int); -DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int); -DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*); -DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*); -DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*); -DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int); -DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*); -int PASCAL WSAStartup(WORD,LPWSADATA); -int PASCAL WSACleanup(void); -void PASCAL WSASetLastError(int); -int PASCAL WSAGetLastError(void); -BOOL PASCAL WSAIsBlocking(void); -int PASCAL WSAUnhookBlockingHook(void); -FARPROC PASCAL WSASetBlockingHook(FARPROC); -int PASCAL WSACancelBlockingCall(void); -HANDLE PASCAL WSAAsyncGetServByName(HWND,u_int,const char*,const char*,char*,int); -HANDLE PASCAL WSAAsyncGetServByPort(HWND,u_int,int,const char*,char*,int); -HANDLE PASCAL WSAAsyncGetProtoByName(HWND,u_int,const char*,char*,int); -HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND,u_int,int,char*,int); -HANDLE PASCAL WSAAsyncGetHostByName(HWND,u_int,const char*,char*,int); -HANDLE PASCAL WSAAsyncGetHostByAddr(HWND,u_int,const char*,int,int,char*,int); -int PASCAL WSACancelAsyncRequest(HANDLE); -int PASCAL WSAAsyncSelect(SOCKET,HWND,u_int,long); -#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -u_long PASCAL htonl(u_long); -u_long PASCAL ntohl(u_long); -u_short PASCAL htons(u_short); -u_short PASCAL ntohs(u_short); -int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*); -int PASCAL gethostname(char*,int); -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ - -#define WSAMAKEASYNCREPLY(b,e) MAKELONG(b,e) -#define WSAMAKESELECTREPLY(e,error) MAKELONG(e,error) -#define WSAGETASYNCBUFLEN(l) LOWORD(l) -#define WSAGETASYNCERROR(l) HIWORD(l) -#define WSAGETSELECTEVENT(l) LOWORD(l) -#define WSAGETSELECTERROR(l) HIWORD(l) - -typedef struct sockaddr SOCKADDR; -typedef struct sockaddr *PSOCKADDR; -typedef struct sockaddr *LPSOCKADDR; -typedef struct sockaddr_in SOCKADDR_IN; -typedef struct sockaddr_in *PSOCKADDR_IN; -typedef struct sockaddr_in *LPSOCKADDR_IN; -typedef struct linger LINGER; -typedef struct linger *PLINGER; -typedef struct linger *LPLINGER; -typedef struct in_addr IN_ADDR; -typedef struct in_addr *PIN_ADDR; -typedef struct in_addr *LPIN_ADDR; -typedef struct fd_set FD_SET; -typedef struct fd_set *PFD_SET; -typedef struct fd_set *LPFD_SET; -typedef struct hostent HOSTENT; -typedef struct hostent *PHOSTENT; -typedef struct hostent *LPHOSTENT; -typedef struct servent SERVENT; -typedef struct servent *PSERVENT; -typedef struct servent *LPSERVENT; -typedef struct protoent PROTOENT; -typedef struct protoent *PPROTOENT; -typedef struct protoent *LPPROTOENT; -typedef struct timeval TIMEVAL; -typedef struct timeval *PTIMEVAL; -typedef struct timeval *LPTIMEVAL; - -#ifdef __cplusplus -} -#endif -/* - * Recent MSDN docs indicate that the MS-specific extensions exported from - * mswsock.dll (AcceptEx, TransmitFile. WSARecEx and GetAcceptExSockaddrs) are - * declared in mswsock.h. These extensions are not supported on W9x or WinCE. - * However, code using WinSock 1.1 API may expect the declarations and - * associated defines to be in this header. Thus we include mswsock.h here. - * - * When linking against the WinSock 1.1 lib, wsock32.dll, the mswsock functions - * are automatically routed to mswsock.dll (on platforms with support). - * The WinSock 2 lib, ws2_32.dll, does not contain any references to - * the mswsock extensions. - */ - -#include - -#endif diff --git a/winsup/w32api/include/winsock2.h b/winsup/w32api/include/winsock2.h deleted file mode 100644 index 2aa008fd1..000000000 --- a/winsup/w32api/include/winsock2.h +++ /dev/null @@ -1,1187 +0,0 @@ -/* - - Definitions for winsock 2 - - Initially taken from the Wine project. - - Portions Copyright (c) 1980, 1983, 1988, 1993 - The Regents of the University of California. All rights reserved. - - Portions Copyright (c) 1993 by Digital Equipment Corporation. - */ - -#if !(defined _WINSOCK2_H || defined _WINSOCK_H) -#define _WINSOCK2_H -#define _WINSOCK_H /* to prevent later inclusion of winsock.h */ -#define _GNU_H_WINDOWS32_SOCKETS - -#include - -#ifdef __cplusplus -extern "C" { -#endif -/* Names common to Winsock1.1 and Winsock2 */ -#if !defined ( _BSDTYPES_DEFINED ) -/* also defined in gmon.h and in cygwin's sys/types */ -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; -typedef unsigned long u_long; -#define _BSDTYPES_DEFINED -#endif /* ! def _BSDTYPES_DEFINED */ -typedef u_int SOCKET; -#ifndef FD_SETSIZE -#define FD_SETSIZE 64 -#endif - -/* shutdown() how types */ -#define SD_RECEIVE 0x00 -#define SD_SEND 0x01 -#define SD_BOTH 0x02 - -#ifndef _SYS_TYPES_FD_SET -/* fd_set may be defined by the newlib - * if __USE_W32_SOCKETS not defined. - */ -#ifdef fd_set -#undef fd_set -#endif -typedef struct fd_set { - u_int fd_count; - SOCKET fd_array[FD_SETSIZE]; -} fd_set; -int PASCAL __WSAFDIsSet(SOCKET,fd_set*); -#ifndef FD_CLR -#define FD_CLR(fd,set) do { u_int __i;\ -for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\ - if (((fd_set *)(set))->fd_array[__i] == (fd)) {\ - while (__i < ((fd_set *)(set))->fd_count-1) {\ - ((fd_set*)(set))->fd_array[__i] = ((fd_set*)(set))->fd_array[__i+1];\ - __i++;\ - }\ - ((fd_set*)(set))->fd_count--;\ - break;\ - }\ -}\ -} while (0) -#endif -#ifndef FD_SET -/* this differs from the define in winsock.h and in cygwin sys/types.h */ -#define FD_SET(fd, set) do { u_int __i;\ -for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\ - if (((fd_set *)(set))->fd_array[__i] == (fd)) {\ - break;\ - }\ -}\ -if (__i == ((fd_set *)(set))->fd_count) {\ - if (((fd_set *)(set))->fd_count < FD_SETSIZE) {\ - ((fd_set *)(set))->fd_array[__i] = (fd);\ - ((fd_set *)(set))->fd_count++;\ - }\ -}\ -} while(0) -#endif -#ifndef FD_ZERO -#define FD_ZERO(set) (((fd_set *)(set))->fd_count=0) -#endif -#ifndef FD_ISSET -#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set *)(set)) -#endif -#elif !defined (USE_SYS_TYPES_FD_SET) -#warning "fd_set and associated macros have been defined in sys/types. \ - This may cause runtime problems with W32 sockets" -#endif /* ndef _SYS_TYPES_FD_SET */ -#if !(defined (__INSIDE_CYGWIN__) || (__INSIDE_MSYS__)) -struct timeval { - long tv_sec; - long tv_usec; -}; -struct hostent { - char *h_name; - char **h_aliases; - short h_addrtype; - short h_length; - char **h_addr_list; -#define h_addr h_addr_list[0] -}; -struct linger { - u_short l_onoff; - u_short l_linger; -}; -#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) -#define timercmp(tvp, uvp, cmp) \ - (((tvp)->tv_sec != (uvp)->tv_sec) ? \ - ((tvp)->tv_sec cmp (uvp)->tv_sec) : \ - ((tvp)->tv_usec cmp (uvp)->tv_usec)) -#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ -#define IOCPARM_MASK 0x7f -#define IOC_VOID 0x20000000 -#define IOC_OUT 0x40000000 -#define IOC_IN 0x80000000 -#define IOC_INOUT (IOC_IN|IOC_OUT) - -#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -#define _IO(x,y) (IOC_VOID|((x)<<8)|(y)) -#define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) -#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) -#define FIONBIO _IOW('f', 126, u_long) -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ - -#define FIONREAD _IOR('f', 127, u_long) -#define FIOASYNC _IOW('f', 125, u_long) -#define SIOCSHIWAT _IOW('s', 0, u_long) -#define SIOCGHIWAT _IOR('s', 1, u_long) -#define SIOCSLOWAT _IOW('s', 2, u_long) -#define SIOCGLOWAT _IOR('s', 3, u_long) -#define SIOCATMARK _IOR('s', 7, u_long) - -#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -struct netent { - char * n_name; - char **n_aliases; - short n_addrtype; - u_long n_net; -}; -struct servent { - char *s_name; - char **s_aliases; - short s_port; - char *s_proto; -}; -struct protoent { - char *p_name; - char **p_aliases; - short p_proto; -}; -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ - -#define IPPROTO_IP 0 -#define IPPROTO_ICMP 1 -#define IPPROTO_IGMP 2 -#define IPPROTO_GGP 3 -#define IPPROTO_TCP 6 -#define IPPROTO_PUP 12 -#define IPPROTO_UDP 17 -#define IPPROTO_IDP 22 -#define IPPROTO_ND 77 -#define IPPROTO_RAW 255 -#define IPPROTO_MAX 256 -#define IPPORT_ECHO 7 -#define IPPORT_DISCARD 9 -#define IPPORT_SYSTAT 11 -#define IPPORT_DAYTIME 13 -#define IPPORT_NETSTAT 15 -#define IPPORT_FTP 21 -#define IPPORT_TELNET 23 -#define IPPORT_SMTP 25 -#define IPPORT_TIMESERVER 37 -#define IPPORT_NAMESERVER 42 -#define IPPORT_WHOIS 43 -#define IPPORT_MTP 57 -#define IPPORT_TFTP 69 -#define IPPORT_RJE 77 -#define IPPORT_FINGER 79 -#define IPPORT_TTYLINK 87 -#define IPPORT_SUPDUP 95 -#define IPPORT_EXECSERVER 512 -#define IPPORT_LOGINSERVER 513 -#define IPPORT_CMDSERVER 514 -#define IPPORT_EFSSERVER 520 -#define IPPORT_BIFFUDP 512 -#define IPPORT_WHOSERVER 513 -#define IPPORT_ROUTESERVER 520 -#define IPPORT_RESERVED 1024 -#define IMPLINK_IP 155 -#define IMPLINK_LOWEXPER 156 -#define IMPLINK_HIGHEXPER 158 -struct in_addr { - union { - struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; - struct { u_short s_w1,s_w2; } S_un_w; - u_long S_addr; - } S_un; -#define s_addr S_un.S_addr -#define s_host S_un.S_un_b.s_b2 -#define s_net S_un.S_un_b.s_b1 -#define s_imp S_un.S_un_w.s_w2 -#define s_impno S_un.S_un_b.s_b4 -#define s_lh S_un.S_un_b.s_b3 -}; -#define IN_CLASSA(i) ((long)(i)&0x80000000) -#define IN_CLASSA_NET 0xff000000 -#define IN_CLASSA_NSHIFT 24 -#define IN_CLASSA_HOST 0x00ffffff -#define IN_CLASSA_MAX 128 -#define IN_CLASSB(i) (((long)(i)&0xc0000000)==0x80000000) -#define IN_CLASSB_NET 0xffff0000 -#define IN_CLASSB_NSHIFT 16 -#define IN_CLASSB_HOST 0x0000ffff -#define IN_CLASSB_MAX 65536 -#define IN_CLASSC(i) (((long)(i)&0xe0000000)==0xc0000000) -#define IN_CLASSC_NET 0xffffff00 -#define IN_CLASSC_NSHIFT 8 -#define IN_CLASSC_HOST 0xff -#define INADDR_ANY (u_long)0 -#define INADDR_LOOPBACK 0x7f000001 -#define INADDR_BROADCAST (u_long)0xffffffff -#define INADDR_NONE 0xffffffff -struct sockaddr_in { - short sin_family; - u_short sin_port; - struct in_addr sin_addr; - char sin_zero[8]; -}; -#define WSADESCRIPTION_LEN 256 -#define WSASYS_STATUS_LEN 128 -typedef struct WSAData { - WORD wVersion; - WORD wHighVersion; - char szDescription[WSADESCRIPTION_LEN+1]; - char szSystemStatus[WSASYS_STATUS_LEN+1]; - unsigned short iMaxSockets; - unsigned short iMaxUdpDg; - char * lpVendorInfo; -} WSADATA; -typedef WSADATA *LPWSADATA; - -#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -#define IP_OPTIONS 1 -#define SO_DEBUG 1 -#define SO_ACCEPTCONN 2 -#define SO_REUSEADDR 4 -#define SO_KEEPALIVE 8 -#define SO_DONTROUTE 16 -#define SO_BROADCAST 32 -#define SO_USELOOPBACK 64 -#define SO_LINGER 128 -#define SO_OOBINLINE 256 -#define SO_DONTLINGER (u_int)(~SO_LINGER) -#define SO_SNDBUF 0x1001 -#define SO_RCVBUF 0x1002 -#define SO_SNDLOWAT 0x1003 -#define SO_RCVLOWAT 0x1004 -#define SO_SNDTIMEO 0x1005 -#define SO_RCVTIMEO 0x1006 -#define SO_ERROR 0x1007 -#define SO_TYPE 0x1008 -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ - -#define INVALID_SOCKET (SOCKET)(~0) -#define SOCKET_ERROR (-1) -#define SOCK_STREAM 1 -#define SOCK_DGRAM 2 -#define SOCK_RAW 3 -#define SOCK_RDM 4 -#define SOCK_SEQPACKET 5 -#define TCP_NODELAY 0x0001 -#define AF_UNSPEC 0 -#define AF_UNIX 1 -#define AF_INET 2 -#define AF_IMPLINK 3 -#define AF_PUP 4 -#define AF_CHAOS 5 -#define AF_IPX 6 -#define AF_NS 6 -#define AF_ISO 7 -#define AF_OSI AF_ISO -#define AF_ECMA 8 -#define AF_DATAKIT 9 -#define AF_CCITT 10 -#define AF_SNA 11 -#define AF_DECnet 12 -#define AF_DLI 13 -#define AF_LAT 14 -#define AF_HYLINK 15 -#define AF_APPLETALK 16 -#define AF_NETBIOS 17 -#define AF_VOICEVIEW 18 -#define AF_FIREFOX 19 -#define AF_UNKNOWN1 20 -#define AF_BAN 21 -#define AF_ATM 22 -#define AF_INET6 23 -#define AF_CLUSTER 24 -#define AF_12844 25 -#define AF_IRDA 26 -#define AF_NETDES 28 -#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -#define AF_MAX 29 -struct sockaddr { - u_short sa_family; - char sa_data[14]; -}; -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ - -/* Portable IPv6/IPv4 version of sockaddr. - Uses padding to force 8 byte alignment - and maximum size of 128 bytes */ -struct sockaddr_storage { - short ss_family; - char __ss_pad1[6]; /* pad to 8 */ - long long __ss_align; /* force alignment */ - char __ss_pad2[112]; /* pad to 128 */ -}; - -struct sockproto { - u_short sp_family; - u_short sp_protocol; -}; -#define PF_UNSPEC AF_UNSPEC -#define PF_UNIX AF_UNIX -#define PF_INET AF_INET -#define PF_IMPLINK AF_IMPLINK -#define PF_PUP AF_PUP -#define PF_CHAOS AF_CHAOS -#define PF_NS AF_NS -#define PF_IPX AF_IPX -#define PF_ISO AF_ISO -#define PF_OSI AF_OSI -#define PF_ECMA AF_ECMA -#define PF_DATAKIT AF_DATAKIT -#define PF_CCITT AF_CCITT -#define PF_SNA AF_SNA -#define PF_DECnet AF_DECnet -#define PF_DLI AF_DLI -#define PF_LAT AF_LAT -#define PF_HYLINK AF_HYLINK -#define PF_APPLETALK AF_APPLETALK -#define PF_VOICEVIEW AF_VOICEVIEW -#define PF_FIREFOX AF_FIREFOX -#define PF_UNKNOWN1 AF_UNKNOWN1 -#define PF_BAN AF_BAN -#define PF_ATM AF_ATM -#define PF_INET6 AF_INET6 -#define PF_MAX AF_MAX -#define SOL_SOCKET 0xffff -#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -#define SOMAXCONN 0x7fffffff /* (5) in WinSock1.1 */ -#define MSG_OOB 1 -#define MSG_PEEK 2 -#define MSG_DONTROUTE 4 -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ -#define MSG_MAXIOVLEN 16 -#define MSG_PARTIAL 0x8000 -#define MAXGETHOSTSTRUCT 1024 - -#define FD_READ_BIT 0 -#define FD_READ (1 << FD_READ_BIT) -#define FD_WRITE_BIT 1 -#define FD_WRITE (1 << FD_WRITE_BIT) -#define FD_OOB_BIT 2 -#define FD_OOB (1 << FD_OOB_BIT) -#define FD_ACCEPT_BIT 3 -#define FD_ACCEPT (1 << FD_ACCEPT_BIT) -#define FD_CONNECT_BIT 4 -#define FD_CONNECT (1 << FD_CONNECT_BIT) -#define FD_CLOSE_BIT 5 -#define FD_CLOSE (1 << FD_CLOSE_BIT) -/* winsock1.1 defines stop at FD_CLOSE (32) */ -#define FD_QOS_BIT 6 -#define FD_QOS (1 << FD_QOS_BIT) -#define FD_GROUP_QOS_BIT 7 -#define FD_GROUP_QOS (1 << FD_GROUP_QOS_BIT) -#define FD_ROUTING_INTERFACE_CHANGE_BIT 8 -#define FD_ROUTING_INTERFACE_CHANGE (1 << FD_ROUTING_INTERFACE_CHANGE_BIT) -#define FD_ADDRESS_LIST_CHANGE_BIT 9 -#define FD_ADDRESS_LIST_CHANGE (1 << FD_ADDRESS_LIST_CHANGE_BIT) -#define FD_MAX_EVENTS 10 -#define FD_ALL_EVENTS ((1 << FD_MAX_EVENTS) - 1) - -#define WSABASEERR 10000 -#define WSAEINTR (WSABASEERR+4) -#define WSAEBADF (WSABASEERR+9) -#define WSAEACCES (WSABASEERR+13) -#define WSAEFAULT (WSABASEERR+14) -#define WSAEINVAL (WSABASEERR+22) -#define WSAEMFILE (WSABASEERR+24) -#define WSAEWOULDBLOCK (WSABASEERR+35) -#define WSAEINPROGRESS (WSABASEERR+36) /* deprecated on WinSock2 */ -#define WSAEALREADY (WSABASEERR+37) -#define WSAENOTSOCK (WSABASEERR+38) -#define WSAEDESTADDRREQ (WSABASEERR+39) -#define WSAEMSGSIZE (WSABASEERR+40) -#define WSAEPROTOTYPE (WSABASEERR+41) -#define WSAENOPROTOOPT (WSABASEERR+42) -#define WSAEPROTONOSUPPORT (WSABASEERR+43) -#define WSAESOCKTNOSUPPORT (WSABASEERR+44) -#define WSAEOPNOTSUPP (WSABASEERR+45) -#define WSAEPFNOSUPPORT (WSABASEERR+46) -#define WSAEAFNOSUPPORT (WSABASEERR+47) -#define WSAEADDRINUSE (WSABASEERR+48) -#define WSAEADDRNOTAVAIL (WSABASEERR+49) -#define WSAENETDOWN (WSABASEERR+50) -#define WSAENETUNREACH (WSABASEERR+51) -#define WSAENETRESET (WSABASEERR+52) -#define WSAECONNABORTED (WSABASEERR+53) -#define WSAECONNRESET (WSABASEERR+54) -#define WSAENOBUFS (WSABASEERR+55) -#define WSAEISCONN (WSABASEERR+56) -#define WSAENOTCONN (WSABASEERR+57) -#define WSAESHUTDOWN (WSABASEERR+58) -#define WSAETOOMANYREFS (WSABASEERR+59) -#define WSAETIMEDOUT (WSABASEERR+60) -#define WSAECONNREFUSED (WSABASEERR+61) -#define WSAELOOP (WSABASEERR+62) -#define WSAENAMETOOLONG (WSABASEERR+63) -#define WSAEHOSTDOWN (WSABASEERR+64) -#define WSAEHOSTUNREACH (WSABASEERR+65) -#define WSAENOTEMPTY (WSABASEERR+66) -#define WSAEPROCLIM (WSABASEERR+67) -#define WSAEUSERS (WSABASEERR+68) -#define WSAEDQUOT (WSABASEERR+69) -#define WSAESTALE (WSABASEERR+70) -#define WSAEREMOTE (WSABASEERR+71) -#define WSAEDISCON (WSABASEERR+101) -#define WSASYSNOTREADY (WSABASEERR+91) -#define WSAVERNOTSUPPORTED (WSABASEERR+92) -#define WSANOTINITIALISED (WSABASEERR+93) -#define WSAHOST_NOT_FOUND (WSABASEERR+1001) -#define WSATRY_AGAIN (WSABASEERR+1002) -#define WSANO_RECOVERY (WSABASEERR+1003) -#define WSANO_DATA (WSABASEERR+1004) -#define WSANO_ADDRESS WSANO_DATA -#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -#define h_errno WSAGetLastError() -#define HOST_NOT_FOUND WSAHOST_NOT_FOUND -#define TRY_AGAIN WSATRY_AGAIN -#define NO_RECOVERY WSANO_RECOVERY -#define NO_DATA WSANO_DATA -#define NO_ADDRESS WSANO_ADDRESS -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ -SOCKET PASCAL accept(SOCKET,struct sockaddr*,int*); -int PASCAL bind(SOCKET,const struct sockaddr*,int); -int PASCAL closesocket(SOCKET); -int PASCAL connect(SOCKET,const struct sockaddr*,int); -int PASCAL ioctlsocket(SOCKET,long,u_long *); -int PASCAL getpeername(SOCKET,struct sockaddr*,int*); -int PASCAL getsockname(SOCKET,struct sockaddr*,int*); -int PASCAL getsockopt(SOCKET,int,int,char*,int*); -unsigned long PASCAL inet_addr(const char*); -DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr); -int PASCAL listen(SOCKET,int); -int PASCAL recv(SOCKET,char*,int,int); -int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*); -int PASCAL send(SOCKET,const char*,int,int); -int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int); -int PASCAL setsockopt(SOCKET,int,int,const char*,int); -int PASCAL shutdown(SOCKET,int); -SOCKET PASCAL socket(int,int,int); -DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int); -DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*); -DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*); -DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*); -DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int); -DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*); -int PASCAL WSAStartup(WORD,LPWSADATA); -int PASCAL WSACleanup(void); -void PASCAL WSASetLastError(int); -int PASCAL WSAGetLastError(void); -/* - * Pesudo-blocking functions N/A in ws2_32.dll (use threads instead) - */ -#if 0 -BOOL PASCAL WSAIsBlocking(void); -int PASCAL WSAUnhookBlockingHook(void); -FARPROC PASCAL WSASetBlockingHook(FARPROC); -int PASCAL WSACancelBlockingCall(void); -#endif -HANDLE PASCAL WSAAsyncGetServByName(HWND,u_int,const char*,const char*,char*,int); -HANDLE PASCAL WSAAsyncGetServByPort(HWND,u_int,int,const char*,char*,int); -HANDLE PASCAL WSAAsyncGetProtoByName(HWND,u_int,const char*,char*,int); -HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND,u_int,int,char*,int); -HANDLE PASCAL WSAAsyncGetHostByName(HWND,u_int,const char*,char*,int); -HANDLE PASCAL WSAAsyncGetHostByAddr(HWND,u_int,const char*,int,int,char*,int); -int PASCAL WSACancelAsyncRequest(HANDLE); -int PASCAL WSAAsyncSelect(SOCKET,HWND,u_int,long); -#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__)) -u_long PASCAL htonl(u_long); -u_long PASCAL ntohl(u_long); -u_short PASCAL htons(u_short); -u_short PASCAL ntohs(u_short); -int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*); -int PASCAL gethostname(char*,int); -#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */ - -#define WSAMAKEASYNCREPLY(b,e) MAKELONG(b,e) -#define WSAMAKESELECTREPLY(e,error) MAKELONG(e,error) -#define WSAGETASYNCBUFLEN(l) LOWORD(l) -#define WSAGETASYNCERROR(l) HIWORD(l) -#define WSAGETSELECTEVENT(l) LOWORD(l) -#define WSAGETSELECTERROR(l) HIWORD(l) - -typedef struct sockaddr SOCKADDR; -typedef struct sockaddr *PSOCKADDR; -typedef struct sockaddr *LPSOCKADDR; -typedef struct sockaddr_storage SOCKADDR_STORAGE, *PSOCKADDR_STORAGE; -typedef struct sockaddr_in SOCKADDR_IN; -typedef struct sockaddr_in *PSOCKADDR_IN; -typedef struct sockaddr_in *LPSOCKADDR_IN; -typedef struct linger LINGER; -typedef struct linger *PLINGER; -typedef struct linger *LPLINGER; -typedef struct in_addr IN_ADDR; -typedef struct in_addr *PIN_ADDR; -typedef struct in_addr *LPIN_ADDR; -typedef struct fd_set FD_SET; -typedef struct fd_set *PFD_SET; -typedef struct fd_set *LPFD_SET; -typedef struct hostent HOSTENT; -typedef struct hostent *PHOSTENT; -typedef struct hostent *LPHOSTENT; -typedef struct servent SERVENT; -typedef struct servent *PSERVENT; -typedef struct servent *LPSERVENT; -typedef struct protoent PROTOENT; -typedef struct protoent *PPROTOENT; -typedef struct protoent *LPPROTOENT; -typedef struct timeval TIMEVAL; -typedef struct timeval *PTIMEVAL; -typedef struct timeval *LPTIMEVAL; - -/* winsock2 additions */ -#define ADDR_ANY INADDR_ANY - -#define IN_CLASSD(i) (((long)(i) & 0xf0000000) == 0xe0000000) -#define IN_CLASSD_NET 0xf0000000 -#define IN_CLASSD_NSHIFT 28 -#define IN_CLASSD_HOST 0x0fffffff -#define IN_MULTICAST(i) IN_CLASSD(i) - -#define FROM_PROTOCOL_INFO (-1) - -#define SO_DONTLINGER (u_int)(~SO_LINGER) -#define SO_GROUP_ID 0x2001 -#define SO_GROUP_PRIORITY 0x2002 -#define SO_MAX_MSG_SIZE 0x2003 -#define SO_PROTOCOL_INFOA 0x2004 -#define SO_PROTOCOL_INFOW 0x2005 -#ifdef UNICODE -#define SO_PROTOCOL_INFO SO_PROTOCOL_INFOW -#else -#define SO_PROTOCOL_INFO SO_PROTOCOL_INFOA -#endif -#define PVD_CONFIG 0x3001 - -#define MSG_INTERRUPT 0x10 -#define MSG_MAXIOVLEN 16 - -/* WinSock2 specific error codes */ -#define WSAEDISCON (WSABASEERR+101) -#define WSAENOMORE (WSABASEERR+102) -#define WSAECANCELLED (WSABASEERR+103) -#define WSAEINVALIDPROCTABLE (WSABASEERR+104) -#define WSAEINVALIDPROVIDER (WSABASEERR+105) -#define WSAEPROVIDERFAILEDINIT (WSABASEERR+106) -#define WSASYSCALLFAILURE (WSABASEERR+107) -#define WSASERVICE_NOT_FOUND (WSABASEERR+108) -#define WSATYPE_NOT_FOUND (WSABASEERR+109) -#define WSA_E_NO_MORE (WSABASEERR+110) -#define WSA_E_CANCELLED (WSABASEERR+111) -#define WSAEREFUSED (WSABASEERR+112) - -/* WS QualityofService errors */ -#define WSA_QOS_RECEIVERS (WSABASEERR + 1005) -#define WSA_QOS_SENDERS (WSABASEERR + 1006) -#define WSA_QOS_NO_SENDERS (WSABASEERR + 1007) -#define WSA_QOS_NO_RECEIVERS (WSABASEERR + 1008) -#define WSA_QOS_REQUEST_CONFIRMED (WSABASEERR + 1009) -#define WSA_QOS_ADMISSION_FAILURE (WSABASEERR + 1010) -#define WSA_QOS_POLICY_FAILURE (WSABASEERR + 1011) -#define WSA_QOS_BAD_STYLE (WSABASEERR + 1012) -#define WSA_QOS_BAD_OBJECT (WSABASEERR + 1013) -#define WSA_QOS_TRAFFIC_CTRL_ERROR (WSABASEERR + 1014) -#define WSA_QOS_GENERIC_ERROR (WSABASEERR + 1015) -#define WSA_QOS_ESERVICETYPE (WSABASEERR + 1016) -#define WSA_QOS_EFLOWSPEC (WSABASEERR + 1017) -#define WSA_QOS_EPROVSPECBUF (WSABASEERR + 1018) -#define WSA_QOS_EFILTERSTYLE (WSABASEERR + 1019) -#define WSA_QOS_EFILTERTYPE (WSABASEERR + 1020) -#define WSA_QOS_EFILTERCOUNT (WSABASEERR + 1021) -#define WSA_QOS_EOBJLENGTH (WSABASEERR + 1022) -#define WSA_QOS_EFLOWCOUNT (WSABASEERR + 1023) -#define WSA_QOS_EUNKOWNPSOBJ (WSABASEERR + 1024) -#define WSA_QOS_EPOLICYOBJ (WSABASEERR + 1025) -#define WSA_QOS_EFLOWDESC (WSABASEERR + 1026) -#define WSA_QOS_EPSFLOWSPEC (WSABASEERR + 1027) -#define WSA_QOS_EPSFILTERSPEC (WSABASEERR + 1028) -#define WSA_QOS_ESDMODEOBJ (WSABASEERR + 1029) -#define WSA_QOS_ESHAPERATEOBJ (WSABASEERR + 1030) -#define WSA_QOS_RESERVED_PETYPE (WSABASEERR + 1031) - - -#define WSAAPI WINAPI -#define WSAEVENT HANDLE -#define LPWSAEVENT LPHANDLE -#define WSAOVERLAPPED OVERLAPPED -typedef struct _OVERLAPPED *LPWSAOVERLAPPED; - -#define WSA_IO_PENDING (ERROR_IO_PENDING) -#define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE) -#define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE) -#define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER) -#define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY) -#define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED) - -#define WSA_INVALID_EVENT ((WSAEVENT)NULL) -#define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS) -#define WSA_WAIT_FAILED ((DWORD)-1L) -#define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0) -#define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION) -#define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT) -#define WSA_INFINITE (INFINITE) - -typedef struct _WSABUF { - unsigned long len; - char *buf; -} WSABUF, *LPWSABUF; - -typedef enum -{ - BestEffortService, - ControlledLoadService, - PredictiveService, - GuaranteedDelayService, - GuaranteedService -} GUARANTEE; - -typedef long int32; - -typedef struct _flowspec -{ - int32 TokenRate; - int32 TokenBucketSize; - int32 PeakBandwidth; - int32 Latency; - int32 DelayVariation; - GUARANTEE LevelOfGuarantee; - int32 CostOfCall; - int32 NetworkAvailability; -} FLOWSPEC, *LPFLOWSPEC; - -typedef struct _QualityOfService -{ - FLOWSPEC SendingFlowspec; - FLOWSPEC ReceivingFlowspec; - WSABUF ProviderSpecific; -} QOS, *LPQOS; - -#define CF_ACCEPT 0x0000 -#define CF_REJECT 0x0001 -#define CF_DEFER 0x0002 -#define SD_RECEIVE 0x00 -#define SD_SEND 0x01 -#define SD_BOTH 0x02 -typedef unsigned int GROUP; - -#define SG_UNCONSTRAINED_GROUP 0x01 -#define SG_CONSTRAINED_GROUP 0x02 -typedef struct _WSANETWORKEVENTS { - long lNetworkEvents; - int iErrorCode[FD_MAX_EVENTS]; -} WSANETWORKEVENTS, *LPWSANETWORKEVENTS; - -#define MAX_PROTOCOL_CHAIN 7 - -#define BASE_PROTOCOL 1 -#define LAYERED_PROTOCOL 0 - -typedef enum _WSAESETSERVICEOP -{ - RNRSERVICE_REGISTER=0, - RNRSERVICE_DEREGISTER, - RNRSERVICE_DELETE -} WSAESETSERVICEOP, *PWSAESETSERVICEOP, *LPWSAESETSERVICEOP; - -typedef struct _AFPROTOCOLS { - INT iAddressFamily; - INT iProtocol; -} AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS; - - -typedef enum _WSAEcomparator -{ - COMP_EQUAL = 0, - COMP_NOTLESS -} WSAECOMPARATOR, *PWSAECOMPARATOR, *LPWSAECOMPARATOR; - -typedef struct _WSAVersion -{ - DWORD dwVersion; - WSAECOMPARATOR ecHow; -} WSAVERSION, *PWSAVERSION, *LPWSAVERSION; - -/* - * FIXME: nspapi.h has definition of SOCKET_ADDRESS needed by - * SOCKET_ADDRESS_LIST and LPCSADDR_INFO, needed in WSAQuery - * but itself needs LPSOCKADDR which is defined earlier in this file - * Incuding nspapi.h here works for now, but may need to change - * as nspapi.h actually starts to define the Name Space Provider API. - * MSDN docs say that SOCKET_ADDRESS is defined in winsock2.h. - */ - -#include - -typedef struct _SOCKET_ADDRESS_LIST { - INT iAddressCount; - SOCKET_ADDRESS Address[1]; -} SOCKET_ADDRESS_LIST, * LPSOCKET_ADDRESS_LIST; - -#ifndef __BLOB_T_DEFINED /* also in wtypes.h */ -#define __BLOB_T_DEFINED -typedef struct _BLOB { - ULONG cbSize; - BYTE *pBlobData; -} BLOB,*PBLOB,*LPBLOB; -#endif - -typedef struct _WSAQuerySetA -{ - DWORD dwSize; - LPSTR lpszServiceInstanceName; - LPGUID lpServiceClassId; - LPWSAVERSION lpVersion; - LPSTR lpszComment; - DWORD dwNameSpace; - LPGUID lpNSProviderId; - LPSTR lpszContext; - DWORD dwNumberOfProtocols; - LPAFPROTOCOLS lpafpProtocols; - LPSTR lpszQueryString; - DWORD dwNumberOfCsAddrs; - LPCSADDR_INFO lpcsaBuffer; - DWORD dwOutputFlags; - LPBLOB lpBlob; -} WSAQUERYSETA, *PWSAQUERYSETA, *LPWSAQUERYSETA; - -typedef struct _WSAQuerySetW -{ - DWORD dwSize; - LPWSTR lpszServiceInstanceName; - LPGUID lpServiceClassId; - LPWSAVERSION lpVersion; - LPWSTR lpszComment; - DWORD dwNameSpace; - LPGUID lpNSProviderId; - LPWSTR lpszContext; - DWORD dwNumberOfProtocols; - LPAFPROTOCOLS lpafpProtocols; - LPWSTR lpszQueryString; - DWORD dwNumberOfCsAddrs; - LPCSADDR_INFO lpcsaBuffer; - DWORD dwOutputFlags; - LPBLOB lpBlob; -} WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW; - -#ifdef UNICODE -typedef WSAQUERYSETW WSAQUERYSET; -typedef PWSAQUERYSETW PWSAQUERYSET; -typedef LPWSAQUERYSETW LPWSAQUERYSET; -#else -typedef WSAQUERYSETA WSAQUERYSET; -typedef PWSAQUERYSETA PWSAQUERYSET; -typedef LPWSAQUERYSETA LPWSAQUERYSET; -#endif - -typedef struct _WSANSClassInfoA -{ - LPSTR lpszName; - DWORD dwNameSpace; - DWORD dwValueType; - DWORD dwValueSize; - LPVOID lpValue; -} WSANSCLASSINFOA, *PWSANSCLASSINFOA, *LPWSANSCLASSINFOA; - -typedef struct _WSANSClassInfoW -{ - LPWSTR lpszName; - DWORD dwNameSpace; - DWORD dwValueType; - DWORD dwValueSize; - LPVOID lpValue; -} WSANSCLASSINFOW, *PWSANSCLASSINFOW, *LPWSANSCLASSINFOW; - -#ifdef UNICODE -typedef WSANSCLASSINFOW WSANSCLASSINFO; -typedef PWSANSCLASSINFOW PWSANSCLASSINFO; -typedef LPWSANSCLASSINFOW LPWSANSCLASSINFO; -#else -typedef WSANSCLASSINFOA WSANSCLASSINFO; -typedef PWSANSCLASSINFOA PWSANSCLASSINFO; -typedef LPWSANSCLASSINFOA LPWSANSCLASSINFO; -#endif - -typedef struct _WSAServiceClassInfoA -{ - LPGUID lpServiceClassId; - LPSTR lpszServiceClassName; - DWORD dwCount; - LPWSANSCLASSINFOA lpClassInfos; -} WSASERVICECLASSINFOA, *PWSASERVICECLASSINFOA, *LPWSASERVICECLASSINFOA; - -typedef struct _WSAServiceClassInfoW -{ - LPGUID lpServiceClassId; - LPWSTR lpszServiceClassName; - DWORD dwCount; - LPWSANSCLASSINFOW lpClassInfos; -} WSASERVICECLASSINFOW, *PWSASERVICECLASSINFOW, *LPWSASERVICECLASSINFOW; - -#ifdef UNICODE -typedef WSASERVICECLASSINFOW WSASERVICECLASSINFO; -typedef PWSASERVICECLASSINFOW PWSASERVICECLASSINFO; -typedef LPWSASERVICECLASSINFOW LPWSASERVICECLASSINFO; -#else -typedef WSASERVICECLASSINFOA WSASERVICECLASSINFO; -typedef PWSASERVICECLASSINFOA PWSASERVICECLASSINFO; -typedef LPWSASERVICECLASSINFOA LPWSASERVICECLASSINFO; -#endif - -typedef struct _WSANAMESPACE_INFOA { - GUID NSProviderId; - DWORD dwNameSpace; - BOOL fActive; - DWORD dwVersion; - LPSTR lpszIdentifier; -} WSANAMESPACE_INFOA, *PWSANAMESPACE_INFOA, *LPWSANAMESPACE_INFOA; - -typedef struct _WSANAMESPACE_INFOW { - GUID NSProviderId; - DWORD dwNameSpace; - BOOL fActive; - DWORD dwVersion; - LPWSTR lpszIdentifier; -} WSANAMESPACE_INFOW, *PWSANAMESPACE_INFOW, *LPWSANAMESPACE_INFOW; - -#ifdef UNICODE -typedef WSANAMESPACE_INFOW WSANAMESPACE_INFO; -typedef PWSANAMESPACE_INFOW PWSANAMESPACE_INFO; -typedef LPWSANAMESPACE_INFOW LPWSANAMESPACE_INFO; -#else -typedef WSANAMESPACE_INFOA WSANAMESPACE_INFO; -typedef PWSANAMESPACE_INFOA PWSANAMESPACE_INFO; -typedef LPWSANAMESPACE_INFOA LPWSANAMESPACE_INFO; -#endif - -typedef struct _WSAPROTOCOLCHAIN { - int ChainLen; - DWORD ChainEntries[MAX_PROTOCOL_CHAIN]; -} WSAPROTOCOLCHAIN, *LPWSAPROTOCOLCHAIN; - -#define WSAPROTOCOL_LEN 255 - -typedef struct _WSAPROTOCOL_INFOA { - DWORD dwServiceFlags1; - DWORD dwServiceFlags2; - DWORD dwServiceFlags3; - DWORD dwServiceFlags4; - DWORD dwProviderFlags; - GUID ProviderId; - DWORD dwCatalogEntryId; - WSAPROTOCOLCHAIN ProtocolChain; - int iVersion; - int iAddressFamily; - int iMaxSockAddr; - int iMinSockAddr; - int iSocketType; - int iProtocol; - int iProtocolMaxOffset; - int iNetworkByteOrder; - int iSecurityScheme; - DWORD dwMessageSize; - DWORD dwProviderReserved; - CHAR szProtocol[WSAPROTOCOL_LEN+1]; -} WSAPROTOCOL_INFOA, *LPWSAPROTOCOL_INFOA; - -typedef struct _WSAPROTOCOL_INFOW { - DWORD dwServiceFlags1; - DWORD dwServiceFlags2; - DWORD dwServiceFlags3; - DWORD dwServiceFlags4; - DWORD dwProviderFlags; - GUID ProviderId; - DWORD dwCatalogEntryId; - WSAPROTOCOLCHAIN ProtocolChain; - int iVersion; - int iAddressFamily; - int iMaxSockAddr; - int iMinSockAddr; - int iSocketType; - int iProtocol; - int iProtocolMaxOffset; - int iNetworkByteOrder; - int iSecurityScheme; - DWORD dwMessageSize; - DWORD dwProviderReserved; - WCHAR szProtocol[WSAPROTOCOL_LEN+1]; -} WSAPROTOCOL_INFOW, * LPWSAPROTOCOL_INFOW; - -typedef int (CALLBACK *LPCONDITIONPROC)(LPWSABUF, LPWSABUF, LPQOS, LPQOS, LPWSABUF, LPWSABUF, GROUP *, DWORD); -typedef void (WINAPI *LPWSAOVERLAPPED_COMPLETION_ROUTINE)(DWORD, DWORD, LPWSAOVERLAPPED, DWORD); - - -#ifdef UNICODE -typedef WSAPROTOCOL_INFOW WSAPROTOCOL_INFO; -typedef LPWSAPROTOCOL_INFOW LPWSAPROTOCOL_INFO; -#else -typedef WSAPROTOCOL_INFOA WSAPROTOCOL_INFO; -typedef LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO; -#endif - -/* Needed for XP & .NET Server function WSANSPIoctl. */ -typedef enum _WSACOMPLETIONTYPE { - NSP_NOTIFY_IMMEDIATELY = 0, - NSP_NOTIFY_HWND, - NSP_NOTIFY_EVENT, - NSP_NOTIFY_PORT, - NSP_NOTIFY_APC -} WSACOMPLETIONTYPE, * PWSACOMPLETIONTYPE, * LPWSACOMPLETIONTYPE; -typedef struct _WSACOMPLETION { - WSACOMPLETIONTYPE Type; - union { - struct { - HWND hWnd; - UINT uMsg; - WPARAM context; - } WindowMessage; - struct { - LPWSAOVERLAPPED lpOverlapped; - } Event; - struct { - LPWSAOVERLAPPED lpOverlapped; - LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc; - } Apc; - struct { - LPWSAOVERLAPPED lpOverlapped; - HANDLE hPort; - ULONG_PTR Key; - } Port; - } Parameters; -} WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION; - -#define PFL_MULTIPLE_PROTO_ENTRIES 0x00000001 -#define PFL_RECOMMENDED_PROTO_ENTRY 0x00000002 -#define PFL_HIDDEN 0x00000004 -#define PFL_MATCHES_PROTOCOL_ZERO 0x00000008 -#define XP1_CONNECTIONLESS 0x00000001 -#define XP1_GUARANTEED_DELIVERY 0x00000002 -#define XP1_GUARANTEED_ORDER 0x00000004 -#define XP1_MESSAGE_ORIENTED 0x00000008 -#define XP1_PSEUDO_STREAM 0x00000010 -#define XP1_GRACEFUL_CLOSE 0x00000020 -#define XP1_EXPEDITED_DATA 0x00000040 -#define XP1_CONNECT_DATA 0x00000080 -#define XP1_DISCONNECT_DATA 0x00000100 -#define XP1_SUPPORT_BROADCAST 0x00000200 -#define XP1_SUPPORT_MULTIPOINT 0x00000400 -#define XP1_MULTIPOINT_CONTROL_PLANE 0x00000800 -#define XP1_MULTIPOINT_DATA_PLANE 0x00001000 -#define XP1_QOS_SUPPORTED 0x00002000 -#define XP1_INTERRUPT 0x00004000 -#define XP1_UNI_SEND 0x00008000 -#define XP1_UNI_RECV 0x00010000 -#define XP1_IFS_HANDLES 0x00020000 -#define XP1_PARTIAL_MESSAGE 0x00040000 - -#define BIGENDIAN 0x0000 -#define LITTLEENDIAN 0x0001 - -#define SECURITY_PROTOCOL_NONE 0x0000 -#define JL_SENDER_ONLY 0x01 -#define JL_RECEIVER_ONLY 0x02 -#define JL_BOTH 0x04 -#define WSA_FLAG_OVERLAPPED 0x01 -#define WSA_FLAG_MULTIPOINT_C_ROOT 0x02 -#define WSA_FLAG_MULTIPOINT_C_LEAF 0x04 -#define WSA_FLAG_MULTIPOINT_D_ROOT 0x08 -#define WSA_FLAG_MULTIPOINT_D_LEAF 0x10 -#define IOC_UNIX 0x00000000 -#define IOC_WS2 0x08000000 -#define IOC_PROTOCOL 0x10000000 -#define IOC_VENDOR 0x18000000 - -#define _WSAIO(x,y) (IOC_VOID|(x)|(y)) -#define _WSAIOR(x,y) (IOC_OUT|(x)|(y)) -#define _WSAIOW(x,y) (IOC_IN|(x)|(y)) -#define _WSAIORW(x,y) (IOC_INOUT|(x)|(y)) - -#define SIO_ASSOCIATE_HANDLE _WSAIOW(IOC_WS2,1) -#define SIO_ENABLE_CIRCULAR_QUEUEING _WSAIO(IOC_WS2,2) -#define SIO_FIND_ROUTE _WSAIOR(IOC_WS2,3) -#define SIO_FLUSH _WSAIO(IOC_WS2,4) -#define SIO_GET_BROADCAST_ADDRESS _WSAIOR(IOC_WS2,5) -#define SIO_GET_EXTENSION_FUNCTION_POINTER _WSAIORW(IOC_WS2,6) -#define SIO_GET_QOS _WSAIORW(IOC_WS2,7) -#define SIO_GET_GROUP_QOS _WSAIORW(IOC_WS2,8) -#define SIO_MULTIPOINT_LOOPBACK _WSAIOW(IOC_WS2,9) -#define SIO_MULTICAST_SCOPE _WSAIOW(IOC_WS2,10) -#define SIO_SET_QOS _WSAIOW(IOC_WS2,11) -#define SIO_SET_GROUP_QOS _WSAIOW(IOC_WS2,12) -#define SIO_TRANSLATE_HANDLE _WSAIORW(IOC_WS2,13) -#define SIO_ROUTING_INTERFACE_QUERY _WSAIORW(IOC_WS2,20) -#define SIO_ROUTING_INTERFACE_CHANGE _WSAIOW(IOC_WS2,21) -#define SIO_ADDRESS_LIST_QUERY _WSAIOR(IOC_WS2,22) -#define SIO_ADDRESS_LIST_CHANGE _WSAIO(IOC_WS2,23) -#define SIO_QUERY_TARGET_PNP_HANDLE _WSAIOR(IOC_WS2,24) -#define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25) - -#define TH_NETDEV 0x00000001 -#define TH_TAPI 0x00000002 - -SOCKET WINAPI WSAAccept(SOCKET, struct sockaddr *, LPINT, LPCONDITIONPROC, DWORD); -INT WINAPI WSAAddressToStringA(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD); -INT WINAPI WSAAddressToStringW(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD); -BOOL WINAPI WSACloseEvent(WSAEVENT); -int WINAPI WSAConnect(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS); -WSAEVENT WINAPI WSACreateEvent(void); -int WINAPI WSADuplicateSocketA(SOCKET, DWORD, LPWSAPROTOCOL_INFOA); -int WINAPI WSADuplicateSocketW(SOCKET, DWORD, LPWSAPROTOCOL_INFOW); -INT WINAPI WSAEnumNameSpaceProvidersA(LPDWORD, LPWSANAMESPACE_INFOA); -INT WINAPI WSAEnumNameSpaceProvidersW(LPDWORD, LPWSANAMESPACE_INFOW); -int WINAPI WSAEnumNetworkEvents(SOCKET, WSAEVENT, LPWSANETWORKEVENTS); -int WINAPI WSAEnumProtocolsA(LPINT, LPWSAPROTOCOL_INFOA, LPDWORD); -int WINAPI WSAEnumProtocolsW(LPINT, LPWSAPROTOCOL_INFOW, LPDWORD); -int WINAPI WSAEventSelect(SOCKET, WSAEVENT, long); -BOOL WINAPI WSAGetOverlappedResult(SOCKET, LPWSAOVERLAPPED, LPDWORD, BOOL, LPDWORD); -BOOL WINAPI WSAGetQOSByName(SOCKET, LPWSABUF, LPQOS); -INT WINAPI WSAGetServiceClassInfoA(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOA); -INT WINAPI WSAGetServiceClassInfoW(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOW); -INT WINAPI WSAGetServiceClassNameByClassIdA(LPGUID, LPSTR, LPDWORD); -INT WINAPI WSAGetServiceClassNameByClassIdW(LPGUID, LPWSTR, LPDWORD); -int WINAPI WSAHtonl(SOCKET, unsigned long, unsigned long *); -int WINAPI WSAHtons(SOCKET, unsigned short, unsigned short *); -INT WINAPI WSAInstallServiceClassA(LPWSASERVICECLASSINFOA); -INT WINAPI WSAInstallServiceClassW(LPWSASERVICECLASSINFOW); -int WINAPI WSAIoctl(SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); -SOCKET WINAPI WSAJoinLeaf(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD); -INT WINAPI WSALookupServiceBeginA(LPWSAQUERYSETA, DWORD, LPHANDLE); -INT WINAPI WSALookupServiceBeginW(LPWSAQUERYSETW lpqsRestrictions, DWORD, LPHANDLE); -INT WINAPI WSALookupServiceNextA(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETA); -INT WINAPI WSALookupServiceNextW(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETW); -INT WINAPI WSALookupServiceEnd(HANDLE); -int WINAPI WSANSPIoctl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION); /* XP or .NET Server */ -int WINAPI WSANtohl(SOCKET, unsigned long, unsigned long *); -int WINAPI WSANtohs(SOCKET, unsigned short, unsigned short *); -int WINAPI WSARecv(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); -int WINAPI WSARecvDisconnect(SOCKET, LPWSABUF); -int WINAPI WSARecvFrom(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, struct sockaddr *, LPINT, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); -INT WINAPI WSARemoveServiceClass(LPGUID); -BOOL WINAPI WSAResetEvent(WSAEVENT); -int WINAPI WSASend(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); -int WINAPI WSASendDisconnect(SOCKET, LPWSABUF); -int WINAPI WSASendTo(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, const struct sockaddr *, int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); -BOOL WINAPI WSASetEvent(WSAEVENT); -INT WSAAPI WSASetServiceA(LPWSAQUERYSETA, WSAESETSERVICEOP, DWORD); -INT WINAPI WSASetServiceW(LPWSAQUERYSETW, WSAESETSERVICEOP, DWORD); -SOCKET WINAPI WSASocketA(int, int, int, LPWSAPROTOCOL_INFOA, GROUP, DWORD); -SOCKET WINAPI WSASocketW(int, int, int, LPWSAPROTOCOL_INFOW, GROUP, DWORD); -INT WINAPI WSAStringToAddressA(LPSTR, INT, LPWSAPROTOCOL_INFOA, LPSOCKADDR, LPINT); -INT WINAPI WSAStringToAddressW(LPWSTR, INT, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPINT); -DWORD WINAPI WSAWaitForMultipleEvents(DWORD, const WSAEVENT *, BOOL, DWORD, BOOL); -typedef SOCKET (WINAPI *LPFN_WSAACCEPT)(SOCKET, struct sockaddr *, LPINT, LPCONDITIONPROC, DWORD); -typedef INT (WINAPI *LPFN_WSAADDRESSTOSTRINGA)(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD); -typedef INT (WINAPI *LPFN_WSAADDRESSTOSTRINGW)(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD); -typedef BOOL (WINAPI *LPFN_WSACLOSEEVENT)(WSAEVENT); -typedef int (WINAPI *LPFN_WSACONNECT)(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS); -typedef WSAEVENT (WINAPI *LPFN_WSACREATEEVENT)(void); -typedef int (WINAPI *LPFN_WSADUPLICATESOCKETA)(SOCKET, DWORD, LPWSAPROTOCOL_INFOA); -typedef int (WINAPI *LPFN_WSADUPLICATESOCKETW)(SOCKET, DWORD, LPWSAPROTOCOL_INFOW); -typedef INT (WINAPI *LPFN_WSAENUMNAMESPACEPROVIDERSA)(LPDWORD, LPWSANAMESPACE_INFOA); -typedef INT (WINAPI *LPFN_WSAENUMNAMESPACEPROVIDERSW)(LPDWORD, LPWSANAMESPACE_INFOW); -typedef int (WINAPI *LPFN_WSAENUMNETWORKEVENTS)(SOCKET, WSAEVENT, LPWSANETWORKEVENTS); -typedef int (WINAPI *LPFN_WSAENUMPROTOCOLSA)(LPINT, LPWSAPROTOCOL_INFOA, LPDWORD); -typedef int (WINAPI *LPFN_WSAENUMPROTOCOLSW)(LPINT, LPWSAPROTOCOL_INFOW, LPDWORD); -typedef int (WINAPI *LPFN_WSAEVENTSELECT)(SOCKET, WSAEVENT, long); -typedef BOOL (WINAPI *LPFN_WSAGETOVERLAPPEDRESULT)(SOCKET, LPWSAOVERLAPPED, LPDWORD, BOOL, LPDWORD); -typedef BOOL (WINAPI *LPFN_WSAGETQOSBYNAME)(SOCKET, LPWSABUF, LPQOS); -typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSINFOA)(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOA); -typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSINFOW)(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOW); -typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA)(LPGUID, LPSTR, LPDWORD); -typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW)(LPGUID, LPWSTR, LPDWORD); -typedef int (WINAPI *LPFN_WSAHTONL)(SOCKET, unsigned long, unsigned long *); -typedef int (WINAPI *LPFN_WSAHTONS)(SOCKET, unsigned short, unsigned short *); -typedef INT (WINAPI *LPFN_WSAINSTALLSERVICECLASSA)(LPWSASERVICECLASSINFOA); -typedef INT (WINAPI *LPFN_WSAINSTALLSERVICECLASSW)(LPWSASERVICECLASSINFOW); -typedef int (WINAPI *LPFN_WSAIOCTL)(SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); -typedef SOCKET (WINAPI *LPFN_WSAJOINLEAF)(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD); -typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEBEGINA)(LPWSAQUERYSETA, DWORD, LPHANDLE); -typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEBEGINW)(LPWSAQUERYSETW, DWORD, LPHANDLE); -typedef INT (WINAPI *LPFN_WSALOOKUPSERVICENEXTA)(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETA); -typedef INT (WINAPI *LPFN_WSALOOKUPSERVICENEXTW)(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETW); -typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEEND)(HANDLE); -typedef int (WINAPI *LPFN_WSANSPIoctl)(HANDLE, DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION); -typedef int (WINAPI *LPFN_WSANTOHL)(SOCKET, unsigned long, unsigned long *); -typedef int (WINAPI *LPFN_WSANTOHS)(SOCKET, unsigned short, unsigned short *); -typedef int (WINAPI *LPFN_WSARECV)(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); -typedef int (WINAPI *LPFN_WSARECVDISCONNECT)(SOCKET, LPWSABUF); -typedef int (WINAPI *LPFN_WSARECVFROM)(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, struct sockaddr *, LPINT, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); -typedef INT (WINAPI *LPFN_WSAREMOVESERVICECLASS)(LPGUID); -typedef BOOL (WINAPI *LPFN_WSARESETEVENT)(WSAEVENT); -typedef int (WINAPI *LPFN_WSASEND)(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); -typedef int (WINAPI *LPFN_WSASENDDISCONNECT)(SOCKET, LPWSABUF); -typedef int (WINAPI *LPFN_WSASENDTO)(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, const struct sockaddr *, int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE); -typedef BOOL (WINAPI *LPFN_WSASETEVENT)(WSAEVENT); -typedef INT (WINAPI *LPFN_WSASETSERVICEA)(LPWSAQUERYSETA, WSAESETSERVICEOP, DWORD); -typedef INT (WINAPI *LPFN_WSASETSERVICEW)(LPWSAQUERYSETW, WSAESETSERVICEOP, DWORD); -typedef SOCKET (WINAPI *LPFN_WSASOCKETA)(int, int, int, LPWSAPROTOCOL_INFOA, GROUP, DWORD); -typedef SOCKET (WINAPI *LPFN_WSASOCKETW)(int, int, int, LPWSAPROTOCOL_INFOW, GROUP, DWORD); -typedef INT (WINAPI *LPFN_WSASTRINGTOADDRESSA)(LPSTR, INT, LPWSAPROTOCOL_INFOA, LPSOCKADDR, LPINT); -typedef INT (WINAPI *LPFN_WSASTRINGTOADDRESSW)(LPWSTR, INT, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPINT); -typedef DWORD (WINAPI *LPFN_WSAWAITFORMULTIPLEEVENTS)(DWORD, const WSAEVENT *, BOOL, DWORD, BOOL); - -#ifdef UNICODE -#define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGW -#define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETW -#define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW -#define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSW -#define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOW -#define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW -#define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSW -#define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINW -#define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTW -#define LPFN_WSASETSERVICE LPFN_WSASETSERVICEW -#define LPFN_WSASOCKET LPFN_WSASOCKETW -#define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSW -#define WSAAddressToString WSAAddressToStringW -#define WSADuplicateSocket WSADuplicateSocketW -#define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersW -#define WSAEnumProtocols WSAEnumProtocolsW -#define WSAGetServiceClassInfo WSAGetServiceClassInfoW -#define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdW -#define WSASetService WSASetServiceW -#define WSASocket WSASocketW -#define WSAStringToAddress WSAStringToAddressW -#define WSALookupServiceBegin WSALookupServiceBeginW -#define WSALookupServiceNext WSALookupServiceNextW -#define WSAInstallServiceClass WSAInstallServiceClassW -#else -#define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGA -#define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETW -#define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSA -#define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSA -#define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOA -#define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA -#define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSA -#define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINA -#define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTA -#define LPFN_WSASETSERVICE LPFN_WSASETSERVICEA -#define LPFN_WSASOCKET LPFN_WSASOCKETA -#define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSA -#define WSAAddressToString WSAAddressToStringA -#define WSADuplicateSocket WSADuplicateSocketA -#define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersA -#define WSAEnumProtocols WSAEnumProtocolsA -#define WSAGetServiceClassInfo WSAGetServiceClassInfoA -#define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdA -#define WSAInstallServiceClass WSAInstallServiceClassA -#define WSALookupServiceBegin WSALookupServiceBeginA -#define WSALookupServiceNext WSALookupServiceNextA -#define WSASocket WSASocketA -#define WSAStringToAddress WSAStringToAddressA -#define WSASetService WSASetServiceA -#endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/winspool.h b/winsup/w32api/include/winspool.h deleted file mode 100644 index b4a909e90..000000000 --- a/winsup/w32api/include/winspool.h +++ /dev/null @@ -1,778 +0,0 @@ -#ifndef _WINSPOOL_H -#define _WINSPOOL_H -#ifdef __cplusplus -extern "C" { -#endif -#define DI_CHANNEL 1 -#define DI_CHANNEL_WRITE 2 -#define DI_READ_SPOOL_JOB 3 -#define FORM_BUILTIN 1 -#define JOB_CONTROL_PAUSE 1 -#define JOB_CONTROL_RESUME 2 -#define JOB_CONTROL_CANCEL 3 -#define JOB_CONTROL_RESTART 4 -#define JOB_CONTROL_DELETE 5 -#define JOB_STATUS_PAUSED 1 -#define JOB_STATUS_ERROR 2 -#define JOB_STATUS_DELETING 4 -#define JOB_STATUS_SPOOLING 8 -#define JOB_STATUS_PRINTING 16 -#define JOB_STATUS_OFFLINE 32 -#define JOB_STATUS_PAPEROUT 0x40 -#define JOB_STATUS_PRINTED 0x80 -#define JOB_STATUS_DELETED 0x100 -#define JOB_STATUS_BLOCKED_DEVQ 0x200 -#define JOB_STATUS_USER_INTERVENTION 0x400 -#define JOB_POSITION_UNSPECIFIED 0 -#define JOB_NOTIFY_TYPE 1 -#define JOB_NOTIFY_FIELD_PRINTER_NAME 0 -#define JOB_NOTIFY_FIELD_MACHINE_NAME 1 -#define JOB_NOTIFY_FIELD_PORT_NAME 2 -#define JOB_NOTIFY_FIELD_USER_NAME 3 -#define JOB_NOTIFY_FIELD_NOTIFY_NAME 4 -#define JOB_NOTIFY_FIELD_DATATYPE 5 -#define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 6 -#define JOB_NOTIFY_FIELD_PARAMETERS 7 -#define JOB_NOTIFY_FIELD_DRIVER_NAME 8 -#define JOB_NOTIFY_FIELD_DEVMODE 9 -#define JOB_NOTIFY_FIELD_STATUS 10 -#define JOB_NOTIFY_FIELD_STATUS_STRING 11 -#define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 12 -#define JOB_NOTIFY_FIELD_DOCUMENT 13 -#define JOB_NOTIFY_FIELD_PRIORITY 14 -#define JOB_NOTIFY_FIELD_POSITION 15 -#define JOB_NOTIFY_FIELD_SUBMITTED 16 -#define JOB_NOTIFY_FIELD_START_TIME 17 -#define JOB_NOTIFY_FIELD_UNTIL_TIME 18 -#define JOB_NOTIFY_FIELD_TIME 19 -#define JOB_NOTIFY_FIELD_TOTAL_PAGES 20 -#define JOB_NOTIFY_FIELD_PAGES_PRINTED 21 -#define JOB_NOTIFY_FIELD_TOTAL_BYTES 22 -#define JOB_NOTIFY_FIELD_BYTES_PRINTED 23 -#define JOB_ACCESS_ADMINISTER 16 -#define JOB_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|JOB_ACCESS_ADMINISTER) -#define JOB_READ (STANDARD_RIGHTS_READ| JOB_ACCESS_ADMINISTER) -#define JOB_WRITE (STANDARD_RIGHTS_WRITE|JOB_ACCESS_ADMINISTER) -#define JOB_EXECUTE (STANDARD_RIGHTS_EXECUTE|JOB_ACCESS_ADMINISTER) -#define PRINTER_NOTIFY_OPTIONS_REFRESH 1 -#define PRINTER_ACCESS_ADMINISTER 4 -#define PRINTER_ACCESS_USE 8 -#define PRINTER_ERROR_INFORMATION 0x80000000 -#define PRINTER_ERROR_WARNING 0x40000000 -#define PRINTER_ERROR_SEVERE 0x20000000 -#define PRINTER_ERROR_OUTOFPAPER 1 -#define PRINTER_ERROR_JAM 2 -#define PRINTER_ERROR_OUTOFTONER 4 -#define PRINTER_CONTROL_PAUSE 1 -#define PRINTER_CONTROL_RESUME 2 -#define PRINTER_CONTROL_PURGE 3 -#define PRINTER_CONTROL_SET_STATUS 4 -#define PRINTER_STATUS_PAUSED 1 -#define PRINTER_STATUS_ERROR 2 -#define PRINTER_STATUS_PENDING_DELETION 4 -#define PRINTER_STATUS_PAPER_JAM 8 -#define PRINTER_STATUS_PAPER_OUT 0x10 -#define PRINTER_STATUS_MANUAL_FEED 0x20 -#define PRINTER_STATUS_PAPER_PROBLEM 0x40 -#define PRINTER_STATUS_OFFLINE 0x80 -#define PRINTER_STATUS_IO_ACTIVE 0x100 -#define PRINTER_STATUS_BUSY 0x200 -#define PRINTER_STATUS_PRINTING 0x400 -#define PRINTER_STATUS_OUTPUT_BIN_FULL 0x800 -#define PRINTER_STATUS_NOT_AVAILABLE 0x1000 -#define PRINTER_STATUS_WAITING 0x2000 -#define PRINTER_STATUS_PROCESSING 0x4000 -#define PRINTER_STATUS_INITIALIZING 0x8000 -#define PRINTER_STATUS_WARMING_UP 0x10000 -#define PRINTER_STATUS_TONER_LOW 0x20000 -#define PRINTER_STATUS_NO_TONER 0x40000 -#define PRINTER_STATUS_PAGE_PUNT 0x80000 -#define PRINTER_STATUS_USER_INTERVENTION 0x100000 -#define PRINTER_STATUS_OUT_OF_MEMORY 0x200000 -#define PRINTER_STATUS_DOOR_OPEN 0x400000 -#define PRINTER_STATUS_SERVER_UNKNOWN 0x800000 -#define PRINTER_STATUS_POWER_SAVE 0x1000000 -#define PRINTER_ATTRIBUTE_QUEUED 1 -#define PRINTER_ATTRIBUTE_DIRECT 2 -#define PRINTER_ATTRIBUTE_DEFAULT 4 -#define PRINTER_ATTRIBUTE_SHARED 8 -#define PRINTER_ATTRIBUTE_NETWORK 0x10 -#define PRINTER_ATTRIBUTE_HIDDEN 0x20 -#define PRINTER_ATTRIBUTE_LOCAL 0x40 -#define PRINTER_ATTRIBUTE_ENABLE_DEVQ 0x80 -#define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS 0x100 -#define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x200 -#define PRINTER_ATTRIBUTE_WORK_OFFLINE 0x400 -#define PRINTER_ATTRIBUTE_ENABLE_BIDI 0x800 -#define PRINTER_ATTRIBUTE_RAW_ONLY 0x1000 -#define PRINTER_ATTRIBUTE_PUBLISHED 0x2000 -#define PRINTER_ENUM_DEFAULT 1 -#define PRINTER_ENUM_LOCAL 2 -#define PRINTER_ENUM_CONNECTIONS 4 -#define PRINTER_ENUM_FAVORITE 4 -#define PRINTER_ENUM_NAME 8 -#define PRINTER_ENUM_REMOTE 16 -#define PRINTER_ENUM_SHARED 32 -#define PRINTER_ENUM_NETWORK 0x40 -#define PRINTER_ENUM_EXPAND 0x4000 -#define PRINTER_ENUM_CONTAINER 0x8000 -#define PRINTER_ENUM_ICONMASK 0xff0000 -#define PRINTER_ENUM_ICON1 0x10000 -#define PRINTER_ENUM_ICON2 0x20000 -#define PRINTER_ENUM_ICON3 0x40000 -#define PRINTER_ENUM_ICON4 0x80000 -#define PRINTER_ENUM_ICON5 0x100000 -#define PRINTER_ENUM_ICON6 0x200000 -#define PRINTER_ENUM_ICON7 0x400000 -#define PRINTER_ENUM_ICON8 0x800000 -#define PRINTER_NOTIFY_TYPE 0 -#define PRINTER_NOTIFY_FIELD_SERVER_NAME 0 -#define PRINTER_NOTIFY_FIELD_PRINTER_NAME 1 -#define PRINTER_NOTIFY_FIELD_SHARE_NAME 2 -#define PRINTER_NOTIFY_FIELD_PORT_NAME 3 -#define PRINTER_NOTIFY_FIELD_DRIVER_NAME 4 -#define PRINTER_NOTIFY_FIELD_COMMENT 5 -#define PRINTER_NOTIFY_FIELD_LOCATION 6 -#define PRINTER_NOTIFY_FIELD_DEVMODE 7 -#define PRINTER_NOTIFY_FIELD_SEPFILE 8 -#define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 9 -#define PRINTER_NOTIFY_FIELD_PARAMETERS 10 -#define PRINTER_NOTIFY_FIELD_DATATYPE 11 -#define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 12 -#define PRINTER_NOTIFY_FIELD_ATTRIBUTES 13 -#define PRINTER_NOTIFY_FIELD_PRIORITY 14 -#define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 15 -#define PRINTER_NOTIFY_FIELD_START_TIME 16 -#define PRINTER_NOTIFY_FIELD_UNTIL_TIME 17 -#define PRINTER_NOTIFY_FIELD_STATUS 18 -#define PRINTER_NOTIFY_FIELD_STATUS_STRING 19 -#define PRINTER_NOTIFY_FIELD_CJOBS 20 -#define PRINTER_NOTIFY_FIELD_AVERAGE_PPM 21 -#define PRINTER_NOTIFY_FIELD_TOTAL_PAGES 22 -#define PRINTER_NOTIFY_FIELD_PAGES_PRINTED 23 -#define PRINTER_NOTIFY_FIELD_TOTAL_BYTES 24 -#define PRINTER_NOTIFY_FIELD_BYTES_PRINTED 25 -#define PRINTER_CHANGE_ADD_PRINTER 1 -#define PRINTER_CHANGE_SET_PRINTER 2 -#define PRINTER_CHANGE_DELETE_PRINTER 4 -#define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 8 -#define PRINTER_CHANGE_PRINTER 0xFF -#define PRINTER_CHANGE_ADD_JOB 0x100 -#define PRINTER_CHANGE_SET_JOB 0x200 -#define PRINTER_CHANGE_DELETE_JOB 0x400 -#define PRINTER_CHANGE_WRITE_JOB 0x800 -#define PRINTER_CHANGE_JOB 0xFF00 -#define PRINTER_CHANGE_ADD_FORM 0x10000 -#define PRINTER_CHANGE_SET_FORM 0x20000 -#define PRINTER_CHANGE_DELETE_FORM 0x40000 -#define PRINTER_CHANGE_FORM 0x70000 -#define PRINTER_CHANGE_ADD_PORT 0x100000 -#define PRINTER_CHANGE_CONFIGURE_PORT 0x200000 -#define PRINTER_CHANGE_DELETE_PORT 0x400000 -#define PRINTER_CHANGE_PORT 0x700000 -#define PRINTER_CHANGE_ADD_PRINT_PROCESSOR 0x1000000 -#define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR 0x4000000 -#define PRINTER_CHANGE_PRINT_PROCESSOR 0x7000000 -#define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000 -#define PRINTER_CHANGE_SET_PRINTER_DRIVER 0x20000000 -#define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000 -#define PRINTER_CHANGE_PRINTER_DRIVER 0x70000000 -#define PRINTER_CHANGE_TIMEOUT 0x80000000 -#define PRINTER_CHANGE_ALL 0x7777FFFF -#define PRINTER_NOTIFY_INFO_DISCARDED 1 -#define PRINTER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|PRINTER_ACCESS_ADMINISTER|PRINTER_ACCESS_USE) -#define PRINTER_READ (STANDARD_RIGHTS_READ|PRINTER_ACCESS_USE) -#define PRINTER_WRITE (STANDARD_RIGHTS_WRITE|PRINTER_ACCESS_USE) -#define PRINTER_EXECUTE (STANDARD_RIGHTS_EXECUTE|PRINTER_ACCESS_USE) -#define NO_PRIORITY 0 -#define MAX_PRIORITY 99 -#define MIN_PRIORITY 1 -#define DEF_PRIORITY 1 -#define PORT_TYPE_WRITE 1 -#define PORT_TYPE_READ 2 -#define PORT_TYPE_REDIRECTED 4 -#define PORT_TYPE_NET_ATTACHED 8 -#define SERVER_ACCESS_ADMINISTER 1 -#define SERVER_ACCESS_ENUMERATE 2 -#define SERVER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE) -#define SERVER_READ (STANDARD_RIGHTS_READ|SERVER_ACCESS_ENUMERATE) -#define SERVER_WRITE (STANDARD_RIGHTS_WRITE|SERVER_ACCESS_ADMINISTER|SERVER_ACCESS_ENUMERATE) -#define SERVER_EXECUTE (STANDARD_RIGHTS_EXECUTE|SERVER_ACCESS_ENUMERATE) -#define PORT_STATUS_TYPE_ERROR 1 -#define PORT_STATUS_TYPE_WARNING 2 -#define PORT_STATUS_TYPE_INFO 3 -#define PORT_STATUS_OFFLINE 1 -#define PORT_STATUS_PAPER_JAM 2 -#define PORT_STATUS_PAPER_OUT 3 -#define PORT_STATUS_OUTPUT_BIN_FULL 4 -#define PORT_STATUS_PAPER_PROBLEM 5 -#define PORT_STATUS_NO_TONER 6 -#define PORT_STATUS_DOOR_OPEN 7 -#define PORT_STATUS_USER_INTERVENTION 8 -#define PORT_STATUS_OUT_OF_MEMORY 9 -#define PORT_STATUS_TONER_LOW 10 -#define PORT_STATUS_WARMING_UP 11 -#define PORT_STATUS_POWER_SAVE 12 -#ifndef RC_INVOKED -typedef struct _ADDJOB_INFO_1A { - LPSTR Path; - DWORD JobId; -} ADDJOB_INFO_1A,*PADDJOB_INFO_1A,*LPADDJOB_INFO_1A; -typedef struct _ADDJOB_INFO_1W { - LPWSTR Path; - DWORD JobId; -} ADDJOB_INFO_1W,*PADDJOB_INFO_1W,*LPADDJOB_INFO_1W; -typedef struct _DATATYPES_INFO_1A{LPSTR pName;} DATATYPES_INFO_1A,*PDATATYPES_INFO_1A,*LPDATATYPES_INFO_1A; -typedef struct _DATATYPES_INFO_1W{LPWSTR pName;} DATATYPES_INFO_1W,*PDATATYPES_INFO_1W,*LPDATATYPES_INFO_1W; -typedef struct _JOB_INFO_1A { - DWORD JobId; - LPSTR pPrinterName; - LPSTR pMachineName; - LPSTR pUserName; - LPSTR pDocument; - LPSTR pDatatype; - LPSTR pStatus; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD TotalPages; - DWORD PagesPrinted; - SYSTEMTIME Submitted; -} JOB_INFO_1A,*PJOB_INFO_1A,*LPJOB_INFO_1A; -typedef struct _JOB_INFO_1W { - DWORD JobId; - LPWSTR pPrinterName; - LPWSTR pMachineName; - LPWSTR pUserName; - LPWSTR pDocument; - LPWSTR pDatatype; - LPWSTR pStatus; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD TotalPages; - DWORD PagesPrinted; - SYSTEMTIME Submitted; -} JOB_INFO_1W,*PJOB_INFO_1W,*LPJOB_INFO_1W; -typedef struct _JOB_INFO_2A { - DWORD JobId; - LPSTR pPrinterName; - LPSTR pMachineName; - LPSTR pUserName; - LPSTR pDocument; - LPSTR pNotifyName; - LPSTR pDatatype; - LPSTR pPrintProcessor; - LPSTR pParameters; - LPSTR pDriverName; - LPDEVMODEA pDevMode; - LPSTR pStatus; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD StartTime; - DWORD UntilTime; - DWORD TotalPages; - DWORD Size; - SYSTEMTIME Submitted; - DWORD Time; - DWORD PagesPrinted; -} JOB_INFO_2A,*PJOB_INFO_2A,*LPJOB_INFO_2A; -typedef struct _JOB_INFO_2W { - DWORD JobId; - LPWSTR pPrinterName; - LPWSTR pMachineName; - LPWSTR pUserName; - LPWSTR pDocument; - LPWSTR pNotifyName; - LPWSTR pDatatype; - LPWSTR pPrintProcessor; - LPWSTR pParameters; - LPWSTR pDriverName; - LPDEVMODEW pDevMode; - LPWSTR pStatus; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Status; - DWORD Priority; - DWORD Position; - DWORD StartTime; - DWORD UntilTime; - DWORD TotalPages; - DWORD Size; - SYSTEMTIME Submitted; - DWORD Time; - DWORD PagesPrinted; -} JOB_INFO_2W,*PJOB_INFO_2W,*LPJOB_INFO_2W; -typedef struct _DOC_INFO_1A { - LPSTR pDocName; - LPSTR pOutputFile; - LPSTR pDatatype; -} DOC_INFO_1A,*PDOC_INFO_1A,*LPDOC_INFO_1A; -typedef struct _DOC_INFO_1W { - LPWSTR pDocName; - LPWSTR pOutputFile; - LPWSTR pDatatype; -} DOC_INFO_1W,*PDOC_INFO_1W,*LPDOC_INFO_1W; -typedef struct _DOC_INFO_2A { - LPSTR pDocName; - LPSTR pOutputFile; - LPSTR pDatatype; - DWORD dwMode; - DWORD JobId; -} DOC_INFO_2A,*PDOC_INFO_2A,*LPDOC_INFO_2A; -typedef struct _DOC_INFO_2W { - LPWSTR pDocName; - LPWSTR pOutputFile; - LPWSTR pDatatype; - DWORD dwMode; - DWORD JobId; -} DOC_INFO_2W,*PDOC_INFO_2W,*LPDOC_INFO_2W; -typedef struct _DRIVER_INFO_1A {LPSTR pName;} DRIVER_INFO_1A,*PDRIVER_INFO_1A,*LPDRIVER_INFO_1A; -typedef struct _DRIVER_INFO_1W {LPWSTR pName;} DRIVER_INFO_1W,*PDRIVER_INFO_1W,*LPDRIVER_INFO_1W; -typedef struct _DRIVER_INFO_2A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; -} DRIVER_INFO_2A,*PDRIVER_INFO_2A,*LPDRIVER_INFO_2A; -typedef struct _DRIVER_INFO_2W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; -} DRIVER_INFO_2W,*PDRIVER_INFO_2W,*LPDRIVER_INFO_2W; -typedef struct _DRIVER_INFO_3A { - DWORD cVersion; - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDriverPath; - LPSTR pDataFile; - LPSTR pConfigFile; - LPSTR pHelpFile; - LPSTR pDependentFiles; - LPSTR pMonitorName; - LPSTR pDefaultDataType; -} DRIVER_INFO_3A,*PDRIVER_INFO_3A,*LPDRIVER_INFO_3A; -typedef struct _DRIVER_INFO_3W { - DWORD cVersion; - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDriverPath; - LPWSTR pDataFile; - LPWSTR pConfigFile; - LPWSTR pHelpFile; - LPWSTR pDependentFiles; - LPWSTR pMonitorName; - LPWSTR pDefaultDataType; -} DRIVER_INFO_3W,*PDRIVER_INFO_3W,*LPDRIVER_INFO_3W; -typedef struct _MONITOR_INFO_1A{LPSTR pName;} MONITOR_INFO_1A,*PMONITOR_INFO_1A,*LPMONITOR_INFO_1A; -typedef struct _MONITOR_INFO_1W{LPWSTR pName;} MONITOR_INFO_1W,*PMONITOR_INFO_1W,*LPMONITOR_INFO_1W; -typedef struct _PORT_INFO_1A {LPSTR pName;} PORT_INFO_1A,*PPORT_INFO_1A,*LPPORT_INFO_1A; -typedef struct _PORT_INFO_1W {LPWSTR pName;} PORT_INFO_1W,*PPORT_INFO_1W,*LPPORT_INFO_1W; -typedef struct _MONITOR_INFO_2A{ - LPSTR pName; - LPSTR pEnvironment; - LPSTR pDLLName; -} MONITOR_INFO_2A,*PMONITOR_INFO_2A,*LPMONITOR_INFO_2A; -typedef struct _MONITOR_INFO_2W{ - LPWSTR pName; - LPWSTR pEnvironment; - LPWSTR pDLLName; -} MONITOR_INFO_2W,*PMONITOR_INFO_2W,*LPMONITOR_INFO_2W; -typedef struct _PORT_INFO_2A { - LPSTR pPortName; - LPSTR pMonitorName; - LPSTR pDescription; - DWORD fPortType; - DWORD Reserved; -} PORT_INFO_2A,*PPORT_INFO_2A,*LPPORT_INFO_2A; -typedef struct _PORT_INFO_2W { - LPWSTR pPortName; - LPWSTR pMonitorName; - LPWSTR pDescription; - DWORD fPortType; - DWORD Reserved; -} PORT_INFO_2W,*PPORT_INFO_2W,*LPPORT_INFO_2W; -typedef struct _PORT_INFO_3A { - DWORD dwStatus; - LPSTR pszStatus; - DWORD dwSeverity; -} PORT_INFO_3A,*PPORT_INFO_3A,*LPPORT_INFO_3A; -typedef struct _PORT_INFO_3W { - DWORD dwStatus; - LPWSTR pszStatus; - DWORD dwSeverity; -} PORT_INFO_3W,*PPORT_INFO_3W,*LPPORT_INFO_3W; -typedef struct _PRINTER_INFO_1A { - DWORD Flags; - LPSTR pDescription; - LPSTR pName; - LPSTR pComment; -} PRINTER_INFO_1A,*PPRINTER_INFO_1A,*LPPRINTER_INFO_1A; -typedef struct _PRINTER_INFO_1W { - DWORD Flags; - LPWSTR pDescription; - LPWSTR pName; - LPWSTR pComment; -} PRINTER_INFO_1W,*PPRINTER_INFO_1W,*LPPRINTER_INFO_1W; -typedef struct _PRINTER_INFO_2A { - LPSTR pServerName; - LPSTR pPrinterName; - LPSTR pShareName; - LPSTR pPortName; - LPSTR pDriverName; - LPSTR pComment; - LPSTR pLocation; - LPDEVMODEA pDevMode; - LPSTR pSepFile; - LPSTR pPrintProcessor; - LPSTR pDatatype; - LPSTR pParameters; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Attributes; - DWORD Priority; - DWORD DefaultPriority; - DWORD StartTime; - DWORD UntilTime; - DWORD Status; - DWORD cJobs; - DWORD AveragePPM; -} PRINTER_INFO_2A,*PPRINTER_INFO_2A,*LPPRINTER_INFO_2A; -typedef struct _PRINTER_INFO_2W { - LPWSTR pServerName; - LPWSTR pPrinterName; - LPWSTR pShareName; - LPWSTR pPortName; - LPWSTR pDriverName; - LPWSTR pComment; - LPWSTR pLocation; - LPDEVMODEW pDevMode; - LPWSTR pSepFile; - LPWSTR pPrintProcessor; - LPWSTR pDatatype; - LPWSTR pParameters; - PSECURITY_DESCRIPTOR pSecurityDescriptor; - DWORD Attributes; - DWORD Priority; - DWORD DefaultPriority; - DWORD StartTime; - DWORD UntilTime; - DWORD Status; - DWORD cJobs; - DWORD AveragePPM; -} PRINTER_INFO_2W,*PPRINTER_INFO_2W,*LPPRINTER_INFO_2W; -typedef struct _PRINTER_INFO_3 { - PSECURITY_DESCRIPTOR pSecurityDescriptor; -} PRINTER_INFO_3,*PPRINTER_INFO_3,*LPPRINTER_INFO_3; -typedef struct _PRINTER_INFO_4A { - LPSTR pPrinterName; - LPSTR pServerName; - DWORD Attributes; -} PRINTER_INFO_4A,*PPRINTER_INFO_4A,*LPPRINTER_INFO_4A; -typedef struct _PRINTER_INFO_4W { - LPWSTR pPrinterName; - LPWSTR pServerName; - DWORD Attributes; -} PRINTER_INFO_4W,*PPRINTER_INFO_4W,*LPPRINTER_INFO_4W; -typedef struct _PRINTER_INFO_5A { - LPSTR pPrinterName; - LPSTR pPortName; - DWORD Attributes; - DWORD DeviceNotSelectedTimeout; - DWORD TransmissionRetryTimeout; -} PRINTER_INFO_5A,*PPRINTER_INFO_5A,*LPPRINTER_INFO_5A; -typedef struct _PRINTER_INFO_5W { - LPWSTR pPrinterName; - LPWSTR pPortName; - DWORD Attributes; - DWORD DeviceNotSelectedTimeout; - DWORD TransmissionRetryTimeout; -} PRINTER_INFO_5W,*PPRINTER_INFO_5W,*LPPRINTER_INFO_5W; -typedef struct _PRINTPROCESSOR_INFO_1A {LPSTR pName;} PRINTPROCESSOR_INFO_1A,*PPRINTPROCESSOR_INFO_1A,*LPPRINTPROCESSOR_INFO_1A; -typedef struct _PRINTPROCESSOR_INFO_1W {LPWSTR pName;} PRINTPROCESSOR_INFO_1W,*PPRINTPROCESSOR_INFO_1W,*LPPRINTPROCESSOR_INFO_1W; -typedef struct _PRINTER_NOTIFY_INFO_DATA { - WORD Type; - WORD Field; - DWORD Reserved; - DWORD Id; - union { - DWORD adwData[2]; - struct { - DWORD cbBuf; - PVOID pBuf; - } Data; - } NotifyData; -} PRINTER_NOTIFY_INFO_DATA,*PPRINTER_NOTIFY_INFO_DATA,*LPPRINTER_NOTIFY_INFO_DATA; -typedef struct _PRINTER_NOTIFY_INFO { - DWORD Version; - DWORD Flags; - DWORD Count; - PRINTER_NOTIFY_INFO_DATA aData[1]; -} PRINTER_NOTIFY_INFO,*PPRINTER_NOTIFY_INFO,*LPPRINTER_NOTIFY_INFO; -typedef struct _FORM_INFO_1A { - DWORD Flags; - LPSTR pName; - SIZEL Size; - RECTL ImageableArea; -} FORM_INFO_1A,*PFORM_INFO_1A,*LPFORM_INFO_1A; -typedef struct _FORM_INFO_1W { - DWORD Flags; - LPWSTR pName; - SIZEL Size; - RECTL ImageableArea; -} FORM_INFO_1W,*PFORM_INFO_1W,*LPFORM_INFO_1W; -typedef struct _PRINTER_DEFAULTSA { - LPSTR pDatatype; - LPDEVMODE pDevMode; - ACCESS_MASK DesiredAccess; -} PRINTER_DEFAULTSA,*PPRINTER_DEFAULTSA,*LPPRINTER_DEFAULTSA; -typedef struct _PRINTER_DEFAULTSW { - LPWSTR pDatatype; - LPDEVMODE pDevMode; - ACCESS_MASK DesiredAccess; -} PRINTER_DEFAULTSW,*PPRINTER_DEFAULTSW,*LPPRINTER_DEFAULTSW; - -BOOL WINAPI AbortPrinter(HANDLE); -BOOL WINAPI AddFormA(HANDLE,DWORD,PBYTE); -BOOL WINAPI AddFormW(HANDLE,DWORD,PBYTE); -BOOL WINAPI AddJobA(HANDLE,DWORD,PBYTE,DWORD,PDWORD); -BOOL WINAPI AddJobW(HANDLE,DWORD,PBYTE,DWORD,PDWORD); -BOOL WINAPI AddMonitorA(LPSTR,DWORD,PBYTE); -BOOL WINAPI AddMonitorW(LPWSTR,DWORD,PBYTE); -BOOL WINAPI AddPortA(LPSTR,HWND,LPSTR); -BOOL WINAPI AddPortW(LPWSTR,HWND,LPWSTR); -HANDLE WINAPI AddPrinterA(LPSTR,DWORD,PBYTE); -HANDLE WINAPI AddPrinterW(LPWSTR,DWORD,PBYTE); -BOOL WINAPI AddPrinterConnectionA(LPSTR); -BOOL WINAPI AddPrinterConnectionW(LPWSTR); -BOOL WINAPI AddPrinterDriverA(LPSTR,DWORD,PBYTE); -BOOL WINAPI AddPrinterDriverW(LPWSTR,DWORD,PBYTE); -BOOL WINAPI AddPrintProcessorA(LPSTR,LPSTR,LPSTR,LPSTR); -BOOL WINAPI AddPrintProcessorW(LPWSTR,LPWSTR,LPWSTR,LPWSTR); -BOOL WINAPI AddPrintProvidorA(LPSTR,DWORD,PBYTE); -BOOL WINAPI AddPrintProvidorW(LPWSTR,DWORD,PBYTE); -LONG WINAPI AdvancedDocumentPropertiesA(HWND,HANDLE,LPSTR,PDEVMODE,PDEVMODEA); -LONG WINAPI AdvancedDocumentPropertiesW(HWND,HANDLE,LPWSTR,PDEVMODE,PDEVMODEW); -BOOL WINAPI ClosePrinter(HANDLE); -BOOL WINAPI ConfigurePortA(LPSTR,HWND,LPSTR); -BOOL WINAPI ConfigurePortW(LPWSTR,HWND,LPWSTR); -HANDLE WINAPI ConnectToPrinterDlg(HWND,DWORD); -BOOL WINAPI DeleteFormA(HANDLE,LPSTR); -BOOL WINAPI DeleteFormW(HANDLE,LPWSTR); -BOOL WINAPI DeleteMonitorA(LPSTR,LPSTR,LPSTR); -BOOL WINAPI DeleteMonitorW(LPWSTR,LPWSTR,LPWSTR); -BOOL WINAPI DeletePortA(LPSTR,HWND,LPSTR); -BOOL WINAPI DeletePortW(LPWSTR,HWND,LPWSTR); -BOOL WINAPI DeletePrinter(HANDLE); -BOOL WINAPI DeletePrinterConnectionA(LPSTR); -BOOL WINAPI DeletePrinterConnectionW(LPWSTR); -DWORD WINAPI DeletePrinterDataA(HANDLE,LPSTR); -DWORD WINAPI DeletePrinterDataW(HANDLE,LPWSTR); -BOOL WINAPI DeletePrinterDriverA(LPSTR,LPSTR,LPSTR); -BOOL WINAPI DeletePrinterDriverW(LPWSTR,LPWSTR,LPWSTR); -BOOL WINAPI DeletePrintProcessorA(LPSTR,LPSTR,LPSTR); -BOOL WINAPI DeletePrintProcessorW(LPWSTR,LPWSTR,LPWSTR); -BOOL WINAPI DeletePrintProvidorA(LPSTR,LPSTR,LPSTR); -BOOL WINAPI DeletePrintProvidorW(LPWSTR,LPWSTR,LPWSTR); -LONG WINAPI DocumentPropertiesA(HWND,HANDLE,LPSTR,PDEVMODEA,PDEVMODEA,DWORD); -LONG WINAPI DocumentPropertiesW(HWND,HANDLE,LPWSTR,PDEVMODEA,PDEVMODEA,DWORD); -BOOL WINAPI EndDocPrinter(HANDLE); -BOOL WINAPI EndPagePrinter(HANDLE); -BOOL WINAPI EnumFormsA(HANDLE,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumFormsW(HANDLE,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumJobsA(HANDLE,DWORD,DWORD,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumJobsW(HANDLE,DWORD,DWORD,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumMonitorsA(LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumMonitorsW(LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumPortsA(LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumPortsW(LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -DWORD WINAPI EnumPrinterDataA(HANDLE,DWORD,LPSTR,DWORD,PDWORD,PDWORD,PBYTE,DWORD,PDWORD); -DWORD WINAPI EnumPrinterDataW(HANDLE,DWORD,LPWSTR,DWORD,PDWORD,PDWORD,PBYTE,DWORD,PDWORD); -BOOL WINAPI EnumPrinterDriversA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumPrinterDriversW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumPrintersA(DWORD,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumPrintersW(DWORD,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumPrintProcessorDatatypesA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumPrintProcessorDatatypesW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumPrintProcessorsA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumPrintProcessorsW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD,PDWORD); -BOOL WINAPI FindClosePrinterChangeNotification(HANDLE); -HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE,DWORD,DWORD,PVOID); -HANDLE WINAPI FindNextPrinterChangeNotification(HANDLE,PDWORD,PVOID,PVOID*); -BOOL WINAPI FreePrinterNotifyInfo(PPRINTER_NOTIFY_INFO); -BOOL WINAPI GetFormA(HANDLE,LPSTR,DWORD,PBYTE,DWORD,PDWORD); -BOOL WINAPI GetFormW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD,PDWORD); -BOOL WINAPI GetJobA(HANDLE,DWORD,DWORD,PBYTE,DWORD,PDWORD); -BOOL WINAPI GetJobW(HANDLE,DWORD,DWORD,PBYTE,DWORD,PDWORD); -BOOL WINAPI GetPrinterA(HANDLE,DWORD,PBYTE,DWORD,PDWORD); -BOOL WINAPI GetPrinterW(HANDLE,DWORD,PBYTE,DWORD,PDWORD); -DWORD WINAPI GetPrinterDataA(HANDLE,LPSTR,PDWORD,PBYTE,DWORD,PDWORD); -DWORD WINAPI GetPrinterDataW(HANDLE,LPWSTR,PDWORD,PBYTE,DWORD,PDWORD); -DWORD WINAPI GetPrinterDriverA(HANDLE,LPSTR,DWORD,PBYTE,DWORD,PDWORD); -DWORD WINAPI GetPrinterDriverW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD,PDWORD); -DWORD WINAPI GetPrinterDriverDirectoryA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD); -DWORD WINAPI GetPrinterDriverDirectoryW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD); -DWORD WINAPI GetPrintProcessorDirectoryA(LPSTR,LPSTR,DWORD,PBYTE,DWORD,PDWORD); -DWORD WINAPI GetPrintProcessorDirectoryW(LPWSTR,LPWSTR,DWORD,PBYTE,DWORD,PDWORD); -BOOL WINAPI OpenPrinterA(LPSTR,PHANDLE,LPPRINTER_DEFAULTSA); -BOOL WINAPI OpenPrinterW(LPWSTR,PHANDLE,LPPRINTER_DEFAULTSW); -DWORD WINAPI PrinterMessageBoxA(HANDLE,DWORD,HWND,LPSTR,LPSTR,DWORD); -DWORD WINAPI PrinterMessageBoxW(HANDLE,DWORD,HWND,LPWSTR,LPWSTR,DWORD); -BOOL WINAPI PrinterProperties(HWND,HANDLE); -BOOL WINAPI ReadPrinter(HANDLE,PVOID,DWORD,PDWORD); -BOOL WINAPI ResetPrinterA(HANDLE,LPPRINTER_DEFAULTSA); -BOOL WINAPI ResetPrinterW(HANDLE,LPPRINTER_DEFAULTSW); -BOOL WINAPI ScheduleJob(HANDLE,DWORD); -BOOL WINAPI SetFormA(HANDLE,LPSTR,DWORD,PBYTE); -BOOL WINAPI SetFormW(HANDLE,LPWSTR,DWORD,PBYTE); -BOOL WINAPI SetJobA(HANDLE,DWORD,DWORD,PBYTE,DWORD); -BOOL WINAPI SetJobW(HANDLE,DWORD,DWORD,PBYTE,DWORD); -BOOL WINAPI SetPrinterA(HANDLE,DWORD,PBYTE,DWORD); -BOOL WINAPI SetPrinterW(HANDLE,DWORD,PBYTE,DWORD); -BOOL WINAPI SetPrinterDataA(HANDLE,LPSTR,DWORD,PBYTE,DWORD); -BOOL WINAPI SetPrinterDataW(HANDLE,LPWSTR,DWORD,PBYTE,DWORD); -DWORD WINAPI StartDocPrinterA(HANDLE,DWORD,PBYTE); -DWORD WINAPI StartDocPrinterW(HANDLE,DWORD,PBYTE); -BOOL WINAPI StartPagePrinter(HANDLE); -DWORD WINAPI WaitForPrinterChange(HANDLE,DWORD); -BOOL WINAPI WritePrinter(HANDLE,PVOID,DWORD,PDWORD); - -#ifdef UNICODE -typedef JOB_INFO_1W JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1; -typedef JOB_INFO_2W JOB_INFO_2,*PJOB_INFO_2,*LPJOB_INFO_2; -typedef ADDJOB_INFO_1W ADDJOB_INFO_1,*PADDJOB_INFO_1,*LPADDJOB_INFO_1; -typedef DATATYPES_INFO_1W DATATYPES_INFO_1,*PDATATYPES_INFO_1,*LPDATATYPES_INFO_1; -typedef MONITOR_INFO_1W MONITOR_INFO_1,*PMONITOR_INFO_1,*LPMONITOR_INFO_1; -typedef MONITOR_INFO_2W MONITOR_INFO_2,*PMONITOR_INFO_2,*LPMONITOR_INFO_2; -typedef DOC_INFO_1W DOC_INFO_1,*PDOC_INFO_1,*LPDOC_INFO_1; -typedef DOC_INFO_2W DOC_INFO_2,*PDOC_INFO_2,*LPDOC_INFO_2; -typedef PORT_INFO_1W PORT_INFO_1,*PPORT_INFO_1,*LPPORT_INFO_1; -typedef PORT_INFO_2W PORT_INFO_2,*PPORT_INFO_2,*LPPORT_INFO_2; -typedef PORT_INFO_3W PORT_INFO_3,*PPORT_INFO_3,*LPPORT_INFO_3; -typedef DRIVER_INFO_2W DRIVER_INFO_2,*PDRIVER_INFO_2,*LPDRIVER_INFO_2; -typedef PRINTER_INFO_1W PRINTER_INFO_1,*PPRINTER_INFO_1,*LPPRINTER_INFO_1; -typedef PRINTER_INFO_2W PRINTER_INFO_2,*PPRINTER_INFO_2,*LPPRINTER_INFO_2; -typedef PRINTER_INFO_4W PRINTER_INFO_4,*PPRINTER_INFO_4,*LPPRINTER_INFO_4; -typedef PRINTER_INFO_5W PRINTER_INFO_5,*PPRINTER_INFO_5,*LPPRINTER_INFO_5; -typedef PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1,*PPRINTPROCESSOR_INFO_1,*LPPRINTPROCESSOR_INFO_1; -typedef FORM_INFO_1W FORM_INFO_1,*PFORM_INFO_1,*LPFORM_INFO_1; -typedef PRINTER_DEFAULTSW PRINTER_DEFAULTS,*PPRINTER_DEFAULTS,*LPPRINTER_DEFAULTS; -#define AddForm AddFormW -#define AddJob AddJobW -#define AddMonitor AddMonitorW -#define AddPort AddPortW -#define AddPrinter AddPrinterW -#define AddPrinterConnection AddPrinterConnectionW -#define AddPrinterDriver AddPrinterDriverW -#define AddPrintProcessor AddPrintProcessorW -#define AddPrintProvidor AddPrintProvidorW -#define AdvancedDocumentProperties AdvancedDocumentPropertiesW -#define ConfigurePort ConfigurePortW -#define DeleteForm DeleteFormW -#define DeleteMonitor DeleteMonitorW -#define DeletePort DeletePortW -#define DeletePrinterConnection DeletePrinterConnectionW -#define DeletePrinterData DeletePrinterDataW -#define DeletePrinterDriver DeletePrinterDriverW -#define DeletePrintProcessor DeletePrinterProcessorW -#define DeletePrintProvidor DeletePrinterProvidorW -#define DocumentProperties DocumentPropertiesW -#define EnumForms EnumFormsW -#define EnumJobs EnumJobsW -#define EnumMonitors EnumMonitorsW -#define EnumPorts EnumPortsW -#define EnumPrinterData EnumPrinterDataW -#define EnumPrinterDrivers EnumPrinterDriversW -#define EnumPrinters EnumPrintersW -#define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesW -#define EnumPrintProcessors EnumPrintProcessorsW -#define GetForm GetFormW -#define GetJob GetJobW -#define GetPrinter GetPrinterW -#define GetPrinterData GetPrinterDataW -#define GetPrinterDriver GetPrinterDriverW -#define GetPrinterDriverDirectory GetPrinterDriverDirectoryW -#define GetPrintProcessorDirectory GetPrintProcessorDirectoryW -#define OpenPrinter OpenPrinterW -#define PrinterMessageBox PrinterMessageBoxW -#define ResetPrinter ResetPrinterW -#define SetForm SetFormW -#define SetJob SetJobW -#define SetPrinter SetPrinterW -#define SetPrinterData SetPrinterDataW -#define StartDocPrinter StartDocPrinterW -#else -typedef JOB_INFO_1A JOB_INFO_1,*PJOB_INFO_1,*LPJOB_INFO_1; -typedef JOB_INFO_2A JOB_INFO_2,*PJOB_INFO_2,*LPJOB_INFO_2; -typedef ADDJOB_INFO_1A ADDJOB_INFO_1,*PADDJOB_INFO_1,*LPADDJOB_INFO_1; -typedef DATATYPES_INFO_1A DATATYPES_INFO_1,*PDATATYPES_INFO_1,*LPDATATYPES_INFO_1; -typedef MONITOR_INFO_1A MONITOR_INFO_1,*PMONITOR_INFO_1,*LPMONITOR_INFO_1; -typedef MONITOR_INFO_2A MONITOR_INFO_2,*PMONITOR_INFO_2,*LPMONITOR_INFO_2; -typedef DOC_INFO_1A DOC_INFO_1,*PDOC_INFO_1,*LPDOC_INFO_1; -typedef DOC_INFO_2A DOC_INFO_2,*PDOC_INFO_2,*LPDOC_INFO_2; -typedef PORT_INFO_1A PORT_INFO_1,*PPORT_INFO_1,*LPPORT_INFO_1; -typedef PORT_INFO_2A PORT_INFO_2,*PPORT_INFO_2,*LPPORT_INFO_2; -typedef PORT_INFO_3A PORT_INFO_3,*PPORT_INFO_3,*LPPORT_INFO_3; -typedef DRIVER_INFO_2A DRIVER_INFO_2,*PDRIVER_INFO_2,*LPDRIVER_INFO_2; -typedef PRINTER_INFO_1A PRINTER_INFO_1,*PPRINTER_INFO_1,*LPPRINTER_INFO_1; -typedef PRINTER_INFO_2A PRINTER_INFO_2,*PPRINTER_INFO_2,*LPPRINTER_INFO_2; -typedef PRINTER_INFO_4A PRINTER_INFO_4,*PPRINTER_INFO_4,*LPPRINTER_INFO_4; -typedef PRINTER_INFO_5A PRINTER_INFO_5,*PPRINTER_INFO_5,*LPPRINTER_INFO_5; -typedef PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1,*PPRINTPROCESSOR_INFO_1,*LPPRINTPROCESSOR_INFO_1; -typedef FORM_INFO_1A FORM_INFO_1,*PFORM_INFO_1,*LPFORM_INFO_1; -typedef PRINTER_DEFAULTSA PRINTER_DEFAULTS,*PPRINTER_DEFAULTS,*LPPRINTER_DEFAULTS; -#define AddForm AddFormA -#define AddJob AddJobA -#define AddMonitor AddMonitorA -#define AddPort AddPortA -#define AddPrinter AddPrinterA -#define AddPrinterConnection AddPrinterConnectionA -#define AddPrinterDriver AddPrinterDriverA -#define AddPrintProcessor AddPrintProcessorA -#define AddPrintProvidor AddPrintProvidorA -#define AdvancedDocumentProperties AdvancedDocumentPropertiesA -#define ConfigurePort ConfigurePortA -#define DeleteForm DeleteFormA -#define DeleteMonitor DeleteMonitorA -#define DeletePort DeletePortA -#define DeletePrinterConnection DeletePrinterConnectionA -#define DeletePrinterData DeletePrinterDataA -#define DeletePrinterDriver DeletePrinterDriverA -#define DeletePrintProcessor DeletePrinterProcessorA -#define DeletePrintProvidor DeletePrinterProvidorA -#define DocumentProperties DocumentPropertiesA -#define EnumForms EnumFormsA -#define EnumJobs EnumJobsA -#define EnumMonitors EnumMonitorsA -#define EnumPorts EnumPortsA -#define EnumPrinterData EnumPrinterDataA -#define EnumPrinterDrivers EnumPrinterDriversA -#define EnumPrinters EnumPrintersA -#define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesA -#define EnumPrintProcessors EnumPrintProcessorsA -#define GetForm GetFormA -#define GetJob GetJobA -#define GetPrinter GetPrinterA -#define GetPrinterData GetPrinterDataA -#define GetPrinterDriver GetPrinterDriverA -#define GetPrinterDriverDirectory GetPrinterDriverDirectoryA -#define GetPrintProcessorDirectory GetPrintProcessorDirectoryA -#define OpenPrinter OpenPrinterA -#define PrinterMessageBox PrinterMessageBoxA -#define ResetPrinter ResetPrinterA -#define SetForm SetFormA -#define SetJob SetJobA -#define SetPrinter SetPrinterA -#define SetPrinterData SetPrinterDataA -#define StartDocPrinter StartDocPrinterA -#endif -#endif /* RC_INVOKED */ -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/winsvc.h b/winsup/w32api/include/winsvc.h deleted file mode 100644 index 63af9584e..000000000 --- a/winsup/w32api/include/winsvc.h +++ /dev/null @@ -1,305 +0,0 @@ -#ifndef _WINSVC_H -#define _WINSVC_H -#ifdef __cplusplus -extern "C" { -#endif -#define SERVICES_ACTIVE_DATABASEA "ServicesActive" -#define SERVICES_ACTIVE_DATABASEW L"ServicesActive" -#define SERVICES_FAILED_DATABASEA "ServicesFailed" -#define SERVICES_FAILED_DATABASEW L"ServicesFailed" -#define SC_GROUP_IDENTIFIERA '+' -#define SC_GROUP_IDENTIFIERW L'+' -#define SC_MANAGER_ALL_ACCESS 0xf003f -#define SC_MANAGER_CONNECT 1 -#define SC_MANAGER_CREATE_SERVICE 2 -#define SC_MANAGER_ENUMERATE_SERVICE 4 -#define SC_MANAGER_LOCK 8 -#define SC_MANAGER_QUERY_LOCK_STATUS 16 -#define SC_MANAGER_MODIFY_BOOT_CONFIG 32 -#define SERVICE_NO_CHANGE (-1) -#define SERVICE_STOPPED 1 -#define SERVICE_START_PENDING 2 -#define SERVICE_STOP_PENDING 3 -#define SERVICE_RUNNING 4 -#define SERVICE_CONTINUE_PENDING 5 -#define SERVICE_PAUSE_PENDING 6 -#define SERVICE_PAUSED 7 -#define SERVICE_ACCEPT_STOP 1 -#define SERVICE_ACCEPT_PAUSE_CONTINUE 2 -#define SERVICE_ACCEPT_SHUTDOWN 4 -#define SERVICE_ACCEPT_PARAMCHANGE 8 -#define SERVICE_ACCEPT_NETBINDCHANGE 16 -#define SERVICE_ACCEPT_HARDWAREPROFILECHANGE 32 -#define SERVICE_ACCEPT_POWEREVENT 64 -#define SERVICE_ACCEPT_SESSIONCHANGE 128 -#define SERVICE_CONTROL_STOP 1 -#define SERVICE_CONTROL_PAUSE 2 -#define SERVICE_CONTROL_CONTINUE 3 -#define SERVICE_CONTROL_INTERROGATE 4 -#define SERVICE_CONTROL_SHUTDOWN 5 -#define SERVICE_CONTROL_PARAMCHANGE 6 -#define SERVICE_CONTROL_NETBINDADD 7 -#define SERVICE_CONTROL_NETBINDREMOVE 8 -#define SERVICE_CONTROL_NETBINDENABLE 9 -#define SERVICE_CONTROL_NETBINDDISABLE 10 -#define SERVICE_CONTROL_DEVICEEVENT 11 -#define SERVICE_CONTROL_HARDWAREPROFILECHANGE 12 -#define SERVICE_CONTROL_POWEREVENT 13 -#define SERVICE_CONTROL_SESSIONCHANGE 14 -#define SERVICE_ACTIVE 1 -#define SERVICE_INACTIVE 2 -#define SERVICE_STATE_ALL 3 -#define SERVICE_QUERY_CONFIG 1 -#define SERVICE_CHANGE_CONFIG 2 -#define SERVICE_QUERY_STATUS 4 -#define SERVICE_ENUMERATE_DEPENDENTS 8 -#define SERVICE_START 16 -#define SERVICE_STOP 32 -#define SERVICE_PAUSE_CONTINUE 64 -#define SERVICE_INTERROGATE 128 -#define SERVICE_USER_DEFINED_CONTROL 256 -#define SERVICE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SERVICE_QUERY_CONFIG|SERVICE_CHANGE_CONFIG|SERVICE_QUERY_STATUS|SERVICE_ENUMERATE_DEPENDENTS|SERVICE_START|SERVICE_STOP|SERVICE_PAUSE_CONTINUE|SERVICE_INTERROGATE|SERVICE_USER_DEFINED_CONTROL) -#define SERVICE_RUNS_IN_SYSTEM_PROCESS 1 -#define SERVICE_CONFIG_DESCRIPTION 1 -#define SERVICE_CONFIG_FAILURE_ACTIONS 2 - -typedef struct _SERVICE_STATUS { - DWORD dwServiceType; - DWORD dwCurrentState; - DWORD dwControlsAccepted; - DWORD dwWin32ExitCode; - DWORD dwServiceSpecificExitCode; - DWORD dwCheckPoint; - DWORD dwWaitHint; -} SERVICE_STATUS,*LPSERVICE_STATUS; -typedef struct _SERVICE_STATUS_PROCESS { - DWORD dwServiceType; - DWORD dwCurrentState; - DWORD dwControlsAccepted; - DWORD dwWin32ExitCode; - DWORD dwServiceSpecificExitCode; - DWORD dwCheckPoint; - DWORD dwWaitHint; - DWORD dwProcessId; - DWORD dwServiceFlags; -} SERVICE_STATUS_PROCESS, *LPSERVICE_STATUS_PROCESS; -typedef enum _SC_STATUS_TYPE { - SC_STATUS_PROCESS_INFO = 0 -} SC_STATUS_TYPE; -typedef enum _SC_ENUM_TYPE { - SC_ENUM_PROCESS_INFO = 0 -} SC_ENUM_TYPE; -typedef struct _ENUM_SERVICE_STATUSA { - LPSTR lpServiceName; - LPSTR lpDisplayName; - SERVICE_STATUS ServiceStatus; -} ENUM_SERVICE_STATUSA,*LPENUM_SERVICE_STATUSA; -typedef struct _ENUM_SERVICE_STATUSW { - LPWSTR lpServiceName; - LPWSTR lpDisplayName; - SERVICE_STATUS ServiceStatus; -} ENUM_SERVICE_STATUSW,*LPENUM_SERVICE_STATUSW; -typedef struct _ENUM_SERVICE_STATUS_PROCESSA { - LPSTR lpServiceName; - LPSTR lpDisplayName; - SERVICE_STATUS_PROCESS ServiceStatusProcess; -} ENUM_SERVICE_STATUS_PROCESSA,*LPENUM_SERVICE_STATUS_PROCESSA; -typedef struct _ENUM_SERVICE_STATUS_PROCESSW { - LPWSTR lpServiceName; - LPWSTR lpDisplayName; - SERVICE_STATUS_PROCESS ServiceStatusProcess; -} ENUM_SERVICE_STATUS_PROCESSW,*LPENUM_SERVICE_STATUS_PROCESSW; -typedef struct _QUERY_SERVICE_CONFIGA { - DWORD dwServiceType; - DWORD dwStartType; - DWORD dwErrorControl; - LPSTR lpBinaryPathName; - LPSTR lpLoadOrderGroup; - DWORD dwTagId; - LPSTR lpDependencies; - LPSTR lpServiceStartName; - LPSTR lpDisplayName; -} QUERY_SERVICE_CONFIGA,*LPQUERY_SERVICE_CONFIGA; -typedef struct _QUERY_SERVICE_CONFIGW { - DWORD dwServiceType; - DWORD dwStartType; - DWORD dwErrorControl; - LPWSTR lpBinaryPathName; - LPWSTR lpLoadOrderGroup; - DWORD dwTagId; - LPWSTR lpDependencies; - LPWSTR lpServiceStartName; - LPWSTR lpDisplayName; -} QUERY_SERVICE_CONFIGW,*LPQUERY_SERVICE_CONFIGW; -typedef struct _QUERY_SERVICE_LOCK_STATUSA { - DWORD fIsLocked; - LPSTR lpLockOwner; - DWORD dwLockDuration; -} QUERY_SERVICE_LOCK_STATUSA,*LPQUERY_SERVICE_LOCK_STATUSA; -typedef struct _QUERY_SERVICE_LOCK_STATUSW { - DWORD fIsLocked; - LPWSTR lpLockOwner; - DWORD dwLockDuration; -} QUERY_SERVICE_LOCK_STATUSW,*LPQUERY_SERVICE_LOCK_STATUSW; -typedef void (WINAPI *LPSERVICE_MAIN_FUNCTIONA)(DWORD,LPSTR*); -typedef void (WINAPI *LPSERVICE_MAIN_FUNCTIONW)(DWORD,LPWSTR*); -typedef struct _SERVICE_TABLE_ENTRYA { - LPSTR lpServiceName; - LPSERVICE_MAIN_FUNCTIONA lpServiceProc; -} SERVICE_TABLE_ENTRYA,*LPSERVICE_TABLE_ENTRYA; -typedef struct _SERVICE_TABLE_ENTRYW { - LPWSTR lpServiceName; - LPSERVICE_MAIN_FUNCTIONW lpServiceProc; -} SERVICE_TABLE_ENTRYW,*LPSERVICE_TABLE_ENTRYW; -DECLARE_HANDLE(SC_HANDLE); -typedef SC_HANDLE *LPSC_HANDLE; -typedef PVOID SC_LOCK; -typedef DWORD SERVICE_STATUS_HANDLE; -typedef VOID(WINAPI *LPHANDLER_FUNCTION)(DWORD); -typedef DWORD (WINAPI *LPHANDLER_FUNCTION_EX)(DWORD,DWORD,LPVOID,LPVOID); -typedef struct _SERVICE_DESCRIPTIONA { - LPSTR lpDescription; -} SERVICE_DESCRIPTIONA,*LPSERVICE_DESCRIPTIONA; -typedef struct _SERVICE_DESCRIPTIONW { - LPWSTR lpDescription; -} SERVICE_DESCRIPTIONW,*LPSERVICE_DESCRIPTIONW; -typedef enum _SC_ACTION_TYPE { - SC_ACTION_NONE = 0, - SC_ACTION_RESTART = 1, - SC_ACTION_REBOOT = 2, - SC_ACTION_RUN_COMMAND = 3 -} SC_ACTION_TYPE; -typedef struct _SC_ACTION { - SC_ACTION_TYPE Type; - DWORD Delay; -} SC_ACTION,*LPSC_ACTION; -typedef struct _SERVICE_FAILURE_ACTIONSA { - DWORD dwResetPeriod; - LPSTR lpRebootMsg; - LPSTR lpCommand; - DWORD cActions; - SC_ACTION * lpsaActions; -} SERVICE_FAILURE_ACTIONSA,*LPSERVICE_FAILURE_ACTIONSA; -typedef struct _SERVICE_FAILURE_ACTIONSW { - DWORD dwResetPeriod; - LPWSTR lpRebootMsg; - LPWSTR lpCommand; - DWORD cActions; - SC_ACTION * lpsaActions; -} SERVICE_FAILURE_ACTIONSW,*LPSERVICE_FAILURE_ACTIONSW; - -BOOL WINAPI ChangeServiceConfigA(SC_HANDLE,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,LPDWORD,LPCSTR,LPCSTR,LPCSTR,LPCSTR); -BOOL WINAPI ChangeServiceConfigW(SC_HANDLE,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,LPDWORD,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR); -BOOL WINAPI ChangeServiceConfig2A(SC_HANDLE,DWORD,LPVOID); -BOOL WINAPI ChangeServiceConfig2W(SC_HANDLE,DWORD,LPVOID); -BOOL WINAPI CloseServiceHandle(SC_HANDLE); -BOOL WINAPI ControlService(SC_HANDLE,DWORD,LPSERVICE_STATUS); -SC_HANDLE WINAPI CreateServiceA(SC_HANDLE,LPCSTR,LPCSTR,DWORD,DWORD,DWORD,DWORD,LPCSTR,LPCSTR,PDWORD,LPCSTR,LPCSTR,LPCSTR); -SC_HANDLE WINAPI CreateServiceW(SC_HANDLE,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD,DWORD,LPCWSTR,LPCWSTR,PDWORD,LPCWSTR,LPCWSTR,LPCWSTR); -BOOL WINAPI DeleteService(SC_HANDLE); -BOOL WINAPI EnumDependentServicesA(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSA,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumDependentServicesW(SC_HANDLE,DWORD,LPENUM_SERVICE_STATUSW,DWORD,PDWORD,PDWORD); -BOOL WINAPI EnumServicesStatusA(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSA,DWORD,PDWORD,PDWORD,PDWORD); -BOOL WINAPI EnumServicesStatusW(SC_HANDLE,DWORD,DWORD,LPENUM_SERVICE_STATUSW,DWORD,PDWORD,PDWORD,PDWORD); -BOOL WINAPI EnumServicesStatusExA(SC_HANDLE,SC_ENUM_TYPE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD,LPDWORD,LPDWORD,LPCSTR); -BOOL WINAPI EnumServicesStatusExW(SC_HANDLE,SC_ENUM_TYPE,DWORD,DWORD,LPBYTE,DWORD,LPDWORD,LPDWORD,LPDWORD,LPCWSTR); -BOOL WINAPI GetServiceDisplayNameA(SC_HANDLE,LPCSTR,LPSTR,PDWORD); -BOOL WINAPI GetServiceDisplayNameW(SC_HANDLE,LPCWSTR,LPWSTR,PDWORD); -BOOL WINAPI GetServiceKeyNameA(SC_HANDLE,LPCSTR,LPSTR,PDWORD); -BOOL WINAPI GetServiceKeyNameW(SC_HANDLE,LPCWSTR,LPWSTR,PDWORD); -SC_LOCK WINAPI LockServiceDatabase(SC_HANDLE); -BOOL WINAPI NotifyBootConfigStatus(BOOL); -SC_HANDLE WINAPI OpenSCManagerA(LPCSTR,LPCSTR,DWORD); -SC_HANDLE WINAPI OpenSCManagerW(LPCWSTR,LPCWSTR,DWORD); -SC_HANDLE WINAPI OpenServiceA(SC_HANDLE,LPCSTR,DWORD); -SC_HANDLE WINAPI OpenServiceW(SC_HANDLE,LPCWSTR,DWORD); -BOOL WINAPI QueryServiceConfigA(SC_HANDLE,LPQUERY_SERVICE_CONFIGA,DWORD,PDWORD); -BOOL WINAPI QueryServiceConfigW(SC_HANDLE,LPQUERY_SERVICE_CONFIGW,DWORD,PDWORD); -BOOL WINAPI QueryServiceConfig2A(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD); -BOOL WINAPI QueryServiceConfig2W(SC_HANDLE,DWORD,LPBYTE,DWORD,LPDWORD); -BOOL WINAPI QueryServiceLockStatusA(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSA,DWORD,PDWORD); -BOOL WINAPI QueryServiceLockStatusW(SC_HANDLE,LPQUERY_SERVICE_LOCK_STATUSW,DWORD,PDWORD); -BOOL WINAPI QueryServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD); -BOOL WINAPI QueryServiceStatus(SC_HANDLE,LPSERVICE_STATUS); -BOOL WINAPI QueryServiceStatusEx(SC_HANDLE,SC_STATUS_TYPE,LPBYTE,DWORD,LPDWORD); -SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerA(LPCSTR,LPHANDLER_FUNCTION); -SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerW(LPCWSTR,LPHANDLER_FUNCTION); -SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExA(LPCSTR,LPHANDLER_FUNCTION_EX,LPVOID); -SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR,LPHANDLER_FUNCTION_EX,LPVOID); -BOOL WINAPI SetServiceObjectSecurity(SC_HANDLE,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE,LPSERVICE_STATUS); -BOOL WINAPI StartServiceA(SC_HANDLE,DWORD,LPCSTR*); -BOOL WINAPI StartServiceCtrlDispatcherA(LPSERVICE_TABLE_ENTRYA); -BOOL WINAPI StartServiceCtrlDispatcherW(LPSERVICE_TABLE_ENTRYW); -BOOL WINAPI StartServiceW(SC_HANDLE,DWORD,LPCWSTR); -BOOL WINAPI UnlockServiceDatabase(SC_LOCK); - -#ifdef UNICODE -typedef ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUS,*LPENUM_SERVICE_STATUS; -typedef ENUM_SERVICE_STATUS_PROCESSW ENUM_SERVICE_STATUS_PROCESS; -typedef LPENUM_SERVICE_STATUS_PROCESSW LPENUM_SERVICE_STATUS_PROCESS; -typedef QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIG,*LPQUERY_SERVICE_CONFIG; -typedef QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUS,*LPQUERY_SERVICE_LOCK_STATUS; -typedef SERVICE_TABLE_ENTRYW SERVICE_TABLE_ENTRY,*LPSERVICE_TABLE_ENTRY; -typedef LPSERVICE_MAIN_FUNCTIONW LPSERVICE_MAIN_FUNCTION; -typedef SERVICE_DESCRIPTIONW SERVICE_DESCRIPTION; -typedef LPSERVICE_DESCRIPTIONW LPSERVICE_DESCRIPTION; -typedef SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONS; -typedef LPSERVICE_FAILURE_ACTIONSW LPSERVICE_FAILURE_ACTIONS; -#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEW -#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEW -#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERW -#define ChangeServiceConfig ChangeServiceConfigW -#define ChangeServiceConfig2 ChangeServiceConfig2W -#define CreateService CreateServiceW -#define EnumDependentServices EnumDependentServicesW -#define EnumServicesStatus EnumServicesStatusW -#define EnumServicesStatusEx EnumServicesStatusExW -#define GetServiceDisplayName GetServiceDisplayNameW -#define GetServiceKeyName GetServiceKeyNameW -#define OpenSCManager OpenSCManagerW -#define OpenService OpenServiceW -#define QueryServiceConfig QueryServiceConfigW -#define QueryServiceConfig2 QueryServiceConfig2W -#define QueryServiceLockStatus QueryServiceLockStatusW -#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerW -#define RegisterServiceCtrlHandlerEx RegisterServiceCtrlHandlerExW -#define StartService StartServiceW -#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherW -#else -typedef ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUS,*LPENUM_SERVICE_STATUS; -typedef ENUM_SERVICE_STATUS_PROCESSA ENUM_SERVICE_STATUS_PROCESS; -typedef LPENUM_SERVICE_STATUS_PROCESSA LPENUM_SERVICE_STATUS_PROCESS; -typedef QUERY_SERVICE_CONFIGA QUERY_SERVICE_CONFIG,*LPQUERY_SERVICE_CONFIG; -typedef QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUS,*LPQUERY_SERVICE_LOCK_STATUS; -typedef SERVICE_TABLE_ENTRYA SERVICE_TABLE_ENTRY,*LPSERVICE_TABLE_ENTRY; -typedef LPSERVICE_MAIN_FUNCTIONA LPSERVICE_MAIN_FUNCTION; -typedef SERVICE_DESCRIPTIONA SERVICE_DESCRIPTION; -typedef LPSERVICE_DESCRIPTIONA LPSERVICE_DESCRIPTION; -typedef SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONS; -typedef LPSERVICE_FAILURE_ACTIONSA LPSERVICE_FAILURE_ACTIONS; -#define SERVICES_ACTIVE_DATABASE SERVICES_ACTIVE_DATABASEA -#define SERVICES_FAILED_DATABASE SERVICES_FAILED_DATABASEA -#define SC_GROUP_IDENTIFIER SC_GROUP_IDENTIFIERA -#define ChangeServiceConfig ChangeServiceConfigA -#define ChangeServiceConfig2 ChangeServiceConfig2A -#define CreateService CreateServiceA -#define EnumDependentServices EnumDependentServicesA -#define EnumServicesStatus EnumServicesStatusA -#define EnumServicesStatusEx EnumServicesStatusExA -#define GetServiceDisplayName GetServiceDisplayNameA -#define GetServiceKeyName GetServiceKeyNameA -#define OpenSCManager OpenSCManagerA -#define OpenService OpenServiceA -#define QueryServiceConfig QueryServiceConfigA -#define QueryServiceConfig2 QueryServiceConfig2A -#define QueryServiceLockStatus QueryServiceLockStatusA -#define RegisterServiceCtrlHandler RegisterServiceCtrlHandlerA -#define RegisterServiceCtrlHandlerEx RegisterServiceCtrlHandlerExA -#define StartService StartServiceA -#define StartServiceCtrlDispatcher StartServiceCtrlDispatcherA -#endif -#ifdef __cplusplus -} -#endif -#endif /* _WINSVC_H */ diff --git a/winsup/w32api/include/winuser.h b/winsup/w32api/include/winuser.h deleted file mode 100644 index 305036b68..000000000 --- a/winsup/w32api/include/winuser.h +++ /dev/null @@ -1,3468 +0,0 @@ -#ifndef _WINUSER_H -#define _WINUSER_H -#ifdef __cplusplus -extern "C" { -#endif -#define WC_DIALOG MAKEINTATOM(0x8002) -#define FALT 16 -#define FCONTROL 8 -#define FNOINVERT 2 -#define FSHIFT 4 -#define FVIRTKEY 1 -#define ATF_TIMEOUTON 1 -#define ATF_ONOFFFEEDBACK 2 -#define ATF_AVAILABLE 4 /* May be obsolete. Not in recent MS docs. */ -#define WH_MIN (-1) -#define WH_MSGFILTER (-1) -#define WH_JOURNALRECORD 0 -#define WH_JOURNALPLAYBACK 1 -#define WH_KEYBOARD 2 -#define WH_GETMESSAGE 3 -#define WH_CALLWNDPROC 4 -#define WH_CBT 5 -#define WH_SYSMSGFILTER 6 -#define WH_MOUSE 7 -#define WH_HARDWARE 8 -#define WH_DEBUG 9 -#define WH_SHELL 10 -#define WH_FOREGROUNDIDLE 11 -#define WH_CALLWNDPROCRET 12 -#define WH_KEYBOARD_LL 13 -#define WH_MOUSE_LL 14 -#define WH_MAX 14 -#define WH_MINHOOK WH_MIN -#define WH_MAXHOOK WH_MAX -#define HC_ACTION 0 -#define HC_GETNEXT 1 -#define HC_SKIP 2 -#define HC_NOREMOVE 3 -#define HC_NOREM 3 -#define HC_SYSMODALON 4 -#define HC_SYSMODALOFF 5 -#define HCBT_MOVESIZE 0 -#define HCBT_MINMAX 1 -#define HCBT_QS 2 -#define HCBT_CREATEWND 3 -#define HCBT_DESTROYWND 4 -#define HCBT_ACTIVATE 5 -#define HCBT_CLICKSKIPPED 6 -#define HCBT_KEYSKIPPED 7 -#define HCBT_SYSCOMMAND 8 -#define HCBT_SETFOCUS 9 -#define CF_TEXT 1 -#define CF_BITMAP 2 -#define CF_METAFILEPICT 3 -#define CF_SYLK 4 -#define CF_DIF 5 -#define CF_TIFF 6 -#define CF_OEMTEXT 7 -#define CF_DIB 8 -#define CF_PALETTE 9 -#define CF_PENDATA 10 -#define CF_RIFF 11 -#define CF_WAVE 12 -#define CF_UNICODETEXT 13 -#define CF_ENHMETAFILE 14 -#define CF_HDROP 15 -#define CF_LOCALE 16 -#define CF_MAX 17 -#define CF_OWNERDISPLAY 128 -#define CF_DSPTEXT 129 -#define CF_DSPBITMAP 130 -#define CF_DSPMETAFILEPICT 131 -#define CF_DSPENHMETAFILE 142 -#define CF_PRIVATEFIRST 512 -#define CF_PRIVATELAST 767 -#define CF_GDIOBJFIRST 768 -#define CF_GDIOBJLAST 1023 -#define HKL_NEXT 1 -#define HKL_PREV 0 -#define KLF_ACTIVATE 1 -#define KLF_SUBSTITUTE_OK 2 -#define KLF_UNLOADPREVIOUS 4 -#define KLF_REORDER 8 -#define KLF_REPLACELANG 16 -#define KLF_NOTELLSHELL 128 -#define KLF_SETFORPROCESS 256 -#define KL_NAMELENGTH 9 -#define MF_ENABLED 0 -#define MF_GRAYED 1 -#define MF_DISABLED 2 -#define MF_BITMAP 4 -#define MF_CHECKED 8 -#define MF_MENUBARBREAK 32 -#define MF_MENUBREAK 64 -#define MF_OWNERDRAW 256 -#define MF_POPUP 16 -#define MF_SEPARATOR 0x800 -#define MF_STRING 0 -#define MF_UNCHECKED 0 -#define MF_DEFAULT 4096 -#define MF_SYSMENU 0x2000 -#define MF_HELP 0x4000 -#define MF_END 128 -#define MF_RIGHTJUSTIFY 0x4000 -#define MF_MOUSESELECT 0x8000 -#define MF_INSERT 0 -#define MF_CHANGE 128 -#define MF_APPEND 256 -#define MF_DELETE 512 -#define MF_REMOVE 4096 -#define MF_USECHECKBITMAPS 512 -#define MF_UNHILITE 0 -#define MF_HILITE 128 -#define BSF_IGNORECURRENTTASK 2 -#define BSF_QUERY 1 -#define BSF_FLUSHDISK 4 -#define BSF_NOHANG 8 -#define BSF_POSTMESSAGE 16 -#define BSF_FORCEIFHUNG 32 -#define BSF_NOTIMEOUTIFNOTHUNG 64 -#define BSM_ALLCOMPONENTS 0 -#define BSM_APPLICATIONS 8 -#define BSM_ALLDESKTOPS 16 -#define BSM_INSTALLABLEDRIVERS 4 -#define BSM_NETDRIVER 2 -#define BSM_VXDS 1 -#define BROADCAST_QUERY_DENY 1112363332 -#define ENUM_CURRENT_SETTINGS ((DWORD)-1) -#define ENUM_REGISTRY_SETTINGS ((DWORD)-2) -#define DM_BITSPERPEL 0x40000 -#define DM_PELSWIDTH 0x80000 -#define DM_PELSHEIGHT 0x100000 -#define DM_DISPLAYFLAGS 0x200000 -#define DM_DISPLAYFREQUENCY 0x400000 -#define CDS_UPDATEREGISTRY 1 -#define CDS_TEST 2 -#define CDS_FULLSCREEN 4 -#define CDS_GLOBAL 8 -#define CDS_SET_PRIMARY 16 -#define CDS_RESET 0x40000000 -#define CDS_SETRECT 0x20000000 -#define CDS_NORESET 0x10000000 -#define DISP_CHANGE_SUCCESSFUL 0 -#define DISP_CHANGE_RESTART 1 -#define DISP_CHANGE_BADFLAGS (-4) -#define DISP_CHANGE_BADPARAM (-5) -#define DISP_CHANGE_FAILED (-1) -#define DISP_CHANGE_BADMODE (-2) -#define DISP_CHANGE_NOTUPDATED (-3) -#define BST_CHECKED 1 -#define BST_INDETERMINATE 2 -#define BST_UNCHECKED 0 -#define BST_FOCUS 8 -#define BST_PUSHED 4 -#define MF_BYCOMMAND 0 -#define MF_BYPOSITION 1024 -#define MF_UNCHECKED 0 -#define MF_HILITE 128 -#define MF_UNHILITE 0 -#define CWP_ALL 0 -#define CWP_SKIPINVISIBLE 1 -#define CWP_SKIPDISABLED 2 -#define CWP_SKIPTRANSPARENT 4 -#define IMAGE_BITMAP 0 -#define IMAGE_ICON 1 -#define IMAGE_CURSOR 2 -#define IMAGE_ENHMETAFILE 3 -#define DF_ALLOWOTHERACCOUNTHOOK 1 -#define DESKTOP_CREATEMENU 4 -#define DESKTOP_CREATEWINDOW 2 -#define DESKTOP_ENUMERATE 64 -#define DESKTOP_HOOKCONTROL 8 -#define DESKTOP_JOURNALPLAYBACK 32 -#define DESKTOP_JOURNALRECORD 16 -#define DESKTOP_READOBJECTS 1 -#define DESKTOP_SWITCHDESKTOP 256 -#define DESKTOP_WRITEOBJECTS 128 -#define CW_USEDEFAULT 0x80000000 -#define WS_BORDER 0x800000 -#define WS_CAPTION 0xc00000 -#define WS_CHILD 0x40000000 -#define WS_CHILDWINDOW 0x40000000 -#define WS_CLIPCHILDREN 0x2000000 -#define WS_CLIPSIBLINGS 0x4000000 -#define WS_DISABLED 0x8000000 -#define WS_DLGFRAME 0x400000 -#define WS_GROUP 0x20000 -#define WS_HSCROLL 0x100000 -#define WS_ICONIC 0x20000000 -#define WS_MAXIMIZE 0x1000000 -#define WS_MAXIMIZEBOX 0x10000 -#define WS_MINIMIZE 0x20000000 -#define WS_MINIMIZEBOX 0x20000 -#define WS_OVERLAPPED 0 -#define WS_OVERLAPPEDWINDOW 0xcf0000 -#define WS_POPUP 0x80000000 -#define WS_POPUPWINDOW 0x80880000 -#define WS_SIZEBOX 0x40000 -#define WS_SYSMENU 0x80000 -#define WS_TABSTOP 0x10000 -#define WS_THICKFRAME 0x40000 -#define WS_TILED 0 -#define WS_TILEDWINDOW 0xcf0000 -#define WS_VISIBLE 0x10000000 -#define WS_VSCROLL 0x200000 -#define MDIS_ALLCHILDSTYLES 1 -#define BS_3STATE 5 -#define BS_AUTO3STATE 6 -#define BS_AUTOCHECKBOX 3 -#define BS_AUTORADIOBUTTON 9 -#define BS_BITMAP 128 -#define BS_BOTTOM 0x800 -#define BS_CENTER 0x300 -#define BS_CHECKBOX 2 -#define BS_DEFPUSHBUTTON 1 -#define BS_GROUPBOX 7 -#define BS_ICON 64 -#define BS_LEFT 256 -#define BS_LEFTTEXT 32 -#define BS_MULTILINE 0x2000 -#define BS_NOTIFY 0x4000 -#define BS_OWNERDRAW 0xb -#define BS_PUSHBUTTON 0 -#define BS_PUSHLIKE 4096 -#define BS_RADIOBUTTON 4 -#define BS_RIGHT 512 -#define BS_RIGHTBUTTON 32 -#define BS_TEXT 0 -#define BS_TOP 0x400 -#define BS_USERBUTTON 8 -#define BS_VCENTER 0xc00 -#define BS_FLAT 0x8000 -#define CBS_AUTOHSCROLL 64 -#define CBS_DISABLENOSCROLL 0x800 -#define CBS_DROPDOWN 2 -#define CBS_DROPDOWNLIST 3 -#define CBS_HASSTRINGS 512 -#define CBS_LOWERCASE 0x4000 -#define CBS_NOINTEGRALHEIGHT 0x400 -#define CBS_OEMCONVERT 128 -#define CBS_OWNERDRAWFIXED 16 -#define CBS_OWNERDRAWVARIABLE 32 -#define CBS_SIMPLE 1 -#define CBS_SORT 256 -#define CBS_UPPERCASE 0x2000 -#define ES_AUTOHSCROLL 128 -#define ES_AUTOVSCROLL 64 -#define ES_CENTER 1 -#define ES_LEFT 0 -#define ES_LOWERCASE 16 -#define ES_MULTILINE 4 -#define ES_NOHIDESEL 256 -#define ES_NUMBER 0x2000 -#define ES_OEMCONVERT 0x400 -#define ES_PASSWORD 32 -#define ES_READONLY 0x800 -#define ES_RIGHT 2 -#define ES_UPPERCASE 8 -#define ES_WANTRETURN 4096 -#define LBS_DISABLENOSCROLL 4096 -#define LBS_EXTENDEDSEL 0x800 -#define LBS_HASSTRINGS 64 -#define LBS_MULTICOLUMN 512 -#define LBS_MULTIPLESEL 8 -#define LBS_NODATA 0x2000 -#define LBS_NOINTEGRALHEIGHT 256 -#define LBS_NOREDRAW 4 -#define LBS_NOSEL 0x4000 -#define LBS_NOTIFY 1 -#define LBS_OWNERDRAWFIXED 16 -#define LBS_OWNERDRAWVARIABLE 32 -#define LBS_SORT 2 -#define LBS_STANDARD 0xa00003 -#define LBS_USETABSTOPS 128 -#define LBS_WANTKEYBOARDINPUT 0x400 -#define SBS_BOTTOMALIGN 4 -#define SBS_HORZ 0 -#define SBS_LEFTALIGN 2 -#define SBS_RIGHTALIGN 4 -#define SBS_SIZEBOX 8 -#define SBS_SIZEBOXBOTTOMRIGHTALIGN 4 -#define SBS_SIZEBOXTOPLEFTALIGN 2 -#define SBS_SIZEGRIP 16 -#define SBS_TOPALIGN 2 -#define SBS_VERT 1 -#define SS_BITMAP 14 -#define SS_BLACKFRAME 7 -#define SS_BLACKRECT 4 -#define SS_CENTER 1 -#define SS_CENTERIMAGE 512 -#define SS_ENHMETAFILE 15 -#define SS_ETCHEDFRAME 18 -#define SS_ETCHEDHORZ 16 -#define SS_ETCHEDVERT 17 -#define SS_GRAYFRAME 8 -#define SS_GRAYRECT 5 -#define SS_ICON 3 -#define SS_LEFT 0 -#define SS_LEFTNOWORDWRAP 0xc -#define SS_NOPREFIX 128 -#define SS_NOTIFY 256 -#define SS_OWNERDRAW 0xd -#define SS_REALSIZEIMAGE 0x800 -#define SS_RIGHT 2 -#define SS_RIGHTJUST 0x400 -#define SS_SIMPLE 11 -#define SS_SUNKEN 4096 -#define SS_WHITEFRAME 9 -#define SS_WHITERECT 6 -#define SS_USERITEM 10 -#define SS_TYPEMASK 0x0000001FL -#define SS_ENDELLIPSIS 0x00004000L -#define SS_PATHELLIPSIS 0x00008000L -#define SS_WORDELLIPSIS 0x0000C000L -#define SS_ELLIPSISMASK 0x0000C000L -#define DS_3DLOOK 4 -#define DS_ABSALIGN 1 -#define DS_CENTER 0x800 -#define DS_CENTERMOUSE 4096 -#define DS_CONTEXTHELP 0x2000 -#define DS_CONTROL 0x400 -#define DS_FIXEDSYS 8 -#define DS_LOCALEDIT 32 -#define DS_MODALFRAME 128 -#define DS_NOFAILCREATE 16 -#define DS_NOIDLEMSG 256 -#define DS_SETFONT 64 -#define DS_SETFOREGROUND 512 -#define DS_SYSMODAL 2 -#define WS_EX_ACCEPTFILES 16 -#define WS_EX_APPWINDOW 0x40000 -#define WS_EX_CLIENTEDGE 512 -#define WS_EX_COMPOSITED 0x2000000 /* XP */ -#define WS_EX_CONTEXTHELP 0x400 -#define WS_EX_CONTROLPARENT 0x10000 -#define WS_EX_DLGMODALFRAME 1 -#define WS_EX_LAYERED 0x80000 /* w2k */ -#define WS_EX_LAYOUTRTL 0x400000 /* w98, w2k */ -#define WS_EX_LEFT 0 -#define WS_EX_LEFTSCROLLBAR 0x4000 -#define WS_EX_LTRREADING 0 -#define WS_EX_MDICHILD 64 -#define WS_EX_NOACTIVATE 0x8000000 /* w2k */ -#define WS_EX_NOINHERITLAYOUT 0x100000 /* w2k */ -#define WS_EX_NOPARENTNOTIFY 4 -#define WS_EX_OVERLAPPEDWINDOW 0x300 -#define WS_EX_PALETTEWINDOW 0x188 -#define WS_EX_RIGHT 0x1000 -#define WS_EX_RIGHTSCROLLBAR 0 -#define WS_EX_RTLREADING 0x2000 -#define WS_EX_STATICEDGE 0x20000 -#define WS_EX_TOOLWINDOW 128 -#define WS_EX_TOPMOST 8 -#define WS_EX_TRANSPARENT 32 -#define WS_EX_WINDOWEDGE 256 -#define WINSTA_ACCESSCLIPBOARD 4 -#define WINSTA_ACCESSGLOBALATOMS 32 -#define WINSTA_CREATEDESKTOP 8 -#define WINSTA_ENUMDESKTOPS 1 -#define WINSTA_ENUMERATE 256 -#define WINSTA_EXITWINDOWS 64 -#define WINSTA_READATTRIBUTES 2 -#define WINSTA_READSCREEN 512 -#define WINSTA_WRITEATTRIBUTES 16 -#define DDL_READWRITE 0 -#define DDL_READONLY 1 -#define DDL_HIDDEN 2 -#define DDL_SYSTEM 4 -#define DDL_DIRECTORY 16 -#define DDL_ARCHIVE 32 -#define DDL_POSTMSGS 8192 -#define DDL_DRIVES 16384 -#define DDL_EXCLUSIVE 32768 -#define DC_ACTIVE 1 -#define DC_SMALLCAP 2 -#define DC_ICON 4 -#define DC_TEXT 8 -#define DC_INBUTTON 16 -#define DC_CAPTION (DC_ICON|DC_TEXT|DC_BUTTONS) -#define DC_NC (DC_CAPTION|DC_FRAME) -#define BDR_RAISEDOUTER 1 -#define BDR_SUNKENOUTER 2 -#define BDR_RAISEDINNER 4 -#define BDR_SUNKENINNER 8 -#define BDR_OUTER 3 -#define BDR_INNER 0xc -#define BDR_RAISED 5 -#define BDR_SUNKEN 10 -#define EDGE_RAISED (BDR_RAISEDOUTER|BDR_RAISEDINNER) -#define EDGE_SUNKEN (BDR_SUNKENOUTER|BDR_SUNKENINNER) -#define EDGE_ETCHED (BDR_SUNKENOUTER|BDR_RAISEDINNER) -#define EDGE_BUMP (BDR_RAISEDOUTER|BDR_SUNKENINNER) -#define BF_LEFT 1 -#define BF_TOP 2 -#define BF_RIGHT 4 -#define BF_BOTTOM 8 -#define BF_TOPLEFT (BF_TOP|BF_LEFT) -#define BF_TOPRIGHT (BF_TOP|BF_RIGHT) -#define BF_BOTTOMLEFT (BF_BOTTOM|BF_LEFT) -#define BF_BOTTOMRIGHT (BF_BOTTOM|BF_RIGHT) -#define BF_RECT (BF_LEFT|BF_TOP|BF_RIGHT|BF_BOTTOM) -#define BF_DIAGONAL 16 -#define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL|BF_TOP|BF_RIGHT) -#define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL|BF_TOP|BF_LEFT) -#define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL|BF_BOTTOM|BF_LEFT) -#define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL|BF_BOTTOM|BF_RIGHT) -#define BF_MIDDLE 0x800 -#define BF_SOFT 0x1000 -#define BF_ADJUST 0x2000 -#define BF_FLAT 0x4000 -#define BF_MONO 0x8000 -#define DFC_CAPTION 1 -#define DFC_MENU 2 -#define DFC_SCROLL 3 -#define DFC_BUTTON 4 -#define DFCS_CAPTIONCLOSE 0 -#define DFCS_CAPTIONMIN 1 -#define DFCS_CAPTIONMAX 2 -#define DFCS_CAPTIONRESTORE 3 -#define DFCS_CAPTIONHELP 4 -#define DFCS_MENUARROW 0 -#define DFCS_MENUCHECK 1 -#define DFCS_MENUBULLET 2 -#define DFCS_MENUARROWRIGHT 4 -#define DFCS_SCROLLUP 0 -#define DFCS_SCROLLDOWN 1 -#define DFCS_SCROLLLEFT 2 -#define DFCS_SCROLLRIGHT 3 -#define DFCS_SCROLLCOMBOBOX 5 -#define DFCS_SCROLLSIZEGRIP 8 -#define DFCS_SCROLLSIZEGRIPRIGHT 16 -#define DFCS_BUTTONCHECK 0 -#define DFCS_BUTTONRADIOIMAGE 1 -#define DFCS_BUTTONRADIOMASK 2 -#define DFCS_BUTTONRADIO 4 -#define DFCS_BUTTON3STATE 8 -#define DFCS_BUTTONPUSH 16 -#define DFCS_INACTIVE 256 -#define DFCS_PUSHED 512 -#define DFCS_CHECKED 1024 -#define DFCS_ADJUSTRECT 0x2000 -#define DFCS_FLAT 0x4000 -#define DFCS_MONO 0x8000 -#define DST_COMPLEX 0 -#define DST_TEXT 1 -#define DST_PREFIXTEXT 2 -#define DST_ICON 3 -#define DST_BITMAP 4 -#define DSS_NORMAL 0 -#define DSS_UNION 16 -#define DSS_DISABLED 32 -#define DSS_MONO 128 -#define DSS_RIGHT 0x8000 -#define DT_BOTTOM 8 -#define DT_CALCRECT 1024 -#define DT_CENTER 1 -#define DT_EDITCONTROL 8192 -#define DT_END_ELLIPSIS 32768 -#define DT_PATH_ELLIPSIS 16384 -#define DT_WORD_ELLIPSIS 0x40000 -#define DT_EXPANDTABS 64 -#define DT_EXTERNALLEADING 512 -#define DT_LEFT 0 -#define DT_MODIFYSTRING 65536 -#define DT_NOCLIP 256 -#define DT_NOPREFIX 2048 -#define DT_RIGHT 2 -#define DT_RTLREADING 131072 -#define DT_SINGLELINE 32 -#define DT_TABSTOP 128 -#define DT_TOP 0 -#define DT_VCENTER 4 -#define DT_WORDBREAK 16 -#define DT_INTERNAL 4096 -#define WB_ISDELIMITER 2 -#define WB_LEFT 0 -#define WB_RIGHT 1 -#define SB_HORZ 0 -#define SB_VERT 1 -#define SB_CTL 2 -#define SB_BOTH 3 -#define ESB_DISABLE_BOTH 3 -#define ESB_DISABLE_DOWN 2 -#define ESB_DISABLE_LEFT 1 -#define ESB_DISABLE_LTUP 1 -#define ESB_DISABLE_RIGHT 2 -#define ESB_DISABLE_RTDN 2 -#define ESB_DISABLE_UP 1 -#define ESB_ENABLE_BOTH 0 -#define SB_LINEUP 0 -#define SB_LINEDOWN 1 -#define SB_LINELEFT 0 -#define SB_LINERIGHT 1 -#define SB_PAGEUP 2 -#define SB_PAGEDOWN 3 -#define SB_PAGELEFT 2 -#define SB_PAGERIGHT 3 -#define SB_THUMBPOSITION 4 -#define SB_THUMBTRACK 5 -#define SB_ENDSCROLL 8 -#define SB_LEFT 6 -#define SB_RIGHT 7 -#define SB_BOTTOM 7 -#define SB_TOP 6 -#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i))) -#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i))) -#ifndef XFree86Server -# define RT_CURSOR MAKEINTRESOURCE(1) -# define RT_FONT MAKEINTRESOURCE(8) -#endif /* ndef XFree86Server */ -#define RT_BITMAP MAKEINTRESOURCE(2) -#define RT_ICON MAKEINTRESOURCE(3) -#define RT_MENU MAKEINTRESOURCE(4) -#define RT_DIALOG MAKEINTRESOURCE(5) -#define RT_STRING MAKEINTRESOURCE(6) -#define RT_FONTDIR MAKEINTRESOURCE(7) -#define RT_ACCELERATOR MAKEINTRESOURCE(9) -#define RT_RCDATA MAKEINTRESOURCE(10) -#define RT_MESSAGETABLE MAKEINTRESOURCE(11) -#define DIFFERENCE 11 -#define RT_GROUP_CURSOR MAKEINTRESOURCE((DWORD)RT_CURSOR+DIFFERENCE) -#define RT_GROUP_ICON MAKEINTRESOURCE((DWORD)RT_ICON+DIFFERENCE) -#define RT_VERSION MAKEINTRESOURCE(16) -#define RT_DLGINCLUDE MAKEINTRESOURCE(17) -#define RT_PLUGPLAY MAKEINTRESOURCE(19) -#define RT_VXD MAKEINTRESOURCE(20) -#define RT_ANICURSOR MAKEINTRESOURCE(21) -#define RT_ANIICON MAKEINTRESOURCE(22) -#define RT_HTML MAKEINTRESOURCE(23) -#define EWX_FORCE 4 -#define EWX_LOGOFF 0 -#define EWX_POWEROFF 8 -#define EWX_REBOOT 2 -#define EWX_SHUTDOWN 1 -#define CS_BYTEALIGNCLIENT 4096 -#define CS_BYTEALIGNWINDOW 8192 -#define CS_KEYCVTWINDOW 4 -#define CS_NOKEYCVT 256 -#define CS_CLASSDC 64 -#define CS_DBLCLKS 8 -#define CS_GLOBALCLASS 16384 -#define CS_HREDRAW 2 -#define CS_NOCLOSE 512 -#define CS_OWNDC 32 -#define CS_PARENTDC 128 -#define CS_SAVEBITS 2048 -#define CS_VREDRAW 1 -#define CS_IME 0x10000 -#define GCW_ATOM (-32) -#define GCL_CBCLSEXTRA (-20) -#define GCL_CBWNDEXTRA (-18) -#define GCL_HBRBACKGROUND (-10) -#define GCL_HCURSOR (-12) -#define GCL_HICON (-14) -#define GCL_HICONSM (-34) -#define GCL_HMODULE (-16) -#define GCL_MENUNAME (-8) -#define GCL_STYLE (-26) -#define GCL_WNDPROC (-24) -#if 0 - /* This is supposed to be defined by the program using it not defined - in the win32api headers. I've left it here for documentation purposes. - */ -#ifndef IDC_STATIC /* May be predefined by resource compiler. */ -#define IDC_STATIC (-1) -#endif -#endif -#define IDC_ARROW MAKEINTRESOURCE(32512) -#define IDC_IBEAM MAKEINTRESOURCE(32513) -#define IDC_WAIT MAKEINTRESOURCE(32514) -#define IDC_CROSS MAKEINTRESOURCE(32515) -#define IDC_UPARROW MAKEINTRESOURCE(32516) -#define IDC_SIZENWSE MAKEINTRESOURCE(32642) -#define IDC_SIZENESW MAKEINTRESOURCE(32643) -#define IDC_SIZEWE MAKEINTRESOURCE(32644) -#define IDC_SIZENS MAKEINTRESOURCE(32645) -#define IDC_SIZEALL MAKEINTRESOURCE(32646) -#define IDC_NO MAKEINTRESOURCE(32648) -#define IDC_HAND MAKEINTRESOURCE(32649) -#define IDC_APPSTARTING MAKEINTRESOURCE(32650) -#define IDC_HELP MAKEINTRESOURCE(32651) -#define IDC_ICON MAKEINTRESOURCE(32641) -#define IDC_SIZE MAKEINTRESOURCE(32640) -#ifndef RC_INVOKED -#define IDI_APPLICATION MAKEINTRESOURCE(32512) -#define IDI_HAND MAKEINTRESOURCE(32513) -#define IDI_QUESTION MAKEINTRESOURCE(32514) -#define IDI_EXCLAMATION MAKEINTRESOURCE(32515) -#define IDI_ASTERISK MAKEINTRESOURCE(32516) -#define IDI_WINLOGO MAKEINTRESOURCE(32517) -#else -#define IDI_APPLICATION 32512 -#define IDI_HAND 32513 -#define IDI_QUESTION 32514 -#define IDI_EXCLAMATION 32515 -#define IDI_ASTERISK 32516 -#define IDI_WINLOGO 32517 -#endif -#define IDI_WARNING IDI_EXCLAMATION -#define IDI_ERROR IDI_HAND -#define IDI_INFORMATION IDI_ASTERISK -#define MIIM_STATE 1 -#define MIIM_ID 2 -#define MIIM_SUBMENU 4 -#define MIIM_CHECKMARKS 8 -#define MIIM_TYPE 16 -#define MIIM_DATA 32 -#define MIIM_STRING 64 -#define MIIM_BITMAP 128 -#define MIIM_FTYPE 256 -#define MFT_BITMAP 4 -#define MFT_MENUBARBREAK 32 -#define MFT_MENUBREAK 64 -#define MFT_OWNERDRAW 256 -#define MFT_RADIOCHECK 512 -#define MFT_RIGHTJUSTIFY 0x4000 -#define MFT_SEPARATOR 0x800 -#define MFT_RIGHTORDER 0x2000L -#define MFT_STRING 0 -#define MFS_CHECKED 8 -#define MFS_DEFAULT 4096 -#define MFS_DISABLED 3 -#define MFS_ENABLED 0 -#define MFS_GRAYED 3 -#define MFS_HILITE 128 -#define MFS_UNCHECKED 0 -#define MFS_UNHILITE 0 -#define GW_HWNDNEXT 2 -#define GW_HWNDPREV 3 -#define GW_CHILD 5 -#define GW_HWNDFIRST 0 -#define GW_HWNDLAST 1 -#define GW_OWNER 4 -#define SW_HIDE 0 -#define SW_NORMAL 1 -#define SW_SHOWNORMAL 1 -#define SW_SHOWMINIMIZED 2 -#define SW_MAXIMIZE 3 -#define SW_SHOWMAXIMIZED 3 -#define SW_SHOWNOACTIVATE 4 -#define SW_SHOW 5 -#define SW_MINIMIZE 6 -#define SW_SHOWMINNOACTIVE 7 -#define SW_SHOWNA 8 -#define SW_RESTORE 9 -#define SW_SHOWDEFAULT 10 -#define SW_FORCEMINIMIZE 11 -#define SW_MAX 11 -#define MB_USERICON 128 -#define MB_ICONASTERISK 64 -#define MB_ICONEXCLAMATION 0x30 -#define MB_ICONWARNING 0x30 -#define MB_ICONERROR 16 -#define MB_ICONHAND 16 -#define MB_ICONQUESTION 32 -#define MB_OK 0 -#define MB_ABORTRETRYIGNORE 2 -#define MB_APPLMODAL 0 -#define MB_DEFAULT_DESKTOP_ONLY 0x20000 -#define MB_HELP 0x4000 -#define MB_RIGHT 0x80000 -#define MB_RTLREADING 0x100000 -#define MB_TOPMOST 0x40000 -#define MB_DEFBUTTON1 0 -#define MB_DEFBUTTON2 256 -#define MB_DEFBUTTON3 512 -#define MB_DEFBUTTON4 0x300 -#define MB_ICONINFORMATION 64 -#define MB_ICONSTOP 16 -#define MB_OKCANCEL 1 -#define MB_RETRYCANCEL 5 -#ifdef _WIN32_WINNT -#if (_WIN32_WINNT >= 0x0400) -#define MB_SERVICE_NOTIFICATION 0x00200000 -#else -#define MB_SERVICE_NOTIFICATION 0x00040000 -#endif -#define MB_SERVICE_NOTIFICATION_NT3X 0x00040000 -#endif -#define MB_SETFOREGROUND 0x10000 -#define MB_SYSTEMMODAL 4096 -#define MB_TASKMODAL 0x2000 -#define MB_YESNO 4 -#define MB_YESNOCANCEL 3 -#define MB_ICONMASK 240 -#define MB_DEFMASK 3840 -#define MB_MODEMASK 0x00003000 -#define MB_MISCMASK 0x0000C000 -#define MB_NOFOCUS 0x00008000 -#define MB_TYPEMASK 15 -#define MB_TOPMOST 0x40000 -#define IDABORT 3 -#define IDCANCEL 2 -#define IDCLOSE 8 -#define IDHELP 9 -#define IDIGNORE 5 -#define IDNO 7 -#define IDOK 1 -#define IDRETRY 4 -#define IDYES 6 -#define GWL_EXSTYLE (-20) -#define GWL_STYLE (-16) -#define GWL_WNDPROC (-4) -#define GWLP_WNDPROC (-4) -#define GWL_HINSTANCE (-6) -#define GWLP_HINSTANCE (-6) -#define GWL_HWNDPARENT (-8) -#define GWLP_HWNDPARENT (-8) -#define GWL_ID (-12) -#define GWLP_ID (-12) -#define GWL_USERDATA (-21) -#define GWLP_USERDATA (-21) -#define DWL_DLGPROC 4 -#define DWLP_DLGPROC 4 -#define DWL_MSGRESULT 0 -#define DWLP_MSGRESULT 0 -#define DWL_USER 8 -#define DWLP_USER 8 -#define QS_ALLEVENTS 191 -#define QS_ALLINPUT 255 -#define QS_HOTKEY 128 -#define QS_INPUT 7 -#define QS_KEY 1 -#define QS_MOUSE 6 -#define QS_MOUSEBUTTON 4 -#define QS_MOUSEMOVE 2 -#define QS_PAINT 32 -#define QS_POSTMESSAGE 8 -#define QS_SENDMESSAGE 64 -#define QS_TIMER 16 -#define COLOR_3DDKSHADOW 21 -#define COLOR_3DFACE 15 -#define COLOR_3DHILIGHT 20 -#define COLOR_3DHIGHLIGHT 20 -#define COLOR_3DLIGHT 22 -#define COLOR_BTNHILIGHT 20 -#define COLOR_3DSHADOW 16 -#define COLOR_ACTIVEBORDER 10 -#define COLOR_ACTIVECAPTION 2 -#define COLOR_APPWORKSPACE 12 -#define COLOR_BACKGROUND 1 -#define COLOR_DESKTOP 1 -#define COLOR_BTNFACE 15 -#define COLOR_BTNHIGHLIGHT 20 -#define COLOR_BTNSHADOW 16 -#define COLOR_BTNTEXT 18 -#define COLOR_CAPTIONTEXT 9 -#define COLOR_GRAYTEXT 17 -#define COLOR_HIGHLIGHT 13 -#define COLOR_HIGHLIGHTTEXT 14 -#define COLOR_INACTIVEBORDER 11 -#define COLOR_INACTIVECAPTION 3 -#define COLOR_INACTIVECAPTIONTEXT 19 -#define COLOR_INFOBK 24 -#define COLOR_INFOTEXT 23 -#define COLOR_MENU 4 -#define COLOR_MENUTEXT 7 -#define COLOR_SCROLLBAR 0 -#define COLOR_WINDOW 5 -#define COLOR_WINDOWFRAME 6 -#define COLOR_WINDOWTEXT 8 -#define CTLCOLOR_MSGBOX 0 -#define CTLCOLOR_EDIT 1 -#define CTLCOLOR_LISTBOX 2 -#define CTLCOLOR_BTN 3 -#define CTLCOLOR_DLG 4 -#define CTLCOLOR_SCROLLBAR 5 -#define CTLCOLOR_STATIC 6 -#define CTLCOLOR_MAX 7 -#define SM_CXSCREEN 0 -#define SM_CYSCREEN 1 -#define SM_CXVSCROLL 2 -#define SM_CYHSCROLL 3 -#define SM_CYCAPTION 4 -#define SM_CXBORDER 5 -#define SM_CYBORDER 6 -#define SM_CXDLGFRAME 7 -#define SM_CXFIXEDFRAME 7 -#define SM_CYDLGFRAME 8 -#define SM_CYFIXEDFRAME 8 -#define SM_CYVTHUMB 9 -#define SM_CXHTHUMB 10 -#define SM_CXICON 11 -#define SM_CYICON 12 -#define SM_CXCURSOR 13 -#define SM_CYCURSOR 14 -#define SM_CYMENU 15 -#define SM_CXFULLSCREEN 16 -#define SM_CYFULLSCREEN 17 -#define SM_CYKANJIWINDOW 18 -#define SM_MOUSEPRESENT 19 -#define SM_CYVSCROLL 20 -#define SM_CXHSCROLL 21 -#define SM_DEBUG 22 -#define SM_SWAPBUTTON 23 -#define SM_RESERVED1 24 -#define SM_RESERVED2 25 -#define SM_RESERVED3 26 -#define SM_RESERVED4 27 -#define SM_CXMIN 28 -#define SM_CYMIN 29 -#define SM_CXSIZE 30 -#define SM_CYSIZE 31 -#define SM_CXSIZEFRAME 32 -#define SM_CXFRAME 32 -#define SM_CYSIZEFRAME 33 -#define SM_CYFRAME 33 -#define SM_CXMINTRACK 34 -#define SM_CYMINTRACK 35 -#define SM_CXDOUBLECLK 36 -#define SM_CYDOUBLECLK 37 -#define SM_CXICONSPACING 38 -#define SM_CYICONSPACING 39 -#define SM_MENUDROPALIGNMENT 40 -#define SM_PENWINDOWS 41 -#define SM_DBCSENABLED 42 -#define SM_CMOUSEBUTTONS 43 -#define SM_SECURE 44 -#define SM_CXEDGE 45 -#define SM_CYEDGE 46 -#define SM_CXMINSPACING 47 -#define SM_CYMINSPACING 48 -#define SM_CXSMICON 49 -#define SM_CYSMICON 50 -#define SM_CYSMCAPTION 51 -#define SM_CXSMSIZE 52 -#define SM_CYSMSIZE 53 -#define SM_CXMENUSIZE 54 -#define SM_CYMENUSIZE 55 -#define SM_ARRANGE 56 -#define SM_CXMINIMIZED 57 -#define SM_CYMINIMIZED 58 -#define SM_CXMAXTRACK 59 -#define SM_CYMAXTRACK 60 -#define SM_CXMAXIMIZED 61 -#define SM_CYMAXIMIZED 62 -#define SM_NETWORK 63 -#define LR_DEFAULTSIZE 64 -#define SM_CLEANBOOT 67 -#define SM_CXDRAG 68 -#define SM_CYDRAG 69 -#define SM_SHOWSOUNDS 70 -#define SM_CXMENUCHECK 71 -#define SM_CYMENUCHECK 72 -#define SM_SLOWMACHINE 73 -#define SM_MIDEASTENABLED 74 -#define SM_MOUSEWHEELPRESENT 75 -#define SM_XVIRTUALSCREEN 76 -#define SM_YVIRTUALSCREEN 77 -#define SM_CXVIRTUALSCREEN 78 -#define SM_CYVIRTUALSCREEN 79 -#define SM_CMONITORS 80 -#define SM_SAMEDISPLAYFORMAT 81 -#if (_WIN32_WINNT < 0x0400) -#define SM_CMETRICS 76 -#else -#define SM_CMETRICS 83 -#endif -#define ARW_BOTTOMLEFT 0 -#define ARW_BOTTOMRIGHT 1 -#define ARW_HIDE 8 -#define ARW_TOPLEFT 2 -#define ARW_TOPRIGHT 3 -#define ARW_DOWN 4 -#define ARW_LEFT 0 -#define ARW_RIGHT 0 -#define ARW_UP 4 -#define UOI_FLAGS 1 -#define UOI_NAME 2 -#define UOI_TYPE 3 -#define UOI_USER_SID 4 -#define LR_DEFAULTCOLOR 0 -#define LR_MONOCHROME 1 -#define LR_COLOR 2 -#define LR_COPYRETURNORG 4 -#define LR_COPYDELETEORG 8 -#define LR_LOADFROMFILE 16 -#define LR_LOADTRANSPARENT 32 -#define LR_LOADREALSIZE 128 -#define LR_LOADMAP3DCOLORS 4096 -#define LR_CREATEDIBSECTION 8192 -#define LR_COPYFROMRESOURCE 0x4000 -#define LR_SHARED 32768 -#define KEYEVENTF_EXTENDEDKEY 1 -#define KEYEVENTF_KEYUP 2 -#define OBM_BTNCORNERS 32758 -#define OBM_BTSIZE 32761 -#define OBM_CHECK 32760 -#define OBM_CHECKBOXES 32759 -#define OBM_CLOSE 32754 -#define OBM_COMBO 32738 -#define OBM_DNARROW 32752 -#define OBM_DNARROWD 32742 -#define OBM_DNARROWI 32736 -#define OBM_LFARROW 32750 -#define OBM_LFARROWI 32734 -#define OBM_LFARROWD 32740 -#define OBM_MNARROW 32739 -#define OBM_OLD_CLOSE 32767 -#define OBM_OLD_DNARROW 32764 -#define OBM_OLD_LFARROW 32762 -#define OBM_OLD_REDUCE 32757 -#define OBM_OLD_RESTORE 32755 -#define OBM_OLD_RGARROW 32763 -#define OBM_OLD_UPARROW 32765 -#define OBM_OLD_ZOOM 32756 -#define OBM_REDUCE 32749 -#define OBM_REDUCED 32746 -#define OBM_RESTORE 32747 -#define OBM_RESTORED 32744 -#define OBM_RGARROW 32751 -#define OBM_RGARROWD 32741 -#define OBM_RGARROWI 32735 -#define OBM_SIZE 32766 -#define OBM_UPARROW 32753 -#define OBM_UPARROWD 32743 -#define OBM_UPARROWI 32737 -#define OBM_ZOOM 32748 -#define OBM_ZOOMD 32745 -#define OCR_NORMAL 32512 -#define OCR_IBEAM 32513 -#define OCR_WAIT 32514 -#define OCR_CROSS 32515 -#define OCR_UP 32516 -#define OCR_SIZE 32640 -#define OCR_ICON 32641 -#define OCR_SIZENWSE 32642 -#define OCR_SIZENESW 32643 -#define OCR_SIZEWE 32644 -#define OCR_SIZENS 32645 -#define OCR_SIZEALL 32646 -#define OCR_NO 32648 -#define OCR_APPSTARTING 32650 -#define OIC_SAMPLE 32512 -#define OIC_HAND 32513 -#define OIC_QUES 32514 -#define OIC_BANG 32515 -#define OIC_NOTE 32516 -#define OIC_WINLOGO 32517 -#define OIC_WARNING OIC_BANG -#define OIC_ERROR OIC_HAND -#define OIC_INFORMATION OIC_NOTE -#define HELPINFO_MENUITEM 2 -#define HELPINFO_WINDOW 1 -#define MSGF_DIALOGBOX 0 -#define MSGF_MESSAGEBOX 1 -#define MSGF_MENU 2 -#define MSGF_MOVE 3 -#define MSGF_SIZE 4 -#define MSGF_SCROLLBAR 5 -#define MSGF_NEXTWINDOW 6 -#define MSGF_MAINLOOP 8 -#define MSGF_USER 4096 -#define MOUSEEVENTF_MOVE 1 -#define MOUSEEVENTF_LEFTDOWN 2 -#define MOUSEEVENTF_LEFTUP 4 -#define MOUSEEVENTF_RIGHTDOWN 8 -#define MOUSEEVENTF_RIGHTUP 16 -#define MOUSEEVENTF_MIDDLEDOWN 32 -#define MOUSEEVENTF_MIDDLEUP 64 -#define MOUSEEVENTF_WHEEL 0x0800 -#define MOUSEEVENTF_ABSOLUTE 32768 -#define PM_NOREMOVE 0 -#define PM_REMOVE 1 -#define PM_NOYIELD 2 -#define HWND_BROADCAST ((HWND)0xffff) -#define HWND_BOTTOM ((HWND)1) -#define HWND_NOTOPMOST ((HWND)(-2)) -#define HWND_TOP ((HWND)0) -#define HWND_TOPMOST ((HWND)(-1)) -#define HWND_DESKTOP (HWND)0 -#define HWND_MESSAGE ((HWND)(-3)) /* w2k */ -#define RDW_ERASE 4 -#define RDW_FRAME 1024 -#define RDW_INTERNALPAINT 2 -#define RDW_INVALIDATE 1 -#define RDW_NOERASE 32 -#define RDW_NOFRAME 2048 -#define RDW_NOINTERNALPAINT 16 -#define RDW_VALIDATE 8 -#define RDW_ERASENOW 512 -#define RDW_UPDATENOW 256 -#define RDW_ALLCHILDREN 128 -#define RDW_NOCHILDREN 64 -#define SMTO_ABORTIFHUNG 2 -#define SMTO_BLOCK 1 -#define SMTO_NORMAL 0 -#define SIF_ALL 23 -#define SIF_PAGE 2 -#define SIF_POS 4 -#define SIF_RANGE 1 -#define SIF_DISABLENOSCROLL 8 -#define SIF_TRACKPOS 16 -#define SWP_DRAWFRAME 32 -#define SWP_FRAMECHANGED 32 -#define SWP_HIDEWINDOW 128 -#define SWP_NOACTIVATE 16 -#define SWP_NOCOPYBITS 256 -#define SWP_NOMOVE 2 -#define SWP_NOSIZE 1 -#define SWP_NOREDRAW 8 -#define SWP_NOZORDER 4 -#define SWP_SHOWWINDOW 64 -#define SWP_NOOWNERZORDER 512 -#define SWP_NOREPOSITION 512 -#define SWP_NOSENDCHANGING 1024 -#define SWP_DEFERERASE 8192 -#define SWP_ASYNCWINDOWPOS 16384 -#define HSHELL_ACTIVATESHELLWINDOW 3 -#define HSHELL_GETMINRECT 5 -#define HSHELL_LANGUAGE 8 -#define HSHELL_REDRAW 6 -#define HSHELL_TASKMAN 7 -#define HSHELL_WINDOWACTIVATED 4 -#define HSHELL_WINDOWCREATED 1 -#define HSHELL_WINDOWDESTROYED 2 -#define SPI_GETACCESSTIMEOUT 60 -#define SPI_GETANIMATION 72 -#define SPI_GETBEEP 1 -#define SPI_GETBORDER 5 -#define SPI_GETDEFAULTINPUTLANG 89 -#define SPI_GETDRAGFULLWINDOWS 38 -#define SPI_GETFASTTASKSWITCH 35 -#define SPI_GETFILTERKEYS 50 -#define SPI_GETFONTSMOOTHING 74 -#define SPI_GETGRIDGRANULARITY 18 -#define SPI_GETHIGHCONTRAST 66 -#define SPI_GETICONMETRICS 45 -#define SPI_GETICONTITLELOGFONT 31 -#define SPI_GETICONTITLEWRAP 25 -#define SPI_GETKEYBOARDDELAY 22 -#define SPI_GETKEYBOARDPREF 68 -#define SPI_GETKEYBOARDSPEED 10 -#define SPI_GETLOWPOWERACTIVE 83 -#define SPI_GETLOWPOWERTIMEOUT 79 -#define SPI_GETMENUDROPALIGNMENT 27 -#define SPI_GETMINIMIZEDMETRICS 43 -#define SPI_GETMOUSE 3 -#define SPI_GETMOUSEKEYS 54 -#define SPI_GETMOUSETRAILS 94 -#define SPI_GETNONCLIENTMETRICS 41 -#define SPI_GETPOWEROFFACTIVE 84 -#define SPI_GETPOWEROFFTIMEOUT 80 -#define SPI_GETSCREENREADER 70 -#define SPI_GETSCREENSAVEACTIVE 16 -#define SPI_GETSCREENSAVETIMEOUT 14 -#define SPI_GETSERIALKEYS 62 -#define SPI_GETSHOWSOUNDS 56 -#define SPI_GETSOUNDSENTRY 64 -#define SPI_GETSTICKYKEYS 58 -#define SPI_GETTOGGLEKEYS 52 -#define SPI_GETWINDOWSEXTENSION 92 -#define SPI_GETWORKAREA 48 -#define SPI_ICONHORIZONTALSPACING 13 -#define SPI_ICONVERTICALSPACING 24 -#define SPI_LANGDRIVER 12 -#define SPI_SCREENSAVERRUNNING 97 -#define SPI_SETACCESSTIMEOUT 61 -#define SPI_SETANIMATION 73 -#define SPI_SETBEEP 2 -#define SPI_SETBORDER 6 -#define SPI_SETDEFAULTINPUTLANG 90 -#define SPI_SETDESKPATTERN 21 -#define SPI_SETDESKWALLPAPER 20 -#define SPI_SETDOUBLECLICKTIME 32 -#define SPI_SETDOUBLECLKHEIGHT 30 -#define SPI_SETDOUBLECLKWIDTH 29 -#define SPI_SETDRAGFULLWINDOWS 37 -#define SPI_SETDRAGHEIGHT 77 -#define SPI_SETDRAGWIDTH 76 -#define SPI_SETFASTTASKSWITCH 36 -#define SPI_SETFILTERKEYS 51 -#define SPI_SETFONTSMOOTHING 75 -#define SPI_SETGRIDGRANULARITY 19 -#define SPI_SETHANDHELD 78 -#define SPI_SETHIGHCONTRAST 67 -#define SPI_SETICONMETRICS 46 -#define SPI_SETICONTITLELOGFONT 34 -#define SPI_SETICONTITLEWRAP 26 -#define SPI_SETKEYBOARDDELAY 23 -#define SPI_SETKEYBOARDPREF 69 -#define SPI_SETKEYBOARDSPEED 11 -#define SPI_SETLANGTOGGLE 91 -#define SPI_SETLOWPOWERACTIVE 85 -#define SPI_SETLOWPOWERTIMEOUT 81 -#define SPI_SETMENUDROPALIGNMENT 28 -#define SPI_SETMINIMIZEDMETRICS 44 -#define SPI_SETMOUSE 4 -#define SPI_SETMOUSEBUTTONSWAP 33 -#define SPI_SETMOUSEKEYS 55 -#define SPI_SETMOUSETRAILS 93 -#define SPI_SETNONCLIENTMETRICS 42 -#define SPI_SETPENWINDOWS 49 -#define SPI_SETPOWEROFFACTIVE 86 -#define SPI_SETPOWEROFFTIMEOUT 82 -#define SPI_SETSCREENREADER 71 -#define SPI_SETSCREENSAVEACTIVE 17 -#define SPI_SETSCREENSAVERRUNNING 97 -#define SPI_SETSCREENSAVETIMEOUT 15 -#define SPI_SETSERIALKEYS 63 -#define SPI_SETSHOWSOUNDS 57 -#define SPI_SETSOUNDSENTRY 65 -#define SPI_SETSTICKYKEYS 59 -#define SPI_SETTOGGLEKEYS 53 -#define SPI_SETWORKAREA 47 -#define SPIF_UPDATEINIFILE 1 -#define SPIF_SENDWININICHANGE 2 -#define SPIF_SENDCHANGE 2 -#define ATF_ONOFFFEEDBACK 2 -#define ATF_TIMEOUTON 1 -#define WM_APP 32768 -#define WM_ACTIVATE 6 -#define WM_ACTIVATEAPP 28 -/* FIXME/CHECK: Are WM_AFX{FIRST,LAST} valid for WINVER < 0x400? */ -#define WM_AFXFIRST 864 -#define WM_AFXLAST 895 -#define WM_ASKCBFORMATNAME 780 -#define WM_CANCELJOURNAL 75 -#define WM_CANCELMODE 31 -#define WM_CAPTURECHANGED 533 -#define WM_CHANGECBCHAIN 781 -#define WM_CHAR 258 -#define WM_CHARTOITEM 47 -#define WM_CHILDACTIVATE 34 -#define WM_CLEAR 771 -#define WM_CLOSE 16 -#define WM_COMMAND 273 -#define WM_COMMNOTIFY 68 /* obsolete */ -#define WM_COMPACTING 65 -#define WM_COMPAREITEM 57 -#define WM_CONTEXTMENU 123 -#define WM_COPY 769 -#define WM_COPYDATA 74 -#define WM_CREATE 1 -#define WM_CTLCOLORBTN 309 -#define WM_CTLCOLORDLG 310 -#define WM_CTLCOLOREDIT 307 -#define WM_CTLCOLORLISTBOX 308 -#define WM_CTLCOLORMSGBOX 306 -#define WM_CTLCOLORSCROLLBAR 311 -#define WM_CTLCOLORSTATIC 312 -#define WM_CUT 768 -#define WM_DEADCHAR 259 -#define WM_DELETEITEM 45 -#define WM_DESTROY 2 -#define WM_DESTROYCLIPBOARD 775 -#define WM_DEVICECHANGE 537 -#define WM_DEVMODECHANGE 27 -#define WM_DISPLAYCHANGE 126 -#define WM_DRAWCLIPBOARD 776 -#define WM_DRAWITEM 43 -#define WM_DROPFILES 563 -#define WM_ENABLE 10 -#define WM_ENDSESSION 22 -#define WM_ENTERIDLE 289 -#define WM_ENTERMENULOOP 529 -#define WM_ENTERSIZEMOVE 561 -#define WM_ERASEBKGND 20 -#define WM_EXITMENULOOP 530 -#define WM_EXITSIZEMOVE 562 -#define WM_FONTCHANGE 29 -#define WM_GETDLGCODE 135 -#define WM_GETFONT 49 -#define WM_GETHOTKEY 51 -#define WM_GETICON 127 -#define WM_GETMINMAXINFO 36 -#define WM_GETTEXT 13 -#define WM_GETTEXTLENGTH 14 -/* FIXME/CHECK: Are WM_HANDHEL{FIRST,LAST} valid for WINVER < 0x400? */ -#define WM_HANDHELDFIRST 856 -#define WM_HANDHELDLAST 863 -#define WM_HELP 83 -#define WM_HOTKEY 786 -#define WM_HSCROLL 276 -#define WM_HSCROLLCLIPBOARD 782 -#define WM_ICONERASEBKGND 39 -#define WM_INITDIALOG 272 -#define WM_INITMENU 278 -#define WM_INITMENUPOPUP 279 -#define WM_INPUTLANGCHANGE 81 -#define WM_INPUTLANGCHANGEREQUEST 80 -#define WM_KEYDOWN 256 -#define WM_KEYUP 257 -#define WM_KILLFOCUS 8 -#define WM_MDIACTIVATE 546 -#define WM_MDICASCADE 551 -#define WM_MDICREATE 544 -#define WM_MDIDESTROY 545 -#define WM_MDIGETACTIVE 553 -#define WM_MDIICONARRANGE 552 -#define WM_MDIMAXIMIZE 549 -#define WM_MDINEXT 548 -#define WM_MDIREFRESHMENU 564 -#define WM_MDIRESTORE 547 -#define WM_MDISETMENU 560 -#define WM_MDITILE 550 -#define WM_MEASUREITEM 44 -#define WM_MENUCHAR 288 -#define WM_MENUSELECT 287 -#define WM_NEXTMENU 531 -#define WM_MOVE 3 -#define WM_MOVING 534 -#define WM_NCACTIVATE 134 -#define WM_NCCALCSIZE 131 -#define WM_NCCREATE 129 -#define WM_NCDESTROY 130 -#define WM_NCHITTEST 132 -#define WM_NCLBUTTONDBLCLK 163 -#define WM_NCLBUTTONDOWN 161 -#define WM_NCLBUTTONUP 162 -#define WM_NCMBUTTONDBLCLK 169 -#define WM_NCMBUTTONDOWN 167 -#define WM_NCMBUTTONUP 168 -#define WM_NCMOUSEMOVE 160 -#define WM_NCPAINT 133 -#define WM_NCRBUTTONDBLCLK 166 -#define WM_NCRBUTTONDOWN 164 -#define WM_NCRBUTTONUP 165 -#define WM_NEXTDLGCTL 40 -#define WM_NEXTMENU 531 -#define WM_NOTIFY 78 -#define WM_NOTIFYFORMAT 85 -#define WM_NULL 0 -#define WM_PAINT 15 -#define WM_PAINTCLIPBOARD 777 -#define WM_PAINTICON 38 -#define WM_PALETTECHANGED 785 -#define WM_PALETTEISCHANGING 784 -#define WM_PARENTNOTIFY 528 -#define WM_PASTE 770 -#define WM_PENWINFIRST 896 -#define WM_PENWINLAST 911 -#define WM_POWER 72 -#define WM_POWERBROADCAST 536 -#define WM_PRINT 791 -#define WM_PRINTCLIENT 792 -#define WM_QUERYDRAGICON 55 -#define WM_QUERYENDSESSION 17 -#define WM_QUERYNEWPALETTE 783 -#define WM_QUERYOPEN 19 -#define WM_QUEUESYNC 35 -#define WM_QUIT 18 -#define WM_RENDERALLFORMATS 774 -#define WM_RENDERFORMAT 773 -#define WM_SETCURSOR 32 -#define WM_SETFOCUS 7 -#define WM_SETFONT 48 -#define WM_SETHOTKEY 50 -#define WM_SETICON 128 -#define WM_SETREDRAW 11 -#define WM_SETTEXT 12 -#define WM_SETTINGCHANGE 26 -#define WM_SHOWWINDOW 24 -#define WM_SIZE 5 -#define WM_SIZECLIPBOARD 779 -#define WM_SIZING 532 -#define WM_SPOOLERSTATUS 42 -#define WM_STYLECHANGED 125 -#define WM_STYLECHANGING 124 -#define WM_SYSCHAR 262 -#define WM_SYSCOLORCHANGE 21 -#define WM_SYSCOMMAND 274 -#define WM_SYSDEADCHAR 263 -#define WM_SYSKEYDOWN 260 -#define WM_SYSKEYUP 261 -#define WM_TCARD 82 -#define WM_TIMECHANGE 30 -#define WM_TIMER 275 -#define WM_UNDO 772 -#define WM_USER 1024 -#define WM_USERCHANGED 84 -#define WM_VKEYTOITEM 46 -#define WM_VSCROLL 277 -#define WM_VSCROLLCLIPBOARD 778 -#define WM_WINDOWPOSCHANGED 71 -#define WM_WINDOWPOSCHANGING 70 -#define WM_WININICHANGE 26 -#define WM_KEYFIRST 256 -#define WM_KEYLAST 264 -#define WM_SYNCPAINT 136 -#define WM_MOUSEACTIVATE 33 -#define WM_MOUSEMOVE 512 -#define WM_LBUTTONDOWN 513 -#define WM_LBUTTONUP 514 -#define WM_LBUTTONDBLCLK 515 -#define WM_RBUTTONDOWN 516 -#define WM_RBUTTONUP 517 -#define WM_RBUTTONDBLCLK 518 -#define WM_MBUTTONDOWN 519 -#define WM_MBUTTONUP 520 -#define WM_MBUTTONDBLCLK 521 -#define WM_MOUSEWHEEL 522 -#define WM_MOUSEFIRST 512 -#define WM_MOUSELAST 522 -#define WM_MOUSEHOVER 0x2A1 -#define WM_MOUSELEAVE 0x2A3 -#if(_WIN32_WINNT >= 0x0400) -#define WHEEL_DELTA 120 -#define GET_WHEEL_DELTA_WPARAM(wparam) ((short)HIWORD (wparam)) -#endif -#define BM_CLICK 245 -#define BM_GETCHECK 240 -#define BM_GETIMAGE 246 -#define BM_GETSTATE 242 -#define BM_SETCHECK 241 -#define BM_SETIMAGE 247 -#define BM_SETSTATE 243 -#define BM_SETSTYLE 244 -#define BN_CLICKED 0 -#define BN_DBLCLK 5 -#define BN_DISABLE 4 -#define BN_DOUBLECLICKED 5 -#define BN_HILITE 2 -#define BN_KILLFOCUS 7 -#define BN_PAINT 1 -#define BN_PUSHED 2 -#define BN_SETFOCUS 6 -#define BN_UNHILITE 3 -#define BN_UNPUSHED 3 -#define CB_ADDSTRING 323 -#define CB_DELETESTRING 324 -#define CB_DIR 325 -#define CB_FINDSTRING 332 -#define CB_FINDSTRINGEXACT 344 -#define CB_GETCOUNT 326 -#define CB_GETCURSEL 327 -#define CB_GETDROPPEDCONTROLRECT 338 -#define CB_GETDROPPEDSTATE 343 -#define CB_GETDROPPEDWIDTH 351 -#define CB_GETEDITSEL 320 -#define CB_GETEXTENDEDUI 342 -#define CB_GETHORIZONTALEXTENT 349 -#define CB_GETITEMDATA 336 -#define CB_GETITEMHEIGHT 340 -#define CB_GETLBTEXT 328 -#define CB_GETLBTEXTLEN 329 -#define CB_GETLOCALE 346 -#define CB_GETTOPINDEX 347 -#define CB_INITSTORAGE 353 -#define CB_INSERTSTRING 330 -#define CB_LIMITTEXT 321 -#define CB_RESETCONTENT 331 -#define CB_SELECTSTRING 333 -#define CB_SETCURSEL 334 -#define CB_SETDROPPEDWIDTH 352 -#define CB_SETEDITSEL 322 -#define CB_SETEXTENDEDUI 341 -#define CB_SETHORIZONTALEXTENT 350 -#define CB_SETITEMDATA 337 -#define CB_SETITEMHEIGHT 339 -#define CB_SETLOCALE 345 -#define CB_SETTOPINDEX 348 -#define CB_SHOWDROPDOWN 335 -#define CBN_CLOSEUP 8 -#define CBN_DBLCLK 2 -#define CBN_DROPDOWN 7 -#define CBN_EDITCHANGE 5 -#define CBN_EDITUPDATE 6 -#define CBN_ERRSPACE (-1) -#define CBN_KILLFOCUS 4 -#define CBN_SELCHANGE 1 -#define CBN_SELENDCANCEL 10 -#define CBN_SELENDOK 9 -#define CBN_SETFOCUS 3 -#define EM_CANUNDO 198 -#define EM_CHARFROMPOS 215 -#define EM_EMPTYUNDOBUFFER 205 -#define EM_FMTLINES 200 -#define EM_GETFIRSTVISIBLELINE 206 -#define EM_GETHANDLE 189 -#define EM_GETLIMITTEXT 213 -#define EM_GETLINE 196 -#define EM_GETLINECOUNT 186 -#define EM_GETMARGINS 212 -#define EM_GETMODIFY 184 -#define EM_GETPASSWORDCHAR 210 -#define EM_GETRECT 178 -#define EM_GETSEL 176 -#define EM_GETTHUMB 190 -#define EM_GETWORDBREAKPROC 209 -#define EM_LIMITTEXT 197 -#define EM_LINEFROMCHAR 201 -#define EM_LINEINDEX 187 -#define EM_LINELENGTH 193 -#define EM_LINESCROLL 182 -#define EM_POSFROMCHAR 214 -#define EM_REPLACESEL 194 -#define EM_SCROLL 181 -#define EM_SCROLLCARET 183 -#define EM_SETHANDLE 188 -#define EM_SETLIMITTEXT 197 -#define EM_SETMARGINS 211 -#define EM_SETMODIFY 185 -#define EM_SETPASSWORDCHAR 204 -#define EM_SETREADONLY 207 -#define EM_SETRECT 179 -#define EM_SETRECTNP 180 -#define EM_SETSEL 177 -#define EM_SETTABSTOPS 203 -#define EM_SETWORDBREAKPROC 208 -#define EM_UNDO 199 -#define EN_CHANGE 768 -#define EN_ERRSPACE 1280 -#define EN_HSCROLL 1537 -#define EN_KILLFOCUS 512 -#define EN_MAXTEXT 1281 -#define EN_SETFOCUS 256 -#define EN_UPDATE 1024 -#define EN_VSCROLL 1538 -#define LB_ADDFILE 406 -#define LB_ADDSTRING 384 -#define LB_DELETESTRING 386 -#define LB_DIR 397 -#define LB_FINDSTRING 399 -#define LB_FINDSTRINGEXACT 418 -#define LB_GETANCHORINDEX 413 -#define LB_GETCARETINDEX 415 -#define LB_GETCOUNT 395 -#define LB_GETCURSEL 392 -#define LB_GETHORIZONTALEXTENT 403 -#define LB_GETITEMDATA 409 -#define LB_GETITEMHEIGHT 417 -#define LB_GETITEMRECT 408 -#define LB_GETLOCALE 422 -#define LB_GETSEL 391 -#define LB_GETSELCOUNT 400 -#define LB_GETSELITEMS 401 -#define LB_GETTEXT 393 -#define LB_GETTEXTLEN 394 -#define LB_GETTOPINDEX 398 -#define LB_INITSTORAGE 424 -#define LB_INSERTSTRING 385 -#define LB_ITEMFROMPOINT 425 -#define LB_RESETCONTENT 388 -#define LB_SELECTSTRING 396 -#define LB_SELITEMRANGE 411 -#define LB_SELITEMRANGEEX 387 -#define LB_SETANCHORINDEX 412 -#define LB_SETCARETINDEX 414 -#define LB_SETCOLUMNWIDTH 405 -#define LB_SETCOUNT 423 -#define LB_SETCURSEL 390 -#define LB_SETHORIZONTALEXTENT 404 -#define LB_SETITEMDATA 410 -#define LB_SETITEMHEIGHT 416 -#define LB_SETLOCALE 421 -#define LB_SETSEL 389 -#define LB_SETTABSTOPS 402 -#define LB_SETTOPINDEX 407 -#define LBN_DBLCLK 2 -#define LBN_ERRSPACE (-2) -#define LBN_KILLFOCUS 5 -#define LBN_SELCANCEL 3 -#define LBN_SELCHANGE 1 -#define LBN_SETFOCUS 4 -#define SBM_ENABLE_ARROWS 228 -#define SBM_GETPOS 225 -#define SBM_GETRANGE 227 -#define SBM_GETSCROLLINFO 234 -#define SBM_SETPOS 224 -#define SBM_SETRANGE 226 -#define SBM_SETRANGEREDRAW 230 -#define SBM_SETSCROLLINFO 233 -#define STM_GETICON 369 -#define STM_GETIMAGE 371 -#define STM_SETICON 368 -#define STM_SETIMAGE 370 -#define STN_CLICKED 0 -#define STN_DBLCLK 1 -#define STN_DISABLE 3 -#define STN_ENABLE 2 -#define DM_GETDEFID WM_USER -#define DM_SETDEFID (WM_USER+1) -#define DM_REPOSITION (WM_USER+2) -#define PSM_PAGEINFO (WM_USER+100) -#define PSM_SHEETINFO (WM_USER+101) -#define PSI_SETACTIVE 1 -#define PSI_KILLACTIVE 2 -#define PSI_APPLY 3 -#define PSI_RESET 4 -#define PSI_HASHELP 5 -#define PSI_HELP 6 -#define PSI_CHANGED 1 -#define PSI_GUISTART 2 -#define PSI_REBOOT 3 -#define PSI_GETSIBLINGS 4 -#define DCX_WINDOW 1 -#define DCX_CACHE 2 -#define DCX_PARENTCLIP 32 -#define DCX_CLIPSIBLINGS 16 -#define DCX_CLIPCHILDREN 8 -#define DCX_NORESETATTRS 4 -#define DCX_LOCKWINDOWUPDATE 0x400 -#define DCX_EXCLUDERGN 64 -#define DCX_INTERSECTRGN 128 -#define DCX_VALIDATE 0x200000 -#define GMDI_GOINTOPOPUPS 2 -#define GMDI_USEDISABLED 1 -#define FKF_AVAILABLE 2 -#define FKF_CLICKON 64 -#define FKF_FILTERKEYSON 1 -#define FKF_HOTKEYACTIVE 4 -#define FKF_HOTKEYSOUND 16 -#define FKF_CONFIRMHOTKEY 8 -#define FKF_INDICATOR 32 -#define HCF_HIGHCONTRASTON 1 -#define HCF_AVAILABLE 2 -#define HCF_HOTKEYACTIVE 4 -#define HCF_CONFIRMHOTKEY 8 -#define HCF_HOTKEYSOUND 16 -#define HCF_INDICATOR 32 -#define HCF_HOTKEYAVAILABLE 64 -#define MKF_AVAILABLE 2 -#define MKF_CONFIRMHOTKEY 8 -#define MKF_HOTKEYACTIVE 4 -#define MKF_HOTKEYSOUND 16 -#define MKF_INDICATOR 32 -#define MKF_MOUSEKEYSON 1 -#define MKF_MODIFIERS 64 -#define MKF_REPLACENUMBERS 128 -#define SERKF_ACTIVE 8 /* May be obsolete. Not in recent MS docs. */ -#define SERKF_AVAILABLE 2 -#define SERKF_INDICATOR 4 -#define SERKF_SERIALKEYSON 1 -#define SSF_AVAILABLE 2 -#define SSF_SOUNDSENTRYON 1 -#define SSTF_BORDER 2 -#define SSTF_CHARS 1 -#define SSTF_DISPLAY 3 -#define SSTF_NONE 0 -#define SSGF_DISPLAY 3 -#define SSGF_NONE 0 -#define SSWF_CUSTOM 4 -#define SSWF_DISPLAY 3 -#define SSWF_NONE 0 -#define SSWF_TITLE 1 -#define SSWF_WINDOW 2 -#define SKF_AUDIBLEFEEDBACK 64 -#define SKF_AVAILABLE 2 -#define SKF_CONFIRMHOTKEY 8 -#define SKF_HOTKEYACTIVE 4 -#define SKF_HOTKEYSOUND 16 -#define SKF_INDICATOR 32 -#define SKF_STICKYKEYSON 1 -#define SKF_TRISTATE 128 -#define SKF_TWOKEYSOFF 256 -#define TKF_AVAILABLE 2 -#define TKF_CONFIRMHOTKEY 8 -#define TKF_HOTKEYACTIVE 4 -#define TKF_HOTKEYSOUND 16 -#define TKF_TOGGLEKEYSON 1 -#define MDITILE_SKIPDISABLED 2 -#define MDITILE_HORIZONTAL 1 -#define MDITILE_VERTICAL 0 -#define VK_LBUTTON 1 -#define VK_RBUTTON 2 -#define VK_CANCEL 3 -#define VK_MBUTTON 4 -#define VK_BACK 8 -#define VK_TAB 9 -#define VK_CLEAR 12 -#define VK_RETURN 13 -#define VK_KANA 15 -#define VK_SHIFT 16 -#define VK_CONTROL 17 -#define VK_MENU 18 -#define VK_PAUSE 19 -#define VK_CAPITAL 20 -#define VK_ESCAPE 0x1B -#define VK_SPACE 32 -#define VK_PRIOR 33 -#define VK_NEXT 34 -#define VK_END 35 -#define VK_HOME 36 -#define VK_LEFT 37 -#define VK_UP 38 -#define VK_RIGHT 39 -#define VK_DOWN 40 -#define VK_SELECT 41 -#define VK_PRINT 42 -#define VK_EXECUTE 43 -#define VK_SNAPSHOT 44 -#define VK_INSERT 45 -#define VK_DELETE 46 -#define VK_HELP 47 -#define VK_LWIN 0x5B -#define VK_RWIN 0x5C -#define VK_APPS 0x5D -#define VK_NUMPAD0 0x60 -#define VK_NUMPAD1 0x61 -#define VK_NUMPAD2 0x62 -#define VK_NUMPAD3 0x63 -#define VK_NUMPAD4 0x64 -#define VK_NUMPAD5 0x65 -#define VK_NUMPAD6 0x66 -#define VK_NUMPAD7 0x67 -#define VK_NUMPAD8 0x68 -#define VK_NUMPAD9 0x69 -#define VK_MULTIPLY 0x6A -#define VK_ADD 0x6B -#define VK_SEPARATOR 0x6C -#define VK_SUBTRACT 0x6D -#define VK_DECIMAL 0x6E -#define VK_DIVIDE 0x6F -#define VK_F1 0x70 -#define VK_F2 0x71 -#define VK_F3 0x72 -#define VK_F4 0x73 -#define VK_F5 0x74 -#define VK_F6 0x75 -#define VK_F7 0x76 -#define VK_F8 0x77 -#define VK_F9 0x78 -#define VK_F10 0x79 -#define VK_F11 0x7A -#define VK_F12 0x7B -#define VK_F13 0x7C -#define VK_F14 0x7D -#define VK_F15 0x7E -#define VK_F16 0x7F -#define VK_F17 0x80 -#define VK_F18 0x81 -#define VK_F19 0x82 -#define VK_F20 0x83 -#define VK_F21 0x84 -#define VK_F22 0x85 -#define VK_F23 0x86 -#define VK_F24 0x87 -#define VK_NUMLOCK 0x90 -#define VK_SCROLL 0x91 -#define VK_LSHIFT 0xA0 -#define VK_RSHIFT 0xA1 -#define VK_LCONTROL 0xA2 -#define VK_RCONTROL 0xA3 -#define VK_LMENU 0xA4 -#define VK_RMENU 0xA5 -#define VK_PROCESSKEY 0xE5 -#define VK_ATTN 0xF6 -#define VK_CRSEL 0xF7 -#define VK_EXSEL 0xF8 -#define VK_EREOF 0xF9 -#define VK_PLAY 0xFA -#define VK_ZOOM 0xFB -#define VK_NONAME 0xFC -#define VK_PA1 0xFD -#define VK_OEM_CLEAR 0xFE -#define TME_HOVER 1 -#define TME_LEAVE 2 -#define TME_QUERY 0x40000000 -#define TME_CANCEL 0x80000000 -#define HOVER_DEFAULT 0xFFFFFFFF -#define MK_LBUTTON 1 -#define MK_RBUTTON 2 -#define MK_SHIFT 4 -#define MK_CONTROL 8 -#define MK_MBUTTON 16 -#define TPM_CENTERALIGN 4 -#define TPM_LEFTALIGN 0 -#define TPM_RIGHTALIGN 8 -#define TPM_LEFTBUTTON 0 -#define TPM_RIGHTBUTTON 2 -#define TPM_HORIZONTAL 0 -#define TPM_VERTICAL 64 -#define TPM_TOPALIGN 0 -#define TPM_VCENTERALIGN 16 -#define TPM_BOTTOMALIGN 32 -#define TPM_NONOTIFY 128 -#define TPM_RETURNCMD 256 -#define HELP_COMMAND 0x102 -#define HELP_CONTENTS 3 -#define HELP_CONTEXT 1 -#define HELP_CONTEXTPOPUP 8 -#define HELP_FORCEFILE 9 -#define HELP_HELPONHELP 4 -#define HELP_INDEX 3 -#define HELP_KEY 0x101 -#define HELP_MULTIKEY 0x201 -#define HELP_PARTIALKEY 0x105 -#define HELP_QUIT 2 -#define HELP_SETCONTENTS 5 -#define HELP_SETINDEX 5 -#define HELP_CONTEXTMENU 0xa -#define HELP_FINDER 0xb -#define HELP_WM_HELP 0xc -#define HELP_TCARD 0x8000 -#define HELP_TCARD_DATA 16 -#define HELP_TCARD_OTHER_CALLER 0x11 -#define IDH_NO_HELP 28440 -#define IDH_MISSING_CONTEXT 28441 -#define IDH_GENERIC_HELP_BUTTON 28442 -#define IDH_OK 28443 -#define IDH_CANCEL 28444 -#define IDH_HELP 28445 -#define LB_CTLCODE 0 -#define LB_OKAY 0 -#define LB_ERR (-1) -#define LB_ERRSPACE (-2) -#define CB_OKAY 0 -#define CB_ERR (-1) -#define CB_ERRSPACE (-2) -#define HIDE_WINDOW 0 -#define SHOW_OPENWINDOW 1 -#define SHOW_ICONWINDOW 2 -#define SHOW_FULLSCREEN 3 -#define SHOW_OPENNOACTIVATE 4 -#define SW_PARENTCLOSING 1 -#define SW_OTHERZOOM 2 -#define SW_PARENTOPENING 3 -#define SW_OTHERUNZOOM 4 -#define KF_EXTENDED 256 -#define KF_DLGMODE 2048 -#define KF_MENUMODE 4096 -#define KF_ALTDOWN 8192 -#define KF_REPEAT 16384 -#define KF_UP 32768 -#define WSF_VISIBLE 1 -#define PWR_OK 1 -#define PWR_FAIL (-1) -#define PWR_SUSPENDREQUEST 1 -#define PWR_SUSPENDRESUME 2 -#define PWR_CRITICALRESUME 3 -#define NFR_ANSI 1 -#define NFR_UNICODE 2 -#define NF_QUERY 3 -#define NF_REQUERY 4 -#define MENULOOP_WINDOW 0 -#define MENULOOP_POPUP 1 -#define WMSZ_LEFT 1 -#define WMSZ_RIGHT 2 -#define WMSZ_TOP 3 -#define WMSZ_TOPLEFT 4 -#define WMSZ_TOPRIGHT 5 -#define WMSZ_BOTTOM 6 -#define WMSZ_BOTTOMLEFT 7 -#define WMSZ_BOTTOMRIGHT 8 -#define HTERROR (-2) -#define HTTRANSPARENT (-1) -#define HTNOWHERE 0 -#define HTCLIENT 1 -#define HTCAPTION 2 -#define HTSYSMENU 3 -#define HTGROWBOX 4 -#define HTSIZE 4 -#define HTMENU 5 -#define HTHSCROLL 6 -#define HTVSCROLL 7 -#define HTMINBUTTON 8 -#define HTMAXBUTTON 9 -#define HTREDUCE 8 -#define HTZOOM 9 -#define HTLEFT 10 -#define HTSIZEFIRST 10 -#define HTRIGHT 11 -#define HTTOP 12 -#define HTTOPLEFT 13 -#define HTTOPRIGHT 14 -#define HTBOTTOM 15 -#define HTBOTTOMLEFT 16 -#define HTBOTTOMRIGHT 17 -#define HTSIZELAST 17 -#define HTBORDER 18 -#define HTOBJECT 19 -#define HTCLOSE 20 -#define HTHELP 21 -#define MA_ACTIVATE 1 -#define MA_ACTIVATEANDEAT 2 -#define MA_NOACTIVATE 3 -#define MA_NOACTIVATEANDEAT 4 -#define SIZE_RESTORED 0 -#define SIZE_MINIMIZED 1 -#define SIZE_MAXIMIZED 2 -#define SIZE_MAXSHOW 3 -#define SIZE_MAXHIDE 4 -#define SIZENORMAL 0 -#define SIZEICONIC 1 -#define SIZEFULLSCREEN 2 -#define SIZEZOOMSHOW 3 -#define SIZEZOOMHIDE 4 -#define WVR_ALIGNTOP 16 -#define WVR_ALIGNLEFT 32 -#define WVR_ALIGNBOTTOM 64 -#define WVR_ALIGNRIGHT 128 -#define WVR_HREDRAW 256 -#define WVR_VREDRAW 512 -#define WVR_REDRAW (WVR_HREDRAW|WVR_VREDRAW) -#define WVR_VALIDRECTS 1024 -#define PRF_CHECKVISIBLE 1 -#define PRF_NONCLIENT 2 -#define PRF_CLIENT 4 -#define PRF_ERASEBKGND 8 -#define PRF_CHILDREN 16 -#define PRF_OWNED 32 -#define IDANI_OPEN 1 -#define IDANI_CLOSE 2 -#define IDANI_CAPTION 3 -#define WPF_RESTORETOMAXIMIZED 2 -#define WPF_SETMINPOSITION 1 -#define ODT_MENU 1 -#define ODT_LISTBOX 2 -#define ODT_COMBOBOX 3 -#define ODT_BUTTON 4 -#define ODT_STATIC 5 -#define ODA_DRAWENTIRE 1 -#define ODA_SELECT 2 -#define ODA_FOCUS 4 -#define ODS_SELECTED 1 -#define ODS_GRAYED 2 -#define ODS_DISABLED 4 -#define ODS_CHECKED 8 -#define ODS_FOCUS 16 -#define ODS_DEFAULT 32 -#define ODS_COMBOBOXEDIT 4096 -#define IDHOT_SNAPWINDOW (-1) -#define IDHOT_SNAPDESKTOP (-2) -#define DBWF_LPARAMPOINTER 0x8000 -#define DLGWINDOWEXTRA 30 -#define MNC_IGNORE 0 -#define MNC_CLOSE 1 -#define MNC_EXECUTE 2 -#define MNC_SELECT 3 -#define DOF_EXECUTABLE 0x8001 -#define DOF_DOCUMENT 0x8002 -#define DOF_DIRECTORY 0x8003 -#define DOF_MULTIPLE 0x8004 -#define DOF_PROGMAN 1 -#define DOF_SHELLDATA 2 -#define DO_DROPFILE 0x454C4946 -#define DO_PRINTFILE 0x544E5250 -#define SW_SCROLLCHILDREN 1 -#define SW_INVALIDATE 2 -#define SW_ERASE 4 -#define SC_SIZE 0xF000 -#define SC_MOVE 0xF010 -#define SC_MINIMIZE 0xF020 -#define SC_ICON 0xf020 -#define SC_MAXIMIZE 0xF030 -#define SC_ZOOM 0xF030 -#define SC_NEXTWINDOW 0xF040 -#define SC_PREVWINDOW 0xF050 -#define SC_CLOSE 0xF060 -#define SC_VSCROLL 0xF070 -#define SC_HSCROLL 0xF080 -#define SC_MOUSEMENU 0xF090 -#define SC_KEYMENU 0xF100 -#define SC_ARRANGE 0xF110 -#define SC_RESTORE 0xF120 -#define SC_TASKLIST 0xF130 -#define SC_SCREENSAVE 0xF140 -#define SC_HOTKEY 0xF150 -#define SC_DEFAULT 0xF160 -#define SC_MONITORPOWER 0xF170 -#define SC_CONTEXTHELP 0xF180 -#define SC_SEPARATOR 0xF00F -#define EC_LEFTMARGIN 1 -#define EC_RIGHTMARGIN 2 -#define EC_USEFONTINFO 0xffff -#define DC_HASDEFID 0x534B -#define DLGC_WANTARROWS 1 -#define DLGC_WANTTAB 2 -#define DLGC_WANTALLKEYS 4 -#define DLGC_WANTMESSAGE 4 -#define DLGC_HASSETSEL 8 -#define DLGC_DEFPUSHBUTTON 16 -#define DLGC_UNDEFPUSHBUTTON 32 -#define DLGC_RADIOBUTTON 64 -#define DLGC_WANTCHARS 128 -#define DLGC_STATIC 256 -#define DLGC_BUTTON 0x2000 -#define LB_CTLCODE 0 -#define WA_INACTIVE 0 -#define WA_ACTIVE 1 -#define WA_CLICKACTIVE 2 -#define ICON_SMALL 0 -#define ICON_BIG 1 -#define HBMMENU_CALLBACK ((HBITMAP) -1) -#define HBMMENU_SYSTEM ((HBITMAP)1) -#define HBMMENU_MBAR_RESTORE ((HBITMAP)2) -#define HBMMENU_MBAR_MINIMIZE ((HBITMAP)3) -#define HBMMENU_MBAR_CLOSE ((HBITMAP)5) -#define HBMMENU_MBAR_CLOSE_D ((HBITMAP)6) -#define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP)7) -#define HBMMENU_POPUP_CLOSE ((HBITMAP)8) -#define HBMMENU_POPUP_RESTORE ((HBITMAP)9) -#define HBMMENU_POPUP_MAXIMIZE ((HBITMAP)10) -#define HBMMENU_POPUP_MINIMIZE ((HBITMAP)11) -#define MOD_ALT 1 -#define MOD_CONTROL 2 -#define MOD_SHIFT 4 -#define MOD_WIN 8 -#define MOD_IGNORE_ALL_MODIFIER 1024 -#define MOD_ON_KEYUP 2048 -#define MOD_RIGHT 16384 -#define MOD_LEFT 32768 -#define LLKHF_ALTDOWN 0x00000020 - -#ifndef RC_INVOKED -typedef BOOL(CALLBACK *DLGPROC)(HWND,UINT,WPARAM,LPARAM); -typedef VOID(CALLBACK *TIMERPROC)(HWND,UINT,UINT,DWORD); -typedef BOOL(CALLBACK *GRAYSTRINGPROC)(HDC,LPARAM,int); -typedef LRESULT(CALLBACK *HOOKPROC)(int,WPARAM,LPARAM); -typedef BOOL(CALLBACK *PROPENUMPROCA)(HWND,LPCSTR,HANDLE); -typedef BOOL(CALLBACK *PROPENUMPROCW)(HWND,LPCWSTR,HANDLE); -typedef BOOL(CALLBACK *PROPENUMPROCEXA)(HWND,LPSTR,HANDLE,DWORD); -typedef BOOL(CALLBACK *PROPENUMPROCEXW)(HWND,LPWSTR,HANDLE,DWORD); -typedef int(CALLBACK *EDITWORDBREAKPROCA)(LPSTR,int,int,int); -typedef int(CALLBACK *EDITWORDBREAKPROCW)(LPWSTR,int,int,int); -typedef LRESULT(CALLBACK *WNDPROC)(HWND,UINT,WPARAM,LPARAM); -typedef BOOL(CALLBACK *DRAWSTATEPROC)(HDC,LPARAM,WPARAM,int,int); -typedef BOOL(CALLBACK *WNDENUMPROC)(HWND,LPARAM); -typedef BOOL(CALLBACK *ENUMWINDOWSPROC)(HWND,LPARAM); -typedef BOOL(CALLBACK* MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM); -typedef BOOL(CALLBACK *NAMEENUMPROCA)(LPSTR,LPARAM); -typedef BOOL(CALLBACK *NAMEENUMPROCW)(LPWSTR,LPARAM); -typedef NAMEENUMPROCA DESKTOPENUMPROCA; -typedef NAMEENUMPROCW DESKTOPENUMPROCW; -typedef NAMEENUMPROCA WINSTAENUMPROCA; -typedef NAMEENUMPROCW WINSTAENUMPROCW; -typedef void(CALLBACK *SENDASYNCPROC)(HWND,UINT,DWORD,LRESULT); -DECLARE_HANDLE(HHOOK); -DECLARE_HANDLE(HDWP); -typedef struct tagACCEL { - BYTE fVirt; - WORD key; - WORD cmd; -} ACCEL,*LPACCEL; -typedef struct tagACCESSTIMEOUT { - UINT cbSize; - DWORD dwFlags; - DWORD iTimeOutMSec; -} ACCESSTIMEOUT, *LPACCESSTIMEOUT; -typedef struct tagANIMATIONINFO { - UINT cbSize; - int iMinAnimate; -} ANIMATIONINFO,*LPANIMATIONINFO; -typedef struct tagCREATESTRUCTA { - LPVOID lpCreateParams; - HINSTANCE hInstance; - HMENU hMenu; - HWND hwndParent; - int cy; - int cx; - int y; - int x; - LONG style; - LPCSTR lpszName; - LPCSTR lpszClass; - DWORD dwExStyle; -} CREATESTRUCTA,*LPCREATESTRUCTA; -typedef struct tagCREATESTRUCTW { - LPVOID lpCreateParams; - HINSTANCE hInstance; - HMENU hMenu; - HWND hwndParent; - int cy; - int cx; - int y; - int x; - LONG style; - LPCWSTR lpszName; - LPCWSTR lpszClass; - DWORD dwExStyle; -} CREATESTRUCTW,*LPCREATESTRUCTW; -typedef struct tagCBT_CREATEWNDA { - LPCREATESTRUCTA lpcs; - HWND hwndInsertAfter; -} CBT_CREATEWNDA, *LPCBT_CREATEWNDA; -typedef struct tagCBT_CREATEWNDW { - LPCREATESTRUCTW lpcs; - HWND hwndInsertAfter; -} CBT_CREATEWNDW, *LPCBT_CREATEWNDW; -typedef struct tagCBTACTIVATESTRUCT { - BOOL fMouse; - HWND hWndActive; -} CBTACTIVATESTRUCT,*LPCBTACTIVATESTRUCT; -typedef struct tagCLIENTCREATESTRUCT { - HANDLE hWindowMenu; - UINT idFirstChild; -} CLIENTCREATESTRUCT,*LPCLIENTCREATESTRUCT; -typedef struct tagCOMPAREITEMSTRUCT { - UINT CtlType; - UINT CtlID; - HWND hwndItem; - UINT itemID1; - DWORD itemData1; - UINT itemID2; - DWORD itemData2; - DWORD dwLocaleId; -} COMPAREITEMSTRUCT,*LPCOMPAREITEMSTRUCT; -typedef struct tagCOPYDATASTRUCT { - DWORD dwData; - DWORD cbData; - PVOID lpData; -} COPYDATASTRUCT,*PCOPYDATASTRUCT; -typedef struct tagCURSORSHAPE { - int xHotSpot; - int yHotSpot; - int cx; - int cy; - int cbWidth; - BYTE Planes; - BYTE BitsPixel; -} CURSORSHAPE,*LPCURSORSHAPE; -typedef struct tagCWPRETSTRUCT { - LRESULT lResult; - LPARAM lParam; - WPARAM wParam; - DWORD message; - HWND hwnd; -} CWPRETSTRUCT; -typedef struct tagCWPSTRUCT { - LPARAM lParam; - WPARAM wParam; - UINT message; - HWND hwnd; -} CWPSTRUCT,*PCWPSTRUCT; -typedef struct tagDEBUGHOOKINFO { - DWORD idThread; - DWORD idThreadInstaller; - LPARAM lParam; - WPARAM wParam; - int code; -} DEBUGHOOKINFO,*PDEBUGHOOKINFO,*LPDEBUGHOOKINFO; -typedef struct tagDELETEITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - HWND hwndItem; - UINT itemData; -} DELETEITEMSTRUCT,*PDELETEITEMSTRUCT,*LPDELETEITEMSTRUCT; -#pragma pack(push,2) -typedef struct { - DWORD style; - DWORD dwExtendedStyle; - short x; - short y; - short cx; - short cy; - WORD id; -} DLGITEMTEMPLATE,*LPDLGITEMTEMPLATE; -typedef struct { - DWORD style; - DWORD dwExtendedStyle; - WORD cdit; - short x; - short y; - short cx; - short cy; -} DLGTEMPLATE,*LPDLGTEMPLATE; -typedef const DLGTEMPLATE *LPCDLGTEMPLATE; -#pragma pack(pop) -typedef struct tagDRAWITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - UINT itemAction; - UINT itemState; - HWND hwndItem; - HDC hDC; - RECT rcItem; - DWORD itemData; -} DRAWITEMSTRUCT,*LPDRAWITEMSTRUCT,*PDRAWITEMSTRUCT; -typedef struct { - UINT cbSize; - int iTabLength; - int iLeftMargin; - int iRightMargin; - UINT uiLengthDrawn; -} DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS; -typedef struct tagPAINTSTRUCT { - HDC hdc; - BOOL fErase; - RECT rcPaint; - BOOL fRestore; - BOOL fIncUpdate; - BYTE rgbReserved[32]; -} PAINTSTRUCT,*LPPAINTSTRUCT; -typedef struct tagMSG { - HWND hwnd; - UINT message; - WPARAM wParam; - LPARAM lParam; - DWORD time; - POINT pt; -} MSG,*LPMSG,*PMSG; -typedef struct _ICONINFO { - BOOL fIcon; - DWORD xHotspot; - DWORD yHotspot; - HBITMAP hbmMask; - HBITMAP hbmColor; -} ICONINFO,*PICONINFO; -typedef struct tagNMHDR { - HWND hwndFrom; - UINT idFrom; - UINT code; -} NMHDR,*LPNMHDR; -typedef struct _WNDCLASSA { - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HANDLE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCSTR lpszMenuName; - LPCSTR lpszClassName; -} WNDCLASSA,*LPWNDCLASSA,*PWNDCLASSA; -typedef struct _WNDCLASSW { - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HANDLE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCWSTR lpszMenuName; - LPCWSTR lpszClassName; -} WNDCLASSW,*LPWNDCLASSW,*PWNDCLASSW; -typedef struct _WNDCLASSEXA { - UINT cbSize; - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HANDLE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCSTR lpszMenuName; - LPCSTR lpszClassName; - HICON hIconSm; -} WNDCLASSEXA,*LPWNDCLASSEXA,*PWNDCLASSEXA; -typedef struct _WNDCLASSEXW { - UINT cbSize; - UINT style; - WNDPROC lpfnWndProc; - int cbClsExtra; - int cbWndExtra; - HANDLE hInstance; - HICON hIcon; - HCURSOR hCursor; - HBRUSH hbrBackground; - LPCWSTR lpszMenuName; - LPCWSTR lpszClassName; - HICON hIconSm; -} WNDCLASSEXW,*LPWNDCLASSEXW,*PWNDCLASSEXW; -typedef struct tagMENUITEMINFOA { - UINT cbSize; - UINT fMask; - UINT fType; - UINT fState; - UINT wID; - HMENU hSubMenu; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - LPSTR dwTypeData; - UINT cch; -#if (_WIN32_WINNT >= 0x0500) - HBITMAP hbmpItem; -#endif -} MENUITEMINFOA,*LPMENUITEMINFOA; -typedef const MENUITEMINFOA *LPCMENUITEMINFOA; -typedef struct tagMENUITEMINFOW { - UINT cbSize; - UINT fMask; - UINT fType; - UINT fState; - UINT wID; - HMENU hSubMenu; - HBITMAP hbmpChecked; - HBITMAP hbmpUnchecked; - DWORD dwItemData; - LPWSTR dwTypeData; - UINT cch; -#if (_WIN32_WINNT >= 0x0500) - HBITMAP hbmpItem; -#endif -} MENUITEMINFOW,*LPMENUITEMINFOW; -typedef const MENUITEMINFOW *LPCMENUITEMINFOW; -typedef struct tagSCROLLINFO { - UINT cbSize; - UINT fMask; - int nMin; - int nMax; - UINT nPage; - int nPos; - int nTrackPos; -} SCROLLINFO,*LPSCROLLINFO; -typedef const SCROLLINFO *LPCSCROLLINFO; -typedef struct _WINDOWPLACEMENT { - UINT length; - UINT flags; - UINT showCmd; - POINT ptMinPosition; - POINT ptMaxPosition; - RECT rcNormalPosition; -} WINDOWPLACEMENT,*LPWINDOWPLACEMENT,*PWINDOWPLACEMENT; -typedef struct { - WORD versionNumber; - WORD offset; -} MENUITEMTEMPLATEHEADER; -typedef struct { - WORD mtOption; - WORD mtID; - WCHAR mtString[1]; -} MENUITEMTEMPLATE; -typedef void MENUTEMPLATE,MENUTEMPLATEA,MENUTEMPLATEW,*LPMENUTEMPLATEA,*LPMENUTEMPLATEW,*LPMENUTEMPLATE; -typedef struct tagHELPINFO { - UINT cbSize; - int iContextType; - int iCtrlId; - HANDLE hItemHandle; - DWORD dwContextId; - POINT MousePos; -} HELPINFO,*LPHELPINFO; -typedef void(CALLBACK *MSGBOXCALLBACK)(LPHELPINFO); -typedef struct { - UINT cbSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCSTR lpszText; - LPCSTR lpszCaption; - DWORD dwStyle; - LPCSTR lpszIcon; - DWORD dwContextHelpId; - MSGBOXCALLBACK lpfnMsgBoxCallback; - DWORD dwLanguageId; -} MSGBOXPARAMSA,*PMSGBOXPARAMSA,*LPMSGBOXPARAMSA; -typedef struct { - UINT cbSize; - HWND hwndOwner; - HINSTANCE hInstance; - LPCWSTR lpszText; - LPCWSTR lpszCaption; - DWORD dwStyle; - LPCWSTR lpszIcon; - DWORD dwContextHelpId; - MSGBOXCALLBACK lpfnMsgBoxCallback; - DWORD dwLanguageId; -} MSGBOXPARAMSW,*PMSGBOXPARAMSW,*LPMSGBOXPARAMSW; -typedef struct tagUSEROBJECTFLAGS { - BOOL fInherit; - BOOL fReserved; - DWORD dwFlags; -} USEROBJECTFLAGS; -typedef struct tagFILTERKEYS { - UINT cbSize; - DWORD dwFlags; - DWORD iWaitMSec; - DWORD iDelayMSec; - DWORD iRepeatMSec; - DWORD iBounceMSec; -} FILTERKEYS; -typedef struct tagHIGHCONTRASTA { - UINT cbSize; - DWORD dwFlags; - LPSTR lpszDefaultScheme; -} HIGHCONTRASTA,*LPHIGHCONTRASTA; -typedef struct tagHIGHCONTRASTW { - UINT cbSize; - DWORD dwFlags; - LPWSTR lpszDefaultScheme; -} HIGHCONTRASTW,*LPHIGHCONTRASTW; -typedef struct tagICONMETRICSA { - UINT cbSize; - int iHorzSpacing; - int iVertSpacing; - int iTitleWrap; - LOGFONTA lfFont; -} ICONMETRICSA,*LPICONMETRICSA; -typedef struct tagICONMETRICSW { - UINT cbSize; - int iHorzSpacing; - int iVertSpacing; - int iTitleWrap; - LOGFONTW lfFont; -} ICONMETRICSW,*LPICONMETRICSW; -typedef struct tagMINIMIZEDMETRICS { - UINT cbSize; - int iWidth; - int iHorzGap; - int iVertGap; - int iArrange; -} MINIMIZEDMETRICS,*LPMINIMIZEDMETRICS; -typedef struct tagMOUSEKEYS{ - UINT cbSize; - DWORD dwFlags; - DWORD iMaxSpeed; - DWORD iTimeToMaxSpeed; - DWORD iCtrlSpeed; - DWORD dwReserved1; - DWORD dwReserved2; -} MOUSEKEYS, *LPMOUSEKEYS; -typedef struct tagNONCLIENTMETRICSA { - UINT cbSize; - int iBorderWidth; - int iScrollWidth; - int iScrollHeight; - int iCaptionWidth; - int iCaptionHeight; - LOGFONTA lfCaptionFont; - int iSmCaptionWidth; - int iSmCaptionHeight; - LOGFONTA lfSmCaptionFont; - int iMenuWidth; - int iMenuHeight; - LOGFONTA lfMenuFont; - LOGFONTA lfStatusFont; - LOGFONTA lfMessageFont; -} NONCLIENTMETRICSA,*LPNONCLIENTMETRICSA; -typedef struct tagNONCLIENTMETRICSW { - UINT cbSize; - int iBorderWidth; - int iScrollWidth; - int iScrollHeight; - int iCaptionWidth; - int iCaptionHeight; - LOGFONTW lfCaptionFont; - int iSmCaptionWidth; - int iSmCaptionHeight; - LOGFONTW lfSmCaptionFont; - int iMenuWidth; - int iMenuHeight; - LOGFONTW lfMenuFont; - LOGFONTW lfStatusFont; - LOGFONTW lfMessageFont; -} NONCLIENTMETRICSW,*LPNONCLIENTMETRICSW; -typedef struct tagSERIALKEYSA { - UINT cbSize; - DWORD dwFlags; - LPSTR lpszActivePort; - LPSTR lpszPort; - UINT iBaudRate; - UINT iPortState; - UINT iActive; -} SERIALKEYSA,*LPSERIALKEYSA; -typedef struct tagSERIALKEYSW { - UINT cbSize; - DWORD dwFlags; - LPWSTR lpszActivePort; - LPWSTR lpszPort; - UINT iBaudRate; - UINT iPortState; - UINT iActive; -} SERIALKEYSW,*LPSERIALKEYSW; -typedef struct tagSOUNDSENTRYA { - UINT cbSize; - DWORD dwFlags; - DWORD iFSTextEffect; - DWORD iFSTextEffectMSec; - DWORD iFSTextEffectColorBits; - DWORD iFSGrafEffect; - DWORD iFSGrafEffectMSec; - DWORD iFSGrafEffectColor; - DWORD iWindowsEffect; - DWORD iWindowsEffectMSec; - LPSTR lpszWindowsEffectDLL; - DWORD iWindowsEffectOrdinal; -} SOUNDSENTRYA,*LPSOUNDSENTRYA; -typedef struct tagSOUNDSENTRYW { - UINT cbSize; - DWORD dwFlags; - DWORD iFSTextEffect; - DWORD iFSTextEffectMSec; - DWORD iFSTextEffectColorBits; - DWORD iFSGrafEffect; - DWORD iFSGrafEffectMSec; - DWORD iFSGrafEffectColor; - DWORD iWindowsEffect; - DWORD iWindowsEffectMSec; - LPWSTR lpszWindowsEffectDLL; - DWORD iWindowsEffectOrdinal; -} SOUNDSENTRYW,*LPSOUNDSENTRYW; -typedef struct tagSTICKYKEYS { - DWORD cbSize; - DWORD dwFlags; -} STICKYKEYS,*LPSTICKYKEYS; -typedef struct tagTOGGLEKEYS { - DWORD cbSize; - DWORD dwFlags; -} TOGGLEKEYS; -typedef struct tagTRACKMOUSEEVENT { - DWORD cbSize; - DWORD dwFlags; - HWND hwndTrack; - DWORD dwHoverTime; -} TRACKMOUSEEVENT,*LPTRACKMOUSEEVENT; -typedef struct tagTPMPARAMS { - UINT cbSize; - RECT rcExclude; -} TPMPARAMS,*LPTPMPARAMS; -typedef struct tagEVENTMSG { - UINT message; - UINT paramL; - UINT paramH; - DWORD time; - HWND hwnd; -} EVENTMSG,*PEVENTMSGMSG,*LPEVENTMSGMSG, *PEVENTMSG, *LPEVENTMSG; -typedef struct _WINDOWPOS { - HWND hwnd; - HWND hwndInsertAfter; - int x; - int y; - int cx; - int cy; - UINT flags; -} WINDOWPOS,*PWINDOWPOS,*LPWINDOWPOS; -typedef struct tagMDICREATESTRUCTA { - LPCSTR szClass; - LPCSTR szTitle; - HANDLE hOwner; - int x; - int y; - int cx; - int cy; - DWORD style; - LPARAM lParam; -} MDICREATESTRUCTA,*LPMDICREATESTRUCTA; -typedef struct tagMDICREATESTRUCTW { - LPCWSTR szClass; - LPCWSTR szTitle; - HANDLE hOwner; - int x; - int y; - int cx; - int cy; - DWORD style; - LPARAM lParam; -} MDICREATESTRUCTW,*LPMDICREATESTRUCTW; -typedef struct tagMINMAXINFO { - POINT ptReserved; - POINT ptMaxSize; - POINT ptMaxPosition; - POINT ptMinTrackSize; - POINT ptMaxTrackSize; -} MINMAXINFO,*PMINMAXINFO,*LPMINMAXINFO; -typedef struct tagMDINEXTMENU { - HMENU hmenuIn; - HMENU hmenuNext; - HWND hwndNext; -} MDINEXTMENU,*PMDINEXTMENU,*LPMDINEXTMENU; -typedef struct tagMEASUREITEMSTRUCT { - UINT CtlType; - UINT CtlID; - UINT itemID; - UINT itemWidth; - UINT itemHeight; - DWORD itemData; -} MEASUREITEMSTRUCT,*PMEASUREITEMSTRUCT,*LPMEASUREITEMSTRUCT; -typedef struct tagDROPSTRUCT { - HWND hwndSource; - HWND hwndSink; - DWORD wFmt; - DWORD dwData; - POINT ptDrop; - DWORD dwControlData; -} DROPSTRUCT,*PDROPSTRUCT,*LPDROPSTRUCT; -typedef DWORD HELPPOLY; -typedef struct tagMULTIKEYHELPA { - DWORD mkSize; - CHAR mkKeylist; - CHAR szKeyphrase[1]; -} MULTIKEYHELPA,*PMULTIKEYHELPA,*LPMULTIKEYHELPA; -typedef struct tagMULTIKEYHELPW { - DWORD mkSize; - WCHAR mkKeylist; - WCHAR szKeyphrase[1]; -} MULTIKEYHELPW,*PMULTIKEYHELPW,*LPMULTIKEYHELPW; -typedef struct tagHELPWININFOA { - int wStructSize; - int x; - int y; - int dx; - int dy; - int wMax; - CHAR rgchMember[2]; -} HELPWININFOA,*PHELPWININFOA,*LPHELPWININFOA; -typedef struct tagHELPWININFOW { - int wStructSize; - int x; - int y; - int dx; - int dy; - int wMax; - WCHAR rgchMember[2]; -} HELPWININFOW,*PHELPWININFOW,*LPHELPWININFOW; -typedef struct tagSTYLESTRUCT { - DWORD styleOld; - DWORD styleNew; -} STYLESTRUCT,*LPSTYLESTRUCT; -typedef struct tagALTTABINFO { - DWORD cbSize; - int cItems; - int cColumns; - int cRows; - int iColFocus; - int iRowFocus; - int cxItem; - int cyItem; - POINT ptStart; -} ALTTABINFO, *PALTTABINFO, *LPALTTABINFO; -typedef struct tagCOMBOBOXINFO { - DWORD cbSize; - RECT rcItem; - RECT rcButton; - DWORD stateButton; - HWND hwndCombo; - HWND hwndItem; - HWND hwndList; -} COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO; -typedef struct tagCURSORINFO { - DWORD cbSize; - DWORD flags; - HCURSOR hCursor; - POINT ptScreenPos; -} CURSORINFO,*PCURSORINFO,*LPCURSORINFO; -typedef struct tagMENUBARINFO { - DWORD cbSize; - RECT rcBar; - HMENU hMenu; - HWND hwndMenu; - BOOL fBarFocused:1; - BOOL fFocused:1; -} MENUBARINFO, *PMENUBARINFO; -typedef struct tagMENUINFO { - DWORD cbSize; - DWORD fMask; - DWORD dwStyle; - UINT cyMax; - HBRUSH hbrBack; - DWORD dwContextHelpID; - ULONG_PTR dwMenuData; -} MENUINFO, *LPMENUINFO; -typedef MENUINFO CONST *LPCMENUINFO; -#define CCHILDREN_SCROLLBAR 5 -typedef struct tagSCROLLBARINFO { - DWORD cbSize; - RECT rcScrollBar; - int dxyLineButton; - int xyThumbTop; - int xyThumbBottom; - int reserved; - DWORD rgstate[CCHILDREN_SCROLLBAR + 1]; -} SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO; -#define CCHILDREN_TITLEBAR 5 -typedef struct tagTITLEBARINFO { - DWORD cbSize; - RECT rcTitleBar; - DWORD rgstate[CCHILDREN_TITLEBAR + 1]; -} TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO; -typedef struct tagWINDOWINFO { - DWORD cbSize; - RECT rcWindow; - RECT rcClient; - DWORD dwStyle; - DWORD dwExStyle; - DWORD dwWindowStatus; - UINT cxWindowBorders; - UINT cyWindowBorders; - ATOM atomWindowType; - WORD wCreatorVersion; -} WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO; -typedef struct tagLASTINPUTINFO { - UINT cbSize; - DWORD dwTime; -} LASTINPUTINFO, * PLASTINPUTINFO; -typedef struct tagMONITORINFO { - DWORD cbSize; - RECT rcMonitor; - RECT rcWork; - DWORD dwFlags; -} MONITORINFO,*LPMONITORINFO; -typedef struct tagKBDLLHOOKSTRUCT { - DWORD vkCode; - DWORD scanCode; - DWORD flags; - DWORD time; - DWORD dwExtraInfo; -} KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT; - - -#define AnsiToOem CharToOemA -#define OemToAnsi OemToCharA -#define AnsiToOemBuff CharToOemBuffA -#define OemToAnsiBuff OemToCharBuffA -#define AnsiUpper CharUpperA -#define AnsiUpperBuff CharUpperBuffA -#define AnsiLower CharLowerA -#define AnsiLowerBuff CharLowerBuffA -#define AnsiNext CharNextA -#define AnsiPrev CharPrevA -#define MAKELPARAM(l,h) ((LPARAM)MAKELONG(l,h)) -#define MAKEWPARAM(l,h) ((WPARAM)MAKELONG(l,h)) -#define MAKELRESULT(l,h) ((LRESULT)MAKELONG(l,h)) -#define POINTSTOPOINT(p,ps) { \ - (p).x=LOWORD(*(DWORD *)&ps); \ - (p).y=HIWORD(*(DWORD *)&ps); \ -} -#define POINTTOPOINTS(p) ((POINTS)MAKELONG((p).x,(p).y)) - -HKL WINAPI ActivateKeyboardLayout(HKL,UINT); -BOOL WINAPI AdjustWindowRect(LPRECT,DWORD,BOOL); -BOOL WINAPI AdjustWindowRectEx(LPRECT,DWORD,BOOL,DWORD); -BOOL WINAPI AnyPopup(void); -BOOL WINAPI AppendMenuA(HMENU,UINT,UINT,LPCSTR); -BOOL WINAPI AppendMenuW(HMENU,UINT,UINT,LPCWSTR); -UINT WINAPI ArrangeIconicWindows(HWND); -BOOL WINAPI AttachThreadInput(DWORD,DWORD,BOOL); -HDWP WINAPI BeginDeferWindowPos(int); -HDC WINAPI BeginPaint(HWND,LPPAINTSTRUCT); -BOOL WINAPI BringWindowToTop(HWND); -long WINAPI BroadcastSystemMessage(DWORD,LPDWORD,UINT,WPARAM,LPARAM); -BOOL WINAPI CallMsgFilter(PMSG,int); -LRESULT WINAPI CallNextHookEx(HHOOK,int,WPARAM,LPARAM); -LRESULT WINAPI CallWindowProcA(WNDPROC,HWND,UINT,WPARAM,LPARAM); -LRESULT WINAPI CallWindowProcW(WNDPROC,HWND,UINT,WPARAM,LPARAM); -WORD WINAPI CascadeWindows(HWND,UINT,LPCRECT,UINT,const HWND*); -BOOL WINAPI ChangeClipboardChain(HWND,HWND); -LONG WINAPI ChangeDisplaySettingsA(PDEVMODEA,DWORD); -LONG WINAPI ChangeDisplaySettingsW(PDEVMODEW,DWORD); -BOOL WINAPI ChangeMenuA(HMENU,UINT,LPCSTR,UINT,UINT); -BOOL WINAPI ChangeMenuW(HMENU,UINT,LPCWSTR,UINT,UINT); -LPSTR WINAPI CharLowerA(LPSTR); -LPWSTR WINAPI CharLowerW(LPWSTR); -DWORD WINAPI CharLowerBuffA(LPSTR,DWORD); -DWORD WINAPI CharLowerBuffW(LPWSTR,DWORD); -LPSTR WINAPI CharNextA(LPCSTR); -LPWSTR WINAPI CharNextW(LPCWSTR); -LPSTR WINAPI CharNextExA(WORD,LPCSTR,DWORD); -LPWSTR WINAPI CharNextExW(WORD,LPCWSTR,DWORD); -LPSTR WINAPI CharPrevA(LPCSTR,LPCSTR); -LPWSTR WINAPI CharPrevW(LPCWSTR,LPCWSTR); -LPSTR WINAPI CharPrevExA(WORD,LPCSTR,LPCSTR,DWORD); -LPWSTR WINAPI CharPrevExW(WORD,LPCWSTR,LPCWSTR,DWORD); -BOOL WINAPI CharToOemA(LPCSTR,LPSTR); -BOOL WINAPI CharToOemW(LPCWSTR,LPSTR); -BOOL WINAPI CharToOemBuffA(LPCSTR,LPSTR,DWORD); -BOOL WINAPI CharToOemBuffW(LPCWSTR,LPSTR,DWORD); -LPSTR WINAPI CharUpperA(LPSTR); -LPWSTR WINAPI CharUpperW(LPWSTR); -DWORD WINAPI CharUpperBuffA(LPSTR,DWORD); -DWORD WINAPI CharUpperBuffW(LPWSTR,DWORD); -BOOL WINAPI CheckDlgButton(HWND,int,UINT); -DWORD WINAPI CheckMenuItem(HMENU,UINT,UINT); -BOOL WINAPI CheckMenuRadioItem(HMENU,UINT,UINT,UINT,UINT); -BOOL WINAPI CheckRadioButton(HWND,int,int,int); -HWND WINAPI ChildWindowFromPoint(HWND,POINT); -HWND WINAPI ChildWindowFromPointEx(HWND,POINT,UINT); -BOOL WINAPI ClientToScreen(HWND,LPPOINT); -BOOL WINAPI ClipCursor(LPCRECT); -BOOL WINAPI CloseClipboard(void); -BOOL WINAPI CloseDesktop(HDESK); -BOOL WINAPI CloseWindow(HWND); -BOOL WINAPI CloseWindowStation(HWINSTA); -int WINAPI CopyAcceleratorTableA(HACCEL,LPACCEL,int); -int WINAPI CopyAcceleratorTableW(HACCEL,LPACCEL,int); -HCURSOR WINAPI CopyCursor(HCURSOR); -HICON WINAPI CopyIcon(HICON); -HANDLE WINAPI CopyImage(HANDLE,UINT,int,int,UINT); -BOOL WINAPI CopyRect(LPRECT,LPCRECT); -int WINAPI CountClipboardFormats(void); -HACCEL WINAPI CreateAcceleratorTableA(LPACCEL,int); -HACCEL WINAPI CreateAcceleratorTableW(LPACCEL,int); -BOOL WINAPI CreateCaret(HWND,HBITMAP,int,int); -HCURSOR WINAPI CreateCursor(HINSTANCE,int,int,int,int,PCVOID,PCVOID); -HDESK WINAPI CreateDesktopA(LPSTR,LPSTR,LPDEVMODEA,DWORD,DWORD,LPSECURITY_ATTRIBUTES); -HDESK WINAPI CreateDesktopW(LPWSTR,LPWSTR,LPDEVMODEW,DWORD,DWORD,LPSECURITY_ATTRIBUTES); -#define CreateDialogA(h,n,w,f) CreateDialogParamA(h,n,w,f,0) -#define CreateDialogW(h,n,w,f) CreateDialogParamW(h,n,w,f,0) -#define CreateDialogIndirectA(h,t,w,f) CreateDialogIndirectParamA(h,t,w,f,0) -#define CreateDialogIndirectW(h,t,w,f) CreateDialogIndirectParamW(h,t,w,f,0) -HWND WINAPI CreateDialogIndirectParamA(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM); -HWND WINAPI CreateDialogIndirectParamW(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM); -HWND WINAPI CreateDialogParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM); -HWND WINAPI CreateDialogParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM); -HICON WINAPI CreateIcon(HINSTANCE,int,int,BYTE,BYTE,const BYTE*,const BYTE*); -HICON WINAPI CreateIconFromResource(PBYTE,DWORD,BOOL,DWORD); -HICON WINAPI CreateIconFromResourceEx(PBYTE,DWORD,BOOL,DWORD,int,int,UINT); -HICON WINAPI CreateIconIndirect(PICONINFO); -HWND WINAPI CreateMDIWindowA(LPSTR,LPSTR,DWORD,int,int,int,int,HWND,HINSTANCE,LPARAM); -HWND WINAPI CreateMDIWindowW(LPWSTR,LPWSTR,DWORD,int,int,int,int,HWND,HINSTANCE,LPARAM); -HMENU WINAPI CreateMenu(void); -HMENU WINAPI CreatePopupMenu(void); -#define CreateWindowA(a,b,c,d,e,f,g,h,i,j,k) CreateWindowExA(0,a,b,c,d,e,f,g,h,i,j,k) -#define CreateWindowW(a,b,c,d,e,f,g,h,i,j,k) CreateWindowExW(0,a,b,c,d,e,f,g,h,i,j,k) -HWND WINAPI CreateWindowExA(DWORD,LPCSTR,LPCSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID); -HWND WINAPI CreateWindowExW(DWORD,LPCWSTR,LPCWSTR,DWORD,int,int,int,int,HWND,HMENU,HINSTANCE,LPVOID); -HWINSTA WINAPI CreateWindowStationA(LPSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES); -HWINSTA WINAPI CreateWindowStationW(LPWSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES); -LRESULT WINAPI DefDlgProcA(HWND,UINT,WPARAM,LPARAM); -LRESULT WINAPI DefDlgProcW(HWND,UINT,WPARAM,LPARAM); -HDWP WINAPI DeferWindowPos(HDWP,HWND,HWND,int,int,int,int,UINT); -LRESULT WINAPI DefFrameProcA(HWND,HWND,UINT,WPARAM,LPARAM); -LRESULT WINAPI DefFrameProcW(HWND,HWND,UINT,WPARAM,LPARAM); -#define DefHookProc(c,p,lp,h) CallNextHookEx((HHOOK)*h,c,p,lp) -LRESULT WINAPI DefMDIChildProcA(HWND,UINT,WPARAM,LPARAM); -LRESULT WINAPI DefMDIChildProcW(HWND,UINT,WPARAM,LPARAM); -LRESULT WINAPI DefWindowProcA(HWND,UINT,WPARAM,LPARAM); -LRESULT WINAPI DefWindowProcW(HWND,UINT,WPARAM,LPARAM); -BOOL WINAPI DeleteMenu(HMENU,UINT,UINT); -BOOL WINAPI DestroyAcceleratorTable(HACCEL); -BOOL WINAPI DestroyCaret(void); -BOOL WINAPI DestroyCursor(HCURSOR); -BOOL WINAPI DestroyIcon(HICON); -BOOL WINAPI DestroyMenu(HMENU); -BOOL WINAPI DestroyWindow(HWND); -#define DialogBoxA(i,t,p,f) DialogBoxParamA(i,t,p,f,0) -#define DialogBoxW(i,t,p,f) DialogBoxParamW(i,t,p,f,0) -#define DialogBoxIndirectA(i,t,p,f) DialogBoxIndirectParamA(i,t,p,f,0) -#define DialogBoxIndirectW(i,t,p,f) DialogBoxIndirectParamW(i,t,p,f,0) -int WINAPI DialogBoxIndirectParamA(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM); -int WINAPI DialogBoxIndirectParamW(HINSTANCE,LPCDLGTEMPLATE,HWND,DLGPROC,LPARAM); -int WINAPI DialogBoxParamA(HINSTANCE,LPCSTR,HWND,DLGPROC,LPARAM); -int WINAPI DialogBoxParamW(HINSTANCE,LPCWSTR,HWND,DLGPROC,LPARAM); -LONG WINAPI DispatchMessageA(const MSG*); -LONG WINAPI DispatchMessageW(const MSG*); -int WINAPI DlgDirListA(HWND,LPSTR,int,int,UINT); -int WINAPI DlgDirListW(HWND,LPWSTR,int,int,UINT); -int WINAPI DlgDirListComboBoxA(HWND,LPSTR,int,int,UINT); -int WINAPI DlgDirListComboBoxW(HWND,LPWSTR,int,int,UINT); -BOOL WINAPI DlgDirSelectComboBoxExA(HWND,LPSTR,int,int); -BOOL WINAPI DlgDirSelectComboBoxExW(HWND,LPWSTR,int,int); -BOOL WINAPI DlgDirSelectExA(HWND,LPSTR,int,int); -BOOL WINAPI DlgDirSelectExW(HWND,LPWSTR,int,int); -BOOL WINAPI DragDetect(HWND,POINT); -DWORD WINAPI DragObject(HWND,HWND,UINT,DWORD,HCURSOR); -BOOL WINAPI DrawAnimatedRects(HWND,int,LPCRECT,LPCRECT); -BOOL WINAPI DrawCaption(HWND,HDC,LPCRECT,UINT); -BOOL WINAPI DrawEdge(HDC,LPRECT,UINT,UINT); -BOOL WINAPI DrawFocusRect(HDC,LPCRECT); -BOOL WINAPI DrawFrameControl(HDC,LPRECT,UINT,UINT); -BOOL WINAPI DrawIcon(HDC,int,int,HICON); -BOOL WINAPI DrawIconEx(HDC,int,int,HICON,int,int,UINT,HBRUSH,UINT); -BOOL WINAPI DrawMenuBar(HWND); -BOOL WINAPI DrawStateA(HDC,HBRUSH,DRAWSTATEPROC,LPARAM,WPARAM,int,int,int,int,UINT); -BOOL WINAPI DrawStateW(HDC,HBRUSH,DRAWSTATEPROC,LPARAM,WPARAM,int,int,int,int,UINT); -int WINAPI DrawTextA(HDC,LPCSTR,int,LPRECT,UINT); -int WINAPI DrawTextW(HDC,LPCWSTR,int,LPRECT,UINT); -int WINAPI DrawTextExA(HDC,LPSTR,int,LPRECT,UINT,LPDRAWTEXTPARAMS); -int WINAPI DrawTextExW(HDC,LPWSTR,int,LPRECT,UINT,LPDRAWTEXTPARAMS); -BOOL WINAPI EmptyClipboard(void); -BOOL WINAPI EnableMenuItem(HMENU,UINT,UINT); -BOOL WINAPI EnableScrollBar(HWND,UINT,UINT); -BOOL WINAPI EnableWindow(HWND,BOOL); -BOOL WINAPI EndDeferWindowPos(HDWP); -BOOL WINAPI EndDialog(HWND,int); -BOOL WINAPI EndMenu(VOID); -BOOL WINAPI EndPaint(HWND,const PAINTSTRUCT*); -BOOL WINAPI EnumChildWindows(HWND,ENUMWINDOWSPROC,LPARAM); -UINT WINAPI EnumClipboardFormats(UINT); -BOOL WINAPI EnumDesktopsA(HWINSTA,DESKTOPENUMPROCA,LPARAM); -BOOL WINAPI EnumDesktopsW(HWINSTA,DESKTOPENUMPROCW,LPARAM); -BOOL WINAPI EnumDesktopWindows(HDESK,ENUMWINDOWSPROC,LPARAM); -BOOL WINAPI EnumDisplayMonitors(HDC,LPCRECT,MONITORENUMPROC,LPARAM); -BOOL WINAPI EnumDisplaySettingsA(LPCSTR,DWORD,PDEVMODEA); -BOOL WINAPI EnumDisplaySettingsW(LPCWSTR,DWORD,PDEVMODEW); -int WINAPI EnumPropsA(HWND,PROPENUMPROCA); -int WINAPI EnumPropsW(HWND,PROPENUMPROCW); -int WINAPI EnumPropsExA(HWND,PROPENUMPROCEXA,LPARAM); -int WINAPI EnumPropsExW(HWND,PROPENUMPROCEXW,LPARAM); -#define EnumTaskWindows(h,f,p) EnumThreadWindows((DWORD)h,f,p) -BOOL WINAPI EnumThreadWindows(DWORD,WNDENUMPROC,LPARAM); -BOOL WINAPI EnumWindows(WNDENUMPROC,LPARAM); -BOOL WINAPI EnumWindowStationsA(WINSTAENUMPROCA,LPARAM); -BOOL WINAPI EnumWindowStationsW(WINSTAENUMPROCW,LPARAM); -BOOL WINAPI EqualRect(LPCRECT,LPCRECT); -#define ExitWindows(r,c) ExitWindowsEx(EWX_LOGOFF,0) -BOOL WINAPI ExitWindowsEx(UINT,DWORD); -HWND WINAPI FindWindowA(LPCSTR,LPCSTR); -HWND WINAPI FindWindowExA(HWND,HWND,LPCSTR,LPCSTR); -HWND WINAPI FindWindowExW(HWND,HWND,LPCWSTR,LPCWSTR); -HWND WINAPI FindWindowW(LPCWSTR,LPCWSTR); -BOOL WINAPI FlashWindow(HWND,BOOL); -int WINAPI FrameRect(HDC,LPCRECT,HBRUSH); -BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,int,int); -HWND WINAPI GetActiveWindow(void); -SHORT WINAPI GetAsyncKeyState(int); -HWND WINAPI GetCapture(void); -UINT WINAPI GetCaretBlinkTime(void); -BOOL WINAPI GetCaretPos(LPPOINT); -BOOL WINAPI GetClassInfoA(HINSTANCE,LPCSTR,PWNDCLASSA); -BOOL WINAPI GetClassInfoExA(HINSTANCE,LPCSTR,PWNDCLASSEXA); -BOOL WINAPI GetClassInfoW(HINSTANCE,LPCWSTR,PWNDCLASSW); -BOOL WINAPI GetClassInfoExW(HINSTANCE,LPCWSTR,PWNDCLASSEXW); -DWORD WINAPI GetClassLongA(HWND,int); -DWORD WINAPI GetClassLongW(HWND,int); -int WINAPI GetClassNameA(HWND,LPSTR,int); -int WINAPI GetClassNameW(HWND,LPWSTR,int); -WORD WINAPI GetClassWord(HWND,int); -BOOL WINAPI GetClientRect(HWND,LPRECT); -HANDLE WINAPI GetClipboardData(UINT); -int WINAPI GetClipboardFormatNameA(UINT,LPSTR,int); -int WINAPI GetClipboardFormatNameW(UINT,LPWSTR,int); -HWND WINAPI GetClipboardOwner(void); -HWND WINAPI GetClipboardViewer(void); -BOOL WINAPI GetClipCursor(LPRECT); -BOOL WINAPI GetCursorPos(LPPOINT); -HDC WINAPI GetDC(HWND); -HDC WINAPI GetDCEx(HWND,HRGN,DWORD); -HWND WINAPI GetDesktopWindow(void); -long WINAPI GetDialogBaseUnits(void); -int WINAPI GetDlgCtrlID(HWND); -HWND WINAPI GetDlgItem(HWND,int); -UINT WINAPI GetDlgItemInt(HWND,int,PBOOL,BOOL); -UINT WINAPI GetDlgItemTextA(HWND,int,LPSTR,int); -UINT WINAPI GetDlgItemTextW(HWND,int,LPWSTR,int); -UINT WINAPI GetDoubleClickTime(void); -HWND WINAPI GetFocus(void); -HWND WINAPI GetForegroundWindow(void); -BOOL WINAPI GetIconInfo(HICON,PICONINFO); -BOOL WINAPI GetInputState(void); -UINT WINAPI GetKBCodePage(void); -HKL WINAPI GetKeyboardLayout(DWORD); -int WINAPI GetKeyboardLayoutList(int,HKL*); -BOOL WINAPI GetKeyboardLayoutNameA(LPSTR); -BOOL WINAPI GetKeyboardLayoutNameW(LPWSTR); -BOOL WINAPI GetKeyboardState(PBYTE); -int WINAPI GetKeyboardType(int); -int WINAPI GetKeyNameTextA(LONG,LPSTR,int); -int WINAPI GetKeyNameTextW(LONG,LPWSTR,int); -SHORT WINAPI GetKeyState(int); -HWND WINAPI GetLastActivePopup(HWND); -DWORD WINAPI GetLastError(void); -HMENU WINAPI GetMenu(HWND); -LONG WINAPI GetMenuCheckMarkDimensions(void); -DWORD WINAPI GetMenuContextHelpId(HMENU); -UINT WINAPI GetMenuDefaultItem(HMENU,UINT,UINT); -int WINAPI GetMenuItemCount(HMENU); -UINT WINAPI GetMenuItemID(HMENU,int); -BOOL WINAPI GetMenuItemInfoA(HMENU,UINT,BOOL,LPMENUITEMINFOA); -BOOL WINAPI GetMenuItemInfoW(HMENU,UINT,BOOL,LPMENUITEMINFOW); -BOOL WINAPI GetMenuItemRect(HWND,HMENU,UINT,LPRECT); -UINT WINAPI GetMenuState(HMENU,UINT,UINT); -int WINAPI GetMenuStringA(HMENU,UINT,LPSTR,int,UINT); -int WINAPI GetMenuStringW(HMENU,UINT,LPWSTR,int,UINT); -BOOL WINAPI GetMessageA(LPMSG,HWND,UINT,UINT); -BOOL WINAPI GetMessageW(LPMSG,HWND,UINT,UINT); -LONG WINAPI GetMessageExtraInfo(void); -DWORD WINAPI GetMessagePos(void); -LONG WINAPI GetMessageTime(void); -HWND WINAPI GetNextDlgGroupItem(HWND,HWND,BOOL); -HWND WINAPI GetNextDlgTabItem(HWND,HWND,BOOL); -#define GetNextWindow(h,c) GetWindow(h,c) -HWND WINAPI GetOpenClipboardWindow(void); -HWND WINAPI GetParent(HWND); -int WINAPI GetPriorityClipboardFormat(UINT*,int); -HANDLE WINAPI GetPropA(HWND,LPCSTR); -HANDLE WINAPI GetPropW(HWND,LPCWSTR); -DWORD WINAPI GetQueueStatus(UINT); -BOOL WINAPI GetScrollInfo(HWND,int,LPSCROLLINFO); -int WINAPI GetScrollPos(HWND,int); -BOOL WINAPI GetScrollRange(HWND,int,LPINT,LPINT); -HMENU WINAPI GetSubMenu(HMENU,int); -DWORD WINAPI GetSysColor(int); -HBRUSH WINAPI GetSysColorBrush(int); -#define GetSysModalWindow() (NULL) -HMENU WINAPI GetSystemMenu(HWND,BOOL); -int WINAPI GetSystemMetrics(int); -DWORD WINAPI GetTabbedTextExtentA(HDC,LPCSTR,int,int,LPINT); -DWORD WINAPI GetTabbedTextExtentW(HDC,LPCWSTR,int,int,LPINT); -LONG WINAPI GetWindowLongA(HWND,int); -LONG WINAPI GetWindowLongW(HWND,int); -#ifdef _WIN64 -LONG_PTR WINAPI GetWindowLongPtrA(HWND,int); -LONG_PTR WINAPI GetWindowLongPtrW(HWND,int); -#else -#define GetWindowLongPtrA GetWindowLongA -#define GetWindowLongPtrW GetWindowLongW -#endif -HDESK WINAPI GetThreadDesktop(DWORD); -HWND WINAPI GetTopWindow(HWND); -BOOL WINAPI GetUpdateRect(HWND,LPRECT,BOOL); -int WINAPI GetUpdateRgn(HWND,HRGN,BOOL); -BOOL WINAPI GetUserObjectInformationA(HANDLE,int,PVOID,DWORD,PDWORD); -BOOL WINAPI GetUserObjectInformationW(HANDLE,int,PVOID,DWORD,PDWORD); -BOOL WINAPI GetUserObjectSecurity(HANDLE,PSECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD); -HWND WINAPI GetWindow(HWND,UINT); -DWORD WINAPI GetWindowContextHelpId(HWND); -HDC WINAPI GetWindowDC(HWND); -BOOL WINAPI GetWindowExtEx(HDC,LPSIZE); -BOOL WINAPI GetWindowPlacement(HWND,WINDOWPLACEMENT*); -BOOL WINAPI GetWindowRect(HWND,LPRECT); -int WINAPI GetWindowRgn(HWND,HRGN); -#define GetWindowTask(hWnd) ((HANDLE)GetWindowThreadProcessId(hWnd, NULL)) -int WINAPI GetWindowTextA(HWND,LPSTR,int); -int WINAPI GetWindowTextLengthA(HWND); -int WINAPI GetWindowTextLengthW(HWND); -int WINAPI GetWindowTextW(HWND,LPWSTR,int); -WORD WINAPI GetWindowWord(HWND,int); -BOOL WINAPI GetAltTabInfoA(HWND,int,PALTTABINFO,LPSTR,UINT); -BOOL WINAPI GetAltTabInfoW(HWND,int,PALTTABINFO,LPWSTR,UINT); -BOOL WINAPI GetComboBoxInfo(HWND,PCOMBOBOXINFO); -BOOL WINAPI GetCursorInfo(PCURSORINFO); -BOOL WINAPI GetLastInputInfo(PLASTINPUTINFO); -DWORD WINAPI GetListBoxInfo(HWND); -BOOL WINAPI GetMenuBarInfo(HWND,LONG,LONG,PMENUBARINFO); -BOOL WINAPI GetMenuInfo(HMENU,LPMENUINFO); -BOOL WINAPI GetScrollBarInfo(HWND,LONG,PSCROLLBARINFO); -BOOL WINAPI GetTitleBarInfo(HWND,PTITLEBARINFO); -BOOL WINAPI GetWindowInfo(HWND,PWINDOWINFO); -BOOL WINAPI GetMonitorInfoA(HMONITOR,LPMONITORINFO); -BOOL WINAPI GetMonitorInfoW(HMONITOR,LPMONITORINFO); -UINT WINAPI GetWindowModuleFileNameA(HWND,LPSTR,UINT); -UINT WINAPI GetWindowModuleFileNameW(HWND,LPWSTR,UINT); -BOOL WINAPI GrayStringA(HDC,HBRUSH,GRAYSTRINGPROC,LPARAM,int,int,int,int,int); -BOOL WINAPI GrayStringW(HDC,HBRUSH,GRAYSTRINGPROC,LPARAM,int,int,int,int,int); -BOOL WINAPI HideCaret(HWND); -BOOL WINAPI HiliteMenuItem(HWND,HMENU,UINT,UINT); -BOOL WINAPI InflateRect(LPRECT,int,int); -BOOL WINAPI InSendMessage(VOID); -BOOL WINAPI InsertMenuA(HMENU,UINT,UINT,UINT,LPCSTR); -BOOL WINAPI InsertMenuW(HMENU,UINT,UINT,UINT,LPCWSTR); -BOOL WINAPI InsertMenuItemA(HMENU,UINT,BOOL,LPCMENUITEMINFOA); -BOOL WINAPI InsertMenuItemW(HMENU,UINT,BOOL,LPCMENUITEMINFOW); -BOOL WINAPI IntersectRect(LPRECT,LPCRECT,LPCRECT); -BOOL WINAPI InvalidateRect(HWND,LPCRECT,BOOL); -BOOL WINAPI InvalidateRgn(HWND,HRGN,BOOL); -BOOL WINAPI InvertRect(HDC,LPCRECT); -BOOL WINAPI IsCharAlphaA(CHAR ch); -BOOL WINAPI IsCharAlphaNumericA(CHAR); -BOOL WINAPI IsCharAlphaNumericW(WCHAR); -BOOL WINAPI IsCharAlphaW(WCHAR); -BOOL WINAPI IsCharLowerA(CHAR); -BOOL WINAPI IsCharLowerW(WCHAR); -BOOL WINAPI IsCharUpperA(CHAR); -BOOL WINAPI IsCharUpperW(WCHAR); -BOOL WINAPI IsChild(HWND,HWND); -BOOL WINAPI IsClipboardFormatAvailable(UINT); -BOOL WINAPI IsDialogMessageA(HWND,LPMSG); -BOOL WINAPI IsDialogMessageW(HWND,LPMSG); -UINT WINAPI IsDlgButtonChecked(HWND,int); -BOOL WINAPI IsIconic(HWND); -BOOL WINAPI IsMenu(HMENU); -BOOL WINAPI IsRectEmpty(LPCRECT); -BOOL WINAPI IsWindow(HWND); -BOOL WINAPI IsWindowEnabled(HWND); -BOOL WINAPI IsWindowUnicode(HWND); -BOOL WINAPI IsWindowVisible(HWND); -BOOL WINAPI IsZoomed(HWND); -VOID WINAPI keybd_event(BYTE,BYTE,DWORD,DWORD); -BOOL WINAPI KillTimer(HWND,UINT); -HACCEL WINAPI LoadAcceleratorsA(HINSTANCE,LPCSTR); -HACCEL WINAPI LoadAcceleratorsW(HINSTANCE,LPCWSTR); -HBITMAP WINAPI LoadBitmapA(HINSTANCE,LPCSTR); -HBITMAP WINAPI LoadBitmapW(HINSTANCE,LPCWSTR); -HCURSOR WINAPI LoadCursorA(HINSTANCE,LPCSTR); -HCURSOR WINAPI LoadCursorFromFileA(LPCSTR); -HCURSOR WINAPI LoadCursorFromFileW(LPCWSTR); -HCURSOR WINAPI LoadCursorW(HINSTANCE,LPCWSTR); -HICON WINAPI LoadIconA(HINSTANCE,LPCSTR); -HICON WINAPI LoadIconW(HINSTANCE,LPCWSTR); -HANDLE WINAPI LoadImageA(HINSTANCE,LPCSTR,UINT,int,int,UINT); -HANDLE WINAPI LoadImageW(HINSTANCE,LPCWSTR,UINT,int,int,UINT); -HKL WINAPI LoadKeyboardLayoutA(LPCSTR,UINT); -HKL WINAPI LoadKeyboardLayoutW(LPCWSTR,UINT); -HMENU WINAPI LoadMenuA(HINSTANCE,LPCSTR); -HMENU WINAPI LoadMenuIndirectA(const MENUTEMPLATE*); -HMENU WINAPI LoadMenuIndirectW(const MENUTEMPLATE*); -HMENU WINAPI LoadMenuW(HINSTANCE,LPCWSTR); -int WINAPI LoadStringA(HINSTANCE,UINT,LPSTR,int); -int WINAPI LoadStringW(HINSTANCE,UINT,LPWSTR,int); -BOOL WINAPI LockWindowUpdate(HWND); -int WINAPI LookupIconIdFromDirectory(PBYTE,BOOL); -int WINAPI LookupIconIdFromDirectoryEx(PBYTE,BOOL,int,int,UINT); -BOOL WINAPI MapDialogRect(HWND,LPRECT); -UINT WINAPI MapVirtualKeyA(UINT,UINT); -UINT WINAPI MapVirtualKeyExA(UINT,UINT,HKL); -UINT WINAPI MapVirtualKeyExW(UINT,UINT,HKL); -UINT WINAPI MapVirtualKeyW(UINT,UINT); -int WINAPI MapWindowPoints(HWND,HWND,LPPOINT,UINT); -int WINAPI MenuItemFromPoint(HWND,HMENU,POINT); -BOOL WINAPI MessageBeep(UINT); -int WINAPI MessageBoxA(HWND,LPCSTR,LPCSTR,UINT); -int WINAPI MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT); -int WINAPI MessageBoxExA(HWND,LPCSTR,LPCSTR,UINT,WORD); -int WINAPI MessageBoxExW(HWND,LPCWSTR,LPCWSTR,UINT,WORD); -int WINAPI MessageBoxIndirectA(LPMSGBOXPARAMSA); -int WINAPI MessageBoxIndirectW(LPMSGBOXPARAMSW); -BOOL WINAPI ModifyMenuA(HMENU,UINT,UINT,UINT,LPCSTR); -BOOL WINAPI ModifyMenuW(HMENU,UINT,UINT,UINT,LPCWSTR); -void WINAPI mouse_event(DWORD,DWORD,DWORD,DWORD,DWORD); -BOOL WINAPI MoveWindow(HWND,int,int,int,int,BOOL); -DWORD WINAPI MsgWaitForMultipleObjects(DWORD,LPHANDLE,BOOL,DWORD,DWORD); -DWORD WINAPI MsgWaitForMultipleObjectsEx(DWORD,LPHANDLE,DWORD,DWORD,DWORD); -DWORD WINAPI OemKeyScan(WORD); -BOOL WINAPI OemToCharA(LPCSTR,LPSTR); -BOOL WINAPI OemToCharBuffA(LPCSTR,LPSTR,DWORD); -BOOL WINAPI OemToCharBuffW(LPCSTR,LPWSTR,DWORD); -BOOL WINAPI OemToCharW(LPCSTR,LPWSTR); -BOOL WINAPI OffsetRect(LPRECT,int,int); -BOOL WINAPI OpenClipboard(HWND); -HDESK WINAPI OpenDesktopA(LPSTR,DWORD,BOOL,DWORD); -HDESK WINAPI OpenDesktopW(LPWSTR,DWORD,BOOL,DWORD); -BOOL WINAPI OpenIcon(HWND); -HDESK WINAPI OpenInputDesktop(DWORD,BOOL,DWORD); -HWINSTA WINAPI OpenWindowStationA(LPSTR,BOOL,DWORD); -HWINSTA WINAPI OpenWindowStationW(LPWSTR,BOOL,DWORD); -BOOL WINAPI PaintDesktop(HDC); -BOOL WINAPI PeekMessageA(LPMSG,HWND,UINT,UINT,UINT); -BOOL WINAPI PeekMessageW(LPMSG,HWND,UINT,UINT,UINT); -#define PostAppMessageA(t,m,w,l) PostThreadMessageA((DWORD)t,m,w,l) -#define PostAppMessageW(t,m,w,l) PostThreadMessageW((DWORD)t,m,w,l) -BOOL WINAPI PostMessageA(HWND,UINT,WPARAM,LPARAM); -BOOL WINAPI PostMessageW(HWND,UINT,WPARAM,LPARAM); -void WINAPI PostQuitMessage(int); -BOOL WINAPI PostThreadMessageA(DWORD,UINT,WPARAM,LPARAM); -BOOL WINAPI PostThreadMessageW(DWORD,UINT,WPARAM,LPARAM); -BOOL WINAPI PtInRect(LPCRECT,POINT); -BOOL WINAPI RedrawWindow(HWND,LPCRECT,HRGN,UINT); -ATOM WINAPI RegisterClassA(const WNDCLASSA*); -ATOM WINAPI RegisterClassW(const WNDCLASSW*); -ATOM WINAPI RegisterClassExA(const WNDCLASSEXA*); -ATOM WINAPI RegisterClassExW(const WNDCLASSEXW*); -UINT WINAPI RegisterClipboardFormatA(LPCSTR); -UINT WINAPI RegisterClipboardFormatW(LPCWSTR); -BOOL WINAPI RegisterHotKey(HWND,int,UINT,UINT); -UINT WINAPI RegisterWindowMessageA(LPCSTR); -UINT WINAPI RegisterWindowMessageW(LPCWSTR); -BOOL WINAPI ReleaseCapture(void); -int WINAPI ReleaseDC(HWND,HDC); -BOOL WINAPI RemoveMenu(HMENU,UINT,UINT); -HANDLE WINAPI RemovePropA(HWND,LPCSTR); -HANDLE WINAPI RemovePropW(HWND,LPCWSTR); -BOOL WINAPI ReplyMessage(LRESULT); -BOOL WINAPI ScreenToClient(HWND,LPPOINT); -BOOL WINAPI ScrollDC(HDC,int,int,LPCRECT,LPCRECT,HRGN,LPRECT); -BOOL WINAPI ScrollWindow(HWND,int,int,LPCRECT,LPCRECT); -int WINAPI ScrollWindowEx(HWND,int,int,LPCRECT,LPCRECT,HRGN,LPRECT,UINT); -LONG WINAPI SendDlgItemMessageA(HWND,int,UINT,WPARAM,LPARAM); -LONG WINAPI SendDlgItemMessageW(HWND,int,UINT,WPARAM,LPARAM); -LRESULT WINAPI SendMessageA(HWND,UINT,WPARAM,LPARAM); -BOOL WINAPI SendMessageCallbackA(HWND,UINT,WPARAM,LPARAM,SENDASYNCPROC,DWORD); -BOOL WINAPI SendMessageCallbackW(HWND,UINT,WPARAM,LPARAM,SENDASYNCPROC,DWORD); -LRESULT WINAPI SendMessageTimeoutA(HWND,UINT,WPARAM,LPARAM,UINT,UINT,PDWORD); -LRESULT WINAPI SendMessageTimeoutW(HWND,UINT,WPARAM,LPARAM,UINT,UINT,PDWORD); -LRESULT WINAPI SendMessageW(HWND,UINT,WPARAM,LPARAM); -BOOL WINAPI SendNotifyMessageA(HWND,UINT,WPARAM,LPARAM); -BOOL WINAPI SendNotifyMessageW(HWND,UINT,WPARAM,LPARAM); -HWND WINAPI SetActiveWindow(HWND); -HWND WINAPI SetCapture(HWND hWnd); -BOOL WINAPI SetCaretBlinkTime(UINT); -BOOL WINAPI SetCaretPos(int,int); -DWORD WINAPI SetClassLongA(HWND,int,LONG); -DWORD WINAPI SetClassLongW(HWND,int,LONG); -WORD WINAPI SetClassWord(HWND,int,WORD); -HANDLE WINAPI SetClipboardData(UINT,HANDLE); -HWND WINAPI SetClipboardViewer(HWND); -HCURSOR WINAPI SetCursor(HCURSOR); -BOOL WINAPI SetCursorPos(int,int); -VOID WINAPI SetDebugErrorLevel(DWORD); -BOOL WINAPI SetDlgItemInt(HWND,int,UINT,BOOL); -BOOL WINAPI SetDlgItemTextA(HWND,int,LPCSTR); -BOOL WINAPI SetDlgItemTextW(HWND,int,LPCWSTR); -BOOL WINAPI SetDoubleClickTime(UINT); -HWND WINAPI SetFocus(HWND); -BOOL WINAPI SetForegroundWindow(HWND); -BOOL WINAPI SetKeyboardState(PBYTE); -BOOL WINAPI SetMenu(HWND,HMENU); -BOOL WINAPI SetMenuContextHelpId(HMENU,DWORD); -BOOL WINAPI SetMenuDefaultItem(HMENU,UINT,UINT); -BOOL WINAPI SetMenuInfo(HMENU,LPCMENUINFO); -BOOL WINAPI SetMenuItemBitmaps(HMENU,UINT,UINT,HBITMAP,HBITMAP); -BOOL WINAPI SetMenuItemInfoA(HMENU,UINT,BOOL,LPCMENUITEMINFOA); -BOOL WINAPI SetMenuItemInfoW( HMENU,UINT,BOOL,LPCMENUITEMINFOW); -LPARAM WINAPI SetMessageExtraInfo(LPARAM); -BOOL WINAPI SetMessageQueue(int); -HWND WINAPI SetParent(HWND,HWND); -BOOL WINAPI SetProcessWindowStation(HWINSTA); -BOOL WINAPI SetPropA(HWND,LPCSTR,HANDLE); -BOOL WINAPI SetPropW(HWND,LPCWSTR,HANDLE); -BOOL WINAPI SetRect(LPRECT,int,int,int,int); -BOOL WINAPI SetRectEmpty(LPRECT); -int WINAPI SetScrollInfo(HWND,int,LPCSCROLLINFO,BOOL); -int WINAPI SetScrollPos(HWND,int,int,BOOL); -BOOL WINAPI SetScrollRange(HWND,int,int,int,BOOL); -BOOL WINAPI SetSysColors(int,const INT *,const COLORREF *); -#define SetSysModalWindow(h) (NULL) -BOOL WINAPI SetSystemCursor(HCURSOR,DWORD); -BOOL WINAPI SetThreadDesktop(HDESK); -UINT WINAPI SetTimer(HWND,UINT,UINT,TIMERPROC); -BOOL WINAPI SetUserObjectInformationA(HANDLE,int,PVOID,DWORD); -BOOL WINAPI SetUserObjectInformationW(HANDLE,int,PVOID,DWORD); -BOOL WINAPI SetUserObjectSecurity(HANDLE,PSECURITY_INFORMATION,PSECURITY_DESCRIPTOR); -BOOL WINAPI SetWindowContextHelpId(HWND,DWORD); -LONG WINAPI SetWindowLongA(HWND,int,LONG); -LONG WINAPI SetWindowLongW(HWND,int,LONG); -#ifdef _WIN64 -LONG_PTR WINAPI SetWindowLongPtrA(HWND,int,LONG_PTR); -LONG_PTR WINAPI SetWindowLongPtrW(HWND,int,LONG_PTR); -#else -#define SetWindowLongPtrA SetWindowLongA -#define SetWindowLongPtrW SetWindowLongW -#endif -BOOL WINAPI SetWindowPlacement(HWND hWnd,const WINDOWPLACEMENT*); -BOOL WINAPI SetWindowPos(HWND,HWND,int,int,int,int,UINT); -int WINAPI SetWindowRgn(HWND,HRGN,BOOL); -HOOKPROC WINAPI SetWindowsHookA(int,HOOKPROC); -HHOOK WINAPI SetWindowsHookExA(int,HOOKPROC,HINSTANCE,DWORD); -HHOOK WINAPI SetWindowsHookExW(int,HOOKPROC,HINSTANCE,DWORD); -BOOL WINAPI SetWindowTextA(HWND,LPCSTR); -BOOL WINAPI SetWindowTextW(HWND,LPCWSTR); -WORD WINAPI SetWindowWord(HWND,int,WORD); -BOOL WINAPI ShowCaret(HWND); -int WINAPI ShowCursor(BOOL); -BOOL WINAPI ShowOwnedPopups(HWND,BOOL); -BOOL WINAPI ShowScrollBar(HWND,int,BOOL); -BOOL WINAPI ShowWindow(HWND,int); -BOOL WINAPI ShowWindowAsync(HWND,int); -BOOL WINAPI SubtractRect(LPRECT,LPCRECT,LPCRECT); -BOOL WINAPI SwapMouseButton(BOOL); -BOOL WINAPI SwitchDesktop(HDESK); -BOOL WINAPI SystemParametersInfoA(UINT,UINT,PVOID,UINT); -BOOL WINAPI SystemParametersInfoW(UINT,UINT,PVOID,UINT); -LONG WINAPI TabbedTextOutA(HDC,int,int,LPCSTR,int,int,LPINT,int); -LONG WINAPI TabbedTextOutW(HDC,int,int,LPCWSTR,int,int,LPINT,int); -WORD WINAPI TileWindows(HWND,UINT,LPCRECT,UINT,const HWND *); -int WINAPI ToAscii(UINT,UINT,PBYTE,LPWORD,UINT); -int WINAPI ToAsciiEx(UINT,UINT,PBYTE,LPWORD,UINT,HKL); -int WINAPI ToUnicode(UINT,UINT,PBYTE,LPWSTR,int,UINT); -int WINAPI ToUnicodeEx(UINT,UINT,PBYTE,LPWSTR,int,UINT,HKL); -BOOL WINAPI TrackMouseEvent(LPTRACKMOUSEEVENT); -BOOL WINAPI TrackPopupMenu(HMENU,UINT,int,int,int,HWND,LPCRECT); -BOOL WINAPI TrackPopupMenuEx(HMENU,UINT,int,int,HWND,LPTPMPARAMS); -int WINAPI TranslateAcceleratorA(HWND,HACCEL,LPMSG); -int WINAPI TranslateAcceleratorW(HWND,HACCEL,LPMSG); -BOOL WINAPI TranslateMDISysAccel(HWND,LPMSG); -BOOL WINAPI TranslateMessage(const MSG*); -BOOL WINAPI UnhookWindowsHook(int,HOOKPROC); -BOOL WINAPI UnhookWindowsHookEx(HHOOK); -BOOL WINAPI UnionRect(LPRECT,LPCRECT,LPCRECT); -BOOL WINAPI UnloadKeyboardLayout(HKL); -BOOL WINAPI UnregisterClassA(LPCSTR,HINSTANCE); -BOOL WINAPI UnregisterClassW(LPCWSTR,HINSTANCE); -BOOL WINAPI UnregisterHotKey(HWND,int); -BOOL WINAPI UpdateWindow(HWND); -BOOL WINAPI ValidateRect(HWND,LPCRECT); -BOOL WINAPI ValidateRgn(HWND,HRGN); -SHORT WINAPI VkKeyScanA(CHAR); -SHORT WINAPI VkKeyScanExA(CHAR,HKL); -SHORT WINAPI VkKeyScanExW(WCHAR,HKL); -SHORT WINAPI VkKeyScanW(WCHAR); -DWORD WINAPI WaitForInputIdle(HANDLE,DWORD); -BOOL WINAPI WaitMessage(void); -HWND WINAPI WindowFromDC(HDC hDC); -HWND WINAPI WindowFromPoint(POINT); -UINT WINAPI WinExec(LPCSTR,UINT); -BOOL WINAPI WinHelpA(HWND,LPCSTR,UINT,DWORD); -BOOL WINAPI WinHelpW(HWND,LPCWSTR,UINT,DWORD); -int WINAPIV wsprintfA(LPSTR,LPCSTR,...); -int WINAPIV wsprintfW(LPWSTR,LPCWSTR,...); -int WINAPI wvsprintfA(LPSTR,LPCSTR,va_list arglist); -int WINAPI wvsprintfW(LPWSTR,LPCWSTR,va_list arglist); - -#ifdef UNICODE -#define EDITWORDBREAKPROC EDITWORDBREAKPROCW -#define PROPENUMPROC PROPENUMPROCW -#define PROPENUMPROCEX PROPENUMPROCEXW -#define DEKSTOPENUMPROC DEKSTOPENUMPROCW -#define WINSTAENUMPROC WINSTAENUMPROCW -#define PROPENUMPROC PROPENUMPROCW -#define PROPENUMPROCEX PROPENUMPROCEXW -#define MAKEINTRESOURCE MAKEINTRESOURCEW -typedef WNDCLASSW WNDCLASS,*LPWNDCLASS,*PWNDCLASS; -typedef WNDCLASSEXW WNDCLASSEX,*LPWNDCLASSEX,*PWNDCLASSEX; -typedef MENUITEMINFOW MENUITEMINFO,*LPMENUITEMINFO; -typedef LPCMENUITEMINFOW LPCMENUITEMINFO; -typedef MSGBOXPARAMSW MSGBOXPARAMS,*PMSGBOXPARAMS,*LPMSGBOXPARAMS; -typedef HIGHCONTRASTW HIGHCONTRAST,*LPHIGHCONTRAST; -typedef ICONMETRICSW ICONMETRICS,*LPICONMETRICS; -typedef NONCLIENTMETRICSW NONCLIENTMETRICS,*LPNONCLIENTMETRICS; -typedef SERIALKEYSW SERIALKEYS,*LPSERIALKEYS; -typedef SOUNDSENTRYW SOUNDSENTRY,*LPSOUNDSENTRY; -typedef CREATESTRUCTW CREATESTRUCT, *LPCREATESTRUCT; -typedef CBT_CREATEWNDW CBT_CREATEWND, *LPCBT_CREATEWND; -typedef MDICREATESTRUCTW MDICREATESTRUCT,*LPMDICREATESTRUCT; -typedef MULTIKEYHELPW MULTIKEYHELP,*PMULTIKEYHELP,*LPMULTIKEYHELP; -#define AppendMenu AppendMenuW -#define CallWindowProc CallWindowProcW -#define ChangeDisplaySettings ChangeDisplaySettingsW -#define ChangeMenu ChangeMenuW -#define CharLower CharLowerW -#define CharLowerBuff CharLowerBuffW -#define CharNext CharNextW -#define CharNextEx CharNextExW -#define CharPrev CharPrevW -#define CharPrevEx CharPrevExW -#define CharToOem CharToOemW -#define CharToOemBuff CharToOemBuffW -#define CharUpper CharUpperW -#define CharUpperBuff CharUpperBuffW -#define CopyAcceleratorTable CopyAcceleratorTableW -#define CreateAcceleratorTable CreateAcceleratorTableW -#define CreateDesktop CreateDesktopW -#define CreateDialog CreateDialogW -#define CreateDialogIndirect CreateDialogIndirectW -#define CreateDialogIndirectParam CreateDialogIndirectParamW -#define CreateDialogParam CreateDialogParamW -#define CreateMDIWindow CreateMDIWindowW -#define CreateWindow CreateWindowW -#define CreateWindowEx CreateWindowExW -#define CreateWindowStation CreateWindowStationW -#define DefDlgProc DefDlgProcW -#define DefFrameProc DefFrameProcW -#define DefMDIChildProc DefMDIChildProcW -#define DefWindowProc DefWindowProcW -#define DialogBox DialogBoxW -#define DialogBoxIndirect DialogBoxIndirectW -#define DialogBoxIndirectParam DialogBoxIndirectParamW -#define DialogBoxParam DialogBoxParamW -#define DispatchMessage DispatchMessageW -#define DlgDirList DlgDirListW -#define DlgDirListComboBox DlgDirListComboBoxW -#define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW -#define DlgDirSelectEx DlgDirSelectExW -#define DrawState DrawStateW -#define DrawText DrawTextW -#define DrawTextEx DrawTextExW -#define EnumDesktops EnumDesktopsW -#define EnumDisplaySettings EnumDisplaySettingsW -#define EnumProps EnumPropsW -#define EnumPropsEx EnumPropsExW -#define EnumWindowStations EnumWindowStationsW -#define FindWindow FindWindowW -#define FindWindowEx FindWindowExW -#define GetClassInfo GetClassInfoW -#define GetClassInfoEx GetClassInfoExW -#define GetClassLong GetClassLongW -#define GetClassName GetClassNameW -#define GetClipboardFormatName GetClipboardFormatNameW -#define GetDlgItemText GetDlgItemTextW -#define GetKeyboardLayoutName GetKeyboardLayoutNameW -#define GetKeyNameText GetKeyNameTextW -#define GetMenuItemInfo GetMenuItemInfoW -#define GetMenuString GetMenuStringW -#define GetMessage GetMessageW -#define GetMonitorInfo GetMonitorInfoW -#define GetProp GetPropW -#define GetTabbedTextExtent GetTabbedTextExtentW -#define GetUserObjectInformation GetUserObjectInformationW -#define GetWindowLong GetWindowLongW -#define GetWindowLongPtr GetWindowLongPtrW -#define GetWindowText GetWindowTextW -#define GetWindowTextLength GetWindowTextLengthW -#define GetAltTabInfo GetAltTabInfoW -#define GetWindowModuleFileName GetWindowModuleFileNameW -#define GrayString GrayStringW -#define InsertMenu InsertMenuW -#define InsertMenuItem InsertMenuItemW -#define IsCharAlpha IsCharAlphaW -#define IsCharAlphaNumeric IsCharAlphaNumericW -#define IsCharLower IsCharLowerW -#define IsCharUpper IsCharUpperW -#define IsDialogMessage IsDialogMessageW -#define LoadAccelerators LoadAcceleratorsW -#define LoadBitmap LoadBitmapW -#define LoadCursor LoadCursorW -#define LoadCursorFromFile LoadCursorFromFileW -#define LoadIcon LoadIconW -#define LoadImage LoadImageW -#define LoadKeyboardLayout LoadKeyboardLayoutW -#define LoadMenu LoadMenuW -#define LoadMenuIndirect LoadMenuIndirectW -#define LoadString LoadStringW -#define MapVirtualKey MapVirtualKeyW -#define MapVirtualKeyEx MapVirtualKeyExW -#define MessageBox MessageBoxW -#define MessageBoxEx MessageBoxExW -#define MessageBoxIndirect MessageBoxIndirectW -#define ModifyMenu ModifyMenuW -#define OemToChar OemToCharW -#define OemToCharBuff OemToCharBuffW -#define OpenDesktop OpenDesktopW -#define OpenWindowStation OpenWindowStationW -#define PeekMessage PeekMessageW -#define PostAppMessage PostAppMessageW -#define PostMessage PostMessageW -#define PostThreadMessage PostThreadMessageW -#define RegisterClass RegisterClassW -#define RegisterClassEx RegisterClassExW -#define RegisterClipboardFormat RegisterClipboardFormatW -#define RegisterWindowMessage RegisterWindowMessageW -#define RemoveProp RemovePropW -#define SendDlgItemMessage SendDlgItemMessageW -#define SendMessage SendMessageW -#define SendMessageCallback SendMessageCallbackW -#define SendMessageTimeout SendMessageTimeoutW -#define SendNotifyMessage SendNotifyMessageW -#define SetClassLong SetClassLongW -#define SetDlgItemText SetDlgItemTextW -#define SetMenuItemInfo SetMenuItemInfoW -#define SetProp SetPropW -#define SetUserObjectInformation SetUserObjectInformationW -#define SetWindowLong SetWindowLongW -#define SetWindowLongPtr SetWindowLongPtrW -#define SetWindowsHook SetWindowsHookW -#define SetWindowsHookEx SetWindowsHookExW -#define SetWindowText SetWindowTextW -#define SystemParametersInfo SystemParametersInfoW -#define TabbedTextOut TabbedTextOutW -#define TranslateAccelerator TranslateAcceleratorW -#define UnregisterClass UnregisterClassW -#define VkKeyScan VkKeyScanW -#define VkKeyScanEx VkKeyScanExW -#define WinHelp WinHelpW -#define wsprintf wsprintfW -#define wvsprintf wvsprintfW -#else -#define EDITWORDBREAKPROC EDITWORDBREAKPROCA -#define PROPENUMPROC PROPENUMPROCA -#define PROPENUMPROCEX PROPENUMPROCEXA -#define DEKSTOPENUMPROC DEKSTOPENUMPROCA -#define WINSTAENUMPROC WINSTAENUMPROCA -#define PROPENUMPROC PROPENUMPROCA -#define PROPENUMPROCEX PROPENUMPROCEXA -#define MAKEINTRESOURCE MAKEINTRESOURCEA -typedef WNDCLASSA WNDCLASS,*LPWNDCLASS,*PWNDCLASS; -typedef WNDCLASSEXA WNDCLASSEX,*LPWNDCLASSEX,*PWNDCLASSEX; -typedef MENUITEMINFOA MENUITEMINFO,*LPMENUITEMINFO; -typedef LPCMENUITEMINFOA LPCMENUITEMINFO; -typedef MSGBOXPARAMSA MSGBOXPARAMS,*PMSGBOXPARAMS,*LPMSGBOXPARAMS; -typedef HIGHCONTRASTA HIGHCONTRAST,*LPHIGHCONTRAST; -typedef ICONMETRICSA ICONMETRICS,*LPICONMETRICS; -typedef NONCLIENTMETRICSA NONCLIENTMETRICS,*LPNONCLIENTMETRICS; -typedef SERIALKEYSA SERIALKEYS,*LPSERIALKEYS; -typedef SOUNDSENTRYA SOUNDSENTRY,*LPSOUNDSENTRY; -typedef CREATESTRUCTA CREATESTRUCT, *LPCREATESTRUCT; -typedef CBT_CREATEWNDA CBT_CREATEWND, *LPCBT_CREATEWND; -typedef MDICREATESTRUCTA MDICREATESTRUCT,*LPMDICREATESTRUCT; -typedef MULTIKEYHELPA MULTIKEYHELP,*PMULTIKEYHELP,*LPMULTIKEYHELP; -#define AppendMenu AppendMenuA -#define CallWindowProc CallWindowProcA -#define ChangeDisplaySettings ChangeDisplaySettingsA -#define ChangeMenu ChangeMenuA -#define CharLower CharLowerA -#define CharLowerBuff CharLowerBuffA -#define CharNext CharNextA -#define CharNextEx CharNextExA -#define CharPrev CharPrevA -#define CharPrevEx CharPrevExA -#define CharToOem CharToOemA -#define CharToOemBuff CharToOemBuffA -#define CharUpper CharUpperA -#define CharUpperBuff CharUpperBuffA -#define CopyAcceleratorTable CopyAcceleratorTableA -#define CreateAcceleratorTable CreateAcceleratorTableA -#define CreateDesktop CreateDesktopA -#define CreateDialog CreateDialogA -#define CreateDialogIndirect CreateDialogIndirectA -#define CreateDialogIndirectParam CreateDialogIndirectParamA -#define CreateDialogParam CreateDialogParamA -#define CreateMDIWindow CreateMDIWindowA -#define CreateWindow CreateWindowA -#define CreateWindowEx CreateWindowExA -#define CreateWindowStation CreateWindowStationA -#define DefDlgProc DefDlgProcA -#define DefFrameProc DefFrameProcA -#define DefMDIChildProc DefMDIChildProcA -#define DefWindowProc DefWindowProcA -#define DialogBox DialogBoxA -#define DialogBoxIndirect DialogBoxIndirectA -#define DialogBoxIndirectParam DialogBoxIndirectParamA -#define DialogBoxParam DialogBoxParamA -#define DispatchMessage DispatchMessageA -#define DlgDirList DlgDirListA -#define DlgDirListComboBox DlgDirListComboBoxA -#define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA -#define DlgDirSelectEx DlgDirSelectExA -#define DrawState DrawStateA -#define DrawText DrawTextA -#define DrawTextEx DrawTextExA -#define EnumDesktops EnumDesktopsA -#define EnumDisplaySettings EnumDisplaySettingsA -#define EnumProps EnumPropsA -#define EnumPropsEx EnumPropsExA -#define EnumWindowStations EnumWindowStationsA -#define FindWindow FindWindowA -#define FindWindowEx FindWindowExA -#define GetClassInfo GetClassInfoA -#define GetClassInfoEx GetClassInfoExA -#define GetClassLong GetClassLongA -#define GetClassName GetClassNameA -#define GetClipboardFormatName GetClipboardFormatNameA -#define GetDlgItemText GetDlgItemTextA -#define GetKeyboardLayoutName GetKeyboardLayoutNameA -#define GetKeyNameText GetKeyNameTextA -#define GetMenuItemInfo GetMenuItemInfoA -#define GetMenuString GetMenuStringA -#define GetMessage GetMessageA -#define GetMonitorInfo GetMonitorInfoA -#define GetProp GetPropA -#define GetTabbedTextExtent GetTabbedTextExtentA -#define GetUserObjectInformation GetUserObjectInformationA -#define GetWindowLong GetWindowLongA -#define GetWindowLongPtr GetWindowLongPtrA -#define GetWindowText GetWindowTextA -#define GetWindowTextLength GetWindowTextLengthA -#define GetAltTabInfo GetAltTabInfoA -#define GetWindowModuleFileName GetWindowModuleFileNameA -#define GrayString GrayStringA -#define InsertMenu InsertMenuA -#define InsertMenuItem InsertMenuItemA -#define IsCharAlpha IsCharAlphaA -#define IsCharAlphaNumeric IsCharAlphaNumericA -#define IsCharLower IsCharLowerA -#define IsCharUpper IsCharUpperA -#define IsDialogMessage IsDialogMessageA -#define LoadAccelerators LoadAcceleratorsA -#define LoadBitmap LoadBitmapA -#define LoadCursor LoadCursorA -#define LoadIcon LoadIconA -#define LoadCursorFromFile LoadCursorFromFileA -#define LoadImage LoadImageA -#define LoadKeyboardLayout LoadKeyboardLayoutA -#define LoadMenu LoadMenuA -#define LoadMenuIndirect LoadMenuIndirectA -#define LoadString LoadStringA -#define MapVirtualKey MapVirtualKeyA -#define MapVirtualKeyEx MapVirtualKeyExA -#define MessageBox MessageBoxA -#define MessageBoxEx MessageBoxExA -#define MessageBoxIndirect MessageBoxIndirectA -#define ModifyMenu ModifyMenuA -#define OemToChar OemToCharA -#define OemToCharBuff OemToCharBuffA -#define OpenDesktop OpenDesktopA -#define OpenWindowStation OpenWindowStationA -#define PeekMessage PeekMessageA -#define PostAppMessage PostAppMessageA -#define PostMessage PostMessageA -#define PostThreadMessage PostThreadMessageA -#define RegisterClass RegisterClassA -#define RegisterClassEx RegisterClassExA -#define RegisterClipboardFormat RegisterClipboardFormatA -#define RegisterWindowMessage RegisterWindowMessageA -#define RemoveProp RemovePropA -#define SendDlgItemMessage SendDlgItemMessageA -#define SendMessage SendMessageA -#define SendMessageCallback SendMessageCallbackA -#define SendMessageTimeout SendMessageTimeoutA -#define SendNotifyMessage SendNotifyMessageA -#define SetClassLong SetClassLongA -#define SetDlgItemText SetDlgItemTextA -#define SetMenuItemInfo SetMenuItemInfoA -#define SetProp SetPropA -#define SetUserObjectInformation SetUserObjectInformationA -#define SetWindowLong SetWindowLongA -#define SetWindowLongPtr SetWindowLongPtrA -#define SetWindowsHook SetWindowsHookA -#define SetWindowsHookEx SetWindowsHookExA -#define SetWindowText SetWindowTextA -#define SystemParametersInfo SystemParametersInfoA -#define TabbedTextOut TabbedTextOutA -#define TranslateAccelerator TranslateAcceleratorA -#define UnregisterClass UnregisterClassA -#define VkKeyScan VkKeyScanA -#define VkKeyScanEx VkKeyScanExA -#define WinHelp WinHelpA -#define wsprintf wsprintfA -#define wvsprintf wvsprintfA -#endif -#endif -#ifdef __cplusplus -} -#endif -#endif /* _WINUSER_H */ diff --git a/winsup/w32api/include/winver.h b/winsup/w32api/include/winver.h deleted file mode 100644 index 93f5e533d..000000000 --- a/winsup/w32api/include/winver.h +++ /dev/null @@ -1,129 +0,0 @@ -#ifndef _WINVER_H -#define _WINVER_H -#ifdef __cplusplus -extern "C" { -#endif -#define VS_FILE_INFO RT_VERSION -#define VS_VERSION_INFO 1 -#define VS_USER_DEFINED 100 -#define VS_FFI_SIGNATURE 0xFEEF04BD -#define VS_FFI_STRUCVERSION 0x10000 -#define VS_FFI_FILEFLAGSMASK 0x3F -#define VS_FF_DEBUG 1 -#define VS_FF_PRERELEASE 2 -#define VS_FF_PATCHED 4 -#define VS_FF_PRIVATEBUILD 8 -#define VS_FF_INFOINFERRED 16 -#define VS_FF_SPECIALBUILD 32 -#define VOS_UNKNOWN 0 -#define VOS_DOS 0x10000 -#define VOS_OS216 0x20000 -#define VOS_OS232 0x30000 -#define VOS_NT 0x40000 -#define VOS__BASE 0 -#define VOS__WINDOWS16 1 -#define VOS__PM16 2 -#define VOS__PM32 3 -#define VOS__WINDOWS32 4 -#define VOS_DOS_WINDOWS16 0x10001 -#define VOS_DOS_WINDOWS32 0x10004 -#define VOS_OS216_PM16 0x20002 -#define VOS_OS232_PM32 0x30003 -#define VOS_NT_WINDOWS32 0x40004 -#define VFT_UNKNOWN 0 -#define VFT_APP 1 -#define VFT_DLL 2 -#define VFT_DRV 3 -#define VFT_FONT 4 -#define VFT_VXD 5 -#define VFT_STATIC_LIB 7 -#define VFT2_UNKNOWN 0 -#define VFT2_DRV_PRINTER 1 -#define VFT2_DRV_KEYBOARD 2 -#define VFT2_DRV_LANGUAGE 3 -#define VFT2_DRV_DISPLAY 4 -#define VFT2_DRV_MOUSE 5 -#define VFT2_DRV_NETWORK 6 -#define VFT2_DRV_SYSTEM 7 -#define VFT2_DRV_INSTALLABLE 8 -#define VFT2_DRV_SOUND 9 -#define VFT2_DRV_COMM 10 -#define VFT2_DRV_INPUTMETHOD 11 -#define VFT2_FONT_RASTER 1 -#define VFT2_FONT_VECTOR 2 -#define VFT2_FONT_TRUETYPE 3 -#define VFFF_ISSHAREDFILE 1 -#define VFF_CURNEDEST 1 -#define VFF_FILEINUSE 2 -#define VFF_BUFFTOOSMALL 4 -#define VIFF_FORCEINSTALL 1 -#define VIFF_DONTDELETEOLD 2 -#define VIF_TEMPFILE 1 -#define VIF_MISMATCH 2 -#define VIF_SRCOLD 4 -#define VIF_DIFFLANG 8 -#define VIF_DIFFCODEPG 16 -#define VIF_DIFFTYPE 32 -#define VIF_WRITEPROT 64 -#define VIF_FILEINUSE 128 -#define VIF_OUTOFSPACE 256 -#define VIF_ACCESSVIOLATION 512 -#define VIF_SHARINGVIOLATION 1024 -#define VIF_CANNOTCREATE 2048 -#define VIF_CANNOTDELETE 4096 -#define VIF_CANNOTRENAME 8192 -#define VIF_CANNOTDELETECUR 16384 -#define VIF_OUTOFMEMORY 32768 -#define VIF_CANNOTREADSRC 65536 -#define VIF_CANNOTREADDST 0x20000 -#define VIF_BUFFTOOSMALL 0x40000 -#ifndef RC_INVOKED -typedef struct tagVS_FIXEDFILEINFO { - DWORD dwSignature; - DWORD dwStrucVersion; - DWORD dwFileVersionMS; - DWORD dwFileVersionLS; - DWORD dwProductVersionMS; - DWORD dwProductVersionLS; - DWORD dwFileFlagsMask; - DWORD dwFileFlags; - DWORD dwFileOS; - DWORD dwFileType; - DWORD dwFileSubtype; - DWORD dwFileDateMS; - DWORD dwFileDateLS; -} VS_FIXEDFILEINFO; -DWORD WINAPI VerFindFileA(DWORD,LPSTR,LPSTR,LPSTR,LPSTR,PUINT,LPSTR,PUINT); -DWORD WINAPI VerFindFileW(DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT,LPWSTR,PUINT); -DWORD WINAPI VerInstallFileA(DWORD,LPSTR,LPSTR,LPSTR,LPSTR,LPSTR,LPSTR,PUINT); -DWORD WINAPI VerInstallFileW(DWORD,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,LPWSTR,PUINT); -DWORD WINAPI GetFileVersionInfoSizeA(LPSTR,PDWORD); -DWORD WINAPI GetFileVersionInfoSizeW(LPWSTR,PDWORD); -BOOL WINAPI GetFileVersionInfoA(LPSTR,DWORD,DWORD,PVOID); -BOOL WINAPI GetFileVersionInfoW(LPWSTR,DWORD,DWORD,PVOID); -DWORD WINAPI VerLanguageNameA(DWORD,LPSTR,DWORD); -DWORD WINAPI VerLanguageNameW(DWORD,LPWSTR,DWORD); -BOOL WINAPI VerQueryValueA(PCVOID,LPSTR,PVOID*,PUINT); -BOOL WINAPI VerQueryValueW(PCVOID,LPWSTR,PVOID*,PUINT); -#ifdef UNICODE -#define VerFindFile VerFindFileW -#define VerQueryValue VerQueryValueW -#define VerInstallFile VerInstallFileW -#define GetFileVersionInfoSize GetFileVersionInfoSizeW -#define GetFileVersionInfo GetFileVersionInfoW -#define VerLanguageName VerLanguageNameW -#define VerQueryValue VerQueryValueW -#else -#define VerQueryValue VerQueryValueA -#define VerFindFile VerFindFileA -#define VerInstallFile VerInstallFileA -#define GetFileVersionInfoSize GetFileVersionInfoSizeA -#define GetFileVersionInfo GetFileVersionInfoA -#define VerLanguageName VerLanguageNameA -#define VerQueryValue VerQueryValueA -#endif -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/ws2tcpip.h b/winsup/w32api/include/ws2tcpip.h deleted file mode 100644 index 3add12a65..000000000 --- a/winsup/w32api/include/ws2tcpip.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * ws2tcpip.h : TCP/IP specific extensions in Windows Sockets 2 - * - * Portions Copyright (c) 1980, 1983, 1988, 1993 - * The Regents of the University of California. All rights reserved. - * - */ - -#ifndef _WS2TCPIP_H -#define _WS2TCPIP_H - -#include - -/* - * The IP_* macros are also defined in winsock.h, but some values are different there. - * The values defined in winsock.h for 1.1 and used in wsock32.dll are consistent - * with the original values Steve Deering defined in his document "IP Multicast Extensions - * for 4.3BSD UNIX related systems (MULTICAST 1.2 Release)." However, these conflicted with - * the definitions for some IPPROTO_IP level socket options already assigned by BSD, - * so Berkeley changed all the values by adding 7. WinSock2 (ws2_32.dll) uses - * the BSD 4.4 compatible values defined here. - * - * See also: msdn kb article Q257460 - * http://support.microsoft.com/support/kb/articles/Q257/4/60.asp - */ - -/* This is also defined in winsock.h; value hasn't changed */ -#define IP_OPTIONS 1 - -#define IP_HDRINCL 2 -/* - * These are also be defined in winsock.h, - * but values have changed for WinSock2 interface - */ -#define IP_TOS 3 /* old (winsock 1.1) value 8 */ -#define IP_TTL 4 /* old value 7 */ -#define IP_MULTICAST_IF 9 /* old value 2 */ -#define IP_MULTICAST_TTL 10 /* old value 3 */ -#define IP_MULTICAST_LOOP 11 /* old value 4 */ -#define IP_ADD_MEMBERSHIP 12 /* old value 5 */ -#define IP_DROP_MEMBERSHIP 13 /* old value 6 */ -#define IP_DONTFRAGMENT 14 /* old value 9 */ - -#define IP_DEFAULT_MULTICAST_TTL 1 -#define IP_DEFAULT_MULTICAST_LOOP 1 -#define IP_MAX_MEMBERSHIPS 20 - -#define TCP_EXPEDITED_1122 2 - -#define UDP_NOCHECKSUM 1 - -#define IFF_UP 1 -#define IFF_BROADCAST 2 -#define IFF_LOOPBACK 4 -#define IFF_POINTTOPOINT 8 -#define IFF_MULTICAST 16 - -#define SIO_GET_INTERFACE_LIST _IOR('t', 127, u_long) - -/* - * ip_mreq also in winsock.h for WinSock1.1, - * but online msdn docs say it is defined here for WinSock2. - */ -struct ip_mreq { - struct in_addr imr_multiaddr; - struct in_addr imr_interface; -}; - -typedef struct _INTERFACE_INFO { - u_long iiFlags; - struct sockaddr iiAddress; - struct sockaddr iiBroadcastAddress; - struct sockaddr iiNetmask; -} INTERFACE_INFO, *LPINTERFACE_INFO; - - -/* ipv6 */ - -/* - * According to online msdn documentation (12 Dec 2000), two separate implentations - * of ipv6 are available (1) the Microsoft IPv6 Technology Preview (requires W2K SP1) - * and (2) the MS Research IPV6 implementation (requires NT4 or W2K). - * Neither are production level implementations. - */ - -#if 0 -/* - * The following is based on what online msdn PSDK docs say as at 5 Dec 2000 - */ -struct in_addr6 /* sic */ { u_char s6_addr[16]; }; -typedef struct in_addr6 IN6_ADDR, *PIN6_ADDR, *LPIN6_ADDR; - -typedef struct sockaddr_in6 { - short sin6_family; - u_short sin6_port; - u_long sin6_flowinfo; - struct in_addr6 sin6_addr; -} SOCKADDR_IN6, *PSOCKADDR_IN6, *LPSOCKADDR_IN6; - -#elif 0 -/* - * In the FAQ section of Microsoft IPv6 Technology Preview for Windows 2000 - * (dated 12 Dec 2000) it says that the Preview and the MS Research implemntation - * support RFC 2553, and in particular, uses the sockaddr_in6 structure defined - * in Section 3.3. That would look something like this: -*/ -#include -struct in6_addr { /* this is the standard name */ - union { - uint8_t _u6_addr8[16]; - uint16_t _u6_addr16[8]; - uint32_t _u6_addr32[4]; - /* uint64_t _u6_addr64[2];*/ - } _u6_addr; -}; -typedef struct in6_addr IN6_ADDR, *PIN6_ADDR, *LPIN6_ADDR; -#define s6_addr _u6_addr._u6_addr8 - -struct sockaddr_in6 { - uint16_t sin6_family; /* AF_INET6 */ - uint16_t sin6_port; /* transport layer port # */ - uint32_t sin6_flowinfo; /* IPv6 traffic class & flow info */ - struct in6_addr sin6_addr; /* IPv6 address */ - uint32_t sin6_scope_id; /* set of interfaces for a scope */ -}; -typedef struct sockaddr_in6 SOCKADDR_IN6, *PSOCKADDR_IN6, *LPSOCKADDR_IN6; - -/* - * Watch this space. - * These may get moved out to ipv6 specific header(s). along with other - * standard structures and functions specified in RFC 2553. - */ -#endif - -#endif /* _WS2TCPIP_H */ - - - diff --git a/winsup/w32api/include/wsnetbs.h b/winsup/w32api/include/wsnetbs.h deleted file mode 100644 index 84b28376b..000000000 --- a/winsup/w32api/include/wsnetbs.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _WSNETBS_H -#define _WSNETBS_H - -#define NETBIOS_NAME_LENGTH 16 -#define NETBIOS_UNIQUE_NAME 0 -#define NETBIOS_GROUP_NAME 1 -#define NETBIOS_TYPE_QUICK_UNIQUE 2 -#define NETBIOS_TYPE_QUICK_GROUP 3 - -#ifndef RC_INVOKED -typedef struct sockaddr_nb { - short snb_family; - u_short snb_type; - char snb_name[NETBIOS_NAME_LENGTH]; -} SOCKADDR_NB, *PSOCKADDR_NB, *LPSOCKADDR_NB; -#define SET_NETBIOS_SOCKADDR(_snb,_type,_name,_port) \ -{ \ - register int _i; \ - register char *_n = (_name); \ - register PSOCKADDR_NB _s = (_snb); \ - _s->snb_family = AF_NETBIOS; \ - _s->snb_type = (_type); \ - for (_i=0; _n[_i] != '\0' && _isnb_name[_i] = _n[_i]; \ - } \ - for (; _isnb_name[_i] = ' '; \ - } \ - _s->snb_name[NETBIOS_NAME_LENGTH-1] = (_port); \ -} -#endif /* RC_INVOKED */ -#endif diff --git a/winsup/w32api/include/wtypes.h b/winsup/w32api/include/wtypes.h deleted file mode 100644 index 34aa7cdaf..000000000 --- a/winsup/w32api/include/wtypes.h +++ /dev/null @@ -1,163 +0,0 @@ -#ifndef _WTYPES_H -#define _WTYPES_H -#include -#include -#ifdef __cplusplus -extern "C" { -#endif - -#define IID_NULL GUID_NULL -#define CLSID_NULL GUID_NULL -#define CBPCLIPDATA(d) ((d).cbSize-sizeof((d).ulClipFmt)) -#define DECIMAL_NEG ((BYTE)0x80) -#define DECIMAL_SETZERO(d) {(d).Lo64=(d).Hi32=(d).signscale=0;} -#ifndef __BLOB_T_DEFINED /* also in winsock2.h */ -#define __BLOB_T_DEFINED -typedef struct _BLOB { - ULONG cbSize; - BYTE *pBlobData; -} BLOB,*PBLOB,*LPBLOB; -#endif -typedef enum tagDVASPECT { - DVASPECT_CONTENT=1, - DVASPECT_THUMBNAIL=2, - DVASPECT_ICON=4, - DVASPECT_DOCPRINT=8 -} DVASPECT; -typedef enum tagDVASPECT2 { - DVASPECT_OPAQUE=16, - DVASPECT_TRANSPARENT=32 -} DVASPECT2; -typedef enum tagSTATFLAG { - STATFLAG_DEFAULT=0, - STATFLAG_NONAME=1 -} STATFLAG; -typedef enum tagMEMCTX { - MEMCTX_TASK=1, - MEMCTX_SHARED, - MEMCTX_MACSYSTEM, - MEMCTX_UNKNOWN=-1, - MEMCTX_SAME=-2 -} MEMCTX; -typedef enum tagMSHCTX { - MSHCTX_LOCAL, - MSHCTX_NOSHAREDMEM, - MSHCTX_DIFFERENTMACHINE, - MSHCTX_INPROC -} MSHCTX; -typedef -enum tagCLSCTX { - CLSCTX_INPROC_SERVER=1,CLSCTX_INPROC_HANDLER=2,CLSCTX_LOCAL_SERVER=4, - CLSCTX_INPROC_SERVER16=8,CLSCTX_REMOTE_SERVER=16 -} CLSCTX; -typedef enum tagMSHLFLAGS { - MSHLFLAGS_NORMAL,MSHLFLAGS_TABLESTRONG,MSHLFLAGS_TABLEWEAK -} MSHLFLAGS; -typedef struct _FLAGGED_WORD_BLOB { - unsigned long fFlags; - unsigned long clSize; - unsigned short asData[1]; -}FLAGGED_WORD_BLOB; - -#ifndef OLE2ANSI -typedef WCHAR OLECHAR; -typedef LPWSTR LPOLESTR; -typedef LPCWSTR LPCOLESTR; -#define OLESTR(s) L##s -#else -typedef char OLECHAR; -typedef LPSTR LPOLESTR; -typedef LPCSTR LPCOLESTR; -#define OLESTR(s) s -#endif -typedef unsigned short VARTYPE; -typedef short VARIANT_BOOL; -typedef VARIANT_BOOL _VARIANT_BOOL; -#define VARIANT_TRUE ((VARIANT_BOOL)0xffff) -#define VARIANT_FALSE ((VARIANT_BOOL)0) -typedef OLECHAR *BSTR; -typedef FLAGGED_WORD_BLOB *wireBSTR; -typedef BSTR *LPBSTR; -typedef LONG SCODE; -typedef void *HCONTEXT; -typedef union tagCY { - _ANONYMOUS_STRUCT struct { - unsigned long Lo; - long Hi; - }_STRUCT_NAME(s); - LONGLONG int64; -} CY; -typedef double DATE; -typedef struct tagBSTRBLOB { - ULONG cbSize; - PBYTE pData; -}BSTRBLOB; -typedef struct tagBSTRBLOB *LPBSTRBLOB; -typedef struct tagCLIPDATA { - ULONG cbSize; - long ulClipFmt; - PBYTE pClipData; -}CLIPDATA; -typedef enum tagSTGC { - STGC_DEFAULT,STGC_OVERWRITE,STGC_ONLYIFCURRENT, - STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE -}STGC; -typedef enum tagSTGMOVE { - STGMOVE_MOVE,STGMOVE_COPY,STGMOVE_SHALLOWCOPY -}STGMOVE; -enum VARENUM { - VT_EMPTY,VT_NULL,VT_I2,VT_I4,VT_R4,VT_R8,VT_CY,VT_DATE,VT_BSTR,VT_DISPATCH, - VT_ERROR,VT_BOOL,VT_VARIANT,VT_UNKNOWN,VT_DECIMAL,VT_I1=16,VT_UI1,VT_UI2,VT_UI4,VT_I8, - VT_UI8,VT_INT,VT_UINT,VT_VOID,VT_HRESULT,VT_PTR,VT_SAFEARRAY,VT_CARRAY,VT_USERDEFINED, - VT_LPSTR,VT_LPWSTR,VT_RECORD=36,VT_FILETIME=64,VT_BLOB,VT_STREAM,VT_STORAGE,VT_STREAMED_OBJECT, - VT_STORED_OBJECT,VT_BLOB_OBJECT,VT_CF,VT_CLSID,VT_BSTR_BLOB=0xfff,VT_VECTOR=0x1000, - VT_ARRAY=0x2000,VT_BYREF=0x4000,VT_RESERVED=0x8000,VT_ILLEGAL= 0xffff,VT_ILLEGALMASKED=0xfff, - VT_TYPEMASK=0xfff -}; -#ifdef _WIN64 -#define VT_INT_PTR VT_I8 -#define VT_UINT_PTR VT_UI8 -#else -#define VT_INT_PTR VT_I4 -#define VT_UINT_PTR VT_UI4 -#endif - -typedef struct _BYTE_SIZEDARR { - unsigned long clSize; - byte *pData; -}BYTE_SIZEDARR; -typedef struct _SHORT_SIZEDARR { - unsigned long clSize; - unsigned short *pData; -}WORD_SIZEDARR; -typedef struct _LONG_SIZEDARR { - unsigned long clSize; - unsigned long *pData; -}DWORD_SIZEDARR; -typedef struct _HYPER_SIZEDARR { - unsigned long clSize; - hyper *pData; -}HYPER_SIZEDARR; -typedef double DOUBLE; -typedef struct tagDEC { - USHORT wReserved; - _ANONYMOUS_UNION union { - _ANONYMOUS_STRUCT struct { - BYTE scale; - BYTE sign; - }_STRUCT_NAME(s); - USHORT signscale; - } DUMMYUNIONNAME; - ULONG Hi32; - _ANONYMOUS_UNION union { - _ANONYMOUS_STRUCT struct { - ULONG Lo32; - ULONG Mid32; - }_STRUCT_NAME(s2); - ULONGLONG Lo64; - } DUMMYUNIONNAME2; -} DECIMAL; -#ifdef __cplusplus -} -#endif -#endif diff --git a/winsup/w32api/include/zmouse.h b/winsup/w32api/include/zmouse.h deleted file mode 100644 index aa6073c7e..000000000 --- a/winsup/w32api/include/zmouse.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - zmouse.h - Header for IntelliMouse. - - This file is part of a free library for the Win32 API. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - FIXME: This file is obviously horribly incomplete! - -*/ - -#ifndef _ZMOUSE_H -#define _ZMOUSE_H - -#ifndef WM_MOUSEWHEEL -# define WM_MOUSEWHEEL (WM_MOUSELAST + 1) -#endif - -#define WHEEL_DELTA 120 -#define WHEEL_PAGESCROLL UINT_MAX - -#endif /* _ZMOUSE_H */ diff --git a/winsup/w32api/install-sh b/winsup/w32api/install-sh deleted file mode 100755 index e9de23842..000000000 --- a/winsup/w32api/install-sh +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/winsup/w32api/lib/Makefile.in b/winsup/w32api/lib/Makefile.in deleted file mode 100644 index fd1e6b7c9..000000000 --- a/winsup/w32api/lib/Makefile.in +++ /dev/null @@ -1,204 +0,0 @@ -# -# Makefile.in -# -# This file is part of a free library for the Win32 API. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - -# start config section - -SHELL = @SHELL@ - -srcdir = @srcdir@ -VPATH = @srcdir@ - -host_alias = @host_alias@ -build_alias = @build_alias@ -target_alias = @target_alias@ -prefix = @prefix@ -includedir:=@includedir@ - -program_transform_name = @program_transform_name@ -exec_prefix = @exec_prefix@ -libdir:=@libdir@ -bindir = @bindir@ -ifeq ($(target_alias),$(host_alias)) -ifeq ($(build_alias),$(host_alias)) -tooldir:=$(exec_prefix) -else -tooldir:=$(exec_prefix)/$(target_alias) -endif -else -tooldir:=$(exec_prefix)/$(target_alias) -endif -datadir = @datadir@ -infodir = @infodir@ -ifneq (,$(findstring cygwin,$(target_alias))) -inst_includedir:=$(tooldir)/include/w32api -inst_libdir:=$(tooldir)/lib/w32api -else -inst_includedir:=$(includedir) -inst_libdir:=$(libdir) -endif - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -mkinstalldirs = mkdir -p - -CC = @CC@ -CC_FOR_TARGET = $(CC) - -DLLTOOL = @DLLTOOL@ -DLLTOOL_FLAGS = --as=$(AS) -k -AS = @AS@ -AS_FOR_TARGET = $(AS_FOR_TARGET) -WINDRES = @WINDRES@ - -# Depending on if we build as part of winsup or mingw we need to -# add additional include paths in order to get the correct headers -# from the C library. -BUILDENV = @BUILDENV@ - -ifeq ($(BUILDENV), cygwin) -# winsup/include -# winsup/../newlib/libc/include -# winsup/../newlib/libc/sys/cygwin -EXTRA_INCLUDES = -I$(srcdir)/../../include -I$(srcdir)/../../../newlib/libc/include -I$(srcdir)/../../../newlib/libc/sys/cygwin -endif -ifeq ($(BUILDENV), mingw) -EXTRA_INCLUDES = -I$(srcdir)/../../mingw/include -endif - -INCLUDES = -I$(srcdir)/../include $(EXTRA_INCLUDES) - -CFLAGS = @CFLAGS@ -ALL_CFLAGS = $(CFLAGS) $(INCLUDES) - -RANLIB = @RANLIB@ -AR = @AR@ -LD = @LD@ - -# end config section - -# headers - -HEADERS = $(notdir $(wildcard $(srcdir)/../include/*.h)) - -# libraries - -DEF_FILES = $(notdir $(wildcard $(srcdir)/*.def)) -IMPLIBS = $(addprefix lib,$(subst .def,.a,$(DEF_FILES))) -EXTRA_LIBS=libuuid.a libscrnsave.a libscrnsavw.a libdxguid.a liblargeint.a -LIBS = $(IMPLIBS) $(EXTRA_LIBS) -EXTRA_OBJS=uuid.o shell32.o dxguid.o scrnsave.o scrnsavw.o largeint.o \ - $(UUID_OBJS) dinput.o kernel32.o -SOURCES = scrnsave.c shell32.c uuid.c largeint.c dinput.c dxguid.c \ -res.rc test.c kernel32.c - -DISTFILES = Makefile.in $(DEF_FILES) $(SOURCES) - -.NOTPARALLEL: - -# targets -all: $(LIBS) $(EXTRA_OBJS) - -TEST_OPTIONS = $(ALL_CFLAGS) -Wall -pedantic -c $(srcdir)/test.c -o test.o -.PHONY: test -test: - @echo "Testing w32api..." - @for lang in c c++ objective-c ; do \ - echo "$$lang..."; \ - $(CC) -x$$lang $(TEST_OPTIONS) ; \ - echo "$$lang UNICODE..."; \ - $(CC) -x$$lang -DUNICODE $(TEST_OPTIONS) ; \ - done - @echo "windres..." - @$(WINDRES) --include-dir $(INCDIR) -i $(srcdir)/res.rc -o test.o - @echo "windres UNICODE..." - @$(WINDRES) --define UNICODE --include-dir $(INCDIR) -i $(srcdir)/res.rc -o test.o - @rm -f test.o - -scrnsavw.o: scrnsave.c - $(CC) -c $(ALL_CFLAGS) -DUNICODE -o $@ $< - -# make rules - -.SUFFIXES: .c .o .def .a - -.c.o: - $(CC) -c $(ALL_CFLAGS) -o $@ $< - -lib%.a : %.def %.o - $(DLLTOOL) $(DLLTOOL_FLAGS) --output-lib $@ --def $(srcdir)/$*.def - $(AR) r $@ $*.o - $(RANLIB) $@ - -lib%.a: %.def - $(DLLTOOL) $(DLLTOOL_FLAGS) --output-lib $@ --def $< - -lib%.a: %.o - $(AR) rc $@ $*.o - $(RANLIB) $@ - -# install headers and libraries in a target specified directory. -install: install-libraries install-headers - -install-libraries: all - $(mkinstalldirs) $(inst_libdir) - for i in $(LIBS); do \ - $(INSTALL_DATA) $$i $(inst_libdir)/$$i ; \ - done - -install-headers: - $(mkinstalldirs) $(inst_includedir) - for i in $(HEADERS); do \ - $(INSTALL_DATA) $(srcdir)/../include/$$i $(inst_includedir)/$$i ; \ - done - -# uninstall headers and libraries from a target specified directory -uninstall: uninstall-libraries uninstall-headers - -uninstall-libraries: - @for i in $(LIBS); do \ - rm -f $(inst_libdir)/$$i ; \ - done - rmdir $(inst_libdir) - -uninstall-headers: - @for i in $(HEADERS); do \ - rm -r $(inst_includedir)/$$i ; \ - done - rmdir $(inst_includedir) - - -dist: - mkdir $(distdir)/include - chmod 755 $(distdir)/include - @for i in $(HEADERS); do \ - cp -p $(srcdir)/../include/$$i $(distdir)/include/$$i ; \ - done - mkdir $(distdir)/lib - chmod 755 $(distdir)/lib - @for i in $(DISTFILES); do \ - cp -p $(srcdir)/$$i $(distdir)/lib/$$i ; \ - done - -Makefile: Makefile.in ../config.status ../configure - cd ..; $(SHELL) config.status - -# clean - -mostlyclean: - rm -f *~ *.o *.s - -clean: - rm -f *.o *.a *.s *~ - -distclean: clean - rm -f config.cache config.status config.log Makefile - -maintainer-clean: distclean diff --git a/winsup/w32api/lib/advapi32.def b/winsup/w32api/lib/advapi32.def deleted file mode 100644 index 0c75d8efe..000000000 --- a/winsup/w32api/lib/advapi32.def +++ /dev/null @@ -1,531 +0,0 @@ -LIBRARY "ADVAPI32.DLL" -EXPORTS -AbortSystemShutdownA@4 -AbortSystemShutdownW@4 -AccessCheck@32 -AccessCheckAndAuditAlarmA@44 -AccessCheckAndAuditAlarmW@44 -AccessCheckByType@44 -AccessCheckByTypeAndAuditAlarmA@64 -AccessCheckByTypeAndAuditAlarmW@64 -AccessCheckByTypeResultList@44 -AccessCheckByTypeResultListAndAuditAlarmA@64 -AccessCheckByTypeResultListAndAuditAlarmByHandleA@68 -AccessCheckByTypeResultListAndAuditAlarmByHandleW@68 -AccessCheckByTypeResultListAndAuditAlarmW@64 -AddAccessAllowedAce@16 -AddAccessAllowedAceEx@20 -AddAccessAllowedObjectAce@28 -AddAccessDeniedAce@16 -AddAccessDeniedAceEx@20 -AddAccessDeniedObjectAce@28 -AddAce@20 -AddAuditAccessAce@24 -AddAuditAccessAceEx@28 -AddAuditAccessObjectAce@36 -AddUsersToEncryptedFile@8 -AdjustTokenGroups@24 -AdjustTokenPrivileges@24 -AllocateAndInitializeSid@44 -AllocateLocallyUniqueId@4 -AreAllAccessesGranted@8 -AreAnyAccessesGranted@8 -BackupEventLogA@8 -BackupEventLogW@8 -BuildExplicitAccessWithNameA@20 -BuildExplicitAccessWithNameW@20 -BuildImpersonateExplicitAccessWithNameA@24 -BuildImpersonateExplicitAccessWithNameW@24 -BuildImpersonateTrusteeA@8 -BuildImpersonateTrusteeW@8 -BuildSecurityDescriptorA@36 -BuildSecurityDescriptorW@36 -BuildTrusteeWithNameA@8 -BuildTrusteeWithNameW@8 -BuildTrusteeWithObjectsAndNameA@24 -BuildTrusteeWithObjectsAndNameW@24 -BuildTrusteeWithObjectsAndSidA@20 -BuildTrusteeWithObjectsAndSidW@20 -BuildTrusteeWithSidA@8 -BuildTrusteeWithSidW@8 -CancelOverlappedAccess@4 -ChangeServiceConfig2A@12 -ChangeServiceConfig2W@12 -ChangeServiceConfigA@44 -ChangeServiceConfigW@44 -CheckTokenMembership@12 -ClearEventLogA@8 -ClearEventLogW@8 -CloseEncryptedFileRaw@4 -CloseEventLog@4 -CloseServiceHandle@4 -CloseTrace@8 -CommandLineFromMsiDescriptor@12 -ControlService@12 -ControlTraceA@20 -ControlTraceW@20 -ConvertAccessToSecurityDescriptorA@20 -ConvertAccessToSecurityDescriptorW@20 -ConvertSDToStringSDRootDomainA@24 -ConvertSDToStringSDRootDomainW@24 -ConvertSecurityDescriptorToAccessA@28 -ConvertSecurityDescriptorToAccessNamedA@28 -ConvertSecurityDescriptorToAccessNamedW@28 -ConvertSecurityDescriptorToAccessW@28 -ConvertSecurityDescriptorToStringSecurityDescriptorA@20 -ConvertSecurityDescriptorToStringSecurityDescriptorW@20 -ConvertSidToStringSidA@8 -ConvertSidToStringSidW@8 -ConvertStringSDToSDRootDomainA@20 -ConvertStringSDToSDRootDomainW@20 -ConvertStringSecurityDescriptorToSecurityDescriptorA@16 -ConvertStringSecurityDescriptorToSecurityDescriptorW@16 -ConvertStringSidToSidA@8 -ConvertStringSidToSidW@8 -ConvertToAutoInheritPrivateObjectSecurity@24 -CopySid@12 -CreatePrivateObjectSecurity@24 -CreatePrivateObjectSecurityEx@32 -CreateProcessAsUserA@44 -CreateProcessAsUserW@44 -CreateProcessWithLogonW@44 -CreateRestrictedToken@36 -CreateServiceA@52 -CreateServiceW@52 -CreateTraceInstanceId@8 -CryptAcquireContextA@20 -CryptAcquireContextW@20 -CryptContextAddRef@12 -CryptCreateHash@20 -CryptDecrypt@24 -CryptDeriveKey@20 -CryptDestroyHash@4 -CryptDestroyKey@4 -CryptDuplicateHash@16 -CryptDuplicateKey@16 -CryptEncrypt@28 -CryptEnumProviderTypesA@24 -CryptEnumProviderTypesW@24 -CryptEnumProvidersA@24 -CryptEnumProvidersW@24 -CryptExportKey@24 -CryptGenKey@16 -CryptGenRandom@12 -CryptGetDefaultProviderA@20 -CryptGetDefaultProviderW@20 -CryptGetHashParam@20 -CryptGetKeyParam@20 -CryptGetProvParam@20 -CryptGetUserKey@12 -CryptHashData@16 -CryptHashSessionKey@12 -CryptImportKey@24 -CryptReleaseContext@8 -CryptSetHashParam@16 -CryptSetKeyParam@16 -CryptSetProvParam@16 -CryptSetProviderA@8 -CryptSetProviderExA@16 -CryptSetProviderExW@16 -CryptSetProviderW@8 -CryptSignHashA@24 -CryptSignHashW@24 -CryptVerifySignatureA@24 -CryptVerifySignatureW@24 -DecryptFileA@8 -DecryptFileW@8 -DeleteAce@8 -DeleteService@4 -DeregisterEventSource@4 -DestroyPrivateObjectSecurity@4 -DuplicateEncryptionInfoFile@8 -DuplicateToken@12 -DuplicateTokenEx@24 -ElfBackupEventLogFileA@8 -ElfBackupEventLogFileW@8 -ElfChangeNotify@8 -ElfClearEventLogFileA@8 -ElfClearEventLogFileW@8 -ElfCloseEventLog@4 -ElfDeregisterEventSource@4 -ElfNumberOfRecords@8 -ElfOldestRecord@8 -ElfOpenBackupEventLogA@12 -ElfOpenBackupEventLogW@12 -ElfOpenEventLogA@12 -ElfOpenEventLogW@12 -ElfReadEventLogA@28 -ElfReadEventLogW@28 -ElfRegisterEventSourceA@12 -ElfRegisterEventSourceW@12 -ElfReportEventA@48 -ElfReportEventW@48 -EnableTrace@24 -EncryptFileA@4 -EncryptFileW@4 -EncryptionDisable@8 -EnumDependentServicesA@24 -EnumDependentServicesW@24 -EnumServiceGroupW@36 -EnumServicesStatusA@32 -EnumServicesStatusExA@40 -EnumServicesStatusExW@40 -EnumServicesStatusW@32 -EqualPrefixSid@8 -EqualSid@8 -FileEncryptionStatusA@8 -FileEncryptionStatusW@8 -FindFirstFreeAce@8 -FreeEncryptionCertificateHashList@4 -FreeSid@4 -GetAccessPermissionsForObjectA@36 -GetAccessPermissionsForObjectW@36 -GetAce@12 -GetAclInformation@16 -GetAuditedPermissionsFromAclA@16 -GetAuditedPermissionsFromAclW@16 -GetCurrentHwProfileA@4 -GetCurrentHwProfileW@4 -GetEffectiveRightsFromAclA@12 -GetEffectiveRightsFromAclW@12 -GetEventLogInformation@20 -GetExplicitEntriesFromAclA@12 -GetExplicitEntriesFromAclW@12 -GetFileSecurityA@20 -GetFileSecurityW@20 -GetKernelObjectSecurity@20 -GetLengthSid@4 -GetLocalManagedApplications@12 -GetManagedApplications@20 -GetMangledSiteSid@12 -GetMultipleTrusteeA@4 -GetMultipleTrusteeOperationA@4 -GetMultipleTrusteeOperationW@4 -GetMultipleTrusteeW@4 -GetNamedSecurityInfoA@32 -GetNamedSecurityInfoExA@36 -GetNamedSecurityInfoExW@36 -GetNamedSecurityInfoW@32 -GetNumberOfEventLogRecords@8 -GetOldestEventLogRecord@8 -GetOverlappedAccessResults@16 -GetPrivateObjectSecurity@20 -GetSecurityDescriptorControl@12 -GetSecurityDescriptorDacl@16 -GetSecurityDescriptorGroup@12 -GetSecurityDescriptorLength@4 -GetSecurityDescriptorOwner@12 -GetSecurityDescriptorRMControl@8 -GetSecurityDescriptorSacl@16 -GetSecurityInfo@32 -GetSecurityInfoExA@36 -GetSecurityInfoExW@36 -GetServiceDisplayNameA@16 -GetServiceDisplayNameW@16 -GetServiceKeyNameA@16 -GetServiceKeyNameW@16 -GetSidIdentifierAuthority@4 -GetSidLengthRequired@4 -GetSidSubAuthority@8 -GetSidSubAuthorityCount@4 -GetSiteDirectoryA@12 -GetSiteDirectoryW@12 -GetSiteNameFromSid@8 -GetSiteSidFromToken@4 -GetSiteSidFromUrl@4 -GetTokenInformation@20 -GetTraceEnableFlags@8 -GetTraceEnableLevel@8 -GetTraceLoggerHandle@4 -GetTrusteeFormA@4 -GetTrusteeFormW@4 -GetTrusteeNameA@4 -GetTrusteeNameW@4 -GetTrusteeTypeA@4 -GetTrusteeTypeW@4 -GetUserNameA@8 -GetUserNameW@8 -I_ScSetServiceBitsA@20 -I_ScSetServiceBitsW@20 -ImpersonateAnonymousToken@4 -ImpersonateLoggedOnUser@4 -ImpersonateNamedPipeClient@4 -ImpersonateSelf@4 -InitializeAcl@12 -InitializeSecurityDescriptor@8 -InitializeSid@12 -InitiateSystemShutdownA@20 -InitiateSystemShutdownExA@24 -InitiateSystemShutdownExW@24 -InitiateSystemShutdownW@20 -InstallApplication@4 -IsProcessRestricted@0 -IsTextUnicode@12 -IsTokenRestricted@4 -IsValidAcl@4 -IsValidSecurityDescriptor@4 -IsValidSid@4 -LockServiceDatabase@4 -LogonUserA@24 -LogonUserW@24 -LookupAccountNameA@28 -LookupAccountNameW@28 -LookupAccountSidA@28 -LookupAccountSidW@28 -LookupPrivilegeDisplayNameA@20 -LookupPrivilegeDisplayNameW@20 -LookupPrivilegeNameA@16 -LookupPrivilegeNameW@16 -LookupPrivilegeValueA@12 -LookupPrivilegeValueW@12 -LookupSecurityDescriptorPartsA@28 -LookupSecurityDescriptorPartsW@28 -LsaAddAccountRights@16 -LsaAddPrivilegesToAccount@8 -LsaClearAuditLog@4 -LsaClose@4 -LsaCreateAccount@16 -LsaCreateSecret@16 -LsaCreateTrustedDomain@16 -LsaCreateTrustedDomainEx@20 -LsaDelete@4 -LsaDeleteTrustedDomain@8 -LsaEnumerateAccountRights@16 -LsaEnumerateAccounts@20 -LsaEnumerateAccountsWithUserRight@16 -LsaEnumeratePrivileges@20 -LsaEnumeratePrivilegesOfAccount@8 -LsaEnumerateTrustedDomains@20 -LsaEnumerateTrustedDomainsEx@20 -LsaFreeMemory@4 -LsaGetQuotasForAccount@8 -LsaGetRemoteUserName@12 -LsaGetSystemAccessAccount@8 -LsaGetUserName@8 -LsaICLookupNames@32 -LsaICLookupSids@32 -LsaLookupNames@20 -LsaLookupPrivilegeDisplayName@16 -LsaLookupPrivilegeName@12 -LsaLookupPrivilegeValue@12 -LsaLookupSids@20 -LsaNtStatusToWinError@4 -LsaOpenAccount@16 -LsaOpenPolicy@16 -LsaOpenSecret@16 -LsaOpenTrustedDomain@16 -LsaOpenTrustedDomainByName@16 -LsaQueryDomainInformationPolicy@12 -LsaQueryInfoTrustedDomain@12 -LsaQueryInformationPolicy@12 -LsaQuerySecret@20 -LsaQuerySecurityObject@12 -LsaQueryTrustedDomainInfo@16 -LsaQueryTrustedDomainInfoByName@16 -LsaRemoveAccountRights@20 -LsaRemovePrivilegesFromAccount@12 -LsaRetrievePrivateData@12 -LsaSetDomainInformationPolicy@12 -LsaSetInformationPolicy@12 -LsaSetInformationTrustedDomain@12 -LsaSetQuotasForAccount@8 -LsaSetSecret@12 -LsaSetSecurityObject@12 -LsaSetSystemAccessAccount@8 -LsaSetTrustedDomainInfoByName@16 -LsaSetTrustedDomainInformation@16 -LsaStorePrivateData@12 -MakeAbsoluteSD2@8 -MakeAbsoluteSD@44 -MakeSelfRelativeSD@12 -MapGenericMask@8 -NotifyBootConfigStatus@4 -NotifyChangeEventLog@8 -ObjectCloseAuditAlarmA@12 -ObjectCloseAuditAlarmW@12 -ObjectDeleteAuditAlarmA@12 -ObjectDeleteAuditAlarmW@12 -ObjectOpenAuditAlarmA@48 -ObjectOpenAuditAlarmW@48 -ObjectPrivilegeAuditAlarmA@24 -ObjectPrivilegeAuditAlarmW@24 -OpenBackupEventLogA@8 -OpenBackupEventLogW@8 -OpenEncryptedFileRawA@12 -OpenEncryptedFileRawW@12 -OpenEventLogA@8 -OpenEventLogW@8 -OpenProcessToken@12 -OpenSCManagerA@12 -OpenSCManagerW@12 -OpenServiceA@12 -OpenServiceW@12 -OpenThreadToken@16 -OpenTraceA@4 -OpenTraceW@4 -PrivilegeCheck@12 -PrivilegedServiceAuditAlarmA@20 -PrivilegedServiceAuditAlarmW@20 -ProcessTrace@16 -QueryAllTracesA@12 -QueryAllTracesW@12 -QueryRecoveryAgentsOnEncryptedFile@8 -QueryServiceConfig2A@20 -QueryServiceConfig2W@20 -QueryServiceConfigA@16 -QueryServiceConfigW@16 -QueryServiceLockStatusA@16 -QueryServiceLockStatusW@16 -QueryServiceObjectSecurity@20 -QueryServiceStatus@8 -QueryServiceStatusEx@20 -QueryUsersOnEncryptedFile@8 -QueryWindows31FilesMigration@4 -ReadEncryptedFileRaw@12 -ReadEventLogA@28 -ReadEventLogW@28 -RegCloseKey@4 -RegConnectRegistryA@12 -RegConnectRegistryW@12 -RegCreateKeyA@12 -RegCreateKeyExA@36 -RegCreateKeyExW@36 -RegCreateKeyW@12 -RegDeleteKeyA@8 -RegDeleteKeyW@8 -RegDeleteValueA@8 -RegDeleteValueW@8 -RegDisablePredefinedCache@0 -RegEnumKeyA@16 -RegEnumKeyExA@32 -RegEnumKeyExW@32 -RegEnumKeyW@16 -RegEnumValueA@32 -RegEnumValueW@32 -RegFlushKey@4 -RegGetKeySecurity@16 -RegLoadKeyA@12 -RegLoadKeyW@12 -RegNotifyChangeKeyValue@20 -RegOpenCurrentUser@8 -RegOpenKeyA@12 -RegOpenKeyExA@20 -RegOpenKeyExW@20 -RegOpenKeyW@12 -RegOpenUserClassesRoot@16 -RegOverridePredefKey@8 -RegQueryInfoKeyA@48 -RegQueryInfoKeyW@48 -RegQueryMultipleValuesA@20 -RegQueryMultipleValuesW@20 -RegQueryValueA@16 -RegQueryValueExA@24 -RegQueryValueExW@24 -RegQueryValueW@16 -RegReplaceKeyA@16 -RegReplaceKeyW@16 -RegRestoreKeyA@12 -RegRestoreKeyW@12 -RegSaveKeyA@12 -RegSaveKeyW@12 -RegSetKeySecurity@12 -RegSetValueA@20 -RegSetValueExA@24 -RegSetValueExW@24 -RegSetValueW@20 -RegUnLoadKeyA@8 -RegUnLoadKeyW@8 -RegisterEventSourceA@8 -RegisterEventSourceW@8 -RegisterServiceCtrlHandlerA@8 -RegisterServiceCtrlHandlerExA@12 -RegisterServiceCtrlHandlerExW@12 -RegisterServiceCtrlHandlerW@8 -RegisterTraceGuidsA@32 -RegisterTraceGuidsW@32 -RemoveTraceCallback@4 -RemoveUsersFromEncryptedFile@8 -ReportEventA@36 -ReportEventW@36 -RevertToSelf@0 -SetAclInformation@16 -SetEntriesInAccessListA@24 -SetEntriesInAccessListW@24 -SetEntriesInAclA@16 -SetEntriesInAclW@16 -SetEntriesInAuditListA@24 -SetEntriesInAuditListW@24 -SetFileSecurityA@12 -SetFileSecurityW@12 -SetKernelObjectSecurity@12 -SetNamedSecurityInfoA@28 -SetNamedSecurityInfoExA@36 -SetNamedSecurityInfoExW@36 -SetNamedSecurityInfoW@28 -SetPrivateObjectSecurity@20 -SetPrivateObjectSecurityEx@24 -SetSecurityDescriptorControl@12 -SetSecurityDescriptorDacl@16 -SetSecurityDescriptorGroup@12 -SetSecurityDescriptorOwner@12 -SetSecurityDescriptorRMControl@8 -SetSecurityDescriptorSacl@16 -SetSecurityInfo@28 -SetSecurityInfoExA@36 -SetSecurityInfoExW@36 -SetServiceBits@16 -SetServiceObjectSecurity@12 -SetServiceStatus@8 -SetThreadToken@8 -SetTokenInformation@16 -SetTraceCallback@8 -SetUserFileEncryptionKey@4 -StartServiceA@12 -StartServiceCtrlDispatcherA@4 -StartServiceCtrlDispatcherW@4 -StartServiceW@12 -StartTraceA@12 -StartTraceW@12 -SynchronizeWindows31FilesAndWindowsNTRegistry@16 -SystemFunction001@12 -SystemFunction002@12 -SystemFunction003@8 -SystemFunction004@12 -SystemFunction005@12 -SystemFunction006@8 -SystemFunction007@8 -SystemFunction008@12 -SystemFunction009@12 -SystemFunction010@12 -SystemFunction011@12 -SystemFunction012@12 -SystemFunction013@12 -SystemFunction014@12 -SystemFunction015@12 -SystemFunction016@12 -SystemFunction017@12 -SystemFunction018@12 -SystemFunction019@12 -SystemFunction020@12 -SystemFunction021@12 -SystemFunction022@12 -SystemFunction023@12 -SystemFunction024@12 -SystemFunction025@12 -SystemFunction026@12 -SystemFunction027@12 -SystemFunction028@8 -SystemFunction029@8 -SystemFunction030@8 -SystemFunction031@8 -SystemFunction032@8 -SystemFunction033@8 -SystemFunction034@12 -TraceEvent@12 -TraceEventInstance@20 -TrusteeAccessToObjectA@24 -TrusteeAccessToObjectW@24 -UninstallApplication@4 -UnlockServiceDatabase@4 -UnregisterTraceGuids@8 -WriteEncryptedFileRaw@12 diff --git a/winsup/w32api/lib/cap.def b/winsup/w32api/lib/cap.def deleted file mode 100644 index f34d9f7e7..000000000 --- a/winsup/w32api/lib/cap.def +++ /dev/null @@ -1,6 +0,0 @@ -LIBRARY "CAP.DLL" -EXPORTS -DumpCAP@0 -StartCAP@0 -StopCAP@0 -_penter diff --git a/winsup/w32api/lib/comctl32.def b/winsup/w32api/lib/comctl32.def deleted file mode 100644 index f61ac3831..000000000 --- a/winsup/w32api/lib/comctl32.def +++ /dev/null @@ -1,128 +0,0 @@ -LIBRARY "COMCTL32.DLL" -EXPORTS -_TrackMouseEvent@4 -AddMRUData@12 -AddMRUStringA@8 -AddMRUStringW@8 -Alloc@4 -CreateMRUListA@4 -CreateMRUListW@4 -CreateMappedBitmap@20 -CreatePage@8 -CreatePropertySheetPage@4 -CreatePropertySheetPageA@4 -CreatePropertySheetPageW@4 -CreateProxyPage@8 -CreateStatusWindow@16 -CreateStatusWindowA@16 -CreateStatusWindowW@16 -CreateToolbar@32 -CreateToolbarEx@52 -CreateUpDownControl@48 -DPA_Clone@8 -DPA_Create@4 -DPA_CreateEx@8 -DPA_DeleteAllPtrs@4 -DPA_DeletePtr@8 -DPA_Destroy@4 -DPA_GetPtr@8 -DPA_GetPtrIndex@8 -DPA_Grow@8 -DPA_InsertPtr@12 -DPA_Search@24 -DPA_SetPtr@12 -DPA_Sort@12 -DSA_Create@8 -DSA_DeleteAllItems@4 -DSA_DeleteItem@8 -DSA_Destroy@4 -DSA_GetItem@12 -DSA_GetItemPtr@8 -DSA_InsertItem@12 -DSA_SetItem@12 -DelMRUString@8 -DestroyPropertySheetPage@4 -DrawInsert@12 -DrawStatusText@16 -DrawStatusTextA@16 -DrawStatusTextW@16 -EnumMRUListA@16 -EnumMRUListW@16 -FindMRUData@16 -FindMRUStringA@12 -FindMRUStringW@12 -Free@4 -FreeMRUList@4 -GetEffectiveClientRect@12 -GetSize@4 -ImageList_Add@12 -ImageList_AddIcon@8 -ImageList_AddMasked@12 -ImageList_BeginDrag@16 -ImageList_Create@20 -ImageList_Destroy@4 -ImageList_DragEnter@12 -ImageList_DragLeave@4 -ImageList_DragMove@8 -ImageList_DragShowNolock@4 -ImageList_Draw@24 -ImageList_DrawEx@40 -ImageList_EndDrag@0 -ImageList_GetBkColor@4 -ImageList_GetDragImage@8 -ImageList_GetIcon@12 -ImageList_GetIconSize@12 -ImageList_GetImageCount@4 -ImageList_GetImageInfo@12 -ImageList_GetImageRect@12 -ImageList_LoadImage@28 -ImageList_LoadImageA@28 -ImageList_LoadImageW@28 -ImageList_Merge@24 -ImageList_Read@4 -ImageList_Remove@8 -ImageList_Replace@16 -ImageList_ReplaceIcon@12 -ImageList_SetBkColor@8 -ImageList_SetDragCursorImage@16 -ImageList_SetIconSize@12 -ImageList_SetOverlayImage@12 -ImageList_Write@8 -InitCommonControls@0 -InitCommonControlsEx@4 -LBItemFromPt@16 -MakeDragList@4 -MenuHelp@28 -PropertySheet@4 -PropertySheetA@4 -PropertySheetW@4 -ReAlloc@8 -SendNotify@16 -SendNotifyEx@20 -ShowHideMenuCtl@12 -StrCSpnA@8 -StrCSpnIA@8 -StrCSpnW@8 -StrChrA@8 -StrChrIA@8 -StrChrIW@8 -StrChrW@8 -StrCmpNA@12 -StrCmpNIA@12 -StrCmpNIW@12 -StrCmpNW@12 -StrRChrA@12 -StrRChrIA@12 -StrRChrW@12 -StrRStrIA@12 -StrRStrIW@12 -StrStrA@8 -StrStrIA@8 -StrStrIW@8 -StrStrW@8 -StrToIntA@4 -StrToIntW@4 -Str_GetPtrA@12 -Str_GetPtrW@12 -Str_SetPtrA@8 -Str_SetPtrW@8 diff --git a/winsup/w32api/lib/comdlg32.def b/winsup/w32api/lib/comdlg32.def deleted file mode 100644 index bad754df6..000000000 --- a/winsup/w32api/lib/comdlg32.def +++ /dev/null @@ -1,27 +0,0 @@ -LIBRARY "COMDLG32.DLL" -EXPORTS -ChooseColorA@4 -ChooseColorW@4 -ChooseFontA@4 -ChooseFontW@4 -CommDlgExtendedError@0 -FindTextA@4 -FindTextW@4 -GetFileTitleA@12 -GetFileTitleW@12 -GetOpenFileNameA@4 -GetOpenFileNameW@4 -GetSaveFileNameA@4 -GetSaveFileNameW@4 -LoadAlterBitmap@12 -PageSetupDlgA@4 -PageSetupDlgW@4 -PrintDlgA@4 -PrintDlgExA@4 -PrintDlgExW@4 -PrintDlgW@4 -ReplaceTextA@4 -ReplaceTextW@4 -WantArrows@16 -dwLBSubclass@16 -dwOKSubclass@16 diff --git a/winsup/w32api/lib/crypt32.def b/winsup/w32api/lib/crypt32.def deleted file mode 100644 index fca58fd89..000000000 --- a/winsup/w32api/lib/crypt32.def +++ /dev/null @@ -1,15 +0,0 @@ -LIBRARY "CRYPT32.DLL" -EXPORTS -CertFreeCertificateChain@4 -CertGetCertificateChain@32 -CertNameToStrA@20 -CertNameToStrW@20 -CertVerifyCertificateChainPolicy@16 -CertCloseStore@8 -CertOpenSystemStoreA@8 -CertOpenSystemStoreW@8 -CertFindCertificateInStore@24 -CertFreeCertificateContext@4 -CertGetIssuerCertificateFromStore@16 -CertFindChainInStore@24 -CertOpenStore@20 diff --git a/winsup/w32api/lib/ctl3d32.def b/winsup/w32api/lib/ctl3d32.def deleted file mode 100644 index 130c0a567..000000000 --- a/winsup/w32api/lib/ctl3d32.def +++ /dev/null @@ -1,27 +0,0 @@ -LIBRARY CTL3D32.DLL -EXPORTS -BtnWndProc3d@16 -ComboWndProc3d@16 -Ctl3dAutoSubclass@4 -Ctl3dAutoSubclassEx@8 -Ctl3dColorChange@0 -Ctl3dCtlColor@8 -Ctl3dCtlColorEx@12 -Ctl3dDlgFramePaint@16 -Ctl3dDlgProc@16 -Ctl3dEnabled@0 -Ctl3dGetVer@0 -Ctl3dIsAutoSubclass@0 -Ctl3dRegister@4 -Ctl3dSetStyle@12 -Ctl3dSubclassCtl@4 -Ctl3dSubclassCtlEx@8 -Ctl3dSubclassDlg@8 -Ctl3dSubclassDlgEx@8 -Ctl3dUnAutoSubclass@0 -Ctl3dUnregister@4 -Ctl3dUnsubclassCtl@4 -Ctl3dWinIniChange@0 -EditWndProc3d@16 -ListWndProc3d@16 -StaticWndProc3d@16 diff --git a/winsup/w32api/lib/d3dim.def b/winsup/w32api/lib/d3dim.def deleted file mode 100644 index 3956d1552..000000000 --- a/winsup/w32api/lib/d3dim.def +++ /dev/null @@ -1,8 +0,0 @@ -; from DirectX 6.1 -LIBRARY "d3dim.dll" -EXPORTS -Direct3DCreate@12 -Direct3D_HALCleanUp@8 -SpanInit -g_fOneMinusEps -g_fTwoPow31 diff --git a/winsup/w32api/lib/d3drm.def b/winsup/w32api/lib/d3drm.def deleted file mode 100644 index f55c4fd63..000000000 --- a/winsup/w32api/lib/d3drm.def +++ /dev/null @@ -1,24 +0,0 @@ -; from DirectX 6.1 -LIBRARY "d3drm.dll" -EXPORTS -D3DRMColorGetAlpha@4 -D3DRMColorGetBlue@4 -D3DRMColorGetGreen@4 -D3DRMColorGetRed@4 -D3DRMCreateColorRGB@12 -D3DRMCreateColorRGBA@16 -D3DRMMatrixFromQuaternion@8 -D3DRMQuaternionFromRotation@12 -D3DRMQuaternionMultiply@12 -D3DRMQuaternionSlerp@16 -D3DRMVectorAdd@12 -D3DRMVectorCrossProduct@12 -D3DRMVectorDotProduct@8 -D3DRMVectorModulus@4 -D3DRMVectorNormalize@4 -D3DRMVectorRandom@4 -D3DRMVectorReflect@12 -D3DRMVectorRotate@16 -D3DRMVectorScale@12 -D3DRMVectorSubtract@12 -Direct3DRMCreate@4 diff --git a/winsup/w32api/lib/d3dxof.def b/winsup/w32api/lib/d3dxof.def deleted file mode 100644 index d12e2048b..000000000 --- a/winsup/w32api/lib/d3dxof.def +++ /dev/null @@ -1,4 +0,0 @@ -; from DirectX 6.1 -LIBRARY "d3dxof.dll" -EXPORTS -DirectXFileCreate@4 diff --git a/winsup/w32api/lib/ddraw.def b/winsup/w32api/lib/ddraw.def deleted file mode 100644 index ea49045c1..000000000 --- a/winsup/w32api/lib/ddraw.def +++ /dev/null @@ -1,28 +0,0 @@ -; from DirectX 6.1 -LIBRARY "DDRAW.dll" -EXPORTS -D3DParseUnknownCommand@8 -DDHAL32_VidMemAlloc@16 -DDHAL32_VidMemFree@12 -DDInternalLock@8 -DDInternalUnlock@4 -DSoundHelp@12 -DirectDrawCreate@12 -DirectDrawCreateClipper@12 -DirectDrawEnumerateA@8 -DirectDrawEnumerateExA@12 -DirectDrawEnumerateExW@12 -DirectDrawEnumerateW@8 -GetAliasedVidMem -GetNextMipMap -GetSurfaceFromDC@12 -HeapVidMemAllocAligned@20 -InternalLock -InternalUnlock -LateAllocateSurfaceMem@16 -VidMemAlloc@12 -VidMemAmountFree@4 -VidMemFini@4 -VidMemFree@8 -VidMemInit@20 -VidMemLargestFree@4 diff --git a/winsup/w32api/lib/dinput.c b/winsup/w32api/lib/dinput.c deleted file mode 100644 index 1d022a484..000000000 --- a/winsup/w32api/lib/dinput.c +++ /dev/null @@ -1,2488 +0,0 @@ -/* - DINPUT.C - - Author: Daniel Guerrero Miralles (daguer@geocities.com) - Version: 1.1.2 - Date: 12/98 - - ABSTRACT: - DirectInput library static data source code. For DirectX 6.1 and - earlier versions. - - LEGAL INFORMATION: - This is PUBLIC DOMAIN source code. The source code in this file is - provided "as is", without any warranty, including but not limited to, - fitness for any particular purpose. - - REMARKS: - - Fixed bug in c_dfDIMouse definition. - - TODO: - Nothing. -*/ - -#if defined(__LCC__) || defined(__GNUC__) || defined(__WATCOMC__) -#include -#include -#else -#include -#endif - -/* --- Types and constants --- */ - -typedef struct DIOBJECTDATAFORMAT_TAG -{ - const GUID * pguid; - DWORD dwOfw; - DWORD dwType; - DWORD dwFlags; -} DIOBJECTDATAFORMAT; - -typedef struct DIDATAFORMAT_TAG { - DWORD dwSize; - DWORD dwObjSize; - DWORD dwFlags; - DWORD dwDataSize; - DWORD dwNumObjs; - DIOBJECTDATAFORMAT * rgodf; -} DIDATAFORMAT; - -#define DIDF_ABSAXIS 1L -#define DIDF_RELAXIS 2L -#define DIDFT_AXIS 3L -#define DIDFT_BUTTON 12L -#define DIDFT_POV 16L -#define DIDFT_MAKEINSTANCE(x) ((WORD)(x)<<8) -#define DIDFT_ANYINSTANCE (DIDFT_MAKEINSTANCE(-1)) -#define DIDOI_ASPECTPOSITION (1L<<8) -#define DIDOI_ASPECTVELOCITY (2L<<8) -#define DIDOI_ASPECTACCEL (3L<<8) -#define DIDOI_ASPECTFORCE (4L<<8) - -extern GUID GUID_XAxis; -extern GUID GUID_YAxis; -extern GUID GUID_ZAxis; -extern GUID GUID_RxAxis; -extern GUID GUID_RyAxis; -extern GUID GUID_RzAxis; -extern GUID GUID_Slider; -extern GUID GUID_Key; -extern GUID GUID_POV; - -/* --- Static data --- */ - -static DIOBJECTDATAFORMAT diodfKeyData[] = -{ - { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 0, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 1, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(1), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 2, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(2), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 3, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(3), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 4, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(4), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 5, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(5), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 6, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(6), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 7, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(7), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 8, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(8), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 9, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(9), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 10, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(10), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 11, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(11), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 12, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(12), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 13, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(13), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 14, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(14), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 15, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(15), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 16, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(16), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 17, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(17), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 18, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(18), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 19, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(19), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 20, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(20), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 21, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(21), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 22, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(22), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 23, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(23), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 24, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(24), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 25, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(25), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 26, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(26), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 27, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(27), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 28, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(28), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 29, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(29), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 30, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(30), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 31, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(31), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 32, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(32), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 33, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(33), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 34, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(34), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 35, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(35), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 36, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(36), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 37, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(37), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 38, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(38), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 39, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(39), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 40, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(40), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 41, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(41), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 42, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(42), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 43, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(43), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 44, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(44), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 45, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(45), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 46, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(46), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 47, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(47), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 48, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(48), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 49, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(49), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 50, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(50), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 51, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(51), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 52, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(52), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 53, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(53), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 54, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(54), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 55, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(55), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 56, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(56), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 57, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(57), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 58, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(58), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 59, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(59), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 60, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(60), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 61, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(61), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 62, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(62), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 63, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(63), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 64, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(64), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 65, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(65), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 66, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(66), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 67, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(67), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 68, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(68), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 69, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(69), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 70, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(70), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 71, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(71), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 72, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(72), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 73, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(73), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 74, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(74), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 75, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(75), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 76, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(76), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 77, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(77), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 78, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(78), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 79, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(79), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 80, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(80), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 81, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(81), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 82, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(82), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 83, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(83), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 84, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(84), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 85, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(85), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 86, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(86), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 87, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(87), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 88, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(88), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 89, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(89), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 90, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(90), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 91, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(91), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 92, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(92), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 93, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(93), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 94, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(94), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 95, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(95), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 96, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(96), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 97, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(97), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 98, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(98), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 99, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(99), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 100, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(100), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 101, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(101), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 102, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(102), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 103, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(103), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 104, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(104), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 105, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(105), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 106, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(106), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 107, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(107), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 108, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(108), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 109, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(109), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 110, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(110), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 111, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(111), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 112, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(112), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 113, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(113), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 114, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(114), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 115, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(115), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 116, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(116), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 117, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(117), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 118, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(118), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 119, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(119), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 120, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(120), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 121, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(121), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 122, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(122), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 123, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(123), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 124, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(124), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 125, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(125), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 126, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(126), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 127, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(127), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 128, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(128), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 129, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(129), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 130, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(130), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 131, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(131), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 132, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(132), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 133, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(133), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 134, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(134), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 135, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(135), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 136, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(136), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 137, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(137), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 138, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(138), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 139, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(139), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 140, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(140), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 141, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(141), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 142, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(142), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 143, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(143), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 144, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(144), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 145, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(145), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 146, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(146), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 147, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(147), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 148, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(148), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 149, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(149), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 150, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(150), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 151, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(151), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 152, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(152), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 153, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(153), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 154, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(154), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 155, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(155), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 156, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(156), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 157, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(157), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 158, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(158), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 159, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(159), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 160, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(160), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 161, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(161), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 162, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(162), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 163, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(163), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 164, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(164), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 165, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(165), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 166, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(166), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 167, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(167), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 168, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(168), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 169, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(169), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 170, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(170), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 171, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(171), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 172, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(172), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 173, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(173), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 174, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(174), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 175, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(175), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 176, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(176), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 177, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(177), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 178, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(178), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 179, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(179), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 180, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(180), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 181, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(181), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 182, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(182), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 183, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(183), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 184, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(184), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 185, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(185), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 186, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(186), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 187, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(187), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 188, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(188), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 189, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(189), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 190, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(190), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 191, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(191), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 192, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(192), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 193, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(193), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 194, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(194), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 195, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(195), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 196, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(196), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 197, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(197), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 198, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(198), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 199, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(199), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 200, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(200), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 201, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(201), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 202, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(202), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 203, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(203), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 204, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(204), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 205, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(205), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 206, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(206), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 207, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(207), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 208, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(208), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 209, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(209), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 210, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(210), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 211, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(211), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 212, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(212), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 213, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(213), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 214, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(214), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 215, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(215), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 216, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(216), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 217, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(217), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 218, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(218), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 219, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(219), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 220, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(220), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 221, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(221), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 222, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(222), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 223, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(223), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 224, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(224), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 225, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(225), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 226, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(226), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 227, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(227), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 228, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(228), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 229, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(229), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 230, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(230), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 231, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(231), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 232, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(232), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 233, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(233), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 234, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(234), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 235, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(235), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 236, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(236), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 237, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(237), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 238, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(238), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 239, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(239), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 240, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(240), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 241, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(241), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 242, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(242), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 243, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(243), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 244, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(244), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 245, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(245), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 246, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(246), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 247, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(247), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 248, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(248), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 249, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(249), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 250, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(250), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 251, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(251), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 252, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(252), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 253, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(253), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 254, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(254), - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_Key, - /* dwOfw = */ 255, - /* dwType = */ 0x80000000|DIDFT_BUTTON|DIDFT_MAKEINSTANCE(255), - /* dwFlags = */ 0 - } -}; - -static DIOBJECTDATAFORMAT diodfJoyData[] = -{ - { - /* pguid = */ &GUID_XAxis, - /* dwOfw = */ 0, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_YAxis, - /* dwOfw = */ 4, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_ZAxis, - /* dwOfw = */ 8, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_RxAxis, - /* dwOfw = */ 12, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_RyAxis, - /* dwOfw = */ 16, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_RzAxis, - /* dwOfw = */ 20, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_Slider, - /* dwOfw = */ 24, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_Slider, - /* dwOfw = */ 28, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_POV, - /* dwOfw = */ 32, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_POV, - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_POV, - /* dwOfw = */ 36, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_POV, - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_POV, - /* dwOfw = */ 40, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_POV, - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_POV, - /* dwOfw = */ 44, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_POV, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 48, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 49, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 50, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 51, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 52, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 53, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 54, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 55, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 56, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 57, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 58, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 59, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 60, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 61, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 62, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 63, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 64, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 65, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 66, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 67, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 68, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 69, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 70, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 71, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 72, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 73, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 74, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 75, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 76, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 77, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 78, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 79, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - } -}; - -static DIOBJECTDATAFORMAT diodfJoy2Data[] = -{ - { - /* pguid = */ &GUID_XAxis, - /* dwOfw = */ 0, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_YAxis, - /* dwOfw = */ 4, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_ZAxis, - /* dwOfw = */ 8, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_RxAxis, - /* dwOfw = */ 12, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_RyAxis, - /* dwOfw = */ 16, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_RzAxis, - /* dwOfw = */ 20, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_Slider, - /* dwOfw = */ 24, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_Slider, - /* dwOfw = */ 28, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTPOSITION - }, { - /* pguid = */ &GUID_POV, - /* dwOfw = */ 32, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_POV, - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_POV, - /* dwOfw = */ 36, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_POV, - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_POV, - /* dwOfw = */ 40, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_POV, - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_POV, - /* dwOfw = */ 44, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_POV, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 48, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 49, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 50, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 51, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 52, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 53, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 54, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 55, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 56, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 57, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 58, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 59, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 60, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 61, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 62, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 63, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 64, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 65, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 66, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 67, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 68, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 69, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 70, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 71, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 72, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 73, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 74, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 75, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 76, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 77, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 78, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 79, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 80, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 81, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 82, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 83, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 84, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 85, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 86, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 87, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 88, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 89, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 90, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 91, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 92, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 93, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 94, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 95, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 96, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 97, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 98, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 99, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 100, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 101, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 102, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 103, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 104, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 105, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 106, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 107, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 108, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 109, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 110, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 111, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 112, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 113, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 114, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 115, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 116, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 117, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 118, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 119, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 120, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 121, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 122, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 123, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 124, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 125, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 126, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 127, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 128, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 129, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 130, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 131, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 132, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 133, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 134, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 135, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 136, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 137, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 138, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 139, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 140, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 141, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 142, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 143, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 144, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 145, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 146, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 147, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 148, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 149, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 150, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 151, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 152, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 153, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 154, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 155, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 156, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 157, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 158, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 159, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 160, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 161, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 162, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 163, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 164, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 165, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 166, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 167, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 168, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 169, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 170, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 171, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 172, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 173, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 174, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 175, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_XAxis, - /* dwOfw = */ 176, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTVELOCITY - }, { - /* pguid = */ &GUID_YAxis, - /* dwOfw = */ 180, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTVELOCITY - }, { - /* pguid = */ &GUID_ZAxis, - /* dwOfw = */ 184, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTVELOCITY - }, { - /* pguid = */ &GUID_RxAxis, - /* dwOfw = */ 188, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTVELOCITY - }, { - /* pguid = */ &GUID_RyAxis, - /* dwOfw = */ 192, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTVELOCITY - }, { - /* pguid = */ &GUID_RzAxis, - /* dwOfw = */ 196, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTVELOCITY - }, { - /* pguid = */ &GUID_Slider, - /* dwOfw = */ 24, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTVELOCITY - }, { - /* pguid = */ &GUID_Slider, - /* dwOfw = */ 28, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTVELOCITY - }, { - /* pguid = */ &GUID_XAxis, - /* dwOfw = */ 208, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTACCEL - }, { - /* pguid = */ &GUID_YAxis, - /* dwOfw = */ 212, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTACCEL - }, { - /* pguid = */ &GUID_ZAxis, - /* dwOfw = */ 216, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTACCEL - }, { - /* pguid = */ &GUID_RxAxis, - /* dwOfw = */ 220, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTACCEL - }, { - /* pguid = */ &GUID_RyAxis, - /* dwOfw = */ 224, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTACCEL - }, { - /* pguid = */ &GUID_RzAxis, - /* dwOfw = */ 228, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTACCEL - }, { - /* pguid = */ &GUID_Slider, - /* dwOfw = */ 24, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTACCEL - }, { - /* pguid = */ &GUID_Slider, - /* dwOfw = */ 28, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTACCEL - }, { - /* pguid = */ &GUID_XAxis, - /* dwOfw = */ 240, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTFORCE - }, { - /* pguid = */ &GUID_YAxis, - /* dwOfw = */ 244, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTFORCE - }, { - /* pguid = */ &GUID_ZAxis, - /* dwOfw = */ 248, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTFORCE - }, { - /* pguid = */ &GUID_RxAxis, - /* dwOfw = */ 252, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTFORCE - }, { - /* pguid = */ &GUID_RyAxis, - /* dwOfw = */ 256, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTFORCE - }, { - /* pguid = */ &GUID_RzAxis, - /* dwOfw = */ 260, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTFORCE - }, { - /* pguid = */ &GUID_Slider, - /* dwOfw = */ 24, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTFORCE - }, { - /* pguid = */ &GUID_Slider, - /* dwOfw = */ 28, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ DIDOI_ASPECTFORCE - } -}; - -static DIOBJECTDATAFORMAT diodfMouseData[] = -{ - { - /* pguid = */ &GUID_XAxis, - /* dwOfw = */ 0, - /* dwType = */ DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_YAxis, - /* dwOfw = */ 4, - /* dwType = */ DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ 0 - }, { - /* pguid = */ &GUID_ZAxis, - /* dwOfw = */ 8, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_AXIS, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 12, - /* dwType = */ DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 13, - /* dwType = */ DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 14, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - }, { - /* pguid = */ NULL, - /* dwOfw = */ 15, - /* dwType = */ 0x80000000|DIDFT_ANYINSTANCE|DIDFT_BUTTON, - /* dwFlags = */ 0 - } -}; - -/* --- Library global variables --- */ - -const DIDATAFORMAT c_dfDIKeyboard = -{ - /* dwSize = */ 24, - /* dwObjSize = */ 16, - /* dwFlags = */ DIDF_RELAXIS, - /* dwDataSize = */ 256, - /* dwNumObjs = */ 256, - /* rgodf = */ &diodfKeyData[0] -}; - -const DIDATAFORMAT c_dfDIJoystick = -{ - /* dwSize = */ 24, - /* dwObjSize = */ 16, - /* dwFlags = */ DIDF_ABSAXIS, - /* dwDataSize = */ 80, - /* dwNumObjs = */ 44, - /* rgodf = */ &diodfJoyData[0] -}; - -const DIDATAFORMAT c_dfDIJoystick2 = { - /* dwSize = */ 24, - /* dwObjSize = */ 16, - /* dwFlags = */ DIDF_ABSAXIS, - /* dwDataSize = */ 272, - /* dwNumObjs = */ 164, - /* rgodf = */ &diodfJoy2Data[0] -}; - -const DIDATAFORMAT c_dfDIMouse = -{ - /* dwSize = */ 24, - /* dwObjSize = */ 16, - /* dwFlags = */ DIDF_RELAXIS, - /* dwDataSize = */ 16, - /* dwNumObjs = */ 7, - /* rgodf = */ &diodfMouseData[0] -}; diff --git a/winsup/w32api/lib/dinput.def b/winsup/w32api/lib/dinput.def deleted file mode 100644 index fe7d2d498..000000000 --- a/winsup/w32api/lib/dinput.def +++ /dev/null @@ -1,5 +0,0 @@ -; from DirectX 6.1 -LIBRARY "DINPUT.dll" -EXPORTS -DirectInputCreateA@16 -DirectInputCreateW@16 diff --git a/winsup/w32api/lib/dlcapi.def b/winsup/w32api/lib/dlcapi.def deleted file mode 100644 index 501ecd766..000000000 --- a/winsup/w32api/lib/dlcapi.def +++ /dev/null @@ -1,5 +0,0 @@ -LIBRARY DLCAPI.DLL -EXPORTS -AcsLan@8 -DlcCallDriver@24 -NtAcsLan@16 diff --git a/winsup/w32api/lib/dplayx.def b/winsup/w32api/lib/dplayx.def deleted file mode 100644 index 058e00db7..000000000 --- a/winsup/w32api/lib/dplayx.def +++ /dev/null @@ -1,10 +0,0 @@ -; from DirectX 6.1 -LIBRARY "DPLAYX.dll" -EXPORTS -DirectPlayCreate@12 -DirectPlayEnumerate@8 -DirectPlayEnumerateA@8 -DirectPlayEnumerateW@8 -DirectPlayLobbyCreateA@20 -DirectPlayLobbyCreateW@20 -gdwDPlaySPRefCount diff --git a/winsup/w32api/lib/dsetup.def b/winsup/w32api/lib/dsetup.def deleted file mode 100644 index b417432ca..000000000 --- a/winsup/w32api/lib/dsetup.def +++ /dev/null @@ -1,18 +0,0 @@ -; from DirectX 6.1 -LIBRARY "DSETUP.dll" -EXPORTS -DirectXDeviceDriverSetupA@16 -DirectXDeviceDriverSetupW@16 -DirectXLoadString@12 -DirectXRegisterApplicationA@8 -DirectXRegisterApplicationW@8 -DirectXSetupA@12 -DirectXSetupCallback@20 -DirectXSetupGetFileVersion -DirectXSetupGetVersion@8 -DirectXSetupIsEng@0 -DirectXSetupIsJapan@0 -DirectXSetupIsJapanNec@0 -DirectXSetupSetCallback@4 -DirectXSetupW@12 -DirectXUnRegisterApplication@8 diff --git a/winsup/w32api/lib/dsound.def b/winsup/w32api/lib/dsound.def deleted file mode 100644 index 68ebdf6f6..000000000 --- a/winsup/w32api/lib/dsound.def +++ /dev/null @@ -1,9 +0,0 @@ -; from DirectX 6.1 -LIBRARY "DSOUND.dll" -EXPORTS -DirectSoundCaptureCreate@12 -DirectSoundCaptureEnumerateA@8 -DirectSoundCaptureEnumerateW@8 -DirectSoundCreate@12 -DirectSoundEnumerateA@8 -DirectSoundEnumerateW@8 diff --git a/winsup/w32api/lib/dxguid.c b/winsup/w32api/lib/dxguid.c deleted file mode 100644 index 5dd50328e..000000000 --- a/winsup/w32api/lib/dxguid.c +++ /dev/null @@ -1,461 +0,0 @@ -/* - DXGUID.C - - Author: Daniel Guerrero Miralles (daguer@geocities.com) - Version: 1.0.0 - Date: April 27, 1999 - - ABSTRACT: - Source code to generate a library with DirectX GUIDs. For DirectX 6.1 - and earlier versions. - - LEGAL INFORMATION: - This is PUBLIC DOMAIN source code. The source code in this file is - provided "as is", without any warranty, including but not limited to, - fitness for any particular purpose. - - REMARKS: - - This file may have more GUIDs than the original one. It was made by - recollecting GUIDs defined in the DirectX header files. - - TODO: - Nothing. -*/ - -#if defined(__LCC__) || defined(__GNUC__) -#define INITGUID 1 -#include -#include -#else -#include -#endif - -///////////////////////////////////////////////////////////////////// -// File D3D.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(IID_IDirect3D,0x3BBA0080,0x2421,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); -DEFINE_GUID(IID_IDirect3D2,0x6aae1ec1,0x662a,0x11d0,0x88,0x9d,0x00,0xaa,0x00,0xbb,0xb7,0x6a); -DEFINE_GUID(IID_IDirect3D3,0xbb223240,0xe72b,0x11d0,0xa9,0xb4,0x00,0xaa,0x00,0xc0,0x99,0x3e); -DEFINE_GUID(IID_IDirect3DRampDevice,0xF2086B20,0x259F,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); -DEFINE_GUID(IID_IDirect3DRGBDevice,0xA4665C60,0x2673,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); -DEFINE_GUID(IID_IDirect3DHALDevice,0x84E63dE0,0x46AA,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); -DEFINE_GUID(IID_IDirect3DMMXDevice,0x881949a1,0xd6f3,0x11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29); -DEFINE_GUID(IID_IDirect3DRefDevice,0x50936643,0x13e9,0x11d1,0x89,0xaa,0x0,0xa0,0xc9,0x5,0x41,0x29); -DEFINE_GUID(IID_IDirect3DNullDevice,0x8767df22,0xbacc,0x11d1,0x89,0x69,0x0,0xa0,0xc9,0x6,0x29,0xa8); -DEFINE_GUID(IID_IDirect3DDevice,0x64108800,0x957d,0X11d0,0x89,0xab,0x00,0xa0,0xc9,0x05,0x41,0x29); -DEFINE_GUID(IID_IDirect3DDevice2,0x93281501,0x8cf8,0x11d0,0x89,0xab,0x0,0xa0,0xc9,0x5,0x41,0x29); -DEFINE_GUID(IID_IDirect3DDevice3,0xb0ab3b60,0x33d7,0x11d1,0xa9,0x81,0x0,0xc0,0x4f,0xd7,0xb1,0x74); -DEFINE_GUID(IID_IDirect3DTexture,0x2CDCD9E0,0x25A0,0x11CF,0xA3,0x1A,0x00,0xAA,0x00,0xB9,0x33,0x56); -DEFINE_GUID(IID_IDirect3DTexture2,0x93281502,0x8cf8,0x11d0,0x89,0xab,0x0,0xa0,0xc9,0x5,0x41,0x29); -DEFINE_GUID(IID_IDirect3DLight,0x4417C142,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); -DEFINE_GUID(IID_IDirect3DMaterial,0x4417C144,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); -DEFINE_GUID(IID_IDirect3DMaterial2,0x93281503,0x8cf8,0x11d0,0x89,0xab,0x0,0xa0,0xc9,0x5,0x41,0x29); -DEFINE_GUID(IID_IDirect3DMaterial3,0xca9c46f4,0xd3c5,0x11d1,0xb7,0x5a,0x0,0x60,0x8,0x52,0xb3,0x12); -DEFINE_GUID(IID_IDirect3DExecuteBuffer,0x4417C145,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); -DEFINE_GUID(IID_IDirect3DViewport,0x4417C146,0x33AD,0x11CF,0x81,0x6F,0x00,0x00,0xC0,0x20,0x15,0x6E); -DEFINE_GUID(IID_IDirect3DViewport2,0x93281500,0x8cf8,0x11d0,0x89,0xab,0x0,0xa0,0xc9,0x5,0x41,0x29); -DEFINE_GUID(IID_IDirect3DViewport3,0xb0ab3b61,0x33d7,0x11d1,0xa9,0x81,0x0,0xc0,0x4f,0xd7,0xb1,0x74); -DEFINE_GUID(IID_IDirect3DVertexBuffer,0x7a503555,0x4a83,0x11d1,0xa5,0xdb,0x0,0xa0,0xc9,0x3,0x67,0xf8); - -///////////////////////////////////////////////////////////////////// -// File D3DRM.H: -///////////////////////////////////////////////////////////////////// - - -DEFINE_GUID(IID_IDirect3DRM,0x2bc49361,0x8327,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRM2,0x4516ecc8,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirect3DRM3,0x4516ec83,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(CLSID_CDirect3DRM,0x4516ec41,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); - -///////////////////////////////////////////////////////////////////// -// File D3DRMOBJ.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(CLSID_CDirect3DRMDevice,0x4fa3568e,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMViewport,0x4fa3568f,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMFrame,0x4fa35690,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMMesh,0x4fa35691,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder,0x4fa35692,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMFace,0x4fa35693,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMLight,0x4fa35694,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMTexture,0x4fa35695,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMWrap,0x4fa35696,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMMaterial,0x4fa35697,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMAnimation,0x4fa35698,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMAnimationSet,0x4fa35699,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMUserVisual,0x4fa3569a,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMShadow,0x4fa3569b,0x623f,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(CLSID_CDirect3DRMViewportInterpolator,0xde9eaa1,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(CLSID_CDirect3DRMFrameInterpolator,0xde9eaa2,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(CLSID_CDirect3DRMMeshInterpolator,0xde9eaa3,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(CLSID_CDirect3DRMLightInterpolator,0xde9eaa6,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(CLSID_CDirect3DRMMaterialInterpolator,0xde9eaa7,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(CLSID_CDirect3DRMTextureInterpolator,0xde9eaa8,0x3b84,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(CLSID_CDirect3DRMProgressiveMesh,0x4516ec40,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(CLSID_CDirect3DRMClippedVisual,0x5434e72d,0x6d66,0x11d1,0xbb,0xb,0x0,0x0,0xf8,0x75,0x86,0x5a); -DEFINE_GUID(IID_IDirect3DRMObject,0xeb16cb00,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMObject2,0x4516ec7c,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirect3DRMDevice,0xe9e19280,0x6e05,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMDevice2,0x4516ec78,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirect3DRMDevice3,0x549f498b,0xbfeb,0x11d1,0x8e,0xd8,0x0,0xa0,0xc9,0x67,0xa4,0x82); -DEFINE_GUID(IID_IDirect3DRMViewport,0xeb16cb02,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMViewport2,0x4a1b1be6,0xbfed,0x11d1,0x8e,0xd8,0x0,0xa0,0xc9,0x67,0xa4,0x82); -DEFINE_GUID(IID_IDirect3DRMFrame,0xeb16cb03,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMFrame2,0xc3dfbd60,0x3988,0x11d0,0x9e,0xc2,0x0,0x0,0xc0,0x29,0x1a,0xc3); -DEFINE_GUID(IID_IDirect3DRMFrame3,0xff6b7f70,0xa40e,0x11d1,0x91,0xf9,0x0,0x0,0xf8,0x75,0x8e,0x66); -DEFINE_GUID(IID_IDirect3DRMVisual,0xeb16cb04,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMMesh,0xa3a80d01,0x6e12,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMMeshBuilder,0xa3a80d02,0x6e12,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMMeshBuilder2,0x4516ec77,0x8f20,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirect3DRMMeshBuilder3,0x4516ec82,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirect3DRMFace,0xeb16cb07,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMFace2,0x4516ec81,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirect3DRMLight,0xeb16cb08,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMTexture,0xeb16cb09,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMTexture2,0x120f30c0,0x1629,0x11d0,0x94,0x1c,0x0,0x80,0xc8,0xc,0xfa,0x7b); -DEFINE_GUID(IID_IDirect3DRMTexture3,0xff6b7f73,0xa40e,0x11d1,0x91,0xf9,0x0,0x0,0xf8,0x75,0x8e,0x66); -DEFINE_GUID(IID_IDirect3DRMWrap,0xeb16cb0a,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMMaterial,0xeb16cb0b,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMMaterial2,0xff6b7f75,0xa40e,0x11d1,0x91,0xf9,0x0,0x0,0xf8,0x75,0x8e,0x66); -DEFINE_GUID(IID_IDirect3DRMAnimation,0xeb16cb0d,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMAnimation2,0xff6b7f77,0xa40e,0x11d1,0x91,0xf9,0x0,0x0,0xf8,0x75,0x8e,0x66); -DEFINE_GUID(IID_IDirect3DRMAnimationSet,0xeb16cb0e,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMAnimationSet2,0xff6b7f79,0xa40e,0x11d1,0x91,0xf9,0x0,0x0,0xf8,0x75,0x8e,0x66); -DEFINE_GUID(IID_IDirect3DRMObjectArray,0x242f6bc2,0x3849,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirect3DRMDeviceArray,0xeb16cb10,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMViewportArray,0xeb16cb11,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMFrameArray,0xeb16cb12,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMVisualArray,0xeb16cb13,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMLightArray,0xeb16cb14,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMPickedArray,0xeb16cb16,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMFaceArray,0xeb16cb17,0xd271,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMAnimationArray,0xd5f1cae0,0x4bd7,0x11d1,0xb9,0x74,0x0,0x60,0x8,0x3e,0x45,0xf3); -DEFINE_GUID(IID_IDirect3DRMUserVisual,0x59163de0,0x6d43,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMShadow,0xaf359780,0x6ba3,0x11cf,0xac,0x4a,0x0,0x0,0xc0,0x38,0x25,0xa1); -DEFINE_GUID(IID_IDirect3DRMShadow2,0x86b44e25,0x9c82,0x11d1,0xbb,0xb,0x0,0xa0,0xc9,0x81,0xa0,0xa6); -DEFINE_GUID(IID_IDirect3DRMInterpolator,0x242f6bc1,0x3849,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirect3DRMProgressiveMesh,0x4516ec79,0x8f20,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirect3DRMPicked2Array,0x4516ec7b,0x8f20,0x11d0,0x9b,0x6d,0x0,0x0,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirect3DRMClippedVisual,0x5434e733,0x6d66,0x11d1,0xbb,0xb,0x0,0x0,0xf8,0x75,0x86,0x5a); - -///////////////////////////////////////////////////////////////////// -// File D3DRMWIN.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(IID_IDirect3DRMWinDevice,0xc5016cc0,0xd273,0x11ce,0xac,0x48,0x0,0x0,0xc0,0x38,0x25,0xa1); - -///////////////////////////////////////////////////////////////////// -// File DDRAW.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(CLSID_DirectDraw,0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35); -DEFINE_GUID(CLSID_DirectDrawClipper,0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xb9,0x33,0x56); -DEFINE_GUID(IID_IDirectDraw,0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); -DEFINE_GUID(IID_IDirectDraw2,0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56); -DEFINE_GUID(IID_IDirectDraw4,0x9c59509a,0x39bd,0x11d1,0x8c,0x4a,0x00,0xc0,0x4f,0xd9,0x30,0xc5); -DEFINE_GUID(IID_IDirectDrawSurface,0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); -DEFINE_GUID(IID_IDirectDrawSurface2,0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27); -DEFINE_GUID(IID_IDirectDrawSurface3,0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB); -DEFINE_GUID(IID_IDirectDrawSurface4,0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B); -DEFINE_GUID(IID_IDirectDrawPalette,0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); -DEFINE_GUID(IID_IDirectDrawClipper,0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); -DEFINE_GUID(IID_IDirectDrawColorControl,0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); -DEFINE_GUID(IID_IDirectDrawGammaControl,0x69C11C3E,0xB46B,0x11D1,0xAD,0x7A,0x00,0xC0,0x4F,0xC2,0x9B,0x4E); - -///////////////////////////////////////////////////////////////////// -// File DINPUT.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(CLSID_DirectInput,0x25E609E0,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(CLSID_DirectInputDevice,0x25E609E1,0xB259,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(IID_IDirectInputA,0x89521360,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(IID_IDirectInputW,0x89521361,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(IID_IDirectInput2A,0x5944E662,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(IID_IDirectInput2W,0x5944E663,0xAA8A,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(IID_IDirectInputDeviceA,0x5944E680,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(IID_IDirectInputDeviceW,0x5944E681,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(IID_IDirectInputDevice2A,0x5944E682,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(IID_IDirectInputDevice2W,0x5944E683,0xC92E,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(IID_IDirectInputEffect,0xE7E1F7C0,0x88D2,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_XAxis,0xA36D02E0,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_YAxis,0xA36D02E1,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_ZAxis,0xA36D02E2,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_RxAxis,0xA36D02F4,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_RyAxis,0xA36D02F5,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_RzAxis,0xA36D02E3,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_Slider,0xA36D02E4,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_Button,0xA36D02F0,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_Key,0x55728220,0xD33C,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_POV,0xA36D02F2,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_Unknown,0xA36D02F3,0xC9F3,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_SysMouse,0x6F1D2B60,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_SysKeyboard,0x6F1D2B61,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_Joystick,0x6F1D2B70,0xD5A0,0x11CF,0xBF,0xC7,0x44,0x45,0x53,0x54,0x00,0x00); -DEFINE_GUID(GUID_ConstantForce,0x13541C20,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_RampForce,0x13541C21,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_Square,0x13541C22,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_Sine,0x13541C23,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_Triangle,0x13541C24,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_SawtoothUp,0x13541C25,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_SawtoothDown,0x13541C26,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_Spring,0x13541C27,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_Damper,0x13541C28,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_Inertia,0x13541C29,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_Friction,0x13541C2A,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); -DEFINE_GUID(GUID_CustomForce,0x13541C2B,0x8E33,0x11D0,0x9A,0xD0,0x00,0xA0,0xC9,0xA0,0x6E,0x35); - -///////////////////////////////////////////////////////////////////// -// File DMKSCTRL.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(IID_IKsControl,0x28F54685,0x06FD,0x11D2,0xB2,0x7A,0x00,0xA0,0xC9,0x22,0x31,0x96); -DEFINE_GUID(KSDATAFORMAT_SUBTYPE_MIDI,0x1D262760L,0xE957,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00); -DEFINE_GUID(KSDATAFORMAT_SUBTYPE_DIRECTMUSIC,0x1a82f8bc,0x3f8b,0x11d2,0xb7,0x74,0x00,0x60,0x08,0x33,0x16,0xc1); - -///////////////////////////////////////////////////////////////////// -// File DMUSICC.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(IID_IReferenceClock,0x56a86897,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70); -DEFINE_GUID(CLSID_DirectMusic,0x636b9f10,0x0c7d,0x11d1,0x95,0xb2,0x00,0x20,0xaf,0xdc,0x74,0x21); -DEFINE_GUID(CLSID_DirectMusicCollection,0x480ff4b0,0x28b2,0x11d1,0xbe,0xf7,0x0,0xc0,0x4f,0xbf,0x8f,0xef); -DEFINE_GUID(CLSID_DirectMusicSynth,0x58C2B4D0,0x46E7,0x11D1,0x89,0xAC,0x00,0xA0,0xC9,0x05,0x41,0x29); -DEFINE_GUID(IID_IDirectMusic,0x6536115a,0x7b2d,0x11d2,0xba,0x18,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(IID_IDirectMusicBuffer,0xd2ac2878,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicPort,0x08f2d8c9,0x37c2,0x11d2,0xb9,0xf9,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(IID_IDirectMusicThru,0xced153e7,0x3606,0x11d2,0xb9,0xf9,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(IID_IDirectMusicPortDownload,0xd2ac287a,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicDownload,0xd2ac287b,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicCollection,0xd2ac287c,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicInstrument,0xd2ac287d,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicDownloadedInstrument,0xd2ac287e,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_DMUS_PROP_GM_Hardware,0x178f2f24,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(GUID_DMUS_PROP_GS_Hardware,0x178f2f25,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(GUID_DMUS_PROP_XG_Hardware,0x178f2f26,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(GUID_DMUS_PROP_XG_Capable,0x6496aba1,0x61b0,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); -DEFINE_GUID(GUID_DMUS_PROP_GS_Capable,0x6496aba2,0x61b0,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); -DEFINE_GUID(GUID_DMUS_PROP_DLS1,0x178f2f27,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(GUID_DMUS_PROP_SynthSink_DSOUND,0xaa97844,0xc877,0x11d1,0x87,0xc,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_DMUS_PROP_SynthSink_WAVE,0xaa97845,0xc877,0x11d1,0x87,0xc,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_DMUS_PROP_WriteLatency,0x268a0fa0,0x60f2,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); -DEFINE_GUID(GUID_DMUS_PROP_WritePeriod,0x268a0fa1,0x60f2,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); -DEFINE_GUID(GUID_DMUS_PROP_MemorySize,0x178f2f28,0xc364,0x11d1,0xa7,0x60,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(GUID_DMUS_PROP_WavesReverb,0x4cb5622,0x32e5,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); -DEFINE_GUID(GUID_DMUS_PROP_Effects,0xcda8d611,0x684a,0x11d2,0x87,0x1e,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_DMUS_PROP_LegacyCaps,0xcfa7cdc2,0x00a1,0x11d2,0xaa,0xd5,0x00,0x00,0xf8,0x75,0xac,0x12); -DEFINE_GUID(GUID_DMUS_PROP_Volume,0xfedfae25L,0xe46e,0x11d1,0xaa,0xce,0x00,0x00,0xf8,0x75,0xac,0x12); - -///////////////////////////////////////////////////////////////////// -// File DMUSICI.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(CLSID_DirectMusicPerformance,0xd2ac2881,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicSegment,0xd2ac2882,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicSegmentState,0xd2ac2883,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicGraph,0xd2ac2884,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicTempoTrack,0xd2ac2885,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicSeqTrack,0xd2ac2886,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicSysExTrack,0xd2ac2887,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicTimeSigTrack,0xd2ac2888,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicStyle,0xd2ac288a,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicChordTrack,0xd2ac288b,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicCommandTrack,0xd2ac288c,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicStyleTrack,0xd2ac288d,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicMotifTrack,0xd2ac288e,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicChordMap,0xd2ac288f,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicComposer,0xd2ac2890,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicSignPostTrack,0xf17e8672,0xc3b4,0x11d1,0x87,0xb,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicLoader,0xd2ac2892,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicBandTrack,0xd2ac2894,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicBand,0x79ba9e00,0xb6ee,0x11d1,0x86,0xbe,0x0,0xc0,0x4f,0xbf,0x8f,0xef); -DEFINE_GUID(CLSID_DirectMusicChordMapTrack,0xd2ac2896,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(CLSID_DirectMusicMuteTrack,0xd2ac2898,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_DirectMusicAllTypes,0xd2ac2893,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_NOTIFICATION_SEGMENT,0xd2ac2899,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_NOTIFICATION_PERFORMANCE,0x81f75bc5,0x4e5d,0x11d2,0xbc,0xc7,0x0,0xa0,0xc9,0x22,0xe6,0xeb); -DEFINE_GUID(GUID_NOTIFICATION_MEASUREANDBEAT,0xd2ac289a,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_NOTIFICATION_CHORD,0xd2ac289b,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_NOTIFICATION_COMMAND,0xd2ac289c,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_CommandParam,0xd2ac289d,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_ChordParam,0xd2ac289e,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_RhythmParam,0xd2ac289f,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_IDirectMusicStyle,0xd2ac28a1,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_TimeSignature,0xd2ac28a4,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_TempoParam,0xd2ac28a5,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_IDirectMusicBand,0xd2ac28ac,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_IDirectMusicChordMap,0xd2ac28ad,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_MuteParam,0xd2ac28af,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_Download,0xd2ac28a7,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_Unload,0xd2ac28a8,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_ConnectToDLSCollection,0x1db1ae6b,0xe92e,0x11d1,0xa8,0xc5,0x0,0xc0,0x4f,0xa3,0x72,0x6e); -DEFINE_GUID(GUID_Enable_Auto_Download,0xd2ac28a9,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_Disable_Auto_Download,0xd2ac28aa,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_Clear_All_Bands,0xd2ac28ab,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_StandardMIDIFile,0x6621075,0xe92e,0x11d1,0xa8,0xc5,0x0,0xc0,0x4f,0xa3,0x72,0x6e); -DEFINE_GUID(GUID_DisableTimeSig,0x45fc707b,0x1db4,0x11d2,0xbc,0xac,0x0,0xa0,0xc9,0x22,0xe6,0xeb); -DEFINE_GUID(GUID_EnableTimeSig,0x45fc707c,0x1db4,0x11d2,0xbc,0xac,0x0,0xa0,0xc9,0x22,0xe6,0xeb); -DEFINE_GUID(GUID_DisableTempo,0x45fc707d,0x1db4,0x11d2,0xbc,0xac,0x0,0xa0,0xc9,0x22,0xe6,0xeb); -DEFINE_GUID(GUID_EnableTempo,0x45fc707e,0x1db4,0x11d2,0xbc,0xac,0x0,0xa0,0xc9,0x22,0xe6,0xeb); -DEFINE_GUID(GUID_PerfMasterTempo,0xd2ac28b0,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_PerfMasterVolume,0xd2ac28b1,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_PerfMasterGrooveLevel,0xd2ac28b2,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(GUID_PerfAutoDownload,0xfb09565b,0x3631,0x11d2,0xbc,0xb8,0x0,0xa0,0xc9,0x22,0xe6,0xeb); -DEFINE_GUID(GUID_DefaultGMCollection,0xf17e8673,0xc3b4,0x11d1,0x87,0xb,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicLoader,0x2ffaaca2,0x5dca,0x11d2,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); -DEFINE_GUID(IID_IDirectMusicGetLoader,0x68a04844,0xd13d,0x11d1,0xaf,0xa6,0x0,0xaa,0x0,0x24,0xd8,0xb6); -DEFINE_GUID(IID_IDirectMusicObject,0xd2ac28b5,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicSegment,0xf96029a2,0x4282,0x11d2,0x87,0x17,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicSegmentState,0xa3afdcc7,0xd3ee,0x11d1,0xbc,0x8d,0x0,0xa0,0xc9,0x22,0xe6,0xeb); -DEFINE_GUID(IID_IDirectMusicTrack,0xf96029a1,0x4282,0x11d2,0x87,0x17,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicPerformance,0x7d43d03,0x6523,0x11d2,0x87,0x1d,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicTool,0xd2ac28ba,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicGraph,0x2befc277,0x5497,0x11d2,0xbc,0xcb,0x0,0xa0,0xc9,0x22,0xe6,0xeb); -DEFINE_GUID(IID_IDirectMusicStyle,0xd2ac28bd,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicChordMap,0xd2ac28be,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicComposer,0xd2ac28bf,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); -DEFINE_GUID(IID_IDirectMusicBand,0xd2ac28c0,0xb39b,0x11d1,0x87,0x4,0x0,0x60,0x8,0x93,0xb1,0xbd); - -///////////////////////////////////////////////////////////////////// -// File DPLAY.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(IID_IDirectPlay2,0x2b74f7c0,0x9154,0x11cf,0xa9,0xcd,0x0,0xaa,0x0,0x68,0x86,0xe3); -DEFINE_GUID(IID_IDirectPlay2A,0x9d460580,0xa822,0x11cf,0x96,0xc,0x0,0x80,0xc7,0x53,0x4e,0x82); -DEFINE_GUID(IID_IDirectPlay3,0x133efe40,0x32dc,0x11d0,0x9c,0xfb,0x0,0xa0,0xc9,0xa,0x43,0xcb); -DEFINE_GUID(IID_IDirectPlay3A,0x133efe41,0x32dc,0x11d0,0x9c,0xfb,0x0,0xa0,0xc9,0xa,0x43,0xcb); -DEFINE_GUID(IID_IDirectPlay4,0xab1c530,0x4745,0x11d1,0xa7,0xa1,0x0,0x0,0xf8,0x3,0xab,0xfc); -DEFINE_GUID(IID_IDirectPlay4A,0xab1c531,0x4745,0x11d1,0xa7,0xa1,0x0,0x0,0xf8,0x3,0xab,0xfc); -DEFINE_GUID(CLSID_DirectPlay,0xd1eb6d20,0x8923,0x11d0,0x9d,0x97,0x0,0xa0,0xc9,0xa,0x43,0xcb); -DEFINE_GUID(DPSPGUID_IPX,0x685bc400,0x9d2c,0x11cf,0xa9,0xcd,0x0,0xaa,0x0,0x68,0x86,0xe3); -DEFINE_GUID(DPSPGUID_TCPIP,0x36E95EE0,0x8577,0x11cf,0x96,0xc,0x0,0x80,0xc7,0x53,0x4e,0x82); -DEFINE_GUID(DPSPGUID_SERIAL,0xf1d6860,0x88d9,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(DPSPGUID_MODEM,0x44eaa760,0xcb68,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(IID_IDirectPlay,0x5454e9a0,0xdb65,0x11ce,0x92,0x1c,0x00,0xaa,0x00,0x6c,0x49,0x72); - -///////////////////////////////////////////////////////////////////// -// File DPLOBBY.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(IID_IDirectPlayLobby,0xaf465c71,0x9588,0x11cf,0xa0,0x20,0x0,0xaa,0x0,0x61,0x57,0xac); -DEFINE_GUID(IID_IDirectPlayLobbyA,0x26c66a70,0xb367,0x11cf,0xa0,0x24,0x0,0xaa,0x0,0x61,0x57,0xac); -DEFINE_GUID(IID_IDirectPlayLobby2,0x194c220,0xa303,0x11d0,0x9c,0x4f,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(IID_IDirectPlayLobby2A,0x1bb4af80,0xa303,0x11d0,0x9c,0x4f,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(IID_IDirectPlayLobby3,0x2db72490,0x652c,0x11d1,0xa7,0xa8,0x0,0x0,0xf8,0x3,0xab,0xfc); -DEFINE_GUID(IID_IDirectPlayLobby3A,0x2db72491,0x652c,0x11d1,0xa7,0xa8,0x0,0x0,0xf8,0x3,0xab,0xfc); -DEFINE_GUID(CLSID_DirectPlayLobby,0x2fe8f810,0xb2a5,0x11d0,0xa7,0x87,0x0,0x0,0xf8,0x3,0xab,0xfc); -DEFINE_GUID(DPLPROPERTY_MessagesSupported,0x762ccda1,0xd916,0x11d0,0xba,0x39,0x0,0xc0,0x4f,0xd7,0xed,0x67); -DEFINE_GUID(DPLPROPERTY_LobbyGuid,0xf56920a0,0xd218,0x11d0,0xba,0x39,0x0,0xc0,0x4f,0xd7,0xed,0x67); -DEFINE_GUID(DPLPROPERTY_PlayerGuid,0xb4319322,0xd20d,0x11d0,0xba,0x39,0x0,0xc0,0x4f,0xd7,0xed,0x67); -DEFINE_GUID(DPLPROPERTY_PlayerScore,0x48784000,0xd219,0x11d0,0xba,0x39,0x0,0xc0,0x4f,0xd7,0xed,0x67); -DEFINE_GUID(DPAID_TotalSize,0x1318f560,0x912c,0x11d0,0x9d,0xaa,0x0,0xa0,0xc9,0xa,0x43,0xcb); -DEFINE_GUID(DPAID_ServiceProvider,0x7d916c0,0xe0af,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(DPAID_LobbyProvider,0x59b95640,0x9667,0x11d0,0xa7,0x7d,0x0,0x0,0xf8,0x3,0xab,0xfc); -DEFINE_GUID(DPAID_Phone,0x78ec89a0,0xe0af,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(DPAID_PhoneW,0xba5a7a70,0x9dbf,0x11d0,0x9c,0xc1,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(DPAID_Modem,0xf6dcc200,0xa2fe,0x11d0,0x9c,0x4f,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(DPAID_ModemW,0x1fd92e0,0xa2ff,0x11d0,0x9c,0x4f,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(DPAID_INet,0xc4a54da0,0xe0af,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(DPAID_INetW,0xe63232a0,0x9dbf,0x11d0,0x9c,0xc1,0x0,0xa0,0xc9,0x5,0x42,0x5e); -DEFINE_GUID(DPAID_INetPort,0xe4524541,0x8ea5,0x11d1,0x8a,0x96,0x0,0x60,0x97,0xb0,0x14,0x11); -DEFINE_GUID(DPAID_ComPort,0xf2f0ce00,0xe0af,0x11cf,0x9c,0x4e,0x0,0xa0,0xc9,0x5,0x42,0x5e); - -///////////////////////////////////////////////////////////////////// -// File DSOUND.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(CLSID_DirectSound,0x47d4d946,0x62e8,0x11cf,0x93,0xbc,0x44,0x45,0x53,0x54,0x0,0x0); -DEFINE_GUID(CLSID_DirectSoundCapture,0xb0210780,0x89cd,0x11d0,0xaf,0x8,0x0,0xa0,0xc9,0x25,0xcd,0x16); -DEFINE_GUID(IID_IDirectSound,0x279AFA83,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); -DEFINE_GUID(IID_IDirectSoundBuffer,0x279AFA85,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); -DEFINE_GUID(IID_IDirectSound3DListener,0x279AFA84,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); -DEFINE_GUID(IID_IDirectSound3DBuffer,0x279AFA86,0x4981,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); -DEFINE_GUID(IID_IDirectSoundCapture,0xb0210781,0x89cd,0x11d0,0xaf,0x8,0x0,0xa0,0xc9,0x25,0xcd,0x16); -DEFINE_GUID(IID_IDirectSoundCaptureBuffer,0xb0210782,0x89cd,0x11d0,0xaf,0x8,0x0,0xa0,0xc9,0x25,0xcd,0x16); -DEFINE_GUID(IID_IDirectSoundNotify,0xb0210783,0x89cd,0x11d0,0xaf,0x8,0x0,0xa0,0xc9,0x25,0xcd,0x16); -DEFINE_GUID(IID_IKsPropertySet,0x31efac30,0x515c,0x11d0,0xa9,0xaa,0x00,0xaa,0x00,0x61,0xbe,0x93); - -///////////////////////////////////////////////////////////////////// -// File DVP.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(IID_IDDVideoPortContainer,0x6C142760,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60); -DEFINE_GUID(IID_IDirectDrawVideoPort,0xB36D93E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56); -DEFINE_GUID(DDVPTYPE_E_HREFH_VREFH,0x54F39980L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); -DEFINE_GUID(DDVPTYPE_E_HREFH_VREFL,0x92783220L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); -DEFINE_GUID(DDVPTYPE_E_HREFL_VREFH,0xA07A02E0L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); -DEFINE_GUID(DDVPTYPE_E_HREFL_VREFL,0xE09C77E0L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); -DEFINE_GUID(DDVPTYPE_CCIR656,0xFCA326A0L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); -DEFINE_GUID(DDVPTYPE_BROOKTREE,0x1352A560L,0xDA61,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); -DEFINE_GUID(DDVPTYPE_PHILIPS,0x332CF160L,0xDA61,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8); - -///////////////////////////////////////////////////////////////////// -// File DXFILE.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(CLSID_CDirectXFile,0x4516ec43,0x8f20,0x11d0,0x9b,0x6d,0x00,0x00,0xc0,0x78,0x1b,0xc3); -DEFINE_GUID(IID_IDirectXFile,0x3d82ab40,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(IID_IDirectXFileEnumObject,0x3d82ab41,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(IID_IDirectXFileSaveObject,0x3d82ab42,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(IID_IDirectXFileObject,0x3d82ab43,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(IID_IDirectXFileData,0x3d82ab44,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(IID_IDirectXFileDataReference,0x3d82ab45,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(IID_IDirectXFileBinary,0x3d82ab46,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_DXFILEHeader,0x3d82ab43,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); - -///////////////////////////////////////////////////////////////////// -// File RMXFGUID.H: -///////////////////////////////////////////////////////////////////// - -DEFINE_GUID(TID_D3DRMInfo,0x2b957100,0x9e9a,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMMesh,0x3d82ab44,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMVector,0x3d82ab5e,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMMeshFace,0x3d82ab5f,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMMaterial,0x3d82ab4d,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMMaterialArray,0x35ff44e1,0x6c7c,0x11cf,0x8F,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMFrame,0x3d82ab46,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMFrameTransformMatrix,0xf6f23f41,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMMeshMaterialList,0xf6f23f42,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMMeshTextureCoords,0xf6f23f40,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMMeshNormals,0xf6f23f43,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMCoords2d,0xf6f23f44,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMMatrix4x4,0xf6f23f45,0x7686,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMAnimation,0x3d82ab4f,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMAnimationSet,0x3d82ab50,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMAnimationKey,0x10dd46a8,0x775b,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xA3); -DEFINE_GUID(TID_D3DRMFloatKeys,0x10dd46a9,0x775b,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xA3); -DEFINE_GUID(TID_D3DRMMaterialAmbientColor,0x01411840,0x7786,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xA3); -DEFINE_GUID(TID_D3DRMMaterialDiffuseColor,0x01411841,0x7786,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xA3); -DEFINE_GUID(TID_D3DRMMaterialSpecularColor,0x01411842,0x7786,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xA3); -DEFINE_GUID(TID_D3DRMMaterialEmissiveColor,0xd3e16e80,0x7835,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMMaterialPower,0x01411843,0x7786,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xA3); -DEFINE_GUID(TID_D3DRMColorRGBA,0x35ff44e0,0x6c7c,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xA3); -DEFINE_GUID(TID_D3DRMColorRGB,0xd3e16e81,0x7835,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMGuid,0xa42790e0,0x7810,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMTextureFilename,0xa42790e1,0x7810,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMTextureReference,0xa42790e2,0x7810,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMIndexedColor,0x1630b820,0x7842,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMMeshVertexColors,0x1630b821,0x7842,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMMaterialWrap,0x4885ae60,0x78e8,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMBoolean,0x537da6a0,0xca37,0x11d0,0x94,0x1c,0x0,0x80,0xc8,0xc,0xfa,0x7b); -DEFINE_GUID(TID_D3DRMMeshFaceWraps,0xed1ec5c0,0xc0a8,0x11d0,0x94,0x1c,0x0,0x80,0xc8,0xc,0xfa,0x7b); -DEFINE_GUID(TID_D3DRMBoolean2d,0x4885ae63,0x78e8,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMTimedFloatKeys,0xf406b180,0x7b3b,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMAnimationOptions,0xe2bf56c0,0x840f,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMFramePosition,0xe2bf56c1,0x840f,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMFrameVelocity,0xe2bf56c2,0x840f,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMFrameRotation,0xe2bf56c3,0x840f,0x11cf,0x8f,0x52,0x0,0x40,0x33,0x35,0x94,0xa3); -DEFINE_GUID(TID_D3DRMLight,0x3d82ab4a,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMCamera,0x3d82ab51,0x62da,0x11cf,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMAppData,0xe5745280,0xb24f,0x11cf,0x9d,0xd5,0x0,0xaa,0x0,0xa7,0x1a,0x2f); -DEFINE_GUID(TID_D3DRMLightUmbra,0xaed22740,0xb31f,0x11cf,0x9d,0xd5,0x0,0xaa,0x0,0xa7,0x1a,0x2f); -DEFINE_GUID(TID_D3DRMLightRange,0xaed22742,0xb31f,0x11cf,0x9d,0xd5,0x0,0xaa,0x0,0xa7,0x1a,0x2f); -DEFINE_GUID(TID_D3DRMLightPenumbra,0xaed22741,0xb31f,0x11cf,0x9d,0xd5,0x0,0xaa,0x0,0xa7,0x1a,0x2f); -DEFINE_GUID(TID_D3DRMLightAttenuation,0xa8a98ba0,0xc5e5,0x11cf,0xb9,0x41,0x0,0x80,0xc8,0xc,0xfa,0x7b); -DEFINE_GUID(TID_D3DRMInlineData,0x3a23eea0,0x94b1,0x11d0,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMUrl,0x3a23eea1,0x94b1,0x11d0,0xab,0x39,0x0,0x20,0xaf,0x71,0xe4,0x33); -DEFINE_GUID(TID_D3DRMProgressiveMesh,0x8A63C360,0x997D,0x11d0,0x94,0x1C,0x0,0x80,0xC8,0x0C,0xFA,0x7B); -DEFINE_GUID(TID_D3DRMExternalVisual,0x98116AA0,0xBDBA,0x11d1,0x82,0xC0,0x00,0xA0,0xC9,0x69,0x72,0x71); -DEFINE_GUID(TID_D3DRMStringProperty,0x7f0f21e0,0xbfe1,0x11d1,0x82,0xc0,0x0,0xa0,0xc9,0x69,0x72,0x71); -DEFINE_GUID(TID_D3DRMPropertyBag,0x7f0f21e1,0xbfe1,0x11d1,0x82,0xc0,0x0,0xa0,0xc9,0x69,0x72,0x71); -DEFINE_GUID(TID_D3DRMRightHanded,0x7f5d5ea0,0xd53a,0x11d1,0x82,0xc0,0x0,0xa0,0xc9,0x69,0x72,0x71); diff --git a/winsup/w32api/lib/gdi32.def b/winsup/w32api/lib/gdi32.def deleted file mode 100644 index d3b3d9c35..000000000 --- a/winsup/w32api/lib/gdi32.def +++ /dev/null @@ -1,334 +0,0 @@ -LIBRARY GDI32.dll -EXPORTS -AbortDoc@4 -AbortPath@4 -AddFontResourceA@4 -AddFontResourceW@4 -AngleArc@24 -AnimatePalette@16 -Arc@36 -ArcTo@36 -BeginPath@4 -BitBlt@36 -CancelDC@4 -CheckColorsInGamut@16 -ChoosePixelFormat@8 -Chord@36 -CloseEnhMetaFile@4 -CloseFigure@4 -CloseMetaFile@4 -ColorMatchToTarget@12 -CombineRgn@16 -CombineTransform@12 -CopyEnhMetaFileA@8 -CopyEnhMetaFileW@8 -CopyMetaFileA@8 -CopyMetaFileW@8 -CreateBitmap@20 -CreateBitmapIndirect@4 -CreateBrushIndirect@4 -CreateColorSpaceA@4 -CreateColorSpaceW@4 -CreateCompatibleBitmap@12 -CreateCompatibleDC@4 -CreateDCA@16 -CreateDCW@16 -CreateDIBPatternBrush@8 -CreateDIBPatternBrushPt@8 -CreateDIBSection@24 -CreateDIBitmap@24 -CreateDiscardableBitmap@12 -CreateEllipticRgn@16 -CreateEllipticRgnIndirect@4 -CreateEnhMetaFileA@16 -CreateEnhMetaFileW@16 -CreateFontA@56 -CreateFontIndirectA@4 -CreateFontIndirectW@4 -CreateFontW@56 -CreateHalftonePalette@4 -CreateHatchBrush@8 -CreateICA@16 -CreateICW@16 -CreateMetaFileA@4 -CreateMetaFileW@4 -CreatePalette@4 -CreatePatternBrush@4 -CreatePen@12 -CreatePenIndirect@4 -CreatePolyPolygonRgn@16 -CreatePolygonRgn@12 -CreateRectRgn@16 -CreateRectRgnIndirect@4 -CreateRoundRectRgn@24 -CreateScalableFontResourceA@16 -CreateScalableFontResourceW@16 -CreateSolidBrush@4 -DPtoLP@12 -DeleteColorSpace@4 -DeleteDC@4 -DeleteEnhMetaFile@4 -DeleteMetaFile@4 -DeleteObject@4 -DescribePixelFormat@16 -DeviceCapabilitiesEx@24 -DeviceCapabilitiesExA@24 -DeviceCapabilitiesExW@24 -DrawEscape@16 -Ellipse@20 -EndDoc@4 -EndPage@4 -EndPath@4 -EnumEnhMetaFile@20 -EnumFontFamiliesA@16 -EnumFontFamiliesExA@20 -EnumFontFamiliesExW@20 -EnumFontFamiliesW@16 -EnumFontsA@16 -EnumFontsW@16 -EnumICMProfilesA@12 -EnumICMProfilesW@12 -EnumMetaFile@16 -EnumObjects@16 -EqualRgn@8 -Escape@20 -ExcludeClipRect@20 -ExtCreatePen@20 -ExtCreateRegion@12 -ExtEscape@24 -ExtFloodFill@20 -ExtSelectClipRgn@12 -ExtTextOutA@32 -ExtTextOutW@32 -FillPath@4 -FillRgn@12 -FixBrushOrgEx@16 -FlattenPath@4 -FloodFill@16 -FrameRgn@20 -GdiComment@12 -GdiFlush@0 -GdiGetBatchLimit@0 -GdiPlayDCScript@24 -GdiPlayJournal@20 -GdiPlayScript@28 -GdiSetBatchLimit@4 -GetArcDirection@4 -GetAspectRatioFilterEx@8 -GetBitmapBits@12 -GetBitmapDimensionEx@8 -GetBkColor@4 -GetBkMode@4 -GetBoundsRect@12 -GetBrushOrgEx@8 -GetCharABCWidthsA@16 -GetCharABCWidthsFloatA@16 -GetCharABCWidthsFloatW@16 -GetCharABCWidthsW@16 -GetCharWidth32A@16 -GetCharWidth32W@16 -GetCharWidthA@16 -GetCharWidthFloatA@16 -GetCharWidthFloatW@16 -GetCharWidthW@16 -GetCharacterPlacementA@24 -GetCharacterPlacementW@24 -GetClipBox@8 -GetClipRgn@8 -GetColorAdjustment@8 -GetColorSpace@4 -GetCurrentObject@8 -GetCurrentPositionEx@8 -GetDCOrgEx@8 -GetDIBColorTable@16 -GetDIBits@28 -GetDeviceCaps@8 -GetDeviceGammaRamp@8 -GetEnhMetaFileA@4 -GetEnhMetaFileBits@12 -GetEnhMetaFileDescriptionA@12 -GetEnhMetaFileDescriptionW@12 -GetEnhMetaFileHeader@12 -GetEnhMetaFilePaletteEntries@12 -GetEnhMetaFilePixelFormat@12 -GetEnhMetaFileW@4 -GetFontData@20 -GetFontLanguageInfo@4 -GetFontResourceInfo@16 -GetFontResourceInfoW@16 -GetGlyphOutline@28 -GetGlyphOutlineA@28 -GetGlyphOutlineW@28 -GetGlyphOutlineWow@28 -GetGraphicsMode@4 -GetICMProfileA@12 -GetICMProfileW@12 -GetKerningPairs@12 -GetKerningPairsA@12 -GetKerningPairsW@12 -GetLogColorSpaceA@12 -GetLogColorSpaceW@12 -GetMapMode@4 -GetMetaFileA@4 -GetMetaFileBitsEx@12 -GetMetaFileW@4 -GetMetaRgn@8 -GetMiterLimit@8 -GetNearestColor@8 -GetNearestPaletteIndex@8 -GetObjectA@12 -GetObjectType@4 -GetObjectW@12 -GetOutlineTextMetricsA@12 -GetOutlineTextMetricsW@12 -GetPaletteEntries@16 -GetPath@16 -GetPixel@12 -GetPixelFormat@4 -GetPolyFillMode@4 -GetROP2@4 -GetRandomRgn@12 -GetRasterizerCaps@8 -GetRegionData@12 -GetRelAbs@8 -GetRgnBox@8 -GetStockObject@4 -GetStretchBltMode@4 -GetSystemPaletteEntries@16 -GetSystemPaletteUse@4 -GetTextAlign@4 -GetTextCharacterExtra@4 -GetTextCharset@4 -GetTextCharsetInfo@12 -GetTextColor@4 -GetTextExtentExPointA@28 -GetTextExtentExPointW@28 -GetTextExtentPoint32A@16 -GetTextExtentPoint32W@16 -GetTextExtentPointA@16 -GetTextExtentPointW@16 -GetTextFaceA@12 -GetTextFaceW@12 -GetTextMetricsA@8 -GetTextMetricsW@8 -GetViewportExtEx@8 -GetViewportOrgEx@8 -GetWinMetaFileBits@20 -GetWindowExtEx@8 -GetWindowOrgEx@8 -GetWorldTransform@8 -IntersectClipRect@20 -InvertRgn@8 -LPtoDP@12 -LineDDA@24 -LineTo@12 -MaskBlt@48 -ModifyWorldTransform@12 -MoveToEx@16 -OffsetClipRgn@12 -OffsetRgn@12 -OffsetViewportOrgEx@16 -OffsetWindowOrgEx@16 -PaintRgn@8 -PatBlt@24 -PathToRegion@4 -Pie@36 -PlayEnhMetaFile@12 -PlayEnhMetaFileRecord@16 -PlayMetaFile@8 -PlayMetaFileRecord@16 -PlgBlt@40 -PolyBezier@12 -PolyBezierTo@12 -PolyDraw@16 -PolyPolygon@16 -PolyPolyline@16 -PolyTextOutA@12 -PolyTextOutW@12 -Polygon@12 -Polyline@12 -PolylineTo@12 -PtInRegion@12 -PtVisible@12 -RealizePalette@4 -RectInRegion@8 -RectVisible@8 -Rectangle@20 -RemoveFontResourceA@4 -RemoveFontResourceW@4 -ResetDCA@8 -ResetDCW@8 -ResizePalette@8 -RestoreDC@8 -RoundRect@28 -SaveDC@4 -ScaleViewportExtEx@24 -ScaleWindowExtEx@24 -SelectBrushLocal@8 -SelectClipPath@8 -SelectClipRgn@8 -SelectFontLocal@8 -SelectObject@8 -SelectPalette@12 -SetAbortProc@8 -SetArcDirection@8 -SetBitmapBits@12 -SetBitmapDimensionEx@16 -SetBkColor@8 -SetBkMode@8 -SetBoundsRect@12 -SetBrushOrgEx@16 -SetColorAdjustment@8 -SetColorSpace@8 -SetDIBColorTable@16 -SetDIBits@28 -SetDIBitsToDevice@48 -SetDeviceGammaRamp@8 -SetEnhMetaFileBits@8 -SetFontEnumeration@4 -SetGraphicsMode@8 -SetICMMode@8 -SetICMProfileA@8 -SetICMProfileW@8 -SetMapMode@8 -SetMapperFlags@8 -SetMetaFileBitsEx@8 -SetMetaRgn@4 -SetMiterLimit@12 -SetPaletteEntries@16 -SetPixel@16 -SetPixelFormat@12 -SetPixelV@16 -SetPolyFillMode@8 -SetROP2@8 -SetRectRgn@20 -SetRelAbs@8 -SetStretchBltMode@8 -SetSystemPaletteUse@8 -SetTextAlign@8 -SetTextCharacterExtra@8 -SetTextColor@8 -SetTextJustification@12 -SetViewportExtEx@16 -SetViewportOrgEx@16 -SetWinMetaFileBits@16 -SetWindowExtEx@16 -SetWindowOrgEx@16 -SetWorldTransform@8 -StartDocA@8 -StartDocW@8 -StartPage@4 -StretchBlt@44 -StretchDIBits@52 -StrokeAndFillPath@4 -StrokePath@4 -SwapBuffers@4 -TextOutA@20 -TextOutW@20 -TranslateCharsetInfo@12 -UnrealizeObject@4 -UpdateColors@4 -UpdateICMRegKeyA@16 -UpdateICMRegKeyW@16 -WidenPath@4 -gdiPlaySpoolStream@24 diff --git a/winsup/w32api/lib/glaux.def b/winsup/w32api/lib/glaux.def deleted file mode 100644 index 87f72371e..000000000 --- a/winsup/w32api/lib/glaux.def +++ /dev/null @@ -1,173 +0,0 @@ -LIBRARY GLAUX.DLL -EXPORTS -AllocateMemory@4 -AllocateZeroedMemory@4 -CleanUp@0 -ComponentFromIndex@12 -CreateCIPalette@4 -CreateRGBPalette@4 -DelayPaletteRealization@0 -DestroyThisWindow@4 -FillRgbPaletteEntries@12 -FindBestPixelFormat@12 -FindExactPixelFormat@12 -FindPixelFormat@8 -FlushPalette@8 -ForceRedraw@4 -FreeMemory@4 -GetRegistrySysColors@8 -GrabStaticEntries@4 -IsPixelFormatValid@12 -PixelFormatDescriptorFromDc@8 -PrintMessage -RealizePaletteNow@12 -ReleaseStaticEntries@4 -UpdateStaticMapping@4 -tkCloseWindow@0 -tkDisplayFunc@4 -tkErrorPopups@4 -tkExec@0 -tkExposeFunc@4 -tkGetColorMapSize@0 -tkGetDisplayMode@0 -tkGetDisplayModeID@0 -tkGetDisplayModePolicy@0 -tkGetHDC@0 -tkGetHRC@0 -tkGetHWND@0 -tkGetMouseLoc@8 -tkIdleFunc@4 -tkInitDisplayMode@4 -tkInitDisplayModeID@4 -tkInitDisplayModePolicy@4 -tkInitPosition@16 -tkInitWindow@4 -tkInitWindowAW@8 -tkKeyDownFunc@4 -tkMouseDownFunc@4 -tkMouseMoveFunc@4 -tkMouseUpFunc@4 -tkQuit@0 -tkReshapeFunc@4 -tkSetFogRamp@8 -tkSetGreyRamp@0 -tkSetOneColor@16 -tkSetRGBMap@8 -tkSwapBuffers@0 -tkWndProc@16 -RawImageClose@4 -RawImageGetData@8 -RawImageGetRow@16 -RawImageOpenAW@8 -tkRGBImageLoad@4 -tkRGBImageLoadAW@8 -tkCreateBitmapFont@4 -tkCreateFilledFont@4 -tkCreateOutlineFont@4 -tkCreateStrokeFont@4 -tkDrawStr@8 -DibNumColors@4 -tkDIBImageLoad@4 -tkDIBImageLoadAW@8 -m_popmatrix@0 -m_pushmatrix@0 -m_scale@24 -m_translate@24 -m_xformpt@16 -m_xformptonly@8 -add3@12 -copy3@8 -copymat3@8 -crossprod@12 -diff3@12 -dist3@8 -dot3@8 -error@4 -identifymat3@4 -length3@4 -normalize@4 -perpnorm@16 -samepoint@8 -scalarmult@16 -seterrorfunc@4 -xformvec3@12 -auxSolidTeapot@8 -auxWireTeapot@8 -solidTeapot@12 -wireTeapot@12 -auxSolidBox@24 -auxSolidCone@16 -auxSolidCube@8 -auxSolidCylinder@16 -auxSolidDodecahedron@8 -auxSolidIcosahedron@8 -auxSolidOctahedron@8 -auxSolidSphere@8 -auxSolidTetrahedron@8 -auxSolidTorus@16 -auxWireBox@24 -auxWireCone@16 -auxWireCube@8 -auxWireCylinder@16 -auxWireDodecahedron@8 -auxWireIcosahedron@8 -auxWireOctahedron@8 -auxWireSphere@8 -auxWireTetrahedron@8 -auxWireTorus@16 -compareParams@12 -dodecahedron@16 -doughnut@28 -drawbox@52 -drawtriangle@32 -findList@12 -icosahedron@16 -initdodec@0 -makeModelPtr@12 -octahedron@16 -pentagon@24 -recorditem@32 -subdivide@36 -tetrahedron@16 -auxDIBImageLoadA@4 -auxDIBImageLoadW@4 -auxRGBImageLoadA@4 -auxRGBImageLoadW@4 -auxCreateFont@0 -auxDrawStrA@4 -auxDrawStrAW@8 -auxDrawStrW@4 -DefaultHandleExpose@8 -DefaultHandleReshape@8 -KeyDown@8 -MouseDown@12 -MouseLoc@12 -MouseUp@12 -auxCloseWindow@0 -auxExposeFunc@4 -auxGetColorMapSize@0 -auxGetDisplayMode@0 -auxGetDisplayModeID@0 -auxGetDisplayModePolicy@0 -auxGetHDC@0 -auxGetHGLRC@0 -auxGetHWND@0 -auxGetMouseLoc@8 -auxIdleFunc@4 -auxInitDisplayMode@4 -auxInitDisplayModeID@4 -auxInitDisplayModePolicy@4 -auxInitPosition@16 -auxInitWindowA@4 -auxInitWindowAW@8 -auxInitWindowW@4 -auxKeyFunc@8 -auxMainLoop@4 -auxMouseFunc@12 -auxQuit@0 -auxReshapeFunc@4 -auxSetFogRamp@8 -auxSetGreyRamp@0 -auxSetOneColor@16 -auxSetRGBMap@8 -auxSwapBuffers@0 diff --git a/winsup/w32api/lib/glu32.def b/winsup/w32api/lib/glu32.def deleted file mode 100644 index d0f091fd1..000000000 --- a/winsup/w32api/lib/glu32.def +++ /dev/null @@ -1,54 +0,0 @@ -LIBRARY GLU32.DLL -EXPORTS -gluBeginCurve@4 -gluBeginPolygon@4 -gluBeginSurface@4 -gluBeginTrim@4 -gluBuild1DMipmaps@24 -gluBuild2DMipmaps@28 -gluCylinder@36 -gluDeleteNurbsRenderer@4 -gluDeleteQuadric@4 -gluDeleteTess@4 -gluDisk@28 -gluEndCurve@4 -gluEndPolygon@4 -gluEndSurface@4 -gluEndTrim@4 -gluErrorString@4 -gluErrorUnicodeStringEXT@4 -gluGetNurbsProperty@12 -gluGetString@4 -gluGetTessProperty@12 -gluLoadSamplingMatrices@16 -gluLookAt@72 -gluNewNurbsRenderer@0 -gluNewQuadric@0 -gluNewTess@0 -gluNextContour@8 -gluNurbsCallback@12 -gluNurbsCurve@28 -gluNurbsProperty@12 -gluNurbsSurface@44 -gluOrtho2D@32 -gluPartialDisk@44 -gluPerspective@32 -gluPickMatrix@36 -gluProject@48 -gluPwlCurve@20 -gluQuadricCallback@12 -gluQuadricDrawStyle@8 -gluQuadricNormals@8 -gluQuadricOrientation@8 -gluQuadricTexture@8 -gluScaleImage@36 -gluSphere@20 -gluTessBeginContour@4 -gluTessBeginPolygon@8 -gluTessCallback@12 -gluTessEndContour@4 -gluTessEndPolygon@4 -gluTessNormal@28 -gluTessProperty@16 -gluTessVertex@12 -gluUnProject@48 diff --git a/winsup/w32api/lib/glut.def b/winsup/w32api/lib/glut.def deleted file mode 100644 index 369ca5d14..000000000 --- a/winsup/w32api/lib/glut.def +++ /dev/null @@ -1,116 +0,0 @@ -LIBRARY glut.dll -EXPORTS -glutAddMenuEntry@8 -glutAddSubMenu@8 -glutAttachMenu@4 -glutBitmapCharacter@8 -glutBitmapLength@8 -glutBitmapWidth@8 -glutButtonBoxFunc@4 -glutChangeToMenuEntry@12 -glutChangeToSubMenu@12 -glutCopyColormap@4 -glutCreateMenu@4 -glutCreateSubWindow@20 -glutCreateWindow@4 -glutDestroyMenu@4 -glutDestroyWindow@4 -glutDetachMenu@4 -glutDeviceGet@4 -glutDialsFunc@4 -glutDisplayFunc@4 -glutEnterGameMode@0 -glutEntryFunc@4 -glutEstablishOverlay@0 -glutExtensionSupported@4 -glutForceJoystickFunc@0 -glutFullScreen@0 -glutGameModeGet@4 -glutGameModeString@4 -glutGet@4 -glutGetColor@8 -glutGetMenu@0 -glutGetModifiers@0 -glutGetWindow@0 -glutHideOverlay@0 -glutHideWindow@0 -glutIconifyWindow@0 -glutIdleFunc@4 -glutIgnoreKeyRepeat@4 -glutInit@8 -glutInitDisplayMode@4 -glutInitDisplayString@4 -glutInitWindowPosition@8 -glutInitWindowSize@8 -glutJoystickFunc@8 -glutKeyboardFunc@4 -glutKeyboardUpFunc@4 -glutLayerGet@4 -glutLeaveGameMode@0 -glutMainLoop@0 -glutMenuStateFunc@4 -glutMenuStatusFunc@4 -glutMotionFunc@4 -glutMouseFunc@4 -glutOverlayDisplayFunc@4 -glutPassiveMotionFunc@4 -glutPopWindow@0 -glutPositionWindow@8 -glutPostOverlayRedisplay@0 -glutPostRedisplay@0 -glutPostWindowOverlayRedisplay@4 -glutPostWindowRedisplay@4 -glutPushWindow@0 -glutRemoveMenuItem@4 -glutRemoveOverlay@0 -glutReportErrors@0 -glutReshapeFunc@4 -glutReshapeWindow@8 -glutSetColor@16 -glutSetCursor@4 -glutSetIconTitle@4 -glutSetKeyRepeat@4 -glutSetMenu@4 -glutSetWindow@4 -glutSetWindowTitle@4 -glutSetupVideoResizing@0 -glutShowOverlay@0 -glutShowWindow@0 -glutSolidCone@24 -glutSolidCube@8 -glutSolidDodecahedron@0 -glutSolidIcosahedron@0 -glutSolidOctahedron@0 -glutSolidSphere@16 -glutSolidTeapot@8 -glutSolidTetrahedron@0 -glutSolidTorus@24 -glutSpaceballButtonFunc@4 -glutSpaceballMotionFunc@4 -glutSpaceballRotateFunc@4 -glutSpecialFunc@4 -glutSpecialUpFunc@4 -glutStopVideoResizing@0 -glutStrokeCharacter@8 -glutStrokeLength@8 -glutStrokeWidth@8 -glutSwapBuffers@0 -glutTabletButtonFunc@4 -glutTabletMotionFunc@4 -glutTimerFunc@12 -glutUseLayer@4 -glutVideoPan@16 -glutVideoResize@16 -glutVideoResizeGet@4 -glutVisibilityFunc@4 -glutWarpPointer@8 -glutWindowStatusFunc@4 -glutWireCone@24 -glutWireCube@8 -glutWireDodecahedron@0 -glutWireIcosahedron@0 -glutWireOctahedron@0 -glutWireSphere@16 -glutWireTeapot@8 -glutWireTetrahedron@0 -glutWireTorus@24 diff --git a/winsup/w32api/lib/glut32.def b/winsup/w32api/lib/glut32.def deleted file mode 100644 index 427e32bc3..000000000 --- a/winsup/w32api/lib/glut32.def +++ /dev/null @@ -1,116 +0,0 @@ -LIBRARY glut32.dll -EXPORTS -glutAddMenuEntry@8 -glutAddSubMenu@8 -glutAttachMenu@4 -glutBitmapCharacter@8 -glutBitmapLength@8 -glutBitmapWidth@8 -glutButtonBoxFunc@4 -glutChangeToMenuEntry@12 -glutChangeToSubMenu@12 -glutCopyColormap@4 -glutCreateMenu@4 -glutCreateSubWindow@20 -glutCreateWindow@4 -glutDestroyMenu@4 -glutDestroyWindow@4 -glutDetachMenu@4 -glutDeviceGet@4 -glutDialsFunc@4 -glutDisplayFunc@4 -glutEnterGameMode@0 -glutEntryFunc@4 -glutEstablishOverlay@0 -glutExtensionSupported@4 -glutForceJoystickFunc@0 -glutFullScreen@0 -glutGameModeGet@4 -glutGameModeString@4 -glutGet@4 -glutGetColor@8 -glutGetMenu@0 -glutGetModifiers@0 -glutGetWindow@0 -glutHideOverlay@0 -glutHideWindow@0 -glutIconifyWindow@0 -glutIdleFunc@4 -glutIgnoreKeyRepeat@4 -glutInit@8 -glutInitDisplayMode@4 -glutInitDisplayString@4 -glutInitWindowPosition@8 -glutInitWindowSize@8 -glutJoystickFunc@8 -glutKeyboardFunc@4 -glutKeyboardUpFunc@4 -glutLayerGet@4 -glutLeaveGameMode@0 -glutMainLoop@0 -glutMenuStateFunc@4 -glutMenuStatusFunc@4 -glutMotionFunc@4 -glutMouseFunc@4 -glutOverlayDisplayFunc@4 -glutPassiveMotionFunc@4 -glutPopWindow@0 -glutPositionWindow@8 -glutPostOverlayRedisplay@0 -glutPostRedisplay@0 -glutPostWindowOverlayRedisplay@4 -glutPostWindowRedisplay@4 -glutPushWindow@0 -glutRemoveMenuItem@4 -glutRemoveOverlay@0 -glutReportErrors@0 -glutReshapeFunc@4 -glutReshapeWindow@8 -glutSetColor@16 -glutSetCursor@4 -glutSetIconTitle@4 -glutSetKeyRepeat@4 -glutSetMenu@4 -glutSetWindow@4 -glutSetWindowTitle@4 -glutSetupVideoResizing@0 -glutShowOverlay@0 -glutShowWindow@0 -glutSolidCone@24 -glutSolidCube@8 -glutSolidDodecahedron@0 -glutSolidIcosahedron@0 -glutSolidOctahedron@0 -glutSolidSphere@16 -glutSolidTeapot@8 -glutSolidTetrahedron@0 -glutSolidTorus@24 -glutSpaceballButtonFunc@4 -glutSpaceballMotionFunc@4 -glutSpaceballRotateFunc@4 -glutSpecialFunc@4 -glutSpecialUpFunc@4 -glutStopVideoResizing@0 -glutStrokeCharacter@8 -glutStrokeLength@8 -glutStrokeWidth@8 -glutSwapBuffers@0 -glutTabletButtonFunc@4 -glutTabletMotionFunc@4 -glutTimerFunc@12 -glutUseLayer@4 -glutVideoPan@16 -glutVideoResize@16 -glutVideoResizeGet@4 -glutVisibilityFunc@4 -glutWarpPointer@8 -glutWindowStatusFunc@4 -glutWireCone@24 -glutWireCube@8 -glutWireDodecahedron@0 -glutWireIcosahedron@0 -glutWireOctahedron@0 -glutWireSphere@16 -glutWireTeapot@8 -glutWireTetrahedron@0 -glutWireTorus@24 diff --git a/winsup/w32api/lib/imagehlp.def b/winsup/w32api/lib/imagehlp.def deleted file mode 100644 index 411a360bd..000000000 --- a/winsup/w32api/lib/imagehlp.def +++ /dev/null @@ -1,114 +0,0 @@ -LIBRARY IMAGEHLP.DLL -EXPORTS -BindImage@12 -BindImageEx@20 -CheckSumMappedFile@16 -CopyPdb@12 -EnumerateLoadedModules32@12 -EnumerateLoadedModules64@12 -EnumerateLoadedModules@12 -FindDebugInfoFile@12 -FindDebugInfoFileEx@20 -FindExecutableImage@12 -GetImageConfigInformation@8 -GetImageUnusedHeaderBytes@8 -GetTimestampForLoadedLibrary@4 -ImageAddCertificate@12 -ImageDirectoryEntryToData@16 -ImageDirectoryEntryToDataEx@20 -ImageEnumerateCertificates@20 -ImageGetCertificateData@16 -ImageGetCertificateHeader@12 -ImageGetDigestStream@16 -ImageLoad@8 -ImageNtHeader@4 -ImageRemoveCertificate@8 -ImageRvaToSection@12 -ImageRvaToVa@16 -ImageUnload@4 -ImagehlpApiVersion@0 -ImagehlpApiVersionEx@4 -MakeSureDirectoryPathExists@4 -MapAndLoad@20 -MapDebugInformation32@16 -MapDebugInformation64@20 -MapDebugInformation@16 -MapFileAndCheckSumA@12 -MapFileAndCheckSumW@12 -MarkImageAsRunFromSwap@8 -ReBaseImage@44 -RemovePrivateCvSymbolic@12 -RemovePrivateCvSymbolicEx@16 -RemoveRelocations@4 -SearchTreeForFile@12 -SetImageConfigInformation@8 -SplitSymbols@16 -StackWalk32@36 -StackWalk64@36 -StackWalk@36 -SymCleanup@4 -SymEnumerateModules32@12 -SymEnumerateModules64@12 -SymEnumerateModules@12 -SymEnumerateSymbols32@16 -SymEnumerateSymbols64@20 -SymEnumerateSymbols@16 -SymFunctionTableAccess32@8 -SymFunctionTableAccess64@12 -SymFunctionTableAccess@8 -SymGetLineFromAddr32@16 -SymGetLineFromAddr64@20 -SymGetLineFromAddr@16 -SymGetLineFromName32@24 -SymGetLineFromName64@24 -SymGetLineFromName@24 -SymGetLineNext32@8 -SymGetLineNext64@8 -SymGetLineNext@8 -SymGetLinePrev32@8 -SymGetLinePrev64@8 -SymGetLinePrev@8 -SymGetModuleBase32@8 -SymGetModuleBase64@12 -SymGetModuleBase@8 -SymGetModuleInfo32@12 -SymGetModuleInfo64@16 -SymGetModuleInfo@12 -SymGetOptions@0 -SymGetSearchPath@12 -SymGetSymFromAddr32@16 -SymGetSymFromAddr64@20 -SymGetSymFromAddr@16 -SymGetSymFromName32@12 -SymGetSymFromName64@12 -SymGetSymFromName@12 -SymGetSymNext32@8 -SymGetSymNext64@8 -SymGetSymNext@8 -SymGetSymPrev32@8 -SymGetSymPrev64@8 -SymGetSymPrev@8 -SymInitialize@12 -SymLoadModule32@24 -SymLoadModule64@28 -SymLoadModule@24 -SymMatchFileName@16 -SymRegisterCallback32@12 -SymRegisterCallback64@16 -SymRegisterCallback@12 -SymSetOptions@4 -SymSetSearchPath@8 -SymUnDName32@12 -SymUnDName64@12 -SymUnDName@12 -SymUnloadModule32@8 -SymUnloadModule64@12 -SymUnloadModule@8 -TouchFileTimes@8 -UnDecorateSymbolName@16 -UnMapAndLoad@4 -UnmapDebugInformation32@4 -UnmapDebugInformation64@4 -UnmapDebugInformation@4 -UpdateDebugInfoFile@16 -UpdateDebugInfoFileEx@20 diff --git a/winsup/w32api/lib/imm32.def b/winsup/w32api/lib/imm32.def deleted file mode 100644 index 1d8ee8fcc..000000000 --- a/winsup/w32api/lib/imm32.def +++ /dev/null @@ -1,77 +0,0 @@ -LIBRARY IMM32.DLL -EXPORTS -ImmAssociateContext@8 -ImmConfigureIMEA@16 -ImmConfigureIMEW@16 -ImmCreateContext@0 -ImmCreateIMCC@4 -ImmCreateSoftKeyboard@16 -ImmDestroyContext@4 -ImmDestroyIMCC@4 -ImmDestroySoftKeyboard@4 -ImmEnumRegisterWordA@24 -ImmEnumRegisterWordW@24 -ImmEscapeA@16 -ImmEscapeW@16 -ImmGenerateMessage@4 -ImmGetCandidateListA@16 -ImmGetCandidateListCountA@8 -ImmGetCandidateListCountW@8 -ImmGetCandidateListW@16 -ImmGetCandidateWindow@12 -ImmGetCompositionFontA@8 -ImmGetCompositionFontW@8 -ImmGetCompositionStringA@16 -ImmGetCompositionStringW@16 -ImmGetCompositionWindow@8 -ImmGetContext@4 -ImmGetConversionListA@24 -ImmGetConversionListW@24 -ImmGetConversionStatus@12 -ImmGetDefaultIMEWnd@4 -ImmGetDescriptionA@12 -ImmGetDescriptionW@12 -ImmGetGuideLineA@16 -ImmGetGuideLineW@16 -ImmGetHotKey@16 -ImmGetIMCCLockCount@4 -ImmGetIMCCSize@4 -ImmGetIMCLockCount@4 -ImmGetIMEFileNameA@12 -ImmGetIMEFileNameW@12 -ImmGetImeMenuItemsA@24 -ImmGetImeMenuItemsW@24 -ImmGetOpenStatus@4 -ImmGetProperty@8 -ImmGetRegisterWordStyleA@12 -ImmGetRegisterWordStyleW@12 -ImmGetStatusWindowPos@8 -ImmGetVirtualKey@4 -ImmInstallIMEA@8 -ImmInstallIMEW@8 -ImmIsIME@4 -ImmIsUIMessageA@16 -ImmIsUIMessageW@16 -ImmLockIMC@4 -ImmLockIMCC@4 -ImmNotifyIME@16 -ImmReSizeIMCC@8 -ImmRegisterWordA@16 -ImmRegisterWordW@16 -ImmReleaseContext@8 -ImmSetCandidateWindow@8 -ImmSetCompositionFontA@8 -ImmSetCompositionFontW@8 -ImmSetCompositionStringA@24 -ImmSetCompositionStringW@24 -ImmSetCompositionWindow@8 -ImmSetConversionStatus@12 -ImmSetHotKey@16 -ImmSetOpenStatus@8 -ImmSetStatusWindowPos@8 -ImmShowSoftKeyboard@8 -ImmSimulateHotKey@8 -ImmUnlockIMC@4 -ImmUnlockIMCC@4 -ImmUnregisterWordA@16 -ImmUnregisterWordW@16 diff --git a/winsup/w32api/lib/iphlpapi.def b/winsup/w32api/lib/iphlpapi.def deleted file mode 100644 index f4b088888..000000000 --- a/winsup/w32api/lib/iphlpapi.def +++ /dev/null @@ -1,45 +0,0 @@ -LIBRARY "IPHLPAPI.DLL" -EXPORTS -AddIPAddress@20 -CreateIpForwardEntry@4 -CreateIpNetEntry@4 -CreateProxyArpEntry@12 -DeleteIPAddress@4 -DeleteIpForwardEntry@4 -DeleteIpNetEntry@4 -DeleteProxyArpEntry@12 -EnableRouter@8 -FlushIpNetTable@4 -GetAdapterIndex@8 -GetAdaptersInfo@8 -GetBestInterface@8 -GetBestRoute@12 -GetFriendlyIfIndex@4 -GetIcmpStatistics@4 -GetIfEntry@4 -GetIfTable@12 -GetInterfaceInfo@8 -GetIpAddrTable@12 -GetIpForwardTable@12 -GetIpNetTable@12 -GetIpStatistics@4 -GetNetworkParams@8 -GetNumberOfInterfaces@4 -GetPerAdapterInfo@12 -GetRTTAndHopCount@16 -GetTcpStatistics@4 -GetTcpTable@12 -GetUdpStatistics@4 -GetUdpTable@12 -GetUniDirectionalAdapterInfo@8 -IpReleaseAddress@4 -IpRenewAddress@4 -SendARP@16 -SetAdapterIpAddress@20 -SetIfEntry@4 -SetIpForwardEntry@4 -SetIpNetEntry@4 -SetIpStatistics@4 -SetIpTTL@4 -SetTcpEntry@4 -UnenableRouter@8 diff --git a/winsup/w32api/lib/kernel32.c b/winsup/w32api/lib/kernel32.c deleted file mode 100644 index d66a5064b..000000000 --- a/winsup/w32api/lib/kernel32.c +++ /dev/null @@ -1,51 +0,0 @@ -/* extern (library) versions of inline functions defined in winnt.h */ - -#if defined(__GNUC__) - -void* GetCurrentFiber(void) -{ - void* ret; - __asm__ volatile ( - "movl %%fs:0x10,%0" - : "=r" (ret) /* allow use of reg eax,ebx,ecx,edx,esi,edi */ - : - ); - return ret; -} - -void* GetFiberData(void) -{ - void* ret; - __asm__ volatile ( - "movl %%fs:0x10,%0\n" - "movl (%0),%0" - : "=r" (ret) /* allow use of reg eax,ebx,ecx,edx,esi,edi */ - : - ); - return ret; -} - -#else - -void* GetCurrentFiber(void) -{ - void* res; - _asm { - mov eax, dword ptr fs:0x10 - mov res, eax - }; - return res; -} - -void* GetFiberData(void) -{ - void* res; - _asm { - mov eax, dword ptr fs:0x10 - mov eax, [eax] - mov res, eax - }; - return res; -} - -#endif /* __GNUC__ */ diff --git a/winsup/w32api/lib/kernel32.def b/winsup/w32api/lib/kernel32.def deleted file mode 100644 index 15598c863..000000000 --- a/winsup/w32api/lib/kernel32.def +++ /dev/null @@ -1,767 +0,0 @@ -LIBRARY KERNEL32.dll -EXPORTS -AddAtomA@4 -AddAtomW@4 -AddConsoleAliasA@12 -AddConsoleAliasW@12 -AllocConsole@0 -AreFileApisANSI@0 -AssignProcessToJobObject@8 -BackupRead@28 -BackupSeek@24 -BackupWrite@28 -BaseAttachCompleteThunk@0 -Beep@8 -BeginUpdateResourceA@8 -BeginUpdateResourceW@8 -BuildCommDCBA@8 -BuildCommDCBAndTimeoutsA@12 -BuildCommDCBAndTimeoutsW@12 -BuildCommDCBW@8 -CallNamedPipeA@28 -CallNamedPipeW@28 -CancelIo@4 -CancelTimerQueueTimer@8 -CancelWaitableTimer@4 -ChangeTimerQueueTimer@16 -ClearCommBreak@4 -ClearCommError@12 -CloseConsoleHandle@4 -CloseHandle@4 -CloseProfileUserMapping@0 -CmdBatNotification@4 -CommConfigDialogA@12 -CommConfigDialogW@12 -CompareFileTime@8 -CompareStringA@24 -CompareStringW@24 -ConnectNamedPipe@8 -ConsoleMenuControl@12 -ContinueDebugEvent@12 -ConvertDefaultLocale@4 -ConvertThreadToFiber@4 -CopyFileA@12 -CopyFileW@12 -CopyFileExA@24 -CopyFileExW@24 -CreateConsoleScreenBuffer@20 -CreateDirectoryA@8 -CreateDirectoryExA@12 -CreateDirectoryExW@12 -CreateDirectoryW@8 -CreateEventA@16 -CreateEventW@16 -CreateFiber@12 -CreateFileA@28 -CreateFileMappingA@24 -CreateFileMappingW@24 -CreateFileW@28 -CreateHardLinkA@12 -CreateHardLinkW@12 -CreateIoCompletionPort@16 -CreateJobObjectA@8 -CreateJobObjectW@8 -CreateMailslotA@16 -CreateMailslotW@16 -CreateMutexA@12 -CreateMutexW@12 -CreateNamedPipeA@32 -CreateNamedPipeW@32 -CreatePipe@16 -CreateProcessA@40 -CreateProcessW@40 -CreateRemoteThread@28 -CreateSemaphoreA@16 -CreateSemaphoreW@16 -CreateTapePartition@16 -CreateThread@24 -CreateTimerQueue@0 -CreateToolhelp32Snapshot@8 -CreateVirtualBuffer@12 -CreateWaitableTimerA@12 -CreateWaitableTimerW@12 -DebugActiveProcess@4 -DebugBreak@0 -DefineDosDeviceA@12 -DefineDosDeviceW@12 -DeleteAtom@4 -DeleteCriticalSection@4 -DeleteFiber@4 -DeleteFileA@4 -DeleteFileW@4 -DeleteTimerQueue@4 -DeleteVolumeMountPointA@4 -DeleteVolumeMountPointW@4 -DeviceIoControl@32 -DisableThreadLibraryCalls@4 -DisconnectNamedPipe@4 -DosDateTimeToFileTime@12 -DuplicateConsoleHandle@16 -DuplicateHandle@28 -EndUpdateResourceA@8 -EndUpdateResourceW@8 -EnterCriticalSection@4 -EnumCalendarInfoA@16 -EnumCalendarInfoW@16 -EnumCalendarInfoExA@16 -EnumCalendarInfoExW@16 -EnumDateFormatsA@12 -EnumDateFormatsW@12 -EnumDateFormatsExA@12 -EnumDateFormatsExW@12 -EnumLanguageGroupLocalesA@16 -EnumLanguageGroupLocalesW@16 -EnumResourceLanguagesA@20 -EnumResourceLanguagesW@20 -EnumResourceNamesA@16 -EnumResourceNamesW@16 -EnumResourceTypesA@12 -EnumResourceTypesW@12 -EnumSystemCodePagesA@8 -EnumSystemCodePagesW@8 -EnumSystemLanguageGroupsA@12 -EnumSystemLanguageGroupsW@12 -EnumSystemLocalesA@8 -EnumSystemLocalesW@8 -EnumTimeFormatsA@12 -EnumTimeFormatsW@12 -EnumUILanguagesA@12 -EnumUILanguagesW@12 -EraseTape@12 -EscapeCommFunction@8 -ExitProcess@4 -ExitThread@4 -ExitVDM@8 -ExpandEnvironmentStringsA@12 -ExpandEnvironmentStringsW@12 -ExpungeConsoleCommandHistoryA@4 -ExpungeConsoleCommandHistoryW@4 -ExtendVirtualBuffer@8 -FatalAppExitA@8 -FatalAppExitW@8 -FatalExit@4 -FileTimeToDosDateTime@12 -FileTimeToLocalFileTime@8 -FileTimeToSystemTime@8 -FillConsoleOutputAttribute@20 -FillConsoleOutputCharacterA@20 -FillConsoleOutputCharacterW@20 -FindAtomA@4 -FindAtomW@4 -FindClose@4 -FindCloseChangeNotification@4 -FindFirstChangeNotificationA@12 -FindFirstChangeNotificationW@12 -FindFirstFileA@8 -FindFirstFileW@8 -FindFirstFileExA@24 -FindFirstFileExW@24 -FindFirstVolumeA@8 -FindFirstVolumeW@8 -FindFirstVolumeMountPointA@12 -FindFirstVolumeMountPointW@12 -FindNextChangeNotification@4 -FindNextFileA@8 -FindNextFileW@8 -FindNextVolumeA@12 -FindNextVolumeW@12 -FindNextVolumeMountPointA@12 -FindNextVolumeMountPointW@12 -FindResourceA@12 -FindResourceExA@16 -FindResourceExW@16 -FindResourceW@12 -FindVolumeClose@4 -FindVolumeMountPointClose@4 -FlushConsoleInputBuffer@4 -FlushFileBuffers@4 -FlushInstructionCache@12 -FlushViewOfFile@8 -FoldStringA@20 -FoldStringW@20 -FormatMessageA@28 -FormatMessageW@28 -FreeConsole@0 -FreeEnvironmentStringsA@4 -FreeEnvironmentStringsW@4 -FreeLibrary@4 -FreeLibraryAndExitThread@8 -FreeResource@4 -FreeVirtualBuffer@4 -GenerateConsoleCtrlEvent@8 -GetACP@0 -GetAtomNameA@12 -GetAtomNameW@12 -GetBinaryType@8 -GetBinaryTypeA@8 -GetBinaryTypeW@8 -GetCPInfo@8 -GetCPInfoExA@12 -GetCPInfoExW@12 -GetCalendarInfoA@24 -GetCalendarInfoW@24 -GetCommConfig@12 -GetCommMask@8 -GetCommModemStatus@8 -GetCommProperties@8 -GetCommState@8 -GetCommTimeouts@8 -GetCommandLineA@0 -GetCommandLineW@0 -GetCompressedFileSizeA@8 -GetCompressedFileSizeW@8 -GetComputerNameA@8 -GetComputerNameW@8 -GetConsoleAliasA@16 -GetConsoleAliasExesA@8 -GetConsoleAliasExesLengthA@0 -GetConsoleAliasExesLengthW@0 -GetConsoleAliasExesW@8 -GetConsoleAliasW@16 -GetConsoleAliasesA@12 -GetConsoleAliasesLengthA@4 -GetConsoleAliasesLengthW@4 -GetConsoleAliasesW@12 -GetConsoleCP@0 -GetConsoleCommandHistoryA@12 -GetConsoleCommandHistoryLengthA@4 -GetConsoleCommandHistoryLengthW@4 -GetConsoleCommandHistoryW@12 -GetConsoleCursorInfo@8 -GetConsoleDisplayMode@4 -GetConsoleFontInfo@16 -GetConsoleFontSize@8 -GetConsoleHardwareState@12 -GetConsoleInputExeNameA@8 -GetConsoleInputExeNameW@8 -GetConsoleInputWaitHandle@0 -GetConsoleKeyboardLayoutNameA@4 -GetConsoleKeyboardLayoutNameW@4 -GetConsoleMode@8 -GetConsoleOutputCP@0 -GetConsoleScreenBufferInfo@8 -GetConsoleTitleA@8 -GetConsoleTitleW@8 -GetConsoleWindow@0 -GetCurrencyFormatA@24 -GetCurrencyFormatW@24 -GetCurrentConsoleFont@12 -GetCurrentDirectoryA@8 -GetCurrentDirectoryW@8 -GetCurrentProcess@0 -GetCurrentProcessId@0 -GetCurrentThread@0 -GetCurrentThreadId@0 -GetDateFormatA@24 -GetDateFormatW@24 -GetDefaultCommConfigA@12 -GetDefaultCommConfigW@12 -GetDevicePowerState@4 -GetDiskFreeSpaceA@20 -GetDiskFreeSpaceW@20 -GetDiskFreeSpaceExA@16 -GetDiskFreeSpaceExW@16 -GetDriveTypeA@4 -GetDriveTypeW@4 -GetErrorMode@0 -GetEnvironmentStrings@0 -GetEnvironmentStringsA@0 -GetEnvironmentStringsW@0 -GetEnvironmentVariableA@12 -GetEnvironmentVariableW@12 -GetExitCodeProcess@8 -GetExitCodeThread@8 -GetFileAttributesA@4 -GetFileAttributesW@4 -GetFileAttributesExA@12 -GetFileAttributesExW@12 -GetFileInformationByHandle@8 -GetFileSize@8 -GetFileSizeEx@8 -GetFileTime@16 -GetFileType@4 -GetFullPathNameA@16 -GetFullPathNameW@16 -GetHandleInformation@8 -GetLargestConsoleWindowSize@4 -GetLastError@0 -GetLocalTime@4 -GetLocaleInfoA@16 -GetLocaleInfoW@16 -GetLogicalDriveStringsA@8 -GetLogicalDriveStringsW@8 -GetLogicalDrives@0 -GetLongPathNameA@12 -GetLongPathNameW@12 -GetMailslotInfo@20 -GetModuleFileNameA@12 -GetModuleFileNameW@12 -GetModuleHandleA@4 -GetModuleHandleW@4 -GetNamedPipeHandleStateA@28 -GetNamedPipeHandleStateW@28 -GetNamedPipeInfo@20 -GetNextVDMCommand@4 -GetNumberFormatA@24 -GetNumberFormatW@24 -GetNumberOfConsoleFonts@0 -GetNumberOfConsoleInputEvents@8 -GetNumberOfConsoleMouseButtons@4 -GetOEMCP@0 -GetOverlappedResult@16 -GetPriorityClass@4 -GetPrivateProfileIntA@16 -GetPrivateProfileIntW@16 -GetPrivateProfileSectionA@16 -GetPrivateProfileSectionNamesA@12 -GetPrivateProfileSectionNamesW@12 -GetPrivateProfileSectionW@16 -GetPrivateProfileStringA@24 -GetPrivateProfileStringW@24 -GetPrivateProfileStructA@20 -GetPrivateProfileStructW@20 -GetProcAddress@8 -GetProcessAffinityMask@12 -GetProcessHeap@0 -GetProcessHeaps@8 -GetProcessPriorityBoost@8 -GetProcessShutdownParameters@8 -GetProcessTimes@20 -GetProcessVersion@4 -GetProcessWorkingSetSize@12 -GetProductName@8 -GetProfileIntA@12 -GetProfileIntW@12 -GetProfileSectionA@12 -GetProfileSectionW@12 -GetProfileStringA@20 -GetProfileStringW@20 -GetQueuedCompletionStatus@20 -GetShortPathNameA@12 -GetShortPathNameW@12 -GetStartupInfoA@4 -GetStartupInfoW@4 -GetStdHandle@4 -GetStringTypeA@20 -GetStringTypeExA@20 -GetStringTypeExW@20 -GetStringTypeW@16 -GetSystemDefaultLCID@0 -GetSystemDefaultLangID@0 -GetSystemDefaultUILanguage@0 -GetSystemDirectoryA@8 -GetSystemDirectoryW@8 -GetSystemInfo@4 -GetSystemPowerStatus@4 -GetSystemTime@4 -GetSystemTimeAdjustment@12 -GetSystemTimeAsFileTime@4 -GetTapeParameters@16 -GetTapePosition@20 -GetTapeStatus@4 -GetTempFileNameA@16 -GetTempFileNameW@16 -GetTempPathA@8 -GetTempPathW@8 -GetThreadContext@8 -GetThreadLocale@0 -GetThreadPriority@4 -GetThreadPriorityBoost@8 -GetThreadSelectorEntry@12 -GetThreadTimes@20 -GetTickCount@0 -GetTimeFormatA@24 -GetTimeFormatW@24 -GetTimeZoneInformation@4 -GetUserDefaultLCID@0 -GetUserDefaultLangID@0 -GetUserDefaultUILanguage@0 -GetVDMCurrentDirectories@8 -GetVersion@0 -GetVersionExA@4 -GetVersionExW@4 -GetVolumeInformationA@32 -GetVolumeInformationW@32 -GetVolumeNameForVolumeMountPointA@12 -GetVolumeNameForVolumeMountPointW@12 -GetVolumePathNameA@12 -GetVolumePathNameW@12 -GetWindowsDirectoryA@8 -GetWindowsDirectoryW@8 -GlobalAddAtomA@4 -GlobalAddAtomW@4 -GlobalAlloc@8 -GlobalCompact@4 -GlobalDeleteAtom@4 -GlobalFindAtomA@4 -GlobalFindAtomW@4 -GlobalFix@4 -GlobalFlags@4 -GlobalFree@4 -GlobalGetAtomNameA@12 -GlobalGetAtomNameW@12 -GlobalHandle@4 -GlobalLock@4 -GlobalMemoryStatus@4 -GlobalMemoryStatusVlm@4 -GlobalReAlloc@12 -GlobalSize@4 -GlobalUnWire@4 -GlobalUnfix@4 -GlobalUnlock@4 -GlobalWire@4 -Heap32First@12 -Heap32ListFirst@8 -Heap32ListNext@8 -Heap32Next@4 -HeapAlloc@12 -HeapCompact@8 -HeapCreate@12 -HeapCreateTagsW@16 -HeapDestroy@4 -HeapExtend@16 -HeapFree@12 -HeapLock@4 -HeapQueryTagW@20 -HeapReAlloc@16 -HeapSize@12 -HeapSummary@12 -HeapUnlock@4 -HeapUsage@20 -HeapValidate@12 -HeapWalk@8 -InitAtomTable@4 -InitializeCriticalSection@4 -InitializeCriticalSectionAndSpinCount@8 -InterlockedCompareExchange@12 -InterlockedDecrement@4 -InterlockedExchange@8 -InterlockedExchangeAdd@8 -InterlockedIncrement@4 -InvalidateConsoleDIBits@8 -IsBadCodePtr@4 -IsBadHugeReadPtr@8 -IsBadHugeWritePtr@8 -IsBadReadPtr@8 -IsBadStringPtrA@8 -IsBadStringPtrW@8 -IsBadWritePtr@8 -IsDBCSLeadByte@4 -IsDBCSLeadByteEx@8 -IsDebuggerPresent@0 -IsProcessorFeaturePresent@4 -IsValidCodePage@4 -IsValidLanguageGroup@8 -IsValidLocale@8 -LCMapStringA@24 -LCMapStringW@24 -LeaveCriticalSection@4 -LoadLibraryA@4 -LoadLibraryExA@12 -LoadLibraryExW@12 -LoadLibraryW@4 -LoadModule@8 -LoadResource@8 -LocalAlloc@8 -LocalCompact@4 -LocalFileTimeToFileTime@8 -LocalFlags@4 -LocalFree@4 -LocalHandle@4 -LocalLock@4 -LocalReAlloc@12 -LocalShrink@8 -LocalSize@4 -LocalUnlock@4 -LockFile@20 -LockFileEx@24 -LockResource@4 -MapViewOfFile@20 -MapViewOfFileEx@24 -MapViewOfFileVlm@28 -MoveFileA@8 -MoveFileW@8 -MoveFileExA@12 -MoveFileExW@12 -MoveFileWithProgressA@20 -MoveFileWithProgressW@20 -MulDiv@12 -MultiByteToWideChar@24 -OpenConsoleW@16 -OpenEventA@12 -OpenEventW@12 -OpenFile@12 -OpenFileMappingA@12 -OpenFileMappingW@12 -OpenJobObjectA@12 -OpenJobObjectW@12 -OpenMutexA@12 -OpenMutexW@12 -OpenProcess@12 -OpenProfileUserMapping@0 -OpenSemaphoreA@12 -OpenSemaphoreW@12 -OpenWaitableTimerA@12 -OpenWaitableTimerW@12 -OutputDebugStringA@4 -OutputDebugStringW@4 -PeekConsoleInputA@16 -PeekConsoleInputW@16 -PeekNamedPipe@24 -PostQueuedCompletionStatus@16 -PrepareTape@12 -PulseEvent@4 -PurgeComm@8 -QueryDosDeviceA@12 -QueryDosDeviceW@12 -QueryInformationJobObject@20 -QueryPerformanceCounter@4 -QueryPerformanceFrequency@4 -QueryWin31IniFilesMappedToRegistry@16 -QueueUserAPC@12 -QueueUserWorkItem@12 -RaiseException@16 -ReadConsoleA@20 -ReadConsoleInputA@16 -ReadConsoleInputW@16 -ReadConsoleInputExA@20 -ReadConsoleInputExW@20 -ReadConsoleOutputA@20 -ReadConsoleOutputAttribute@20 -ReadConsoleOutputCharacterA@20 -ReadConsoleOutputCharacterW@20 -ReadConsoleOutputW@20 -ReadConsoleW@20 -ReadDirectoryChangesW@32 -ReadFile@20 -ReadFileEx@20 -ReadFileScatter@20 -ReadFileVlm@20 -ReadProcessMemory@20 -ReadProcessMemoryVlm@20 -RegisterConsoleVDM@44 -RegisterWaitForInputIdle@4 -RegisterWaitForSingleObject@16 -RegisterWowBaseHandlers@4 -RegisterWowExec@4 -ReleaseMutex@4 -ReleaseSemaphore@12 -RemoveDirectoryA@4 -RemoveDirectoryW@4 -ReplaceFile@24 -RequestWakeupLatency@4 -ResetEvent@4 -ResumeThread@4 -RtlFillMemory@12 -RtlMoveMemory@12 -RtlUnwind@16 -RtlZeroMemory@8 -ScrollConsoleScreenBufferA@20 -ScrollConsoleScreenBufferW@20 -SearchPathA@24 -SearchPathW@24 -SetCalendarInfoA@16 -SetCalendarInfoW@16 -SetCommBreak@4 -SetCommConfig@12 -SetCommMask@8 -SetCommState@8 -SetCommTimeouts@8 -SetComputerNameA@4 -SetComputerNameW@4 -SetConsoleActiveScreenBuffer@4 -SetConsoleCP@4 -SetConsoleCommandHistoryMode@4 -SetConsoleCtrlHandler@8 -SetConsoleCursor@8 -SetConsoleCursorInfo@8 -SetConsoleCursorPosition@8 -SetConsoleDisplayMode@12 -SetConsoleFont@8 -SetConsoleHardwareState@12 -SetConsoleIcon@4 -SetConsoleInputExeNameA@4 -SetConsoleInputExeNameW@4 -SetConsoleKeyShortcuts@16 -SetConsoleMaximumWindowSize@8 -SetConsoleMenuClose@4 -SetConsoleMode@8 -SetConsoleNumberOfCommandsA@8 -SetConsoleNumberOfCommandsW@8 -SetConsoleOutputCP@4 -SetConsolePalette@12 -SetConsoleScreenBufferSize@8 -SetConsoleTextAttribute@8 -SetConsoleTitleA@4 -SetConsoleTitleW@4 -SetConsoleWindowInfo@12 -SetCriticalSectionSpinCount@8 -SetCurrentDirectoryA@4 -SetCurrentDirectoryW@4 -SetDefaultCommConfigA@12 -SetDefaultCommConfigW@12 -SetEndOfFile@4 -SetEnvironmentVariableA@8 -SetEnvironmentVariableW@8 -SetErrorMode@4 -SetEvent@4 -SetFileApisToANSI@0 -SetFileApisToOEM@0 -SetFileAttributesA@8 -SetFileAttributesW@8 -SetFilePointer@16 -SetFilePointerEx@20 -SetFileTime@16 -SetHandleCount@4 -SetHandleInformation@12 -SetInformationJobObject@16 -SetLastConsoleEventActive@0 -SetLastError@4 -SetLocalTime@4 -SetLocaleInfoA@12 -SetLocaleInfoW@12 -SetMailslotInfo@8 -SetNamedPipeHandleState@16 -SetPriorityClass@8 -SetProcessAffinityMask@8 -SetProcessPriorityBoost@8 -SetProcessShutdownParameters@8 -SetProcessWorkingSetSize@12 -SetStdHandle@8 -SetSystemPowerState@8 -SetSystemTime@4 -SetSystemTimeAdjustment@8 -SetTapeParameters@12 -SetTapePosition@24 -SetThreadAffinityMask@8 -SetThreadContext@8 -SetThreadExecutionState@4 -SetThreadIdealProcessor@8 -SetThreadLocale@4 -SetThreadPriority@8 -SetThreadPriorityBoost@8 -SetTimeZoneInformation@4 -SetTimerQueueTimer@24 -SetUnhandledExceptionFilter@4 -SetVDMCurrentDirectories@8 -SetVolumeLabelA@8 -SetVolumeLabelW@8 -SetVolumeMountPointA@8 -SetVolumeMountPointW@8 -SetWaitableTimer@24 -SetupComm@12 -ShowConsoleCursor@8 -SignalObjectAndWait@16 -SizeofResource@8 -Sleep@4 -SleepEx@8 -SuspendThread@4 -SwitchToFiber@4 -SwitchToThread@0 -SystemTimeToFileTime@8 -SystemTimeToTzSpecificLocalTime@12 -TerminateJobObject@8 -TerminateProcess@8 -TerminateThread@8 -TlsAlloc@0 -TlsFree@4 -TlsGetValue@4 -TlsSetValue@8 -TransactNamedPipe@28 -TransmitCommChar@8 -TrimVirtualBuffer@4 -TryEnterCriticalSection@4 -UTRegister@28 -UTUnRegister@4 -UnhandledExceptionFilter@4 -UnlockFile@20 -UnlockFileEx@20 -UnmapViewOfFile@4 -UnmapViewOfFileVlm@4 -UnregisterWait@4 -UpdateResourceA@24 -UpdateResourceW@24 -VDMConsoleOperation@8 -VDMOperationStarted@4 -VerLanguageNameA@12 -VerLanguageNameW@12 -VerifyConsoleIoHandle@4 -VirtualAlloc@16 -VirtualAllocEx@20 -VirtualAllocVlm@24 -VirtualBufferExceptionHandler@12 -VirtualFree@12 -VirtualFreeEx@16 -VirtualFreeVlm@20 -VirtualLock@8 -VirtualProtect@16 -VirtualProtectEx@20 -VirtualProtectVlm@24 -VirtualQuery@12 -VirtualQueryEx@16 -VirtualQueryVlm@16 -VirtualUnlock@8 -WaitCommEvent@12 -WaitForDebugEvent@8 -WaitForMultipleObjects@16 -WaitForMultipleObjectsEx@20 -WaitForSingleObject@8 -WaitForSingleObjectEx@12 -WaitNamedPipeA@8 -WaitNamedPipeW@8 -WideCharToMultiByte@32 -WinExec@8 -WriteConsoleA@20 -WriteConsoleInputA@16 -WriteConsoleInputVDMA@16 -WriteConsoleInputVDMW@16 -WriteConsoleInputW@16 -WriteConsoleOutputA@20 -WriteConsoleOutputAttribute@20 -WriteConsoleOutputCharacterA@20 -WriteConsoleOutputCharacterW@20 -WriteConsoleOutputW@20 -WriteConsoleW@20 -WriteFile@20 -WriteFileEx@20 -WriteFileGather@20 -WriteFileVlm@20 -WritePrivateProfileSectionA@12 -WritePrivateProfileSectionW@12 -WritePrivateProfileStringA@16 -WritePrivateProfileStringW@16 -WritePrivateProfileStructA@20 -WritePrivateProfileStructW@20 -WriteProcessMemory@20 -WriteProcessMemoryVlm@20 -WriteProfileSectionA@8 -WriteProfileSectionW@8 -WriteProfileStringA@12 -WriteProfileStringW@12 -WriteTapemark@16 -_hread@12 -_hwrite@12 -_lclose@4 -_lcreat@8 -_llseek@12 -_lopen@8 -_lread@12 -_lwrite@12 -lstrcat@8 -lstrcatA@8 -lstrcatW@8 -lstrcmp@8 -lstrcmpA@8 -lstrcmpW@8 -lstrcmpi@8 -lstrcmpiA@8 -lstrcmpiW@8 -lstrcpy@8 -lstrcpyA@8 -lstrcpyW@8 -lstrcpyn@12 -lstrcpynA@12 -lstrcpynW@12 -lstrlen@4 -lstrlenA@4 -lstrlenW@4 diff --git a/winsup/w32api/lib/largeint.c b/winsup/w32api/lib/largeint.c deleted file mode 100644 index 1761dd48f..000000000 --- a/winsup/w32api/lib/largeint.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - largeint.c - - Large (64 bits) integer arithmetics library - - Written by Anders Norlander - - This file is part of a free library for the Win32 API. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -*/ - -#define __COMPILING_LARGEINT - -#include - -__int64 WINAPI -LargeIntegerAdd (__int64 i1, __int64 i2) -{ - return i1 * i2; -} - -__int64 WINAPI -LargeIntegerSubtract (__int64 i1, __int64 i2) -{ - return i1 - i2; -} - -__int64 WINAPI -LargeIntegerArithmeticShift (__int64 i, int n) -{ - return i >> n; -} - -__int64 WINAPI -LargeIntegerShiftLeft (__int64 i, int n) -{ - return i << n; -} - -__int64 WINAPI -LargeIntegerShiftRight (__int64 i, int n) -{ - return i >> n; -} - -__int64 WINAPI -LargeIntegerNegate (__int64 i) -{ - return -i; -} - -__int64 WINAPI -ConvertLongToLargeInteger (LONG l) -{ - return (__int64) l; -} - -__int64 WINAPI -ConvertUlongToLargeInteger (ULONG ul) -{ - return _toi(_toui(ul)); -} - -__int64 WINAPI -EnlargedIntegerMultiply (LONG l1, LONG l2) -{ - return _toi(l1) * _toi(l2); -} - -__int64 WINAPI -EnlargedUnsignedMultiply (ULONG ul1, ULONG ul2) -{ - return _toi(_toui(ul1) * _toui(ul2)); -} - -__int64 WINAPI -ExtendedIntegerMultiply (__int64 i, LONG l) -{ - return i * _toi(l); -} - -__int64 WINAPI -LargeIntegerMultiply (__int64 i1, __int64 i2) -{ - return i1 * i2; -} - -__int64 WINAPI LargeIntegerDivide (__int64 i1, __int64 i2, __int64 *remainder) -{ - if (remainder) - *remainder = i1 % i2; - return i1 / i2; -} - -ULONG WINAPI -EnlargedUnsignedDivide (unsigned __int64 i1, ULONG i2, PULONG remainder) -{ - if (remainder) - *remainder = i1 % _toi(i2); - return i1 / _toi(i2); -} -__int64 WINAPI -ExtendedLargeIntegerDivide (__int64 i1, ULONG i2, PULONG remainder) -{ - if (remainder) - *remainder = i1 % _toi(i2); - return i1 / _toi(i2); -} - -/* FIXME: what is this function supposed to do? */ -__int64 WINAPI ExtendedMagicDivide (__int64 i1, __int64 i2, int n) -{ - return 0; -} diff --git a/winsup/w32api/lib/lz32.def b/winsup/w32api/lib/lz32.def deleted file mode 100644 index 7ea621312..000000000 --- a/winsup/w32api/lib/lz32.def +++ /dev/null @@ -1,14 +0,0 @@ -LIBRARY LZ32.DLL -EXPORTS -CopyLZFile@8 -GetExpandedNameA@8 -GetExpandedNameW@8 -LZClose@4 -LZCopy@8 -LZDone@0 -LZInit@4 -LZOpenFileA@12 -LZOpenFileW@12 -LZRead@12 -LZSeek@12 -LZStart@0 diff --git a/winsup/w32api/lib/mapi32.def b/winsup/w32api/lib/mapi32.def deleted file mode 100644 index 2e4fe42fb..000000000 --- a/winsup/w32api/lib/mapi32.def +++ /dev/null @@ -1,164 +0,0 @@ -LIBRARY MAPI32.DLL -EXPORTS -BuildDisplayTable@40 -CbOfEncoded@4 -CchOfEncoding@4 -ChangeIdleRoutine@28 -CloseIMsgSession@4 -CreateIProp@24 -CreateTable@36 -DeinitMapiUtil@0 -DeregisterIdleRoutine@4 -EnableIdleRoutine@8 -EncodeID@12 -FBadColumnSet@4 -FBadEntryList@4 -FBadProp@4 -FBadPropTag@4 -FBadRestriction@4 -FBadRglpNameID@8 -FBadRglpszA@8 -FBadRglpszW@8 -FBadRow@4 -FBadRowSet@4 -FBadSortOrderSet@4 -FBinFromHex@8 -FDecodeID@12 -FEqualNames@8 -FPropCompareProp@12 -FPropContainsProp@12 -FPropExists@8 -FreePadrlist@4 -FreeProws@4 -FtAdcFt@20 -FtAddFt@16 -FtDivFtBogus@20 -FtMulDw@12 -FtMulDwDw@8 -FtNegFt@8 -FtSubFt@16 -FtgRegisterIdleRoutine@20 -GetAttribIMsgOnIStg@12 -GetTnefStreamCodepage -GetTnefStreamCodepage@12 -HexFromBin@12 -HrAddColumns@16 -HrAddColumnsEx@20 -HrAllocAdviseSink@12 -HrComposeEID@28 -HrComposeMsgID@24 -HrDecomposeEID@28 -HrDecomposeMsgID@24 -HrDispatchNotifications@4 -HrEntryIDFromSz@12 -HrGetOneProp@12 -HrIStorageFromStream@16 -HrQueryAllRows@24 -HrSetOneProp@8 -HrSzFromEntryID@12 -HrThisThreadAdviseSink@8 -HrValidateIPMSubtree@20 -HrValidateParameters@8 -InstallFilterHook@4 -IsBadBoundedStringPtr@8 -LAUNCHWIZARD -LPropCompareProp@8 -LaunchWizard@20 -LpValFindProp@12 -MAPI_NSCP_SynchronizeClient@8 -MAPIAddress@44 -MAPIAdminProfiles -MAPIAdminProfiles@8 -MAPIAllocateBuffer -MAPIAllocateBuffer@8 -MAPIAllocateMore -MAPIAllocateMore@12 -MAPIDeinitIdle@0 -MAPIDeleteMail@20 -MAPIDetails@20 -MAPIFindNext@28 -MAPIFreeBuffer -MAPIFreeBuffer@4 -MAPIGetDefaultMalloc@0 -MAPIGetNetscapeVersion@0 -MAPIInitIdle@4 -MAPIInitialize -MAPIInitialize@4 -MAPILogoff@16 -MAPILogon@24 -MAPILogonEx -MAPILogonEx@20 -MAPIOpenFormMgr -MAPIOpenFormMgr@8 -MAPIOpenLocalFormContainer -MAPIOpenLocalFormContainer@4 -MAPIReadMail@24 -MAPIResolveName@24 -MAPISaveMail@24 -MAPISendDocuments@20 -MAPISendMail -MAPISendMail@20 -MAPIUninitialize -MAPIUninitialize@0 -MNLS_CompareStringW@24 -MNLS_IsBadStringPtrW@8 -MNLS_MultiByteToWideChar@24 -MNLS_WideCharToMultiByte@32 -MNLS_lstrcmpW@8 -MNLS_lstrcpyW@8 -MNLS_lstrlenW@4 -MapStorageSCode@4 -OpenIMsgOnIStg@44 -OpenIMsgSession@12 -OpenStreamOnFile -OpenStreamOnFile@24 -OpenTnefStream -OpenTnefStream@28 -OpenTnefStreamEx -OpenTnefStreamEx@32 -PRProviderInit -PpropFindProp@12 -PropCopyMore@16 -RTFSync -RTFSync@12 -ScBinFromHexBounded@12 -ScCopyNotifications@16 -ScCopyProps@16 -ScCountNotifications@12 -ScCountProps@12 -ScCreateConversationIndex@16 -ScDupPropset@16 -ScGenerateMuid@4 -ScInitMapiUtil@4 -ScLocalPathFromUNC@12 -ScMAPIXFromCMC -ScMAPIXFromSMAPI -ScRelocNotifications@20 -ScRelocProps@20 -ScSplEntry -ScUNCFromLocalPath@12 -SetAttribIMsgOnIStg@16 -SwapPlong@8 -SwapPword@8 -SzFindCh@8 -SzFindLastCh@8 -SzFindSz@8 -UFromSz@4 -UNKOBJ_COFree@8 -UNKOBJ_Free@8 -UNKOBJ_FreeRows@8 -UNKOBJ_ScAllocate@12 -UNKOBJ_ScAllocateMore@16 -UNKOBJ_ScCOAllocate@12 -UNKOBJ_ScCOReallocate@12 -UNKOBJ_ScSzFromIdsAlloc@20 -UlAddRef@4 -UlFromSzHex@4 -UlPropSize@4 -UlRelease@4 -WrapCompressedRTFStream -WrapCompressedRTFStream@12 -WrapProgress@20 -WrapStoreEntryID@24 -__CPPValidateParameters@8 -__ValidateParameters@8 diff --git a/winsup/w32api/lib/mfcuia32.def b/winsup/w32api/lib/mfcuia32.def deleted file mode 100644 index fb954e367..000000000 --- a/winsup/w32api/lib/mfcuia32.def +++ /dev/null @@ -1,12 +0,0 @@ -LIBRARY MFCUIA32.DLL -EXPORTS -OleUIAddVerbMenu@36 -OleUIBusy@4 -OleUICanConvertOrActivateAs@12 -OleUIChangeIcon@4 -OleUIConvert@4 -OleUIEditLinks@4 -OleUIInsertObject@4 -OleUIPasteSpecial@4 -OleUIPromptUser -OleUIUpdateLinks@16 diff --git a/winsup/w32api/lib/mgmtapi.def b/winsup/w32api/lib/mgmtapi.def deleted file mode 100644 index 2e4619375..000000000 --- a/winsup/w32api/lib/mgmtapi.def +++ /dev/null @@ -1,12 +0,0 @@ -LIBRARY MGMTAPI.DLL -EXPORTS -SnmpMgrClose@4 -SnmpMgrGetTrap@24 -SnmpMgrMIB2Disk@8 -SnmpMgrOidToStr@8 -SnmpMgrOpen@16 -SnmpMgrRequest@20 -SnmpMgrStrToOid@8 -SnmpMgrTrapListen@4 -dbginit@8 -serverTrapThread@4 diff --git a/winsup/w32api/lib/mpr.def b/winsup/w32api/lib/mpr.def deleted file mode 100644 index f8dde41f7..000000000 --- a/winsup/w32api/lib/mpr.def +++ /dev/null @@ -1,72 +0,0 @@ -LIBRARY MPR.DLL -EXPORTS -MultinetGetConnectionPerformanceA@8 -MultinetGetConnectionPerformanceW@8 -RestoreConnectionA0@8 -WNetAddConnection2A@16 -WNetAddConnection2W@16 -WNetAddConnection3A@20 -WNetAddConnection3W@20 -WNetAddConnectionA@12 -WNetAddConnectionW@12 -WNetCancelConnection2A@12 -WNetCancelConnection2W@12 -WNetCancelConnectionA@8 -WNetCancelConnectionW@8 -WNetClearConnections@4 -WNetCloseEnum@4 -WNetConnectionDialog1A@4 -WNetConnectionDialog1W@4 -WNetConnectionDialog2@16 -WNetConnectionDialog@8 -WNetDirectoryNotifyA@12 -WNetDirectoryNotifyW@12 -WNetDisconnectDialog1A@4 -WNetDisconnectDialog1W@4 -WNetDisconnectDialog2@16 -WNetDisconnectDialog@8 -WNetEnumResourceA@16 -WNetEnumResourceW@16 -WNetFMXEditPerm@12 -WNetFMXGetPermCaps@4 -WNetFMXGetPermHelp@24 -WNetFormatNetworkNameA@24 -WNetFormatNetworkNameW@24 -WNetGetConnection2A@12 -WNetGetConnection2W@12 -WNetGetConnectionA@12 -WNetGetConnectionW@12 -WNetGetDirectoryTypeA@12 -WNetGetDirectoryTypeW@12 -WNetGetFormatNameProc@4 -WNetGetLastErrorA@20 -WNetGetLastErrorW@20 -WNetGetNetworkInformationA@8 -WNetGetNetworkInformationW@8 -WNetGetPropertyTextA@24 -WNetGetPropertyTextW@24 -WNetGetProviderNameA@12 -WNetGetProviderNameW@12 -WNetGetResourceInformationA@16 -WNetGetResourceInformationW@16 -WNetGetResourceParentA@12 -WNetGetResourceParentW@12 -WNetGetSearchDialog@4 -WNetGetUniversalNameA@16 -WNetGetUniversalNameW@16 -WNetGetUserA@12 -WNetGetUserW@12 -WNetLogonNotify@36 -WNetOpenEnumA@20 -WNetOpenEnumW@20 -WNetPasswordChangeNotify@32 -WNetPropertyDialogA@20 -WNetPropertyDialogW@20 -WNetRestoreConnection@8 -WNetSetConnectionA@12 -WNetSetConnectionW@12 -WNetSetLastErrorA@12 -WNetSetLastErrorW@12 -WNetSupportGlobalEnum@4 -WNetUseConnectionA@32 -WNetUseConnectionW@32 diff --git a/winsup/w32api/lib/msacm32.def b/winsup/w32api/lib/msacm32.def deleted file mode 100644 index 356b3aff1..000000000 --- a/winsup/w32api/lib/msacm32.def +++ /dev/null @@ -1,46 +0,0 @@ -LIBRARY MSACM32.DLL -EXPORTS -XRegThunkEntry@36 -acmDriverAddA@20 -acmDriverAddW@20 -acmDriverClose@8 -acmDriverDetailsA@12 -acmDriverDetailsW@12 -acmDriverEnum@12 -acmDriverID@12 -acmDriverMessage@16 -acmDriverOpen@12 -acmDriverPriority@12 -acmDriverRemove@8 -acmFilterChooseA@4 -acmFilterChooseW@4 -acmFilterDetailsA@12 -acmFilterDetailsW@12 -acmFilterEnumA@20 -acmFilterEnumW@20 -acmFilterTagDetailsA@12 -acmFilterTagDetailsW@12 -acmFilterTagEnumA@20 -acmFilterTagEnumW@20 -acmFormatChooseA@4 -acmFormatChooseW@4 -acmFormatDetailsA@12 -acmFormatDetailsW@12 -acmFormatEnumA@20 -acmFormatEnumW@20 -acmFormatSuggest@20 -acmFormatTagDetailsA@12 -acmFormatTagDetailsW@12 -acmFormatTagEnumA@20 -acmFormatTagEnumW@20 -acmGetVersion@0 -acmMessage32@24 -acmMetrics@12 -acmStreamClose@8 -acmStreamConvert@12 -acmStreamMessage@16 -acmStreamOpen@32 -acmStreamPrepareHeader@12 -acmStreamReset@8 -acmStreamSize@16 -acmStreamUnprepareHeader@12 diff --git a/winsup/w32api/lib/msvcp60.def b/winsup/w32api/lib/msvcp60.def deleted file mode 100644 index f6a5dc93f..000000000 --- a/winsup/w32api/lib/msvcp60.def +++ /dev/null @@ -1,71 +0,0 @@ -;Submitted by: Danny Smith -;Only the C functions are listed. Most of these have been commented out since -;I don't know what they are and can't test them. Some look like data exports -;for C++ math functions (E.G.: _Xbig). -LIBRARY MSVCP60.DLL -EXPORTS -;_Cosh -;_Denorm -;_Dnorm -;_Dscale -;_Dtest -;_Eps -;_Exp -;_FCosh -;_FDenorm -;_FDnorm -;_FDscale -;_FDtest -;_FEps -;_FExp -;_FInf -;_FNan -;_FRteps -;_FSinh -;_FSnan -;_FXbig -;_Getcoll -;_Getctype -;_Getcvt -;_Hugeval -;_Inf -;_LCosh -;_LDenorm -;_LDscale -;_LDtest -;_LEps -;_LExp -;_LInf -;_LNan -;_LPoly -;_LRteps -;_LSinh -;_LSnan -;_LXbig -;_Mbrtowc -;_Nan -;_Poly -;_Rteps -;_Sinh -;_Snan -;_Stod -;_Stof -;_Stold -;_Strcoll -;_Strxfrm -;_Tolower -;_Toupper -;_Wcrtomb -;__Wcrtomb_lk -;_Xbig - -btowc -mbrlen -mbrtowc -mbsrtowcs -towctrans -wcrtomb -wcsrtombs -wctob -wctrans -wctype \ No newline at end of file diff --git a/winsup/w32api/lib/mswsock.def b/winsup/w32api/lib/mswsock.def deleted file mode 100644 index 3e74f87a1..000000000 --- a/winsup/w32api/lib/mswsock.def +++ /dev/null @@ -1,28 +0,0 @@ -LIBRARY MSWSOCK.DLL -EXPORTS -AcceptEx@32 -EnumProtocolsA@12 -EnumProtocolsW@12 -GetAcceptExSockaddrs@32 -GetAddressByNameA@40 -GetAddressByNameW@40 -GetNameByTypeA@12 -GetNameByTypeW@12 -GetServiceA@28 -GetServiceW@28 -GetTypeByNameA@8 -GetTypeByNameW@8 -MigrateWinsockConfiguration@12 -NPLoadNameSpaces@12 -SetServiceA@24 -SetServiceW@24 -TransmitFile@28 -WSARecvEx@16 -dn_expand@20 -getnetbyname@4 -inet_network@4 -rcmd@24 -rexec@24 -rresvport@4 -s_perror@8 -sethostname@8 diff --git a/winsup/w32api/lib/nddeapi.def b/winsup/w32api/lib/nddeapi.def deleted file mode 100644 index 4016baf53..000000000 --- a/winsup/w32api/lib/nddeapi.def +++ /dev/null @@ -1,30 +0,0 @@ -LIBRARY NDDEAPI.DLL -EXPORTS -NDdeGetErrorStringA@12 -NDdeGetErrorStringW@12 -NDdeGetShareSecurityA@24 -NDdeGetShareSecurityW@24 -NDdeGetTrustedShareA@20 -NDdeGetTrustedShareW@20 -NDdeIsValidAppTopicListA@4 -NDdeIsValidAppTopicListW@4 -NDdeIsValidShareNameA@4 -NDdeIsValidShareNameW@4 -NDdeSetShareSecurityA@16 -NDdeSetShareSecurityW@16 -NDdeSetTrustedShareA@12 -NDdeSetTrustedShareW@12 -NDdeShareAddA@20 -NDdeShareAddW@20 -NDdeShareDelA@12 -NDdeShareDelW@12 -NDdeShareEnumA@24 -NDdeShareEnumW@24 -NDdeShareGetInfoA@28 -NDdeShareGetInfoW@28 -NDdeShareSetInfoA@24 -NDdeShareSetInfoW@24 -NDdeSpecialCommandA@24 -NDdeSpecialCommandW@24 -NDdeTrustedShareEnumA@24 -NDdeTrustedShareEnumW@24 diff --git a/winsup/w32api/lib/netapi32.def b/winsup/w32api/lib/netapi32.def deleted file mode 100644 index e8d0ef438..000000000 --- a/winsup/w32api/lib/netapi32.def +++ /dev/null @@ -1,247 +0,0 @@ -LIBRARY NETAPI32.DLL -EXPORTS -I_BrowserDebugCall@12 -I_BrowserDebugTrace@8 -I_BrowserQueryOtherDomains@16 -I_BrowserQueryStatistics@8 -I_BrowserResetNetlogonState@4 -I_BrowserResetStatistics@4 -I_BrowserServerEnum@44 -I_BrowserSetNetlogonState@16 -I_NetAccountDeltas@48 -I_NetAccountSync@48 -I_NetDatabaseDeltas@32 -I_NetDatabaseRedo@28 -I_NetDatabaseSync2@36 -I_NetDatabaseSync@32 -I_NetGetDCList@16 -I_NetListCanonicalize@36 -I_NetListTraverse@12 -I_NetLogonControl2@20 -I_NetLogonControl@16 -I_NetLogonSamLogoff@24 -I_NetLogonSamLogon@36 -I_NetLogonUasLogoff@12 -I_NetLogonUasLogon@12 -I_NetNameCanonicalize@24 -I_NetNameCompare@20 -I_NetNameValidate@16 -I_NetPathCanonicalize@28 -I_NetPathCompare@20 -I_NetPathType@16 -I_NetServerAuthenticate2@28 -I_NetServerAuthenticate@24 -I_NetServerPasswordSet@28 -I_NetServerReqChallenge@16 -I_NetServerSetServiceBits@16 -NetAlertRaise@12 -NetAlertRaiseEx@16 -NetApiBufferAllocate@8 -NetApiBufferFree@4 -NetApiBufferReallocate@12 -NetApiBufferSize@8 -NetAuditClear@12 -NetAuditRead@44 -NetAuditWrite@20 -NetBrowserStatisticsGet@12 -NetConfigGet@16 -NetConfigGetAll@12 -NetConfigSet@28 -NetConnectionEnum@32 -NetErrorLogClear@12 -NetErrorLogRead@44 -NetErrorLogWrite@32 -NetFileClose@8 -NetFileEnum@36 -NetFileGetInfo@16 -NetGetAnyDCName@12 -NetGetDCName@12 -NetGetDisplayInformationIndex@16 -NetGroupAdd@16 -NetGroupAddUser@12 -NetGroupDel@8 -NetGroupDelUser@12 -NetGroupEnum@28 -NetGroupGetInfo@16 -NetGroupGetUsers@32 -NetGroupSetInfo@20 -NetGroupSetUsers@20 -NetLocalGroupAdd@16 -NetLocalGroupAddMember@12 -NetLocalGroupAddMembers@20 -NetLocalGroupDel@8 -NetLocalGroupDelMember@12 -NetLocalGroupDelMembers@20 -NetLocalGroupEnum@28 -NetLocalGroupGetInfo@16 -NetLocalGroupGetMembers@32 -NetLocalGroupSetInfo@20 -NetLocalGroupSetMembers@20 -NetMessageBufferSend@20 -NetMessageNameAdd@8 -NetMessageNameDel@8 -NetMessageNameEnum@28 -NetMessageNameGetInfo@16 -NetQueryDisplayInformation@28 -NetRemoteComputerSupports@12 -NetRemoteTOD@8 -NetReplExportDirAdd@16 -NetReplExportDirDel@8 -NetReplExportDirEnum@28 -NetReplExportDirGetInfo@16 -NetReplExportDirLock@8 -NetReplExportDirSetInfo@20 -NetReplExportDirUnlock@12 -NetReplGetInfo@12 -NetReplImportDirAdd@16 -NetReplImportDirDel@8 -NetReplImportDirEnum@28 -NetReplImportDirGetInfo@16 -NetReplImportDirLock@8 -NetReplImportDirUnlock@12 -NetReplSetInfo@16 -NetRplAdapterAdd@16 -NetRplAdapterDel@8 -NetRplAdapterEnum@28 -NetRplBootAdd@16 -NetRplBootDel@12 -NetRplBootEnum@28 -NetRplClose@4 -NetRplConfigAdd@16 -NetRplConfigDel@8 -NetRplConfigEnum@32 -NetRplGetInfo@12 -NetRplOpen@8 -NetRplProfileAdd@16 -NetRplProfileClone@16 -NetRplProfileDel@8 -NetRplProfileEnum@32 -NetRplProfileGetInfo@16 -NetRplProfileSetInfo@20 -NetRplSetInfo@16 -NetRplSetSecurity@16 -NetRplVendorAdd@16 -NetRplVendorDel@8 -NetRplVendorEnum@28 -NetRplWkstaAdd@16 -NetRplWkstaClone@24 -NetRplWkstaDel@8 -NetRplWkstaEnum@32 -NetRplWkstaGetInfo@16 -NetRplWkstaSetInfo@20 -NetScheduleJobAdd@12 -NetScheduleJobDel@12 -NetScheduleJobEnum@24 -NetScheduleJobGetInfo@12 -NetServerDiskEnum@28 -NetServerEnum@36 -NetServerGetInfo@12 -NetServerSetInfo@16 -NetServerTransportAdd@12 -NetServerTransportDel@12 -NetServerTransportEnum@28 -NetServiceControl@20 -NetServiceEnum@28 -NetServiceGetInfo@16 -NetServiceInstall@20 -NetSessionDel@12 -NetSessionEnum@36 -NetSessionGetInfo@20 -NetShareAdd@16 -NetShareCheck@12 -NetShareDel@12 -NetShareDelSticky@12 -NetShareEnum@28 -NetShareEnumSticky@28 -NetShareGetInfo@16 -NetShareSetInfo@20 -NetStatisticsGet@20 -NetUseAdd@16 -NetUseDel@12 -NetUseEnum@28 -NetUseGetInfo@16 -NetUserAdd@16 -NetUserChangePassword@16 -NetUserDel@8 -NetUserEnum@32 -NetUserGetGroups@28 -NetUserGetInfo@16 -NetUserGetLocalGroups@32 -NetUserModalsGet@12 -NetUserModalsSet@16 -NetUserSetGroups@20 -NetUserSetInfo@20 -NetWkstaGetInfo@12 -NetWkstaSetInfo@16 -NetWkstaTransportAdd@16 -NetWkstaTransportDel@12 -NetWkstaTransportEnum@28 -NetWkstaUserEnum@28 -NetWkstaUserGetInfo@12 -NetWkstaUserSetInfo@16 -NetapipBufferAllocate@8 -Netbios@4 -NetpAccessCheckAndAudit@20 -NetpAllocConfigName@16 -NetpAllocStrFromWStr@4 -NetpAllocWStrFromStr@4 -NetpAllocWStrFromWStr@4 -NetpApiStatusToNtStatus@4 -NetpAssertFailed@16 -NetpCloseConfigData@4 -NetpCopyStringToBuffer@20 -NetpCreateSecurityObject@24 -NetpDbgDisplayServerInfo@8 -NetpDbgPrint -NetpDeleteSecurityObject@4 -NetpGetComputerName@4 -NetpGetConfigBool@16 -NetpGetConfigDword@16 -NetpGetConfigTStrArray@12 -NetpGetConfigValue@12 -NetpGetDomainName@4 -NetpGetFileSecurity@16 -NetpGetPrivilege@8 -NetpHexDump@8 -NetpInitOemString@8 -NetpIsRemote@16 -NetpIsUncComputerNameValid@4 -NetpLocalTimeZoneOffset@0 -NetpLogonPutUnicodeString@12 -NetpNetBiosAddName@12 -NetpNetBiosCall@16 -NetpNetBiosDelName@8 -NetpNetBiosGetAdapterNumbers@8 -NetpNetBiosHangup@8 -NetpNetBiosReceive@24 -NetpNetBiosReset@4 -NetpNetBiosSend@16 -NetpNetBiosStatusToApiStatus@4 -NetpNtStatusToApiStatus@4 -NetpOpenConfigData@16 -NetpPackString@12 -NetpReleasePrivilege@0 -NetpSetConfigBool@12 -NetpSetConfigDword@12 -NetpSetConfigTStrArray@12 -NetpSetFileSecurity@12 -NetpSmbCheck@20 -NetpStringToNetBiosName@16 -NetpTStrArrayEntryCount@4 -NetpwNameCanonicalize@20 -NetpwNameCompare@16 -NetpwNameValidate@12 -NetpwPathCanonicalize@24 -NetpwPathCompare@16 -NetpwPathType@12 -NlBindingAddServerToCache@4 -NlBindingRemoveServerFromCache@4 -RxNetAccessAdd@16 -RxNetAccessDel@8 -RxNetAccessEnum@36 -RxNetAccessGetInfo@16 -RxNetAccessGetUserPerms@16 -RxNetAccessSetInfo@20 -RxNetServerEnum@40 -RxNetUserPasswordSet@16 -RxRemoteApi diff --git a/winsup/w32api/lib/odbc32.def b/winsup/w32api/lib/odbc32.def deleted file mode 100644 index d9205174c..000000000 --- a/winsup/w32api/lib/odbc32.def +++ /dev/null @@ -1,185 +0,0 @@ -LIBRARY ODBC32.dll -EXPORTS -CloseODBCPerfData@0 -CollectODBCPerfData@16 -CursorLibLockDbc@8 -CursorLibLockDesc@8 -CursorLibLockStmt@8 -CursorLibTransact@12 -LockHandle@12 -MpHeapAlloc -MpHeapCompact -MpHeapCreate -MpHeapDestroy -MpHeapFree -MpHeapReAlloc -MpHeapSize -MpHeapValidate -ODBCGetTryWaitValue@0 -ODBCInternalConnectW@36 -ODBCQualifyFileDSNW@4 -ODBCSetTryWaitValue@4 -ODBCSharedPerfMon -ODBCSharedTraceFlag -ODBCSharedVSFlag -OpenODBCPerfData@4 -PostComponentError@4 -PostODBCComponentError@4 -PostODBCError@16 -SQLAllocConnect@8 -SQLAllocEnv@4 -SQLAllocHandle@12 -SQLAllocHandleStd@12 -SQLAllocStmt@8 -SQLBindCol@24 -SQLBindParam@32 -SQLBindParameter@40 -SQLBrowseConnect@24 -SQLBrowseConnectA@24 -SQLBrowseConnectW@24 -SQLBulkOperations@8 -SQLCancel@4 -SQLCloseCursor@4 -SQLColAttribute@28 -SQLColAttributeA@28 -SQLColAttributeW@28 -SQLColAttributes@28 -SQLColAttributesA@28 -SQLColAttributesW@28 -SQLColumnPrivileges@36 -SQLColumnPrivilegesA@36 -SQLColumnPrivilegesW@36 -SQLColumns@36 -SQLColumnsA@36 -SQLColumnsW@36 -SQLConnect@28 -SQLConnectA@28 -SQLConnectW@28 -SQLCopyDesc@8 -SQLDataSources@32 -SQLDataSourcesA@32 -SQLDataSourcesW@32 -SQLDescribeCol@36 -SQLDescribeColA@36 -SQLDescribeColW@36 -SQLDescribeParam@24 -SQLDisconnect@4 -SQLDriverConnect@32 -SQLDriverConnectA@32 -SQLDriverConnectW@32 -SQLDrivers@32 -SQLDriversA@32 -SQLDriversW@32 -SQLEndTran@12 -SQLError@32 -SQLErrorA@32 -SQLErrorW@32 -SQLExecDirect@12 -SQLExecDirectA@12 -SQLExecDirectW@12 -SQLExecute@4 -SQLExtendedFetch@20 -SQLFetch@4 -SQLFetchScroll@12 -SQLForeignKeys@52 -SQLForeignKeysA@52 -SQLForeignKeysW@52 -SQLFreeConnect@4 -SQLFreeEnv@4 -SQLFreeHandle@8 -SQLFreeStmt@8 -SQLGetConnectAttr@20 -SQLGetConnectAttrA@20 -SQLGetConnectAttrW@20 -SQLGetConnectOption@12 -SQLGetConnectOptionA@12 -SQLGetConnectOptionW@12 -SQLGetCursorName@16 -SQLGetCursorNameA@16 -SQLGetCursorNameW@16 -SQLGetData@24 -SQLGetDescField@24 -SQLGetDescFieldA@24 -SQLGetDescFieldW@24 -SQLGetDescRec@44 -SQLGetDescRecA@44 -SQLGetDescRecW@44 -SQLGetDiagField@28 -SQLGetDiagFieldA@28 -SQLGetDiagFieldW@28 -SQLGetDiagRec@32 -SQLGetDiagRecA@32 -SQLGetDiagRecW@32 -SQLGetEnvAttr@20 -SQLGetFunctions@12 -SQLGetInfo@20 -SQLGetInfoA@20 -SQLGetInfoW@20 -SQLGetStmtAttr@20 -SQLGetStmtAttrA@20 -SQLGetStmtAttrW@20 -SQLGetStmtOption@12 -SQLGetTypeInfo@8 -SQLGetTypeInfoA@8 -SQLGetTypeInfoW@8 -SQLMoreResults@4 -SQLNativeSql@24 -SQLNativeSqlA@24 -SQLNativeSqlW@24 -SQLNumParams@8 -SQLNumResultCols@8 -SQLParamData@8 -SQLParamOptions@12 -SQLPrepare@12 -SQLPrepareA@12 -SQLPrepareW@12 -SQLPrimaryKeys@28 -SQLPrimaryKeysA@28 -SQLPrimaryKeysW@28 -SQLProcedureColumns@36 -SQLProcedureColumnsA@36 -SQLProcedureColumnsW@36 -SQLProcedures@28 -SQLProceduresA@28 -SQLProceduresW@28 -SQLPutData@12 -SQLRowCount@8 -SQLSetConnectAttr@16 -SQLSetConnectAttrA@16 -SQLSetConnectAttrW@16 -SQLSetConnectOption@12 -SQLSetConnectOptionA@12 -SQLSetConnectOptionW@12 -SQLSetCursorName@12 -SQLSetCursorNameA@12 -SQLSetCursorNameW@12 -SQLSetDescField@20 -SQLSetDescFieldA@20 -SQLSetDescFieldW@20 -SQLSetDescRec@40 -SQLSetEnvAttr@16 -SQLSetParam@32 -SQLSetPos@16 -SQLSetScrollOptions@16 -SQLSetStmtAttr@16 -SQLSetStmtAttrA@16 -SQLSetStmtAttrW@16 -SQLSetStmtOption@12 -SQLSpecialColumns@40 -SQLSpecialColumnsA@40 -SQLSpecialColumnsW@40 -SQLStatistics@36 -SQLStatisticsA@36 -SQLStatisticsW@36 -SQLTablePrivileges@28 -SQLTablePrivilegesA@28 -SQLTablePrivilegesW@28 -SQLTables@36 -SQLTablesA@36 -SQLTablesW@36 -SQLTransact@12 -SearchStatusCode@8 -VFreeErrors@4 -VRetrieveDriverErrorsRowCol@24 -ValidateErrorQueue@8 -g_hHeapMalloc diff --git a/winsup/w32api/lib/odbccp32.def b/winsup/w32api/lib/odbccp32.def deleted file mode 100644 index f8fdfd738..000000000 --- a/winsup/w32api/lib/odbccp32.def +++ /dev/null @@ -1,54 +0,0 @@ -LIBRARY ODBCCP32.dll -EXPORTS -SQLConfigDataSource@16 -SQLConfigDataSourceW@16 -SQLConfigDriver@28 -SQLConfigDriverW@28 -SQLCreateDataSource@8 -SQLCreateDataSourceW@8 -SQLGetAvailableDrivers@16 -SQLGetAvailableDriversW@16 -SQLGetConfigMode@4 -SQLGetInstalledDrivers@12 -SQLGetInstalledDriversW@12 -SQLGetPrivateProfileString@24 -SQLGetPrivateProfileStringW@24 -SQLGetTranslator@32 -SQLGetTranslatorW@32 -SQLInstallDriver@20 -SQLInstallDriverEx@28 -SQLInstallDriverExW@28 -SQLInstallDriverManager@12 -SQLInstallDriverManagerW@12 -SQLInstallDriverW@20 -SQLInstallODBC@16 -SQLInstallODBCW@16 -SQLInstallTranslator@32 -SQLInstallTranslatorEx@28 -SQLInstallTranslatorExW@28 -SQLInstallTranslatorW@32 -SQLInstallerError@20 -SQLInstallerErrorW@20 -SQLManageDataSources@4 -SQLPostInstallerError@8 -SQLPostInstallerErrorW@8 -SQLReadFileDSN@24 -SQLReadFileDSNW@24 -SQLRemoveDSNFromIni@4 -SQLRemoveDSNFromIniW@4 -SQLRemoveDefaultDataSource@0 -SQLRemoveDriver@12 -SQLRemoveDriverManager@4 -SQLRemoveDriverW@12 -SQLRemoveTranslator@8 -SQLRemoveTranslatorW@8 -SQLSetConfigMode@4 -SQLValidDSN@4 -SQLValidDSNW@4 -SQLWriteDSNToIni@8 -SQLWriteDSNToIniW@8 -SQLWriteFileDSN@16 -SQLWriteFileDSNW@16 -SQLWritePrivateProfileString@16 -SQLWritePrivateProfileStringW@16 -ODBC___GetSetupProc@4 \ No newline at end of file diff --git a/winsup/w32api/lib/ole32.def b/winsup/w32api/lib/ole32.def deleted file mode 100644 index ebac6bf7f..000000000 --- a/winsup/w32api/lib/ole32.def +++ /dev/null @@ -1,253 +0,0 @@ -LIBRARY OLE32.dll -EXPORTS -BindMoniker@16 -CLIPFORMAT_UserFree@8 -CLIPFORMAT_UserMarshal@12 -CLIPFORMAT_UserSize@12 -CLIPFORMAT_UserUnmarshal@12 -CLSIDFromProgID@8 -CLSIDFromString@8 -CoAddRefServerProcess@0 -CoBuildVersion@0 -CoCopyProxy@8 -CoCreateFreeThreadedMarshaler@8 -CoCreateGuid@4 -CoCreateInstance@20 -CoCreateInstanceEx@24 -CoDisconnectObject@8 -CoDosDateTimeToFileTime@12 -CoFileTimeNow@4 -CoFileTimeToDosDateTime@12 -CoFreeAllLibraries@0 -CoFreeLibrary@4 -CoFreeUnusedLibraries@0 -CoGetCallContext@8 -CoGetCallerTID@4 -CoGetClassObject@20 -CoGetCurrentLogicalThreadId@4 -CoGetCurrentProcess@0 -CoGetInstanceFromFile@32 -CoGetInstanceFromIStorage@28 -CoGetInterfaceAndReleaseStream@12 -CoGetMalloc@8 -CoGetMarshalSizeMax@24 -CoGetObject@16 -CoGetPSClsid@8 -CoGetStandardMarshal@24 -CoGetState@4 -CoGetTreatAsClass@8 -CoImpersonateClient@0 -CoInitialize@4 -CoInitializeEx@8 -CoInitializeSecurity@36 -CoInitializeWOW@8 -CoIsHandlerConnected@4 -CoIsOle1Class@4 -CoLoadLibrary@8 -CoLockObjectExternal@12 -CoMarshalHresult@8 -CoMarshalInterThreadInterfaceInStream@12 -CoMarshalInterface@24 -CoQueryAuthenticationServices@8 -CoQueryClientBlanket@28 -CoQueryProxyBlanket@32 -CoQueryReleaseObject@4 -CoRegisterChannelHook@8 -CoRegisterClassObject@20 -CoRegisterMallocSpy@4 -CoRegisterMessageFilter@8 -CoRegisterPSClsid@8 -CoRegisterSurrogate@4 -CoReleaseMarshalData@4 -CoReleaseServerProcess@0 -CoResumeClassObjects@0 -CoRevertToSelf@0 -CoRevokeClassObject@4 -CoRevokeMallocSpy@0 -CoSetProxyBlanket@32 -CoSetState@4 -CoSuspendClassObjects@0 -CoSwitchCallContext@8 -CoTaskMemAlloc@4 -CoTaskMemFree@4 -CoTaskMemRealloc@8 -CoTreatAsClass@8 -CoUninitialize@0 -CoUnloadingWOW@4 -CoUnmarshalHresult@8 -CoUnmarshalInterface@12 -CreateAntiMoniker@4 -CreateBindCtx@8 -CreateClassMoniker@8 -CreateDataAdviseHolder@4 -CreateDataCache@16 -CreateFileMoniker@8 -CreateGenericComposite@12 -CreateILockBytesOnHGlobal@12 -CreateItemMoniker@12 -CreateOleAdviseHolder@4 -CreatePointerMoniker@8 -CreateStreamOnHGlobal@12 -DllDebugObjectRPCHook@8 -DllGetClassObjectWOW@12 -DoDragDrop@16 -EnableHookObject@8 -FreePropVariantArray@8 -GetClassFile@8 -GetConvertStg@4 -GetDocumentBitStg@4 -GetHGlobalFromILockBytes@8 -GetHGlobalFromStream@8 -GetHookInterface@4 -GetRunningObjectTable@8 -HACCEL_UserFree@8 -HACCEL_UserMarshal@12 -HACCEL_UserSize@12 -HACCEL_UserUnmarshal@12 -HBITMAP_UserFree@8 -HBITMAP_UserMarshal@12 -HBITMAP_UserSize@12 -HBITMAP_UserUnmarshal@12 -HBRUSH_UserFree@8 -HBRUSH_UserMarshal@12 -HBRUSH_UserSize@12 -HBRUSH_UserUnmarshal@12 -HENHMETAFILE_UserFree@8 -HENHMETAFILE_UserMarshal@12 -HENHMETAFILE_UserSize@12 -HENHMETAFILE_UserUnmarshal@12 -HGLOBAL_UserFree@8 -HGLOBAL_UserMarshal@12 -HGLOBAL_UserSize@12 -HGLOBAL_UserUnmarshal@12 -HMENU_UserFree@8 -HMENU_UserMarshal@12 -HMENU_UserSize@12 -HMENU_UserUnmarshal@12 -HMETAFILEPICT_UserFree@8 -HMETAFILEPICT_UserMarshal@12 -HMETAFILEPICT_UserSize@12 -HMETAFILEPICT_UserUnmarshal@12 -HMETAFILE_UserFree@8 -HMETAFILE_UserMarshal@12 -HMETAFILE_UserSize@12 -HMETAFILE_UserUnmarshal@12 -HPALETTE_UserFree@8 -HPALETTE_UserMarshal@12 -HPALETTE_UserSize@12 -HPALETTE_UserUnmarshal@12 -HWND_UserFree@8 -HWND_UserMarshal@12 -HWND_UserSize@12 -HWND_UserUnmarshal@12 -IIDFromString@8 -IsAccelerator@16 -IsEqualGUID@8 -IsValidIid@4 -IsValidInterface@4 -IsValidPtrIn@8 -IsValidPtrOut@8 -MkParseDisplayName@16 -MonikerCommonPrefixWith@12 -MonikerRelativePathTo@16 -OleBuildVersion@0 -OleConvertIStorageToOLESTREAM@8 -OleConvertIStorageToOLESTREAMEx@28 -OleConvertOLESTREAMToIStorage@12 -OleConvertOLESTREAMToIStorageEx@28 -OleCreate@28 -OleCreateDefaultHandler@16 -OleCreateEmbeddingHelper@24 -OleCreateEx@48 -OleCreateFromData@28 -OleCreateFromDataEx@48 -OleCreateFromFile@32 -OleCreateFromFileEx@52 -OleCreateLink@28 -OleCreateLinkEx@48 -OleCreateLinkFromData@28 -OleCreateLinkFromDataEx@48 -OleCreateLinkToFile@28 -OleCreateLinkToFileEx@48 -OleCreateMenuDescriptor@8 -OleCreateStaticFromData@28 -OleDestroyMenuDescriptor@4 -OleDoAutoConvert@8 -OleDraw@16 -OleDuplicateData@12 -OleFlushClipboard@0 -OleGetAutoConvert@8 -OleGetClipboard@4 -OleGetIconOfClass@12 -OleGetIconOfFile@8 -OleInitialize@4 -OleInitializeWOW@8 -OleIsCurrentClipboard@4 -OleIsRunning@4 -OleLoad@16 -OleLoadFromStream@12 -OleLockRunning@12 -OleMetafilePictFromIconAndLabel@16 -OleNoteObjectVisible@8 -OleQueryCreateFromData@4 -OleQueryLinkFromData@4 -OleRegEnumFormatEtc@12 -OleRegEnumVerbs@8 -OleRegGetMiscStatus@12 -OleRegGetUserType@12 -OleRun@4 -OleSave@12 -OleSaveToStream@8 -OleSetAutoConvert@8 -OleSetClipboard@4 -OleSetContainedObject@8 -OleSetMenuDescriptor@20 -OleTranslateAccelerator@12 -OleUninitialize@0 -OpenOrCreateStream@12 -ProgIDFromCLSID@8 -PropSysAllocString@4 -PropSysFreeString@4 -PropVariantClear@4 -PropVariantCopy@8 -ReadClassStg@8 -ReadClassStm@8 -ReadFmtUserTypeStg@12 -ReadOleStg@24 -ReadStringStream@8 -RegisterDragDrop@8 -ReleaseStgMedium@4 -RevokeDragDrop@4 -SNB_UserFree@8 -SNB_UserMarshal@12 -SNB_UserSize@12 -SNB_UserUnmarshal@12 -STGMEDIUM_UserFree@8 -STGMEDIUM_UserMarshal@12 -STGMEDIUM_UserSize@12 -STGMEDIUM_UserUnmarshal@12 -SetConvertStg@8 -SetDocumentBitStg@8 -StgCreateDocfile@16 -StgCreateDocfileOnILockBytes@16 -StgGetIFillLockBytesOnFile@8 -StgGetIFillLockBytesOnILockBytes@8 -StgIsStorageFile@4 -StgIsStorageILockBytes@4 -StgOpenAsyncDocfileOnIFillLockBytes@16 -StgOpenStorage@24 -StgOpenStorageOnILockBytes@24 -StgSetTimes@16 -StringFromCLSID@8 -StringFromGUID2@12 -StringFromIID@8 -UpdateDCOMSettings@0 -UtConvertDvtd16toDvtd32@12 -UtConvertDvtd32toDvtd16@12 -UtGetDvtd16Info@8 -UtGetDvtd32Info@8 -WriteClassStg@8 -WriteClassStm@8 -WriteFmtUserTypeStg@12 -WriteOleStg@16 -WriteStringStream@8 diff --git a/winsup/w32api/lib/oleaut32.def b/winsup/w32api/lib/oleaut32.def deleted file mode 100644 index fed406574..000000000 --- a/winsup/w32api/lib/oleaut32.def +++ /dev/null @@ -1,355 +0,0 @@ -LIBRARY OLEAUT32.DLL -EXPORTS -BSTR_UserFree@8 -BSTR_UserMarshal@12 -BSTR_UserSize@12 -BSTR_UserUnmarshal@12 -BstrFromVector@8 -ClearCustData@4 -CreateDispTypeInfo@12 -CreateErrorInfo@4 -CreateStdDispatch@16 -CreateTypeLib@12 -CreateTypeLib2@12 -DispCallFunc@32 -DispGetIDsOfNames@16 -DispGetParam@20 -DispInvoke@32 -DosDateTimeToVariantTime@12 -GetActiveObject@12 -GetAltMonthNames@8 -GetErrorInfo@8 -GetRecordInfoFromGuids@24 -GetRecordInfoFromTypeInfo@8 -LHashValOfNameSys@12 -LHashValOfNameSysA@12 -LoadRegTypeLib@20 -LoadTypeLib@8 -LoadTypeLibEx@12 -LPSAFEARRAY_Marshal@16 -LPSAFEARRAY_Size@16 -LPSAFEARRAY_Unmarshal@16 -LPSAFEARRAY_UserFree@8 -LPSAFEARRAY_UserMarshal@12 -LPSAFEARRAY_UserSize@12 -LPSAFEARRAY_UserUnmarshal@12 -OaBuildVersion@0 -OleCreateFontIndirect@12 -OleCreatePictureIndirect@16 -OleCreatePropertyFrame@44 -OleCreatePropertyFrameIndirect@4 -OleIconToCursor@8 -OleLoadPicture@20 -OleLoadPictureEx@32 -OleLoadPictureFile@20 -OleLoadPictureFileEx@32 -OleLoadPicturePath@24 -OleSavePictureFile@8 -OleTranslateColor@12 -QueryPathOfRegTypeLib@20 -RegisterActiveObject@16 -RegisterTypeLib@12 -RevokeActiveObject@8 -SafeArrayAccessData@8 -SafeArrayAllocData@4 -SafeArrayAllocDescriptor@8 -SafeArrayAllocDescriptorEx@12 -SafeArrayCopy@8 -SafeArrayCopyData@8 -SafeArrayCreate@12 -SafeArrayCreateEx@16 -SafeArrayCreateVector@12 -SafeArrayCreateVectorEx@16 -SafeArrayDestroy@4 -SafeArrayDestroyData@4 -SafeArrayDestroyDescriptor@4 -SafeArrayGetDim@4 -SafeArrayGetElement@12 -SafeArrayGetElemsize@4 -SafeArrayGetIID@8 -SafeArrayGetLBound@12 -SafeArrayGetRecordInfo@8 -SafeArrayGetUBound@12 -SafeArrayGetVartype@8 -SafeArrayLock@4 -SafeArrayPtrOfIndex@12 -SafeArrayPutElement@12 -SafeArrayRedim@8 -SafeArraySetIID@8 -SafeArraySetRecordInfo@8 -SafeArrayUnaccessData@4 -SafeArrayUnlock@4 -SetErrorInfo@8 -SysAllocString@4 -SysAllocStringByteLen@8 -SysAllocStringLen@8 -SysFreeString@4 -SysReAllocString@8 -SysReAllocStringLen@12 -SysStringByteLen@4 -SysStringLen@4 -SystemTimeToVariantTime@8 -UnRegisterTypeLib@20 -UserBSTR_free_inst@4 -UserBSTR_free_local@4 -UserBSTR_from_local@8 -UserBSTR_to_local@8 -UserEXCEPINFO_free_inst@4 -UserEXCEPINFO_free_local@4 -UserEXCEPINFO_from_local@8 -UserEXCEPINFO_to_local@8 -UserHWND_free_inst@4 -UserHWND_free_local@4 -UserHWND_from_local@8 -UserHWND_to_local@8 -UserMSG_free_inst@4 -UserMSG_free_local@4 -UserMSG_from_local@8 -UserMSG_to_local@8 -UserVARIANT_free_inst@4 -UserVARIANT_free_local@4 -UserVARIANT_from_local@8 -UserVARIANT_to_local@8 -VarAbs@8 -VarAdd@12 -VarAnd@12 -VarBoolFromCy@12 -VarBoolFromDate@12 -VarBoolFromDec@8 -VarBoolFromDisp@12 -VarBoolFromI1@8 -VarBoolFromI2@8 -VarBoolFromI4@8 -VarBoolFromR4@8 -VarBoolFromR8@12 -VarBoolFromStr@16 -VarBoolFromUI1@8 -VarBoolFromUI2@8 -VarBoolFromUI4@8 -VarBstrCat@12 -VarBstrCmp@16 -VarBstrFromBool@16 -VarBstrFromCy@20 -VarBstrFromDate@20 -VarBstrFromDec@16 -VarBstrFromDisp@16 -VarBstrFromI1@16 -VarBstrFromI2@16 -VarBstrFromI4@16 -VarBstrFromR4@16 -VarBstrFromR8@20 -VarBstrFromUI1@16 -VarBstrFromUI2@16 -VarBstrFromUI4@16 -VarCat@12 -VarCmp@16 -VarCyAbs@12 -VarCyAdd@20 -VarCyCmp@16 -VarCyCmpR8@16 -VarCyFix@12 -VarCyFromBool@8 -VarCyFromDate@12 -VarCyFromDec@8 -VarCyFromDisp@12 -VarCyFromI1@8 -VarCyFromI2@8 -VarCyFromI4@8 -VarCyFromR4@8 -VarCyFromR8@12 -VarCyFromStr@16 -VarCyFromUI1@8 -VarCyFromUI2@8 -VarCyFromUI4@8 -VarCyInt@12 -VarCyMul@20 -VarCyMulI4@16 -VarCyNeg@12 -VarCyRound@16 -VarCySub@20 -VarDateFromBool@8 -VarDateFromCy@12 -VarDateFromDec@8 -VarDateFromDisp@12 -VarDateFromI1@8 -VarDateFromI2@8 -VarDateFromI4@8 -VarDateFromR4@8 -VarDateFromR8@12 -VarDateFromStr@16 -VarDateFromUdate@12 -VarDateFromUdateEx@16 -VarDateFromUI1@8 -VarDateFromUI2@8 -VarDateFromUI4@8 -VarDecAbs@8 -VarDecAdd@12 -VarDecCmp@8 -VarDecCmpR8@12 -VarDecDiv@12 -VarDecFix@8 -VarDecFromBool@8 -VarDecFromCy@12 -VarDecFromDate@12 -VarDecFromDisp@12 -VarDecFromI1@8 -VarDecFromI2@8 -VarDecFromI4@8 -VarDecFromR4@8 -VarDecFromR8@12 -VarDecFromStr@16 -VarDecFromUI1@8 -VarDecFromUI2@8 -VarDecFromUI4@8 -VarDecInt@8 -VarDecMul@12 -VarDecNeg@8 -VarDecRound@12 -VarDecSub@12 -VarDiv@12 -VarEqv@12 -VarFix@8 -VarFormat@24 -VarFormatCurrency@28 -VarFormatDateTime@16 -VarFormatFromTokens@24 -VarFormatNumber@28 -VarFormatPercent@28 -VarI1FromBool@8 -VarI1FromCy@12 -VarI1FromDate@12 -VarI1FromDec@8 -VarI1FromDisp@12 -VarI1FromI2@8 -VarI1FromI4@8 -VarI1FromR4@8 -VarI1FromR8@12 -VarI1FromStr@16 -VarI1FromUI1@8 -VarI1FromUI2@8 -VarI1FromUI4@8 -VarI2FromBool@8 -VarI2FromCy@12 -VarI2FromDate@12 -VarI2FromDec@8 -VarI2FromDisp@12 -VarI2FromI1@8 -VarI2FromI4@8 -VarI2FromR4@8 -VarI2FromR8@12 -VarI2FromStr@16 -VarI2FromUI1@8 -VarI2FromUI2@8 -VarI2FromUI4@8 -VarI4FromBool@8 -VarI4FromCy@12 -VarI4FromDate@12 -VarI4FromDec@8 -VarI4FromDisp@12 -VarI4FromI1@8 -VarI4FromI2@8 -VarI4FromR4@8 -VarI4FromR8@12 -VarI4FromStr@16 -VarI4FromUI1@8 -VarI4FromUI2@8 -VarI4FromUI4@8 -VARIANT_UserFree@8 -VARIANT_UserMarshal@12 -VARIANT_UserSize@12 -VARIANT_UserUnmarshal@12 -VariantChangeType@16 -VariantChangeTypeEx@20 -VariantClear@4 -VariantCopy@8 -VariantCopyInd@8 -VariantInit@4 -VariantTimeToDosDateTime@16 -VariantTimeToSystemTime@12 -VarIdiv@12 -VarImp@12 -VarInt@8 -VarMod@12 -VarMonthName@16 -VarMul@12 -VarNeg@8 -VarNot@8 -VarNumFromParseNum@16 -VarOr@12 -VarParseNumFromStr@20 -VarPow@12 -VarR4CmpR8@12 -VarR4FromBool@8 -VarR4FromCy@12 -VarR4FromDate@12 -VarR4FromDec@8 -VarR4FromDisp@12 -VarR4FromI1@8 -VarR4FromI2@8 -VarR4FromI4@8 -VarR4FromR8@12 -VarR4FromStr@16 -VarR4FromUI1@8 -VarR4FromUI2@8 -VarR4FromUI4@8 -VarR8FromBool@8 -VarR8FromCy@12 -VarR8FromDate@12 -VarR8FromDec@8 -VarR8FromDisp@12 -VarR8FromI1@8 -VarR8FromI2@8 -VarR8FromI4@8 -VarR8FromR4@8 -VarR8FromStr@16 -VarR8FromUI1@8 -VarR8FromUI2@8 -VarR8FromUI4@8 -VarR8Pow@20 -VarR8Round@16 -VarRound@12 -VarSub@12 -VarTokenizeFormatString@28 -VarUdateFromDate@16 -VarUI1FromBool@8 -VarUI1FromCy@12 -VarUI1FromDate@12 -VarUI1FromDec@8 -VarUI1FromDisp@12 -VarUI1FromI1@8 -VarUI1FromI2@8 -VarUI1FromI4@8 -VarUI1FromR4@8 -VarUI1FromR8@12 -VarUI1FromStr@16 -VarUI1FromUI2@8 -VarUI1FromUI4@8 -VarUI2FromBool@8 -VarUI2FromCy@12 -VarUI2FromDate@12 -VarUI2FromDec@8 -VarUI2FromDisp@12 -VarUI2FromI1@8 -VarUI2FromI2@8 -VarUI2FromI4@8 -VarUI2FromR4@8 -VarUI2FromR8@12 -VarUI2FromStr@16 -VarUI2FromUI1@8 -VarUI2FromUI4@8 -VarUI4FromBool@8 -VarUI4FromCy@12 -VarUI4FromDate@12 -VarUI4FromDec@8 -VarUI4FromDisp@12 -VarUI4FromI1@8 -VarUI4FromI2@8 -VarUI4FromI4@8 -VarUI4FromR4@8 -VarUI4FromR8@12 -VarUI4FromStr@16 -VarUI4FromUI1@8 -VarUI4FromUI2@8 -VarWeekdayName@20 -VarXor@12 -VectorFromBstr@8 diff --git a/winsup/w32api/lib/olecli32.def b/winsup/w32api/lib/olecli32.def deleted file mode 100644 index f02f35e00..000000000 --- a/winsup/w32api/lib/olecli32.def +++ /dev/null @@ -1,57 +0,0 @@ -LIBRARY OLECLI32.DLL -EXPORTS -OleActivate@24 -OleClone@20 -OleClose@4 -OleCopyFromLink@24 -OleCopyToClipboard@4 -OleCreate@32 -OleCreateFromClip@28 -OleCreateFromFile@36 -OleCreateFromTemplate@32 -OleCreateInvisible@36 -OleCreateLinkFromClip@28 -OleCreateLinkFromFile@40 -OleDelete@4 -OleDraw@20 -OleEnumFormats@8 -OleEnumObjects@8 -OleEqual@8 -OleExecute@12 -OleGetData@12 -OleGetLinkUpdateOptions@8 -OleIsDcMeta@4 -OleLoadFromStream@24 -OleLockServer@8 -OleObjectConvert@24 -OleQueryBounds@8 -OleQueryClientVersion@0 -OleQueryCreateFromClip@12 -OleQueryLinkFromClip@12 -OleQueryName@12 -OleQueryOpen@4 -OleQueryOutOfDate@4 -OleQueryProtocol@8 -OleQueryReleaseError@4 -OleQueryReleaseMethod@4 -OleQueryReleaseStatus@4 -OleQuerySize@8 -OleQueryType@8 -OleReconnect@4 -OleRegisterClientDoc@16 -OleRelease@4 -OleRename@8 -OleRenameClientDoc@8 -OleRequestData@8 -OleRevertClientDoc@4 -OleRevokeClientDoc@4 -OleSaveToStream@8 -OleSavedClientDoc@4 -OleSetBounds@8 -OleSetColorScheme@8 -OleSetData@12 -OleSetHostNames@12 -OleSetLinkUpdateOptions@8 -OleSetTargetDevice@8 -OleUnlockServer@4 -OleUpdate@4 diff --git a/winsup/w32api/lib/oledlg.def b/winsup/w32api/lib/oledlg.def deleted file mode 100644 index 6ae8ace10..000000000 --- a/winsup/w32api/lib/oledlg.def +++ /dev/null @@ -1,25 +0,0 @@ -LIBRARY OLEDLG.DLL -EXPORTS -OleUIAddVerbMenuA@36 -OleUIAddVerbMenuW@36 -OleUIBusyA@4 -OleUIBusyW@4 -OleUICanConvertOrActivateAs@12 -OleUIChangeIconA@4 -OleUIChangeIconW@4 -OleUIChangeSourceA@4 -OleUIChangeSourceW@4 -OleUIConvertA@4 -OleUIConvertW@4 -OleUIEditLinksA@4 -OleUIEditLinksW@4 -OleUIInsertObjectA@4 -OleUIInsertObjectW@4 -OleUIObjectPropertiesA@4 -OleUIObjectPropertiesW@4 -OleUIPasteSpecialA@4 -OleUIPasteSpecialW@4 -OleUIPromptUserA -OleUIPromptUserW -OleUIUpdateLinksA@16 -OleUIUpdateLinksW@16 diff --git a/winsup/w32api/lib/olepro32.def b/winsup/w32api/lib/olepro32.def deleted file mode 100644 index ebfbbc588..000000000 --- a/winsup/w32api/lib/olepro32.def +++ /dev/null @@ -1,9 +0,0 @@ -LIBRARY OLEPRO32.DLL -EXPORTS -OleCreateFontIndirect@12 -OleCreatePictureIndirect@16 -OleCreatePropertyFrame@44 -OleCreatePropertyFrameIndirect@4 -OleIconToCursor@8 -OleLoadPicture@20 -OleTranslateColor@12 diff --git a/winsup/w32api/lib/olesvr32.def b/winsup/w32api/lib/olesvr32.def deleted file mode 100644 index 04d5ba699..000000000 --- a/winsup/w32api/lib/olesvr32.def +++ /dev/null @@ -1,13 +0,0 @@ -LIBRARY OLESVR32.DLL -EXPORTS -OleBlockServer@4 -OleQueryServerVersion@0 -OleRegisterServer@20 -OleRegisterServerDoc@16 -OleRenameServerDoc@8 -OleRevertServerDoc@4 -OleRevokeObject@4 -OleRevokeServer@4 -OleRevokeServerDoc@4 -OleSavedServerDoc@4 -OleUnblockServer@8 diff --git a/winsup/w32api/lib/opengl32.def b/winsup/w32api/lib/opengl32.def deleted file mode 100644 index e612a5753..000000000 --- a/winsup/w32api/lib/opengl32.def +++ /dev/null @@ -1,369 +0,0 @@ -LIBRARY OPENGL32.DLL -EXPORTS -GlmfBeginGlsBlock@4 -GlmfCloseMetaFile@4 -GlmfEndGlsBlock@4 -GlmfEndPlayback@4 -GlmfInitPlayback@12 -GlmfPlayGlsRecord@16 -glAccum@8 -glAlphaFunc@8 -glAreTexturesResident@12 -glArrayElement@4 -glBegin@4 -glBindTexture@8 -glBitmap@28 -glBlendFunc@8 -glCallList@4 -glCallLists@12 -glClear@4 -glClearAccum@16 -glClearColor@16 -glClearDepth@8 -glClearIndex@4 -glClearStencil@4 -glClipPlane@8 -glColor3b@12 -glColor3bv@4 -glColor3d@24 -glColor3dv@4 -glColor3f@12 -glColor3fv@4 -glColor3i@12 -glColor3iv@4 -glColor3s@12 -glColor3sv@4 -glColor3ub@12 -glColor3ubv@4 -glColor3ui@12 -glColor3uiv@4 -glColor3us@12 -glColor3usv@4 -glColor4b@16 -glColor4bv@4 -glColor4d@32 -glColor4dv@4 -glColor4f@16 -glColor4fv@4 -glColor4i@16 -glColor4iv@4 -glColor4s@16 -glColor4sv@4 -glColor4ub@16 -glColor4ubv@4 -glColor4ui@16 -glColor4uiv@4 -glColor4us@16 -glColor4usv@4 -glColorMask@16 -glColorMaterial@8 -glColorPointer@16 -glCopyPixels@20 -glCopyTexImage1D@28 -glCopyTexImage2D@32 -glCopyTexSubImage1D@24 -glCopyTexSubImage2D@32 -glCullFace@4 -glDebugEntry@8 -glDeleteLists@8 -glDeleteTextures@8 -glDepthFunc@4 -glDepthMask@4 -glDepthRange@16 -glDisable@4 -glDisableClientState@4 -glDrawArrays@12 -glDrawBuffer@4 -glDrawElements@16 -glDrawPixels@20 -glEdgeFlag@4 -glEdgeFlagPointer@8 -glEdgeFlagv@4 -glEnable@4 -glEnableClientState@4 -glEnd@0 -glEndList@0 -glEvalCoord1d@8 -glEvalCoord1dv@4 -glEvalCoord1f@4 -glEvalCoord1fv@4 -glEvalCoord2d@16 -glEvalCoord2dv@4 -glEvalCoord2f@8 -glEvalCoord2fv@4 -glEvalMesh1@12 -glEvalMesh2@20 -glEvalPoint1@4 -glEvalPoint2@8 -glFeedbackBuffer@12 -glFinish@0 -glFlush@0 -glFogf@8 -glFogfv@8 -glFogi@8 -glFogiv@8 -glFrontFace@4 -glFrustum@48 -glGenLists@4 -glGenTextures@8 -glGetBooleanv@8 -glGetClipPlane@8 -glGetDoublev@8 -glGetError@0 -glGetFloatv@8 -glGetIntegerv@8 -glGetLightfv@12 -glGetLightiv@12 -glGetMapdv@12 -glGetMapfv@12 -glGetMapiv@12 -glGetMaterialfv@12 -glGetMaterialiv@12 -glGetPixelMapfv@8 -glGetPixelMapuiv@8 -glGetPixelMapusv@8 -glGetPointerv@8 -glGetPolygonStipple@4 -glGetString@4 -glGetTexEnvfv@12 -glGetTexEnviv@12 -glGetTexGendv@12 -glGetTexGenfv@12 -glGetTexGeniv@12 -glGetTexImage@20 -glGetTexLevelParameterfv@16 -glGetTexLevelParameteriv@16 -glGetTexParameterfv@12 -glGetTexParameteriv@12 -glHint@8 -glIndexMask@4 -glIndexPointer@12 -glIndexd@8 -glIndexdv@4 -glIndexf@4 -glIndexfv@4 -glIndexi@4 -glIndexiv@4 -glIndexs@4 -glIndexsv@4 -glIndexub@4 -glIndexubv@4 -glInitNames@0 -glInterleavedArrays@12 -glIsEnabled@4 -glIsList@4 -glIsTexture@4 -glLightModelf@8 -glLightModelfv@8 -glLightModeli@8 -glLightModeliv@8 -glLightf@12 -glLightfv@12 -glLighti@12 -glLightiv@12 -glLineStipple@8 -glLineWidth@4 -glListBase@4 -glLoadIdentity@0 -glLoadMatrixd@4 -glLoadMatrixf@4 -glLoadName@4 -glLogicOp@4 -glMap1d@32 -glMap1f@24 -glMap2d@56 -glMap2f@40 -glMapGrid1d@20 -glMapGrid1f@12 -glMapGrid2d@40 -glMapGrid2f@24 -glMaterialf@12 -glMaterialfv@12 -glMateriali@12 -glMaterialiv@12 -glMatrixMode@4 -glMultMatrixd@4 -glMultMatrixf@4 -glNewList@8 -glNormal3b@12 -glNormal3bv@4 -glNormal3d@24 -glNormal3dv@4 -glNormal3f@12 -glNormal3fv@4 -glNormal3i@12 -glNormal3iv@4 -glNormal3s@12 -glNormal3sv@4 -glNormalPointer@12 -glOrtho@48 -glPassThrough@4 -glPixelMapfv@12 -glPixelMapuiv@12 -glPixelMapusv@12 -glPixelStoref@8 -glPixelStorei@8 -glPixelTransferf@8 -glPixelTransferi@8 -glPixelZoom@8 -glPointSize@4 -glPolygonMode@8 -glPolygonOffset@8 -glPolygonStipple@4 -glPopAttrib@0 -glPopClientAttrib@0 -glPopMatrix@0 -glPopName@0 -glPrioritizeTextures@12 -glPushAttrib@4 -glPushClientAttrib@4 -glPushMatrix@0 -glPushName@4 -glRasterPos2d@16 -glRasterPos2dv@4 -glRasterPos2f@8 -glRasterPos2fv@4 -glRasterPos2i@8 -glRasterPos2iv@4 -glRasterPos2s@8 -glRasterPos2sv@4 -glRasterPos3d@24 -glRasterPos3dv@4 -glRasterPos3f@12 -glRasterPos3fv@4 -glRasterPos3i@12 -glRasterPos3iv@4 -glRasterPos3s@12 -glRasterPos3sv@4 -glRasterPos4d@32 -glRasterPos4dv@4 -glRasterPos4f@16 -glRasterPos4fv@4 -glRasterPos4i@16 -glRasterPos4iv@4 -glRasterPos4s@16 -glRasterPos4sv@4 -glReadBuffer@4 -glReadPixels@28 -glRectd@32 -glRectdv@8 -glRectf@16 -glRectfv@8 -glRecti@16 -glRectiv@8 -glRects@16 -glRectsv@8 -glRenderMode@4 -glRotated@32 -glRotatef@16 -glScaled@24 -glScalef@12 -glScissor@16 -glSelectBuffer@8 -glShadeModel@4 -glStencilFunc@12 -glStencilMask@4 -glStencilOp@12 -glTexCoord1d@8 -glTexCoord1dv@4 -glTexCoord1f@4 -glTexCoord1fv@4 -glTexCoord1i@4 -glTexCoord1iv@4 -glTexCoord1s@4 -glTexCoord1sv@4 -glTexCoord2d@16 -glTexCoord2dv@4 -glTexCoord2f@8 -glTexCoord2fv@4 -glTexCoord2i@8 -glTexCoord2iv@4 -glTexCoord2s@8 -glTexCoord2sv@4 -glTexCoord3d@24 -glTexCoord3dv@4 -glTexCoord3f@12 -glTexCoord3fv@4 -glTexCoord3i@12 -glTexCoord3iv@4 -glTexCoord3s@12 -glTexCoord3sv@4 -glTexCoord4d@32 -glTexCoord4dv@4 -glTexCoord4f@16 -glTexCoord4fv@4 -glTexCoord4i@16 -glTexCoord4iv@4 -glTexCoord4s@16 -glTexCoord4sv@4 -glTexCoordPointer@16 -glTexEnvf@12 -glTexEnvfv@12 -glTexEnvi@12 -glTexEnviv@12 -glTexGend@16 -glTexGendv@12 -glTexGenf@12 -glTexGenfv@12 -glTexGeni@12 -glTexGeniv@12 -glTexImage1D@32 -glTexImage2D@36 -glTexParameterf@12 -glTexParameterfv@12 -glTexParameteri@12 -glTexParameteriv@12 -glTexSubImage1D@28 -glTexSubImage2D@36 -glTranslated@24 -glTranslatef@12 -glVertex2d@16 -glVertex2dv@4 -glVertex2f@8 -glVertex2fv@4 -glVertex2i@8 -glVertex2iv@4 -glVertex2s@8 -glVertex2sv@4 -glVertex3d@24 -glVertex3dv@4 -glVertex3f@12 -glVertex3fv@4 -glVertex3i@12 -glVertex3iv@4 -glVertex3s@12 -glVertex3sv@4 -glVertex4d@32 -glVertex4dv@4 -glVertex4f@16 -glVertex4fv@4 -glVertex4i@16 -glVertex4iv@4 -glVertex4s@16 -glVertex4sv@4 -glVertexPointer@16 -glViewport@16 -wglChoosePixelFormat@8 -wglCopyContext@12 -wglCreateContext@4 -wglCreateLayerContext@8 -wglDeleteContext@4 -wglDescribeLayerPlane@20 -wglDescribePixelFormat@16 -wglGetCurrentContext@0 -wglGetCurrentDC@0 -wglGetDefaultProcAddress@4 -wglGetLayerPaletteEntries@20 -wglGetPixelFormat@4 -wglGetProcAddress@4 -wglMakeCurrent@8 -wglRealizeLayerPalette@12 -wglSetLayerPaletteEntries@20 -wglSetPixelFormat@12 -wglShareLists@8 -wglSwapBuffers@4 -wglSwapLayerBuffers@8 -wglUseFontBitmapsA@16 -wglUseFontBitmapsW@16 -wglUseFontOutlinesA@32 -wglUseFontOutlinesW@32 diff --git a/winsup/w32api/lib/penwin32.def b/winsup/w32api/lib/penwin32.def deleted file mode 100644 index 0efc7f73a..000000000 --- a/winsup/w32api/lib/penwin32.def +++ /dev/null @@ -1,101 +0,0 @@ -LIBRARY PENWIN32.DLL -EXPORTS -AddInksetInterval@8 -AddPenDataHRC@8 -AddPenInputHRC@20 -AddPointsPenData@16 -AddWordsHWL@12 -BoundingRectFromPoints@12 -CharacterToSymbol@12 -CompressPenData@12 -ConfigHREC@16 -CorrectWriting@24 -CreateCompatibleHRC@8 -CreateHWL@16 -CreateInkset@4 -CreateInksetHRCRESULT@12 -CreatePenDataEx@16 -CreatePenDataHRC@4 -CreatePenDataRegion@8 -DPtoTP@8 -DestroyHRC@4 -DestroyHRCRESULT@4 -DestroyHWL@4 -DestroyInkset@4 -DestroyPenData@4 -DoDefaultPenInput@8 -DrawPenDataEx@40 -DuplicatePenData@8 -EnableGestureSetHRC@12 -EnableSystemDictionaryHRC@8 -EndPenInputHRC@4 -ExtractPenDataPoints@28 -ExtractPenDataStrokes@20 -GetAlphabetHRC@12 -GetAlphabetPriorityHRC@12 -GetAlternateWordsHRCRESULT@20 -GetBoxMappingHRCRESULT@16 -GetBoxResultsHRC@24 -GetGuideHRC@12 -GetHRECFromHRC@4 -GetHotspotsHRCRESULT@16 -GetInksetInterval@12 -GetInksetIntervalCount@4 -GetInternationalHRC@20 -GetMaxResultsHRC@4 -GetPenAppFlags@0 -GetPenAsyncState@4 -GetPenDataAttributes@12 -GetPenDataInfo@16 -GetPenInput@24 -GetPenMiscInfo@8 -GetPointsFromPenData@20 -GetResultsHRC@16 -GetStrokeAttributes@16 -GetStrokeTableAttributes@16 -GetSymbolCountHRCRESULT@4 -GetSymbolsHRCRESULT@16 -GetVersionPenWin@0 -GetWordlistCoercionHRC@4 -GetWordlistHRC@8 -HitTestPenData@20 -InsertPenData@12 -InsertPenDataPoints@24 -InsertPenDataStroke@20 -InstallRecognizer@4 -IsPenEvent@8 -MetricScalePenData@8 -OffsetPenData@12 -PeekPenInput@20 -PenDataFromBuffer@20 -PenDataToBuffer@16 -ProcessHRC@8 -ReadHWL@8 -RedisplayPenData@24 -RemovePenDataStrokes@12 -ResizePenData@8 -SetAlphabetHRC@12 -SetAlphabetPriorityHRC@12 -SetBoxAlphabetHRC@12 -SetGuideHRC@12 -SetInternationalHRC@20 -SetMaxResultsHRC@8 -SetPenAppFlags@8 -SetPenMiscInfo@8 -SetResultsHookHREC@8 -SetStrokeAttributes@16 -SetStrokeTableAttributes@16 -SetWordlistCoercionHRC@8 -SetWordlistHRC@8 -StartInking@12 -StartPenInput@16 -StopInking@4 -StopPenInput@12 -SymbolToCharacter@16 -TPtoDP@8 -TargetPoints@20 -TrainHREC@20 -TrimPenData@12 -UnhookResultsHookHREC@8 -UninstallRecognizer@4 -WriteHWL@8 diff --git a/winsup/w32api/lib/pkpd32.def b/winsup/w32api/lib/pkpd32.def deleted file mode 100644 index 58fbc27ab..000000000 --- a/winsup/w32api/lib/pkpd32.def +++ /dev/null @@ -1,36 +0,0 @@ -LIBRARY PKPD32.DLL -EXPORTS -AddInksetInterval@8 -AddPointsPenData@16 -BoundingRectFromPoints@12 -CompressPenData@12 -CreateInkset@4 -CreatePenDataEx@16 -CreatePenDataRegion@8 -DestroyInkset@4 -DestroyPenData@4 -DrawPenDataEx@40 -DuplicatePenData@8 -ExtractPenDataPoints@28 -ExtractPenDataStrokes@20 -GetInksetInterval@12 -GetInksetIntervalCount@4 -GetPenDataAttributes@12 -GetPenDataInfo@16 -GetPointsFromPenData@20 -GetStrokeAttributes@16 -GetStrokeTableAttributes@16 -HitTestPenData@20 -InsertPenData@12 -InsertPenDataPoints@24 -InsertPenDataStroke@20 -MetricScalePenData@8 -OffsetPenData@12 -PenDataFromBuffer@20 -PenDataToBuffer@16 -RedisplayPenData@24 -RemovePenDataStrokes@12 -ResizePenData@8 -SetStrokeAttributes@16 -SetStrokeTableAttributes@16 -TrimPenData@12 diff --git a/winsup/w32api/lib/psapi.def b/winsup/w32api/lib/psapi.def deleted file mode 100644 index 9d79fe82c..000000000 --- a/winsup/w32api/lib/psapi.def +++ /dev/null @@ -1,21 +0,0 @@ -LIBRARY PSAPI.DLL -EXPORTS -EmptyWorkingSet@4 -EnumDeviceDrivers@12 -EnumProcesses@12 -EnumProcessModules@16 -GetDeviceDriverBaseNameA@12 -GetDeviceDriverBaseNameW@12 -GetDeviceDriverFileNameA@12 -GetDeviceDriverFileNameW@12 -GetMappedFileNameA@16 -GetMappedFileNameW@16 -GetModuleBaseNameA@16 -GetModuleBaseNameW@16 -GetModuleFileNameExA@16 -GetModuleFileNameExW@16 -GetModuleInformation@16 -GetProcessMemoryInfo@12 -GetWsChanges@12 -InitializeProcessForWsWatch@4 -QueryWorkingSet@12 diff --git a/winsup/w32api/lib/rapi.def b/winsup/w32api/lib/rapi.def deleted file mode 100644 index 730faa294..000000000 --- a/winsup/w32api/lib/rapi.def +++ /dev/null @@ -1,84 +0,0 @@ -LIBRARY RAPI.DLL -EXPORTS -CeCheckPassword@4 -CeCloseHandle@4 -CeCopyFile@12 -CeCreateDatabase@16 -CeCreateDirectory@8 -CeCreateFile@28 -CeCreateProcess@40 -CeDeleteDatabase@4 -CeDeleteFile@4 -CeDeleteRecord@8 -CeFindAllDatabases@16 -CeFindAllFiles@16 -CeFindClose@4 -CeFindFirstDatabase@4 -CeFindFirstFile@8 -CeFindNextDatabase@4 -CeFindNextFile@8 -CeGetClassName@12 -CeGetDesktopDeviceCaps@4 -CeGetFileAttributes@4 -CeGetFileSize@8 -CeGetFileTime@16 -CeGetLastError@0 -CeGetSpecialFolderPath@12 -CeGetStoreInformation@4 -CeGetSystemInfo@4 -CeGetSystemMetrics@4 -CeGetSystemPowerStatusEx@8 -CeGetTempPath@8 -CeGetVersionEx@4 -CeGetWindow@8 -CeGetWindowLong@8 -CeGetWindowText@12 -CeGlobalMemoryStatus@4 -CeMoveFile@8 -CeOidGetInfo@8 -CeOpenDatabase@20 -CeRapiFreeBuffer@4 -CeRapiGetError@0 -CeRapiInit@0 -CeRapiInitEx@4 -CeRapiInvoke@32 -CeRapiUninit@0 -CeReadFile@20 -CeReadRecordProps@24 -CeRegCloseKey@4 -CeRegCreateKeyEx@36 -CeRegDeleteKey@8 -CeRegDeleteValue@8 -CeRegEnumKeyEx@32 -CeRegEnumValue@32 -CeRegOpenKeyEx@20 -CeRegQueryInfoKey@48 -CeRegQueryValueEx@24 -CeRegSetValueEx@24 -CeRemoveDirectory@4 -CeSHCreateShortcut@8 -CeSHGetShortcutTarget@12 -CeSeekDatabase@16 -CeSetDatabaseInfo@8 -CeSetEndOfFile@4 -CeSetFileAttributes@8 -CeSetFilePointer@16 -CeSetFileTime@16 -CeWriteFile@20 -CeWriteRecordProps@16 -GetRapiError@0 -RAPI_EXP_10@4 -RAPI_EXP_11@8 -RAPI_EXP_12@4 -RAPI_EXP_13@0 -RAPI_EXP_14@4 -RAPI_EXP_15@4 -RAPI_EXP_16@0 -RAPI_EXP_17@8 -RAPI_EXP_18@8 -RAPI_EXP_19@12 -RAPI_EXP_20@4 -RAPI_EXP_21@8 -RAPI_EXP_22@8 -RAPI_EXP_23@12 -RapiFreeBuffer@4 diff --git a/winsup/w32api/lib/rasapi32.def b/winsup/w32api/lib/rasapi32.def deleted file mode 100644 index 492f2a5fe..000000000 --- a/winsup/w32api/lib/rasapi32.def +++ /dev/null @@ -1,146 +0,0 @@ -LIBRARY RASAPI32.DLL -EXPORTS -DDMGetPhonebookInfo@32 -DwCloneEntry@12 -DwDeleteSubEntry@12 -DwEnumEntriesForAllUsers@12 -DwEnumEntryDetails@16 -FreeSharedAccessApplication@4 -FreeSharedAccessServer@4 -RasAutoDialSharedConnection@0 -RasAutodialAddressToNetwork@12 -RasAutodialEntryToNetwork@12 -RasClearConnectionStatistics@4 -RasClearLinkStatistics@8 -RasConnectionNotificationA@12 -RasConnectionNotificationW@12 -RasCreatePhonebookEntryA@8 -RasCreatePhonebookEntryW@8 -RasDeleteEntryA@8 -RasDeleteEntryW@8 -RasDialA@24 -RasDialW@24 -RasDialWow@20 -RasEditPhonebookEntryA@12 -RasEditPhonebookEntryW@12 -RasEnumAutodialAddressesA@12 -RasEnumAutodialAddressesW@12 -RasEnumConnectionsA@12 -RasEnumConnectionsW@12 -RasEnumConnectionsWow@12 -RasEnumDevicesA@12 -RasEnumDevicesW@12 -RasEnumEntriesA@20 -RasEnumEntriesW@20 -RasEnumEntriesWow@20 -RasFreeEapUserIdentityA@4 -RasFreeEapUserIdentityW@4 -RasFreeLanConnTable@8 -RasFreeSharedAccessSettings@4 -RasGetAutodialAddressA@20 -RasGetAutodialAddressW@20 -RasGetAutodialEnableA@8 -RasGetAutodialEnableW@8 -RasGetAutodialParamA@12 -RasGetAutodialParamW@12 -RasGetConnectResponse@8 -RasGetConnectStatusA@8 -RasGetConnectStatusW@8 -RasGetConnectStatusWow@8 -RasGetConnectionStatistics@8 -RasGetCountryInfoA@8 -RasGetCountryInfoW@8 -RasGetCredentialsA@12 -RasGetCredentialsW@12 -RasGetCustomAuthDataA@16 -RasGetCustomAuthDataW@16 -RasGetEapUserDataA@20 -RasGetEapUserDataW@20 -RasGetEapUserIdentityA@20 -RasGetEapUserIdentityW@20 -RasGetEntryDialParamsA@12 -RasGetEntryDialParamsW@12 -RasGetEntryHrasconnA@12 -RasGetEntryHrasconnW@12 -RasGetEntryPropertiesA@24 -RasGetEntryPropertiesW@24 -RasGetErrorStringA@12 -RasGetErrorStringW@12 -RasGetErrorStringWow@12 -RasGetHport@4 -RasGetLinkStatistics@12 -RasGetProjectionInfoA@16 -RasGetProjectionInfoW@16 -RasGetSubEntryHandleA@12 -RasGetSubEntryHandleW@12 -RasGetSubEntryPropertiesA@28 -RasGetSubEntryPropertiesW@28 -RasHangUpA@4 -RasHangUpW@4 -RasHangUpWow@4 -RasInvokeEapUI@16 -RasIsRouterConnection@4 -RasIsSharedConnection@8 -RasLoadSharedAccessSettings@4 -RasNameFromSharedConnection@8 -RasQueryLanConnTable@12 -RasQueryRedialOnLinkFailure@12 -RasQuerySharedAutoDial@4 -RasQuerySharedConnection@4 -RasQuerySharedConnectionCredentials@8 -RasQuerySharedPrivateLan@4 -RasQuerySharedPrivateLanAddress@4 -RasRenameEntryA@12 -RasRenameEntryW@12 -RasSaveSharedAccessSettings@4 -RasSetAutodialAddressA@20 -RasSetAutodialAddressW@20 -RasSetAutodialEnableA@8 -RasSetAutodialEnableW@8 -RasSetAutodialParamA@12 -RasSetAutodialParamW@12 -RasSetCredentialsA@16 -RasSetCredentialsW@16 -RasSetCustomAuthDataA@16 -RasSetCustomAuthDataW@16 -RasSetEapUserDataA@20 -RasSetEapUserDataW@20 -RasSetEntryDialParamsA@12 -RasSetEntryDialParamsW@12 -RasSetEntryPropertiesA@24 -RasSetEntryPropertiesW@24 -RasSetOldPassword@8 -RasSetSharedAutoDial@4 -RasSetSharedConnectionCredentials@8 -RasSetSubEntryPropertiesA@28 -RasSetSubEntryPropertiesW@28 -RasShareConnection@8 -RasUnshareConnection@4 -RasValidateEntryNameA@8 -RasValidateEntryNameW@8 -RasfileClose@4 -RasfileDeleteLine@4 -RasfileFindFirstLine@12 -RasfileFindLastLine@12 -RasfileFindMarkedLine@8 -RasfileFindNextKeyLine@12 -RasfileFindNextLine@12 -RasfileFindPrevLine@12 -RasfileFindSectionLine@12 -RasfileGetKeyValueFields@12 -RasfileGetLine@4 -RasfileGetLineMark@4 -RasfileGetLineText@8 -RasfileGetLineType@4 -RasfileGetSectionName@8 -RasfileInsertLine@12 -RasfileLoad@16 -RasfileLoadInfo@8 -RasfilePutKeyValueFields@12 -RasfilePutLineMark@8 -RasfilePutLineText@8 -RasfilePutSectionName@8 -RasfileWrite@8 -SharedAccessResponseListToString@8 -SharedAccessResponseStringToList@12 -UnInitializeRAS@0 diff --git a/winsup/w32api/lib/res.rc b/winsup/w32api/lib/res.rc deleted file mode 100644 index 1a3f751de..000000000 --- a/winsup/w32api/lib/res.rc +++ /dev/null @@ -1,6 +0,0 @@ -#include - -STRINGTABLE -{ - 100 "Dummy string" -} diff --git a/winsup/w32api/lib/rpcdce4.def b/winsup/w32api/lib/rpcdce4.def deleted file mode 100644 index 43e96a7f3..000000000 --- a/winsup/w32api/lib/rpcdce4.def +++ /dev/null @@ -1,26 +0,0 @@ -LIBRARY RPCDCE4.dll -EXPORTS -DceErrorInqTextA@8 -DceErrorInqTextW@8 -MIDL_user_allocate@4 -MIDL_user_free@4 -RpcBindingToStringBindingA@8 -RpcBindingToStringBindingW@8 -RpcMgmtEpEltInqBegin@24 -RpcMgmtEpEltInqDone@4 -RpcMgmtEpEltInqNextA@20 -RpcMgmtEpEltInqNextW@20 -RpcMgmtEpUnregister@16 -RpcMgmtInqIfIds@8 -RpcMgmtInqServerPrincNameA@12 -RpcMgmtInqServerPrincNameW@12 -RpcMgmtInqStats@8 -RpcMgmtIsServerListening@4 -RpcMgmtSetAuthorizationFn@4 -RpcMgmtStopServerListening@4 -RpcServerListen@12 -UuidCompare@12 -UuidCreateNil@4 -UuidEqual@12 -UuidHash@8 -UuidIsNil@8 diff --git a/winsup/w32api/lib/rpcns4.def b/winsup/w32api/lib/rpcns4.def deleted file mode 100644 index 7d005c365..000000000 --- a/winsup/w32api/lib/rpcns4.def +++ /dev/null @@ -1,60 +0,0 @@ -LIBRARY RPCNS4.dll -EXPORTS -I_GetDefaultEntrySyntax@0 -I_RpcNsGetBuffer@4 -I_RpcNsRaiseException@8 -I_RpcNsSendReceive@8 -I_RpcReBindBuffer@4 -RpcIfIdVectorFree@4 -RpcNsBindingExportA@20 -RpcNsBindingExportW@20 -RpcNsBindingImportBeginA@20 -RpcNsBindingImportBeginW@20 -RpcNsBindingImportDone@4 -RpcNsBindingImportNext@8 -RpcNsBindingLookupBeginA@24 -RpcNsBindingLookupBeginW@24 -RpcNsBindingLookupDone@4 -RpcNsBindingLookupNext@8 -RpcNsBindingSelect@8 -RpcNsBindingUnexportA@16 -RpcNsBindingUnexportW@16 -RpcNsEntryExpandNameA@12 -RpcNsEntryExpandNameW@12 -RpcNsEntryObjectInqBeginA@12 -RpcNsEntryObjectInqBeginW@12 -RpcNsEntryObjectInqDone@4 -RpcNsEntryObjectInqNext@8 -RpcNsGroupDeleteA@8 -RpcNsGroupDeleteW@8 -RpcNsGroupMbrAddA@16 -RpcNsGroupMbrAddW@16 -RpcNsGroupMbrInqBeginA@16 -RpcNsGroupMbrInqBeginW@16 -RpcNsGroupMbrInqDone@4 -RpcNsGroupMbrInqNextA@8 -RpcNsGroupMbrInqNextW@8 -RpcNsGroupMbrRemoveA@16 -RpcNsGroupMbrRemoveW@16 -RpcNsMgmtBindingUnexportA@20 -RpcNsMgmtBindingUnexportW@20 -RpcNsMgmtEntryCreateA@8 -RpcNsMgmtEntryCreateW@8 -RpcNsMgmtEntryDeleteA@8 -RpcNsMgmtEntryDeleteW@8 -RpcNsMgmtEntryInqIfIdsA@12 -RpcNsMgmtEntryInqIfIdsW@12 -RpcNsMgmtHandleSetExpAge@8 -RpcNsMgmtInqExpAge@4 -RpcNsMgmtSetExpAge@4 -RpcNsProfileDeleteA@8 -RpcNsProfileDeleteW@8 -RpcNsProfileEltAddA@28 -RpcNsProfileEltAddW@28 -RpcNsProfileEltInqBeginA@32 -RpcNsProfileEltInqBeginW@32 -RpcNsProfileEltInqDone@4 -RpcNsProfileEltInqNextA@20 -RpcNsProfileEltInqNextW@20 -RpcNsProfileEltRemoveA@20 -RpcNsProfileEltRemoveW@20 diff --git a/winsup/w32api/lib/rpcrt4.def b/winsup/w32api/lib/rpcrt4.def deleted file mode 100644 index d51bc723c..000000000 --- a/winsup/w32api/lib/rpcrt4.def +++ /dev/null @@ -1,372 +0,0 @@ -LIBRARY RPCRT4.dll -EXPORTS -CStdStubBuffer_AddRef@4 -CStdStubBuffer_Connect@8 -CStdStubBuffer_CountRefs@4 -CStdStubBuffer_DebugServerQueryInterface@8 -CStdStubBuffer_DebugServerRelease@8 -CStdStubBuffer_Disconnect@4 -CStdStubBuffer_Invoke@12 -CStdStubBuffer_IsIIDSupported@8 -CStdStubBuffer_QueryInterface@12 -DceErrorInqTextA@8 -DceErrorInqTextW@8 -IUnknown_AddRef_Proxy@4 -IUnknown_QueryInterface_Proxy@12 -IUnknown_Release_Proxy@4 -I_RpcAllocate@4 -I_RpcBindingCopy@8 -I_RpcBindingInqDynamicEndpoint@8 -I_RpcBindingInqTransportType@8 -I_RpcBindingIsClientLocal@8 -I_RpcClearMutex@4 -I_RpcConnectionInqSockBuffSize2@4 -I_RpcConnectionInqSockBuffSize@8 -I_RpcConnectionSetSockBuffSize@8 -I_RpcDeleteMutex@4 -I_RpcFree@4 -I_RpcFreeBuffer@4 -I_RpcGetAssociationContext@4 -_imp__I_RpcGetAssociationContext@4 -I_RpcGetBuffer@4 -I_RpcGetCurrentCallHandle@0 -I_RpcIOAlerted@4 -I_RpcIfInqTransferSyntaxes@16 -I_RpcMapWin32Status@4 -I_RpcMonitorAssociation@12 -I_RpcNsBindingSetEntryName@12 -I_RpcParseSecurity@8 -I_RpcPauseExecution@4 -I_RpcRequestMutex@4 -I_RpcSendReceive@4 -I_RpcServerRegisterForwardFunction@4 -I_RpcSetAssociationContext@4 -_imp__I_RpcSetAssociationContext@4 -I_RpcSsDontSerializeContext@0 -_imp__I_RpcSsDontSerializeContext@0 -I_RpcStopMonitorAssociation@4 -I_RpcTransClientMaxFrag@4 -I_RpcTransClientReallocBuffer@16 -I_RpcTransServerFindConnection@8 -I_RpcTransServerFreeBuffer@8 -I_RpcTransServerMaxFrag@4 -I_RpcTransServerNewConnection@12 -I_RpcTransServerProtectThread@0 -I_RpcTransServerReallocBuffer@16 -I_RpcTransServerReceiveDirectReady@4 -I_RpcTransServerUnprotectThread@4 -I_UuidCreate@4 -MIDL_wchar_strcpy@8 -MIDL_wchar_strlen@4 -MesBufferHandleReset@24 -MesDecodeBufferHandleCreate@12 -MesDecodeIncrementalHandleCreate@12 -MesEncodeDynBufferHandleCreate@12 -MesEncodeFixedBufferHandleCreate@16 -MesEncodeIncrementalHandleCreate@16 -MesHandleFree@4 -MesIncrementalHandleReset@24 -MesInqProcEncodingId@12 -NDRCContextBinding@4 -_imp__NDRCContextBinding@4 -NDRCContextMarshall@8 -_imp__NDRCContextMarshall@8 -NDRCContextUnmarshall@16 -_imp__NDRCContextUnmarshall@16 -NDRSContextMarshall@12 -_imp__NDRSContextMarshall@12 -NDRSContextUnmarshall@8 -_imp__NDRSContextUnmarshall@8 -NDRcopy@12 -NdrAllocate@8 -NdrByteCountPointerBufferSize@12 -NdrByteCountPointerFree@12 -NdrByteCountPointerMarshall@12 -NdrByteCountPointerUnmarshall@16 -NdrCStdStubBuffer2_Release@8 -NdrCStdStubBuffer_Release@8 -NdrClearOutParameters@12 -NdrClientCall -NdrClientContextMarshall@12 -_imp__NdrClientContextMarshall@12 -NdrClientContextUnmarshall@12 -_imp__NdrClientContextUnmarshall@12 -NdrClientInitialize@16 -NdrClientInitializeNew@16 -NdrComplexArrayBufferSize@12 -NdrComplexArrayFree@12 -NdrComplexArrayMarshall@12 -NdrComplexArrayMemorySize@8 -NdrComplexArrayUnmarshall@16 -NdrComplexStructBufferSize@12 -NdrComplexStructFree@12 -NdrComplexStructMarshall@12 -NdrComplexStructMemorySize@8 -NdrComplexStructUnmarshall@16 -NdrConformantArrayBufferSize@12 -NdrConformantArrayFree@12 -NdrConformantArrayMarshall@12 -NdrConformantArrayMemorySize@8 -NdrConformantArrayUnmarshall@16 -NdrConformantStringBufferSize@12 -NdrConformantStringMarshall@12 -NdrConformantStringMemorySize@8 -NdrConformantStringUnmarshall@16 -NdrConformantStructBufferSize@12 -NdrConformantStructFree@12 -NdrConformantStructMarshall@12 -NdrConformantStructMemorySize@8 -NdrConformantStructUnmarshall@16 -NdrConformantVaryingArrayBufferSize@12 -NdrConformantVaryingArrayFree@12 -NdrConformantVaryingArrayMarshall@12 -NdrConformantVaryingArrayMemorySize@8 -NdrConformantVaryingArrayUnmarshall@16 -NdrConformantVaryingStructBufferSize@12 -NdrConformantVaryingStructFree@12 -NdrConformantVaryingStructMarshall@12 -NdrConformantVaryingStructMemorySize@8 -NdrConformantVaryingStructUnmarshall@16 -NdrContextHandleSize@12 -_imp__NdrContextHandleSize@12 -NdrConvert@8 -NdrDllCanUnloadNow@4 -NdrDllGetClassObject@24 -NdrDllRegisterProxy@12 -NdrDllUnregisterProxy@12 -NdrEncapsulatedUnionBufferSize@12 -NdrEncapsulatedUnionFree@12 -NdrEncapsulatedUnionMarshall@12 -NdrEncapsulatedUnionMemorySize@8 -NdrEncapsulatedUnionUnmarshall@16 -NdrFixedArrayBufferSize@12 -NdrFixedArrayFree@12 -NdrFixedArrayMarshall@12 -NdrFixedArrayMemorySize@8 -NdrFixedArrayUnmarshall@16 -NdrFreeBuffer@4 -NdrFullPointerFree@8 -NdrFullPointerInsertRefId@12 -NdrFullPointerQueryPointer@16 -NdrFullPointerQueryRefId@16 -NdrFullPointerXlatFree@4 -NdrFullPointerXlatInit@8 -NdrGetBuffer@12 -NdrHardStructBufferSize@12 -NdrHardStructFree@12 -NdrHardStructMarshall@12 -NdrHardStructMemorySize@8 -NdrHardStructUnmarshall@16 -NdrInterfacePointerBufferSize@12 -NdrInterfacePointerFree@12 -NdrInterfacePointerMarshall@12 -NdrInterfacePointerMemorySize@8 -NdrInterfacePointerUnmarshall@16 -NdrMapCommAndFaultStatus@16 -NdrMesProcEncodeDecode -NdrMesSimpleTypeAlignSize@4 -NdrMesSimpleTypeDecode@12 -NdrMesSimpleTypeEncode@16 -NdrMesTypeAlignSize@16 -NdrMesTypeDecode@16 -NdrMesTypeEncode@16 -NdrNonConformantStringBufferSize@12 -NdrNonConformantStringMarshall@12 -NdrNonConformantStringMemorySize@8 -NdrNonConformantStringUnmarshall@16 -NdrNonEncapsulatedUnionBufferSize@12 -NdrNonEncapsulatedUnionFree@12 -NdrNonEncapsulatedUnionMarshall@12 -NdrNonEncapsulatedUnionMemorySize@8 -NdrNonEncapsulatedUnionUnmarshall@16 -NdrNsGetBuffer@12 -NdrNsSendReceive@12 -NdrOleAllocate@4 -NdrOleFree@4 -NdrPointerBufferSize@12 -NdrPointerFree@12 -NdrPointerMarshall@12 -NdrPointerMemorySize@8 -NdrPointerUnmarshall@16 -NdrProxyErrorHandler@4 -NdrProxyFreeBuffer@8 -NdrProxyGetBuffer@8 -NdrProxyInitialize@20 -NdrProxySendReceive@8 -NdrRpcSmClientAllocate@4 -NdrRpcSmClientFree@4 -NdrRpcSmSetClientToOsf@4 -NdrRpcSsDefaultAllocate@4 -NdrRpcSsDefaultFree@4 -NdrRpcSsDisableAllocate@4 -NdrRpcSsEnableAllocate@4 -NdrSendReceive@8 -NdrServerCall@4 -NdrServerContextMarshall@12 -_imp__NdrServerContextMarshall@12 -NdrServerContextUnmarshall@4 -_imp__NdrServerContextUnmarshall@4 -NdrServerInitialize@12 -NdrServerInitializeMarshall@8 -NdrServerInitializeNew@12 -NdrServerInitializeUnmarshall@12 -NdrServerMarshall@16 -NdrServerUnmarshall@24 -NdrSimpleStructBufferSize@12 -NdrSimpleStructFree@12 -NdrSimpleStructMarshall@12 -NdrSimpleStructMemorySize@8 -NdrSimpleStructUnmarshall@16 -NdrSimpleTypeMarshall@12 -NdrSimpleTypeUnmarshall@12 -NdrStubCall@16 -NdrStubForwardingFunction@16 -NdrStubGetBuffer@12 -NdrStubInitialize@16 -NdrStubInitializeMarshall@12 -NdrVaryingArrayBufferSize@12 -NdrVaryingArrayFree@12 -NdrVaryingArrayMarshall@12 -NdrVaryingArrayMemorySize@8 -NdrVaryingArrayUnmarshall@16 -NdrXmitOrRepAsBufferSize@12 -NdrXmitOrRepAsFree@12 -NdrXmitOrRepAsMarshall@12 -NdrXmitOrRepAsMemorySize@8 -NdrXmitOrRepAsUnmarshall@16 -RpcBindingCopy@8 -RpcBindingFree@4 -RpcBindingFromStringBindingA@8 -RpcBindingFromStringBindingW@8 -RpcBindingInqAuthClientA@24 -RpcBindingInqAuthClientW@24 -RpcBindingInqAuthInfoA@24 -RpcBindingInqAuthInfoW@24 -RpcBindingInqObject@8 -RpcBindingReset@4 -RpcBindingServerFromClient@8 -RpcBindingSetAuthInfoA@24 -RpcBindingSetAuthInfoW@24 -RpcBindingSetObject@8 -RpcBindingToStringBindingA@8 -RpcBindingToStringBindingW@8 -RpcBindingVectorFree@4 -RpcCancelThread@4 -RpcEpRegisterA@16 -RpcEpRegisterNoReplaceA@16 -RpcEpRegisterNoReplaceW@16 -RpcEpRegisterW@16 -RpcEpResolveBinding@8 -RpcEpUnregister@12 -RpcIfIdVectorFree@4 -RpcIfInqId@8 -RpcImpersonateClient@4 -RpcMgmtEnableIdleCleanup@0 -RpcMgmtEpEltInqBegin@24 -RpcMgmtEpEltInqDone@4 -RpcMgmtEpEltInqNextA@20 -RpcMgmtEpEltInqNextW@20 -RpcMgmtEpUnregister@16 -RpcMgmtInqComTimeout@8 -RpcMgmtInqDefaultProtectLevel@8 -RpcMgmtInqIfIds@8 -RpcMgmtInqServerPrincNameA@12 -RpcMgmtInqServerPrincNameW@12 -RpcMgmtInqStats@8 -RpcMgmtIsServerListening@4 -RpcMgmtSetAuthorizationFn@4 -RpcMgmtSetCancelTimeout@4 -RpcMgmtSetComTimeout@8 -RpcMgmtSetServerStackSize@4 -RpcMgmtStatsVectorFree@4 -RpcMgmtStopServerListening@4 -RpcMgmtWaitServerListen@0 -RpcNetworkInqProtseqsA@4 -RpcNetworkInqProtseqsW@4 -RpcNetworkIsProtseqValidA@4 -RpcNetworkIsProtseqValidW@4 -RpcNsBindingInqEntryNameA@12 -RpcNsBindingInqEntryNameW@12 -RpcObjectInqType@8 -RpcObjectSetInqFn@4 -RpcObjectSetType@8 -RpcProtseqVectorFreeA@4 -RpcProtseqVectorFreeW@4 -RpcRaiseException@4 -RpcRevertToSelf@0 -RpcServerInqBindings@4 -RpcServerInqDefaultPrincNameA@8 -RpcServerInqDefaultPrincNameW@8 -RpcServerInqIf@12 -RpcServerListen@12 -RpcServerRegisterAuthInfoA@16 -RpcServerRegisterAuthInfoW@16 -RpcServerRegisterIf@12 -RpcServerUnregisterIf@12 -RpcServerUseAllProtseqs@8 -RpcServerUseAllProtseqsIf@12 -RpcServerUseProtseqA@12 -RpcServerUseProtseqEpA@16 -RpcServerUseProtseqEpW@16 -RpcServerUseProtseqIfA@16 -RpcServerUseProtseqIfW@16 -RpcServerUseProtseqW@12 -RpcSmAllocate@8 -RpcSmClientFree@4 -RpcSmDestroyClientContext@4 -_imp__RpcSmDestroyClientContext@4 -RpcSmDisableAllocate@0 -RpcSmEnableAllocate@0 -RpcSmFree@4 -RpcSmGetThreadHandle@4 -RpcSmSetClientAllocFree@8 -RpcSmSetThreadHandle@4 -RpcSmSwapClientAllocFree@16 -RpcSsAllocate@4 -RpcSsDestroyClientContext@4 -_imp__RpcSsDestroyClientContext@4 -RpcSsDisableAllocate@0 -RpcSsEnableAllocate@0 -RpcSsFree@4 -RpcSsGetThreadHandle@0 -RpcSsSetClientAllocFree@8 -RpcSsSetThreadHandle@4 -RpcSsSwapClientAllocFree@16 -RpcStringBindingComposeA@24 -RpcStringBindingComposeW@24 -RpcStringBindingParseA@24 -RpcStringBindingParseW@24 -RpcStringFreeA@4 -RpcStringFreeW@4 -RpcTestCancel@0 -TowerConstruct@24 -TowerExplode@24 -UuidCompare@12 -UuidCreate@4 -UuidCreateNil@4 -UuidEqual@12 -UuidFromStringA@8 -UuidFromStringW@8 -UuidHash@8 -UuidIsNil@8 -UuidToStringA@8 -UuidToStringW@8 -char_array_from_ndr@16 -char_from_ndr@8 -data_from_ndr@16 -data_into_ndr@16 -data_size_ndr@16 -double_array_from_ndr@16 -double_from_ndr@8 -enum_from_ndr@8 -float_array_from_ndr@16 -float_from_ndr@8 -long_array_from_ndr@16 -long_from_ndr@8 -long_from_ndr_temp@12 -short_array_from_ndr@16 -short_from_ndr@8 -short_from_ndr_temp@12 -tree_into_ndr@16 -tree_peek_ndr@16 -tree_size_ndr@16 diff --git a/winsup/w32api/lib/scrnsave.c b/winsup/w32api/lib/scrnsave.c deleted file mode 100644 index 53e555d7d..000000000 --- a/winsup/w32api/lib/scrnsave.c +++ /dev/null @@ -1,407 +0,0 @@ -/* - Screen saver library by Anders Norlander - - This library is (hopefully) compatible with Microsoft's - screen saver library. - - This is public domain software. - - */ -#include -#include -#include - -/* screen saver window class */ -#define CLASS_SCRNSAVE TEXT("WindowsScreenSaverClass") - -/* globals */ -HWND hMainWindow = NULL; -BOOL fChildPreview = FALSE; -HINSTANCE hMainInstance; -TCHAR szName[TITLEBARNAMELEN]; -TCHAR szAppName[APPNAMEBUFFERLEN]; -TCHAR szIniFile[MAXFILELEN]; -TCHAR szScreenSaver[22]; -TCHAR szHelpFile[MAXFILELEN]; -TCHAR szNoHelpMemory[BUFFLEN]; -UINT MyHelpMessage; - -/* local house keeping */ -static HINSTANCE hPwdLib = NULL; -static POINT pt_orig; -static BOOL checking_pwd = FALSE; -static BOOL closing = FALSE; -static BOOL w95 = FALSE; - -typedef BOOL (WINAPI *VERIFYPWDPROC)(HWND); -typedef DWORD (WINAPI *CHPWDPROC)(LPCTSTR, HWND, DWORD, PVOID); -static VERIFYPWDPROC VerifyScreenSavePwd = NULL; - -/* function names */ -#define szVerifyPassword "VerifyScreenSavePwd" - -#ifdef UNICODE -#define szPwdChangePassword "PwdChangePasswordW" -#else -#define szPwdChangePassword "PwdChangePasswordA" -#endif - -static void TerminateScreenSaver(HWND hWnd); -static BOOL RegisterClasses(void); -static LRESULT WINAPI SysScreenSaverProc(HWND,UINT,WPARAM,LPARAM); -static int LaunchScreenSaver(HWND hParent); -static void LaunchConfig(void); - -static int ISSPACE(char c) -{ - return (c == ' ' || c == '\t'); -} - -#define ISNUM(c) ((c) >= '0' && c <= '9') -static unsigned long -_toul(const char *s) -{ - unsigned long res; - unsigned long n; - const char *p; - for (p = s; *p; p++) - if (!ISNUM(*p)) break; - p--; - res = 0; - for (n = 1; p >= s; p--, n *= 10) - res += (*p - '0') * n; - return res; -} - -/* screen saver entry point */ -int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, - LPSTR CmdLine, int nCmdShow) -{ - LPSTR p; - OSVERSIONINFO vi; - - /* initialize */ - hMainInstance = hInst; - - vi.dwOSVersionInfoSize = sizeof(vi); - GetVersionEx(&vi); - /* check if we are going to check for passwords */ - if (vi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) - { - HKEY hKey; - /* we are using windows 95 */ - w95 = TRUE; - if (RegOpenKey(HKEY_CURRENT_USER, REGSTR_PATH_SCREENSAVE ,&hKey) == - ERROR_SUCCESS) - { - DWORD check_pwd; - DWORD size = sizeof(DWORD); - DWORD type; - LONG res; - res = RegQueryValueEx(hKey, REGSTR_VALUE_USESCRPASSWORD, - NULL, &type, (PBYTE) &check_pwd, &size); - if (check_pwd && res == ERROR_SUCCESS) - { - hPwdLib = LoadLibrary(TEXT("PASSWORD.CPL")); - if (hPwdLib) - VerifyScreenSavePwd = GetProcAddress(hPwdLib, szVerifyPassword); - } - RegCloseKey(hKey); - } - } - - /* parse arguments */ - for (p = CmdLine; *p; p++) - { - switch (*p) - { - case 'S': - case 's': - /* start screen saver */ - return LaunchScreenSaver(NULL); - - case 'P': - case 'p': - { - /* start screen saver in preview window */ - HWND hParent; - fChildPreview = TRUE; - while (ISSPACE(*++p)); - hParent = (HWND) _toul(p); - if (hParent && IsWindow(hParent)) - return LaunchScreenSaver(hParent); - } - return 0; - - case 'C': - case 'c': - /* display configure dialog */ - LaunchConfig(); - return 0; - - case 'A': - case 'a': - { - /* change screen saver password */ - HWND hParent; - while (ISSPACE(*++p)); - hParent = (HWND) _toul(p); - if (!hParent || !IsWindow(hParent)) - hParent = GetForegroundWindow(); - ScreenSaverChangePassword(hParent); - } - return 0; - - case '-': - case '/': - case ' ': - default: - break; - } - } - LaunchConfig(); - return 0; -} - -static void LaunchConfig(void) -{ - /* FIXME: should this be called */ - RegisterDialogClasses(hMainInstance); - /* display configure dialog */ - DialogBox(hMainInstance, MAKEINTRESOURCE(DLG_SCRNSAVECONFIGURE), - GetForegroundWindow(), (DLGPROC) ScreenSaverConfigureDialog); -} - - -static int LaunchScreenSaver(HWND hParent) -{ - BOOL foo; - UINT style; - RECT rc; - MSG msg; - - /* don't allow other tasks to get into the foreground */ - if (w95 && !fChildPreview) - SystemParametersInfo(SPI_SCREENSAVERRUNNING, TRUE, &foo, 0); - - msg.wParam = 0; - - /* register classes, both user defined and classes used by screen saver - library */ - if (!RegisterClasses()) - { - MessageBox(NULL, TEXT("RegisterClasses() failed"), NULL, MB_ICONHAND); - goto restore; - } - - /* a slightly different approach needs to be used when displaying - in a preview window */ - if (hParent) - { - style = WS_CHILD; - GetClientRect(hParent, &rc); - } - else - { - style = WS_POPUP; - rc.right = GetSystemMetrics(SM_CXSCREEN); - rc.bottom = GetSystemMetrics(SM_CYSCREEN); - style |= WS_VISIBLE; - } - - /* create main screen saver window */ - hMainWindow = CreateWindowEx(hParent ? 0 : WS_EX_TOPMOST, CLASS_SCRNSAVE, - TEXT("SCREENSAVER"), style, - 0, 0, rc.right, rc.bottom, hParent, NULL, - hMainInstance, NULL); - - /* display window and start pumping messages */ - if (hMainWindow) - { - UpdateWindow(hMainWindow); - ShowWindow(hMainWindow, SW_SHOW); - - while (GetMessage(&msg, NULL, 0, 0) == TRUE) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - -restore: - /* restore system */ - if (w95 && !fChildPreview) - SystemParametersInfo(SPI_SCREENSAVERRUNNING, FALSE, &foo, 0); - FreeLibrary(hPwdLib); - return msg.wParam; -} - -/* this function takes care of *must* do tasks, like terminating - screen saver */ -static LRESULT WINAPI SysScreenSaverProc(HWND hWnd, UINT msg, - WPARAM wParam, LPARAM lParam) -{ - switch (msg) - { - case WM_CREATE: - if (!fChildPreview) - SetCursor(NULL); - /* mouse is not supposed to move from this position */ - GetCursorPos(&pt_orig); - break; - case WM_DESTROY: - PostQuitMessage(0); - break; - case WM_TIMER: - if (closing) - return 0; - break; - case WM_PAINT: - if (closing) - return DefWindowProc(hWnd, msg, wParam, lParam); - break; - case WM_SYSCOMMAND: - if (!fChildPreview) - switch (wParam) - { - case SC_CLOSE: - case SC_SCREENSAVE: - case SC_NEXTWINDOW: - case SC_PREVWINDOW: - return FALSE; - } - break; - case WM_MOUSEMOVE: - case WM_LBUTTONDOWN: - case WM_RBUTTONDOWN: - case WM_MBUTTONDOWN: - case WM_KEYDOWN: - case WM_SYSKEYDOWN: - case WM_NCACTIVATE: - case WM_ACTIVATE: - case WM_ACTIVATEAPP: - if (closing) - return DefWindowProc(hWnd, msg, wParam, lParam); - break; - } - return ScreenSaverProc(hWnd, msg, wParam, lParam); -} - -LONG WINAPI DefScreenSaverProc(HWND hWnd, UINT msg, - WPARAM wParam, LPARAM lParam) -{ - /* don't do any special processing when in preview mode */ - if (fChildPreview || closing) - return DefWindowProc(hWnd, msg, wParam, lParam); - - switch (msg) - { - case WM_CLOSE: - TerminateScreenSaver(hWnd); - /* do NOT pass this to DefWindowProc; it will terminate even if - an invalid password was given. - */ - return 0; - case SCRM_VERIFYPW: - /* verify password or return TRUE if password checking is turned off */ - if (VerifyScreenSavePwd) - return VerifyScreenSavePwd(hWnd); - else - return TRUE; - case WM_SETCURSOR: - if (checking_pwd) - break; - SetCursor(NULL); - return TRUE; - case WM_NCACTIVATE: - case WM_ACTIVATE: - case WM_ACTIVATEAPP: - if (wParam != FALSE) - break; - case WM_MOUSEMOVE: - { - POINT pt; - GetCursorPos(&pt); - if (pt.x == pt_orig.x && pt.y == pt_orig.y) - break; - } - case WM_LBUTTONDOWN: - case WM_RBUTTONDOWN: - case WM_MBUTTONDOWN: - case WM_KEYDOWN: - case WM_SYSKEYDOWN: - /* try to terminate screen saver */ - if (!checking_pwd) - PostMessage(hWnd, WM_CLOSE, 0, 0); - break; - } - return DefWindowProc(hWnd, msg, wParam, lParam); -} - -static void TerminateScreenSaver(HWND hWnd) -{ - /* don't allow recursion */ - if (checking_pwd || closing) - return; - - /* verify password */ - if (VerifyScreenSavePwd) - { - checking_pwd = TRUE; - closing = SendMessage(hWnd, SCRM_VERIFYPW, 0, 0); - checking_pwd = FALSE; - } - else - closing = TRUE; - - /* are we closing? */ - if (closing) - { - DestroyWindow(hWnd); - } - else - GetCursorPos(&pt_orig); /* if not: get new mouse position */ -} - -/* - Register screen saver window class and call user - supplied hook. - */ -static BOOL RegisterClasses(void) -{ - WNDCLASS cls; - - cls.hCursor = NULL; - cls.hIcon = LoadIcon(hMainInstance, MAKEINTATOM(ID_APP)); - cls.lpszMenuName = NULL; - cls.lpszClassName = CLASS_SCRNSAVE; - cls.hbrBackground = GetStockObject(BLACK_BRUSH); - cls.hInstance = hMainInstance; - cls.style = CS_VREDRAW | CS_HREDRAW | CS_SAVEBITS | CS_PARENTDC; - cls.lpfnWndProc = (WNDPROC) SysScreenSaverProc; - cls.cbWndExtra = 0; - cls.cbClsExtra = 0; - - if (!RegisterClass(&cls)) - return FALSE; - - return RegisterDialogClasses(hMainInstance); -} - -void WINAPI ScreenSaverChangePassword(HWND hParent) -{ - /* load Master Password Router (MPR) */ - HINSTANCE hMpr = LoadLibrary(TEXT("MPR.DLL")); - - if (hMpr) - { - CHPWDPROC ChangePassword; - ChangePassword = (CHPWDPROC) GetProcAddress(hMpr, szPwdChangePassword); - - /* change password for screen saver provider */ - if (ChangePassword) - ChangePassword(TEXT("SCRSAVE"), hParent, 0, NULL); - - FreeLibrary(hMpr); - } -} diff --git a/winsup/w32api/lib/secur32.def b/winsup/w32api/lib/secur32.def deleted file mode 100644 index bd130a1e1..000000000 --- a/winsup/w32api/lib/secur32.def +++ /dev/null @@ -1,33 +0,0 @@ -LIBRARY SECUR32.dll -EXPORTS -AcquireCredentialsHandleA@36 -AcquireCredentialsHandleW@36 -AcceptSecurityContext@36 -DecryptMessage@16 -DeleteSecurityContext@4 -EncryptMessage@16 -EnumerateSecurityPackagesA@8 -EnumerateSecurityPackagesW@8 -FreeContextBuffer@4 -FreeCredentialsHandle@4 -InitializeSecurityContextA@48 -InitializeSecurityContextW@48 -LsaCallAuthenticationPackage@28 -LsaDeregisterLogonProcess@4 -LsaFreeReturnBuffer@4 -LsaLogonUser@56 -LsaLookupAuthenticationPackage@12 -LsaRegisterLogonProcess@12 -QueryContextAttributesA@12 -QueryContextAttributesW@12 -QueryCredentialsAttributesA@12 -QueryCredentialsAttributesW@12 -CompleteAuthToken@8 -ApplyControlTokenA@8 -ApplyControlTokenW@8 -ImpersonateSecurityContext@4 -RevertSecurityContext@4 -MakeSignature@16 -VerifySignature@16 -QuerySecurityPackageInfoA@8 -QuerySecurityPackageInfoW@8 diff --git a/winsup/w32api/lib/setupapi.def b/winsup/w32api/lib/setupapi.def deleted file mode 100644 index 50eb3c962..000000000 --- a/winsup/w32api/lib/setupapi.def +++ /dev/null @@ -1,375 +0,0 @@ -LIBRARY setupapi.dll -EXPORTS -AcquireSCMLock@8 -AddMiniIconToList@8 -AddTagToGroupOrderListEntry@12 -AppendStringToMultiSz@24 -AssertFail@12 -CaptureAndConvertAnsiArg@8 -CaptureStringArg@8 -CenterWindowRelativeToParent@4 -ConcatenatePaths@16 -DelayedMove@8 -DelimStringToMultiSz@12 -DestroyTextFileReadBuffer@4 -DoInstallActionWithParams@24 -DoesUserHavePrivilege@4 -DuplicateString@4 -EnablePrivilege@8 -ExtensionPropSheetPageProc@12 -FileExists@8 -FreeStringArray@8 -GetCurrentDriverSigningPolicy@4 -GetSetFileTimestamp@20 -GetVersionInfoFromImage@12 -HandleFailedVerification@40 -InfIsFromOemLocation@8 -InstallCatalog@12 -InstallHinfSection@16 -InstallHinfSectionA@16 -InstallHinfSectionW@16 -InstallStop@4 -InstallStopEx@12 -IsUserAdmin@0 -LookUpStringInTable@12 -MemoryInitialize@4 -MultiByteToUnicode@8 -MultiSzFromSearchControl@16 -MyFree@4 -MyGetFileTitle@4 -MyMalloc@4 -MyRealloc@8 -OpenAndMapFileForRead@20 -OutOfMemory@4 -QueryMultiSzValueToArray@24 -QueryRegistryValue@20 -ReadAsciiOrUnicodeTextFile@8 -RegistryDelnode@8 -RetreiveFileSecurity@8 -RetrieveServiceConfig@8 -SearchForInfFile@24 -SetArrayToMultiSzValue@20 -SetupAddInstallSectionToDiskSpaceListA@24 -SetupAddInstallSectionToDiskSpaceListW@24 -SetupAddSectionToDiskSpaceListA@28 -SetupAddSectionToDiskSpaceListW@28 -SetupAddToDiskSpaceListA@28 -SetupAddToDiskSpaceListW@28 -SetupAddToSourceListA@8 -SetupAddToSourceListW@8 -SetupAdjustDiskSpaceListA@24 -SetupAdjustDiskSpaceListW@24 -SetupBackupErrorA@24 -SetupBackupErrorW@24 -SetupCancelTemporarySourceList@0 -SetupCloseFileQueue@4 -SetupCloseInfFile@4 -SetupCloseLog@0 -SetupCommitFileQueue@16 -SetupCommitFileQueueA@16 -SetupCommitFileQueueW@16 -SetupCopyErrorA@44 -SetupCopyErrorW@44 -SetupCopyOEMInfA@32 -SetupCopyOEMInfW@32 -SetupCreateDiskSpaceListA@12 -SetupCreateDiskSpaceListW@12 -SetupDecompressOrCopyFileA@12 -SetupDecompressOrCopyFileW@12 -SetupDefaultQueueCallback@16 -SetupDefaultQueueCallbackA@16 -SetupDefaultQueueCallbackW@16 -SetupDeleteErrorA@20 -SetupDeleteErrorW@20 -SetupDestroyDiskSpaceList@4 -SetupDiAskForOEMDisk@8 -SetupDiBuildClassInfoList@16 -SetupDiBuildClassInfoListExA@24 -SetupDiBuildClassInfoListExW@24 -SetupDiBuildDriverInfoList@12 -SetupDiCallClassInstaller@12 -SetupDiCancelDriverInfoSearch@4 -SetupDiChangeState@8 -SetupDiClassGuidsFromNameA@16 -SetupDiClassGuidsFromNameExA@24 -SetupDiClassGuidsFromNameExW@24 -SetupDiClassGuidsFromNameW@16 -SetupDiClassNameFromGuidA@16 -SetupDiClassNameFromGuidExA@24 -SetupDiClassNameFromGuidExW@24 -SetupDiClassNameFromGuidW@16 -SetupDiCreateDevRegKeyA@28 -SetupDiCreateDevRegKeyW@28 -SetupDiCreateDeviceInfoA@28 -SetupDiCreateDeviceInfoList@8 -SetupDiCreateDeviceInfoListExA@16 -SetupDiCreateDeviceInfoListExW@16 -SetupDiCreateDeviceInfoW@28 -SetupDiCreateDeviceInterfaceA@24 -SetupDiCreateDeviceInterfaceRegKeyA@24 -SetupDiCreateDeviceInterfaceRegKeyW@24 -SetupDiCreateDeviceInterfaceW@24 -SetupDiDeleteDevRegKey@20 -SetupDiDeleteDeviceInfo@8 -SetupDiDeleteDeviceInterfaceData@8 -SetupDiDeleteDeviceInterfaceRegKey@12 -SetupDiDestroyClassImageList@4 -SetupDiDestroyDeviceInfoList@4 -SetupDiDestroyDriverInfoList@12 -SetupDiDrawMiniIcon@28 -SetupDiEnumDeviceInfo@12 -SetupDiEnumDeviceInterfaces@20 -SetupDiEnumDriverInfoA@20 -SetupDiEnumDriverInfoW@20 -SetupDiGetActualSectionToInstallA@24 -SetupDiGetActualSectionToInstallW@24 -SetupDiGetClassBitmapIndex@8 -SetupDiGetClassDescriptionA@16 -SetupDiGetClassDescriptionExA@24 -SetupDiGetClassDescriptionExW@24 -SetupDiGetClassDescriptionW@16 -SetupDiGetClassDevPropertySheetsA@24 -SetupDiGetClassDevPropertySheetsW@24 -SetupDiGetClassDevsA@16 -SetupDiGetClassDevsExA@28 -SetupDiGetClassDevsExW@28 -SetupDiGetClassDevsW@16 -SetupDiGetClassImageIndex@12 -SetupDiGetClassImageList@4 -SetupDiGetClassImageListExA@12 -SetupDiGetClassImageListExW@12 -SetupDiGetClassInstallParamsA@20 -SetupDiGetClassInstallParamsW@20 -SetupDiGetDeviceInfoListClass@8 -SetupDiGetDeviceInfoListDetailA@8 -SetupDiGetDeviceInfoListDetailW@8 -SetupDiGetDeviceInstallParamsA@12 -SetupDiGetDeviceInstallParamsW@12 -SetupDiGetDeviceInstanceIdA@20 -SetupDiGetDeviceInstanceIdW@20 -SetupDiGetDeviceInterfaceAlias@16 -SetupDiGetDeviceInterfaceDetailA@24 -SetupDiGetDeviceInterfaceDetailW@24 -SetupDiGetDeviceRegistryPropertyA@28 -SetupDiGetDeviceRegistryPropertyW@28 -SetupDiGetDriverInfoDetailA@24 -SetupDiGetDriverInfoDetailW@24 -SetupDiGetDriverInstallParamsA@16 -SetupDiGetDriverInstallParamsW@16 -SetupDiGetHwProfileFriendlyNameA@16 -SetupDiGetHwProfileFriendlyNameExA@24 -SetupDiGetHwProfileFriendlyNameExW@24 -SetupDiGetHwProfileFriendlyNameW@16 -SetupDiGetHwProfileList@16 -SetupDiGetHwProfileListExA@24 -SetupDiGetHwProfileListExW@24 -SetupDiGetINFClassA@20 -SetupDiGetINFClassW@20 -SetupDiGetSelectedDevice@8 -SetupDiGetSelectedDriverA@12 -SetupDiGetSelectedDriverW@12 -SetupDiGetWizardPage@20 -SetupDiInstallClassA@16 -SetupDiInstallClassExA@28 -SetupDiInstallClassExW@28 -SetupDiInstallClassW@16 -SetupDiInstallDevice@8 -SetupDiInstallDeviceInterfaces@8 -SetupDiInstallDriverFiles@8 -SetupDiLoadClassIcon@12 -SetupDiMoveDuplicateDevice@8 -SetupDiOpenClassRegKey@8 -SetupDiOpenClassRegKeyExA@20 -SetupDiOpenClassRegKeyExW@20 -SetupDiOpenDevRegKey@24 -SetupDiOpenDeviceInfoA@20 -SetupDiOpenDeviceInfoW@20 -SetupDiOpenDeviceInterfaceA@16 -SetupDiOpenDeviceInterfaceRegKey@16 -SetupDiOpenDeviceInterfaceW@16 -SetupDiRegisterCoDeviceInstallers@8 -SetupDiRegisterDeviceInfo@24 -SetupDiRemoveDevice@8 -SetupDiRemoveDeviceInterface@8 -SetupDiSelectBestCompatDrv@8 -SetupDiSelectDevice@8 -SetupDiSelectOEMDrv@12 -SetupDiSetClassInstallParamsA@16 -SetupDiSetClassInstallParamsW@16 -SetupDiSetDeviceInstallParamsA@12 -SetupDiSetDeviceInstallParamsW@12 -SetupDiSetDeviceRegistryPropertyA@20 -SetupDiSetDeviceRegistryPropertyW@20 -SetupDiSetDriverInstallParamsA@16 -SetupDiSetDriverInstallParamsW@16 -SetupDiSetSelectedDevice@8 -SetupDiSetSelectedDriverA@12 -SetupDiSetSelectedDriverW@12 -SetupDiUnremoveDevice@8 -SetupDuplicateDiskSpaceListA@16 -SetupDuplicateDiskSpaceListW@16 -SetupFindFirstLineA@16 -SetupFindFirstLineW@16 -SetupFindNextLine@8 -SetupFindNextMatchLineA@12 -SetupFindNextMatchLineW@12 -SetupFreeSourceListA@8 -SetupFreeSourceListW@8 -SetupGetBackupInformationA@8 -SetupGetBackupInformationW@8 -SetupGetBinaryField@20 -SetupGetFieldCount@4 -SetupGetFileCompressionInfoA@20 -SetupGetFileCompressionInfoW@20 -SetupGetInfFileListA@20 -SetupGetInfFileListW@20 -SetupGetInfInformationA@20 -SetupGetInfInformationW@20 -SetupGetInfSections@16 -SetupGetIntField@12 -SetupGetLineByIndexA@16 -SetupGetLineByIndexW@16 -SetupGetLineCountA@8 -SetupGetLineCountW@8 -SetupGetLineTextA@28 -SetupGetLineTextW@28 -SetupGetMultiSzFieldA@20 -SetupGetMultiSzFieldW@20 -SetupGetSourceFileLocationA@28 -SetupGetSourceFileLocationW@28 -SetupGetSourceFileSizeA@24 -SetupGetSourceFileSizeW@24 -SetupGetSourceInfoA@24 -SetupGetSourceInfoW@24 -SetupGetStringFieldA@20 -SetupGetStringFieldW@20 -SetupGetTargetPathA@24 -SetupGetTargetPathW@24 -SetupInitDefaultQueueCallback@4 -SetupInitDefaultQueueCallbackEx@20 -SetupInitializeFileLogA@8 -SetupInitializeFileLogW@8 -SetupInstallFileA@32 -SetupInstallFileExA@36 -SetupInstallFileExW@36 -SetupInstallFileW@32 -SetupInstallFilesFromInfSectionA@24 -SetupInstallFilesFromInfSectionW@24 -SetupInstallFromInfSectionA@44 -SetupInstallFromInfSectionW@44 -SetupInstallServicesFromInfSectionA@12 -SetupInstallServicesFromInfSectionExA@28 -SetupInstallServicesFromInfSectionExW@28 -SetupInstallServicesFromInfSectionW@12 -SetupIterateCabinetA@16 -SetupIterateCabinetW@16 -SetupLogErrorA@8 -SetupLogErrorW@8 -SetupLogFileA@36 -SetupLogFileW@36 -SetupOpenAppendInfFileA@12 -SetupOpenAppendInfFileW@12 -SetupOpenFileQueue@0 -SetupOpenInfFileA@16 -SetupOpenInfFileW@16 -SetupOpenLog@4 -SetupOpenMasterInf@0 -SetupPromptForDiskA@40 -SetupPromptForDiskW@40 -SetupPromptReboot@12 -SetupQueryDrivesInDiskSpaceListA@16 -SetupQueryDrivesInDiskSpaceListW@16 -SetupQueryFileLogA@28 -SetupQueryFileLogW@28 -SetupQueryInfFileInformationA@20 -SetupQueryInfFileInformationW@20 -SetupQueryInfOriginalFileInformationA@16 -SetupQueryInfOriginalFileInformationW@16 -SetupQueryInfVersionInformationA@24 -SetupQueryInfVersionInformationW@24 -SetupQuerySourceListA@12 -SetupQuerySourceListW@12 -SetupQuerySpaceRequiredOnDriveA@20 -SetupQuerySpaceRequiredOnDriveW@20 -SetupQueueCopyA@36 -SetupQueueCopyIndirectA@4 -SetupQueueCopyIndirectW@4 -SetupQueueCopySectionA@24 -SetupQueueCopySectionW@24 -SetupQueueCopyW@36 -SetupQueueDefaultCopyA@24 -SetupQueueDefaultCopyW@24 -SetupQueueDeleteA@12 -SetupQueueDeleteSectionA@16 -SetupQueueDeleteSectionW@16 -SetupQueueDeleteW@12 -SetupQueueRenameA@20 -SetupQueueRenameSectionA@16 -SetupQueueRenameSectionW@16 -SetupQueueRenameW@20 -SetupRemoveFileLogEntryA@12 -SetupRemoveFileLogEntryW@12 -SetupRemoveFromDiskSpaceListA@20 -SetupRemoveFromDiskSpaceListW@20 -SetupRemoveFromSourceListA@8 -SetupRemoveFromSourceListW@8 -SetupRemoveInstallSectionFromDiskSpaceListA@24 -SetupRemoveInstallSectionFromDiskSpaceListW@24 -SetupRemoveSectionFromDiskSpaceListA@28 -SetupRemoveSectionFromDiskSpaceListW@28 -SetupRenameErrorA@24 -SetupRenameErrorW@24 -SetupScanFileQueue@24 -SetupScanFileQueueA@24 -SetupScanFileQueueW@24 -SetupSetDirectoryIdA@12 -SetupSetDirectoryIdExA@24 -SetupSetDirectoryIdExW@24 -SetupSetDirectoryIdW@12 -SetupSetFileQueueAlternatePlatformA@12 -SetupSetFileQueueAlternatePlatformW@12 -SetupSetPlatformPathOverrideA@4 -SetupSetPlatformPathOverrideW@4 -SetupSetSourceListA@12 -SetupSetSourceListW@12 -SetupTermDefaultQueueCallback@4 -SetupTerminateFileLog@4 -ShouldDeviceBeExcluded@12 -StampFileSecurity@8 -StringTableAddString@12 -StringTableAddStringEx@20 -StringTableDestroy@4 -StringTableDuplicate@4 -StringTableEnum@20 -StringTableGetExtraData@16 -StringTableInitialize@0 -StringTableInitializeEx@8 -StringTableLookUpString@12 -StringTableLookUpStringEx@20 -StringTableSetExtraData@16 -StringTableStringFromId@8 -StringTableStringFromIdEx@16 -StringTableTrim@4 -TakeOwnershipOfFile@4 -UnicodeToMultiByte@8 -UnmapAndCloseFile@12 -VerifyCatalogFile@4 -VerifyFile@48 -pSetupAccessRunOnceNodeList@0 -pSetupDestroyRunOnceNodeList@0 -pSetupDiGetDeviceInfoContext@12 -pSetupDiSetDeviceInfoContext@12 -pSetupDirectoryIdToPath@20 -pSetupGetField@8 -pSetupGetGlobalFlags@0 -pSetupGetOsLoaderDriveAndPath@16 -pSetupGetQueueFlags@4 -pSetupGetVersionDatum@8 -pSetupGuidFromString@8 -pSetupIsGuidNull@4 -pSetupMakeSurePathExists@4 -pSetupSetGlobalFlags@4 -pSetupSetQueueFlags@8 -pSetupSetSystemSourcePath@8 -pSetupStringFromGuid@12 -pSetupVerifyQueuedCatalogs@4 diff --git a/winsup/w32api/lib/shell32.c b/winsup/w32api/lib/shell32.c deleted file mode 100644 index 3525ed9d7..000000000 --- a/winsup/w32api/lib/shell32.c +++ /dev/null @@ -1,51 +0,0 @@ -#define INITGUID -#include -#include - -DEFINE_SHLGUID(CLSID_ShellDesktop,0x00021400L,0,0); -DEFINE_SHLGUID(CLSID_ShellLink,0x00021401L,0,0); -DEFINE_SHLGUID(FMTID_Intshcut,0x000214A0L,0,0); -DEFINE_SHLGUID(FMTID_InternetSite,0x000214A1L,0,0); -DEFINE_SHLGUID(CGID_Explorer,0x000214D0L,0,0); -DEFINE_SHLGUID(CGID_ShellDocView,0x000214D1L,0,0); -DEFINE_SHLGUID(IID_INewShortcutHookA,0x000214E1L,0,0); -DEFINE_SHLGUID(IID_IShellBrowser,0x000214E2L,0,0); -DEFINE_SHLGUID(IID_IShellView,0x000214E3L,0,0); -DEFINE_SHLGUID(IID_IContextMenu,0x000214E4L,0,0); -DEFINE_SHLGUID(IID_IShellIcon,0x000214E5L,0,0); -DEFINE_SHLGUID(IID_IShellFolder,0x000214E6L,0,0); -DEFINE_SHLGUID(IID_IShellExtInit,0x000214E8L,0,0); -DEFINE_SHLGUID(IID_IShellPropSheetExt,0x000214E9L,0,0); -DEFINE_SHLGUID(IID_IPersistFolder,0x000214EAL,0,0); -DEFINE_SHLGUID(IID_IExtractIconA,0x000214EBL,0,0); -DEFINE_SHLGUID(IID_IShellLinkA,0x000214EEL,0,0); -DEFINE_SHLGUID(IID_IShellCopyHookA,0x000214EFL,0,0); -DEFINE_SHLGUID(IID_IFileViewerA,0x000214F0L,0,0); -DEFINE_SHLGUID(IID_ICommDlgBrowser,0x000214F1L,0,0); -DEFINE_SHLGUID(IID_IEnumIDList,0x000214F2L,0,0); -DEFINE_SHLGUID(IID_IFileViewerSite,0x000214F3L,0,0); -DEFINE_SHLGUID(IID_IContextMenu2,0x000214F4L,0,0); -DEFINE_SHLGUID(IID_IShellExecuteHookA,0x000214F5L,0,0); -DEFINE_SHLGUID(IID_IPropSheetPage,0x000214F6L,0,0); -DEFINE_SHLGUID(IID_INewShortcutHookW,0x000214F7L,0,0); -DEFINE_SHLGUID(IID_IFileViewerW,0x000214F8L,0,0); -DEFINE_SHLGUID(IID_IShellLinkW,0x000214F9L,0,0); -DEFINE_SHLGUID(IID_IExtractIconW,0x000214FAL,0,0); -DEFINE_SHLGUID(IID_IShellExecuteHookW,0x000214FBL,0,0); -DEFINE_SHLGUID(IID_IShellCopyHookW,0x000214FCL,0,0); -DEFINE_GUID(IID_IShellView2,0x88E39E80L,0x3578,0x11CF,0xAE,0x69,0x08,0x00,0x2B,0x2E,0x12,0x62); -DEFINE_GUID(LIBID_SHDocVw,0xEAB22AC0,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); -DEFINE_GUID(IID_IShellExplorer,0xEAB22AC1,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); -DEFINE_GUID(DIID_DShellExplorerEvents,0xEAB22AC2,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); -DEFINE_GUID(CLSID_ShellExplorer,0xEAB22AC3,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); -DEFINE_GUID(IID_ISHItemOC,0xEAB22AC4,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); -DEFINE_GUID(DIID_DSHItemOCEvents,0xEAB22AC5,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); -DEFINE_GUID(CLSID_SHItemOC,0xEAB22AC6,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B); -DEFINE_GUID(IID_DHyperLink,0x0002DF07,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); -DEFINE_GUID(IID_DIExplorer,0x0002DF05,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); -DEFINE_GUID(DIID_DExplorerEvents,0x0002DF06,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); -DEFINE_GUID(CLSID_InternetExplorer,0x0002DF01,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); -DEFINE_GUID(CLSID_StdHyperLink,0x0002DF09,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46); -DEFINE_GUID(CLSID_FileTypes,0xB091E540,0x83E3,0x11CF,0xA7,0x13,0x00,0x20,0xAF,0xD7,0x97,0x62); -DEFINE_GUID(CLSID_InternetShortcut,0xFBF23B40L,0xE3F0,0x101B,0x84,0x88,0x00,0xAA,0x00,0x3E,0x56,0xF8); -DEFINE_GUID(IID_IUniformResourceLocator,0xFBF23B80L,0xE3F0,0x101B,0x84,0x88,0x00,0xAA,0x00,0x3E,0x56,0xF8); diff --git a/winsup/w32api/lib/shell32.def b/winsup/w32api/lib/shell32.def deleted file mode 100644 index 81e02387b..000000000 --- a/winsup/w32api/lib/shell32.def +++ /dev/null @@ -1,123 +0,0 @@ -LIBRARY SHELL32.DLL -EXPORTS -WOWShellExecute@28 -StrStrW@8 -StrStrIW@8 -StrStrIA@8 -StrStrA@8 -StrRStrW@12 -StrRStrIW@12 -StrRStrIA@12 -StrRStrA@12 -StrRChrW@12 -StrRChrIW@12 -StrRChrIA@12 -StrRChrA@12 -StrNCpyW@12 -StrNCpyA@12 -StrNCmpW@12 -StrNCmpIW@12 -StrNCmpIA@12 -StrNCmpA@12 -StrCpyNW@12 -StrCpyNA@12 -StrCmpNW@12 -StrCmpNIW@12 -StrCmpNIA@12 -StrCmpNA@12 -StrChrW@8 -StrChrIW@8 -StrChrIA@8 -StrChrA@8 -Shell_NotifyIconW@8 -Shell_NotifyIconA@8 -Shell_NotifyIcon@8 -ShellHookProc@12 -ShellExecuteW@24 -ShellExecuteExW@4 -ShellExecuteExA@4 -ShellExecuteEx@4 -ShellExecuteA@24 -ShellAboutW@16 -ShellAboutA@16 -SheShortenPathW@8 -SheShortenPathA@8 -SheSetCurDrive@4 -SheRemoveQuotesW@4 -SheRemoveQuotesA@4 -SheGetPathOffsetW@4 -SheGetDirW@8 -SheGetDirExW@12 -SheGetDirA@8 -SheGetCurDrive@0 -SheFullPathW@12 -SheFullPathA@12 -SheConvertPathW@12 -SheChangeDirW@4 -SheChangeDirExW@4 -SheChangeDirExA@4 -SheChangeDirA@4 -SHLoadInProc@4 -SHHelpShortcuts_RunDLL@16 -SHGetSpecialFolderLocation@12 -SHGetPathFromIDListW@8 -SHGetPathFromIDListA@8 -SHGetPathFromIDList@8 -SHGetMalloc@4 -SHGetInstanceExplorer@4 -SHGetFileInfoW@20 -SHGetFileInfoA@20 -SHGetFileInfo@20 -SHGetDesktopFolder@4 -SHFreeNameMappings@4 -SHFormatDrive@16 -SHFileOperationW@4 -SHFileOperationA@4 -SHFileOperation@4 -SHChangeNotify@16 -SHBrowseForFolderW@4 -SHBrowseForFolderA@4 -SHBrowseForFolder@4 -SHAppBarMessage@8 -SHAddToRecentDocs@8 -RegisterShellHook@8 -RegenerateUserEnvironment@8 -RealShellExecuteW@40 -RealShellExecuteExW@44 -RealShellExecuteExA@44 -RealShellExecuteA@40 -PrintersGetCommand_RunDLL@16 -OpenAs_RunDLL@16 -InternalExtractIconListW@12 -InternalExtractIconListA@12 -FreeIconList@8 -FindExecutableW@12 -FindExecutableA@12 -FindExeDlgProc@16 -ExtractVersionResource16W@8 -ExtractIconW@12 -ExtractIconResInfoW@20 -ExtractIconResInfoA@20 -ExtractIconExW@20 -ExtractIconExA@20 -ExtractIconEx@20 -ExtractIconA@12 -ExtractAssociatedIconW@12 -ExtractAssociatedIconExW@16 -ExtractAssociatedIconExA@16 -ExtractAssociatedIconA@12 -DuplicateIcon@8 -DragQueryPoint@8 -DragQueryFileW@16 -DragQueryFileAorW@24 -DragQueryFileA@16 -DragQueryFile@16 -DragFinish@4 -DragAcceptFiles@8 -DoEnvironmentSubstW@8 -DoEnvironmentSubstA@8 -Control_RunDLL@16 -Control_FillCache_RunDLL@16 -CommandLineToArgvW@8 -CheckEscapesW@8 -CheckEscapesA@8 diff --git a/winsup/w32api/lib/svrapi.def b/winsup/w32api/lib/svrapi.def deleted file mode 100644 index 4a7b0dba6..000000000 --- a/winsup/w32api/lib/svrapi.def +++ /dev/null @@ -1,22 +0,0 @@ -LIBRARY SVRAPI.DLL -EXPORTS -NetAccessAdd@16 -NetAccessCheck@20 -NetAccessDel@8 -NetAccessEnum@32 -NetAccessGetInfo@24 -NetAccessGetUserPerms@16 -NetAccessSetInfo@24 -NetConnectionEnum@28 -NetFileClose2@8 -NetFileEnum@28 -NetSecurityGetInfo@20 -NetServerGetInfo@20 -NetSessionDel@12 -NetSessionEnum@24 -NetSessionGetInfo@24 -NetShareAdd@16 -NetShareDel@12 -NetShareEnum@24 -NetShareGetInfo@24 -NetShareSetInfo@24 diff --git a/winsup/w32api/lib/tapi32.def b/winsup/w32api/lib/tapi32.def deleted file mode 100644 index e4f0d9c8d..000000000 --- a/winsup/w32api/lib/tapi32.def +++ /dev/null @@ -1,116 +0,0 @@ -LIBRARY TAPI32.DLL -EXPORTS -lineAccept@12 -lineAddProvider@12 -lineAddToConference@8 -lineAnswer@12 -lineBlindTransfer@12 -lineClose@4 -lineCompleteCall@16 -lineCompleteTransfer@16 -lineConfigDialog@12 -lineConfigDialogEdit@24 -lineConfigProvider@8 -lineDeallocateCall@4 -lineDevSpecific@20 -lineDevSpecificFeature@16 -lineDial@12 -lineDrop@12 -lineForward@28 -lineGatherDigits@28 -lineGenerateDigits@16 -lineGenerateTone@20 -lineGetAddressCaps@24 -lineGetAddressID@20 -lineGetAddressStatus@12 -lineGetAppPriority@24 -lineGetCallInfo@8 -lineGetCallStatus@8 -lineGetConfRelatedCalls@8 -lineGetCountry@12 -lineGetDevCaps@20 -lineGetDevConfig@12 -lineGetID@24 -lineGetIcon@12 -lineGetLineDevStatus@8 -lineGetNewCalls@16 -lineGetNumRings@12 -lineGetProviderList@8 -lineGetRequest@12 -lineGetStatusMessages@12 -lineGetTranslateCaps@12 -lineHandoff@12 -lineHold@4 -lineInitialize@20 -lineMakeCall@20 -lineMonitorDigits@8 -lineMonitorMedia@8 -lineMonitorTones@12 -lineNegotiateAPIVersion@24 -lineNegotiateExtVersion@24 -lineOpen@36 -linePark@16 -linePickup@20 -linePrepareAddToConference@12 -lineRedirect@12 -lineRegisterRequestRecipient@16 -lineReleaseUserUserInfo@4 -lineRemoveFromConference@4 -lineRemoveProvider@8 -lineSecureCall@4 -lineSendUserUserInfo@12 -lineSetAppPriority@24 -lineSetAppSpecific@8 -lineSetCallParams@20 -lineSetCallPrivilege@8 -lineSetCurrentLocation@8 -lineSetDevConfig@16 -lineSetMediaControl@48 -lineSetMediaMode@8 -lineSetNumRings@12 -lineSetStatusMessages@12 -lineSetTerminal@28 -lineSetTollList@16 -lineSetupConference@24 -lineSetupTransfer@12 -lineShutdown@4 -lineSwapHold@8 -lineTranslateAddress@28 -lineTranslateDialog@20 -lineUncompleteCall@8 -lineUnhold@4 -lineUnpark@16 -phoneClose@4 -phoneConfigDialog@12 -phoneDevSpecific@12 -phoneGetButtonInfo@12 -phoneGetData@16 -phoneGetDevCaps@20 -phoneGetDisplay@8 -phoneGetGain@12 -phoneGetHookSwitch@8 -phoneGetID@12 -phoneGetIcon@12 -phoneGetLamp@12 -phoneGetRing@12 -phoneGetStatus@8 -phoneGetStatusMessages@16 -phoneGetVolume@12 -phoneInitialize@20 -phoneNegotiateAPIVersion@24 -phoneNegotiateExtVersion@24 -phoneOpen@28 -phoneSetButtonInfo@12 -phoneSetData@16 -phoneSetDisplay@20 -phoneSetGain@12 -phoneSetHookSwitch@12 -phoneSetLamp@12 -phoneSetRing@12 -phoneSetStatusMessages@16 -phoneSetVolume@12 -phoneShutdown@4 -tapiGetLocationInfo@8 -tapiRequestDrop@8 -tapiRequestMakeCall@16 -tapiRequestMediaCall@40 diff --git a/winsup/w32api/lib/test.c b/winsup/w32api/lib/test.c deleted file mode 100644 index ce9ff3bfb..000000000 --- a/winsup/w32api/lib/test.c +++ /dev/null @@ -1,86 +0,0 @@ -/* Perform simple test of headers to avoid typos and such */ -#define __USE_W32_SOCKETS -#include -#include - -#ifdef __OBJC__ -#define BOOL WINBOOL -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef __OBJC__ /* problems with BOOL */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#else -#undef BOOL -#endif - -#include - -int main() -{ - return 0; -} diff --git a/winsup/w32api/lib/th32.def b/winsup/w32api/lib/th32.def deleted file mode 100644 index 4137bf61f..000000000 --- a/winsup/w32api/lib/th32.def +++ /dev/null @@ -1,14 +0,0 @@ -LIBRARY Kernel32.dll -EXPORTS -CreateToolhelp32Snapshot@8 -Heap32First@12 -Heap32ListFirst@8 -Heap32ListNext@8 -Heap32Next@4 -Module32First@8 -Module32Next@8 -Process32First@8 -Process32Next@8 -Thread32First@8 -Thread32Next@8 -Toolhelp32ReadProcessMemory@20 diff --git a/winsup/w32api/lib/thunk32.def b/winsup/w32api/lib/thunk32.def deleted file mode 100644 index 6252ada42..000000000 --- a/winsup/w32api/lib/thunk32.def +++ /dev/null @@ -1,68 +0,0 @@ -LIBRARY THUNK32.DLL -EXPORTS -Callback12@12 -Callback16@16 -Callback20@20 -Callback24@24 -Callback28@28 -Callback32@32 -Callback36@36 -Callback40@40 -Callback44@44 -Callback48@48 -Callback4@4 -Callback52@52 -Callback56@56 -Callback60@60 -Callback64@64 -Callback8@8 -FT_Exit0 -FT_Exit12 -FT_Exit16 -FT_Exit20 -FT_Exit24 -FT_Exit28 -FT_Exit32 -FT_Exit36 -FT_Exit4 -FT_Exit40 -FT_Exit44 -FT_Exit48 -FT_Exit52 -FT_Exit56 -FT_Exit8 -FT_Prolog -FT_Thunk -K32Thk1632Epilog@0 -K32Thk1632Prolog@0 -MapHInstLS -MapHInstLS_PN -MapHInstSL -MapHInstSL_PN -MapLS@4 -MapSL@4 -MapSLFix@4 -QT_Thunk -SMapLS -SMapLS_IP_EBP_12 -SMapLS_IP_EBP_16 -SMapLS_IP_EBP_20 -SMapLS_IP_EBP_24 -SMapLS_IP_EBP_28 -SMapLS_IP_EBP_32 -SMapLS_IP_EBP_36 -SMapLS_IP_EBP_40 -SMapLS_IP_EBP_8 -SUnMapLS -SUnMapLS_IP_EBP_12 -SUnMapLS_IP_EBP_16 -SUnMapLS_IP_EBP_20 -SUnMapLS_IP_EBP_24 -SUnMapLS_IP_EBP_28 -SUnMapLS_IP_EBP_32 -SUnMapLS_IP_EBP_36 -SUnMapLS_IP_EBP_40 -SUnMapLS_IP_EBP_8 -ThunkConnect32@24 -UnMapLS@4 -UnMapSLFixArray@8 diff --git a/winsup/w32api/lib/url.def b/winsup/w32api/lib/url.def deleted file mode 100644 index 202073259..000000000 --- a/winsup/w32api/lib/url.def +++ /dev/null @@ -1,9 +0,0 @@ -LIBRARY URL.DLL -EXPORTS -URLAssociationDialogW@24 -URLAssociationDialogA@24 -TranslateURLW@12 -TranslateURLA@12 -MIMEAssociationDialogW@24 -MIMEAssociationDialogA@24 -InetIsOffline@4 diff --git a/winsup/w32api/lib/user32.def b/winsup/w32api/lib/user32.def deleted file mode 100644 index 465a912d5..000000000 --- a/winsup/w32api/lib/user32.def +++ /dev/null @@ -1,581 +0,0 @@ -LIBRARY USER32.dll -EXPORTS -ActivateKeyboardLayout@8 -AdjustWindowRect@12 -AdjustWindowRectEx@16 -AnyPopup@0 -AppendMenuA@16 -AppendMenuW@16 -ArrangeIconicWindows@4 -AttachThreadInput@12 -BeginDeferWindowPos@4 -BeginPaint@8 -BringWindowToTop@4 -BroadcastSystemMessage@20 -CalcChildScroll@8 -CallMsgFilter@8 -CallMsgFilterA@8 -CallMsgFilterW@8 -CallNextHookEx@16 -CallWindowProcA@20 -CallWindowProcW@20 -CascadeChildWindows@8 -CascadeWindows@20 -ChangeClipboardChain@8 -ChangeDisplaySettingsA@8 -ChangeDisplaySettingsW@8 -ChangeMenuA@20 -ChangeMenuW@20 -CharLowerA@4 -CharLowerBuffA@8 -CharLowerBuffW@8 -CharLowerW@4 -CharNextA@4 -CharNextExA@12 -CharNextW@4 -CharPrevA@8 -CharPrevExA@16 -CharPrevW@8 -CharToOemA@8 -CharToOemBuffA@12 -CharToOemBuffW@12 -CharToOemW@8 -CharUpperA@4 -CharUpperBuffA@8 -CharUpperBuffW@8 -CharUpperW@4 -CheckDlgButton@12 -CheckMenuItem@12 -CheckMenuRadioItem@20 -CheckRadioButton@16 -ChildWindowFromPoint@12 -ChildWindowFromPointEx@16 -ClientToScreen@8 -ClipCursor@4 -CloseClipboard@0 -CloseDesktop@4 -CloseWindow@4 -CloseWindowStation@4 -CopyAcceleratorTableA@12 -CopyAcceleratorTableW@12 -CopyIcon@4 -CopyImage@20 -CopyRect@8 -CountClipboardFormats@0 -CreateAcceleratorTableA@8 -CreateAcceleratorTableW@8 -CreateCaret@16 -CreateCursor@28 -CreateDesktopA@24 -CreateDesktopW@24 -CreateDialogIndirectParamA@20 -CreateDialogIndirectParamW@20 -CreateDialogParamA@20 -CreateDialogParamW@20 -CreateIcon@28 -CreateIconFromResource@16 -CreateIconFromResourceEx@28 -CreateIconIndirect@4 -CreateMDIWindowA@40 -CreateMDIWindowW@40 -CreateMenu@0 -CreatePopupMenu@0 -CreateWindowExA@48 -CreateWindowExW@48 -CreateWindowStationA@16 -CreateWindowStationW@16 -DdeAbandonTransaction@12 -DdeAccessData@8 -DdeAddData@16 -DdeClientTransaction@32 -DdeCmpStringHandles@8 -DdeConnect@16 -DdeConnectList@20 -DdeCreateDataHandle@28 -DdeCreateStringHandleA@12 -DdeCreateStringHandleW@12 -DdeDisconnect@4 -DdeDisconnectList@4 -DdeEnableCallback@12 -DdeFreeDataHandle@4 -DdeFreeStringHandle@8 -DdeGetData@16 -DdeGetLastError@4 -DdeGetQualityOfService@12 -DdeImpersonateClient@4 -DdeInitializeA@16 -DdeInitializeW@16 -DdeKeepStringHandle@8 -DdeNameService@16 -DdePostAdvise@12 -DdeQueryConvInfo@12 -DdeQueryNextServer@8 -DdeQueryStringA@20 -DdeQueryStringW@20 -DdeReconnect@4 -DdeSetQualityOfService@12 -DdeSetUserHandle@12 -DdeUnaccessData@4 -DdeUninitialize@4 -DefDlgProcA@16 -DefDlgProcW@16 -DefFrameProcA@20 -DefFrameProcW@20 -DefMDIChildProcA@16 -DefMDIChildProcW@16 -DefWindowProcA@16 -DefWindowProcW@16 -DeferWindowPos@32 -DeleteMenu@12 -DestroyAcceleratorTable@4 -DestroyCaret@0 -DestroyCursor@4 -DestroyIcon@4 -DestroyMenu@4 -DestroyWindow@4 -DialogBoxIndirectParamA@20 -DialogBoxIndirectParamW@20 -DialogBoxParamA@20 -DialogBoxParamW@20 -DispatchMessageA@4 -DispatchMessageW@4 -DlgDirListA@20 -DlgDirListComboBoxA@20 -DlgDirListComboBoxW@20 -DlgDirListW@20 -DlgDirSelectComboBoxExA@16 -DlgDirSelectComboBoxExW@16 -DlgDirSelectExA@16 -DlgDirSelectExW@16 -DragDetect@12 -DragObject@20 -DrawAnimatedRects@16 -DrawCaption@16 -DrawEdge@16 -DrawFocusRect@8 -DrawFrame@16 -DrawFrameControl@16 -DrawIcon@16 -DrawIconEx@36 -DrawMenuBar@4 -DrawStateA@40 -DrawStateW@40 -DrawTextA@20 -DrawTextExA@24 -DrawTextExW@24 -DrawTextW@20 -EditWndProc@16 -EmptyClipboard@0 -EnableMenuItem@12 -EnableScrollBar@12 -EnableWindow@8 -EndDeferWindowPos@4 -EndDialog@8 -EndMenu@0 -EndPaint@8 -EnumChildWindows@12 -EnumClipboardFormats@4 -EnumDesktopWindows@12 -EnumDesktopsA@12 -EnumDesktopsW@12 -EnumDisplayMonitors@16 -EnumDisplaySettingsA@12 -EnumDisplaySettingsW@12 -EnumPropsA@8 -EnumPropsExA@12 -EnumPropsExW@12 -EnumPropsW@8 -EnumThreadWindows@12 -EnumWindowStationsA@8 -EnumWindowStationsW@8 -EnumWindows@8 -EqualRect@8 -ExcludeUpdateRgn@8 -ExitWindowsEx@8 -FillRect@12 -FindWindowA@8 -FindWindowExA@16 -FindWindowExW@16 -FindWindowW@8 -FlashWindow@8 -FrameRect@12 -FreeDDElParam@8 -GetAltTabInfo@20 -GetAltTabInfoA@20 -GetAltTabInfoW@20 -GetActiveWindow@0 -GetAsyncKeyState@4 -GetCapture@0 -GetCaretBlinkTime@0 -GetCaretPos@4 -GetClassInfoA@12 -GetClassInfoExA@12 -GetClassInfoExW@12 -GetClassInfoW@12 -GetClassLongA@8 -GetClassLongW@8 -GetClassNameA@12 -GetClassNameW@12 -GetClassWord@8 -GetClientRect@8 -GetClipCursor@4 -GetClipboardData@4 -GetClipboardFormatNameA@12 -GetClipboardFormatNameW@12 -GetClipboardOwner@0 -GetClipboardViewer@0 -GetComboBoxInfo@8 -GetCursor@0 -GetCursorInfo@4 -GetCursorPos@4 -GetDC@4 -GetDCEx@12 -GetDesktopWindow@0 -GetDialogBaseUnits@0 -GetDlgCtrlID@4 -GetDlgItem@8 -GetDlgItemInt@16 -GetDlgItemTextA@16 -GetDlgItemTextW@16 -GetDoubleClickTime@0 -GetFocus@0 -GetForegroundWindow@0 -GetIconInfo@8 -GetInputDesktop@0 -GetInputState@0 -GetKBCodePage@0 -GetKeyNameTextA@12 -GetKeyNameTextW@12 -GetKeyState@4 -GetKeyboardLayout@4 -GetKeyboardLayoutList@8 -GetKeyboardLayoutNameA@4 -GetKeyboardLayoutNameW@4 -GetKeyboardState@4 -GetKeyboardType@4 -GetLastActivePopup@4 -GetLastInputInfo@4 -GetListBoxInfo@4 -GetMenu@4 -GetMenuBarInfo@16 -GetMenuCheckMarkDimensions@0 -GetMenuContextHelpId@4 -GetMenuDefaultItem@12 -GetMenuInfo@8 -GetMenuItemCount@4 -GetMenuItemID@8 -GetMenuItemInfoA@16 -GetMenuItemInfoW@16 -GetMenuItemRect@16 -GetMenuState@12 -GetMenuStringA@20 -GetMenuStringW@20 -GetMessageA@16 -GetMessageExtraInfo@0 -GetMessagePos@0 -GetMessageTime@0 -GetMessageW@16 -GetMonitorInfoA@8 -GetMonitorInfoW@8 -GetNextDlgGroupItem@12 -GetNextDlgTabItem@12 -GetOpenClipboardWindow@0 -GetParent@4 -GetPriorityClipboardFormat@8 -GetProcessWindowStation@0 -GetPropA@8 -GetPropW@8 -GetQueueStatus@4 -GetScrollBarInfo@12 -GetScrollInfo@12 -GetScrollPos@8 -GetScrollRange@16 -GetShellWindow@0 -GetSubMenu@8 -GetSysColor@4 -GetSysColorBrush@4 -GetSystemMenu@8 -GetSystemMetrics@4 -GetTabbedTextExtentA@20 -GetTabbedTextExtentW@20 -GetThreadDesktop@4 -GetTitleBarInfo@8 -GetTopWindow@4 -GetUpdateRect@12 -GetUpdateRgn@12 -GetUserObjectInformationA@20 -GetUserObjectInformationW@20 -GetUserObjectSecurity@20 -GetWindow@8 -GetWindowContextHelpId@4 -_imp__GetWindowContextHelpId@4 -GetWindowDC@4 -GetWindowInfo@8 -GetWindowLongA@8 -GetWindowLongW@8 -GetWindowModuleFileName@12 -GetWindowModuleFileNameA@12 -GetWindowModuleFileNameW@12 -GetWindowPlacement@8 -GetWindowRect@8 -GetWindowRgn@8 -GetWindowTextA@12 -GetWindowTextLengthA@4 -GetWindowTextLengthW@4 -GetWindowTextW@12 -GetWindowThreadProcessId@8 -GetWindowWord@8 -GrayStringA@36 -GrayStringW@36 -HideCaret@4 -HiliteMenuItem@16 -ImpersonateDdeClientWindow@8 -InSendMessage@0 -InflateRect@12 -InsertMenuA@20 -InsertMenuItemA@16 -InsertMenuItemW@16 -InsertMenuW@20 -IntersectRect@12 -InvalidateRect@12 -InvalidateRgn@12 -InvertRect@8 -IsCharAlphaA@4 -IsCharAlphaNumericA@4 -IsCharAlphaNumericW@4 -IsCharAlphaW@4 -IsCharLowerA@4 -IsCharLowerW@4 -IsCharUpperA@4 -IsCharUpperW@4 -IsChild@8 -IsClipboardFormatAvailable@4 -IsDialogMessage@8 -IsDialogMessageA@8 -IsDialogMessageW@8 -IsDlgButtonChecked@8 -IsIconic@4 -IsMenu@4 -IsRectEmpty@4 -IsWindow@4 -IsWindowEnabled@4 -IsWindowUnicode@4 -IsWindowVisible@4 -IsZoomed@4 -KillSystemTimer@8 -KillTimer@8 -LoadAcceleratorsA@8 -LoadAcceleratorsW@8 -LoadBitmapA@8 -LoadBitmapW@8 -LoadCursorA@8 -LoadCursorFromFileA@4 -LoadCursorFromFileW@4 -LoadCursorW@8 -LoadIconA@8 -LoadIconW@8 -LoadImageA@24 -LoadImageW@24 -LoadKeyboardLayoutA@8 -LoadKeyboardLayoutW@8 -LoadMenuA@8 -LoadMenuIndirectA@4 -LoadMenuIndirectW@4 -LoadMenuW@8 -LoadStringA@16 -LoadStringW@16 -LockWindowUpdate@4 -LookupIconIdFromDirectory@8 -LookupIconIdFromDirectoryEx@20 -MapDialogRect@8 -MapVirtualKeyA@8 -MapVirtualKeyExA@12 -MapVirtualKeyExW@12 -MapVirtualKeyW@8 -MapWindowPoints@16 -MenuItemFromPoint@16 -MessageBeep@4 -MessageBoxA@16 -MessageBoxExA@20 -MessageBoxExW@20 -MessageBoxIndirectA@4 -MessageBoxIndirectW@4 -MessageBoxW@16 -ModifyMenuA@20 -ModifyMenuW@20 -MoveWindow@24 -MsgWaitForMultipleObjects@20 -MsgWaitForMultipleObjectsEx@20 -OemKeyScan@4 -OemToCharA@8 -OemToCharBuffA@12 -OemToCharBuffW@12 -OemToCharW@8 -OffsetRect@12 -OpenClipboard@4 -OpenDesktopA@16 -OpenDesktopW@16 -OpenIcon@4 -OpenInputDesktop@12 -OpenWindowStationA@12 -OpenWindowStationW@12 -PackDDElParam@12 -PaintDesktop@4 -PeekMessageA@20 -PeekMessageW@20 -PostMessageA@16 -PostMessageW@16 -PostQuitMessage@4 -PostThreadMessageA@16 -PostThreadMessageW@16 -PtInRect@12 -RedrawWindow@16 -RegisterClassA@4 -RegisterClassExA@4 -RegisterClassExW@4 -RegisterClassW@4 -RegisterClipboardFormatA@4 -RegisterClipboardFormatW@4 -RegisterHotKey@16 -RegisterWindowMessageA@4 -RegisterWindowMessageW@4 -ReleaseCapture@0 -ReleaseDC@8 -RemoveMenu@12 -RemovePropA@8 -RemovePropW@8 -ReplyMessage@4 -ReuseDDElParam@20 -ScreenToClient@8 -ScrollChildren@12 -ScrollDC@28 -ScrollWindow@20 -ScrollWindowEx@32 -SendDlgItemMessageA@20 -SendDlgItemMessageW@20 -SendMessageA@16 -SendMessageCallbackA@24 -SendMessageCallbackW@24 -SendMessageTimeoutA@28 -SendMessageTimeoutW@28 -SendMessageW@16 -SendNotifyMessageA@16 -SendNotifyMessageW@16 -SetActiveWindow@4 -SetCapture@4 -SetCaretBlinkTime@4 -SetCaretPos@8 -SetClassLongA@12 -SetClassLongW@12 -SetClassWord@12 -SetClipboardData@8 -SetClipboardViewer@4 -SetCursor@4 -SetCursorPos@8 -SetDebugErrorLevel@4 -SetDeskWallpaper@4 -SetDlgItemInt@16 -SetDlgItemTextA@12 -SetDlgItemTextW@12 -SetDoubleClickTime@4 -SetFocus@4 -SetForegroundWindow@4 -SetKeyboardState@4 -SetLastErrorEx@8 -SetMenu@8 -SetMenuContextHelpId@8 -_imp__SetMenuContextHelpId@8 -SetMenuDefaultItem@12 -SetMenuInfo@8 -SetMenuItemBitmaps@20 -SetMenuItemInfoA@16 -SetMenuItemInfoW@16 -SetMessageExtraInfo@4 -SetMessageQueue@4 -SetParent@8 -SetProcessWindowStation@4 -SetPropA@12 -SetPropW@12 -SetRect@20 -SetRectEmpty@4 -SetScrollInfo@16 -SetScrollPos@16 -SetScrollRange@20 -SetShellWindow@4 -SetSysColors@12 -SetSystemCursor@8 -SetSystemMenu@8 -SetSystemTimer@16 -SetThreadDesktop@4 -SetTimer@16 -SetUserObjectInformationA@16 -SetUserObjectInformationW@16 -SetUserObjectSecurity@12 -SetWindowContextHelpId@8 -_imp__SetWindowContextHelpId@8 -SetWindowLongA@12 -SetWindowLongW@12 -SetWindowPlacement@8 -SetWindowPos@28 -SetWindowRgn@12 -SetWindowTextA@8 -SetWindowTextW@8 -SetWindowWord@12 -SetWindowsHookA@8 -SetWindowsHookExA@16 -SetWindowsHookExW@16 -SetWindowsHookW@8 -ShowCaret@4 -ShowCursor@4 -ShowOwnedPopups@8 -ShowScrollBar@12 -ShowWindow@8 -ShowWindowAsync@8 -SubtractRect@12 -SwapMouseButton@4 -SwitchDesktop@4 -SystemParametersInfoA@16 -SystemParametersInfoW@16 -TabbedTextOutA@32 -TabbedTextOutW@32 -TileChildWindows@8 -TileWindows@20 -ToAscii@20 -ToAsciiEx@24 -ToUnicode@24 -ToUnicodeEx@28 -TrackMouseEvent@4 -TrackPopupMenu@28 -TrackPopupMenuEx@24 -TranslateAccelerator@12 -TranslateAcceleratorA@12 -TranslateAcceleratorW@12 -TranslateMDISysAccel@8 -TranslateMessage@4 -UnhookWindowsHook@8 -UnhookWindowsHookEx@4 -UnionRect@12 -UnloadKeyboardLayout@4 -UnpackDDElParam@16 -UnregisterClassA@8 -UnregisterClassW@8 -UnregisterHotKey@8 -UpdateWindow@4 -ValidateRect@8 -ValidateRgn@8 -VkKeyScanA@4 -VkKeyScanExA@8 -VkKeyScanExW@8 -VkKeyScanW@4 -WaitForInputIdle@8 -WaitMessage@0 -WinHelpA@16 -WinHelpW@16 -WindowFromDC@4 -WindowFromPoint@8 -keybd_event@16 -mouse_event@20 -wsprintfA -wsprintfW -wvsprintfA@12 -wvsprintfW@12 diff --git a/winsup/w32api/lib/userenv.def b/winsup/w32api/lib/userenv.def deleted file mode 100644 index b74cb9236..000000000 --- a/winsup/w32api/lib/userenv.def +++ /dev/null @@ -1,11 +0,0 @@ -LIBRARY USERENV.dll -EXPORTS -LoadUserProfileA@8 -LoadUserProfileW@8 -UnloadUserProfile@8 -GetProfilesDirectoryA@8 -GetProfilesDirectoryW@8 -GetUserProfileDirectoryA@12 -GetUserProfileDirectoryW@12 -CreateEnvironmentBlock@12 -DestroyEnvironmentBlock@4 diff --git a/winsup/w32api/lib/uuid.c b/winsup/w32api/lib/uuid.c deleted file mode 100644 index 921887c1a..000000000 --- a/winsup/w32api/lib/uuid.c +++ /dev/null @@ -1,331 +0,0 @@ -/* - Generate GUIDs for OLE and other interfaces. - - This file was generated by extracting the names of all GUIDs - from uuid.lib. The names were in turn processed by a script - to build a C program that when run generated this file. - Some definitions were added by hand afterwards. -*/ -#define INITGUID -#include -DEFINE_GUID(ARRAYID_PathProperties,0x7ecbba04,0x2d97,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(CATID_Control,0x40fc6ed4,0x2438,0x11cf,0xa3,0xdb,0x8,0,0x36,0xf1,0x25,0x2); -DEFINE_GUID(CATID_DocObject,0x40fc6ed8,0x2438,0x11cf,0xa3,0xdb,0x8,0,0x36,0xf1,0x25,0x2); -DEFINE_GUID(CATID_Insertable,0x40fc6ed3,0x2438,0x11cf,0xa3,0xdb,0x8,0,0x36,0xf1,0x25,0x2); -DEFINE_GUID(CATID_InternetAware58,0xaa0de86a,0xcf2b,0xa211,0x29,0,0xaa,0,0x3d,0x73,0x52,0); -DEFINE_GUID(CATID_IsShortcut,0x40fc6ed6,0x2438,0x11cf,0xa3,0xdb,0x8,0,0x36,0xf1,0x25,0x2); -DEFINE_GUID(CATID_NeverShowExt,0x40fc6ed7,0x2438,0x11cf,0xa3,0xdb,0x8,0,0x36,0xf1,0x25,0x2); -DEFINE_GUID(CATID_PersistsToFile,0xde86a56,0x2baa,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(CATID_PersistsToMemory,0xde86a55,0x2baa,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(CATID_PersistsToMoniker,0xde86a51,0x2baa,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(CATID_PersistsToPropertyBag,0xde86a57,0x2baa,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(CATID_PersistsToStorage,0xde86a52,0x2baa,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(CATID_PersistsToStream,0xde86a54,0x2baa,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(CATID_PersistsToStreamInit,0xde86a53,0x2baa,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(CATID_Printable,0x40fc6ed9,0x2438,0x11cf,0xa3,0xdb,0x8,0,0x36,0xf1,0x25,0x2); -DEFINE_GUID(CATID_Programmable,0x40fc6ed5,0x2438,0x11cf,0xa3,0xdb,0x8,0,0x36,0xf1,0x25,0x2); -DEFINE_GUID(CATID_RequiresDataPathHost,0xde86a50,0x2baa,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(CATID_SafeForInitializing,0x7dd95802,0x9882,0x11cf,0x9f,0xa9,0,0xaa,0,0x6c,0x42,0xc4); -DEFINE_GUID(CATID_SafeForScripting,0x7dd95801,0x9882,0x11cf,0x9f,0xa9,0,0xaa,0,0x6c,0x42,0xc4); -DEFINE_GUID(CLSID_AllClasses,0x330,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_CColorPropPage,0xbe35201,0x8f91,0x11ce,0x9d,0xe3,0,0xaa,0,0x4b,0xb8,0x51); -DEFINE_GUID(CLSID_CFontPropPage, 0x0be35200,0x8f91,0x11ce,0x9d,0xe3,0x00,0xaa,0x00,0x4b,0xb8,0x51); -DEFINE_GUID(CLSID_CFontPropPage00,0x910be352,0xce8f,0x9d11,0xe3,0,0xaa,0,0x4b,0xb8,0x51,0); -DEFINE_GUID(CLSID_CPicturePropPage,0xbe35202,0x8f91,0x11ce,0x9d,0xe3,0,0xaa,0,0x4b,0xb8,0x51); -DEFINE_GUID(CLSID_ConvertVBX,0xfb8f0822,0x164,0x101b,0x84,0xed,0x8,0,0x2b,0x2e,0xc7,0x13); -DEFINE_GUID(CLSID_CurrentUserClasses,0x332,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_FileProtocol,0x79eac9e7,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(CLSID_FtpProtocol,0x79eac9e3,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(CLSID_GopherProtocol,0x79eac9e4,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(CLSID_HttpProtocol,0x79eac9e2,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(CLSID_HttpSProtocolE5,0xf979eac9,0xceba,0x8c11,0x82,0,0xaa,0,0x4b,0xa9,0xb,0); -DEFINE_GUID(CLSID_IdentityUnmarshal,0x1b,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_InProcFreeMarshaler,0x1c,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_LocalMachineClasses,0x331,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_MkProtocol,0x79eac9e6,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(CLSID_PSBindCtx,0x312,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_PSClassObject0E,0x3,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(CLSID_PSClientSite,0x30d,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_PSDragDrop,0x311,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_PSEnumerators13,0x3,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(CLSID_PSGenObject,0x30c,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_PSInPlaceActive,0x30f,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_PSInPlaceFrame,0x310,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_PSUrlMonProxyF1,0xf979eac9,0xceba,0x8c11,0x82,0,0xaa,0,0x4b,0xa9,0xb,0); -DEFINE_GUID(CLSID_PersistPropset,0xfb8f0821,0x164,0x101b,0x84,0xed,0x8,0,0x2b,0x2e,0xc7,0x13); -DEFINE_GUID(CLSID_Picture_Dib,0x316,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_Picture_EnhMetafile,0x319,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_Picture_Metafile,0x315,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_StaticDib,0x316,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_StaticMetafile,0x315,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_StdComponentCategoriesMgr,0x2e005,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_StdFont,0xbe35203,0x8f91,0x11ce,0x9d,0xe3,0,0xaa,0,0x4b,0xb8,0x51); -DEFINE_GUID(CLSID_StdHlink,0x79eac9d0,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(CLSID_StdHlinkBrowseContext,0x79eac9d1,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(CLSID_StdMarshal,0x17,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(CLSID_StdPicture,0xbe35204,0x8f91,0x11ce,0x9d,0xe3,0,0xaa,0,0x4b,0xb8,0x51); -DEFINE_GUID(CLSID_StdURLMonikerE0,0xf979eac9,0xceba,0x8c11,0x82,0,0xaa,0,0x4b,0xa9,0xb,0); -DEFINE_GUID(CLSID_StdURLProtocol,0x79eac9e1,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(FLAGID_Internet,0x96300da0,0x2bab,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(FMTID_DocSummaryInformation,0xd5cdd502,0x2e9c,0x101b,0x93,0x97,0x8,0,0x2b,0x2c,0xf9,0xae); -DEFINE_GUID(FMTID_SummaryInformation,0xf29f85e0,0x4ff9,0x1068,0xab,0x91,0x8,0,0x2b,0x27,0xb3,0xd9); -DEFINE_GUID(FMTID_UserDefinedProperties,0xd5cdd505,0x2e9c,0x101b,0x93,0x97,0x8,0,0x2b,0x2c,0xf9,0xae); -DEFINE_GUID(GUID_CHECKVALUEEXCLUSIVE,0x6650430c,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_COLOR,0x66504301,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_FONTBOLD,0x6650430f,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_FONTITALIC,0x66504310,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_FONTNAME,0x6650430d,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_FONTSIZE,0x6650430e,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_FONTSTRIKETHROUGH,0x66504312,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_FONTUNDERSCORE,0x66504311,0xBE0F,0x101A,0x8B,0xBB,0x00,0xAA,0x00,0x30,0x0C,0xAB); -DEFINE_GUID(GUID_FONTUNDERSCORE11,0xf665043,0x1abe,0x8b10,0xbb,0,0xaa,0,0x30,0xc,0xab,0); -DEFINE_GUID(GUID_HANDLE,0x66504313,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_HIMETRIC,0x66504300,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_HasPathProperties,0x2de81,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0); -DEFINE_GUID(GUID_OPTIONVALUEEXCLUSIVE,0x6650430b,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_PathProperty,0x2de80,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(GUID_TRISTATE,0x6650430a,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_XPOS,0x66504306,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_XPOSPIXEL,0x66504302,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_XSIZE,0x66504308,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_XSIZEPIXEL,0x66504304,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_YPOS,0x66504307,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_YPOSPIXEL,0x66504303,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_YSIZE,0x66504309,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(GUID_YSIZEPIXEL,0x66504305,0xbe0f,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(IID_IActiveScript,0xbb1a2ae1,0xa4f9,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64); -DEFINE_GUID(IID_IActiveScriptError,0xeae1ba61,0xa4ed,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64); -DEFINE_GUID(IID_IActiveScriptParse,0xbb1a2ae2,0xa4f9,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64); -DEFINE_GUID(IID_IActiveScriptSite,0xdb01a1e3,0xa42b,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64); -DEFINE_GUID(IID_IActiveScriptSiteWindow,0xd10f6761,0x83e9,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64); -DEFINE_GUID(IID_IAdviseSink,0x10f,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IAdviseSink2,0x125,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IAdviseSinkEx,0x3af24290,0xc96,0x11ce,0xa0,0xcf,0,0xaa,0,0x60,0xa,0xb8); -DEFINE_GUID(IID_IAsyncMoniker,0x79eac9d3,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IAuthenticate,0x79eac9d0,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IBindCtx,0xe,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IBindHost,0xfc4801a1,0x2ba9,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); -DEFINE_GUID(IID_IBindProtocol,0x79eac9cd,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IBindStatusCallback,0x79eac9c1,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IBindStatusCallbackMsg,0x79eac9cb,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IBinding,0x79eac9c0,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_ICatInformation13,0x2e0,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(IID_ICatRegister,0x2e012,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IChannelHook,0x1008c4a0,0x7613,0x11cf,0x9a,0xf1,0,0x20,0xaf,0x6e,0x72,0xf4); -DEFINE_GUID(IID_IClassActivator40,0x1,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(IID_IClassFactory,0x1,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IClassFactory2,0xb196b28f,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IClientSecurity3D,0x1,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(IID_IClientSiteHandler,0xf4f569d1,0x593b,0x101a,0xb5,0x69,0x8,0,0x2b,0x2d,0xbf,0x7a); -DEFINE_GUID(IID_ICodeInstall,0x79eac9d1,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IConnectionPoint,0xb196b286,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IConnectionPointContainer,0xb196b284,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IContinue,0x12a,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IContinueCallback,0xb722bcca,0x4e68,0x101b,0xa2,0xbc,0,0xaa,0,0x40,0x47,0x70); -DEFINE_GUID(IID_ICreateErrorInfo,0x22f03340,0x547d,0x101b,0x8e,0x65,0x8,0,0x2b,0x2b,0xd1,0x19); -DEFINE_GUID(IID_ICreateTypeInfo05,0x204,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(IID_ICreateTypeInfo2,0x2040e,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_ICreateTypeLib,0x20406,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_ICreateTypeLib20F,0x204,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(IID_IDataAdviseHolder,0x110,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IDataObject,0x10e,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IDebug,0x123,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IDebugStream,0x124,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IDfReserved1,0x13,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IDfReserved2,0x14,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IDfReserved3,0x15,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IDispatch,0x20400,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IDropSource,0x121,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IDropTarget,0x122,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumCATEGORYINFO,0x2e011,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumCallback,0x108,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumConnectionPoints,0xb196b285,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IEnumConnections,0xb196b287,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IEnumFORMATETC,0x103,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumGUID,0x2e000,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumGeneric,0x106,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumHLITEM,0x79eac9c6,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IEnumHolder,0x107,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumMoniker,0x102,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumOLEVERB,0x104,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumOleDocumentViews,0xb722bcc8,0x4e68,0x101b,0xa2,0xbc,0,0xaa,0,0x40,0x47,0x70); -DEFINE_GUID(IID_IEnumOleUndoUnits,0xb3e7c340,0xef97,0x11ce,0x9b,0xc9,0,0xaa,0,0x60,0x8e,0x1); -DEFINE_GUID(IID_IEnumSTATDATA,0x105,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumSTATPROPSETSTG,0x13b,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumSTATPROPSTG,0x139,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumSTATSTG,0xd,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumSTATURL,0x3c374a42,0xbae4,0x11cf,0xbf,0x7d,0,0xaa,0,0x69,0x46,0xee); -DEFINE_GUID(IID_IEnumString,0x101,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumUnknown,0x100,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IEnumVARIANT,0x20404,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IErrorInfo,0x1cf2b120,0x547d,0x101b,0x8e,0x65,0x8,0,0x2b,0x2b,0xd1,0x19); -DEFINE_GUID(IID_IErrorLog,0x3127ca40,0x446e,0x11ce,0x81,0x35,0,0xaa,0,0x4b,0xb8,0x51); -DEFINE_GUID(IID_IExternalConnection,0x19,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IFillLockBytes,0x99caf010,0x415e,0x11cf,0x88,0x14,0,0xaa,0,0xb5,0x69,0xf5); -DEFINE_GUID(IID_IFilter,0x89bcb740,0x6119,0x101a,0xbc,0xb7,0,0xdd,0x1,0x6,0x55,0xaf); -DEFINE_GUID(IID_IFont,0xbef6e002,0xa874,0x101a,0x8b,0xba,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(IID_IFontDisp,0xbef6e003,0xa874,0x101a,0x8b,0xba,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(IID_IHlink,0x79eac9c3,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IHlinkBrowseContext,0x79eac9c7,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IHlinkFrame,0x79eac9c5,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IHlinkSite,0x79eac9c2,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IHlinkTarget,0x79eac9c4,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IHttpNegotiate,0x79eac9d2,0xbaf9,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IHttpSecurity,0x79eac9d7,0xbafa,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IInternalMoniker,0x11,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_ILayoutStorage,0xe6d4d90,0x6738,0x11cf,0x96,0x8,0,0xaa,0,0x68,0xd,0xb4); -DEFINE_GUID(IID_ILockBytes,0xa,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IMalloc,0x2,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IMallocSpy,0x1d,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IMarshal,0x3,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IMessageFilter,0x16,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IMimeInfo,0xf77459a0,0xbf9a,0x11cf,0xba,0x4e,0,0xc0,0x4f,0xd7,0x8,0x16); -DEFINE_GUID(IID_IMoniker,0xf,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IMultiQI,0x20,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IObjectSafety,0xcb5bdc81,0x93c1,0x11cf,0x8f,0x20,0,0x80,0x5f,0x2c,0xd0,0x64); -DEFINE_GUID(IID_IObjectWithSiteA3,0xa9fc4801,0xcf2b,0xa211,0x29,0,0xaa,0,0x3d,0x73,0x52,0); -DEFINE_GUID(IID_IOleAdviseHolder,0x111,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleCache,0x11e,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleCache2,0x128,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleCacheControl,0x129,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleClientSite,0x118,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleCommandTarget,0xb722bccb,0x4e68,0x101b,0xa2,0xbc,0,0xaa,0,0x40,0x47,0x70); -DEFINE_GUID(IID_IOleContainer,0x11b,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleControl,0xb196b288,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IOleControlSite,0xB196B289,0xBAB4,0x101A,0xB6,0x9C,0x00,0xAA,0x00,0x34,0x1D,0x07); -DEFINE_GUID(IID_IOleControlSite89,0xb4b196b2,0x1aba,0xb610,0x9c,0,0xaa,0,0x34,0x1d,0x7,0); -DEFINE_GUID(IID_IOleDocument,0xb722bcc5,0x4e68,0x101b,0xa2,0xbc,0,0xaa,0,0x40,0x47,0x70); -DEFINE_GUID(IID_IOleDocumentSite,0xb722bcc7,0x4e68,0x101b,0xa2,0xbc,0,0xaa,0,0x40,0x47,0x70); -DEFINE_GUID(IID_IOleDocumentView,0xb722bcc6,0x4e68,0x101b,0xa2,0xbc,0,0xaa,0,0x40,0x47,0x70); -DEFINE_GUID(IID_IOleInPlaceActiveObject,0x117,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleInPlaceFrame,0x116,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleInPlaceObject,0x113,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleInPlaceObjectWindowless,0x1c2056cc,0x5ef4,0x101b,0x8b,0xc8,0,0xaa,0,0x3e,0x3b,0x29); -DEFINE_OLEGUID(IID_IOleInPlaceSite,0x00000119,0,0); -DEFINE_GUID(IID_IOleInPlaceSite19,0x1,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(IID_IOleInPlaceSiteEx,0x9c2cad80,0x3424,0x11cf,0xb6,0x70,0,0xaa,0,0x4c,0xd6,0xd8); -DEFINE_GUID(IID_IOleInPlaceSiteWindowless,0x922eada0,0x3424,0x11cf,0xb6,0x70,0,0xaa,0,0x4c,0xd6,0xd8); -DEFINE_GUID(IID_IOleInPlaceUIWindow,0x115,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleItemContainer,0x11c,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleLink,0x11d,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleManager,0x11f,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleObject,0x112,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleParentUndoUnit,0xa1faf330,0xef97,0x11ce,0x9b,0xc9,0,0xaa,0,0x60,0x8e,0x1); -DEFINE_GUID(IID_IOlePresObj,0x120,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOleUndoManager00,0x97d001f2,0xceef,0x9b11,0xc9,0,0xaa,0,0x60,0x8e,0x1,0); -DEFINE_GUID(IID_IOleUndoUnit,0x894ad3b0,0xef97,0x11ce,0x9b,0xc9,0,0xaa,0,0x60,0x8e,0x1); -DEFINE_GUID(IID_IOleWindow,0x114,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IOverlappedCompletion,0x521a28f0,0xe40b,0x11ce,0xb2,0xc9,0,0xaa,0,0x68,0x9,0x37); -DEFINE_GUID(IID_IOverlappedStream,0x49384070,0xe40a,0x11ce,0xb2,0xc9,0,0xaa,0,0x68,0x9,0x37); -DEFINE_GUID(IID_IPSFactory,0x9,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IPSFactoryBuffer,0xd5f569d0,0x593b,0x101a,0xb5,0x69,0x8,0,0x2b,0x2d,0xbf,0x7a); -DEFINE_GUID(IID_IParseDisplayName,0x11a,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IPerPropertyBrowsing,0x376bd3aa,0x3845,0x101b,0x84,0xed,0x8,0,0x2b,0x2e,0xc7,0x13); -DEFINE_GUID(IID_IPersist,0x10c,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IPersistFile,0x10b,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IPersistMemory,0xbd1ae5e0,0xa6ae,0x11ce,0xbd,0x37,0x50,0x42,0,0xc1,0,0); -DEFINE_GUID(IID_IPersistMonikerC9,0xf979eac9,0xceba,0x8c11,0x82,0,0xaa,0,0x4b,0xa9,0xb,0); -DEFINE_GUID(IID_IPersistPropertyBag,0x37d84f60,0x42cb,0x11ce,0x81,0x35,0,0xaa,0,0x4b,0xb8,0x51); -DEFINE_OLEGUID(IID_IPersistStorage,0x0000010a,0,0); -DEFINE_GUID(IID_IPersistStorage0A,0x1,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(IID_IPersistStream,0x109,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IPersistStreamInit,0x7fd52380,0x4e07,0x101b,0xae,0x2d,0x8,0,0x2b,0x2e,0xc7,0x13); -DEFINE_GUID(IID_IPicture,0x7bf80980,0xbf32,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(IID_IPictureDisp,0x7bf80981,0xbf32,0x101a,0x8b,0xbb,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(IID_IPointerInactive,0x55980ba0,0x35aa,0x11cf,0xb6,0x71,0,0xaa,0,0x4c,0xd6,0xd8); -DEFINE_GUID(IID_IPrint,0xb722bcc9,0x4e68,0x101b,0xa2,0xbc,0,0xaa,0,0x40,0x47,0x70); -DEFINE_GUID(IID_IProgressNotifyA0,0x17a9d758,0xcf46,0x9511,0xfc,0,0xaa,0,0x68,0xd,0xb4,0); -DEFINE_GUID(IID_IPropertyBag,0x55272a00,0x42cb,0x11ce,0x81,0x35,0,0xaa,0,0x4b,0xb8,0x51); -DEFINE_GUID(IID_IPropertyFrame,0xb196b28a,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IPropertyNotifySink,0x9bfbbc02,0xeff1,0x101a,0x84,0xed,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IPropertyPage,0xb196b28d,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IPropertyPage2,0x1e44665,0x24ac,0x101b,0x84,0xed,0x8,0,0x2b,0x2e,0xc7,0x13); -DEFINE_GUID(IID_IPropertyPageSite,0xb196b28c,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IPropertySetStorage,0x13a,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IPropertyStorage,0x138,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IProvideClassInfo,0xb196b283,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_GUID(IID_IProvideClassInfo2,0xa6bc3ac0,0xdbaa,0x11ce,0x9d,0xe3,0,0xaa,0,0x4b,0xb8,0x51); -DEFINE_GUID(IID_IProxy,0x27,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IProxyManager,0x8,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IQuickActivate,0xcf51ed10,0x62fe,0x11cf,0xbf,0x86,0,0xa0,0xc9,0x3,0x48,0x36); -DEFINE_GUID(IID_IROTData,0xf29f6bc0,0x5021,0x11ce,0xaa,0x15,0,0,0x69,0x1,0x29,0x3f); -DEFINE_GUID(IID_IRichEditOle,0x20d00,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IRichEditOleCallback,0x20d03,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IRootStorage,0x12,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IRpcChannel,0x4,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IRpcChannelBuffer,0xd5f56b60,0x593b,0x101a,0xb5,0x69,0x8,0,0x2b,0x2d,0xbf,0x7a); -DEFINE_GUID(IID_IRpcProxy,0x7,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IRpcProxyBuffer34,0x3bd5f56a,0x1a59,0xb510,0x69,0x8,0,0x2b,0x2d,0xbf,0x7a,0); -DEFINE_GUID(IID_IRpcStub,0x5,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IRpcStubBuffer,0xd5f56afc,0x593b,0x101a,0xb5,0x69,0x8,0,0x2b,0x2d,0xbf,0x7a); -DEFINE_OLEGUID(IID_IRunnableObject,0x00000126,0,0); -DEFINE_GUID(IID_IRunnableObject26,0x1,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(IID_IRunningObjectTable,0x10,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_ISequentialStream,0xc733a30,0x2a1c,0x11ce,0xad,0xe5,0,0xaa,0,0x44,0x77,0x3d); -DEFINE_GUID(IID_IServerHandler,0xf4f569d0,0x593b,0x101a,0xb5,0x69,0x8,0,0x2b,0x2d,0xbf,0x7a); -DEFINE_GUID(IID_IServerSecurity3E,0x1,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(IID_IServiceProvider,0x6d5140c1,0x7436,0x11ce,0x80,0x34,0,0xaa,0,0x60,0x9,0xfa); -DEFINE_GUID(IID_ISimpleFrameSite,0x742b0e01,0x14e6,0x101b,0x91,0x4e,0,0xaa,0,0x30,0xc,0xab); -DEFINE_GUID(IID_ISpecifyPropertyPages,0xb196b28b,0xbab4,0x101a,0xb6,0x9c,0,0xaa,0,0x34,0x1d,0x7); -DEFINE_OLEGUID(IID_IStdMarshalInfo,24,0,0); -DEFINE_GUID(IID_IStdMarshalInfo18,0,0,0xc000,0,0,0,0,0,0,0x46,0); -DEFINE_GUID(IID_IStorage,0xb,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IStream,0xc,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IStub,0x26,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IStubManager,0x6,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_ISupportErrorInfo,0xdf0b3d60,0x548f,0x101b,0x8e,0x65,0x8,0,0x2b,0x2b,0xd1,0x19); -DEFINE_GUID(IID_ITargetEmbedding,0x548793c0,0x9e74,0x11cf,0x96,0x55,0,0xa0,0xc9,0x3,0x49,0x23); -DEFINE_GUID(IID_ITargetFrame,0xd5f78c80,0x5252,0x11cf,0x90,0xfa,0,0xaa,0,0x42,0x10,0x6e); -DEFINE_GUID(IID_ITypeChangeEvents,0x20410,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_ITypeComp,0x20403,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_ITypeInfo,0x20401,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_ITypeInfo2,0x20412,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_ITypeLib,0x20402,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_ITypeLib2,0x20411,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IUnknown,0,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IUrlHistoryStg,0x3c374a41,0xbae4,0x11cf,0xbf,0x7d,0,0xaa,0,0x69,0x46,0xee); -DEFINE_GUID(IID_IViewObject,0x10d,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IViewObject2,0x127,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(IID_IViewObjectEx,0x3af24292,0xc96,0x11ce,0xa0,0xcf,0,0xaa,0,0x60,0xa,0xb8); -DEFINE_GUID(IID_IWinInetHttpInfo,0x79eac9d8,0xbafa,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IWinInetInfo,0x79eac9d6,0xbafa,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_IWindowForBindingUI,0x79eac9d5,0xbafa,0x11ce,0x8c,0x82,0,0xaa,0,0x4b,0xa9,0xb); -DEFINE_GUID(IID_StdOle,0x20430,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_ALLIMAGE,0x2de0e,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_ALLMM,0x2de18,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_ALLTEXT,0x2de1e,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_ANSITEXT,0x2de19,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_AVI,0x2de0f,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_BASICAUDIO,0x2de12,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_BIFF,0x2de21,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_BMP,0x2de01,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_CGM,0x2de0b,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_COMMONIMAGE,0x2de0d,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_DIB,0x2de02,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_DIF,0x2de1f,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_ENHMF,0x2de04,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_EPS,0x2de0c,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_GIF,0x2de05,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_HTML,0x2de1c,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_JPEG,0x2de06,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_MIDI,0x2de13,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_MPEG,0x2de10,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_PALETTE,0x2de22,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_PCX,0x2de09,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_PENDATA,0x2de23,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_PICT,0x2de0a,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_POSTSCRIPT,0x2de1d,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_QUICKTIME,0x2de11,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_RIFF,0x2de15,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_RTF,0x2de1b,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_SOUND,0x2de16,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_SYLK,0x2de20,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_TIFF,0x2de07,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_UNICODE,0x2de1a,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_VIDEO,0x2de17,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_WAV,0x2de14,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_WMF,0x2de03,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(OLE_DATAPATH_XBM,0x2de08,0,0,0xc0,0,0,0,0,0,0,0x46); -DEFINE_GUID(SID_SContainerDispatch,0xb722be00,0x4e68,0x101b,0xa2,0xbc,0,0xaa,0,0x40,0x47,0x70); -DEFINE_GUID(SID_SDataPathBrowser,0xfc4801a5,0x2ba9,0x11cf,0xa2,0x29,0,0xaa,0,0x3d,0x73,0x52); diff --git a/winsup/w32api/lib/vdmdbg.def b/winsup/w32api/lib/vdmdbg.def deleted file mode 100644 index fbd1b4fe6..000000000 --- a/winsup/w32api/lib/vdmdbg.def +++ /dev/null @@ -1,18 +0,0 @@ -LIBRARY VDMDBG.dll -EXPORTS -VDMBreakThread@8 -VDMDetectWOW@0 -VDMEnumProcessWOW@8 -VDMEnumTaskWOW@12 -VDMGetModuleSelector@20 -VDMGetPointer@20 -VDMGetSelectorModule@32 -VDMGetThreadContext@8 -VDMGetThreadSelectorEntry@16 -VDMGlobalFirst@24 -VDMGlobalNext@24 -VDMKillWOW@0 -VDMModuleFirst@20 -VDMModuleNext@20 -VDMProcessException@4 -VDMSetThreadContext@8 diff --git a/winsup/w32api/lib/version.def b/winsup/w32api/lib/version.def deleted file mode 100644 index 35a087e5d..000000000 --- a/winsup/w32api/lib/version.def +++ /dev/null @@ -1,16 +0,0 @@ -LIBRARY "VERSION.dll" -EXPORTS -GetFileVersionInfoA@16 -GetFileVersionInfoSizeA@8 -GetFileVersionInfoSizeW@8 -GetFileVersionInfoW@16 -VerFindFileA@32 -VerFindFileW@32 -VerInstallFileA@32 -VerInstallFileW@32 -VerLanguageNameA@12 -VerLanguageNameW@12 -VerQueryValueA@16 -VerQueryValueIndexA@24 -VerQueryValueIndexW@24 -VerQueryValueW@16 diff --git a/winsup/w32api/lib/vfw32.def b/winsup/w32api/lib/vfw32.def deleted file mode 100644 index 14bcc14fe..000000000 --- a/winsup/w32api/lib/vfw32.def +++ /dev/null @@ -1,131 +0,0 @@ -LIBRARY MSVFW32.DLL -EXPORTS -VideoForWindowsVersion@0 -StretchDIB@48 -MCIWndRegisterClass -MCIWndCreateW -MCIWndCreateA -MCIWndCreate -ICSeqCompressFrameStart@8 -ICSeqCompressFrameEnd@4 -ICSeqCompressFrame@20 -ICSendMessage@16 -ICRemove@12 -ICOpenFunction@16 -ICOpen@12 -ICMThunk32@20 -ICLocate@20 -ICInstall@20 -ICInfo@12 -ICImageDecompress@20 -ICImageCompress@28 -ICGetInfo@12 -ICGetDisplayFormat@24 -ICDrawBegin -ICDraw -ICDecompress -ICCompressorFree@4 -ICCompressorChoose@24 -ICCompress -ICClose@4 -GetSaveFileNamePreviewW@4 -GetSaveFileNamePreviewA@4 -GetOpenFileNamePreviewW@4 -GetOpenFileNamePreviewA@4 -GetOpenFileNamePreview@4 -DrawDibTime@8 -DrawDibStop@4 -DrawDibStart@8 -DrawDibSetPalette@8 -DrawDibRealize@12 -DrawDibProfileDisplay@4 -DrawDibOpen@0 -DrawDibGetPalette@4 -DrawDibGetBuffer@16 -DrawDibEnd@4 -DrawDibDraw@52 -DrawDibClose@4 -DrawDibChangePalette@16 -DrawDibBegin@32 -IID_IGetFrame -IID_IAVIStream -IID_IAVIFile -IID_IAVIEditStream -EditStreamSetNameW@8 -EditStreamSetNameA@8 -EditStreamSetName@8 -EditStreamSetInfoW@12 -EditStreamSetInfoA@12 -EditStreamSetInfo@12 -EditStreamPaste@24 -EditStreamCut@16 -EditStreamCopy@16 -EditStreamClone@8 -DllGetClassObject@12 -DllCanUnloadNow@0 -CreateEditableStream@8 -AVIStreamWriteData@16 -AVIStreamWrite@32 -AVIStreamTimeToSample@8 -AVIStreamStart@4 -AVIStreamSetFormat@16 -AVIStreamSampleToTime@8 -AVIStreamRelease@4 -AVIStreamReadFormat@16 -AVIStreamReadData@16 -AVIStreamRead@28 -AVIStreamOpenFromFileW@24 -AVIStreamOpenFromFileA@24 -AVIStreamOpenFromFile@24 -AVIStreamLength@4 -AVIStreamInfoW@12 -AVIStreamInfoA@12 -AVIStreamInfo@12 -AVIStreamGetFrameOpen@8 -AVIStreamGetFrameClose@4 -AVIStreamGetFrame@8 -AVIStreamFindSample@12 -AVIStreamEndStreaming@4 -AVIStreamCreate@16 -AVIStreamBeginStreaming@16 -AVIStreamAddRef@4 -AVISaveW -AVISaveVW@24 -AVISaveVA@24 -AVISaveV@24 -AVISaveOptionsFree@8 -AVISaveOptions@20 -AVISaveA -AVISave -AVIPutFileOnClipboard@4 -AVIMakeStreamFromClipboard@12 -AVIMakeFileFromStreams@12 -AVIMakeCompressedStream@16 -AVIGetFromClipboard@4 -AVIFileWriteData@16 -AVIFileRelease@4 -AVIFileReadData@16 -AVIFileOpenW@16 -AVIFileOpenA@16 -AVIFileOpen@16 -AVIFileInit@0 -AVIFileInfoW@12 -AVIFileInfoA@12 -AVIFileInfo@12 -AVIFileGetStream@16 -AVIFileExit@0 -AVIFileEndRecord@4 -AVIFileCreateStreamW@12 -AVIFileCreateStreamA@12 -AVIFileCreateStream@12 -AVIFileAddRef@4 -AVIClearClipboard@0 -AVIBuildFilterW@12 -AVIBuildFilterA@12 -AVIBuildFilter@12 -videoThunk32@20 -capGetDriverDescriptionW@20 -capGetDriverDescriptionA@20 -capCreateCaptureWindowW@32 -capCreateCaptureWindowA@32 -AppCleanup@4 diff --git a/winsup/w32api/lib/win32spl.def b/winsup/w32api/lib/win32spl.def deleted file mode 100644 index ea00cad1c..000000000 --- a/winsup/w32api/lib/win32spl.def +++ /dev/null @@ -1,16 +0,0 @@ -LIBRARY WIN32SPL.DLL -EXPORTS -AddPortExW@16 -AddPortW@12 -ClosePort@4 -ConfigurePortW@12 -DeletePortW@12 -EndDocPort@4 -EnumPortsW@24 -InitializeMonitor@4 -InitializePrintProvidor@12 -LibMain@12 -OpenPort@8 -ReadPort@16 -StartDocPort@20 -WritePort@16 diff --git a/winsup/w32api/lib/wininet.def b/winsup/w32api/lib/wininet.def deleted file mode 100644 index 8ad4d06f0..000000000 --- a/winsup/w32api/lib/wininet.def +++ /dev/null @@ -1,159 +0,0 @@ -; Which header declares the functions not in wininet? -LIBRARY WININET.DLL -EXPORTS -CommitUrlCacheEntryA@44 -CommitUrlCacheEntryW@44 -CreateUrlCacheContainerA@32 -CreateUrlCacheContainerW@32 -CreateUrlCacheEntryA@20 -CreateUrlCacheEntryW@20 -CreateUrlCacheGroup@8 -DeleteIE3Cache@16 -DeleteUrlCacheContainerA@8 -DeleteUrlCacheContainerW@8 -DeleteUrlCacheEntry@4 -DeleteUrlCacheGroup@16 -FindCloseUrlCache@4 -FindFirstUrlCacheContainerA@16 -FindFirstUrlCacheContainerW@16 -FindFirstUrlCacheEntryA@12 -FindFirstUrlCacheEntryExA@40 -FindFirstUrlCacheEntryExW@40 -FindFirstUrlCacheEntryW@12 -FindNextUrlCacheContainerA@12 -FindNextUrlCacheContainerW@12 -FindNextUrlCacheEntryA@12 -FindNextUrlCacheEntryExA@24 -FindNextUrlCacheEntryExW@24 -FindNextUrlCacheEntryW@12 -FreeUrlCacheSpaceA@12 -FreeUrlCacheSpaceW@12 -FtpCreateDirectoryA@8 -FtpCreateDirectoryW@8 -FtpDeleteFileA@8 -FtpDeleteFileW@8 -FtpFindFirstFileA@20 -FtpFindFirstFileW@20 -FtpGetCurrentDirectoryA@12 -FtpGetCurrentDirectoryW@12 -FtpGetFileA@28 -FtpGetFileW@28 -FtpOpenFileA@20 -FtpOpenFileW@20 -FtpPutFileA@20 -FtpPutFileW@20 -FtpRemoveDirectoryA@8 -FtpRemoveDirectoryW@8 -FtpRenameFileA@12 -FtpRenameFileW@12 -FtpSetCurrentDirectoryA@8 -FtpSetCurrentDirectoryW@8 -GetUrlCacheConfigInfoA@12 -GetUrlCacheConfigInfoW@12 -GetUrlCacheEntryInfoA@12 -GetUrlCacheEntryInfoExA@28 -GetUrlCacheEntryInfoExW@28 -GetUrlCacheEntryInfoW@12 -GetUrlCacheHeaderData@8 -GopherCreateLocatorA@28 -GopherCreateLocatorW@28 -GopherFindFirstFileA@24 -GopherFindFirstFileW@24 -GopherGetAttributeA@32 -GopherGetAttributeW@32 -GopherGetLocatorTypeA@8 -GopherGetLocatorTypeW@8 -GopherOpenFileA@20 -GopherOpenFileW@20 -HttpAddRequestHeadersA@16 -HttpAddRequestHeadersW@16 -HttpEndRequestA@16 -HttpEndRequestW@16 -HttpOpenRequestA@32 -HttpOpenRequestW@32 -HttpQueryInfoA@20 -HttpQueryInfoW@20 -HttpSendRequestA@20 -HttpSendRequestExA@20 -HttpSendRequestExW@20 -HttpSendRequestW@20 -IncrementUrlCacheHeaderData@8 -InternetAttemptConnect@4 -InternetAutodial@8 -InternetAutodialCallback@8 -InternetAutodialHangup@4 -InternetCanonicalizeUrlA@16 -InternetCanonicalizeUrlW@16 -InternetCheckConnectionA@12 -InternetCheckConnectionW@12 -InternetCloseHandle@4 -InternetCombineUrlA@20 -InternetCombineUrlW@20 -InternetConfirmZoneCrossing@16 -InternetConnectA@32 -InternetConnectW@32 -InternetCrackUrlA@16 -InternetCrackUrlW@16 -InternetCreateUrlA@16 -InternetCreateUrlW@16 -InternetDebugGetLocalTime@8 -InternetDial@20 -InternetErrorDlg@20 -InternetFindNextFileA@8 -InternetFindNextFileW@8 -InternetGetCertByURL@12 -InternetGetConnectedState@8 -InternetGetCookieA@16 -InternetGetCookieW@16 -InternetGetLastResponseInfoA@12 -InternetGetLastResponseInfoW@12 -InternetGoOnline@12 -InternetHangUp@8 -InternetLockRequestFile@8 -InternetOpenA@20 -InternetOpenUrlA@24 -InternetOpenUrlW@24 -InternetOpenW@20 -InternetQueryDataAvailable@16 -InternetQueryOptionA@16 -InternetQueryOptionW@16 -InternetReadFile@16 -InternetReadFileExA@16 -InternetReadFileExW@16 -InternetSetCookieA@12 -InternetSetCookieW@12 -InternetSetDialState@12 -InternetSetFilePointer@20 -InternetSetOptionA@16 -InternetSetOptionExA@20 -InternetSetOptionExW@20 -InternetSetOptionW@16 -InternetSetStatusCallback@8 -InternetShowSecurityInfoByURL@8 -InternetTimeFromSystemTime@16 -InternetTimeToSystemTime@12 -InternetUnlockRequestFile@4 -InternetWriteFile@16 -InternetWriteFileExA@16 -InternetWriteFileExW@16 -IsHostInProxyBypassList@12 -LoadUrlCacheContent@0 -ParseX509EncodedCertificateForListBoxEntry@16 -ReadUrlCacheEntryStream@20 -RetrieveUrlCacheEntryFileA@16 -RetrieveUrlCacheEntryFileW@16 -RetrieveUrlCacheEntryStreamA@20 -RetrieveUrlCacheEntryStreamW@20 -RunOnceUrlCache@16 -SetUrlCacheConfigInfoA@8 -SetUrlCacheConfigInfoW@8 -SetUrlCacheEntryGroup@28 -SetUrlCacheEntryInfoA@12 -SetUrlCacheEntryInfoW@12 -SetUrlCacheHeaderData@8 -ShowClientAuthCerts@4 -ShowSecurityInfo@8 -ShowX509EncodedCertificate@12 -UnlockUrlCacheEntryFile@8 -UnlockUrlCacheEntryStream@8 -UpdateUrlCacheContentPath@4 diff --git a/winsup/w32api/lib/winmm.def b/winsup/w32api/lib/winmm.def deleted file mode 100644 index 4de3638e5..000000000 --- a/winsup/w32api/lib/winmm.def +++ /dev/null @@ -1,196 +0,0 @@ -LIBRARY WINMM.DLL -EXPORTS -CloseDriver@12 -DefDriverProc@20 -DriverCallback@28 -DrvGetModuleHandle@4 -GetDriverModuleHandle@4 -NotifyCallbackData@20 -OpenDriver@12 -PlaySound@12 -PlaySoundA@12 -PlaySoundW@12 -SendDriverMessage@16 -WOW32DriverCallback@28 -WOW32ResolveMultiMediaHandle@24 -WOWAppExit@4 -aux32Message@20 -auxGetDevCapsA@12 -auxGetDevCapsW@12 -auxGetNumDevs@0 -auxGetVolume@8 -auxOutMessage@16 -auxSetVolume@8 -joy32Message@20 -joyConfigChanged@4 -joyGetDevCapsA@12 -joyGetDevCapsW@12 -joyGetNumDevs@0 -joyGetPos@8 -joyGetPosEx@8 -joyGetThreshold@8 -joyReleaseCapture@4 -joySetCapture@16 -joySetThreshold@8 -mci32Message@20 -mciDriverNotify@12 -mciDriverYield@4 -mciExecute@4 -mciFreeCommandResource@4 -mciGetCreatorTask@4 -mciGetDeviceIDA@4 -mciGetDeviceIDFromElementIDA@8 -mciGetDeviceIDFromElementIDW@8 -mciGetDeviceIDW@4 -mciGetDriverData@4 -mciGetErrorStringA@12 -mciGetErrorStringW@12 -mciGetYieldProc@8 -mciLoadCommandResource@12 -mciSendCommandA@16 -mciSendCommandW@16 -mciSendStringA@16 -mciSendStringW@16 -mciSetDriverData@8 -mciSetYieldProc@12 -mid32Message@20 -midiConnect@12 -midiDisconnect@12 -midiInAddBuffer@12 -midiInClose@4 -midiInGetDevCapsA@12 -midiInGetDevCapsW@12 -midiInGetErrorTextA@12 -midiInGetErrorTextW@12 -midiInGetID@8 -midiInGetNumDevs@0 -midiInMessage@16 -midiInOpen@20 -midiInPrepareHeader@12 -midiInReset@4 -midiInStart@4 -midiInStop@4 -midiInUnprepareHeader@12 -midiOutCacheDrumPatches@16 -midiOutCachePatches@16 -midiOutClose@4 -midiOutGetDevCapsA@12 -midiOutGetDevCapsW@12 -midiOutGetErrorTextA@12 -midiOutGetErrorTextW@12 -midiOutGetID@8 -midiOutGetNumDevs@0 -midiOutGetVolume@8 -midiOutLongMsg@12 -midiOutMessage@16 -midiOutOpen@20 -midiOutPrepareHeader@12 -midiOutReset@4 -midiOutSetVolume@8 -midiOutShortMsg@8 -midiOutUnprepareHeader@12 -midiStreamClose@4 -midiStreamOpen@24 -midiStreamOut@12 -midiStreamPause@4 -midiStreamPosition@12 -midiStreamProperty@12 -midiStreamRestart@4 -midiStreamStop@4 -mixerClose@4 -mixerGetControlDetailsA@12 -mixerGetControlDetailsW@12 -mixerGetDevCapsA@12 -mixerGetDevCapsW@12 -mixerGetID@12 -mixerGetLineControlsA@12 -mixerGetLineControlsW@12 -mixerGetLineInfoA@12 -mixerGetLineInfoW@12 -mixerGetNumDevs@0 -mixerMessage@16 -mixerOpen@20 -mixerSetControlDetails@12 -mmDrvInstall@12 -mmGetCurrentTask@0 -mmTaskBlock@4 -mmTaskCreate@12 -mmTaskSignal@4 -mmTaskYield@0 -mmioAdvance@12 -mmioAscend@12 -mmioClose@8 -mmioCreateChunk@12 -mmioDescend@16 -mmioFlush@8 -mmioGetInfo@12 -mmioInstallIOProcA@12 -mmioInstallIOProcW@12 -mmioOpenA@12 -mmioOpenW@12 -mmioRead@12 -mmioRenameA@16 -mmioRenameW@16 -mmioSeek@12 -mmioSendMessage@16 -mmioSetBuffer@16 -mmioSetInfo@12 -mmioStringToFOURCCA@8 -mmioStringToFOURCCW@8 -mmioWrite@12 -mmsystemGetVersion@0 -mod32Message@20 -mxd32Message@20 -sndPlaySoundA@8 -sndPlaySoundW@8 -tid32Message@20 -timeBeginPeriod@4 -timeEndPeriod@4 -timeGetDevCaps@8 -timeGetSystemTime@8 -timeGetTime@0 -timeKillEvent@4 -timeSetEvent@20 -waveInAddBuffer@12 -waveInClose@4 -waveInGetDevCapsA@12 -waveInGetDevCapsW@12 -waveInGetErrorTextA@12 -waveInGetErrorTextW@12 -waveInGetID@8 -waveInGetNumDevs@0 -waveInGetPosition@12 -waveInMessage@16 -waveInOpen@24 -waveInPrepareHeader@12 -waveInReset@4 -waveInStart@4 -waveInStop@4 -waveInUnprepareHeader@12 -waveOutBreakLoop@4 -waveOutClose@4 -waveOutGetDevCapsA@12 -waveOutGetDevCapsW@12 -waveOutGetErrorTextA@12 -waveOutGetErrorTextW@12 -waveOutGetID@8 -waveOutGetNumDevs@0 -waveOutGetPitch@8 -waveOutGetPlaybackRate@8 -waveOutGetPosition@12 -waveOutGetVolume@8 -waveOutMessage@16 -waveOutOpen@24 -waveOutPause@4 -waveOutPrepareHeader@12 -waveOutReset@4 -waveOutRestart@4 -waveOutSetPitch@8 -waveOutSetPlaybackRate@8 -waveOutSetVolume@8 -waveOutUnprepareHeader@12 -waveOutWrite@12 -wid32Message@20 -winmmDbgOut -winmmSetDebugLevel@4 -wod32Message@20 diff --git a/winsup/w32api/lib/winspool.def b/winsup/w32api/lib/winspool.def deleted file mode 100644 index 367869c6a..000000000 --- a/winsup/w32api/lib/winspool.def +++ /dev/null @@ -1,131 +0,0 @@ -LIBRARY "WINSPOOL.DRV" -EXPORTS -ADVANCEDSETUPDIALOG@16 -AbortPrinter@4 -AddFormA@12 -AddFormW@12 -AddJobA@20 -AddJobW@20 -AddMonitorA@12 -AddMonitorW@12 -AddPortA@12 -AddPortExA@16 -AddPortExW@16 -AddPortW@12 -AddPrintProcessorA@16 -AddPrintProcessorW@16 -AddPrintProvidorA@12 -AddPrintProvidorW@12 -AddPrinterA@12 -AddPrinterConnectionA@4 -AddPrinterConnectionW@4 -AddPrinterDriverA@12 -AddPrinterDriverW@12 -AddPrinterW@12 -AdvancedDocumentPropertiesA@20 -AdvancedDocumentPropertiesW@20 -AdvancedSetupDialog@16 -ClosePrinter@4 -ConfigurePortA@12 -ConfigurePortW@12 -ConnectToPrinterDlg@8 -CreatePrinterIC@8 -DEVICECAPABILITIES@20 -DEVICEMODE@16 -DeleteFormA@8 -DeleteFormW@8 -DeleteMonitorA@12 -DeleteMonitorW@12 -DeletePortA@12 -DeletePortW@12 -DeletePrinterDataA@8 -DeletePrinterDataW@8 -DeletePrintProcessorA@12 -DeletePrintProcessorW@12 -DeletePrintProvidorA@12 -DeletePrintProvidorW@12 -DeletePrinter@4 -DeletePrinterConnectionA@4 -DeletePrinterConnectionW@4 -DeletePrinterDriverA@12 -DeletePrinterDriverW@12 -DeletePrinterIC@4 -DevQueryPrint@12 -DeviceCapabilities@20 -DeviceCapabilitiesA@20 -DeviceCapabilitiesW@20 -DeviceMode@16 -DocumentEvent@28 -DocumentPropertiesA@24 -DocumentPropertiesW@24 -EXTDEVICEMODE@32 -EndDocPrinter@4 -EndPagePrinter@4 -EnumFormsA@24 -EnumFormsW@24 -EnumJobsA@32 -EnumJobsW@32 -EnumMonitorsA@24 -EnumMonitorsW@24 -EnumPortsA@24 -EnumPortsW@24 -EnumPrintProcessorDatatypesA@28 -EnumPrintProcessorDatatypesW@28 -EnumPrintProcessorsA@28 -EnumPrintProcessorsW@28 -EnumPrinterDriversA@28 -EnumPrinterDriversW@28 -EnumPrinterPropertySheets@16 -EnumPrintersA@28 -EnumPrintersW@28 -EnumPrinterDataA@36 -EnumPrinterDataW@36 -ExtDeviceMode@32 -FindClosePrinterChangeNotification@4 -FindFirstPrinterChangeNotification@16 -FindNextPrinterChangeNotification@16 -FreePrinterNotifyInfo@4 -GetFormA@24 -GetFormW@24 -GetJobA@24 -GetJobW@24 -GetPrintProcessorDirectoryA@24 -GetPrintProcessorDirectoryW@24 -GetPrinterA@20 -GetPrinterDataA@24 -GetPrinterDataW@24 -GetPrinterDriverA@24 -GetPrinterDriverDirectoryA@24 -GetPrinterDriverDirectoryW@24 -GetPrinterDriverW@24 -GetPrinterW@20 -InitializeDll@12 -OpenPrinterA@12 -OpenPrinterW@12 -PlayGdiScriptOnPrinterIC@24 -PrinterMessageBoxA@24 -PrinterMessageBoxW@24 -PrinterProperties@8 -ReadPrinter@16 -ResetPrinterA@8 -ResetPrinterW@8 -ScheduleJob@8 -SetAllocFailCount@20 -SetFormA@16 -SetFormW@16 -SetJobA@20 -SetJobW@20 -SetPort@16 -SetPrinterA@16 -SetPrinterDataA@20 -SetPrinterDataW@20 -SetPrinterW@16 -SpoolerDevQueryPrintW@20 -SpoolerInit@0 -StartDocDlgA@8 -StartDocDlgW@8 -StartDocPrinterA@12 -StartDocPrinterW@12 -StartPagePrinter@4 -WaitForPrinterChange@8 -WritePrinter@16 diff --git a/winsup/w32api/lib/winstrm.def b/winsup/w32api/lib/winstrm.def deleted file mode 100644 index 27531a0b9..000000000 --- a/winsup/w32api/lib/winstrm.def +++ /dev/null @@ -1,9 +0,0 @@ -LIBRARY WINSTRM.DLL -EXPORTS -OpenStream@4 -getmsg@16 -poll@12 -putmsg@16 -s_ioctl@12 -s_open@12 -s_perror@8 diff --git a/winsup/w32api/lib/wow32.def b/winsup/w32api/lib/wow32.def deleted file mode 100644 index cd814c633..000000000 --- a/winsup/w32api/lib/wow32.def +++ /dev/null @@ -1,19 +0,0 @@ -LIBRARY WOW32.DLL -EXPORTS -WOWCallback16@8 -WOWCallback16Ex@20 -WOWDirectedYield16@4 -WOWGetDescriptor@8 -WOWGetVDMPointer@12 -WOWGetVDMPointerFix@12 -WOWGetVDMPointerUnfix@4 -WOWGlobalAlloc16@8 -WOWGlobalAllocLock16@12 -WOWGlobalFree16@4 -WOWGlobalLock16@4 -WOWGlobalLockSize16@8 -WOWGlobalUnlock16@4 -WOWGlobalUnlockFree16@4 -WOWHandle16@8 -WOWHandle32@8 -WOWYield16@0 diff --git a/winsup/w32api/lib/ws2_32.def b/winsup/w32api/lib/ws2_32.def deleted file mode 100644 index f78313e21..000000000 --- a/winsup/w32api/lib/ws2_32.def +++ /dev/null @@ -1,108 +0,0 @@ -LIBRARY "WS2_32.DLL" -EXPORTS -WEP@0 -WPUCompleteOverlappedRequest@20 -WSAAccept@20 -WSAAddressToStringA@20 -WSAAddressToStringW@20 -WSAAsyncGetHostByAddr@28 -WSAAsyncGetHostByName@20 -WSAAsyncGetProtoByName@20 -WSAAsyncGetProtoByNumber@20 -WSAAsyncGetServByName@24 -WSAAsyncGetServByPort@24 -WSAAsyncSelect@16 -WSACancelAsyncRequest@4 -WSACancelBlockingCall@0 -WSACleanup@0 -WSACloseEvent@4 -WSAConnect@28 -WSACreateEvent@0 -WSADuplicateSocketA@12 -WSADuplicateSocketW@12 -WSAEnumNameSpaceProvidersA@8 -WSAEnumNameSpaceProvidersW@8 -WSAEnumNetworkEvents@12 -WSAEnumProtocolsA@12 -WSAEnumProtocolsW@12 -WSAEventSelect@12 -WSAGetLastError@0 -WSAGetOverlappedResult@20 -WSAGetQOSByName@12 -WSAGetServiceClassInfoA@16 -WSAGetServiceClassInfoW@16 -WSAGetServiceClassNameByClassIdA@12 -WSAGetServiceClassNameByClassIdW@12 -WSAHtonl@12 -WSAHtons@12 -WSAInstallServiceClassA@4 -WSAInstallServiceClassW@4 -WSAIoctl@36 -WSAIsBlocking@0 -WSAJoinLeaf@32 -WSALookupServiceBeginA@12 -WSALookupServiceBeginW@12 -WSALookupServiceEnd@4 -WSALookupServiceNextA@16 -WSALookupServiceNextW@16 -WSANtohl@12 -WSANtohs@12 -WSAProviderConfigChange@12 -WSARecv@28 -WSARecvDisconnect@8 -WSARecvFrom@36 -WSARemoveServiceClass@4 -WSAResetEvent@4 -WSASend@28 -WSASendDisconnect@8 -WSASendTo@36 -WSASetBlockingHook@4 -WSASetEvent@4 -WSASetLastError@4 -WSASetServiceA@12 -WSASetServiceW@12 -WSASocketA@24 -WSASocketW@24 -WSAStartup@8 -WSAStringToAddressA@20 -WSAStringToAddressW@20 -WSAUnhookBlockingHook@0 -WSAWaitForMultipleEvents@20 -WSCDeinstallProvider@8 -WSCEnableNSProvider@8 -WSCEnumProtocols@16 -WSCGetProviderPath@16 -WSCInstallNameSpace@20 -WSCInstallProvider@20 -WSCUnInstallNameSpace@4 -__WSAFDIsSet@8 -accept@12 -bind@12 -closesocket@4 -connect@12 -gethostbyaddr@12 -gethostbyname@4 -gethostname@8 -getpeername@12 -getprotobyname@4 -getprotobynumber@4 -getservbyname@8 -getservbyport@8 -getsockname@12 -getsockopt@20 -htonl@4 -htons@4 -inet_addr@4 -inet_ntoa@4 -ioctlsocket@12 -listen@8 -ntohl@4 -ntohs@4 -recv@16 -recvfrom@24 -select@20 -send@16 -sendto@24 -setsockopt@20 -shutdown@8 -socket@12 diff --git a/winsup/w32api/lib/wsock32.def b/winsup/w32api/lib/wsock32.def deleted file mode 100644 index 67a8a750f..000000000 --- a/winsup/w32api/lib/wsock32.def +++ /dev/null @@ -1,75 +0,0 @@ -LIBRARY WSOCK32.DLL -EXPORTS -AcceptEx@32 -EnumProtocolsA@12 -EnumProtocolsW@12 -GetAcceptExSockaddrs@32 -GetAddressByNameA@40 -GetAddressByNameW@40 -GetNameByTypeA@12 -GetNameByTypeW@12 -GetServiceA@28 -GetServiceW@28 -GetTypeByNameA@8 -GetTypeByNameW@8 -NPLoadNameSpaces@12 -SetServiceA@24 -SetServiceW@24 -TransmitFile@28 -WSAAsyncGetHostByAddr@28 -WSAAsyncGetHostByName@20 -WSAAsyncGetProtoByName@20 -WSAAsyncGetProtoByNumber@20 -WSAAsyncGetServByName@24 -WSAAsyncGetServByPort@24 -WSAAsyncSelect@16 -WSACancelAsyncRequest@4 -WSACancelBlockingCall@0 -WSACleanup@0 -WSAGetLastError@0 -WSAIsBlocking@0 -WSARecvEx@16 -WSASetBlockingHook@4 -WSASetLastError@4 -WSAStartup@8 -WSAUnhookBlockingHook@0 -WSApSetPostRoutine@4 -__WSAFDIsSet@8 -accept@12 -bind@12 -closesocket@4 -connect@12 -dn_expand@20 -gethostbyaddr@12 -gethostbyname@4 -gethostname@8 -getnetbyname@4 -getpeername@12 -getprotobyname@4 -getprotobynumber@4 -getservbyname@8 -getservbyport@8 -getsockname@12 -getsockopt@20 -htonl@4 -htons@4 -inet_addr@4 -inet_network@4 -inet_ntoa@4 -ioctlsocket@12 -listen@8 -ntohl@4 -ntohs@4 -rcmd@24 -recv@16 -recvfrom@24 -rexec@24 -rresvport@4 -s_perror@8 -select@20 -send@16 -sendto@24 -sethostname@8 -setsockopt@20 -shutdown@8 -socket@12 diff --git a/winsup/w32api/lib/wst.def b/winsup/w32api/lib/wst.def deleted file mode 100644 index e80170ada..000000000 --- a/winsup/w32api/lib/wst.def +++ /dev/null @@ -1,3 +0,0 @@ -LIBRARY WST.DLL -EXPORTS -_penter -- cgit v1.2.3