/* * ecma119_read.h * * Defines structures for reading from a iso image. */ #ifndef ECMA119_READ_H_ #define ECMA119_READ_H_ #include #include "libisofs.h" enum read_error { LIBISOFS_READ_OK = 0, LIBISOFS_READ_FAILURE, /**< Truncated image or read error */ LIBISOFS_WRONG_PVM, /**< Incorrect PVM */ LIBISOFS_UNSUPPORTED_IMAGE, /**< Format not supported (interleaved...) */ LIBISOFS_WRONG_RR /**< Wrong RR/SUSP extension format */ }; /** * Should the RR extensions be read? */ enum read_rr_ext { RR_EXT_NO = 0, /*< Do not use RR extensions */ RR_EXT_110, /*< RR extensions conforming version 1.10 */ RR_EXT_112 /*< RR extensions conforming version 1.12 */ }; /** * Structure that keeps info needed in the read process. */ struct iso_read_info { struct data_source *src; enum read_error error; enum read_rr_ext rr; /*< If we need to read RR extensions. i.e., if the image * contains RR extensions, and the user wants to read them. */ ino_t ino; /*< RR version 1.10 does not have file serial numbers, we * need to generate it */ uint8_t len_skp; /*< bytes skipped within the System Use field of a directory record, before the beginning of the SUSP system user entries. See IEEE 1281, SUSP. 5.3. */ unsigned int norock:1; /*< Do not read Rock Ridge extensions */ unsigned int hasRR:1; /*< It will be set to 1 if RR extensions are present, to 0 if not. */ }; #endif /*ECMA119_READ_H_*/