Create Xref-Html Frames                    Remove All Frames
file:c:/local/Cygwin/usr/include/sys/stat.h        (Tue May 25 21:07:26 2004 )


   1: #ifndef _SYS_STAT_H
   2: #define _SYS_STAT_H
   3: 
   4: #ifdef __cplusplus
   5: extern "C" {
   6: #endif
   7: 
   8: #include <_ansi.h>
   9: #include <time.h>
  10: #include <sys/types.h>
  11: 
  12: /* dj's stat defines _STAT_H_ */
  13: #ifndef _STAT_H_
  14: 
  15: /* It is intended that the layout of this structure not change when the
  16:    sizes of any of the basic types change (short, int, long) [via a compile
  17:    time option].  */
  18: 
  19: #ifdef __CYGWIN__
  20: #include <cygwin/stat.h>
  21: #ifdef _COMPILING_NEWLIB
  22: #define stat64 __stat64
  23: #endif
  24: #else
  25: struct  stat 
  26: {
  27:   dev_t   st_dev;
  28:   ino_t   st_ino;
  29:   mode_t  st_mode;
  30:   nlink_t st_nlink;
  31:   uid_t   st_uid;
  32:   gid_t   st_gid;
  33:   dev_t   st_rdev;
  34:   off_t   st_size;
  35:   /* SysV/sco doesn't have the rest... But Solaris, eabi does.  */
  36: #if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__)
  37:   time_t  st_atime;
  38:   time_t  st_mtime;
  39:   time_t  st_ctime;
  40: #else
  41:   time_t  st_atime;
  42:   long    st_spare1;
  43:   time_t  st_mtime;
  44:   long    st_spare2;
  45:   time_t  st_ctime;
  46:   long    st_spare3;
  47:   long    st_blksize;
  48:   long    st_blocks;
  49:   long  st_spare4[2];
  50: #endif
  51: };
  52: #endif
  53: 
  54: #define _IFMT   0170000 /* type of file */
  55: #define   _IFDIR  0040000 /* directory */
  56: #define   _IFCHR  0020000 /* character special */
  57: #define   _IFBLK  0060000 /* block special */
  58: #define   _IFREG  0100000 /* regular */
  59: #define   _IFLNK  0120000 /* symbolic link */
  60: #define   _IFSOCK 0140000 /* socket */
  61: #define   _IFIFO  0010000 /* fifo */
  62: 
  63: #define   S_BLKSIZE  1024 /* size of a block */
  64: 
  65: #define S_ISUID   0004000 /* set user id on execution */
  66: #define S_ISGID   0002000 /* set group id on execution */
  67: #ifndef _POSIX_SOURCE
  68: #define S_ISVTX   0001000 /* save swapped text even after use */
  69: #define S_IREAD   0000400 /* read permission, owner */
  70: #define S_IWRITE  0000200 /* write permission, owner */
  71: #define S_IEXEC   0000100 /* execute/search permission, owner */
  72: #define S_ENFMT   0002000 /* enforcement-mode locking */
  73: 
  74: #define S_IFMT    _IFMT
  75: #define S_IFDIR   _IFDIR
  76: #define S_IFCHR   _IFCHR
  77: #define S_IFBLK   _IFBLK
  78: #define S_IFREG   _IFREG
  79: #define S_IFLNK   _IFLNK
  80: #define S_IFSOCK  _IFSOCK
  81: #define S_IFIFO   _IFIFO
  82: #endif  /* !_POSIX_SOURCE */
  83: 
  84: #ifdef _WIN32
  85: /* The Windows header files define _S_ forms of these, so we do too
  86:    for easier portability.  */
  87: #define _S_IFMT   _IFMT
  88: #define _S_IFDIR  _IFDIR
  89: #define _S_IFCHR  _IFCHR
  90: #define _S_IFIFO  _IFIFO
  91: #define _S_IFREG  _IFREG
  92: #define _S_IREAD  0000400
  93: #define _S_IWRITE 0000200
  94: #define _S_IEXEC  0000100
  95: #endif
  96: 
  97: #define S_IRWXU   (S_IRUSR | S_IWUSR | S_IXUSR)
  98: #define   S_IRUSR 0000400 /* read permission, owner */
  99: #define   S_IWUSR 0000200 /* write permission, owner */
 100: #define   S_IXUSR 0000100/* execute/search permission, owner */
 101: #define S_IRWXG   (S_IRGRP | S_IWGRP | S_IXGRP)
 102: #define   S_IRGRP 0000040 /* read permission, group */
 103: #define   S_IWGRP 0000020 /* write permission, grougroup */
 104: #define   S_IXGRP 0000010/* execute/search permission, group */
 105: #define S_IRWXO   (S_IROTH | S_IWOTH | S_IXOTH)
 106: #define   S_IROTH 0000004 /* read permission, other */
 107: #define   S_IWOTH 0000002 /* write permission, other */
 108: #define   S_IXOTH 0000001/* execute/search permission, other */
 109: 
 110: #define S_ISBLK(m)  (((m)&_IFMT) == _IFBLK)
 111: #define S_ISCHR(m)  (((m)&_IFMT) == _IFCHR)
 112: #define S_ISDIR(m)  (((m)&_IFMT) == _IFDIR)
 113: #define S_ISFIFO(m) (((m)&_IFMT) == _IFIFO)
 114: #define S_ISREG(m)  (((m)&_IFMT) == _IFREG)
 115: #define S_ISLNK(m)  (((m)&_IFMT) == _IFLNK)
 116: #define S_ISSOCK(m) (((m)&_IFMT) == _IFSOCK)
 117: 
 118: 
 119: int _EXFUN(chmod,( const char *__path, mode_t __mode ));
 120: int     _EXFUN(fchmod,(int __fd, mode_t __mode));
 121: int _EXFUN(fstat,( int __fd, struct stat *__sbuf ));
 122: int _EXFUN(mkdir,( const char *_path, mode_t __mode ));
 123: int _EXFUN(mkfifo,( const char *__path, mode_t __mode ));
 124: int _EXFUN(stat,( const char *__path, struct stat *__sbuf ));
 125: mode_t  _EXFUN(umask,( mode_t __mask ));
 126: 
 127: #if defined(__rtems__) || defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__)
 128: int _EXFUN(lstat,( const char *__path, struct stat *__buf ));
 129: int _EXFUN(mknod,( const char *__path, mode_t __mode, dev_t __dev ));
 130: #endif
 131: 
 132: /* Provide prototypes for most of the _<systemcall> names that are
 133:    provided in newlib for some compilers.  */
 134: #ifdef _COMPILING_NEWLIB
 135: int _EXFUN(_fstat,( int __fd, struct stat *__sbuf ));
 136: int _EXFUN(_stat,( const char *__path, struct stat *__sbuf ));
 137: #ifdef __LARGE64_FILES
 138: struct stat64;
 139: int _EXFUN(_fstat64,( int __fd, struct stat64 *__sbuf ));
 140: #endif
 141: #endif
 142: 
 143: #endif /* !_STAT_H_ */
 144: #ifdef __cplusplus
 145: }
 146: #endif
 147: #endif /* _SYS_STAT_H */
 148: 








































Html form generated by Xrefactory version 1.6.7 on Fri Sep 03 17:18:59 2004