Usermode - POSIX and C conformance changes
[tpg/acess2.git] / Usermode / Libraries / libposix.so_src / include_exp / sys / stat.h
1 /*
2  * Acess2 POSIX Emulation Lib
3  * - By John Hodge (thePowersGang)
4  *
5  * sys/stat.h
6  * - stat(2)
7  */
8 #ifndef _SYS_STAT_H_
9 #define _SYS_STAT_H_
10
11 #include <stdint.h>
12 #include "sys/types.h"  // off_t
13
14 typedef void    *dev_t; /* TODO: How to identify a device with Acess */
15 typedef uint64_t        ino_t;
16 typedef unsigned int    blksize_t;
17 typedef uint64_t        blkcnt_t;
18 typedef unsigned int    nlink_t;
19 typedef uint32_t        mode_t;
20
21 #ifndef uid_t
22 typedef uint32_t        uid_t;
23 #endif
24 #ifndef gid_t
25 typedef uint32_t        gid_t;
26 #endif
27
28 #define S_IFMT          0170000 /* type of file */
29 #define         S_IFDIR 0040000 /* directory */
30 #define         S_IFCHR 0020000 /* character special */
31 #define         S_IFBLK 0060000 /* block special */
32 #define         S_IFREG 0100000 /* regular */
33 #define         S_IFLNK 0120000 /* symbolic link */
34 #define         S_IFSOCK        0140000 /* socket */
35 #define         S_IFIFO 0010000 /* fifo */
36
37
38 struct stat
39 {
40         dev_t     st_dev;     /* ID of device containing file */
41         ino_t     st_ino;     /* inode number */
42         mode_t    st_mode;    /* protection */
43         nlink_t   st_nlink;   /* number of hard links */
44         uid_t     st_uid;     /* user ID of owner */
45         gid_t     st_gid;     /* group ID of owner */
46         dev_t     st_rdev;    /* device ID (if special file) */
47         off_t     st_size;    /* total size, in bytes */
48         blksize_t st_blksize; /* blocksize for file system I/O */
49         blkcnt_t  st_blocks;  /* number of 512B blocks allocated */
50         time_t    st_atime;   /* time of last access */
51         time_t    st_mtime;   /* time of last modification */
52         time_t    st_ctime;   /* time of last status change */
53 };
54
55 extern int stat(const char *path, struct stat *buf);
56 extern int lstat(const char *path, struct stat *buf);
57 extern int fstat(int fd, struct stat *buf);
58 extern int mkdir(const char *pathname, mode_t mode);
59
60 #endif

UCC git Repository :: git.ucc.asn.au