compat / vcbuild / include / unistd.hon commit Merge branch 'pv/maint-add-p-no-exclude' into maint (70ed433)
   1#ifndef _UNISTD_
   2#define _UNISTD_
   3
   4/* Win32 define for porting git*/
   5
   6#ifndef _MODE_T_
   7#define _MODE_T_
   8typedef unsigned short _mode_t;
   9
  10#ifndef _NO_OLDNAMES
  11typedef _mode_t mode_t;
  12#endif
  13#endif  /* Not _MODE_T_ */
  14
  15#ifndef _SSIZE_T_
  16#define _SSIZE_T_
  17typedef long _ssize_t;
  18
  19#ifndef _OFF_T_
  20#define _OFF_T_
  21typedef long _off_t;
  22
  23#ifndef _NO_OLDNAMES
  24typedef _off_t  off_t;
  25#endif
  26#endif  /* Not _OFF_T_ */
  27
  28
  29#ifndef _NO_OLDNAMES
  30typedef _ssize_t ssize_t;
  31#endif
  32#endif /* Not _SSIZE_T_ */
  33
  34typedef signed char int8_t;
  35typedef unsigned char   uint8_t;
  36typedef short  int16_t;
  37typedef unsigned short  uint16_t;
  38typedef int  int32_t;
  39typedef unsigned   uint32_t;
  40typedef long long  int64_t;
  41typedef unsigned long long   uint64_t;
  42
  43typedef long long  intmax_t;
  44typedef unsigned long long uintmax_t;
  45
  46typedef int64_t off64_t;
  47
  48#define STDOUT_FILENO 1
  49#define STDERR_FILENO 2
  50
  51/* Some defines for _access nAccessMode (MS doesn't define them, but
  52 * it doesn't seem to hurt to add them). */
  53#define F_OK    0       /* Check for file existence */
  54/* Well maybe it does hurt.  On newer versions of MSVCRT, an access mode
  55   of 1 causes invalid parameter error. */
  56#define X_OK    0       /* MS access() doesn't check for execute permission. */
  57#define W_OK    2       /* Check for write permission */
  58#define R_OK    4       /* Check for read permission */
  59
  60#define _S_IFIFO        0x1000  /* FIFO */
  61#define _S_IFCHR        0x2000  /* Character */
  62#define _S_IFBLK        0x3000  /* Block: Is this ever set under w32? */
  63#define _S_IFDIR        0x4000  /* Directory */
  64#define _S_IFREG        0x8000  /* Regular */
  65
  66#define _S_IFMT         0xF000  /* File type mask */
  67
  68#define _S_IXUSR        _S_IEXEC
  69#define _S_IWUSR        _S_IWRITE
  70#define _S_IRUSR        _S_IREAD
  71#define _S_ISDIR(m)     (((m) & _S_IFMT) == _S_IFDIR)
  72
  73#define S_IFIFO         _S_IFIFO
  74#define S_IFCHR         _S_IFCHR
  75#define S_IFBLK         _S_IFBLK
  76#define S_IFDIR         _S_IFDIR
  77#define S_IFREG         _S_IFREG
  78#define S_IFMT          _S_IFMT
  79#define S_IEXEC         _S_IEXEC
  80#define S_IWRITE        _S_IWRITE
  81#define S_IREAD         _S_IREAD
  82#define S_IRWXU         _S_IRWXU
  83#define S_IXUSR         _S_IXUSR
  84#define S_IWUSR         _S_IWUSR
  85#define S_IRUSR         _S_IRUSR
  86
  87
  88#define S_ISDIR(m)      (((m) & S_IFMT) == S_IFDIR)
  89#define S_ISREG(m)      (((m) & S_IFMT) == S_IFREG)
  90#define S_ISFIFO(m)     (((m) & S_IFMT) == S_IFIFO)
  91
  92#endif