4 ** Emulation of the Unix sys/stat.h header file for PRIMOS
6 ** Author: Peter Eriksson <pen@lysator.liu.se>
10 #define __SYS_STAT_H__
13 #include <sys/types.h>
16 /* First some PRIMOS standard entries */
19 short st_type; /* Primos file type */
20 short st_rwlock; /* Primos read/write lock */
22 /* Begin Unix compatibility - don't believe these entries! */
36 #define _IFMT 0170000 /* type of file */
37 #define _IFREG 0100000 /* regular */
38 #define _IFDIR 0040000 /* directory */
40 /* Some stupid programs check if these are defined and then
41 believe these are supported in the OS - not so in PRIMOS ... */
43 # define _IFCHR 0020000
44 # define _IFBLK 0060000
45 # define _IFLNK 0120000
46 # define _IFSOCK 0140000
47 # define _IFIFO 0010000
50 #define S_ISUID 0004000
51 #define S_ISGID 0002000
52 #define S_ISVTX 0001000
53 #define S_IREAD 0000400
54 #define S_IWRITE 0000200
55 #define S_IEXEC 0000100
57 #define S_ENFMT 0002000
60 #define S_IFREG _IFREG
61 #define S_IFDIR _IFDIR
63 # define S_IFCHR _IFCHR
64 # define S_IFBLK _IFBLK
65 # define S_IFLNK _IFLNK
66 # define S_IFSOCK _IFSOCK
67 # define S_IFIFO _IFIFO
70 #define S_IRWXU 0000700
71 #define S_IRUSR 0000400
72 #define S_IWUSR 0000200
73 #define S_IXUSR 0000100
74 #define S_IRWXG 0000070
75 #define S_IRGRP 0000040
76 #define S_IWGRP 0000020
77 #define S_IXGRP 0000010
78 #define S_IRWXO 0000007
79 #define S_IROTH 0000004
80 #define S_IWOTH 0000002
81 #define S_IXOTH 0000001
83 #define S_ISREG(m) (((m) & _IFMT) == _IFREG)
84 #define S_ISDIR(m) (((m) & _IFMT) == _IFDIR)
86 # define S_ISBLK(m) (((m) & _IFMT) == _IFBLK)
87 # define S_ISCHR(m) (((m) & _IFMT) == _IFCHR)
88 # define S_ISFIFO(m) (((m) & _IFMT) == _IFIFO)