Merge branch 'master' of ted.mutabah.net:acess2
[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 typedef uint32_t        uid_t;
22 typedef uint32_t        gid_t;
23
24 #define S_IFMT          0170000 /* type of file */
25 #define         S_IFDIR 0040000 /* directory */
26 #define         S_IFCHR 0020000 /* character special */
27 #define         S_IFBLK 0060000 /* block special */
28 #define         S_IFREG 0100000 /* regular */
29 #define         S_IFLNK 0120000 /* symbolic link */
30 #define         S_IFSOCK        0140000 /* socket */
31 #define         S_IFIFO 0010000 /* fifo */
32
33
34 struct stat
35 {
36         dev_t     st_dev;     /* ID of device containing file */
37         ino_t     st_ino;     /* inode number */
38         mode_t    st_mode;    /* protection */
39         nlink_t   st_nlink;   /* number of hard links */
40         uid_t     st_uid;     /* user ID of owner */
41         gid_t     st_gid;     /* group ID of owner */
42         dev_t     st_rdev;    /* device ID (if special file) */
43         off_t     st_size;    /* total size, in bytes */
44         blksize_t st_blksize; /* blocksize for file system I/O */
45         blkcnt_t  st_blocks;  /* number of 512B blocks allocated */
46         time_t    st_atime;   /* time of last access */
47         time_t    st_mtime;   /* time of last modification */
48         time_t    st_ctime;   /* time of last status change */
49 };
50
51 extern int stat(const char *path, struct stat *buf);
52 extern int lstat(const char *path, struct stat *buf);
53 extern int fstat(int fd, struct stat *buf);
54
55 #endif

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