2 #ifndef LIBISO_LIBISOFS_H_
3 #define LIBISO_LIBISOFS_H_
42 #ifdef HAVE_INTTYPES_H
91 #define iso_lib_header_version_major 1
92 #define iso_lib_header_version_minor 3
93 #define iso_lib_header_version_micro 8
233 #define ISO_NODE_IS_DIR(n) (iso_node_get_type(n) == LIBISO_DIR)
234 #define ISO_NODE_IS_FILE(n) (iso_node_get_type(n) == LIBISO_FILE)
235 #define ISO_NODE_IS_SYMLINK(n) (iso_node_get_type(n) == LIBISO_SYMLINK)
236 #define ISO_NODE_IS_SPECIAL(n) (iso_node_get_type(n) == LIBISO_SPECIAL)
237 #define ISO_NODE_IS_BOOTCAT(n) (iso_node_get_type(n) == LIBISO_BOOT)
240 #define ISO_DIR(n) ((IsoDir*)(ISO_NODE_IS_DIR(n) ? n : NULL))
241 #define ISO_FILE(n) ((IsoFile*)(ISO_NODE_IS_FILE(n) ? n : NULL))
242 #define ISO_SYMLINK(n) ((IsoSymlink*)(ISO_NODE_IS_SYMLINK(n) ? n : NULL))
243 #define ISO_SPECIAL(n) ((IsoSpecial*)(ISO_NODE_IS_SPECIAL(n) ? n : NULL))
245 #define ISO_NODE(n) ((IsoNode*)n)
871 unsigned char **aa_string,
int flag);
898 #ifndef Libisofs_h_as_cpluspluS
1171 #ifndef Libisofs_h_as_cpluspluS
1477 uint8_t serial_number[8]);
1497 int hfsp_block_size,
int apm_block_size);
1925 char *name,
char *timestamp,
1947 int file_mode,
int uid,
int gid);
2244 int options,
int flag);
2299 time_t vol_creation_time, time_t vol_modification_time,
2300 time_t vol_expiration_time, time_t vol_effective_time,
2337 uint32_t block_offset_2k,
2338 int secs_512_per_head,
int heads_per_cyl);
2346 #define iso_libjte_req_major 1
2347 #define iso_libjte_req_minor 0
2348 #define iso_libjte_req_micro 0
2503 uint8_t partition_type,
char *image_path,
int flag);
2560 struct burn_source **burn_src);
2974 const char *data_preparer_id);
3024 const char *copyright_file_id);
3042 const char *abstract_file_id);
3127 char **creation_time,
char **modification_time,
3128 char **expiration_time,
char **effective_time);
3169 const char *catalog_path,
3264 char **content, off_t *size);
3638 int options,
int flag);
3685 int *options,
int flag);
3693 #define ISO_MAX_SYSAREA_LINE_LENGTH 4096
3701 #define ISO_SYSAREA_REPORT_DOC \
3703 "Report format for recognized System Area data.", \
3705 "No text will be reported if no System Area was loaded or if it was", \
3706 "entirely filled with 0-bytes.", \
3707 "Else there will be at least these three lines:", \
3708 " System area options: hex", \
3709 " see libisofs.h, parameter of iso_write_opts_set_system_area().", \
3710 " System area summary: word ... word", \
3711 " human readable interpretation of system area options and other info", \
3712 " The words are from the set:", \
3713 " { MBR, CHRP, PReP, GPT, APM, MIPS-Big-Endian, MIPS-Little-Endian,", \
3714 " SUN-SPARC-Disk-Label, HP-PA-PALO,", \
3715 " protective-msdos-label, isohybrid, grub2-mbr,", \
3716 " cyl-align-{auto,on,off,all}, not-recognized, }", \
3717 " The acronyms indicate boot data for particular hardware/firmware.", \
3718 " protective-msdos-label is an MBR conformant to specs of GPT.", \
3719 " isohybrid is an MBR implementing ISOLINUX isohybrid functionality.", \
3720 " grub2-mbr is an MBR with GRUB2 64 bit address patching.", \
3721 " cyl-align-on indicates that the ISO image MBR partition ends at a", \
3722 " cylinder boundary. cyl-align-all means that more MBR partitions", \
3723 " exist and all end at a cylinder boundary.", \
3724 " not-recognized tells about unrecognized non-zero system area data.", \
3725 " ISO image size/512 : decimal", \
3726 " size of ISO image in block units of 512 bytes.", \
3728 #define ISO_SYSAREA_REPORT_DOC_MBR \
3730 "If an MBR is detected, with at least one partition entry of non-zero size,", \
3731 "then there may be:", \
3732 " Partition offset : decimal", \
3733 " if not 0 then a second ISO 9660 superblock was found to which MBR", \
3734 " partition 1 is pointing.", \
3735 " MBR heads per cyl : decimal", \
3736 " conversion factor between MBR C/H/S address and LBA. 0=inconsistent.", \
3737 " MBR secs per head : decimal", \
3738 " conversion factor between MBR C/H/S address and LBA. 0=inconsistent.", \
3739 " MBR partition table: N Status Type Start Blocks", \
3740 " headline for MBR partition table.", \
3741 " MBR partition : X hex hex decimal decimal", \
3742 " gives partition number, status byte, type byte, start block,", \
3743 " and number of blocks. 512 bytes per block.", \
3744 " MBR partition path : X path", \
3745 " the path of a file in the ISO image which begins at the partition", \
3746 " start block of partition X.", \
3747 " PReP boot partition: decimal decimal", \
3748 " gives start block and size of a PReP boot partition in ISO 9660", \
3749 " block units of 2048 bytes.", \
3751 #define ISO_SYSAREA_REPORT_DOC_GPT1 \
3753 "GUID Partition Table can coexist with MBR:", \
3755 " headline for GPT partition table. The fields are too wide for a", \
3756 " neat table. So they are listed with a partition number and a text.", \
3757 " GPT CRC should be : <hex> to match first 92 GPT header block bytes", \
3758 " GPT CRC found : <hex> matches all 512 bytes of GPT header block", \
3759 " libisofs-1.2.4 to 1.2.8 had a bug with the GPT header CRC. So", \
3760 " libisofs is willing to recognize GPT with the buggy CRC. These", \
3761 " two lines inform that most partition editors will not accept it.", \
3762 " GPT array CRC wrong: should be <hex>, found <hex>", \
3763 " GPT entry arrays are accepted even if their CRC does not match.", \
3764 " In this case, both CRCs are reported by this line.", \
3765 " GPT backup problems: text", \
3766 " reports about inconsistencies between main GPT and backup GPT.", \
3767 " The statements are comma separated:", \
3768 " Implausible header LBA <decimal>", \
3769 " Cannot read header block at 2k LBA <decimal>", \
3770 " Not a GPT 1.0 header of 92 bytes for 128 bytes per entry", \
3771 " Head CRC <hex> wrong. Should be <hex>", \
3772 " Head CRC <hex> wrong. Should be <hex>. Matches all 512 block bytes", \
3773 " Disk GUID differs (<hex_digits>)", \
3774 " Cannot read array block at 2k LBA <decimal>", \
3775 " Array CRC <hex> wrong. Should be <hex>", \
3776 " Entries differ for partitions <decimal> [... <decimal>]", \
3777 " GPT disk GUID : hex_digits", \
3778 " 32 hex digits giving the byte string of the disk's GUID", \
3779 " GPT entry array : decimal decimal word", \
3780 " start block of partition entry array and number of entries. 512 bytes", \
3781 " per block. The word may be \"separated\" if partitions are disjoint,", \
3782 " \"overlapping\" if they are not. In future there may be \"nested\"", \
3783 " as special case where all overlapping partitions are superset and", \
3784 " subset, and \"covering\" as special case of disjoint partitions", \
3785 " covering the whole GPT block range for partitions.", \
3786 " GPT lba range : decimal decimal decimal", \
3787 " addresses of first payload block, last payload block, and of the", \
3788 " GPT backup header block. 512 bytes per block." \
3790 #define ISO_SYSAREA_REPORT_DOC_GPT2 \
3792 " GPT partition name : X hex_digits", \
3793 " up to 144 hex digits giving the UTF-16LE name byte string of", \
3794 " partition X. Trailing 16 bit 0-characters are omitted.", \
3795 " GPT partname local : X text", \
3796 " the name of partition X converted to the local character set.", \
3797 " This line may be missing if the name cannot be converted, or is", \
3799 " GPT partition GUID : X hex_digits", \
3800 " 32 hex digits giving the byte string of the GUID of partition X.", \
3801 " GPT type GUID : X hex_digits", \
3802 " 32 hex digits giving the byte string of the type GUID of partition X.", \
3803 " GPT partition flags: X hex", \
3804 " 64 flag bits of partition X in hex representation.", \
3805 " Known bit meanings are:", \
3806 " bit0 = \"System Partition\" Do not alter.", \
3807 " bit2 = Legacy BIOS bootable (MBR partition type 0x80)", \
3808 " bit60= read-only", \
3809 " GPT start and size : X decimal decimal", \
3810 " start block and number of blocks of partition X. 512 bytes per block.", \
3811 " GPT partition path : X path", \
3812 " the path of a file in the ISO image which begins at the partition", \
3813 " start block of partition X.", \
3815 #define ISO_SYSAREA_REPORT_DOC_APM \
3817 "Apple partition map can coexist with MBR and GPT:", \
3819 " headline for human readers.", \
3820 " APM block size : decimal", \
3821 " block size of Apple Partition Map. 512 or 2048. This applies to", \
3822 " start address and size of all partitions in the APM.", \
3823 " APM gap fillers : decimal", \
3824 " tells the number of partitions with name \"Gap[0-9[0-9]]\" and type", \
3825 " \"ISO9660_data\".", \
3826 " APM partition name : X text", \
3827 " the name of partition X. Up to 32 characters.", \
3828 " APM partition type : X text", \
3829 " the type string of partition X. Up to 32 characters.", \
3830 " APM start and size : X decimal decimal", \
3831 " start block and number of blocks of partition X.", \
3832 " APM partition path : X path", \
3833 " the path of a file in the ISO image which begins at the partition", \
3834 " start block of partition X.", \
3836 #define ISO_SYSAREA_REPORT_DOC_MIPS \
3838 "If a MIPS Big Endian Volume Header is detected, there may be:", \
3839 " MIPS-BE volume dir : N Name Block Bytes", \
3840 " headline for human readers.", \
3841 " MIPS-BE boot entry : X upto8chr decimal decimal", \
3842 " tells name, 512-byte block address, and byte count of boot entry X.", \
3843 " MIPS-BE boot path : X path", \
3844 " tells the path to the boot image file in the ISO image which belongs", \
3845 " to the block address given by boot entry X.", \
3847 "If a DEC Boot Block for MIPS Little Endian is detected, there may be:", \
3848 " MIPS-LE boot map : LoadAddr ExecAddr SegmentSize SegmentStart", \
3849 " headline for human readers.", \
3850 " MIPS-LE boot params: decimal decimal decimal decimal", \
3851 " tells four numbers which are originally derived from the ELF header", \
3852 " of the boot file. The first two are counted in bytes, the other two", \
3853 " are counted in blocks of 512 bytes.", \
3854 " MIPS-LE boot path : path", \
3855 " tells the path to the boot file in the ISO image which belongs to the", \
3856 " address given by SegmentStart.", \
3857 " MIPS-LE elf offset : decimal", \
3858 " tells the relative 512-byte block offset inside the boot file:", \
3859 " SegmentStart - FileStartBlock", \
3861 #define ISO_SYSAREA_REPORT_DOC_SUN \
3863 "If a SUN SPARC Disk Label is present:", \
3864 " SUN SPARC disklabel: text", \
3865 " tells the disk label text.", \
3866 " SUN SPARC secs/head: decimal", \
3867 " tells the number of sectors per head.", \
3868 " SUN SPARC heads/cyl: decimal", \
3869 " tells the number of heads per cylinder.", \
3870 " SPARC GRUB2 core : decimal decimal", \
3871 " tells byte address and byte count of the GRUB2 SPARC core file.", \
3872 " SPARC GRUB2 path : path", \
3873 " tells the path to the data file in the ISO image which belongs to the", \
3874 " address given by core.", \
3876 #define ISO_SYSAREA_REPORT_DOC_HPPA \
3878 "If a HP-PA PALO boot sector version 4 or 5 is present:", \
3879 " PALO header version: decimal", \
3880 " tells the PALO header version: 4 or 5.", \
3881 " HP-PA cmdline : text", \
3882 " tells the command line for the kernels.", \
3883 " HP-PA boot files : ByteAddr ByteSize Path", \
3884 " headline for human readers.", \
3885 " HP-PA 32-bit kernel: decimal decimal path", \
3886 " tells start byte, byte count, and file path of the 32-bit kernel.", \
3887 " HP-PA 64-bit kernel: decimal decimal path", \
3888 " tells the same for the 64-bit kernel.", \
3889 " HP-PA ramdisk : decimal decimal path", \
3890 " tells the same for the ramdisk file.", \
3891 " HP-PA bootloader : decimal decimal path", \
3892 " tells the same for the bootloader file.", \
3931 char ***reply,
int *line_count,
int flag);
3939 #define ISO_ELTORITO_REPORT_DOC \
3940 "Report format for recognized El Torito boot information.", \
3942 "No text will be reported if no El Torito information was found.", \
3943 "Else there will be at least these three lines", \
3944 " El Torito catalog : decimal decimal", \
3945 " tells the block address and number of 2048-blocks of the boot catalog.", \
3946 " El Torito images : N Pltf B Emul Ld_seg Hdpt Ldsiz LBA", \
3947 " is the headline of the boot image list.", \
3948 " El Torito boot img : X word char word hex hex decimal decimal", \
3949 " tells about boot image number X:", \
3950 " - Platform Id: \"BIOS\", \"PPC\", \"Mac\", \"UEFI\" or a hex number.", \
3951 " - Bootability: either \"y\" or \"n\".", \
3952 " - Emulation: \"none\", \"fd1.2\", \"fd1.4\", \"fd2.8\", \"hd\"", \
3953 " for no emulation, three floppy MB sizes, hard disk.", \
3954 " - Load Segment: start offset in boot image. 0x0000 means 0x07c0.", \
3955 " - Hard disk emulation partition type: MBR partition type code.", \
3956 " - Load size: number of 512-blocks to load with emulation mode \"none\".", \
3957 " - LBA: start block number in ISO filesystem (2048-block).", \
3959 "The following lines appear conditionally:", \
3960 " El Torito cat path : iso_rr_path", \
3961 " tells the path to the data file in the ISO image which belongs to", \
3962 " the block address where the boot catalog starts.", \
3963 " (This line is not reported if no path points to that block.)", \
3964 " El Torito img opts : X word ... word", \
3965 " tells the presence of extra features:", \
3966 " \"boot-info-table\" image got boot info table patching.", \
3967 " \"isohybrid-suitable\" image is suitable for ISOLINUX isohybrid MBR.", \
3968 " \"grub2-boot-info\" image got GRUB2 boot info patching.", \
3969 " (This line is not reported if no such options were detected.)", \
3970 " El Torito id string: X hex_digits", \
3971 " tells the id string of the catalog section which hosts boot image X.", \
3972 " (This line is not reported if the id string is all zero.)", \
3973 " El Torito sel crit : X hex_digits", \
3974 " tells the selection criterion of boot image X.", \
3975 " (This line is not reported if the criterion is all zero.)", \
3976 " El Torito img path : X iso_rr_path", \
3977 " tells the path to the data file in the ISO image which belongs to", \
3978 " the block address given by LBA of boot image X.", \
3979 " (This line is not reported if no path points to that block.)", \
3980 " El Torito img blks : X decimal", \
3981 " gives an upper limit of the number of 2048-blocks in the boot image", \
3982 " if it is not accessible via a path in the ISO directory tree.", \
3983 " The boot image is supposed to end before the start block of any", \
3984 " other entity of the ISO filesystem.", \
3985 " (This line is not reported if no limiting entity is found.)", \
4018 char ***reply,
int *line_count,
int flag);
4048 uint32_t
iso_crc32_gpt(
unsigned char *data,
int count,
int flag);
4166 char *kernel_32,
char *kernel_64,
char *ramdisk,
4190 char **kernel_32,
char **kernel_64,
char **ramdisk);
5511 const char *path,
IsoNode **node);
5548 const char *name,
const char *path,
5549 off_t offset, off_t size,
5676 int *depth,
int flag);
5683 #define LIBISO_MAX_LINK_DEPTH 100
5737 size_t *free_bytes);
5739 #define ISO_MSGS_MESSAGE_LEN 4096
5784 int iso_obtain_msgs(
char *minimum_severity,
int *error_code,
int *imgid,
5785 char msg_text[],
char severity[]);
5812 char severity[],
int origin);
6176 unsigned char **aa_string,
int flag);
6522 char **access_text,
char **default_text,
int flag);
6557 char *access_text,
char *default_text,
int flag);
6614 char ***names,
size_t **value_lengths,
char ***values,
int flag);
6636 size_t *value_length,
char **value,
int flag);
6682 size_t *value_lengths,
char **values,
int flag);
6826 size_t **value_lengths,
char ***values,
int flag);
6860 size_t *value_lengths,
char **values,
int flag);
6865 #define Libisofs_default_path_maX 4096
7246 uint32_t *end_lba,
char md5[16],
int flag);
7347 uint32_t *range_start, uint32_t *range_size,
7348 uint32_t *next_tag,
char md5[16],
int flag);
7398 int iso_md5_clone(
void *old_md5_context,
void **new_md5_context);
7415 int iso_md5_end(
void **md5_context,
char result[16]);
7567 int *bless_max,
int flag);
7615 char **result,
size_t *result_len,
int flag);
7622 #define ISO_SUCCESS 1
7631 #define ISO_CANCELED 0xE830FFFF
7634 #define ISO_FATAL_ERROR 0xF030FFFE
7637 #define ISO_ERROR 0xE830FFFD
7640 #define ISO_ASSERT_FAILURE 0xF030FFFC
7645 #define ISO_NULL_POINTER 0xE830FFFB
7648 #define ISO_OUT_OF_MEM 0xF030FFFA
7651 #define ISO_INTERRUPTED 0xF030FFF9
7654 #define ISO_WRONG_ARG_VALUE 0xE830FFF8
7657 #define ISO_THREAD_ERROR 0xF030FFF7
7660 #define ISO_WRITE_ERROR 0xE830FFF6
7663 #define ISO_BUF_READ_ERROR 0xE830FFF5
7666 #define ISO_NODE_ALREADY_ADDED 0xE830FFC0
7669 #define ISO_NODE_NAME_NOT_UNIQUE 0xE830FFBF
7672 #define ISO_NODE_NOT_ADDED_TO_DIR 0xE830FFBE
7675 #define ISO_NODE_DOESNT_EXIST 0xE830FFBD
7680 #define ISO_IMAGE_ALREADY_BOOTABLE 0xE830FFBC
7683 #define ISO_BOOT_IMAGE_NOT_VALID 0xE830FFBB
7686 #define ISO_BOOT_IMAGE_OVERFLOW 0xE830FFBA
7689 #define ISO_BOOT_NO_CATALOG 0xE830FFB9
7696 #define ISO_FILE_ERROR 0xE830FF80
7699 #define ISO_FILE_ALREADY_OPENED 0xE830FF7F
7702 #define ISO_FILE_ALREADY_OPENNED 0xE830FF7F
7705 #define ISO_FILE_ACCESS_DENIED 0xE830FF7E
7708 #define ISO_FILE_BAD_PATH 0xE830FF7D
7711 #define ISO_FILE_DOESNT_EXIST 0xE830FF7C
7714 #define ISO_FILE_NOT_OPENED 0xE830FF7B
7717 #define ISO_FILE_NOT_OPENNED ISO_FILE_NOT_OPENED
7720 #define ISO_FILE_IS_DIR 0xE830FF7A
7723 #define ISO_FILE_READ_ERROR 0xE830FF79
7726 #define ISO_FILE_IS_NOT_DIR 0xE830FF78
7729 #define ISO_FILE_IS_NOT_SYMLINK 0xE830FF77
7732 #define ISO_FILE_SEEK_ERROR 0xE830FF76
7735 #define ISO_FILE_IGNORED 0xD020FF75
7738 #define ISO_FILE_TOO_BIG 0xD020FF74
7741 #define ISO_FILE_CANT_WRITE 0xE430FF73
7744 #define ISO_FILENAME_WRONG_CHARSET 0xD020FF72
7746 #define ISO_FILENAME_WRONG_CHARSET_OLD 0xC020FF72
7749 #define ISO_FILE_CANT_ADD 0xE030FF71
7755 #define ISO_FILE_IMGPATH_WRONG 0xD020FF70
7761 #define ISO_FILE_OFFSET_TOO_BIG 0xE830FF6A
7765 #define ISO_CHARSET_CONV_ERROR 0xE830FF00
7771 #define ISO_MANGLE_TOO_MUCH_FILES 0xE830FEFF
7779 #define ISO_WRONG_PVD 0xE830FEC0
7782 #define ISO_WRONG_RR 0xE030FEBF
7785 #define ISO_UNSUPPORTED_RR 0xE030FEBE
7788 #define ISO_WRONG_ECMA119 0xE830FEBD
7791 #define ISO_UNSUPPORTED_ECMA119 0xE830FEBC
7794 #define ISO_WRONG_EL_TORITO 0xD030FEBB
7797 #define ISO_UNSUPPORTED_EL_TORITO 0xD030FEBA
7800 #define ISO_ISOLINUX_CANT_PATCH 0xE030FEB9
7803 #define ISO_UNSUPPORTED_SUSP 0xE030FEB8
7806 #define ISO_WRONG_RR_WARN 0xD030FEB7
7809 #define ISO_SUSP_UNHANDLED 0xC020FEB6
7812 #define ISO_SUSP_MULTIPLE_ER 0xD030FEB5
7815 #define ISO_UNSUPPORTED_VD 0xC020FEB4
7818 #define ISO_EL_TORITO_WARN 0xD030FEB3
7821 #define ISO_IMAGE_WRITE_CANCELED 0xE430FEB2
7824 #define ISO_EL_TORITO_HIDDEN 0xD030FEB1
7829 #define ISO_AAIP_IGNORED 0xB030FEB0
7832 #define ISO_AAIP_BAD_ACL 0xE830FEAF
7835 #define ISO_AAIP_BAD_ACL_TEXT 0xE830FEAE
7839 #define ISO_AAIP_NOT_ENABLED 0xE830FEAD
7842 #define ISO_AAIP_BAD_AASTRING 0xE830FEAC
7845 #define ISO_AAIP_NO_GET_LOCAL 0xE830FEAB
7848 #define ISO_AAIP_NO_SET_LOCAL 0xE830FEAA
7852 #define ISO_AAIP_NON_USER_NAME 0xE830FEA9
7856 #define ISO_EXTF_TOO_OFTEN 0xE830FEA8
7859 #define ISO_ZLIB_NOT_ENABLED 0xE830FEA7
7862 #define ISO_ZISOFS_TOO_LARGE 0xE830FEA6
7865 #define ISO_FILTER_WRONG_INPUT 0xE830FEA5
7868 #define ISO_ZLIB_COMPR_ERR 0xE830FEA4
7871 #define ISO_ZISOFS_WRONG_INPUT 0xE830FEA3
7875 #define ISO_ZISOFS_PARAM_LOCK 0xE830FEA2
7878 #define ISO_ZLIB_EARLY_EOF 0xE830FEA1
7884 #define ISO_MD5_AREA_CORRUPTED 0xD030FEA0
7891 #define ISO_MD5_TAG_MISMATCH 0xE830FE9F
7898 #define ISO_SB_TREE_CORRUPTED 0xE830FE9E
7904 #define ISO_MD5_TAG_UNEXPECTED 0xD030FE9D
7910 #define ISO_MD5_TAG_MISPLACED 0xD030FE9C
7917 #define ISO_MD5_TAG_OTHER_RANGE 0xD030FE9B
7924 #define ISO_MD5_STREAM_CHANGE 0xE430FE9A
7931 #define ISO_SCDBACKUP_TAG_NOT_0 0xD030FE99
7939 #define ISO_OVWRT_MS_TOO_SMALL 0xE830FE98
7946 #define ISO_PART_OFFST_TOO_SMALL 0xE830FE97
7952 #define ISO_OVWRT_FIFO_TOO_SMALL 0xE830FE96
7955 #define ISO_LIBJTE_NOT_ENABLED 0xE830FE95
7958 #define ISO_LIBJTE_START_FAILED 0xE830FE94
7961 #define ISO_LIBJTE_END_FAILED 0xE830FE93
7965 #define ISO_LIBJTE_FILE_FAILED 0xE430FE92
7968 #define ISO_BOOT_TOO_MANY_MIPS 0xE830FE91
7971 #define ISO_BOOT_FILE_MISSING 0xE430FE90
7974 #define ISO_BAD_PARTITION_NO 0xE830FE8F
7977 #define ISO_BAD_PARTITION_FILE 0xE830FE8E
7981 #define ISO_NON_MBR_SYS_AREA 0xE830FE8D
7984 #define ISO_DISPLACE_ROLLOVER 0xE830FE8C
7988 #define ISO_NAME_NEEDS_TRANSL 0xE830FE8B
7992 #define ISO_STREAM_NO_CLONE 0xE830FE8A
7996 #define ISO_XINFO_NO_CLONE 0xE830FE89
7999 #define ISO_MD5_TAG_COPIED 0xD030FE88
8002 #define ISO_RR_NAME_TOO_LONG 0xE830FE87
8005 #define ISO_RR_NAME_RESERVED 0xE830FE86
8008 #define ISO_RR_PATH_TOO_LONG 0xE830FE85
8011 #define ISO_AAIP_BAD_ATTR_NAME 0xE830FE84
8015 #define ISO_AAIP_ACL_MULT_OBJ 0xE830FE83
8019 #define ISO_SECT_SCATTERED 0xE830FE82
8022 #define ISO_BOOT_TOO_MANY_APM 0xE830FE81
8025 #define ISO_BOOT_APM_OVERLAP 0xE830FE80
8028 #define ISO_BOOT_TOO_MANY_GPT 0xE830FE7F
8031 #define ISO_BOOT_GPT_OVERLAP 0xE830FE7E
8034 #define ISO_BOOT_TOO_MANY_MBR 0xE830FE7D
8037 #define ISO_BOOT_MBR_OVERLAP 0xE830FE7C
8040 #define ISO_BOOT_MBR_COLLISION 0xE830FE7B
8044 #define ISO_BOOT_NO_EFI_ELTO 0xE830FE7A
8047 #define ISO_BOOT_HFSP_BAD_BSIZE 0xE830FE79
8050 #define ISO_BOOT_APM_GPT_BSIZE 0xE830FE78
8053 #define ISO_HFSP_NO_MANGLE 0xE830FE77
8056 #define ISO_DEAD_SYMLINK 0xE830FE76
8059 #define ISO_DEEP_SYMLINK 0xE830FE75
8062 #define ISO_BAD_ISO_FILETYPE 0xE830FE74
8065 #define ISO_NAME_NOT_UCS2 0xD030FE73
8068 #define ISO_IMPORT_COLLISION 0xD030FE72
8071 #define ISO_HPPA_PALO_INCOMPL 0xE830FE71
8074 #define ISO_HPPA_PALO_OFLOW 0xE830FE70
8077 #define ISO_HPPA_PALO_NOTREG 0xE830FE6F
8080 #define ISO_HPPA_PALO_CMDLEN 0xE830FE6E
8083 #define ISO_SYSAREA_PROBLEMS 0xD030FE6D
8086 #define ISO_INQ_SYSAREA_PROP 0xE830FE6C
8099 #define ISO_DATA_SOURCE_SORRY 0xE030FCFF
8102 #define ISO_DATA_SOURCE_MISHAP 0xE430FCFF
8105 #define ISO_DATA_SOURCE_FAILURE 0xE830FCFF
8108 #define ISO_DATA_SOURCE_FATAL 0xF030FCFF
8116 #ifdef LIBISOFS_WITHOUT_LIBBURN
8144 struct burn_source {
8174 int (*read)(
struct burn_source *,
unsigned char *buffer,
int size);
8183 int (*read_sub)(
struct burn_source *,
unsigned char *buffer,
int size);
8190 off_t (*get_size)(
struct burn_source *);
8206 int (*set_size)(
struct burn_source *source, off_t size);
8213 void (*free_data)(
struct burn_source *);
8220 struct burn_source *next;
8254 int (*read_xt)(
struct burn_source *,
unsigned char *buffer,
int size);
8260 int (*cancel)(
struct burn_source *source);