5755890 [rkeene@sledge /home/rkeene/devel/cygwin-stuff/cyg-root/usr/include/sys]$ cat -n stat.h
  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 #ifdef __i386__
 13 #ifdef __MSDOS__
 14 #include "stat-dj.h"
 15 #endif
 16 #endif
 17 
 18 /* dj's stat defines _STAT_H_ */
 19 #ifndef _STAT_H_
 20 
 21 /* It is intended that the layout of this structure not change when the
 22    sizes of any of the basic types change (short, int, long) [via a compile
 23    time option].  */
 24 
 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 
 53 #define _IFMT       0170000 /* type of file */
 54 #define     _IFDIR  0040000 /* directory */
 55 #define     _IFCHR  0020000 /* character special */
 56 #define     _IFBLK  0060000 /* block special */
 57 #define     _IFREG  0100000 /* regular */
 58 #define     _IFLNK  0120000 /* symbolic link */
 59 #define     _IFSOCK 0140000 /* socket */
 60 #define     _IFIFO  0010000 /* fifo */
 61 
 62 #define     S_BLKSIZE  1024 /* size of a block */
 63 
 64 #define S_ISUID     0004000 /* set user id on execution */
 65 #define S_ISGID     0002000 /* set group id on execution */
 66 #ifndef _POSIX_SOURCE
 67 #define S_ISVTX     0001000 /* save swapped text even after use */
 68 #define S_IREAD     0000400 /* read permission, owner */
 69 #define S_IWRITE    0000200 /* write permission, owner */
 70 #define S_IEXEC     0000100 /* execute/search permission, owner */
 71 
 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     0000700 /* rwx, owner */
 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     0000070 /* rwx, group */
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     0000007 /* rwx, other */
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__)
128 int _EXFUN(mknod,( const char *_path, mode_t _mode, dev_t dev ));
129 int _EXFUN(lstat,( const char *__path, struct stat *__buf ));
130 #endif
131 
132 /* Provide prototypes for most of the _<systemcall> names that are
133    provided in newlib for some compilers.  */
134 int _EXFUN(_fstat,( int __fd, struct stat *__sbuf ));
135 int _EXFUN(_stat,( const char *__path, struct stat *__sbuf ));
136 
137 #ifdef __CYGWIN__
138 int _EXFUN(lstat,( const char *__path, struct stat *__buf ));
139 #endif
140 
141 #if defined(__rtems__)
142 int _EXFUN(mknod,( const char *_path, mode_t _mode, dev_t dev ));
143 int _EXFUN(lstat,( const char *_path, struct stat *_sbuf ));
144 #endif
145 
146 #endif /* !_STAT_H_ */
147 #ifdef __cplusplus
148 }
149 #endif
150 #endif /* _SYS_STAT_H */
5755891 [rkeene@sledge /home/rkeene/devel/cygwin-stuff/cyg-root/usr/include/sys]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2001-01-31 15:09:06