diff options
author | cvs2svn <> | 2013-06-05 11:57:40 +0400 |
---|---|---|
committer | cvs2svn <> | 2013-06-05 11:57:40 +0400 |
commit | 310a2eeef1d094d59ea9897be0ddb1b33869b885 (patch) | |
tree | 6c061f692be2a0be45d81351d4b9dfc06ec9fe9c /winsup/cygwin/syscalls.cc | |
parent | c82eac05c783fa1cb82eac9216dab1ed8aa482ae (diff) |
This commit was manufactured by cvs2svn to create tag 'cygwin-cygwin-1_7_19-release
1_7_19-release'.
Sprout from cygwin-64bit-premerge-branch 2013-04-22 17:11:23 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'cygwin-64bit-'
Cherrypick from master 2013-06-05 07:57:39 UTC Corinna Vinschen <corinna@vinschen.de> ' * faq-programming.xml: Convert url to refer to new flat faq.html file.':
COPYING.NEWLIB
ChangeLog
config.guess
config.sub
config/ChangeLog
config/bootstrap-asan.mk
config/dfp.m4
config/picflag.m4
include/ChangeLog
include/elf/ChangeLog
include/elf/aarch64.h
include/elf/common.h
include/elf/mips.h
include/elf/msp430.h
include/opcode/ChangeLog
include/opcode/avr.h
include/opcode/mips.h
include/opcode/msp430.h
newlib/ChangeLog
newlib/MAINTAINERS
newlib/configure
newlib/configure.host
newlib/configure.in
newlib/libc/configure
newlib/libc/configure.in
newlib/libc/ctype/ctype_.c
newlib/libc/ctype/isalnum.c
newlib/libc/ctype/isalpha.c
newlib/libc/ctype/isblank.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/isxdigit.c
newlib/libc/include/machine/ieeefp.h
newlib/libc/include/machine/setjmp.h
newlib/libc/include/reent.h
newlib/libc/include/sys/cdefs.h
newlib/libc/include/sys/config.h
newlib/libc/include/sys/features.h
newlib/libc/include/sys/reent.h
newlib/libc/include/sys/stat.h
newlib/libc/libc.texinfo
newlib/libc/machine/arm/Makefile.am
newlib/libc/machine/arm/Makefile.in
newlib/libc/machine/arm/memcpy-armv7a.S
newlib/libc/machine/arm/memcpy-armv7m.S
newlib/libc/machine/arm/memcpy-stub.c
newlib/libc/machine/arm/memcpy.S
newlib/libc/machine/arm/strcmp.S
newlib/libc/machine/configure
newlib/libc/machine/configure.in
newlib/libc/machine/powerpc/Makefile.am
newlib/libc/machine/powerpc/Makefile.in
newlib/libc/reent/reent.c
newlib/libc/stdio/fgetc.c
newlib/libc/stdio/fgetwc.c
newlib/libc/stdio/fgetws.c
newlib/libc/stdio/findfp.c
newlib/libc/stdio/fputc.c
newlib/libc/stdio/fputwc.c
newlib/libc/stdio/fputws.c
newlib/libc/stdio/getc.c
newlib/libc/stdio/getchar.c
newlib/libc/stdio/local.h
newlib/libc/stdio/putc.c
newlib/libc/stdio/putchar.c
newlib/libc/stdio/scanf.c
newlib/libc/stdio/setvbuf.c
newlib/libc/stdio/ungetwc.c
newlib/libc/stdio/vfscanf.c
newlib/libc/stdio/vfwscanf.c
newlib/libc/stdio/viprintf.c
newlib/libc/stdio/viscanf.c
newlib/libc/stdio/vprintf.c
newlib/libc/stdio/vscanf.c
newlib/libc/stdio/vwprintf.c
newlib/libc/stdio/vwscanf.c
newlib/libc/stdio/wscanf.c
newlib/libc/stdlib/Makefile.am
newlib/libc/stdlib/Makefile.in
newlib/libc/stdlib/__atexit.c
newlib/libc/stdlib/__call_atexit.c
newlib/libc/stdlib/ecvtbuf.c
newlib/libc/stdlib/mblen.c
newlib/libc/stdlib/mbrlen.c
newlib/libc/stdlib/mbrtowc.c
newlib/libc/stdlib/mbtowc.c
newlib/libc/stdlib/nano-mallocr.c
newlib/libc/stdlib/rand.c
newlib/libc/stdlib/strtod.c
newlib/libc/stdlib/wcrtomb.c
newlib/libc/stdlib/wctob.c
newlib/libc/stdlib/wctomb.c
newlib/libc/string/strtok.c
newlib/libc/time/asctime.c
newlib/libc/time/gmtime.c
newlib/libc/time/lcltime.c
newlib/libm/libm.texinfo
winsup/cygserver/ChangeLog
winsup/cygserver/ChangeLog.64bit
winsup/cygserver/Makefile.in
winsup/cygserver/bsd_helper.cc
winsup/cygserver/bsd_helper.h
winsup/cygserver/bsd_log.cc
winsup/cygserver/bsd_log.h
winsup/cygserver/bsd_mutex.cc
winsup/cygserver/client.cc
winsup/cygserver/cygserver.cc
winsup/cygserver/msg.cc
winsup/cygserver/process.h
winsup/cygserver/sem.cc
winsup/cygserver/shm.cc
winsup/cygserver/sysv_shm.cc
winsup/cygserver/threaded_queue.h
winsup/cygwin/ChangeLog
winsup/cygwin/ChangeLog.64bit
winsup/cygwin/Makefile.in
winsup/cygwin/aclocal.m4
winsup/cygwin/advapi32.cc
winsup/cygwin/autoload.cc
winsup/cygwin/automode.c
winsup/cygwin/binmode.c
winsup/cygwin/child_info.h
winsup/cygwin/common.din
winsup/cygwin/configure
winsup/cygwin/configure.ac
winsup/cygwin/cpuid.h
winsup/cygwin/cygerrno.h
winsup/cygwin/cygheap.cc
winsup/cygwin/cygheap.h
winsup/cygwin/cygmagic
winsup/cygwin/cygmalloc.h
winsup/cygwin/cygserver.h
winsup/cygwin/cygserver_ipc.h
winsup/cygwin/cygthread.cc
winsup/cygwin/cygtls.cc
winsup/cygwin/cygtls.h
winsup/cygwin/cygwin.sc.in
winsup/cygwin/dcrt0.cc
winsup/cygwin/debug.h
winsup/cygwin/devices.cc
winsup/cygwin/devices.h
winsup/cygwin/devices.in
winsup/cygwin/dir.cc
winsup/cygwin/dlfcn.cc
winsup/cygwin/dll_init.cc
winsup/cygwin/dll_init.h
winsup/cygwin/dtable.cc
winsup/cygwin/environ.cc
winsup/cygwin/environ.h
winsup/cygwin/errno.cc
winsup/cygwin/exception.h
winsup/cygwin/exceptions.cc
winsup/cygwin/external.cc
winsup/cygwin/fcntl.cc
winsup/cygwin/fenv.cc
winsup/cygwin/fhandler.cc
winsup/cygwin/fhandler.h
winsup/cygwin/fhandler_clipboard.cc
winsup/cygwin/fhandler_console.cc
winsup/cygwin/fhandler_dev.cc
winsup/cygwin/fhandler_disk_file.cc
winsup/cygwin/fhandler_dsp.cc
winsup/cygwin/fhandler_fifo.cc
winsup/cygwin/fhandler_floppy.cc
winsup/cygwin/fhandler_mailslot.cc
winsup/cygwin/fhandler_mem.cc
winsup/cygwin/fhandler_netdrive.cc
winsup/cygwin/fhandler_proc.cc
winsup/cygwin/fhandler_process.cc
winsup/cygwin/fhandler_procnet.cc
winsup/cygwin/fhandler_procsys.cc
winsup/cygwin/fhandler_procsysvipc.cc
winsup/cygwin/fhandler_random.cc
winsup/cygwin/fhandler_raw.cc
winsup/cygwin/fhandler_registry.cc
winsup/cygwin/fhandler_serial.cc
winsup/cygwin/fhandler_socket.cc
winsup/cygwin/fhandler_tape.cc
winsup/cygwin/fhandler_termios.cc
winsup/cygwin/fhandler_tty.cc
winsup/cygwin/fhandler_virtual.cc
winsup/cygwin/fhandler_virtual.h
winsup/cygwin/fhandler_windows.cc
winsup/cygwin/fhandler_zero.cc
winsup/cygwin/flock.cc
winsup/cygwin/fork.cc
winsup/cygwin/gendef
winsup/cygwin/gentls_offsets
winsup/cygwin/glob.cc
winsup/cygwin/globals.cc
winsup/cygwin/grp.cc
winsup/cygwin/heap.cc
winsup/cygwin/hookapi.cc
winsup/cygwin/i686.din
winsup/cygwin/include/a.out.h
winsup/cygwin/include/asm/byteorder.h
winsup/cygwin/include/bits/wordsize.h
winsup/cygwin/include/cygwin/acl.h
winsup/cygwin/include/cygwin/config.h
winsup/cygwin/include/cygwin/cygwin_dll.h
winsup/cygwin/include/cygwin/grp.h
winsup/cygwin/include/cygwin/if.h
winsup/cygwin/include/cygwin/ipc.h
winsup/cygwin/include/cygwin/msg.h
winsup/cygwin/include/cygwin/sem.h
winsup/cygwin/include/cygwin/shm.h
winsup/cygwin/include/cygwin/signal.h
winsup/cygwin/include/cygwin/socket.h
winsup/cygwin/include/cygwin/stat.h
winsup/cygwin/include/cygwin/stdlib.h
winsup/cygwin/include/cygwin/sysproto.h
winsup/cygwin/include/cygwin/time.h
winsup/cygwin/include/cygwin/types.h
winsup/cygwin/include/cygwin/version.h
winsup/cygwin/include/fcntl.h
winsup/cygwin/include/fts.h
winsup/cygwin/include/ftw.h
winsup/cygwin/include/glob.h
winsup/cygwin/include/inttypes.h
winsup/cygwin/include/io.h
winsup/cygwin/include/limits.h
winsup/cygwin/include/mntent.h
winsup/cygwin/include/stdint.h
winsup/cygwin/include/sys/cygwin.h
winsup/cygwin/include/sys/dirent.h
winsup/cygwin/include/sys/resource.h
winsup/cygwin/include/sys/socket.h
winsup/cygwin/include/sys/strace.h
winsup/cygwin/init.cc
winsup/cygwin/ioctl.cc
winsup/cygwin/ipc.cc
winsup/cygwin/kernel32.cc
winsup/cygwin/lc_msg.h
winsup/cygwin/lib/_cygwin_crt0_common.cc
winsup/cygwin/lib/crt0.h
winsup/cygwin/lib/cygwin_attach_dll.c
winsup/cygwin/lib/premain0.c
winsup/cygwin/lib/premain1.c
winsup/cygwin/lib/premain2.c
winsup/cygwin/lib/premain3.c
winsup/cygwin/libc/arc4random.cc
winsup/cygwin/libc/base64.c
winsup/cygwin/libc/bsdlib.cc
winsup/cygwin/libc/fts.c
winsup/cygwin/libc/ftw.c
winsup/cygwin/libc/inet_network.c
winsup/cygwin/libc/minires-os-if.c
winsup/cygwin/libc/minires.c
winsup/cygwin/libc/nftw.c
winsup/cygwin/libc/rcmd.cc
winsup/cygwin/libc/rexec.cc
winsup/cygwin/libstdcxx_wrapper.cc
winsup/cygwin/localtime.cc
winsup/cygwin/malloc_wrapper.cc
winsup/cygwin/miscfuncs.cc
winsup/cygwin/mkimport
winsup/cygwin/mktemp.cc
winsup/cygwin/mmap.cc
winsup/cygwin/mount.cc
winsup/cygwin/mount.h
winsup/cygwin/msg.cc
winsup/cygwin/mtinfo.h
winsup/cygwin/net.cc
winsup/cygwin/netdb.cc
winsup/cygwin/nfs.h
winsup/cygwin/nlsfuncs.cc
winsup/cygwin/ntdll.h
winsup/cygwin/ntea.cc
winsup/cygwin/passwd.cc
winsup/cygwin/path.cc
winsup/cygwin/path.h
winsup/cygwin/perprocess.h
winsup/cygwin/pinfo.cc
winsup/cygwin/pinfo.h
winsup/cygwin/pipe.cc
winsup/cygwin/poll.cc
winsup/cygwin/posix.sgml
winsup/cygwin/posix_ipc.cc
winsup/cygwin/profil.c
winsup/cygwin/profil.h
winsup/cygwin/pseudo-reloc.cc
winsup/cygwin/pwdgrp.h
winsup/cygwin/regex/engine.c
winsup/cygwin/regex/regcomp.c
winsup/cygwin/registry.cc
winsup/cygwin/regparm.h
winsup/cygwin/release/1.7.19
winsup/cygwin/resource.cc
winsup/cygwin/sched.cc
winsup/cygwin/sec_acl.cc
winsup/cygwin/sec_auth.cc
winsup/cygwin/sec_helper.cc
winsup/cygwin/security.cc
winsup/cygwin/security.h
winsup/cygwin/select.cc
winsup/cygwin/select.h
winsup/cygwin/sem.cc
winsup/cygwin/shared.cc
winsup/cygwin/shared_info.h
winsup/cygwin/shm.cc
winsup/cygwin/signal.cc
winsup/cygwin/sigproc.cc
winsup/cygwin/sigproc.h
winsup/cygwin/smallprint.cc
winsup/cygwin/spawn.cc
winsup/cygwin/speclib
winsup/cygwin/spinlock.h
winsup/cygwin/strace.cc
winsup/cygwin/strfuncs.cc
winsup/cygwin/strsig.cc
winsup/cygwin/sync.cc
winsup/cygwin/sync.h
winsup/cygwin/syscalls.cc
winsup/cygwin/sysconf.cc
winsup/cygwin/syslog.cc
winsup/cygwin/termios.cc
winsup/cygwin/textmode.c
winsup/cygwin/textreadmode.c
winsup/cygwin/thread.cc
winsup/cygwin/thread.h
winsup/cygwin/timer.cc
winsup/cygwin/times.cc
winsup/cygwin/tlsoffsets.h
winsup/cygwin/tlsoffsets64.h
winsup/cygwin/tty.cc
winsup/cygwin/tty.h
winsup/cygwin/uinfo.cc
winsup/cygwin/wait.cc
winsup/cygwin/winbase.h
winsup/cygwin/wincap.cc
winsup/cygwin/wincap.h
winsup/cygwin/window.cc
winsup/cygwin/winlean.h
winsup/cygwin/winsup.h
winsup/cygwin/wow64.cc
winsup/cygwin/wow64.h
winsup/cygwin/x86_64.din
winsup/doc/.cvsignore
winsup/doc/ChangeLog
winsup/doc/Makefile.in
winsup/doc/Wishlist
winsup/doc/bodysnatcher.pl
winsup/doc/configure
winsup/doc/configure.ac
winsup/doc/cygserver.xml
winsup/doc/cygwin-api.in.xml
winsup/doc/cygwin-ug-net.xml
winsup/doc/cygwin.xsl
winsup/doc/cygwinenv.xml
winsup/doc/dll.xml
winsup/doc/effectively.xml
winsup/doc/faq-api.xml
winsup/doc/faq-copyright.xml
winsup/doc/faq-programming.xml
winsup/doc/faq-resources.xml
winsup/doc/faq-setup.xml
winsup/doc/faq-using.xml
winsup/doc/faq-what.xml
winsup/doc/faq.xml
winsup/doc/filemodes.xml
winsup/doc/gcc.xml
winsup/doc/gdb.xml
winsup/doc/highlights.xml
winsup/doc/legal.xml
winsup/doc/new-features.xml
winsup/doc/ntsec.xml
winsup/doc/ov-ex-unix.xml
winsup/doc/ov-ex-win.xml
winsup/doc/overview.xml
winsup/doc/pathnames.xml
winsup/doc/programming.xml
winsup/doc/setup-env.xml
winsup/doc/setup-files.xml
winsup/doc/setup-locale.xml
winsup/doc/setup-maxmem.xml
winsup/doc/setup-net.xml
winsup/doc/specialnames.xml
winsup/doc/textbinary.xml
winsup/doc/ug-info.xml
winsup/doc/using.xml
winsup/doc/windres.xml
winsup/doc/xidepend
winsup/lsaauth/ChangeLog
winsup/lsaauth/ChangeLog.64bit
winsup/lsaauth/Makefile.in
winsup/lsaauth/configure
winsup/lsaauth/configure.ac
winsup/utils/ChangeLog
winsup/utils/ChangeLog.64bit
winsup/utils/Makefile.in
winsup/utils/aclocal.m4
winsup/utils/configure
winsup/utils/cygcheck.cc
winsup/utils/dumper.cc
winsup/utils/dumper.h
winsup/utils/kill.cc
winsup/utils/ldd.cc
winsup/utils/locale.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/ps.cc
winsup/utils/regtool.cc
winsup/utils/ssp.c
winsup/utils/strace.cc
winsup/utils/tzset.c
winsup/utils/utils.xml
Delete:
COPYING3
COPYING3.LIB
config.rpath
configure.ac
ltgcc.m4
newlib/libc/machine/aarch64/Makefile.am
newlib/libc/machine/aarch64/Makefile.in
newlib/libc/machine/aarch64/aclocal.m4
newlib/libc/machine/aarch64/configure
newlib/libc/machine/aarch64/configure.in
newlib/libc/machine/aarch64/memcmp-stub.c
newlib/libc/machine/aarch64/memcmp.S
newlib/libc/machine/aarch64/memcpy-stub.c
newlib/libc/machine/aarch64/memcpy.S
newlib/libc/machine/aarch64/memmove-stub.c
newlib/libc/machine/aarch64/memmove.S
newlib/libc/machine/aarch64/memset-stub.c
newlib/libc/machine/aarch64/memset.S
newlib/libc/machine/aarch64/setjmp.S
newlib/libc/machine/aarch64/strcmp-stub.c
newlib/libc/machine/aarch64/strcmp.S
newlib/libc/machine/aarch64/strlen-stub.c
newlib/libc/machine/aarch64/strlen.S
newlib/libc/machine/aarch64/strncmp-stub.c
newlib/libc/machine/aarch64/strncmp.S
newlib/libc/machine/aarch64/strnlen-stub.c
newlib/libc/machine/aarch64/strnlen.S
newlib/libc/machine/epiphany/Makefile.am
newlib/libc/machine/epiphany/Makefile.in
newlib/libc/machine/epiphany/aclocal.m4
newlib/libc/machine/epiphany/configure
newlib/libc/machine/epiphany/configure.in
newlib/libc/machine/epiphany/machine/stdlib.h
newlib/libc/machine/epiphany/setjmp.S
newlib/libc/machine/powerpc/times.c
newlib/libc/sys/epiphany/Makefile.am
newlib/libc/sys/epiphany/Makefile.in
newlib/libc/sys/epiphany/aclocal.m4
newlib/libc/sys/epiphany/configure
newlib/libc/sys/epiphany/configure.in
newlib/libc/sys/epiphany/e_printf.c
newlib/libm/machine/aarch64/Makefile.am
newlib/libm/machine/aarch64/Makefile.in
newlib/libm/machine/aarch64/aclocal.m4
newlib/libm/machine/aarch64/configure
newlib/libm/machine/aarch64/configure.in
newlib/libm/machine/aarch64/s_ceil.c
newlib/libm/machine/aarch64/s_floor.c
newlib/libm/machine/aarch64/s_fma.c
newlib/libm/machine/aarch64/s_fmax.c
newlib/libm/machine/aarch64/s_fmin.c
newlib/libm/machine/aarch64/s_llrint.c
newlib/libm/machine/aarch64/s_llround.c
newlib/libm/machine/aarch64/s_lrint.c
newlib/libm/machine/aarch64/s_lround.c
newlib/libm/machine/aarch64/s_nearbyint.c
newlib/libm/machine/aarch64/s_rint.c
newlib/libm/machine/aarch64/s_round.c
newlib/libm/machine/aarch64/s_trunc.c
newlib/libm/machine/aarch64/sf_ceil.c
newlib/libm/machine/aarch64/sf_floor.c
newlib/libm/machine/aarch64/sf_fma.c
newlib/libm/machine/aarch64/sf_fmax.c
newlib/libm/machine/aarch64/sf_fmin.c
newlib/libm/machine/aarch64/sf_llrint.c
newlib/libm/machine/aarch64/sf_llround.c
newlib/libm/machine/aarch64/sf_lrint.c
newlib/libm/machine/aarch64/sf_lround.c
newlib/libm/machine/aarch64/sf_nearbyint.c
newlib/libm/machine/aarch64/sf_rint.c
newlib/libm/machine/aarch64/sf_round.c
newlib/libm/machine/aarch64/sf_trunc.c
winsup/cygwin/cygwin.din
winsup/cygwin/cygwin.sc
winsup/doc/cygserver.sgml
winsup/doc/cygwin-api.in.sgml
winsup/doc/cygwin-ug-net.in.sgml
winsup/doc/cygwin-ug.in.sgml
winsup/doc/cygwin.dsl
winsup/doc/cygwinenv.sgml
winsup/doc/dll.sgml
winsup/doc/effectively.sgml
winsup/doc/faq-sections.xml
winsup/doc/filemodes.sgml
winsup/doc/gcc.sgml
winsup/doc/gdb.sgml
winsup/doc/legal.sgml
winsup/doc/new-features.sgml
winsup/doc/ntsec.sgml
winsup/doc/overview.sgml
winsup/doc/overview2.sgml
winsup/doc/pathnames.sgml
winsup/doc/programming.sgml
winsup/doc/setup-net.sgml
winsup/doc/setup.sgml
winsup/doc/setup2.sgml
winsup/doc/textbinary.sgml
winsup/doc/using.sgml
winsup/doc/windres.sgml
winsup/utils/utils.sgml
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 308 |
1 files changed, 185 insertions, 123 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index bc3ba0f89..e1886e617 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -11,7 +11,7 @@ details. */ #define fstat __FOOfstat__ #define lstat __FOOlstat__ -#define stat __FOOstat__ +//#define stat __FOOstat__ #define _close __FOO_close__ #define _lseek __FOO_lseek__ #define _open __FOO_open__ @@ -44,7 +44,7 @@ details. */ #undef fstat #undef lstat -#undef stat +//#undef stat #undef pread #undef pwrite @@ -177,7 +177,7 @@ dup3 (int oldfd, int newfd, int flags) else res = dup_finish (oldfd, newfd, flags); - syscall_printf ("%R = dup3(%d, %d, %p)", res, oldfd, newfd, flags); + syscall_printf ("%R = dup3(%d, %d, %y)", res, oldfd, newfd, flags); return res; } @@ -194,7 +194,7 @@ start_transaction (HANDLE &old_trans, HANDLE &trans) } else { - debug_printf ("NtCreateTransaction failed, %p", status); + debug_printf ("NtCreateTransaction failed, %y", status); old_trans = trans = NULL; } } @@ -258,7 +258,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) if (!NT_SUCCESS (status)) { debug_printf ("NtQueryInformationFile (%S, FileNameInformation) " - "failed, status = %p", pc.get_nt_native_path (), status); + "failed, status = %y", pc.get_nt_native_path (), status); goto out; } /* The filename could change, the parent dir not. So we split both paths @@ -302,7 +302,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) FILE_SHARE_VALID_FLAGS, FILE_OPEN_FOR_BACKUP_INTENT); if (!NT_SUCCESS (status)) { - debug_printf ("NtOpenFile (%S) failed, status = %p", &root, status); + debug_printf ("NtOpenFile (%S) failed, status = %y", &root, status); goto out; } @@ -321,8 +321,6 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) /* Unhide trailing backslash. */ recycler.Length += sizeof (WCHAR); RtlInitEmptyUnicodeString (&sid, sidbuf, sizeof sidbuf); - /* In contrast to what MSDN claims, this function is already available - since NT4. */ RtlConvertSidToUnicodeString (&sid, cygheap->user.sid (), FALSE); RtlAppendUnicodeStringToString (&recycler, &sid); recycler_user_len = recycler.Length; @@ -349,7 +347,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) if (!NT_SUCCESS (status)) { debug_printf ("NtQueryInformationFile (%S, FileInternalInformation) " - "failed, status = %p", pc.get_nt_native_path (), status); + "failed, status = %y", pc.get_nt_native_path (), status); goto out; } RtlInt64ToHexUnicodeString (pfii->FileId.QuadPart, &recycler, TRUE); @@ -374,7 +372,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) FILE_SHARE_VALID_FLAGS, FILE_OPEN_FOR_BACKUP_INTENT); if (!NT_SUCCESS (status)) { - debug_printf ("NtOpenFile (%S) failed, status = %p", + debug_printf ("NtOpenFile (%S) failed, status = %y", &recycler, status); goto out; } @@ -399,7 +397,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) FILE_DIRECTORY_FILE, NULL, 0); if (!NT_SUCCESS (status)) { - debug_printf ("NtCreateFile (%S) failed, status = %p", + debug_printf ("NtCreateFile (%S) failed, status = %y", &recycler, status); goto out; } @@ -419,7 +417,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) FILE_DIRECTORY_FILE, NULL, 0); if (!NT_SUCCESS (status)) { - debug_printf ("NtCreateFile (%S) failed, status = %p", + debug_printf ("NtCreateFile (%S) failed, status = %y", &recycler, status); goto out; } @@ -438,14 +436,14 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE, NULL, 0); if (!NT_SUCCESS (status)) - debug_printf ("NtCreateFile (%S) failed, status = %p", + debug_printf ("NtCreateFile (%S) failed, status = %y", &recycler, status); else { status = NtWriteFile (tmp_fh, NULL, NULL, NULL, &io, desktop_ini, sizeof desktop_ini - 1, NULL, NULL); if (!NT_SUCCESS (status)) - debug_printf ("NtWriteFile (%S) failed, status = %p", + debug_printf ("NtWriteFile (%S) failed, status = %y", &fname, status); else if (wincap.has_recycle_dot_bin ()) { @@ -453,7 +451,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) desktop_ini_ext, sizeof desktop_ini_ext - 1, NULL, NULL); if (!NT_SUCCESS (status)) - debug_printf ("NtWriteFile (%S) failed, status = %p", + debug_printf ("NtWriteFile (%S) failed, status = %y", &fname, status); } NtClose (tmp_fh); @@ -468,14 +466,14 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) FILE_SYNCHRONOUS_IO_NONALERT | FILE_NON_DIRECTORY_FILE, NULL, 0); if (!NT_SUCCESS (status)) - debug_printf ("NtCreateFile (%S) failed, status = %p", + debug_printf ("NtCreateFile (%S) failed, status = %y", &recycler, status); else { status = NtWriteFile (tmp_fh, NULL, NULL, NULL, &io, info2, sizeof info2, NULL, NULL); if (!NT_SUCCESS (status)) - debug_printf ("NtWriteFile (%S) failed, status = %p", + debug_printf ("NtWriteFile (%S) failed, status = %y", &fname, status); NtClose (tmp_fh); } @@ -488,7 +486,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) } if (!NT_SUCCESS (status)) { - debug_printf ("Move %S to %S failed, status = %p", + debug_printf ("Move %S to %S failed, status = %y", pc.get_nt_native_path (), &recycler, status); goto out; } @@ -546,7 +544,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) NULL, 0); if (!NT_SUCCESS (status)) { - debug_printf ("Creating file for overwriting failed, status = %p", + debug_printf ("Creating file for overwriting failed, status = %y", status); goto out; } @@ -554,12 +552,12 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access) FileRenameInformation); NtClose (tmp_fh); if (!NT_SUCCESS (status)) - debug_printf ("Overwriting with another file failed, status = %p", status); + debug_printf ("Overwriting with another file failed, status = %y", status); out: if (rootdir) NtClose (rootdir); - debug_printf ("%S, return status %d", pc.get_nt_native_path (), bin_stat); + debug_printf ("%S, return bin_status %d", pc.get_nt_native_path (), bin_stat); return bin_stat; } @@ -576,7 +574,7 @@ check_dir_not_empty (HANDLE dir, path_conv &pc) FALSE, NULL, TRUE); if (!NT_SUCCESS (status)) { - debug_printf ("Checking if directory %S is empty failed, status = %p", + debug_printf ("Checking if directory %S is empty failed, status = %y", pc.get_nt_native_path (), status); return status; } @@ -621,7 +619,7 @@ check_dir_not_empty (HANDLE dir, path_conv &pc) && status != STATUS_OBJECT_PATH_NOT_FOUND) { debug_printf ("Directory %S not empty, found file <%S>, " - "query status = %p", + "query status = %y", pc.get_nt_native_path (), &fname, status); return STATUS_DIRECTORY_NOT_EMPTY; } @@ -685,12 +683,12 @@ unlink_nt (path_conv &pc) pc.file_attributes () & ~FILE_ATTRIBUTE_READONLY); if (!NT_SUCCESS (status2)) - debug_printf ("Removing R/O on %S failed, status = %p", + debug_printf ("Removing R/O on %S failed, status = %y", pc.get_nt_native_path (), status2); pc.init_reopen_attr (&attr, fh_ro); } else - debug_printf ("Opening %S for removing R/O failed, status = %p", + debug_printf ("Opening %S for removing R/O failed, status = %y", pc.get_nt_native_path (), status); if (pc.is_lnk_symlink ()) { @@ -782,7 +780,7 @@ unlink_nt (path_conv &pc) status = STATUS_SUCCESS; goto out; } - debug_printf ("Opening %S for delete failed, status = %p", + debug_printf ("Opening %S for delete failed, status = %y", pc.get_nt_native_path (), status); goto out; } @@ -807,7 +805,7 @@ try_again: FileDispositionInformation); if (!NT_SUCCESS (status)) { - debug_printf ("Setting delete disposition on %S failed, status = %p", + debug_printf ("Setting delete disposition on %S failed, status = %y", pc.get_nt_native_path (), status); if (status == STATUS_DIRECTORY_NOT_EMPTY) { @@ -879,7 +877,7 @@ try_again: { fh = NULL; debug_printf ("Opening dir %S for check_dir_not_empty failed, " - "status = %p", pc.get_nt_native_path (), status2); + "status = %y", pc.get_nt_native_path (), status2); } else /* Directory disappeared between NtClose and NtOpenFile. */ status = STATUS_SUCCESS; @@ -912,7 +910,7 @@ try_again: flags | FILE_DELETE_ON_CLOSE); if (!NT_SUCCESS (status)) { - debug_printf ("Setting delete-on-close on %S failed, status = %p", + debug_printf ("Setting delete-on-close on %S failed, status = %y", pc.get_nt_native_path (), status); /* This is really the last chance. If it hasn't been moved to the bin already, try it now. If moving to the bin @@ -961,7 +959,7 @@ out: && (pc.fs_flags () & FILE_SUPPORTS_TRANSACTIONS)) stop_transaction (status, old_trans, trans); - syscall_printf ("%S, return status = %p", pc.get_nt_native_path (), status); + syscall_printf ("%S, return status = %y", pc.get_nt_native_path (), status); return status; } @@ -969,7 +967,7 @@ extern "C" int unlink (const char *ourname) { int res = -1; - DWORD devn; + dev_t devn; NTSTATUS status; path_conv win32_name (ourname, PC_SYM_NOFOLLOW, stat_suffixes); @@ -980,7 +978,7 @@ unlink (const char *ourname) goto done; } - devn = win32_name.get_devn (); + devn = win32_name.get_device (); if (isproc_dev (devn)) { set_errno (EROFS); @@ -1149,7 +1147,7 @@ read (int fd, void *ptr, size_t len) cfd->read (ptr, res = len); done: - syscall_printf ("%R = read(%d, %p, %d)", res, fd, ptr, len); + syscall_printf ("%lR = read(%d, %p, %d)", res, fd, ptr, len); MALLOC_CHECK; return (ssize_t) res; } @@ -1191,13 +1189,13 @@ readv (int fd, const struct iovec *const iov, const int iovcnt) res = cfd->readv (iov, iovcnt, tot); done: - syscall_printf ("%R = readv(%d, %p, %d)", res, fd, iov, iovcnt); + syscall_printf ("%lR = readv(%d, %p, %d)", res, fd, iov, iovcnt); MALLOC_CHECK; return res; } extern "C" ssize_t -pread (int fd, void *ptr, size_t len, _off64_t off) +pread (int fd, void *ptr, size_t len, off_t off) { pthread_testcancel (); @@ -1208,7 +1206,7 @@ pread (int fd, void *ptr, size_t len, _off64_t off) else res = cfd->pread (ptr, len, off); - syscall_printf ("%R = pread(%d, %p, %d, %d)", res, fd, ptr, len, off); + syscall_printf ("%lR = pread(%d, %p, %d, %d)", res, fd, ptr, len, off); return res; } @@ -1221,7 +1219,7 @@ write (int fd, const void *ptr, size_t len) if (efault.faulted (EFAULT)) return -1; - int res = -1; + ssize_t res = -1; cygheap_fdget cfd (fd); if (cfd < 0) @@ -1242,7 +1240,7 @@ write (int fd, const void *ptr, size_t len) res = cfd->write (ptr, len); done: - syscall_printf ("%R = write(%d, %p, %d)", res, fd, ptr, len); + syscall_printf ("%lR = write(%d, %p, %d)", res, fd, ptr, len); MALLOC_CHECK; return res; @@ -1259,7 +1257,7 @@ writev (const int fd, const struct iovec *const iov, const int iovcnt) if (efault.faulted (EFAULT)) return -1; - int res = -1; + ssize_t res = -1; const ssize_t tot = check_iovec_for_write (iov, iovcnt); cygheap_fdget cfd (fd); @@ -1288,16 +1286,16 @@ writev (const int fd, const struct iovec *const iov, const int iovcnt) done: if (fd == 1 || fd == 2) - paranoid_printf ("%R = writev(%d, %p, %d)", res, fd, iov, iovcnt); + paranoid_printf ("%lR = writev(%d, %p, %d)", res, fd, iov, iovcnt); else - syscall_printf ("%R = writev(%d, %p, %d)", res, fd, iov, iovcnt); + syscall_printf ("%lR = writev(%d, %p, %d)", res, fd, iov, iovcnt); MALLOC_CHECK; return res; } extern "C" ssize_t -pwrite (int fd, void *ptr, size_t len, _off64_t off) +pwrite (int fd, void *ptr, size_t len, off_t off) { pthread_testcancel (); @@ -1308,7 +1306,7 @@ pwrite (int fd, void *ptr, size_t len, _off64_t off) else res = cfd->pwrite (ptr, len, off); - syscall_printf ("%R = pwrite(%d, %p, %d, %d)", res, fd, ptr, len, off); + syscall_printf ("%lR = pwrite(%d, %p, %d, %d)", res, fd, ptr, len, off); return res; } @@ -1322,7 +1320,7 @@ open (const char *unix_path, int flags, ...) va_list ap; mode_t mode = 0; - syscall_printf ("open(%s, %p)", unix_path, flags); + syscall_printf ("open(%s, %y)", unix_path, flags); pthread_testcancel (); myfault efault; if (efault.faulted (EFAULT)) @@ -1362,7 +1360,7 @@ open (const char *unix_path, int flags, ...) res = -1; set_errno (ELOOP); } - else if ((flags & O_DIRECTORY) && !fh->pc.isdir ()) + else if ((flags & O_DIRECTORY) && fh->exists () && !fh->pc.isdir ()) { delete fh; res = -1; @@ -1390,17 +1388,17 @@ open (const char *unix_path, int flags, ...) } } - syscall_printf ("%R = open(%s, %p)", res, unix_path, flags); + syscall_printf ("%R = open(%s, %y)", res, unix_path, flags); return res; } EXPORT_ALIAS (open, _open ) EXPORT_ALIAS (open, _open64 ) -extern "C" _off64_t -lseek64 (int fd, _off64_t pos, int dir) +extern "C" off_t +lseek64 (int fd, off_t pos, int dir) { - _off64_t res; + off_t res; if (dir != SEEK_SET && dir != SEEK_CUR && dir != SEEK_END) { @@ -1415,7 +1413,7 @@ lseek64 (int fd, _off64_t pos, int dir) else res = -1; } - /* Can't use %R here since res is 8 bytes */ + /* Can't use %R/%lR here since res is always 8 bytes */ syscall_printf (res == -1 ? "%D = lseek(%d, %D, %d), errno %d" : "%D = lseek(%d, %D, %d)", res, fd, pos, dir, get_errno ()); @@ -1425,13 +1423,18 @@ lseek64 (int fd, _off64_t pos, int dir) EXPORT_ALIAS (lseek64, _lseek64) +#ifdef __x86_64__ +EXPORT_ALIAS (lseek64, lseek) +EXPORT_ALIAS (lseek64, _lseek) +#else extern "C" _off_t lseek (int fd, _off_t pos, int dir) { - return lseek64 (fd, (_off64_t) pos, dir); + return lseek64 (fd, (off_t) pos, dir); } - EXPORT_ALIAS (lseek, _lseek) +#endif + extern "C" int close (int fd) @@ -1509,7 +1512,7 @@ link (const char *oldpath, const char *newpath) * systems, it is only a stub that always returns zero. */ static int -chown_worker (const char *name, unsigned fmode, __uid32_t uid, __gid32_t gid) +chown_worker (const char *name, unsigned fmode, uid_t uid, gid_t gid) { int res = -1; fhandler_base *fh; @@ -1533,33 +1536,41 @@ chown_worker (const char *name, unsigned fmode, __uid32_t uid, __gid32_t gid) } extern "C" int -chown32 (const char * name, __uid32_t uid, __gid32_t gid) +chown32 (const char * name, uid_t uid, gid_t gid) { return chown_worker (name, PC_SYM_FOLLOW, uid, gid); } +#ifdef __x86_64__ +EXPORT_ALIAS (chown32, chown) +#else extern "C" int chown (const char * name, __uid16_t uid, __gid16_t gid) { return chown_worker (name, PC_SYM_FOLLOW, uid16touid32 (uid), gid16togid32 (gid)); } +#endif extern "C" int -lchown32 (const char * name, __uid32_t uid, __gid32_t gid) +lchown32 (const char * name, uid_t uid, gid_t gid) { return chown_worker (name, PC_SYM_NOFOLLOW, uid, gid); } +#ifdef __x86_64__ +EXPORT_ALIAS (lchown32, lchown) +#else extern "C" int lchown (const char * name, __uid16_t uid, __gid16_t gid) { return chown_worker (name, PC_SYM_NOFOLLOW, uid16touid32 (uid), gid16togid32 (gid)); } +#endif extern "C" int -fchown32 (int fd, __uid32_t uid, __gid32_t gid) +fchown32 (int fd, uid_t uid, gid_t gid) { cygheap_fdget cfd (fd); if (cfd < 0) @@ -1574,11 +1585,15 @@ fchown32 (int fd, __uid32_t uid, __gid32_t gid) return res; } +#ifdef __x86_64__ +EXPORT_ALIAS (fchown32, fchown) +#else extern "C" int fchown (int fd, __uid16_t uid, __gid16_t gid) { return fchown32 (fd, uid16touid32 (uid), gid16togid32 (gid)); } +#endif /* umask: POSIX 5.3.3.1 */ extern "C" mode_t @@ -1619,7 +1634,7 @@ chmod (const char *path, mode_t mode) delete fh; error: - syscall_printf ("%R = chmod(%s, %p)", res, path, mode); + syscall_printf ("%R = chmod(%s, 0%o)", res, path, mode); return res; } @@ -1638,8 +1653,9 @@ fchmod (int fd, mode_t mode) return cfd->fchmod (FILTERED_MODE (mode)); } +#ifndef __x86_64__ static void -stat64_to_stat32 (struct __stat64 *src, struct __stat32 *dst) +stat64_to_stat32 (struct stat *src, struct __stat32 *dst) { dst->st_dev = ((src->st_dev >> 8) & 0xff00) | (src->st_dev & 0xff); dst->st_ino = ((unsigned) (src->st_ino >> 32)) | (unsigned) src->st_ino; @@ -1655,12 +1671,13 @@ stat64_to_stat32 (struct __stat64 *src, struct __stat32 *dst) dst->st_blksize = src->st_blksize; dst->st_blocks = src->st_blocks; } +#endif -static struct __stat64 dev_st; +static struct stat dev_st; static bool dev_st_inited; void -fhandler_base::stat_fixup (struct __stat64 *buf) +fhandler_base::stat_fixup (struct stat *buf) { /* For devices, set inode number to device number. This gives us a valid, unique inode number without having to call hash_path_name. */ @@ -1700,7 +1717,7 @@ fhandler_base::stat_fixup (struct __stat64 *buf) } extern "C" int -fstat64 (int fd, struct __stat64 *buf) +fstat64 (int fd, struct stat *buf) { int res; @@ -1709,7 +1726,7 @@ fstat64 (int fd, struct __stat64 *buf) res = -1; else { - memset (buf, 0, sizeof (struct __stat64)); + memset (buf, 0, sizeof (struct stat)); res = cfd->fstat (buf); if (!res) cfd->stat_fixup (buf); @@ -1720,7 +1737,7 @@ fstat64 (int fd, struct __stat64 *buf) } extern "C" int -_fstat64_r (struct _reent *ptr, int fd, struct __stat64 *buf) +_fstat64_r (struct _reent *ptr, int fd, struct stat *buf) { int ret; @@ -1729,18 +1746,22 @@ _fstat64_r (struct _reent *ptr, int fd, struct __stat64 *buf) return ret; } +#ifdef __x86_64__ +EXPORT_ALIAS (fstat64, fstat) +EXPORT_ALIAS (_fstat64_r, _fstat_r) +#else extern "C" int -fstat (int fd, struct __stat32 *buf) +fstat (int fd, struct stat *buf) { - struct __stat64 buf64; + struct stat buf64; int ret = fstat64 (fd, &buf64); if (!ret) - stat64_to_stat32 (&buf64, buf); + stat64_to_stat32 (&buf64, (struct __stat32 *) buf); return ret; } extern "C" int -_fstat_r (struct _reent *ptr, int fd, struct __stat32 *buf) +_fstat_r (struct _reent *ptr, int fd, struct stat *buf) { int ret; @@ -1748,6 +1769,7 @@ _fstat_r (struct _reent *ptr, int fd, struct __stat32 *buf) ptr->_errno = get_errno (); return ret; } +#endif /* fsync: P96 6.6.1.1 */ extern "C" int @@ -1778,12 +1800,12 @@ sync_worker (HANDLE dir, USHORT len, LPCWSTR vol) status = NtOpenFile (&fh, GENERIC_WRITE, &attr, &io, FILE_SHARE_VALID_FLAGS, 0); if (!NT_SUCCESS (status)) - debug_printf ("NtOpenFile (%S), status %p", &uvol, status); + debug_printf ("NtOpenFile (%S), status %y", &uvol, status); else { status = NtFlushBuffersFile (fh, &io); if (!NT_SUCCESS (status)) - debug_printf ("NtFlushBuffersFile (%S), status %p", &uvol, status); + debug_printf ("NtFlushBuffersFile (%S), status %y", &uvol, status); NtClose (fh); } } @@ -1803,7 +1825,7 @@ sync () status = NtOpenDirectoryObject (&devhdl, DIRECTORY_QUERY, &attr); if (!NT_SUCCESS (status)) { - debug_printf ("NtOpenDirectoryObject, status %p", status); + debug_printf ("NtOpenDirectoryObject, status %y", status); return; } /* Traverse \Device directory ... */ @@ -1825,8 +1847,8 @@ sync () } /* Cygwin internal */ -int __stdcall -stat_worker (path_conv &pc, struct __stat64 *buf) +int __reg2 +stat_worker (path_conv &pc, struct stat *buf) { int res = -1; @@ -1864,7 +1886,7 @@ stat_worker (path_conv &pc, struct __stat64 *buf) } extern "C" int -stat64 (const char *name, struct __stat64 *buf) +stat64 (const char *name, struct stat *buf) { syscall_printf ("entering"); path_conv pc (name, PC_SYM_FOLLOW | PC_POSIX | PC_KEEP_HANDLE, @@ -1873,7 +1895,7 @@ stat64 (const char *name, struct __stat64 *buf) } extern "C" int -_stat64_r (struct _reent *ptr, const char *name, struct __stat64 *buf) +_stat64_r (struct _reent *ptr, const char *name, struct stat *buf) { int ret; @@ -1882,18 +1904,22 @@ _stat64_r (struct _reent *ptr, const char *name, struct __stat64 *buf) return ret; } +#ifdef __x86_64__ +EXPORT_ALIAS (stat64, stat) +EXPORT_ALIAS (_stat64_r, _stat_r) +#else extern "C" int -stat (const char *name, struct __stat32 *buf) +stat (const char *name, struct stat *buf) { - struct __stat64 buf64; + struct stat buf64; int ret = stat64 (name, &buf64); if (!ret) - stat64_to_stat32 (&buf64, buf); + stat64_to_stat32 (&buf64, (struct __stat32 *) buf); return ret; } extern "C" int -_stat_r (struct _reent *ptr, const char *name, struct __stat32 *buf) +_stat_r (struct _reent *ptr, const char *name, struct stat *buf) { int ret; @@ -1901,10 +1927,11 @@ _stat_r (struct _reent *ptr, const char *name, struct __stat32 *buf) ptr->_errno = get_errno (); return ret; } +#endif /* lstat: Provided by SVR4 and 4.3+BSD, POSIX? */ extern "C" int -lstat64 (const char *name, struct __stat64 *buf) +lstat64 (const char *name, struct stat *buf) { syscall_printf ("entering"); path_conv pc (name, PC_SYM_NOFOLLOW | PC_POSIX | PC_KEEP_HANDLE, @@ -1912,16 +1939,20 @@ lstat64 (const char *name, struct __stat64 *buf) return stat_worker (pc, buf); } +#ifdef __x86_64__ +EXPORT_ALIAS (lstat64, lstat) +#else /* lstat: Provided by SVR4 and 4.3+BSD, POSIX? */ extern "C" int -lstat (const char *name, struct __stat32 *buf) +lstat (const char *name, struct stat *buf) { - struct __stat64 buf64; + struct stat buf64; int ret = lstat64 (name, &buf64); if (!ret) - stat64_to_stat32 (&buf64, buf); + stat64_to_stat32 (&buf64, (struct __stat32 *) buf); return ret; } +#endif extern "C" int access (const char *fn, int flags) @@ -2338,7 +2369,7 @@ retry: } if (!NT_SUCCESS (status)) { - debug_printf ("status %p", status); + debug_printf ("status %y", status); if (status == STATUS_SHARING_VIOLATION && cygwait (10L) != WAIT_SIGNALED) { @@ -2721,7 +2752,7 @@ getmode (int fd) previous mode. */ extern "C" int -setmode (int fd, int mode) +_setmode (int fd, int mode) { cygheap_fdget cfd (fd); if (cfd < 0) @@ -2759,7 +2790,7 @@ setmode (int fd, int mode) extern "C" int cygwin_setmode (int fd, int mode) { - int res = setmode (fd, mode); + int res = _setmode (fd, mode); if (res != -1) { _my_tls.locals.setmode_file = fd; @@ -2773,7 +2804,7 @@ cygwin_setmode (int fd, int mode) } extern "C" int -posix_fadvise (int fd, _off64_t offset, _off64_t len, int advice) +posix_fadvise (int fd, off_t offset, off_t len, int advice) { int res = -1; cygheap_fdget cfd (fd); @@ -2787,7 +2818,7 @@ posix_fadvise (int fd, _off64_t offset, _off64_t len, int advice) } extern "C" int -posix_fallocate (int fd, _off64_t offset, _off64_t len) +posix_fallocate (int fd, off_t offset, off_t len) { int res = -1; if (offset < 0 || len == 0) @@ -2805,7 +2836,7 @@ posix_fallocate (int fd, _off64_t offset, _off64_t len) } extern "C" int -ftruncate64 (int fd, _off64_t length) +ftruncate64 (int fd, off_t length) { int res = -1; cygheap_fdget cfd (fd); @@ -2817,16 +2848,20 @@ ftruncate64 (int fd, _off64_t length) return res; } +#ifdef __x86_64__ +EXPORT_ALIAS (ftruncate64, ftruncate) +#else /* ftruncate: P96 5.6.7.1 */ extern "C" int ftruncate (int fd, _off_t length) { - return ftruncate64 (fd, (_off64_t)length); + return ftruncate64 (fd, (off_t)length); } +#endif /* truncate: Provided by SVR4 and 4.3+BSD. Not part of POSIX.1 or XPG3 */ extern "C" int -truncate64 (const char *pathname, _off64_t length) +truncate64 (const char *pathname, off_t length) { int fd; int res = -1; @@ -2843,15 +2878,19 @@ truncate64 (const char *pathname, _off64_t length) return res; } +#ifdef __x86_64__ +EXPORT_ALIAS (truncate64, truncate) +#else /* truncate: Provided by SVR4 and 4.3+BSD. Not part of POSIX.1 or XPG3 */ extern "C" int truncate (const char *pathname, _off_t length) { - return truncate64 (pathname, (_off64_t)length); + return truncate64 (pathname, (off_t)length); } +#endif extern "C" long -get_osfhandle (int fd) +_get_osfhandle (int fd) { long res; @@ -2993,7 +3032,7 @@ getpgid (pid_t pid) pid = getpid (); pinfo p (pid); - if (p == 0) + if (!p) { set_errno (ESRCH); return -1; @@ -3042,11 +3081,11 @@ mknod_worker (const char *path, mode_t type, mode_t mode, _major_t major, char buf[sizeof (":\\00000000:00000000:00000000") + PATH_MAX]; sprintf (buf, ":\\%x:%x:%x", major, minor, type | (mode & (S_IRWXU | S_IRWXG | S_IRWXO))); - return symlink_worker (buf, path, true, true); + return symlink_worker (buf, path, true); } extern "C" int -mknod32 (const char *path, mode_t mode, __dev32_t dev) +mknod32 (const char *path, mode_t mode, dev_t dev) { myfault efault; if (efault.faulted (EFAULT)) @@ -3102,7 +3141,7 @@ mknod32 (const char *path, mode_t mode, __dev32_t dev) extern "C" int mknod (const char *_path, mode_t mode, __dev16_t dev) { - return mknod32 (_path, mode, (__dev32_t) dev); + return mknod32 (_path, mode, (dev_t) dev); } extern "C" int @@ -3113,7 +3152,7 @@ mkfifo (const char *path, mode_t mode) /* seteuid: standards? */ extern "C" int -seteuid32 (__uid32_t uid) +seteuid32 (uid_t uid) { debug_printf ("uid: %u myself->uid: %u myself->gid: %u", uid, myself->uid, myself->gid); @@ -3213,7 +3252,7 @@ seteuid32 (__uid32_t uid) &token_is_internal)) new_token = cygheap->user.internal_token; - debug_printf ("Found token %d", new_token); + debug_printf ("Found token %p", new_token); /* If no impersonation token is available, try to authenticate using LSA private data stored password, LSA authentication using our own @@ -3268,14 +3307,14 @@ seteuid32 (__uid32_t uid) status = NtSetInformationToken (new_token, TokenOwner, &usersid, sizeof usersid); if (!NT_SUCCESS (status)) - debug_printf ("NtSetInformationToken (user.token, TokenOwner), %p", + debug_printf ("NtSetInformationToken (user.token, TokenOwner), %y", status); /* Try setting primary group in token to current group */ status = NtSetInformationToken (new_token, TokenPrimaryGroup, &groups.pgsid, sizeof (cygsid)); if (!NT_SUCCESS (status)) debug_printf ("NtSetInformationToken (user.token, TokenPrimaryGroup)," - "%p", status); + "%y", status); /* Try setting default DACL */ PACL dacl_buf = (PACL) alloca (MAX_DACL_LEN (5)); if (sec_acl (dacl_buf, true, true, usersid)) @@ -3284,7 +3323,7 @@ seteuid32 (__uid32_t uid) status = NtSetInformationToken (new_token, TokenDefaultDacl, &tdacl, sizeof (tdacl)); if (!NT_SUCCESS (status)) - debug_printf ("NtSetInformationToken (TokenDefaultDacl), %p", + debug_printf ("NtSetInformationToken (TokenDefaultDacl), %y", status); } } @@ -3333,15 +3372,19 @@ seteuid32 (__uid32_t uid) return 0; } +#ifdef __x86_64__ +EXPORT_ALIAS (seteuid32, seteuid) +#else extern "C" int seteuid (__uid16_t uid) { return seteuid32 (uid16touid32 (uid)); } +#endif /* setuid: POSIX 4.2.2.1 */ extern "C" int -setuid32 (__uid32_t uid) +setuid32 (uid_t uid) { int ret = seteuid32 (uid); if (!ret) @@ -3354,18 +3397,22 @@ setuid32 (__uid32_t uid) return ret; } +#ifdef __x86_64__ +EXPORT_ALIAS (setuid32, setuid) +#else extern "C" int setuid (__uid16_t uid) { return setuid32 (uid16touid32 (uid)); } +#endif extern "C" int -setreuid32 (__uid32_t ruid, __uid32_t euid) +setreuid32 (uid_t ruid, uid_t euid) { int ret = 0; bool tried = false; - __uid32_t old_euid = myself->uid; + uid_t old_euid = myself->uid; if (ruid != ILLEGAL_UID && cygheap->user.real_uid != ruid && euid != ruid) tried = !(ret = seteuid32 (ruid)); @@ -3379,15 +3426,19 @@ setreuid32 (__uid32_t ruid, __uid32_t euid) return ret; } +#ifdef __x86_64__ +EXPORT_ALIAS (setreuid32, setreuid) +#else extern "C" int setreuid (__uid16_t ruid, __uid16_t euid) { return setreuid32 (uid16touid32 (ruid), uid16touid32 (euid)); } +#endif /* setegid: from System V. */ extern "C" int -setegid32 (__gid32_t gid) +setegid32 (gid_t gid) { debug_printf ("new egid: %u current: %u", gid, myself->gid); @@ -3400,7 +3451,7 @@ setegid32 (__gid32_t gid) NTSTATUS status; user_groups * groups = &cygheap->user.groups; cygsid gsid; - struct __group32 * gr = internal_getgrgid (gid); + struct group * gr = internal_getgrgid (gid); if (!gsid.getfromgr (gr)) { @@ -3417,33 +3468,37 @@ setegid32 (__gid32_t gid) TokenPrimaryGroup, &gsid, sizeof gsid); if (!NT_SUCCESS (status)) debug_printf ("NtSetInformationToken (primary_token, " - "TokenPrimaryGroup), %p", status); + "TokenPrimaryGroup), %y", status); status = NtSetInformationToken (cygheap->user.imp_token (), TokenPrimaryGroup, &gsid, sizeof gsid); if (!NT_SUCCESS (status)) - debug_printf ("NtSetInformationToken (token, TokenPrimaryGroup), %p", + debug_printf ("NtSetInformationToken (token, TokenPrimaryGroup), %y", status); } cygheap->user.deimpersonate (); status = NtSetInformationToken (hProcToken, TokenPrimaryGroup, &gsid, sizeof gsid); if (!NT_SUCCESS (status)) - debug_printf ("NtSetInformationToken (hProcToken, TokenPrimaryGroup), %p", + debug_printf ("NtSetInformationToken (hProcToken, TokenPrimaryGroup), %y", status); clear_procimptoken (); cygheap->user.reimpersonate (); return 0; } +#ifdef __x86_64__ +EXPORT_ALIAS (setegid32, setegid) +#else extern "C" int setegid (__gid16_t gid) { return setegid32 (gid16togid32 (gid)); } +#endif /* setgid: POSIX 4.2.2.1 */ extern "C" int -setgid32 (__gid32_t gid) +setgid32 (gid_t gid) { int ret = setegid32 (gid); if (!ret) @@ -3451,6 +3506,9 @@ setgid32 (__gid32_t gid) return ret; } +#ifdef __x86_64__ +EXPORT_ALIAS (setgid32, setgid) +#else extern "C" int setgid (__gid16_t gid) { @@ -3459,13 +3517,14 @@ setgid (__gid16_t gid) cygheap->user.real_gid = myself->gid; return ret; } +#endif extern "C" int -setregid32 (__gid32_t rgid, __gid32_t egid) +setregid32 (gid_t rgid, gid_t egid) { int ret = 0; bool tried = false; - __gid32_t old_egid = myself->gid; + gid_t old_egid = myself->gid; if (rgid != ILLEGAL_GID && cygheap->user.real_gid != rgid && egid != rgid) tried = !(ret = setegid32 (rgid)); @@ -3479,11 +3538,15 @@ setregid32 (__gid32_t rgid, __gid32_t egid) return ret; } +#ifdef __x86_64__ +EXPORT_ALIAS (setregid32, setregid) +#else extern "C" int setregid (__gid16_t rgid, __gid16_t egid) { return setregid32 (gid16togid32 (rgid), gid16togid32 (egid)); } +#endif /* chroot: privileged Unix system call. */ /* FIXME: Not privileged here. How should this be done? */ @@ -3584,7 +3647,7 @@ setpriority (int which, id_t who, int value) continue; break; case PRIO_USER: - if ((__uid32_t) who != p->uid) + if ((uid_t) who != p->uid) continue; break; } @@ -3655,7 +3718,7 @@ getpriority (int which, id_t who) nice = p->nice; break; case PRIO_USER: - if ((__uid32_t) who == p->uid && p->nice < nice) + if ((uid_t) who == p->uid && p->nice < nice) nice = p->nice; break; } @@ -3705,14 +3768,14 @@ ffs (int i) static void locked_append (int fd, const void * buf, size_t size) { - struct __flock64 lock_buffer = {F_WRLCK, SEEK_SET, 0, 0, 0}; + struct flock lock_buffer = {F_WRLCK, SEEK_SET, 0, 0, 0}; int count = 0; do - if ((lock_buffer.l_start = lseek64 (fd, 0, SEEK_END)) != (_off64_t) -1 + if ((lock_buffer.l_start = lseek64 (fd, 0, SEEK_END)) != (off_t) -1 && fcntl64 (fd, F_SETLKW, &lock_buffer) != -1) { - if (lseek64 (fd, 0, SEEK_END) != (_off64_t) -1) + if (lseek64 (fd, 0, SEEK_END) != (off_t) -1) write (fd, buf, size); lock_buffer.l_type = F_UNLCK; fcntl64 (fd, F_SETLK, &lock_buffer); @@ -4010,7 +4073,7 @@ gethostid (void) /* SDBM hash */ for (PWCHAR wp = wguid; *wp; ++wp) hostid = *wp + (hostid << 6) + (hostid << 16) - hostid; - debug_printf ("hostid 0x%08x from MachineGuid %W", hostid, wguid); + debug_printf ("hostid %08y from MachineGuid %W", hostid, wguid); return (int32_t) hostid; /* Avoid sign extension. */ } @@ -4025,7 +4088,7 @@ getusershell () FIXME: SunOS has a far longer list, containing all shells which might be shipped with the OS. Should we do the same for the Cygwin distro, adding bash, tcsh, ksh, pdksh and zsh? */ - static NO_COPY const char *def_shells[] = { + static const char *def_shells[] = { "/bin/sh", "/bin/csh", "/usr/bin/sh", @@ -4375,8 +4438,7 @@ fchmodat (int dirfd, const char *pathname, mode_t mode, int flags) } extern "C" int -fchownat (int dirfd, const char *pathname, __uid32_t uid, __gid32_t gid, - int flags) +fchownat (int dirfd, const char *pathname, uid_t uid, gid_t gid, int flags) { tmp_pathbuf tp; myfault efault; @@ -4395,7 +4457,7 @@ fchownat (int dirfd, const char *pathname, __uid32_t uid, __gid32_t gid, } extern "C" int -fstatat (int dirfd, const char *pathname, struct __stat64 *st, int flags) +fstatat (int dirfd, const char *pathname, struct stat *st, int flags) { tmp_pathbuf tp; myfault efault; @@ -4512,7 +4574,7 @@ mkfifoat (int dirfd, const char *pathname, mode_t mode) } extern "C" int -mknodat (int dirfd, const char *pathname, mode_t mode, __dev32_t dev) +mknodat (int dirfd, const char *pathname, mode_t mode, dev_t dev) { tmp_pathbuf tp; myfault efault; |