mirror of
https://github.com/drasko/codezero.git
synced 2026-01-12 19:03:15 +01:00
83 lines
1.9 KiB
C
83 lines
1.9 KiB
C
#ifndef __FS0_STAT_H__
|
|
#define __FS0_STAT_H__
|
|
|
|
/* Posix definitions for file mode flags (covers type and access permissions) */
|
|
#define S_IFMT 00170000
|
|
#define S_IFSOCK 0140000
|
|
#define S_IFLNK 0120000
|
|
#define S_IFREG 0100000
|
|
#define S_IFBLK 0060000
|
|
#define S_IFDIR 0040000
|
|
#define S_IFCHR 0020000
|
|
#define S_IFIFO 0010000
|
|
#define S_ISUID 0004000
|
|
#define S_ISGID 0002000
|
|
#define S_ISVTX 0001000
|
|
|
|
#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
|
|
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
|
|
#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
|
|
#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
|
|
#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
|
|
#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
|
|
#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
|
|
|
|
#define S_IRWXU 00700
|
|
#define S_IRUSR 00400
|
|
#define S_IWUSR 00200
|
|
#define S_IXUSR 00100
|
|
|
|
#define S_IRWXG 00070
|
|
#define S_IRGRP 00040
|
|
#define S_IWGRP 00020
|
|
#define S_IXGRP 00010
|
|
|
|
#define S_IRWXO 00007
|
|
#define S_IROTH 00004
|
|
#define S_IWOTH 00002
|
|
#define S_IXOTH 00001
|
|
|
|
#define S_IRWXUGO (S_IRWXU|S_IRWXG|S_IRWXO)
|
|
#define S_IALLUGO (S_ISUID|S_ISGID|S_ISVTX|S_IRWXUGO)
|
|
#define S_IRUGO (S_IRUSR|S_IRGRP|S_IROTH)
|
|
#define S_IWUGO (S_IWUSR|S_IWGRP|S_IWOTH)
|
|
#define S_IXUGO (S_IXUSR|S_IXGRP|S_IXOTH)
|
|
|
|
#define O_ACCMODE 00000003
|
|
#define O_RDONLY 00000000
|
|
#define O_WRONLY 00000001
|
|
#define O_RDWR 00000002
|
|
#define O_CREAT 00000100
|
|
#define O_EXCL 00000200
|
|
#define O_NOCTTY 00000400
|
|
#define O_TRUNC 00001000
|
|
#define O_APPEND 00002000
|
|
#define O_NONBLOCK 00004000
|
|
#define O_SYNC 00010000
|
|
#define FASYNC 00020000
|
|
#define O_DIRECT 00040000
|
|
#define O_LARGEFILE 00100000
|
|
#define O_DIRECTORY 00200000
|
|
#define O_NOFOLLOW 00400000
|
|
#define O_NOATIME 01000000
|
|
#define O_NDELAY O_NONBLOCK
|
|
|
|
/*
|
|
* Internal codezero-specific stat structure.
|
|
* This is converted to posix stat in userspace
|
|
*/
|
|
struct kstat {
|
|
u64 vnum;
|
|
u32 mode;
|
|
int links;
|
|
u16 uid;
|
|
u16 gid;
|
|
u64 size;
|
|
int blksize;
|
|
u64 atime;
|
|
u64 mtime;
|
|
u64 ctime;
|
|
};
|
|
|
|
#endif /* __FS0_STAT_H__ */
|