Home | History | Annotate | Download | only in sys
      1 /*
      2  * sys/stat.h
      3  */
      4 
      5 #ifndef _SYS_STAT_H
      6 #define _SYS_STAT_H
      7 
      8 #include <sys/types.h>
      9 
     10 /* We don't use this, but it's there for compatibility */
     11 
     12 #define S_IFMT  00170000
     13 #define S_IFSOCK 0140000
     14 #define S_IFLNK  0120000
     15 #define S_IFREG  0100000
     16 #define S_IFBLK  0060000
     17 #define S_IFDIR  0040000
     18 #define S_IFCHR  0020000
     19 #define S_IFIFO  0010000
     20 #define S_ISUID  0004000
     21 #define S_ISGID  0002000
     22 #define S_ISVTX  0001000
     23 #define S_ISLNK(m)      (((m) & S_IFMT) == S_IFLNK)
     24 #define S_ISREG(m)      (((m) & S_IFMT) == S_IFREG)
     25 #define S_ISDIR(m)      (((m) & S_IFMT) == S_IFDIR)
     26 #define S_ISCHR(m)      (((m) & S_IFMT) == S_IFCHR)
     27 #define S_ISBLK(m)      (((m) & S_IFMT) == S_IFBLK)
     28 #define S_ISFIFO(m)     (((m) & S_IFMT) == S_IFIFO)
     29 #define S_ISSOCK(m)     (((m) & S_IFMT) == S_IFSOCK)
     30 #define S_IRWXU 00700
     31 #define S_IRUSR 00400
     32 #define S_IWUSR 00200
     33 #define S_IXUSR 00100
     34 #define S_IRWXG 00070
     35 #define S_IRGRP 00040
     36 #define S_IWGRP 00020
     37 #define S_IXGRP 00010
     38 #define S_IRWXO 00007
     39 #define S_IROTH 00004
     40 #define S_IWOTH 00002
     41 #define S_IXOTH 00001
     42 
     43 /* These are the only fields in struct stat we emulate */
     44 struct stat {
     45     mode_t st_mode;
     46     off_t st_size;
     47 };
     48 
     49 /* Only fstat() supported */
     50 int fstat(int, struct stat *);
     51 
     52 #endif /* _SYS_STAT_H */
     53