|
|
1.1 root 1: #ifndef _SYS_STAT_H
2: #define _SYS_STAT_H
3:
4: #include <sys/types.h>
1.1.1.2 ! root 5: #include <stdint.h>
1.1 root 6:
7: struct stat {
1.1.1.2 ! root 8: uint16_t st_dev;
! 9: uint16_t __pad1;
! 10: unsigned long st_ino;
! 11: uint16_t st_mode;
! 12: uint16_t st_nlink;
! 13: uint16_t st_uid;
! 14: uint16_t st_gid;
! 15: uint16_t st_rdev;
! 16: uint16_t __pad2;
! 17: unsigned long st_size;
! 18: unsigned long st_blksize;
! 19: unsigned long st_blocks;
! 20: time_t st_atime;
! 21: unsigned long __unused1;
! 22: time_t st_mtime;
! 23: unsigned long __unused2;
! 24: time_t st_ctime;
! 25: unsigned long __unused3;
! 26: unsigned long __unused4;
! 27: unsigned long __unused5;
! 28: };
! 29:
! 30: struct stat64 {
! 31: uint16_t st_dev;
! 32: unsigned char __pad0[10];
! 33:
! 34: #define STAT64_HAS_BROKEN_ST_INO 1
! 35: unsigned long __st_ino;
! 36:
! 37: uint32_t st_mode;
! 38: uint32_t st_nlink;
! 39:
! 40: unsigned long st_uid;
! 41: unsigned long st_gid;
! 42:
! 43: uint16_t st_rdev;
! 44: unsigned char __pad3[10];
! 45:
! 46: __extension__ long long st_size __attribute__((__packed__));
! 47: unsigned long st_blksize;
! 48:
! 49: unsigned long st_blocks; /* Number 512-byte blocks allocated. */
! 50: unsigned long __pad4; /* future possible st_blocks high bits */
! 51:
! 52: time_t st_atime;
! 53: unsigned long __pad5;
! 54:
! 55: time_t st_mtime;
! 56: unsigned long __pad6;
! 57:
! 58: time_t st_ctime;
! 59: unsigned long __pad7; /* will be high 32 bits of ctime someday */
! 60:
! 61: __extension__ unsigned long long st_ino __attribute__((__packed__));
1.1 root 62: };
63:
64: #define S_IFMT 00170000
65: #define S_IFREG 0100000
66: #define S_IFBLK 0060000
67: #define S_IFDIR 0040000
68: #define S_IFCHR 0020000
69: #define S_IFIFO 0010000
70: #define S_ISUID 0004000
71: #define S_ISGID 0002000
72: #define S_ISVTX 0001000
73:
74: #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
75: #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
76: #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
77: #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
78: #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
79:
80: #define S_IRWXU 00700
81: #define S_IRUSR 00400
82: #define S_IWUSR 00200
83: #define S_IXUSR 00100
84:
85: #define S_IRWXG 00070
86: #define S_IRGRP 00040
87: #define S_IWGRP 00020
88: #define S_IXGRP 00010
89:
90: #define S_IRWXO 00007
91: #define S_IROTH 00004
92: #define S_IWOTH 00002
93: #define S_IXOTH 00001
94:
95: extern int chmod(const char *_path, mode_t mode);
1.1.1.2 ! root 96: extern int fstat64(int fildes, struct stat64 *stat_buf);
1.1 root 97: extern int mkdir(const char *_path, mode_t mode);
98: extern int mkfifo(const char *_path, mode_t mode);
1.1.1.2 ! root 99: extern int stat64(const char *filename, struct stat64 *stat_buf);
1.1 root 100: extern mode_t umask(mode_t mask);
101:
102: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.