minix3/fs/iso9660fs/inode.h

68 lines
2.3 KiB
C

#include "const.h"
struct dir_record {
u8_t length; /* The length of the record */
u8_t ext_attr_rec_length;
u32_t loc_extent_l; /* The same data (in this case loc_extent)is */
u32_t loc_extent_m; /* saved in two ways. The first puts the le- */
u32_t data_length_l; /* ast significant byte first, the second */
u32_t data_length_m; /* does the opposite */
u8_t rec_date[7]; /* => recording date */
u8_t file_flags; /* => flags of the file */
u8_t file_unit_size; /* set of blocks in interleave mode */
u8_t inter_gap_size; /* gap between file units in interleave mode */
u32_t vol_seq_number; /* volume sequence number: not used */
u8_t length_file_id; /* Length name file */
char file_id[ISO9660_MAX_FILE_ID_LEN]; /* file name */
struct ext_attr_rec *ext_attr;
/* Memory attrs */
u8_t d_count; /* Count if the dir_record is in use or not */
mode_t d_mode; /* file type, protection, etc. */
/* struct hash_idi_entry *id; */ /* id associated */
u32_t d_phy_addr; /* physical address of this dir record */
ino_t d_ino_nr; /* inode number (identical to the address) */
char d_mountpoint; /* true if mounted on */
struct dir_record *d_next; /* In case the file consists in more file sections
this points to the next one */
struct dir_record *d_prior; /* The same as before, this points to the dir parent */
u32_t d_file_size; /* Total size of the file */
} dir_records[NR_DIR_RECORDS];
struct ext_attr_rec {
u32_t own_id;
u32_t group_id;
u16_t permissions;
char file_cre_date[ISO9660_SIZE_VOL_CRE_DATE];
char file_mod_date[ISO9660_SIZE_VOL_MOD_DATE];
char file_exp_date[ISO9660_SIZE_VOL_EXP_DATE];
char file_eff_date[ISO9660_SIZE_VOL_EFF_DATE];
u8_t rec_format;
u8_t rec_attrs;
u32_t rec_length;
char system_id[ISO9660_SIZE_SYS_ID];
char system_use[ISO9660_SIZE_SYSTEM_USE];
u8_t ext_attr_rec_ver;
u8_t len_esc_seq;
int count;
} ext_attr_recs[NR_ATTR_RECS];
#define D_DIRECTORY 0x2
#define D_TYPE 0x8E
/* Vector with all the ids of the dir records */
/* PUBLIC struct hash_idi_entry { */
/* u32_t h_phy_addr; */
/* struct dir_record *h_dir_record; */
/* } hash_idi[NR_ID_INODES]; */
/* PUBLIC int size_hash_idi; */
/* #define ID_DIR_RECORD(id) id - hash_idi + 1 */
#define ID_DIR_RECORD(dir) dir->d_ino_nr
/* #define ASSIGN_ID 1 */
/* #define NOT_ASSIGN_ID 0 */