1 #ifndef _SYS_STAT_H
2 #include <io/sys/stat.h>
3 
4 #ifndef _ISOMAC
5 # include <xstatver.h>
6 # include <struct___timespec64.h>
7 # include <struct_stat_time64.h>
8 # include <stdbool.h>
9 
10 static inline bool
in_ino_t_range(__ino64_t v)11 in_ino_t_range (__ino64_t v)
12 {
13   __ino_t s = v;
14   return s == v;
15 }
16 
17 static inline bool
in_off_t_range(__off64_t v)18 in_off_t_range (__off64_t v)
19 {
20   __off_t s = v;
21   return s == v;
22 }
23 
24 static inline bool
in_blkcnt_t_range(__blkcnt64_t v)25 in_blkcnt_t_range (__blkcnt64_t v)
26 {
27   __blkcnt_t s = v;
28   return s == v;
29 }
30 
31 /* Now define the internal interfaces. */
32 extern int __stat (const char *__file, struct stat *__buf);
33 extern int __stat64 (const char *__file, struct stat64 *__buf);
34 extern int __fstat (int __fd, struct stat *__buf);
35 extern int __fstat64 (int __fd, struct stat64 *__buf);
36 extern int __lstat (const char *__file, struct stat *__buf);
37 extern int __lstat64 (const char *__file, struct stat64 *__buf);
38 extern int __fstatat (int dirfd, const char *pathname, struct stat *buf,
39 		      int flags);
40 extern int __fstatat64 (int dirfd, const char *pathname, struct stat64 *buf,
41 			int flags);
42 # if IS_IN (libc) || (IS_IN (rtld) && !defined NO_RTLD_HIDDEN)
43 hidden_proto (__stat64)
44 hidden_proto (__fstat64)
45 hidden_proto (__lstat64)
46 hidden_proto (__fstatat64)
47 # endif
48 
49 # if __TIMESIZE == 64 || defined NO_RTLD_HIDDEN
50 #  define __stat64_time64  __stat64
51 #  define __fstat64_time64  __fstat64
52 #  define __lstat64_time64  __lstat64
53 #  define __fstatat64_time64  __fstatat64
54 # else
55 extern int __stat64_time64 (const char *file, struct __stat64_t64 *buf);
56 hidden_proto (__stat64_time64);
57 extern int __lstat64_time64 (const char *file, struct __stat64_t64 *buf);
58 hidden_proto (__lstat64_time64);
59 extern int __fstat64_time64 (int fd, struct __stat64_t64 *buf);
60 hidden_proto (__fstat64_time64);
61 extern int __fstatat64_time64 (int dirfd, const char *pathname,
62 			       struct __stat64_t64 *buf, int flags);
63 hidden_proto (__fstatat64_time64);
64 # endif
65 
66 extern int __chmod (const char *__file, __mode_t __mode);
67 libc_hidden_proto (__chmod)
68 extern int __fchmod (int __fd, __mode_t __mode);
69 libc_hidden_proto (fchmodat)
70 extern __mode_t __umask (__mode_t __mask);
71 extern int __mkdir (const char *__path, __mode_t __mode);
72 libc_hidden_proto (__mkdir)
73 
74 extern int __mknodat (int fd, const char *path, mode_t mode, dev_t dev);
75 libc_hidden_proto (__mknodat);
76 extern int __mknod (const char *__path,
77 		    __mode_t __mode, __dev_t __dev);
78 libc_hidden_proto (__mknod);
79 
80 extern int __xmknod (int __ver, const char *__path, __mode_t __mode,
81 		     __dev_t *__dev);
82 extern int __xmknodat (int __ver, int __fd, const char *__path,
83 		       __mode_t __mode, __dev_t *__dev);
84 
85 int __fxstat (int __ver, int __fildes, struct stat *__stat_buf);
86 int __xstat (int __ver, const char *__filename,
87 	     struct stat *__stat_buf);
88 int __lxstat (int __ver, const char *__filename, struct stat *__stat_buf);
89 int __fxstatat (int __ver, int __fildes, const char *__filename,
90 		struct stat *__stat_buf, int __flag);
91 int __fxstat64 (int ver, int __fildes, struct stat64 *__stat_buf);
92 int __xstat64 (int ver, const char *__filename, struct stat64 *__stat_buf);
93 int __lxstat64 (int ver, const char *__filename, struct stat64 *__stat_buf);
94 int __fxstatat64 (int ver, int __fildes, const char *__filename,
95 		  struct stat64 *__stat_buf, int __flag);
96 
97 #endif
98 #endif
99