1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
#if !defined ISO && !defined ISO99 && !defined ISO11
#if !defined POSIX && !defined POSIX2008 && !defined XPG3 && !defined XPG4
type blkcnt_t
type blksize_t
#endif
#ifndef POSIX
type dev_t
type ino_t
type mode_t
type nlink_t
type uid_t
type gid_t
type off_t
type time_t
#else
# define dev_t __dev_t
# define ino_t __ino_t
# define mode_t __mode_t
# define nlink_t __nlink_t
# define uid_t __uid_t
# define gid_t __gid_t
# define off_t __off_t
# define time_t __time_t
#endif
type {struct stat}
// Bug 17786: st_dev has wrong type.
xfail[mips-o32-linux]-element {struct stat} dev_t st_dev
element {struct stat} ino_t st_ino
element {struct stat} mode_t st_mode
element {struct stat} nlink_t st_nlink
element {struct stat} uid_t st_uid
element {struct stat} gid_t st_gid
#if !defined POSIX && !defined POSIX2008
element {struct stat} dev_t st_rdev
#endif
element {struct stat} off_t st_size
element {struct stat} time_t st_atime
element {struct stat} time_t st_mtime
element {struct stat} time_t st_ctime
#if defined XOPEN2K8 || defined POSIX2008
element {struct stat} {struct timespec} st_atim
element {struct stat} {struct timespec} st_mtim
element {struct stat} {struct timespec} st_ctim
#endif
#if !defined XPG3 && !defined POSIX && !defined POSIX2008
# ifdef XPG4
// The XPG4 use of "long" for these fields is not compatible with the
// use of typedefs in future standards to support values outside the
// range of "long".
xfail-element {struct stat} long st_blksize
xfail-element {struct stat} long st_blocks
# else
element {struct stat} blksize_t st_blksize
element {struct stat} blkcnt_t st_blocks
# endif
#endif
# if defined XOPEN2K8 || defined POSIX2008
type {struct timespec}
element {struct timespec} time_t tv_sec
element {struct timespec} long tv_nsec
# endif
#if !defined POSIX && !defined POSIX2008
constant S_IFMT
constant S_IFBLK
constant S_IFCHR
constant S_IFIFO
constant S_IFREG
constant S_IFDIR
# ifndef XPG3
constant S_IFLNK
constant S_IFSOCK
# endif
#endif
constant S_IRWXU
constant S_IRUSR
constant S_IWUSR
constant S_IXUSR
constant S_IRWXG
constant S_IRGRP
constant S_IWGRP
constant S_IXGRP
constant S_IRWXO
constant S_IROTH
constant S_IWOTH
constant S_IXOTH
constant S_ISUID
constant S_ISGID
#if !defined XPG3 && !defined POSIX && !defined POSIX2008
constant S_ISVTX
#endif
macro S_ISBLK
macro S_ISCHR
macro S_ISDIR
macro S_ISFIFO
macro S_ISREG
#if !defined XPG3 && !defined POSIX
macro S_ISLNK
macro S_ISSOCK
#endif
// How to represent optional tests?
optional-macro S_TYPEISMQ
optional-macro S_TYPEISSEM
optional-macro S_TYPEISSHM
# if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
optional-macro S_TYPEISTMO
# endif
# if defined XOPEN2K8 || defined POSIX2008
constant UTIME_NOW
constant UTIME_OMIT
# endif
function int chmod (const char*, mode_t)
# ifndef XPG3
function int fchmod (int, mode_t)
# endif
# if defined XOPEN2K8 || defined POSIX2008
function int fchmodat (int, const char*, mode_t, int)
# endif
function int fstat (int, struct stat*)
# if defined XOPEN2K8 || defined POSIX2008
function int fstatat (int, const char*, struct stat*, int)
function int futimens (int, const struct timespec[2])
# endif
#if !defined XPG3 && !defined POSIX
function int lstat (const char*, struct stat*)
#endif
function int mkdir (const char*, mode_t)
# if defined XOPEN2K8 || defined POSIX2008
function int mkdirat (int, const char*, mode_t)
# endif
function int mkfifo (const char*, mode_t)
# if defined XOPEN2K8 || defined POSIX2008
function int mkfifoat (int, const char*, mode_t)
# endif
# if !defined XPG3 && !defined POSIX && !defined POSIX2008
function int mknod (const char*, mode_t, dev_t)
# endif
# ifdef XOPEN2K8
function int mknodat (int, const char*, mode_t, dev_t)
# endif
function int stat (const char*, struct stat*)
function mode_t umask (mode_t)
# if defined XOPEN2K8 || defined POSIX2008
function int utimensat (int, const char*, const struct timespec[2], int)
# endif
allow st_*
allow S_*
allow *_t
#endif
|