OrionLibC
Barry Importing existing Orion LibC 03048a9 (2 years, 2 months ago)diff --git a/include/sys/stat.h b/include/sys/stat.h new file mode 100644 index 0000000..b83cf2d --- /dev/null +++ b/include/sys/stat.h @@ -0,0 +1,67 @@ +#ifndef _SYS_STAT_H +#define _SYS_STAT_H + +#include <stddef.h> +#include <sys/types.h> + +#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 + +#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) + +#define S_ISUID 04000 +#define S_ISGID 02000 +#define S_ISVTX 01000 + +#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 + +/* Structure for a stat() call */ +typedef struct stat { + ino_t inode; + mode_t mode; + nlink_t nlink; + uid_t uid; + gid_t gid; + size_t size; +} Stat; + +#ifdef __cplusplus +extern "C" { +#endif + +int mkdir(const char *pathname, mode_t mode); +int mknod(const char *pathname, mode_t mode, dev_t dev); +int stat(const char *pathname, struct stat *statbuf); +int fstat(int fd, struct stat *statbuf); + +#ifdef __cplusplus +} +#endif + +#endif