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

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