compat / vcbuild / include / unistd.hon commit Merge git://ozlabs.org/~paulus/gitk (2dbfa67)
   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 INTMAX_MIN  _I64_MIN
  49#define INTMAX_MAX  _I64_MAX
  50#define UINTMAX_MAX _UI64_MAX
  51
  52#define UINT32_MAX 0xffffffff  /* 4294967295U */
  53
  54#define STDIN_FILENO  0
  55#define STDOUT_FILENO 1
  56#define STDERR_FILENO 2
  57
  58/* Some defines for _access nAccessMode (MS doesn't define them, but
  59 * it doesn't seem to hurt to add them). */
  60#define F_OK    0       /* Check for file existence */
  61/* Well maybe it does hurt.  On newer versions of MSVCRT, an access mode
  62   of 1 causes invalid parameter error. */
  63#define X_OK    0       /* MS access() doesn't check for execute permission. */
  64#define W_OK    2       /* Check for write permission */
  65#define R_OK    4       /* Check for read permission */
  66
  67#define _S_IFIFO        0x1000  /* FIFO */
  68#define _S_IFCHR        0x2000  /* Character */
  69#define _S_IFBLK        0x3000  /* Block: Is this ever set under w32? */
  70#define _S_IFDIR        0x4000  /* Directory */
  71#define _S_IFREG        0x8000  /* Regular */
  72
  73#define _S_IFMT         0xF000  /* File type mask */
  74
  75#define _S_IXUSR        _S_IEXEC
  76#define _S_IWUSR        _S_IWRITE
  77#define _S_IRUSR        _S_IREAD
  78#define _S_ISDIR(m)     (((m) & _S_IFMT) == _S_IFDIR)
  79
  80#define S_IFIFO         _S_IFIFO
  81#define S_IFCHR         _S_IFCHR
  82#define S_IFBLK         _S_IFBLK
  83#define S_IFDIR         _S_IFDIR
  84#define S_IFREG         _S_IFREG
  85#define S_IFMT          _S_IFMT
  86#define S_IEXEC         _S_IEXEC
  87#define S_IWRITE        _S_IWRITE
  88#define S_IREAD         _S_IREAD
  89#define S_IRWXU         _S_IRWXU
  90#define S_IXUSR         _S_IXUSR
  91#define S_IWUSR         _S_IWUSR
  92#define S_IRUSR         _S_IRUSR
  93
  94
  95#define S_ISDIR(m)      (((m) & S_IFMT) == S_IFDIR)
  96#define S_ISREG(m)      (((m) & S_IFMT) == S_IFREG)
  97#define S_ISFIFO(m)     (((m) & S_IFMT) == S_IFIFO)
  98
  99#endif