Drop main() prototype. Syncs with NetBSD-8
[minix.git] / minix / fs / isofs / inode.h
blobd0635f8aa1351df364d7b735c1077556b8a4dda8
1 #include "const.h"
2 #include <sys/stat.h>
4 struct iso9660_dir_record {
5 /*
6 * ISO standard directory record.
7 */
8 u8_t length; /* The length of the record */
9 u8_t ext_attr_rec_length;
10 u32_t loc_extent_l; /* The same data (in this case loc_extent)is */
11 u32_t loc_extent_m; /* saved in two ways. The first puts the le- */
12 u32_t data_length_l; /* ast significant byte first, the second */
13 u32_t data_length_m; /* does the opposite */
14 u8_t rec_date[7]; /* => recording date */
15 u8_t file_flags; /* => flags of the file */
16 u8_t file_unit_size; /* set of blocks in interleave mode */
17 u8_t inter_gap_size; /* gap between file units in interleave mode */
18 u32_t vol_seq_number; /* volume sequence number: not used */
19 u8_t length_file_id; /* Length name file */
20 char file_id[ISO9660_MAX_FILE_ID_LEN]; /* file name */
21 } __attribute__((packed));
23 struct rrii_dir_record {
25 * Rock Ridge directory record extensions.
27 u8_t mtime[7]; /* stat.st_mtime */
28 u8_t atime[7]; /* stat.st_atime */
29 u8_t ctime[7]; /* stat.st_ctime */
30 u8_t birthtime[7]; /* stat.st_birthtime */
32 mode_t d_mode; /* file mode */
33 uid_t uid; /* user ID of the file's owner */
34 gid_t gid; /* group ID of the file's group */
35 dev_t rdev; /* device major/minor */
37 char file_id_rrip[ISO9660_RRIP_MAX_FILE_ID_LEN]; /* file name */
38 char slink_rrip[ISO9660_RRIP_MAX_FILE_ID_LEN]; /* symbolic link */
40 struct inode *reparented_inode;
41 } ;
43 struct dir_extent {
45 * Extent (contiguous array of logical sectors).
47 u32_t location;
48 u32_t length;
49 struct dir_extent *next;
50 } ;
52 struct inode_dir_entry {
53 struct inode *i_node;
54 char *name; /* Pointer to real name */
55 char i_name[ISO9660_MAX_FILE_ID_LEN+1]; /* ISO 9660 name */
56 char *r_name; /* Rock Ridge name */
57 } ;
59 struct inode {
60 int i_count; /* usage counter of this inode */
61 int i_refcount; /* reference counter of this inode */
62 int i_mountpoint; /* flag for inode being used as a mount point */
63 struct stat i_stat; /* inode properties */
64 struct dir_extent extent; /* first extent of file */
65 struct inode_dir_entry *dir_contents; /* contents of directory */
66 size_t dir_size; /* number of inodes in this directory */
67 char *s_name; /* Rock Ridge symbolic link */
68 int skip; /* skip inode because of reparenting */
69 } ;
71 struct opt {
73 * Global mount options.
75 int norock; /* Bool: dont use Rock Ridge */
76 } ;
78 #define D_DIRECTORY 0x2
79 #define D_NOT_LAST_EXTENT 0x80
80 #define D_TYPE 0x8E