Add ndblib and iplib
[akaros.git] / user / ndblib / include / dir.h
1 /* 
2  * This file is part of the UCB release of Plan 9. It is subject to the license
3  * terms in the LICENSE file found in the top-level directory of this
4  * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
5  * part of the UCB release of Plan 9, including this file, may be copied,
6  * modified, propagated, or distributed except according to the terms contained
7  * in the LICENSE file.
8  */
9 #ifndef ROS_INC_DIR_H
10
11 #define ROS_INC_DIR_H
12
13 /* STATFIXLEN includes leading 16-bit count */
14 /* The count, however, excludes itself; total size is BIT16SZ+count */
15 #define STATFIXLEN      (BIT16SZ+QIDSZ+5*BIT16SZ+4*BIT32SZ+1*BIT64SZ)   /* amount of fixed length data in a stat buffer */
16
17 struct qid
18 {
19         uint64_t        path;
20         uint32_t        vers;
21         uint8_t type;
22 };
23
24 struct dir {
25         /* system-modified data */
26         uint16_t        type;   /* server type */
27         unsigned int    dev;    /* server subtype */
28         /* file data */
29         struct qid      qid;    /* unique id from server */
30         uint32_t        mode;   /* permissions */
31         uint32_t        atime;  /* last read time */
32         uint32_t        mtime;  /* last write time */
33         int64_t length; /* file length: see <u.h> */
34         char    *name;  /* last element of path */
35         char    *uid;   /* owner name */
36         char    *gid;   /* group name */
37         char    *muid;  /* last modifier name */
38 };
39
40 #endif /* ROS_INC_DIR_H */