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/fhandler.h | |
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/fhandler.h')
-rw-r--r-- | winsup/cygwin/fhandler.h | 223 |
1 files changed, 116 insertions, 107 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index d6c1cf656..f5e4bc0d6 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -55,7 +55,7 @@ class inode_t; typedef struct __DIR DIR; struct dirent; struct iovec; -struct __acl32; +struct acl; enum dirent_states { @@ -147,12 +147,13 @@ class fhandler_base unsigned close_on_exec : 1; /* close-on-exec */ unsigned need_fork_fixup : 1; /* Set if need to fixup after fork. */ unsigned isclosed : 1; /* Set when fhandler is closed. */ + unsigned mandatory_locking : 1; /* Windows mandatory locking */ public: status_flags () : rbinary (0), rbinset (0), wbinary (0), wbinset (0), nohandle (0), did_lseek (0), query_open (no_query), close_on_exec (0), - need_fork_fixup (0), isclosed (0) + need_fork_fixup (0), isclosed (0), mandatory_locking (0) {} } status, open_status; @@ -162,8 +163,8 @@ class fhandler_base HANDLE io_handle; - __ino64_t ino; /* file ID or hashed filename, depends on FS. */ - long _refcnt; + ino_t ino; /* file ID or hashed filename, depends on FS. */ + LONG _refcnt; protected: /* File open flags from open () and fcntl () calls */ @@ -182,8 +183,8 @@ class fhandler_base HANDLE read_state; public: - long inc_refcnt () {return InterlockedIncrement (&_refcnt);} - long dec_refcnt () {return InterlockedDecrement (&_refcnt);} + LONG inc_refcnt () {return InterlockedIncrement (&_refcnt);} + LONG dec_refcnt () {return InterlockedDecrement (&_refcnt);} class fhandler_base *archetype; int usecount; @@ -209,10 +210,9 @@ class fhandler_base /* Non-virtual simple accessor functions. */ void set_io_handle (HANDLE x) { io_handle = x; } - DWORD& get_device () { return dev (); } - DWORD get_major () { return dev ().get_major (); } - DWORD get_minor () { return dev ().get_minor (); } - virtual int get_unit () { return dev ().get_minor (); } + dev_t& get_device () { return dev (); } + _major_t get_major () { return dev ().get_major (); } + _minor_t get_minor () { return dev ().get_minor (); } ACCESS_MASK get_access () const { return access; } void set_access (ACCESS_MASK x) { access = x; } @@ -248,6 +248,7 @@ class fhandler_base IMPLEMENT_STATUS_FLAG (bool, close_on_exec) IMPLEMENT_STATUS_FLAG (bool, need_fork_fixup) IMPLEMENT_STATUS_FLAG (bool, isclosed) + IMPLEMENT_STATUS_FLAG (bool, mandatory_locking) int get_default_fmode (int flags); @@ -295,8 +296,8 @@ class fhandler_base bool has_attribute (DWORD x) const {return pc.has_attribute (x);} const char *get_name () const { return pc.normalized_path; } const char *get_win32_name () { return pc.get_win32 (); } - __dev32_t get_dev () { return pc.fs_serial_number (); } - __ino64_t get_ino () { return ino ?: ino = hash_path_name (0, pc.get_nt_native_path ()); } + dev_t get_dev () { return pc.fs_serial_number (); } + ino_t get_ino () { return ino ?: ino = hash_path_name (0, pc.get_nt_native_path ()); } long long get_unique_id () const { return unique_id; } /* Returns name used for /proc/<pid>/fd in buf. */ virtual char *get_proc_fd_name (char *buf); @@ -328,48 +329,49 @@ class fhandler_base int open_fs (int, mode_t = 0); # define archetype_usecount(n) _archetype_usecount (__PRETTY_FUNCTION__, __LINE__, (n)) int close_fs () { return fhandler_base::close (); } - virtual int __reg2 fstat (struct __stat64 *buf); - void __reg2 stat_fixup (struct __stat64 *buf); - int __reg2 fstat_fs (struct __stat64 *buf); + virtual int __reg2 fstat (struct stat *buf); + void __reg2 stat_fixup (struct stat *buf); + int __reg2 fstat_fs (struct stat *buf); private: - int __reg3 fstat_helper (struct __stat64 *buf, + int __reg3 fstat_helper (struct stat *buf, DWORD nNumberOfLinks); - int __reg2 fstat_by_nfs_ea (struct __stat64 *buf); - int __reg2 fstat_by_handle (struct __stat64 *buf); - int __reg2 fstat_by_name (struct __stat64 *buf); + int __reg2 fstat_by_nfs_ea (struct stat *buf); + int __reg2 fstat_by_handle (struct stat *buf); + int __reg2 fstat_by_name (struct stat *buf); public: virtual int __reg2 fstatvfs (struct statvfs *buf); int __reg2 utimens_fs (const struct timespec *); virtual int __reg1 fchmod (mode_t mode); - virtual int __reg2 fchown (__uid32_t uid, __gid32_t gid); - virtual int __reg3 facl (int, int, __acl32 *); + virtual int __reg2 fchown (uid_t uid, gid_t gid); + virtual int __reg3 facl (int, int, struct acl *); virtual ssize_t __reg3 fgetxattr (const char *, void *, size_t); virtual int __reg3 fsetxattr (const char *, const void *, size_t, int); - virtual int __reg3 fadvise (_off64_t, _off64_t, int); - virtual int __reg3 ftruncate (_off64_t, bool); + virtual int __reg3 fadvise (off_t, off_t, int); + virtual int __reg3 ftruncate (off_t, bool); virtual int __reg2 link (const char *); virtual int __reg2 utimens (const struct timespec *); virtual int __reg1 fsync (); virtual int ioctl (unsigned int cmd, void *); - virtual int fcntl (int cmd, void *); + virtual int fcntl (int cmd, intptr_t); virtual char const *ttyname () { return get_name (); } virtual void __reg3 read (void *ptr, size_t& len); virtual ssize_t __stdcall write (const void *ptr, size_t len); virtual ssize_t __stdcall readv (const struct iovec *, int iovcnt, ssize_t tot = -1); virtual ssize_t __stdcall writev (const struct iovec *, int iovcnt, ssize_t tot = -1); - virtual ssize_t __reg3 pread (void *, size_t, _off64_t); - virtual ssize_t __reg3 pwrite (void *, size_t, _off64_t); - virtual _off64_t lseek (_off64_t offset, int whence); - virtual int lock (int, struct __flock64 *); + virtual ssize_t __reg3 pread (void *, size_t, off_t); + virtual ssize_t __reg3 pwrite (void *, size_t, off_t); + virtual off_t lseek (off_t offset, int whence); + virtual int lock (int, struct flock *); + virtual int mand_lock (int, struct flock *); virtual int dup (fhandler_base *child, int flags); virtual int fpathconf (int); virtual HANDLE mmap (caddr_t *addr, size_t len, int prot, - int flags, _off64_t off); + int flags, off_t off); virtual int munmap (HANDLE h, caddr_t addr, size_t len); virtual int msync (HANDLE h, caddr_t addr, size_t len, int flags); virtual bool fixup_mmap_after_fork (HANDLE h, int prot, int flags, - _off64_t offset, DWORD size, + off_t offset, DWORD size, void *address); void *operator new (size_t, void *p) __attribute__ ((nothrow)) {return p;} @@ -480,12 +482,12 @@ class fhandler_socket: public fhandler_base int wait_for_events (const long event_mask, const DWORD flags); void release_events (); - pid_t sec_pid; - __uid32_t sec_uid; - __gid32_t sec_gid; - pid_t sec_peer_pid; - __uid32_t sec_peer_uid; - __gid32_t sec_peer_gid; + pid_t sec_pid; + uid_t sec_uid; + gid_t sec_gid; + pid_t sec_peer_pid; + uid_t sec_peer_uid; + gid_t sec_peer_gid; void af_local_set_secret (char *); void af_local_setblocking (bool &, bool &); void af_local_unsetblocking (bool, bool); @@ -536,7 +538,14 @@ class fhandler_socket: public fhandler_base public: fhandler_socket (); ~fhandler_socket (); - int get_socket () { return (int) get_handle(); } +/* Originally get_socket returned an int, which is not a good idea + to cast a handle to on 64 bit. The right type here is very certainly + SOCKET instead. On the other hand, we don't want to have to include + winsock.h just to build fhandler.h. Therefore we define get_socket + now only when building network related code. */ +#ifdef __INSIDE_CYGWIN_NET__ + SOCKET get_socket () { return (SOCKET) get_handle(); } +#endif fhandler_socket *is_socket () { return this; } IMPLEMENT_STATUS_FLAG (bool, async_io) @@ -552,7 +561,7 @@ class fhandler_socket: public fhandler_base int accept4 (struct sockaddr *peer, int *len, int flags); int getsockname (struct sockaddr *name, int *namelen); int getpeername (struct sockaddr *name, int *namelen); - int getpeereid (pid_t *pid, __uid32_t *euid, __gid32_t *egid); + int getpeereid (pid_t *pid, uid_t *euid, gid_t *egid); int open (int flags, mode_t mode = 0); void __reg3 read (void *ptr, size_t& len); @@ -570,8 +579,8 @@ class fhandler_socket: public fhandler_base ssize_t sendmsg (const struct msghdr *msg, int flags); int ioctl (unsigned int cmd, void *); - int fcntl (int cmd, void *); - _off64_t lseek (_off64_t, int) { return 0; } + int fcntl (int cmd, intptr_t); + off_t lseek (off_t, int) { return 0; } int shutdown (int how); int close (); void hclose (HANDLE) {close ();} @@ -595,11 +604,11 @@ class fhandler_socket: public fhandler_base void set_peer_sun_path (const char *path); char *get_peer_sun_path () {return peer_sun_path;} - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); int __reg2 fstatvfs (struct statvfs *buf); int __reg1 fchmod (mode_t mode); - int __reg2 fchown (__uid32_t uid, __gid32_t gid); - int __reg3 facl (int, int, __acl32 *); + int __reg2 fchown (uid_t uid, gid_t gid); + int __reg3 facl (int, int, struct acl *); int __reg2 link (const char *); fhandler_socket (void *) {} @@ -693,7 +702,7 @@ public: void set_popen_pid (pid_t pid) {popen_pid = pid;} pid_t get_popen_pid () const {return popen_pid;} - _off64_t lseek (_off64_t offset, int whence); + off_t lseek (off_t offset, int whence); select_record *select_read (select_stuff *); select_record *select_write (select_stuff *); select_record *select_except (select_stuff *); @@ -702,8 +711,8 @@ public: int dup (fhandler_base *child, int); int ioctl (unsigned int cmd, void *); int __reg2 fstatvfs (struct statvfs *buf); - int __reg3 fadvise (_off64_t, _off64_t, int); - int __reg3 ftruncate (_off64_t, bool); + int __reg3 fadvise (off_t, off_t, int); + int __reg3 ftruncate (off_t, bool); int init (HANDLE, DWORD, mode_t); static int create (fhandler_pipe *[2], unsigned, int); static DWORD create (LPSECURITY_ATTRIBUTES, HANDLE *, HANDLE *, DWORD, @@ -770,7 +779,7 @@ class fhandler_mailslot : public fhandler_base_overlapped POBJECT_ATTRIBUTES get_object_attr (OBJECT_ATTRIBUTES &, PUNICODE_STRING, int); public: fhandler_mailslot (); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); int open (int flags, mode_t mode = 0); ssize_t __reg3 raw_write (const void *, size_t); int ioctl (unsigned int cmd, void *); @@ -799,10 +808,10 @@ class fhandler_dev_raw: public fhandler_base protected: char *devbufalloc; char *devbuf; - size_t devbufalign; - size_t devbufsiz; - size_t devbufstart; - size_t devbufend; + DWORD devbufalign; + DWORD devbufsiz; + DWORD devbufstart; + DWORD devbufend; struct status_flags { unsigned lastblk_to_read : 1; @@ -819,7 +828,7 @@ class fhandler_dev_raw: public fhandler_base int open (int flags, mode_t mode = 0); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); int dup (fhandler_base *child, int); int ioctl (unsigned int cmd, void *buf); @@ -856,7 +865,7 @@ struct part_t class fhandler_dev_floppy: public fhandler_dev_raw { private: - _off64_t drive_size; + off_t drive_size; part_t *partitions; struct status_flags { @@ -867,7 +876,7 @@ class fhandler_dev_floppy: public fhandler_dev_raw IMPLEMENT_STATUS_FLAG (bool, eom_detected) - inline _off64_t get_current_position (); + inline off_t get_current_position (); int get_drive_info (struct hd_geometry *geo); int lock_partition (DWORD to_write); @@ -883,7 +892,7 @@ class fhandler_dev_floppy: public fhandler_dev_raw int dup (fhandler_base *child, int); void __reg3 raw_read (void *ptr, size_t& ulen); ssize_t __reg3 raw_write (const void *ptr, size_t ulen); - _off64_t lseek (_off64_t offset, int whence); + off_t lseek (off_t offset, int whence); int ioctl (unsigned int cmd, void *buf); fhandler_dev_floppy (void *) {} @@ -907,7 +916,7 @@ class fhandler_dev_floppy: public fhandler_dev_raw class fhandler_dev_tape: public fhandler_dev_raw { HANDLE mt_mtx; - HANDLE mt_evt; + OVERLAPPED ov; bool is_rewind_device () { return get_minor () < 128; } unsigned int driveno () { return (unsigned int) get_minor () & 0x7f; } @@ -925,9 +934,9 @@ class fhandler_dev_tape: public fhandler_dev_raw void __reg3 raw_read (void *ptr, size_t& ulen); ssize_t __reg3 raw_write (const void *ptr, size_t ulen); - virtual _off64_t lseek (_off64_t offset, int whence); + virtual off_t lseek (off_t offset, int whence); - virtual int __reg2 fstat (struct __stat64 *buf); + virtual int __reg2 fstat (struct stat *buf); virtual int dup (fhandler_base *child, int); virtual void fixup_after_fork (HANDLE parent); @@ -967,27 +976,29 @@ class fhandler_disk_file: public fhandler_base int open (int flags, mode_t mode); int close (); + int fcntl (int cmd, intptr_t); int dup (fhandler_base *child, int); void fixup_after_fork (HANDLE parent); - int lock (int, struct __flock64 *); + int lock (int, struct flock *); + int mand_lock (int, struct flock *); bool isdevice () const { return false; } - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); int __reg1 fchmod (mode_t mode); - int __reg2 fchown (__uid32_t uid, __gid32_t gid); - int __reg3 facl (int, int, __acl32 *); + int __reg2 fchown (uid_t uid, gid_t gid); + int __reg3 facl (int, int, struct acl *); ssize_t __reg3 fgetxattr (const char *, void *, size_t); int __reg3 fsetxattr (const char *, const void *, size_t, int); - int __reg3 fadvise (_off64_t, _off64_t, int); - int __reg3 ftruncate (_off64_t, bool); + int __reg3 fadvise (off_t, off_t, int); + int __reg3 ftruncate (off_t, bool); int __reg2 link (const char *); int __reg2 utimens (const struct timespec *); int __reg2 fstatvfs (struct statvfs *buf); - HANDLE mmap (caddr_t *addr, size_t len, int prot, int flags, _off64_t off); + HANDLE mmap (caddr_t *addr, size_t len, int prot, int flags, off_t off); int munmap (HANDLE h, caddr_t addr, size_t len); int msync (HANDLE h, caddr_t addr, size_t len, int flags); bool fixup_mmap_after_fork (HANDLE h, int prot, int flags, - _off64_t offset, DWORD size, void *address); + off_t offset, DWORD size, void *address); int mkdir (mode_t mode); int rmdir (); DIR __reg2 *opendir (int fd); @@ -997,8 +1008,8 @@ class fhandler_disk_file: public fhandler_base void rewinddir (DIR *); int closedir (DIR *); - ssize_t __reg3 pread (void *, size_t, _off64_t); - ssize_t __reg3 pwrite (void *, size_t, _off64_t); + ssize_t __reg3 pread (void *, size_t, off_t); + ssize_t __reg3 pwrite (void *, size_t, off_t); fhandler_disk_file (void *) {} @@ -1026,7 +1037,7 @@ public: fhandler_dev (); int open (int flags, mode_t mode); int close (); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); int __reg2 fstatvfs (struct statvfs *buf); DIR __reg2 *opendir (int fd); int __reg3 readdir (DIR *, dirent *); @@ -1068,7 +1079,7 @@ class fhandler_cygdrive: public fhandler_disk_file int __reg3 readdir (DIR *, dirent *); void rewinddir (DIR *); int closedir (DIR *); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); int __reg2 fstatvfs (struct statvfs *buf); fhandler_cygdrive (void *) {} @@ -1120,7 +1131,7 @@ class fhandler_serial: public fhandler_base int switch_modem_lines (int set, int clr); int tcsetattr (int a, const struct termios *t); int tcgetattr (struct termios *t); - _off64_t lseek (_off64_t, int) { return 0; } + off_t lseek (off_t, int) { return 0; } int tcflush (int); bool is_tty () const { return true; } void fixup_after_fork (HANDLE parent); @@ -1190,7 +1201,7 @@ class fhandler_termios: public fhandler_base virtual DWORD __acquire_output_mutex (const char *fn, int ln, DWORD ms) {return 1;} virtual void __release_output_mutex (const char *fn, int ln) {} void echo_erase (int force = 0); - virtual _off64_t lseek (_off64_t, int); + virtual off_t lseek (off_t, int); pid_t tcgetsid (); fhandler_termios (void *) {} @@ -1438,7 +1449,7 @@ class fhandler_pty_common: public fhandler_termios void __release_output_mutex (const char *fn, int ln); int close (); - _off64_t lseek (_off64_t, int); + off_t lseek (off_t, int); bool bytes_available (DWORD& n); void set_close_on_exec (bool val); select_record *select_read (select_stuff *); @@ -1493,11 +1504,10 @@ class fhandler_pty_slave: public fhandler_pty_common void fixup_after_exec (); select_record *select_read (select_stuff *); - int get_unit (); virtual char const *ttyname () { return pc.dev.name; } - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); int __reg1 fchmod (mode_t mode); - int __reg2 fchown (__uid32_t uid, __gid32_t gid); + int __reg2 fchown (uid_t uid, gid_t gid); fhandler_pty_slave (void *) {} @@ -1611,14 +1621,14 @@ class fhandler_dev_zero: public fhandler_base int open (int flags, mode_t mode = 0); ssize_t __stdcall write (const void *ptr, size_t len); void __reg3 read (void *ptr, size_t& len); - _off64_t lseek (_off64_t offset, int whence); + off_t lseek (off_t offset, int whence); virtual HANDLE mmap (caddr_t *addr, size_t len, int prot, - int flags, _off64_t off); + int flags, off_t off); virtual int munmap (HANDLE h, caddr_t addr, size_t len); virtual int msync (HANDLE h, caddr_t addr, size_t len, int flags); virtual bool fixup_mmap_after_fork (HANDLE h, int prot, int flags, - _off64_t offset, DWORD size, + off_t offset, DWORD size, void *address); fhandler_dev_zero (void *) {} @@ -1643,8 +1653,8 @@ class fhandler_dev_random: public fhandler_base { protected: HCRYPTPROV crypt_prov; - long pseudo; - _off64_t dummy_offset; + uint32_t pseudo; + off_t dummy_offset; bool crypt_gen_random (void *ptr, size_t len); int pseudo_write (const void *ptr, size_t len); @@ -1655,7 +1665,7 @@ class fhandler_dev_random: public fhandler_base int open (int flags, mode_t mode = 0); ssize_t __stdcall write (const void *ptr, size_t len); void __reg3 read (void *ptr, size_t& len); - _off64_t lseek (_off64_t offset, int whence); + off_t lseek (off_t offset, int whence); int close (); int dup (fhandler_base *child, int); @@ -1680,8 +1690,8 @@ class fhandler_dev_random: public fhandler_base class fhandler_dev_mem: public fhandler_base { protected: - DWORD mem_size; - _off64_t pos; + SIZE_T mem_size; + off_t pos; public: fhandler_dev_mem (); @@ -1690,14 +1700,14 @@ class fhandler_dev_mem: public fhandler_base int open (int flags, mode_t mode = 0); ssize_t __stdcall write (const void *ptr, size_t ulen); void __reg3 read (void *ptr, size_t& len); - _off64_t lseek (_off64_t offset, int whence); - int __reg2 fstat (struct __stat64 *buf); + off_t lseek (off_t offset, int whence); + int __reg2 fstat (struct stat *buf); - HANDLE mmap (caddr_t *addr, size_t len, int prot, int flags, _off64_t off); + HANDLE mmap (caddr_t *addr, size_t len, int prot, int flags, off_t off); int munmap (HANDLE h, caddr_t addr, size_t len); int msync (HANDLE h, caddr_t addr, size_t len, int flags); bool fixup_mmap_after_fork (HANDLE h, int prot, int flags, - _off64_t offset, DWORD size, void *address); + off_t offset, DWORD size, void *address); fhandler_dev_mem (void *) {} @@ -1719,17 +1729,17 @@ class fhandler_dev_mem: public fhandler_base class fhandler_dev_clipboard: public fhandler_base { - _off64_t pos; + off_t pos; void *membuffer; size_t msize; public: fhandler_dev_clipboard (); int is_windows () { return 1; } int open (int flags, mode_t mode = 0); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); ssize_t __stdcall write (const void *ptr, size_t len); void __reg3 read (void *ptr, size_t& len); - _off64_t lseek (_off64_t offset, int whence); + off_t lseek (off_t offset, int whence); int close (); int dup (fhandler_base *child, int); @@ -1765,7 +1775,7 @@ class fhandler_windows: public fhandler_base ssize_t __stdcall write (const void *ptr, size_t len); void __reg3 read (void *ptr, size_t& len); int ioctl (unsigned int cmd, void *); - _off64_t lseek (_off64_t, int) { return 0; } + off_t lseek (off_t, int) { return 0; } int close () { return 0; } void set_close_on_exec (bool val); @@ -1812,7 +1822,7 @@ class fhandler_dev_dsp: public fhandler_base ssize_t __stdcall write (const void *ptr, size_t len); void __reg3 read (void *ptr, size_t& len); int ioctl (unsigned int cmd, void *); - _off64_t lseek (_off64_t, int); + off_t lseek (off_t, int); int close (); void fixup_after_fork (HANDLE parent); void fixup_after_exec (); @@ -1843,8 +1853,8 @@ class fhandler_virtual : public fhandler_base { protected: char *filebuf; - _off64_t filesize; - _off64_t position; + off_t filesize; + off_t position; int fileid; // unique within each class public: @@ -1859,15 +1869,14 @@ class fhandler_virtual : public fhandler_base int closedir (DIR *); ssize_t __stdcall write (const void *ptr, size_t len); void __reg3 read (void *ptr, size_t& len); - _off64_t lseek (_off64_t, int); + off_t lseek (off_t, int); int dup (fhandler_base *child, int); int open (int flags, mode_t mode = 0); int close (); - int __reg2 fstat (struct stat *buf); int __reg2 fstatvfs (struct statvfs *buf); int __reg1 fchmod (mode_t mode); - int __reg2 fchown (__uid32_t uid, __gid32_t gid); - int __reg3 facl (int, int, __acl32 *); + int __reg2 fchown (uid_t uid, gid_t gid); + int __reg3 facl (int, int, struct acl *); virtual bool fill_filebuf (); char *get_filebuf () { return filebuf; } void fixup_after_exec (); @@ -1901,7 +1910,7 @@ class fhandler_proc: public fhandler_virtual static fh_devices get_proc_fhandler (const char *path); int open (int flags, mode_t mode = 0); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); bool fill_filebuf (); fhandler_proc (void *) {} @@ -1926,7 +1935,7 @@ class fhandler_procsys: public fhandler_virtual { public: fhandler_procsys (); - virtual_ftype_t __reg2 exists(struct __stat64 *buf); + virtual_ftype_t __reg2 exists(struct stat *buf); virtual_ftype_t exists(); DIR __reg2 *opendir (int fd); int __reg3 readdir (DIR *, dirent *); @@ -1937,7 +1946,7 @@ class fhandler_procsys: public fhandler_virtual int close (); void __reg3 read (void *ptr, size_t& len); ssize_t __stdcall write (const void *ptr, size_t len); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); bool fill_filebuf (); fhandler_procsys (void *) {} @@ -1966,7 +1975,7 @@ class fhandler_procsysvipc: public fhandler_proc virtual_ftype_t exists(); int __reg3 readdir (DIR *, dirent *); int open (int flags, mode_t mode = 0); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); bool fill_filebuf (); fhandler_procsysvipc (void *) {} @@ -1997,7 +2006,7 @@ class fhandler_netdrive: public fhandler_virtual void rewinddir (DIR *); int closedir (DIR *); int open (int flags, mode_t mode = 0); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); fhandler_netdrive (void *) {} @@ -2035,7 +2044,7 @@ class fhandler_registry: public fhandler_proc int closedir (DIR *); int open (int flags, mode_t mode = 0); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); bool fill_filebuf (); int close (); int dup (fhandler_base *child, int); @@ -2069,7 +2078,7 @@ class fhandler_process: public fhandler_proc int closedir (DIR *); int __reg3 readdir (DIR *, dirent *); int open (int flags, mode_t mode = 0); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); bool fill_filebuf (); fhandler_process (void *) {} @@ -2098,7 +2107,7 @@ class fhandler_procnet: public fhandler_proc virtual_ftype_t exists(); int __reg3 readdir (DIR *, dirent *); int open (int flags, mode_t mode = 0); - int __reg2 fstat (struct __stat64 *buf); + int __reg2 fstat (struct stat *buf); bool fill_filebuf (); fhandler_procnet (void *) {} |