91 lines
3.4 KiB
C
91 lines
3.4 KiB
C
/* devices.h
|
|
|
|
Copyright 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. */
|
|
|
|
#ifndef _DEVICES_H_
|
|
#define _DEVICES_H_
|
|
|
|
#include <sys/ioctl.h>
|
|
#include <fcntl.h>
|
|
|
|
enum
|
|
{
|
|
FH_RBINARY = 0x00001000, /* binary read mode */
|
|
FH_WBINARY = 0x00002000, /* binary write mode */
|
|
FH_CLOEXEC = 0x00004000, /* close-on-exec */
|
|
FH_RBINSET = 0x00008000, /* binary read mode has been explicitly set */
|
|
FH_WBINSET = 0x00010000, /* binary write mode has been explicitly set */
|
|
FH_APPEND = 0x00020000, /* always append */
|
|
FH_ASYNC = 0x00040000, /* async I/O */
|
|
FH_SIGCLOSE = 0x00080000, /* signal handler should close fd on interrupt */
|
|
|
|
FH_SYMLINK = 0x00100000, /* is a symlink */
|
|
FH_EXECABL = 0x00200000, /* file looked like it would run:
|
|
* ends in .exe or .bat or begins with #! */
|
|
FH_W95LSBUG = 0x00400000, /* set when lseek is called as a flag that
|
|
* _write should check if we've moved beyond
|
|
* EOF, zero filling if so. */
|
|
FH_NOHANDLE = 0x00800000, /* No handle associated with fhandler. */
|
|
FH_NOEINTR = 0x01000000, /* Set if I/O should be uninterruptible. */
|
|
FH_FFIXUP = 0x02000000, /* Set if need to fixup after fork. */
|
|
FH_LOCAL = 0x04000000, /* File is unix domain socket */
|
|
FH_SHUTRD = 0x08000000, /* Socket saw a SHUT_RD */
|
|
FH_SHUTWR = 0x10000000, /* Socket saw a SHUT_WR */
|
|
FH_ISREMOTE = 0x10000000, /* File is on a remote drive */
|
|
FH_DCEXEC = 0x20000000, /* Don't care if this is executable */
|
|
FH_HASACLS = 0x40000000, /* True if fs of file has ACLS */
|
|
FH_QUERYOPEN = 0x80000000, /* open file without requesting either read
|
|
or write access */
|
|
|
|
/* Device flags */
|
|
|
|
/* Slow devices */
|
|
FH_CONSOLE = 0x00000001, /* is a console */
|
|
FH_CONIN = 0x00000002, /* console input */
|
|
FH_CONOUT = 0x00000003, /* console output */
|
|
FH_TTYM = 0x00000004, /* is a tty master */
|
|
FH_TTYS = 0x00000005, /* is a tty slave */
|
|
FH_PTYM = 0x00000006, /* is a pty master */
|
|
FH_SERIAL = 0x00000007, /* is a serial port */
|
|
FH_PIPE = 0x00000008, /* is a pipe */
|
|
FH_PIPER = 0x00000009, /* read end of a pipe */
|
|
FH_PIPEW = 0x0000000a, /* write end of a pipe */
|
|
FH_SOCKET = 0x0000000b, /* is a socket */
|
|
FH_WINDOWS = 0x0000000c, /* is a window */
|
|
FH_SLOW = 0x00000010, /* "slow" device if below this */
|
|
|
|
/* Fast devices */
|
|
FH_DISK = 0x00000010, /* is a disk */
|
|
FH_FLOPPY = 0x00000011, /* is a floppy */
|
|
FH_TAPE = 0x00000012, /* is a tape */
|
|
FH_NULL = 0x00000013, /* is the null device */
|
|
FH_ZERO = 0x00000014, /* is the zero device */
|
|
FH_RANDOM = 0x00000015, /* is a random device */
|
|
FH_MEM = 0x00000016, /* is a mem device */
|
|
FH_CLIPBOARD = 0x00000017, /* is a clipboard device */
|
|
FH_OSS_DSP = 0x00000018, /* is a dsp audio device */
|
|
FH_CYGDRIVE= 0x00000019, /* /cygdrive/x */
|
|
FH_PROC = 0x0000001a, /* /proc */
|
|
FH_REGISTRY =0x0000001b, /* /proc/registry */
|
|
FH_PROCESS = 0x0000001c, /* /proc/<n> */
|
|
|
|
FH_NDEV = 0x0000001d, /* Maximum number of devices */
|
|
FH_DEVMASK = 0x00000fff, /* devices live here */
|
|
FH_BAD = 0xffffffff
|
|
};
|
|
|
|
#define FHDEVN(n) ((n) & FH_DEVMASK)
|
|
#define FHISSETF(x) __ISSETF (this, x, FH)
|
|
#define FHSETF(x) __SETF (this, x, FH)
|
|
#define FHCLEARF(x) __CLEARF (this, x, FH)
|
|
#define FHCONDSETF(n, x) __CONDSETF(n, this, x, FH)
|
|
|
|
#define FHSTATOFF 0
|
|
#endif
|