diff options
author | dzwdz | 2023-06-02 15:25:11 +0200 |
---|---|---|
committer | dzwdz | 2023-06-02 15:25:11 +0200 |
commit | 8fd4943b2721696f86783d22dd2e8d593a22a766 (patch) | |
tree | 2e2e664605571a07688021339a6be0f395bc62c2 /src/user/lib/include/sys/stat.h | |
parent | 51c39c73692e755596eafb0d6f732581fee3ba98 (diff) |
libc: stub out sltar's requirements
Diffstat (limited to 'src/user/lib/include/sys/stat.h')
-rw-r--r-- | src/user/lib/include/sys/stat.h | 59 |
1 files changed, 57 insertions, 2 deletions
diff --git a/src/user/lib/include/sys/stat.h b/src/user/lib/include/sys/stat.h index 5776f1e..9b9523c 100644 --- a/src/user/lib/include/sys/stat.h +++ b/src/user/lib/include/sys/stat.h @@ -1,14 +1,69 @@ #pragma once +#include <sys/stat.h> #include <sys/types.h> +#include <time.h> // struct timespec #include <errno.h> // only for ENOSYS -#define S_ISFIFO(x) 0 +struct stat { + dev_t st_dev; + ino_t st_ino; + mode_t st_mode; + nlink_t st_nlink; + uid_t st_uid; + gid_t st_gid; + dev_t st_rdev; + off_t st_size; + blksize_t st_blksize; + blkcnt_t st_blocks; + + struct timespec st_atim; + struct timespec st_mtim; + struct timespec st_ctim; + +#define st_atime st_atim.tv_sec +#define st_mtime st_mtim.tv_sec +#define st_ctime st_ctim.tv_sec +}; + +#define S_IFMT 0170000 +#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 + +/* inode(7) */ +#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_ISLNK(m) ((m & S_IFMT) == S_IFLNK) +#define S_ISSOCK(m) ((m & S_IFMT) == S_IFSOCK) -struct stat {}; static inline int fstat(int fd, struct stat *sb) { (void)fd; (void)sb; errno = ENOSYS; return -1; } +static inline int lstat(const char *restrict path, struct stat *restrict sb) { + (void)path; (void)sb; + errno = ENOSYS; + return -1; +} + int mkdir(const char *path, mode_t mode); +static inline int chmod(const char *path, mode_t mode) { + (void)path; (void)mode; + errno = ENOSYS; + return -1; +} + +static inline int mknod(const char *path, mode_t mode, dev_t dev) { + (void)path; (void)mode; (void)dev; + errno = ENOSYS; + return -1; +} |