68 lines
2.3 KiB
C
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 */
|