diff options
Diffstat (limited to 'libc/include/sys/stat.h')
-rw-r--r-- | libc/include/sys/stat.h | 213 |
1 files changed, 106 insertions, 107 deletions
diff --git a/libc/include/sys/stat.h b/libc/include/sys/stat.h index 37b8dc2c8..10bd01f4b 100644 --- a/libc/include/sys/stat.h +++ b/libc/include/sys/stat.h @@ -38,101 +38,101 @@ __BEGIN_DECLS #if defined(__aarch64__) -struct stat { - unsigned long st_dev; - unsigned long st_ino; - unsigned int st_mode; - unsigned int st_nlink; - unsigned int st_uid; - unsigned int st_gid; - unsigned long st_rdev; - unsigned long __pad1; - long st_size; - int st_blksize; - int __pad2; - long st_blocks; - long st_atime; - unsigned long st_atime_nsec; - long st_mtime; - unsigned long st_mtime_nsec; - long st_ctime; - unsigned long st_ctime_nsec; - unsigned int __unused4; - unsigned int __unused5; -}; +#define __STAT64_BODY \ + unsigned long st_dev; \ + unsigned long st_ino; \ + unsigned int st_mode; \ + unsigned int st_nlink; \ + unsigned int st_uid; \ + unsigned int st_gid; \ + unsigned long st_rdev; \ + unsigned long __pad1; \ + long st_size; \ + int st_blksize; \ + int __pad2; \ + long st_blocks; \ + long st_atime; \ + unsigned long st_atime_nsec; \ + long st_mtime; \ + unsigned long st_mtime_nsec; \ + long st_ctime; \ + unsigned long st_ctime_nsec; \ + unsigned int __unused4; \ + unsigned int __unused5; \ + #elif defined(__mips__) -struct stat { - unsigned int st_dev; - unsigned int __pad0[3]; - unsigned long long st_ino; - unsigned int st_mode; - unsigned int st_nlink; - unsigned int st_uid; - unsigned int st_gid; - unsigned int st_rdev; - unsigned int __pad1[3]; - long long st_size; - unsigned int st_atime; - unsigned int st_atime_nsec; - unsigned int st_mtime; - unsigned int st_mtime_nsec; - unsigned int st_ctime; - unsigned int st_ctime_nsec; - unsigned int st_blksize; - unsigned int __pad2; - unsigned long long st_blocks; -}; +#define __STAT64_BODY \ + unsigned int st_dev; \ + unsigned int __pad0[3]; \ + unsigned long long st_ino; \ + unsigned int st_mode; \ + unsigned int st_nlink; \ + unsigned int st_uid; \ + unsigned int st_gid; \ + unsigned int st_rdev; \ + unsigned int __pad1[3]; \ + long long st_size; \ + unsigned int st_atime; \ + unsigned int st_atime_nsec; \ + unsigned int st_mtime; \ + unsigned int st_mtime_nsec; \ + unsigned int st_ctime; \ + unsigned int st_ctime_nsec; \ + unsigned int st_blksize; \ + unsigned int __pad2; \ + unsigned long long st_blocks; \ + #elif defined(__x86_64__) -struct stat { - unsigned long st_dev; - unsigned long st_ino; - unsigned long st_nlink; - unsigned int st_mode; - unsigned int st_uid; - unsigned int st_gid; - unsigned int __pad0; - unsigned long st_rdev; - long st_size; - long st_blksize; - long st_blocks; - unsigned long st_atime; - unsigned long st_atime_nsec; - unsigned long st_mtime; - unsigned long st_mtime_nsec; - unsigned long st_ctime; - unsigned long st_ctime_nsec; - long __pad3[3]; -}; +#define __STAT64_BODY \ + unsigned long st_dev; \ + unsigned long st_ino; \ + unsigned long st_nlink; \ + unsigned int st_mode; \ + unsigned int st_uid; \ + unsigned int st_gid; \ + unsigned int __pad0; \ + unsigned long st_rdev; \ + long st_size; \ + long st_blksize; \ + long st_blocks; \ + unsigned long st_atime; \ + unsigned long st_atime_nsec; \ + unsigned long st_mtime; \ + unsigned long st_mtime_nsec; \ + unsigned long st_ctime; \ + unsigned long st_ctime_nsec; \ + long __pad3[3]; \ + #else -struct stat { - unsigned long long st_dev; - unsigned char __pad0[4]; - unsigned long __st_ino; - unsigned int st_mode; - unsigned int st_nlink; - unsigned long st_uid; - unsigned long st_gid; - unsigned long long st_rdev; - unsigned char __pad3[4]; - long long st_size; - unsigned long st_blksize; - unsigned long long st_blocks; - unsigned long st_atime; - unsigned long st_atime_nsec; - unsigned long st_mtime; - unsigned long st_mtime_nsec; - unsigned long st_ctime; - unsigned long st_ctime_nsec; - unsigned long long st_ino; -}; +#define __STAT64_BODY \ + unsigned long long st_dev; \ + unsigned char __pad0[4]; \ + unsigned long __st_ino; \ + unsigned int st_mode; \ + unsigned int st_nlink; \ + unsigned long st_uid; \ + unsigned long st_gid; \ + unsigned long long st_rdev; \ + unsigned char __pad3[4]; \ + long long st_size; \ + unsigned long st_blksize; \ + unsigned long long st_blocks; \ + unsigned long st_atime; \ + unsigned long st_atime_nsec; \ + unsigned long st_mtime; \ + unsigned long st_mtime_nsec; \ + unsigned long st_ctime; \ + unsigned long st_ctime_nsec; \ + unsigned long long st_ino; \ + #endif -/* For compatibility with GLibc, we provide macro aliases - * for the non-Posix nano-seconds accessors. - */ -#define st_atimensec st_atime_nsec -#define st_mtimensec st_mtime_nsec -#define st_ctimensec st_ctime_nsec +struct stat { __STAT64_BODY }; +struct stat64 { __STAT64_BODY }; + +#define st_atimensec st_atime_nsec +#define st_mtimensec st_mtime_nsec +#define st_ctimensec st_ctime_nsec #ifdef __USE_BSD /* Permission macros provided by glibc for compatibility with BSDs. */ @@ -141,21 +141,26 @@ struct stat { #define DEFFILEMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) /* 0666 */ #endif -extern int chmod(const char *, mode_t); -extern int fchmod(int, mode_t); -extern int mkdir(const char *, mode_t); +extern int chmod(const char*, mode_t); +extern int fchmod(int, mode_t); +extern int mkdir(const char*, mode_t); -extern int stat(const char *, struct stat *); -extern int fstat(int, struct stat *); -extern int lstat(const char *, struct stat *); -extern int mknod(const char *, mode_t, dev_t); +extern int fstat(int, struct stat*); +extern int fstat64(int, struct stat64*); +extern int fstatat(int, const char*, struct stat*, int); +extern int fstatat64(int, const char*, struct stat64*, int); +extern int lstat(const char*, struct stat*); +extern int lstat64(const char*, struct stat64*); +extern int stat(const char*, struct stat*); +extern int stat64(const char*, struct stat64*); + +extern int mknod(const char*, mode_t, dev_t); extern mode_t umask(mode_t); #if defined(__BIONIC_FORTIFY) extern mode_t __umask_chk(mode_t); -extern mode_t __umask_real(mode_t) - __asm__(__USER_LABEL_PREFIX__ "umask"); +extern mode_t __umask_real(mode_t) __asm__(__USER_LABEL_PREFIX__ "umask"); __errordecl(__umask_invalid_mode, "umask called with invalid mode"); __BIONIC_FORTIFY_INLINE @@ -172,20 +177,14 @@ mode_t umask(mode_t mode) { } #endif /* defined(__BIONIC_FORTIFY) */ - -#define stat64 stat -#define fstat64 fstat -#define lstat64 lstat - extern int mkfifo(const char*, mode_t); extern int fchmodat(int, const char*, mode_t, int); -extern int fstatat(int, const char*, struct stat*, int); extern int mkdirat(int, const char*, mode_t); extern int mknodat(int, const char*, mode_t, dev_t); -# define UTIME_NOW ((1l << 30) - 1l) -# define UTIME_OMIT ((1l << 30) - 2l) +#define UTIME_NOW ((1L << 30) - 1L) +#define UTIME_OMIT ((1L << 30) - 2L) extern int utimensat(int fd, const char *path, const struct timespec times[2], int flags); extern int futimens(int fd, const struct timespec times[2]); |