2#ifndef LIBISO_LIBISOFS_H_
3#define LIBISO_LIBISOFS_H_
95#define iso_lib_header_version_major 1
96#define iso_lib_header_version_minor 5
97#define iso_lib_header_version_micro 6
237#define ISO_NODE_IS_DIR(n) (iso_node_get_type(n) == LIBISO_DIR)
238#define ISO_NODE_IS_FILE(n) (iso_node_get_type(n) == LIBISO_FILE)
239#define ISO_NODE_IS_SYMLINK(n) (iso_node_get_type(n) == LIBISO_SYMLINK)
240#define ISO_NODE_IS_SPECIAL(n) (iso_node_get_type(n) == LIBISO_SPECIAL)
241#define ISO_NODE_IS_BOOTCAT(n) (iso_node_get_type(n) == LIBISO_BOOT)
244#define ISO_DIR(n) ((IsoDir*)(ISO_NODE_IS_DIR(n) ? n : NULL))
245#define ISO_FILE(n) ((IsoFile*)(ISO_NODE_IS_FILE(n) ? n : NULL))
246#define ISO_SYMLINK(n) ((IsoSymlink*)(ISO_NODE_IS_SYMLINK(n) ? n : NULL))
247#define ISO_SPECIAL(n) ((IsoSpecial*)(ISO_NODE_IS_SPECIAL(n) ? n : NULL))
249#define ISO_NODE(n) ((IsoNode*)n)
879 unsigned char **aa_string,
int flag);
906#ifndef Libisofs_h_as_cpluspluS
1176#ifndef Libisofs_h_as_cpluspluS
1518 uint8_t serial_number[8]);
1538 int hfsp_block_size,
int apm_block_size);
1966 char *name,
char *timestamp,
1988 int file_mode,
int uid,
int gid);
2304 int options,
int flag);
2359 time_t vol_creation_time, time_t vol_modification_time,
2360 time_t vol_expiration_time, time_t vol_effective_time,
2397 uint32_t block_offset_2k,
2398 int secs_512_per_head,
int heads_per_cyl);
2406#define iso_libjte_req_major 2
2407#define iso_libjte_req_minor 0
2408#define iso_libjte_req_micro 0
2520struct iso_interval_reader;
2543 struct iso_interval_reader **ivr,
2544 off_t *byte_count,
int flag);
2579 int *buf_fill,
int flag);
2768 uint8_t partition_type,
char *image_path,
int flag);
2813 uint8_t guid[16],
int valid);
2957 struct burn_source **burn_src);
3441 char **text,
int *type,
3442 int64_t *num_value,
void **pt_value,
3463 char **feature_text);
3656 const char *data_preparer_id);
3706 const char *copyright_file_id);
3724 const char *abstract_file_id);
3809 char **creation_time,
char **modification_time,
3810 char **expiration_time,
char **effective_time);
3859 const char *catalog_path,
3957 char **content, off_t *size);
4355 int options,
int flag);
4402 int *options,
int flag);
4410#define ISO_MAX_SYSAREA_LINE_LENGTH 4096
4418#define ISO_SYSAREA_REPORT_DOC \
4420"Report format for recognized System Area data.", \
4422"No text will be reported if no System Area was loaded or if it was", \
4423"entirely filled with 0-bytes.", \
4424"Else there will be at least these three lines:", \
4425" System area options: hex", \
4426" see libisofs.h, parameter of iso_write_opts_set_system_area().", \
4427" System area summary: word ... word", \
4428" human readable interpretation of system area options and other info", \
4429" The words are from the set:", \
4430" { MBR, CHRP, PReP, GPT, APM, MIPS-Big-Endian, MIPS-Little-Endian,", \
4431" SUN-SPARC-Disk-Label, HP-PA-PALO, DEC-Alpha, ", \
4432" protective-msdos-label, isohybrid, grub2-mbr,", \
4433" cyl-align-{auto,on,off,all}, not-recognized, }", \
4434" The acronyms indicate boot data for particular hardware/firmware.", \
4435" protective-msdos-label is an MBR conformant to specs of GPT.", \
4436" isohybrid is an MBR implementing ISOLINUX isohybrid functionality.", \
4437" grub2-mbr is an MBR with GRUB2 64 bit address patching.", \
4438" cyl-align-on indicates that the ISO image MBR partition ends at a", \
4439" cylinder boundary. cyl-align-all means that more MBR partitions", \
4440" exist and all end at a cylinder boundary.", \
4441" not-recognized tells about unrecognized non-zero system area data.", \
4442" ISO image size/512 : decimal", \
4443" size of ISO image in block units of 512 bytes.", \
4445#define ISO_SYSAREA_REPORT_DOC_MBR \
4447"If an MBR is detected, with at least one partition entry of non-zero size,", \
4448"then there may be:", \
4449" Partition offset : decimal", \
4450" if not 0 then a second ISO 9660 superblock was found to which", \
4451" MBR partition 1 or GPT partition 1 is pointing.", \
4452" MBR heads per cyl : decimal", \
4453" conversion factor between MBR C/H/S address and LBA. 0=inconsistent.", \
4454" MBR secs per head : decimal", \
4455" conversion factor between MBR C/H/S address and LBA. 0=inconsistent.", \
4456" MBR partition table: N Status Type Start Blocks", \
4457" headline for MBR partition table.", \
4458" MBR partition : X hex hex decimal decimal", \
4459" gives partition number, status byte, type byte, start block,", \
4460" and number of blocks. 512 bytes per block.", \
4461" MBR partition path : X path", \
4462" the path of a file in the ISO image which begins at the partition", \
4463" start block of partition X.", \
4464" PReP boot partition: decimal decimal", \
4465" gives start block and size of a PReP boot partition in ISO 9660", \
4466" block units of 2048 bytes.", \
4468#define ISO_SYSAREA_REPORT_DOC_GPT1 \
4470"GUID Partition Table can coexist with MBR:", \
4472" headline for GPT partition table. The fields are too wide for a", \
4473" neat table. So they are listed with a partition number and a text.", \
4474" GPT CRC should be : <hex> to match first 92 GPT header block bytes", \
4475" GPT CRC found : <hex> matches all 512 bytes of GPT header block", \
4476" libisofs-1.2.4 to 1.2.8 had a bug with the GPT header CRC. So", \
4477" libisofs is willing to recognize GPT with the buggy CRC. These", \
4478" two lines inform that most partition editors will not accept it.", \
4479" GPT array CRC wrong: should be <hex>, found <hex>", \
4480" GPT entry arrays are accepted even if their CRC does not match.", \
4481" In this case, both CRCs are reported by this line.", \
4482" GPT backup problems: text", \
4483" reports about inconsistencies between main GPT and backup GPT.", \
4484" The statements are comma separated:", \
4485" Implausible header LBA <decimal>", \
4486" Cannot read header block at 2k LBA <decimal>", \
4487" Not a GPT 1.0 header of 92 bytes for 128 bytes per entry", \
4488" Head CRC <hex> wrong. Should be <hex>", \
4489" Head CRC <hex> wrong. Should be <hex>. Matches all 512 block bytes", \
4490" Disk GUID differs (<hex_digits>)", \
4491" Cannot read array block at 2k LBA <decimal>", \
4492" Array CRC <hex> wrong. Should be <hex>", \
4493" Entries differ for partitions <decimal> [... <decimal>]", \
4494" GPT disk GUID : hex_digits", \
4495" 32 hex digits giving the byte string of the disk's GUID", \
4496" GPT entry array : decimal decimal word", \
4497" start block of partition entry array and number of entries. 512 bytes", \
4498" per block. The word may be \"separated\" if partitions are disjoint,", \
4499" \"overlapping\" if they are not. In future there may be \"nested\"", \
4500" as special case where all overlapping partitions are superset and", \
4501" subset, and \"covering\" as special case of disjoint partitions", \
4502" covering the whole GPT block range for partitions.", \
4503" GPT lba range : decimal decimal decimal", \
4504" addresses of first payload block, last payload block, and of the", \
4505" GPT backup header block. 512 bytes per block." \
4507#define ISO_SYSAREA_REPORT_DOC_GPT2 \
4509" GPT partition name : X hex_digits", \
4510" up to 144 hex digits giving the UTF-16LE name byte string of", \
4511" partition X. Trailing 16 bit 0-characters are omitted.", \
4512" GPT partname local : X text", \
4513" the name of partition X converted to the local character set.", \
4514" This line may be missing if the name cannot be converted, or is", \
4516" GPT partition GUID : X hex_digits", \
4517" 32 hex digits giving the byte string of the GUID of partition X.", \
4518" GPT type GUID : X hex_digits", \
4519" 32 hex digits giving the byte string of the type GUID of partition X.", \
4520" GPT partition flags: X hex", \
4521" 64 flag bits of partition X in hex representation.", \
4522" Known bit meanings are:", \
4523" bit0 = \"System Partition\" Do not alter.", \
4524" bit2 = Legacy BIOS bootable (MBR partition type 0x80)", \
4525" bit60= read-only", \
4526" GPT start and size : X decimal decimal", \
4527" start block and number of blocks of partition X. 512 bytes per block.", \
4528" GPT partition path : X path", \
4529" the path of a file in the ISO image which begins at the partition", \
4530" start block of partition X.", \
4532#define ISO_SYSAREA_REPORT_DOC_APM \
4534"Apple partition map can coexist with MBR and GPT:", \
4536" headline for human readers.", \
4537" APM block size : decimal", \
4538" block size of Apple Partition Map. 512 or 2048. This applies to", \
4539" start address and size of all partitions in the APM.", \
4540" APM gap fillers : decimal", \
4541" tells the number of partitions with name \"Gap[0-9[0-9]]\" and type", \
4542" \"ISO9660_data\".", \
4543" APM partition name : X text", \
4544" the name of partition X. Up to 32 characters.", \
4545" APM partition type : X text", \
4546" the type string of partition X. Up to 32 characters.", \
4547" APM start and size : X decimal decimal", \
4548" start block and number of blocks of partition X.", \
4549" APM partition path : X path", \
4550" the path of a file in the ISO image which begins at the partition", \
4551" start block of partition X.", \
4553#define ISO_SYSAREA_REPORT_DOC_MIPS \
4555"If a MIPS Big Endian Volume Header is detected, there may be:", \
4556" MIPS-BE volume dir : N Name Block Bytes", \
4557" headline for human readers.", \
4558" MIPS-BE boot entry : X upto8chr decimal decimal", \
4559" tells name, 512-byte block address, and byte count of boot entry X.", \
4560" MIPS-BE boot path : X path", \
4561" tells the path to the boot image file in the ISO image which belongs", \
4562" to the block address given by boot entry X.", \
4564"If a DEC Boot Block for MIPS Little Endian is detected, there may be:", \
4565" MIPS-LE boot map : LoadAddr ExecAddr SegmentSize SegmentStart", \
4566" headline for human readers.", \
4567" MIPS-LE boot params: decimal decimal decimal decimal", \
4568" tells four numbers which are originally derived from the ELF header", \
4569" of the boot file. The first two are counted in bytes, the other two", \
4570" are counted in blocks of 512 bytes.", \
4571" MIPS-LE boot path : path", \
4572" tells the path to the boot file in the ISO image which belongs to the", \
4573" address given by SegmentStart.", \
4574" MIPS-LE elf offset : decimal", \
4575" tells the relative 512-byte block offset inside the boot file:", \
4576" SegmentStart - FileStartBlock", \
4578#define ISO_SYSAREA_REPORT_DOC_SUN \
4580"If a SUN SPARC Disk Label is present:", \
4581" SUN SPARC disklabel: text", \
4582" tells the disk label text.", \
4583" SUN SPARC secs/head: decimal", \
4584" tells the number of sectors per head.", \
4585" SUN SPARC heads/cyl: decimal", \
4586" tells the number of heads per cylinder.", \
4587" SUN SPARC partmap : N IdTag Perms StartCyl NumBlock", \
4588" headline for human readers.", \
4589" SUN SPARC partition: X hex hex decimal decimal", \
4590" gives partition number, type word, permission word, start cylinder,", \
4591" and number of of blocks. 512 bytes per block. Type word may be: ", \
4592" 0=unused, 2=root partition with boot, 4=user partition.", \
4593" Permission word is 0x10 = read-only.", \
4594" SPARC GRUB2 core : decimal decimal", \
4595" tells byte address and byte count of the GRUB2 SPARC core file.", \
4596" SPARC GRUB2 path : path", \
4597" tells the path to the data file in the ISO image which belongs to the", \
4598" address given by core.", \
4600#define ISO_SYSAREA_REPORT_DOC_HPPA \
4602"If a HP-PA PALO boot sector version 4 or 5 is present:", \
4603" PALO header version: decimal", \
4604" tells the PALO header version: 4 or 5.", \
4605" HP-PA cmdline : text", \
4606" tells the command line for the kernels.", \
4607" HP-PA boot files : ByteAddr ByteSize Path", \
4608" headline for human readers.", \
4609" HP-PA 32-bit kernel: decimal decimal path", \
4610" tells start byte, byte count, and file path of the 32-bit kernel.", \
4611" HP-PA 64-bit kernel: decimal decimal path", \
4612" tells the same for the 64-bit kernel.", \
4613" HP-PA ramdisk : decimal decimal path", \
4614" tells the same for the ramdisk file.", \
4615" HP-PA bootloader : decimal decimal path", \
4616" tells the same for the bootloader file.", \
4618#define ISO_SYSAREA_REPORT_DOC_ALPHA \
4619"If a DEC Alpha SRM boot sector is present:", \
4620" DEC Alpha ldr size : decimal", \
4621" tells the number of 512-byte blocks in DEC Alpha Secondary Bootstrap", \
4623" DEC Alpha ldr adr : decimal", \
4624" tells the start of the loader file in units of 512-byte blocks.", \
4625" DEC Alpha ldr path : path", \
4626" tells the path of a file in the ISO image which starts at the loader", \
4665 char ***reply,
int *line_count,
int flag);
4673#define ISO_ELTORITO_REPORT_DOC \
4674"Report format for recognized El Torito boot information.", \
4676"No text will be reported if no El Torito information was found.", \
4677"Else there will be at least these three lines", \
4678" El Torito catalog : decimal decimal", \
4679" tells the block address and number of 2048-blocks of the boot catalog.", \
4680" El Torito images : N Pltf B Emul Ld_seg Hdpt Ldsiz LBA", \
4681" is the headline of the boot image list.", \
4682" El Torito boot img : X word char word hex hex decimal decimal", \
4683" tells about boot image number X:", \
4684" - Platform Id: \"BIOS\", \"PPC\", \"Mac\", \"UEFI\" or a hex number.", \
4685" - Bootability: either \"y\" or \"n\".", \
4686" - Emulation: \"none\", \"fd1.2\", \"fd1.4\", \"fd2.8\", \"hd\"", \
4687" for no emulation, three floppy MB sizes, hard disk.", \
4688" - Load Segment: start offset in boot image. 0x0000 means 0x07c0.", \
4689" - Hard disk emulation partition type: MBR partition type code.", \
4690" - Load size: number of 512-blocks to load with emulation mode \"none\".", \
4691" - LBA: start block number in ISO filesystem (2048-block).", \
4693"The following lines appear conditionally:", \
4694" El Torito cat path : iso_rr_path", \
4695" tells the path to the data file in the ISO image which belongs to", \
4696" the block address where the boot catalog starts.", \
4697" (This line is not reported if no path points to that block.)", \
4698" El Torito img path : X iso_rr_path", \
4699" tells the path to the data file in the ISO image which belongs to", \
4700" the block address given by LBA of boot image X.", \
4701" (This line is not reported if no path points to that block.)", \
4702" El Torito img opts : X word ... word", \
4703" tells the presence of extra features:", \
4704" \"boot-info-table\" image got boot info table patching.", \
4705" \"isohybrid-suitable\" image is suitable for ISOLINUX isohybrid MBR.", \
4706" \"grub2-boot-info\" image got GRUB2 boot info patching.", \
4707" (This line is not reported if no such options were detected.)", \
4708" El Torito id string: X hex_digits", \
4709" tells the id string of the catalog section which hosts boot image X.", \
4710" (This line is not reported if the id string is all zero.)", \
4711" El Torito sel crit : X hex_digits", \
4712" tells the selection criterion of boot image X.", \
4713" (This line is not reported if the criterion is all zero.)", \
4714" El Torito img blks : X decimal", \
4715" gives an upper limit of the number of 2048-blocks in the boot image", \
4716" if it is not accessible via a path in the ISO directory tree.", \
4717" The boot image is supposed to end before the start block of any", \
4718" other entity of the ISO filesystem.", \
4719" (This line is not reported if no limiting entity is found.)", \
4720" El Torito hdsiz/512: X decimal", \
4721" gives with a boot image of emulation type \"hd\" the lowest block", \
4722" number which is above any partition end in the boot image's MBR", \
4723" partition table. This can be considered the claimed size of the", \
4724" emulated hard disk given in blocks of 512 bytes.", \
4725" (This line is not reported if no partition is found in the image.)", \
4758 char ***reply,
int *line_count,
int flag);
4906 char *kernel_32,
char *kernel_64,
char *ramdisk,
4930 char **kernel_32,
char **kernel_64,
char **ramdisk);
5451 const char *name,
IsoNode **node,
int flag);
6152 const char *name,
const char *dest,
6229 const char *name, mode_t mode,
6495 const char *path,
IsoNode **node);
6538 const char *name,
const char *path,
6539 off_t offset, off_t size,
6596 char *new_name,
IsoNode **new_node,
int flag);
6755 int *depth,
int flag);
6762#define LIBISO_MAX_LINK_DEPTH 100
6816 size_t *free_bytes);
6818#define ISO_MSGS_MESSAGE_LEN 4096
6864 char msg_text[],
char severity[]);
6891 char severity[],
int origin);
7258 unsigned char **aa_string,
int flag);
7602 char **access_text,
char **default_text,
int flag);
7641 char *access_text,
char *default_text,
int flag);
7698 char ***names,
size_t **value_lengths,
char ***values,
int flag);
7720 size_t *value_length,
char **value,
int flag);
7766 size_t *value_lengths,
char **values,
int flag);
7913 size_t **value_lengths,
char ***values,
int flag);
7955 size_t *value_lengths,
char **values,
7956 int *errnos,
int flag);
7964 size_t *value_lengths,
char **values,
int flag);
7969#define Libisofs_default_path_maX 4096
8203 uint8_t zisofs_algo[2], uint8_t* algo_num,
8204 int *block_size_log2,
int flag);
8516 uint32_t *end_lba,
char md5[16],
int flag);
8617 uint32_t *range_start, uint32_t *range_size,
8618 uint32_t *next_tag,
char md5[16],
int flag);
8837 int *bless_max,
int flag);
8885 char **result,
size_t *result_len,
int flag);
8892#define ISO_SUCCESS 1
8901#define ISO_CANCELED 0xE830FFFF
8904#define ISO_FATAL_ERROR 0xF030FFFE
8907#define ISO_ERROR 0xE830FFFD
8910#define ISO_ASSERT_FAILURE 0xF030FFFC
8915#define ISO_NULL_POINTER 0xE830FFFB
8918#define ISO_OUT_OF_MEM 0xF030FFFA
8921#define ISO_INTERRUPTED 0xF030FFF9
8924#define ISO_WRONG_ARG_VALUE 0xE830FFF8
8927#define ISO_THREAD_ERROR 0xF030FFF7
8930#define ISO_WRITE_ERROR 0xE830FFF6
8933#define ISO_BUF_READ_ERROR 0xE830FFF5
8936#define ISO_NODE_ALREADY_ADDED 0xE830FFC0
8939#define ISO_NODE_NAME_NOT_UNIQUE 0xE830FFBF
8942#define ISO_NODE_NOT_ADDED_TO_DIR 0xE830FFBE
8945#define ISO_NODE_DOESNT_EXIST 0xE830FFBD
8950#define ISO_IMAGE_ALREADY_BOOTABLE 0xE830FFBC
8953#define ISO_BOOT_IMAGE_NOT_VALID 0xE830FFBB
8956#define ISO_BOOT_IMAGE_OVERFLOW 0xE830FFBA
8959#define ISO_BOOT_NO_CATALOG 0xE830FFB9
8966#define ISO_FILE_ERROR 0xE830FF80
8969#define ISO_FILE_ALREADY_OPENED 0xE830FF7F
8972#define ISO_FILE_ALREADY_OPENNED 0xE830FF7F
8975#define ISO_FILE_ACCESS_DENIED 0xE830FF7E
8978#define ISO_FILE_BAD_PATH 0xE830FF7D
8981#define ISO_FILE_DOESNT_EXIST 0xE830FF7C
8984#define ISO_FILE_NOT_OPENED 0xE830FF7B
8987#define ISO_FILE_NOT_OPENNED ISO_FILE_NOT_OPENED
8990#define ISO_FILE_IS_DIR 0xE830FF7A
8993#define ISO_FILE_READ_ERROR 0xE830FF79
8996#define ISO_FILE_IS_NOT_DIR 0xE830FF78
8999#define ISO_FILE_IS_NOT_SYMLINK 0xE830FF77
9002#define ISO_FILE_SEEK_ERROR 0xE830FF76
9005#define ISO_FILE_IGNORED 0xD020FF75
9008#define ISO_FILE_TOO_BIG 0xE830FF74
9011#define ISO_FILE_CANT_WRITE 0xE430FF73
9014#define ISO_FILENAME_WRONG_CHARSET 0xD020FF72
9016#define ISO_FILENAME_WRONG_CHARSET_OLD 0xC020FF72
9019#define ISO_FILE_CANT_ADD 0xE030FF71
9025#define ISO_FILE_IMGPATH_WRONG 0xD020FF70
9031#define ISO_FILE_OFFSET_TOO_BIG 0xE830FF6A
9035#define ISO_CHARSET_CONV_ERROR 0xE830FF00
9041#define ISO_MANGLE_TOO_MUCH_FILES 0xE830FEFF
9049#define ISO_WRONG_PVD 0xE830FEC0
9052#define ISO_WRONG_RR 0xE030FEBF
9055#define ISO_UNSUPPORTED_RR 0xE030FEBE
9058#define ISO_WRONG_ECMA119 0xE830FEBD
9061#define ISO_UNSUPPORTED_ECMA119 0xE830FEBC
9064#define ISO_WRONG_EL_TORITO 0xD030FEBB
9067#define ISO_UNSUPPORTED_EL_TORITO 0xD030FEBA
9070#define ISO_ISOLINUX_CANT_PATCH 0xE030FEB9
9073#define ISO_UNSUPPORTED_SUSP 0xE030FEB8
9076#define ISO_WRONG_RR_WARN 0xD030FEB7
9079#define ISO_SUSP_UNHANDLED 0xC020FEB6
9082#define ISO_SUSP_MULTIPLE_ER 0xD030FEB5
9085#define ISO_UNSUPPORTED_VD 0xC020FEB4
9088#define ISO_EL_TORITO_WARN 0xD030FEB3
9091#define ISO_IMAGE_WRITE_CANCELED 0xE430FEB2
9094#define ISO_EL_TORITO_HIDDEN 0xD030FEB1
9099#define ISO_AAIP_IGNORED 0xB030FEB0
9102#define ISO_AAIP_BAD_ACL 0xE830FEAF
9105#define ISO_AAIP_BAD_ACL_TEXT 0xE830FEAE
9109#define ISO_AAIP_NOT_ENABLED 0xE830FEAD
9112#define ISO_AAIP_BAD_AASTRING 0xE830FEAC
9115#define ISO_AAIP_NO_GET_LOCAL 0xE830FEAB
9117#define ISO_AAIP_NO_GET_LOCAL_S 0xE030FEAB
9120#define ISO_AAIP_NO_SET_LOCAL 0xE830FEAA
9122#define ISO_AAIP_NO_SET_LOCAL_S 0xE030FEAA
9126#define ISO_AAIP_NON_USER_NAME 0xE830FEA9
9130#define ISO_EXTF_TOO_OFTEN 0xE830FEA8
9133#define ISO_ZLIB_NOT_ENABLED 0xE830FEA7
9136#define ISO_ZISOFS_TOO_LARGE 0xE830FEA6
9139#define ISO_FILTER_WRONG_INPUT 0xE830FEA5
9142#define ISO_ZLIB_COMPR_ERR 0xE830FEA4
9145#define ISO_ZISOFS_WRONG_INPUT 0xE830FEA3
9149#define ISO_ZISOFS_PARAM_LOCK 0xE830FEA2
9152#define ISO_ZLIB_EARLY_EOF 0xE830FEA1
9158#define ISO_MD5_AREA_CORRUPTED 0xD030FEA0
9165#define ISO_MD5_TAG_MISMATCH 0xE830FE9F
9172#define ISO_SB_TREE_CORRUPTED 0xE830FE9E
9178#define ISO_MD5_TAG_UNEXPECTED 0xD030FE9D
9184#define ISO_MD5_TAG_MISPLACED 0xD030FE9C
9191#define ISO_MD5_TAG_OTHER_RANGE 0xD030FE9B
9198#define ISO_MD5_STREAM_CHANGE 0xE430FE9A
9205#define ISO_SCDBACKUP_TAG_NOT_0 0xD030FE99
9213#define ISO_OVWRT_MS_TOO_SMALL 0xE830FE98
9220#define ISO_PART_OFFST_TOO_SMALL 0xE830FE97
9226#define ISO_OVWRT_FIFO_TOO_SMALL 0xE830FE96
9229#define ISO_LIBJTE_NOT_ENABLED 0xE830FE95
9232#define ISO_LIBJTE_START_FAILED 0xE830FE94
9235#define ISO_LIBJTE_END_FAILED 0xE830FE93
9239#define ISO_LIBJTE_FILE_FAILED 0xE430FE92
9242#define ISO_BOOT_TOO_MANY_MIPS 0xE830FE91
9245#define ISO_BOOT_FILE_MISSING 0xE430FE90
9248#define ISO_BAD_PARTITION_NO 0xE830FE8F
9251#define ISO_BAD_PARTITION_FILE 0xE830FE8E
9255#define ISO_NON_MBR_SYS_AREA 0xE830FE8D
9258#define ISO_DISPLACE_ROLLOVER 0xE830FE8C
9262#define ISO_NAME_NEEDS_TRANSL 0xE830FE8B
9266#define ISO_STREAM_NO_CLONE 0xE830FE8A
9270#define ISO_XINFO_NO_CLONE 0xE830FE89
9273#define ISO_MD5_TAG_COPIED 0xD030FE88
9276#define ISO_RR_NAME_TOO_LONG 0xE830FE87
9279#define ISO_RR_NAME_RESERVED 0xE830FE86
9282#define ISO_RR_PATH_TOO_LONG 0xE830FE85
9285#define ISO_AAIP_BAD_ATTR_NAME 0xE830FE84
9289#define ISO_AAIP_ACL_MULT_OBJ 0xE830FE83
9293#define ISO_SECT_SCATTERED 0xE830FE82
9296#define ISO_BOOT_TOO_MANY_APM 0xE830FE81
9299#define ISO_BOOT_APM_OVERLAP 0xE830FE80
9302#define ISO_BOOT_TOO_MANY_GPT 0xE830FE7F
9305#define ISO_BOOT_GPT_OVERLAP 0xE830FE7E
9308#define ISO_BOOT_TOO_MANY_MBR 0xE830FE7D
9311#define ISO_BOOT_MBR_OVERLAP 0xE830FE7C
9314#define ISO_BOOT_MBR_COLLISION 0xE830FE7B
9318#define ISO_BOOT_NO_EFI_ELTO 0xE830FE7A
9321#define ISO_BOOT_HFSP_BAD_BSIZE 0xE830FE79
9324#define ISO_BOOT_APM_GPT_BSIZE 0xE830FE78
9327#define ISO_HFSP_NO_MANGLE 0xE830FE77
9330#define ISO_DEAD_SYMLINK 0xE830FE76
9333#define ISO_DEEP_SYMLINK 0xE830FE75
9336#define ISO_BAD_ISO_FILETYPE 0xE830FE74
9339#define ISO_NAME_NOT_UCS2 0xD030FE73
9342#define ISO_IMPORT_COLLISION 0xD030FE72
9345#define ISO_HPPA_PALO_INCOMPL 0xE830FE71
9348#define ISO_HPPA_PALO_OFLOW 0xE830FE70
9351#define ISO_HPPA_PALO_NOTREG 0xE830FE6F
9354#define ISO_HPPA_PALO_CMDLEN 0xE830FE6E
9357#define ISO_SYSAREA_PROBLEMS 0xD030FE6D
9360#define ISO_INQ_SYSAREA_PROP 0xE830FE6C
9363#define ISO_ALPHA_BOOT_NOTREG 0xE830FE6B
9366#define ISO_NO_KEPT_DATA_SRC 0xD030FE6A
9369#define ISO_MALFORMED_READ_INTVL 0xE830FE69
9373#define ISO_INTVL_READ_PROBLEM 0xD030FE68
9377#define ISO_NOT_REPRODUCIBLE 0xB030FE67
9381#define ISO_PATCH_FILTERED_BOOT 0xE830FE66
9385#define ISO_PATCH_OVERSIZED_BOOT 0xE830FE65
9388#define ISO_RR_NAME_TRUNCATED 0xD030FE64
9392#define ISO_TRUNCATE_ISOFSNT 0xB030FE63
9395#define ISO_GENERAL_NOTE 0xB030FE62
9398#define ISO_BAD_FSRC_FILETYPE 0xE030FE61
9402#define ISO_GPT_NO_VOL_UUID 0xE830FE60
9406#define ISO_BAD_GPT_GUID_MODE 0xE830FE5F
9409#define ISO_NO_ROOT_DIR 0xF030FE5E
9413#define ISO_SUSP_WRONG_CE_SIZE 0xE830FE5D
9417#define ISO_MULTI_OVER_IMPORTED 0xE830FE5C
9420#define ISO_ELTO_EFI_HIDDEN 0xB030FE5B
9423#define ISO_HFSPLUS_TOO_MANY_FILES 0xE830FE5A
9426#define ISO_ZISOFS_TOO_MANY_PTR 0xE830FE59
9429#define ISO_ZISOFS_BPT_UNDERRUN 0xD020FE58
9432#define ISO_ZISOFS_UNKNOWN_SIZE 0xE830FE57
9435#define ISO_UNDEF_READ_FEATURE 0xE030FE56
9438#define ISO_TOO_MANY_CE 0xE830FE55
9442#define ISO_TOO_MANY_CE_FOR_LINUX 0xD030FE54
9446#define ISO_CE_REMOVING_ATTR 0xD030FE53
9459#define ISO_DATA_SOURCE_SORRY 0xE030FCFF
9462#define ISO_DATA_SOURCE_MISHAP 0xE430FCFF
9465#define ISO_DATA_SOURCE_FAILURE 0xE830FCFF
9468#define ISO_DATA_SOURCE_FATAL 0xF030FCFF
9476#ifdef LIBISOFS_WITHOUT_LIBBURN
9534 int (*read)(
struct burn_source *,
unsigned char *buffer,
int size);
9543 int (*read_sub)(
struct burn_source *,
unsigned char *buffer,
int size);
9550 off_t (*get_size)(
struct burn_source *);
9566 int (*set_size)(
struct burn_source *source, off_t size);
9573 void (*free_data)(
struct burn_source *);
9580 struct burn_source *next;
9614 int (*read_xt)(
struct burn_source *,
unsigned char *buffer,
int size);
9620 int (*cancel)(
struct burn_source *source);
int iso_image_get_all_boot_imgs(IsoImage *image, int *num_boots, ElToritoBootImage ***boots, IsoFile ***bootnodes, int flag)
Get all El-Torito boot images of an ISO image.
off_t iso_file_source_lseek(IsoFileSource *src, off_t offset, int flag)
Repositions the offset of the given IsoFileSource (must be opened) to the given offset according to t...
void iso_node_set_permissions(IsoNode *node, mode_t mode)
Set the permissions for the node.
int iso_write_opts_set_efi_bootp(IsoWriteOpts *opts, char *image_path, int flag)
Copy a data file from the local filesystem into the emerging ISO image.
int iso_write_opts_set_hfsplus(IsoWriteOpts *opts, int enable)
Whether to add a HFS+ filesystem to the image which points to the same file content as the other dire...
int iso_image_update_sizes(IsoImage *image)
Update the sizes of all files added to image.
int iso_file_get_md5(IsoImage *image, IsoFile *file, char md5[16], int flag)
Eventually obtain the recorded MD5 checksum of a data file from the loaded ISO image.
int iso_file_get_old_image_lba(IsoFile *file, uint32_t *lba, int flag)
Get the block lba of a file node, if it was imported from an old image.
const char * iso_image_get_volume_id(const IsoImage *image)
Get the volume identifier.
int iso_image_report_el_torito(IsoImage *image, char ***reply, int *line_count, int flag)
Obtain an array of texts describing the detected properties of the eventually loaded El Torito boot i...
struct Iso_Symlink IsoSymlink
A symbolic link in the iso tree.
void iso_tree_set_follow_symlinks(IsoImage *image, int follow)
Set whether to follow or not symbolic links when added a file from a source to IsoImage.
int iso_local_attr_support(int flag)
libisofs has an internal system dependent adapter to ACL and xattr operations.
IsoFindCondition * iso_new_find_conditions_mode(mode_t mask)
Create a new condition that checks the node mode against a mode mask.
int iso_image_set_sparc_core(IsoImage *img, IsoFile *sparc_core, int flag)
Designate a data file in the ISO image of which the position and size shall be written after the SUN ...
int iso_sev_to_text(int severity_number, char **severity_name)
Convert a severity number into a severity name.
int iso_local_set_attrs(char *disk_path, size_t num_attrs, char **names, size_t *value_lengths, char **values, int flag)
Older version of iso_local_set_attrs_errno() without the errnos array.
void iso_tree_set_ignore_hidden(IsoImage *image, int skip)
Set whether to skip or not disk files with names beginning by '.
int iso_write_opts_set_default_uid(IsoWriteOpts *opts, uid_t uid)
Set the uid to use when you set the replace_uid to 2.
IsoFilesystem * iso_file_source_get_filesystem(IsoFileSource *src)
Get the filesystem for this source.
int iso_read_opts_auto_input_charset(IsoReadOpts *opts, int mode)
Enable or disable methods to automatically choose an input charset.
int iso_interval_reader_new(IsoImage *img, char *path, struct iso_interval_reader **ivr, off_t *byte_count, int flag)
Create an interval reader object.
int iso_write_opts_set_joliet_utf16(IsoWriteOpts *opts, int allow)
Use character set UTF-16BE with Joliet, which is a superset of the actually prescribed character set ...
int iso_interval_reader_read(struct iso_interval_reader *ivr, uint8_t *buf, int *buf_fill, int flag)
Read the next block of 2048 bytes from an interval reader object.
int iso_image_add_mips_boot_file(IsoImage *image, char *path, int flag)
Add a MIPS boot file path to the image.
void iso_lib_version(int *major, int *minor, int *micro)
Get version of the libisofs library at runtime.
int iso_node_lookup_attr(IsoNode *node, char *name, size_t *value_length, char **value, int flag)
Obtain the value of a particular xattr name.
int iso_image_path_to_node(IsoImage *image, const char *path, IsoNode **node)
Locate a node by its absolute path in the image.
struct iso_read_image_features IsoReadImageFeatures
Return information for image.
int iso_image_set_boot_catalog_hidden(IsoImage *image, int hide_attrs)
Hides the boot catalog file from directory trees.
int iso_assess_written_features(IsoDataSource *src, IsoReadOpts *opts, IsoReadImageFeatures **features, IsoWriteOpts **write_opts)
Assess features of the importable directory trees of src and an estimation of the write options which...
IsoFindCondition * iso_new_find_conditions_or(IsoFindCondition *a, IsoFindCondition *b)
Create a new condition that check if at least one the two given conditions is valid.
int iso_image_add_new_symlink(IsoImage *image, IsoDir *parent, const char *name, const char *dest, IsoSymlink **link)
Add a new symbolic link to the directory tree.
int iso_image_add_boot_image(IsoImage *image, const char *image_path, enum eltorito_boot_media_type type, int flag, ElToritoBootImage **boot)
Add a further boot image to the set of El-Torito bootable images.
int iso_write_opts_set_fifo_size(IsoWriteOpts *opts, size_t fifo_size)
Set the size, in number of blocks, of the ring buffer used between the writer thread and the burn_sou...
enum iso_replace_mode iso_tree_get_replace_mode(IsoImage *image)
Get current setting for replace_mode.
int iso_md5_clone(void *old_md5_context, void **new_md5_context)
Create a MD5 computation context as clone of an existing one.
int iso_conv_name_chars(IsoWriteOpts *opts, char *name, size_t name_len, char **result, size_t *result_len, int flag)
Convert the characters in name from local charset to another charset or convert name to the represent...
int iso_read_opts_set_no_rockridge(IsoReadOpts *opts, int norr)
Do not read Rock Ridge extensions.
int iso_write_opts_set_disc_label(IsoWriteOpts *opts, char *label)
Set a name for the system area.
int iso_file_source_lstat(IsoFileSource *src, struct stat *info)
Get information about the file.
int el_torito_set_boot_platform_id(ElToritoBootImage *bootimg, uint8_t id)
Sets the platform ID of the boot image.
int iso_write_opts_set_no_force_dots(IsoWriteOpts *opts, int no)
ISO-9660 forces filenames to have a ".", that separates file name from extension.
int iso_image_set_boot_image(IsoImage *image, const char *image_path, enum eltorito_boot_media_type type, const char *catalog_path, ElToritoBootImage **boot)
Create a new set of El-Torito bootable images by adding a boot catalog and the default boot image.
const char * iso_image_fs_get_application_id(IsoImageFilesystem *fs)
Get the application identifier for an existent image.
int iso_node_zf_by_magic(IsoNode *node, int flag)
Check for the given node or for its subtree whether the data file content effectively bears zisofs fi...
int iso_write_opts_set_allow_dir_id_ext(IsoWriteOpts *opts, int allow)
Convert directory names for ECMA-119 similar to other file names, but do not force a dot or add a ver...
int iso_image_get_truncate_mode(IsoImage *img, int *mode, int *length)
Inquire the current setting of iso_image_set_truncate_mode().
int iso_write_opts_set_part_offset(IsoWriteOpts *opts, uint32_t block_offset_2k, int secs_512_per_head, int heads_per_cyl)
int iso_file_source_get_aa_string(IsoFileSource *src, unsigned char **aa_string, int flag)
Get the AAIP string with encoded ACL and xattr.
int iso_md5_end(void **md5_context, char result[16])
Obtain the MD5 checksum from a MD5 computation context and dispose this context.
IsoFindCondition * iso_new_find_conditions_not(IsoFindCondition *negate)
Create a new condition that check if the given conditions is false.
int aaip_xinfo_cloner(void *old_data, void **new_data, int flag)
The iso_node_xinfo_cloner function which gets associated to aaip_xinfo_func by iso_init() or iso_init...
int el_torito_get_boot_platform_id(ElToritoBootImage *bootimg)
Get the platform ID value.
int iso_node_get_attrs(IsoNode *node, size_t *num_attrs, char ***names, size_t **value_lengths, char ***values, int flag)
Get the list of xattr which is associated with the node.
int iso_image_add_new_dir(IsoImage *image, IsoDir *parent, const char *name, IsoDir **dir)
Add a new directory to the iso tree.
void iso_node_unref(IsoNode *node)
Decrements the reference counting of the given node.
eltorito_boot_media_type
El-Torito bootable image type.
@ ELTORITO_HARD_DISC_EMUL
int iso_local_get_perms_wo_acl(char *disk_path, mode_t *st_mode, int flag)
Obtain permissions of a file in the local filesystem which shall reflect ACL entry "group::" in S_IRW...
int iso_write_opts_set_always_gmt(IsoWriteOpts *opts, int gmt)
Whether to always record timestamps in GMT.
int iso_file_source_read(IsoFileSource *src, void *buf, size_t count)
Attempts to read up to count bytes from the given source into the buffer starting at buf.
int iso_write_opts_new(IsoWriteOpts **opts, int profile)
Creates an IsoWriteOpts for writing an image.
struct Iso_File IsoFile
A regular file in the iso tree.
int iso_set_msgs_severities(char *queue_severity, char *print_severity, char *print_id)
Control queueing and stderr printing of messages from libisofs.
void iso_image_set_app_use(IsoImage *image, const char *app_use_data, int count)
Fill Application Use field of the Primary Volume Descriptor.
int iso_write_opts_set_appended_as_apm(IsoWriteOpts *opts, int apm)
Control whether partitions created by iso_write_opts_set_partition_img() are to be represented in App...
int iso_tree_get_ignore_special(IsoImage *image)
Get current setting for ignore_special.
IsoFindCondition * iso_new_find_conditions_ctime(time_t time, enum iso_find_comparisons comparison)
Create a new condition that checks the time of last status change.
int iso_zisofs_set_params(struct iso_zisofs_ctrl *params, int flag)
Set the global parameters for zisofs filtering.
int iso_write_opts_set_joliet(IsoWriteOpts *opts, int enable)
Whether to add the non-standard Joliet extension to the image.
int iso_write_opts_set_default_file_mode(IsoWriteOpts *opts, mode_t file_mode)
Set the mode to use on files when you set the replace_mode of files to 2.
const char * iso_node_get_name(const IsoNode *node)
Get the name of a node.
int iso_image_tree_clone(IsoImage *image, IsoNode *node, IsoDir *new_parent, char *new_name, IsoNode **new_node, int flag)
Create a copy of the given node under a different path.
int iso_node_set_attrs(IsoNode *node, size_t num_attrs, char **names, size_t *value_lengths, char **values, int flag)
Set the list of xattr which is associated with the node.
int iso_write_opts_set_allow_deep_paths(IsoWriteOpts *opts, int allow)
Allow ISO-9660 directory hierarchy to be deeper than 8 levels.
int iso_error_get_severity(int e)
Get the severity of a given error code.
void * iso_get_messenger()
Return the messenger object handle used by libisofs.
int iso_read_opts_set_no_md5(IsoReadOpts *opts, int no_md5)
Control reading of an array of MD5 checksums which is eventually stored at the end of a session.
int iso_write_opts_set_replace_mode(IsoWriteOpts *opts, int dir_mode, int file_mode, int uid, int gid)
Whether to set default values for files and directory permissions, gid and uid.
void iso_image_unref(IsoImage *image)
Decrements the reference counting of the given image.
int iso_write_opts_set_output_charset(IsoWriteOpts *opts, const char *charset)
Set the charset to use for the RR names of the files that will be created on the image.
int iso_file_source_readdir(IsoFileSource *src, IsoFileSource **child)
Read a directory.
IsoNodeType
The type of an IsoNode.
int iso_write_opts_set_dir_rec_mtime(IsoWriteOpts *opts, int allow)
Store as ECMA-119 Directory Record timestamp the mtime of the source node rather than the image creat...
void iso_data_source_unref(IsoDataSource *src)
Decrements the reference counting of the given IsoDataSource, freeing it if refcount reach 0.
int iso_tree_add_new_special(IsoDir *parent, const char *name, mode_t mode, dev_t dev, IsoSpecial **special)
int iso_write_opts_set_iso_level(IsoWriteOpts *opts, int level)
Set the ISO-9960 level to write at.
int el_torito_get_boot_media_type(ElToritoBootImage *bootimg, enum eltorito_boot_media_type *media_type)
Get the boot media type as of parameter "type" of iso_image_set_boot_image() or iso_image_add_boot_im...
struct iso_read_opts IsoReadOpts
Options for image reading or import.
IsoFindCondition * iso_new_find_conditions_gid(gid_t gid)
Create a new condition that checks the node gid.
int iso_write_opts_set_tail_blocks(IsoWriteOpts *opts, uint32_t num_blocks)
Cause a number of blocks with zero bytes to be written after the payload data, but before the eventua...
int iso_dir_get_node(IsoDir *dir, const char *name, IsoNode **node)
int iso_image_add_new_special(IsoImage *image, IsoDir *parent, const char *name, mode_t mode, dev_t dev, IsoSpecial **special)
Add a new special file to the directory tree.
const char * iso_image_fs_get_system_id(IsoImageFilesystem *fs)
Get the system identifier for an existent image.
struct Iso_Dir IsoDir
A directory in the iso tree.
int el_torito_set_id_string(ElToritoBootImage *bootimg, uint8_t id_string[28])
Set the id_string of the Validation Entry or Sector Header Entry which will govern the boot image Sec...
int iso_stream_update_size(IsoStream *stream)
Updates the size of the IsoStream with the current size of the underlying source.
int iso_dir_get_children(const IsoDir *dir, IsoDirIter **iter)
Get an iterator for the children of the given dir.
int iso_image_add_new_file(IsoImage *image, IsoDir *parent, const char *name, IsoStream *stream, IsoFile **file)
Add a new regular file to the iso tree.
off_t iso_file_get_size(IsoFile *file)
Get the size of the file, in bytes.
void iso_data_source_ref(IsoDataSource *src)
Increments the reference counting of the given IsoDataSource.
int iso_tree_add_new_file(IsoDir *parent, const char *name, IsoStream *stream, IsoFile **file)
const char * iso_error_to_msg(int errcode)
Get a textual description of a libisofs error.
int iso_write_opts_set_scdbackup_tag(IsoWriteOpts *opts, char *name, char *timestamp, char *tag_written)
Set the parameters "name" and "timestamp" for a scdbackup checksum tag.
int iso_write_opts_set_rrip_version_1_10(IsoWriteOpts *opts, int oldvers)
Write Rock Ridge info as of specification RRIP-1.10 rather than RRIP-1.12: signature "RRIP_1991A" rat...
int iso_read_image_features_has_eltorito(IsoReadImageFeatures *f)
Whether El-Torito boot record is present present in the image imported.
struct el_torito_boot_image ElToritoBootImage
It represents an El-Torito boot image.
void iso_filesystem_ref(IsoFilesystem *fs)
Take a ref to the given IsoFilesystem.
int iso_read_opts_set_no_iso1999(IsoReadOpts *opts, int noiso1999)
Do not read ISO 9660:1999 enhanced tree.
int iso_image_create_burn_source(IsoImage *image, IsoWriteOpts *opts, struct burn_source **burn_src)
Create a burn_source and a thread which immediately begins to generate the image.
int iso_stream_clone(IsoStream *old_stream, IsoStream **new_stream, int flag)
Produce a copy of a stream.
int iso_write_opts_set_appended_as_gpt(IsoWriteOpts *opts, int gpt)
Control whether partitions created by iso_write_opts_set_partition_img() are to be represented in MBR...
void iso_file_source_unref(IsoFileSource *src)
Drop your ref to the given IsoFileSource, eventually freeing the associated system resources.
unsigned int iso_fs_global_id
See IsoFilesystem->get_id() for info about this.
int iso_node_remove_xinfo(IsoNode *node, iso_node_xinfo_func proc)
Remove the given extended info (defined by the proc function) from the given node.
int iso_image_generator_is_running(IsoImage *image)
Inquire whether the image generator thread is still at work.
int iso_nowtime(time_t *now, int flag)
Inquire and maybe define the time which is considered to be "now" and used for timestamps of freshly ...
int iso_read_image_features_has_rockridge(IsoReadImageFeatures *f)
Whether RockRidge extensions are present in the image imported.
int iso_stream_open(IsoStream *stream)
Opens the given stream.
int iso_image_set_hppa_palo(IsoImage *img, char *cmdline, char *bootloader, char *kernel_32, char *kernel_64, char *ramdisk, int flag)
Define a command line and submit the paths of four mandatory files for production of a HP-PA PALO boo...
int iso_write_opts_set_hfsp_block_size(IsoWriteOpts *opts, int hfsp_block_size, int apm_block_size)
Set the block size for Apple Partition Map and for HFS+.
int iso_util_decode_md5_tag(char data[2048], int *tag_type, uint32_t *pos, uint32_t *range_start, uint32_t *range_size, uint32_t *next_tag, char md5[16], int flag)
Check a data block whether it is a libisofs session checksum tag and eventually obtain its recorded p...
int iso_write_opts_set_relaxed_vol_atts(IsoWriteOpts *opts, int allow)
Allow all characters to be part of Volume and Volset identifiers on the Primary Volume Descriptor.
int iso_init_with_flag(int flag)
Initialize libisofs.
int iso_file_remove_filter(IsoFile *file, int flag)
Delete the top filter stream from a data file.
int iso_write_opts_set_prep_img(IsoWriteOpts *opts, char *image_path, int flag)
Copy a data file from the local filesystem into the emerging ISO image.
const char * iso_image_get_data_preparer_id(const IsoImage *image)
Get the data preparer of a image.
const char * iso_image_fs_get_copyright_file_id(IsoImageFilesystem *fs)
Get the copyright file identifier for an existent image.
mode_t iso_node_get_mode(const IsoNode *node)
Get the mode of the node, both permissions and file type, as specified in 'man 2 stat'.
int iso_tree_get_follow_symlinks(IsoImage *image)
Get current setting for follow_symlinks.
int iso_write_opts_set_joliet_longer_paths(IsoWriteOpts *opts, int allow)
Allow paths in the Joliet tree to have more than 240 characters.
int iso_tree_add_dir_rec(IsoImage *image, IsoDir *parent, const char *dir)
Add the contents of a dir to a given directory of the iso tree.
int iso_image_report_system_area(IsoImage *image, char ***reply, int *line_count, int flag)
Obtain an array of texts describing the detected properties of the eventually loaded System Area.
int iso_write_opts_set_hfsp_serial_number(IsoWriteOpts *opts, uint8_t serial_number[8])
Supply a serial number for the HFS+ extension of the emerging image.
int iso_node_get_xinfo(IsoNode *node, iso_node_xinfo_func proc, void **data)
Get the given extended info (defined by the proc function) from the given node.
int(* iso_node_xinfo_func)(void *data, int flag)
Class of functions to handle particular extended information.
const char * iso_image_fs_get_publisher_id(IsoImageFilesystem *fs)
Get the publisher identifier for an existent image.
int iso_file_add_gzip_filter(IsoFile *file, int flag)
Install a gzip or gunzip filter on top of the content stream of a data file.
void iso_image_set_copyright_file_id(IsoImage *image, const char *copyright_file_id)
Fill copyright information for the image.
int iso_node_set_acl_text(IsoNode *node, char *access_text, char *default_text, int flag)
Set the ACLs of the given node to the lists in parameters access_text and default_text or delete them...
int iso_image_get_pvd_times(IsoImage *image, char **creation_time, char **modification_time, char **expiration_time, char **effective_time)
Get the four timestamps from the Primary Volume Descriptor of the imported ISO image.
int iso_image_get_system_area(IsoImage *img, char data[32768], int *options, int flag)
Obtain a copy of the eventually loaded first 32768 bytes of the imported session, the System Area.
int iso_read_opts_set_no_joliet(IsoReadOpts *opts, int nojoliet)
Do not read Joliet extensions.
int iso_image_get_boot_image(IsoImage *image, ElToritoBootImage **boot, IsoFile **imgnode, IsoBoot **catnode)
Get the El-Torito boot catalog and the default boot image of an ISO image.
int iso_file_source_access(IsoFileSource *src)
Check if the process has access to read file contents.
int iso_memory_stream_new(unsigned char *buf, size_t size, IsoStream **stream)
Create an IsoStream object from content which is stored in a dynamically allocated memory buffer.
const char * iso_image_get_system_id(const IsoImage *image)
Get the system id of a image.
void iso_read_image_features_destroy(IsoReadImageFeatures *f)
Destroy an IsoReadImageFeatures object obtained with iso_image_import() or iso_assess_written_feature...
int el_torito_get_full_load(ElToritoBootImage *bootimg)
Inquire the setting of el_torito_set_full_load().
int iso_write_opts_set_default_dir_mode(IsoWriteOpts *opts, mode_t dir_mode)
Set the mode to use on dirs when you set the replace_mode of dirs to 2.
int el_torito_get_load_seg(ElToritoBootImage *bootimg)
Get the load segment value.
int iso_node_xinfo_make_clonable(iso_node_xinfo_func proc, iso_node_xinfo_cloner cloner, int flag)
Associate a iso_node_xinfo_cloner to a particular class of extended information in order to make it c...
int iso_tree_add_exclude(IsoImage *image, const char *path)
Add a excluded path.
void iso_finish()
Finalize libisofs.
void iso_image_set_biblio_file_id(IsoImage *image, const char *biblio_file_id)
Fill biblio information for the image.
struct iso_write_opts IsoWriteOpts
Options for image written.
int iso_file_add_external_filter(IsoFile *file, IsoExternalFilterCommand *cmd, int flag)
Install an external filter command on top of the content stream of a data file.
void iso_tree_set_ignore_special(IsoImage *image, int skip)
Set whether to skip or not special files.
int iso_write_opts_set_default_gid(IsoWriteOpts *opts, gid_t gid)
Set the gid to use when you set the replace_gid to 2.
int iso_node_take(IsoNode *node)
Removes a child from a directory.
int iso_zisofs_ctrl_susp_z2(int enable)
Enable or disable the production of "Z2" SUSP entries instead of "ZF" entries for zisofs2 compressed ...
void iso_tree_set_replace_mode(IsoImage *image, enum iso_replace_mode mode)
Set the replace mode, that defines the behavior of libisofs when adding a node whit the same name tha...
void iso_filesystem_unref(IsoFilesystem *fs)
Drop your ref to the given IsoFilesystem, evetually freeing associated resources.
int iso_local_set_attrs_errno(char *disk_path, size_t num_attrs, char **names, size_t *value_lengths, char **values, int *errnos, int flag)
Attach a list of xattr and ACLs to the given file in the local filesystem.
int iso_tree_get_ignore_hidden(IsoImage *image)
Get current setting for ignore_hidden.
off_t iso_stream_get_size(IsoStream *stream)
Get the size of a given stream.
int iso_text_to_sev(char *severity_name, int *severity_number)
Convert a severity name into a severity number, which gives the severity rank of the name.
void iso_node_set_gid(IsoNode *node, gid_t gid)
Set the group id for the node.
int iso_file_source_close(IsoFileSource *src)
Close a previously opened file.
int iso_node_remove_tree(IsoNode *node, IsoDirIter *boss_iter)
Removes a node by iso_node_remove() or iso_dir_iter_remove().
int el_torito_get_selection_crit(ElToritoBootImage *bootimg, uint8_t crit[20])
Get the Selection Criteria bytes as of el_torito_set_selection_crit().
int iso_dir_add_node(IsoDir *dir, IsoNode *child, enum iso_replace_mode replace)
Add a new node to a dir.
int iso_write_opts_set_replace_timestamps(IsoWriteOpts *opts, int replace)
0 to use IsoNode timestamps, 1 to use recording time, 2 to use values from timestamp field.
int iso_tree_add_new_dir(IsoDir *parent, const char *name, IsoDir **dir)
int iso_dir_iter_remove(IsoDirIter *iter)
Removes a child from a directory during an iteration and unref() it.
int iso_read_opts_set_default_uid(IsoReadOpts *opts, uid_t uid)
Set default uid for files when RR extensions are not present.
int iso_local_get_acl_text(char *disk_path, char **text, int flag)
Get an ACL of the given file in the local filesystem in long text form.
const char * iso_image_get_copyright_file_id(const IsoImage *image)
Get the copyright information of a image.
int iso_write_opts_set_omit_version_numbers(IsoWriteOpts *opts, int omit)
Omit the version number (";1") at the end of the ISO-9660 identifiers.
const char * iso_image_fs_get_data_preparer_id(IsoImageFilesystem *fs)
Get the data preparer identifier for an existent image.
int iso_file_source_stat(IsoFileSource *src, struct stat *info)
Get information about the file.
int iso_read_opts_set_default_gid(IsoReadOpts *opts, gid_t gid)
Set default gid for files when RR extensions are not present.
int iso_set_abort_severity(char *severity)
Set the minimum error severity that causes a libisofs operation to be aborted as soon as possible.
void iso_image_set_abstract_file_id(IsoImage *image, const char *abstract_file_id)
Fill abstract information for the image.
int iso_write_opts_set_iso1999(IsoWriteOpts *opts, int enable)
Whether to use newer ISO-9660:1999 version.
int iso_write_opts_get_data_start(IsoWriteOpts *opts, uint32_t *data_start, int flag)
Inquire the start address of the file data blocks after having used IsoWriteOpts with iso_image_creat...
int iso_write_opts_set_max_ce_entries(IsoWriteOpts *opts, uint32_t num, int flag)
Set the maximum number of SUSP CE entries and thus continuation areas.
void iso_node_set_ctime(IsoNode *node, time_t time)
Set the time of last status change of the file.
int iso_tree_clone(IsoNode *node, IsoDir *new_parent, char *new_name, IsoNode **new_node, int flag)
int iso_stream_get_external_filter(IsoStream *stream, IsoExternalFilterCommand **cmd, int flag)
Obtain the IsoExternalFilterCommand which is eventually associated with the given stream.
iso_replace_mode
Replace mode used when adding a node to a directory.
@ ISO_REPLACE_IF_SAME_TYPE_AND_NEWER
Replace with the new node if it is the same file type and its ctime is newer than the old one.
@ ISO_REPLACE_ALWAYS
Always replace the old node with the new.
@ ISO_REPLACE_IF_NEWER
Replace with the new node if its ctime is newer than the old one.
@ ISO_REPLACE_IF_SAME_TYPE
Replace with the new node if it is the same file type.
@ ISO_REPLACE_NEVER
Never replace an existing node, and instead fail with ISO_NODE_NAME_NOT_UNIQUE.
int iso_write_opts_set_gpt_guid(IsoWriteOpts *opts, uint8_t guid[16], int mode)
Control whether the emerging GPT gets a pseudo-randomly generated disk GUID or whether it gets a user...
int iso_write_opts_set_part_like_isohybrid(IsoWriteOpts *opts, int alike)
Control whether bits 2 to 8 of el_torito_set_isolinux_options() shall apply even if not isohybrid MBR...
int iso_write_opts_set_iso_type_guid(IsoWriteOpts *opts, uint8_t guid[16], int valid)
Set the GPT Type GUID for the partition which represents the ISO 9660 filesystem, if such a partition...
int iso_interval_reader_destroy(struct iso_interval_reader **ivr, int flag)
Dispose an interval reader object.
int iso_write_opts_set_untranslated_name_len(IsoWriteOpts *opts, int len)
Caution: This option breaks any assumptions about names that are supported by ECMA-119 specifications...
int iso_dir_iter_take(IsoDirIter *iter)
Removes a child from a directory during an iteration, without freeing it.
int iso_image_get_hppa_palo(IsoImage *img, char **cmdline, char **bootloader, char **kernel_32, char **kernel_64, char **ramdisk)
Inquire the current settings of iso_image_set_hppa_palo().
int iso_tree_remove_exclude(IsoImage *image, const char *path)
Remove a previously added exclude.
int iso_image_get_session_md5(IsoImage *image, uint32_t *start_lba, uint32_t *end_lba, char md5[16], int flag)
Obtain the recorded MD5 checksum of the session which was loaded as ISO image.
int iso_image_import(IsoImage *image, IsoDataSource *src, IsoReadOpts *opts, IsoReadImageFeatures **features)
Import a previous session or image, for growing or modify.
int iso_write_opts_set_fat(IsoWriteOpts *opts, int enable)
void iso_file_source_ref(IsoFileSource *src)
Take a ref to the given IsoFileSource.
int iso_lib_is_compatible(int major, int minor, int micro)
Check at runtime if the library is ABI compatible with the given version.
void iso_node_set_hidden(IsoNode *node, int hide_attrs)
Set whether the node will be hidden in the directory trees of RR/ISO 9660, or of Joliet (if enabled a...
time_t iso_node_get_atime(const IsoNode *node)
Get the time of last access to the file.
int iso_local_set_acl_text(char *disk_path, char *text, int flag)
Set the ACL of the given file in the local filesystem to a given list in long text form.
void el_torito_set_load_seg(ElToritoBootImage *bootimg, short segment)
Sets the load segment for the initial boot image.
char * iso_get_local_charset(int flag)
Obtain the local charset as currently assumed by libisofs.
int el_torito_set_selection_crit(ElToritoBootImage *bootimg, uint8_t crit[20])
Set the Selection Criteria of a boot image.
const char * iso_image_fs_get_biblio_file_id(IsoImageFilesystem *fs)
Get the biblio file identifier for an existent image.
IsoStream * iso_stream_get_input_stream(IsoStream *stream, int flag)
Obtain the eventual input stream of a filter stream.
int iso_node_set_name(IsoNode *node, const char *name)
int iso_write_opts_set_appendable(IsoWriteOpts *opts, int append)
Set the type of image creation in case there was already an existing image imported.
void iso_node_set_mtime(IsoNode *node, time_t time)
Set the time of last modification of the file.
int iso_ring_buffer_get_status(struct burn_source *b, size_t *size, size_t *free_bytes)
Get the status of the buffer used by a burn_source.
uint32_t iso_crc32_gpt(unsigned char *data, int count, int flag)
Compute a CRC number as expected in the GPT main and backup header blocks.
int iso_zisofs_get_refcounts(off_t *ziso_count, off_t *osiz_count, int flag)
Inquire the number of zisofs compression and uncompression filters which are in use.
struct Iso_Boot IsoBoot
An special type of IsoNode that acts as a placeholder for an El-Torito boot catalog.
int iso_node_get_next_xinfo(IsoNode *node, void **handle, iso_node_xinfo_func *proc, void **data)
Get the next pair of function pointer and data of an iteration of the list of extended information.
char * iso_tree_get_node_path(IsoNode *node)
Get the absolute path on image of the given node.
const char * iso_symlink_get_dest(const IsoSymlink *link)
Get the destination of a node.
int iso_image_get_msg_id(IsoImage *image)
Get the id of an IsoImage, used for message reporting.
int iso_read_image_features_tree_loaded(IsoReadImageFeatures *f)
Tells what directory tree was loaded: 0= ISO 9660 , 1 = Joliet , 2 = ISO 9660:1999.
int iso_error_get_code(int e)
Get the message queue code of a libisofs error.
IsoFindCondition * iso_new_find_conditions_mtime(time_t time, enum iso_find_comparisons comparison)
Create a new condition that checks the time of last modification.
int iso_write_opts_set_pvd_times(IsoWriteOpts *opts, time_t vol_creation_time, time_t vol_modification_time, time_t vol_expiration_time, time_t vol_effective_time, char *vol_uuid)
Explicitly set the four timestamps of the emerging Primary Volume Descriptor and in the volume descri...
void iso_image_set_volset_id(IsoImage *image, const char *volset_id)
Fill in the volset identifier for a image.
int iso_stream_get_zisofs_par(IsoStream *stream, int *stream_type, uint8_t zisofs_algo[2], uint8_t *algo_num, int *block_size_log2, int flag)
Obtain the parameters of a zisofs filter stream.
IsoDir * iso_node_get_parent(IsoNode *node)
int iso_read_opts_set_joliet_map(IsoReadOpts *opts, int joliet_map)
How to convert Joliet file names.
int iso_write_opts_attach_jte(IsoWriteOpts *opts, void *libjte_handle)
Associate a libjte environment object to the upcoming write run.
int iso_md5_match(char first_md5[16], char second_md5[16])
Inquire whether two MD5 checksums match.
int iso_write_opts_set_joliet_long_names(IsoWriteOpts *opts, int allow)
Allow leaf names in the Joliet tree to have up to 103 characters.
void iso_image_set_publisher_id(IsoImage *image, const char *publisher_id)
Fill in the publisher for a image.
int iso_error_get_priority(int e)
Get the priority of a given error.
int iso_read_opts_set_preferjoliet(IsoReadOpts *opts, int preferjoliet)
Whether to prefer Joliet over RR.
int iso_write_opts_set_aaip(IsoWriteOpts *opts, int enable)
Control writing of AAIP information for ACL and xattr.
int iso_init()
Initialize libisofs.
void iso_stream_get_id(IsoStream *stream, unsigned int *fs_id, dev_t *dev_id, ino_t *ino_id)
Get an unique identifier for a given IsoStream.
time_t iso_node_get_ctime(const IsoNode *node)
Get the time of last status change of the file.
int el_torito_get_id_string(ElToritoBootImage *bootimg, uint8_t id_string[28])
Get the id_string as of el_torito_set_id_string().
int iso_stream_read(IsoStream *stream, void *buf, size_t count)
Attempts to read up to count bytes from the given stream into the buffer starting at buf.
int el_torito_get_isolinux_options(ElToritoBootImage *bootimg, int flag)
Get the options as of el_torito_set_isolinux_options().
void iso_tree_set_report_callback(IsoImage *image, int(*report)(IsoImage *, IsoFileSource *))
Set a callback function that libisofs will call for each file that is added to the given image by a r...
int iso_write_opts_set_aaip_susp_1_10(IsoWriteOpts *opts, int oldvers)
Write AAIP as extension according to SUSP 1.10 rather than SUSP 1.12.
void iso_node_ref(IsoNode *node)
Increments the reference counting of the given node.
int iso_file_get_sort_weight(IsoFile *file)
Get the sort weight of a file.
char * iso_file_source_get_path(IsoFileSource *src)
Get the absolute path in the filesystem this file source belongs to.
int aaip_xinfo_func(void *data, int flag)
Function to identify and manage AAIP strings as xinfo of IsoNode.
int iso_image_set_boot_catalog_weight(IsoImage *image, int sort_weight)
Sets the sort weight of the boot catalog that is attached to an IsoImage.
void el_torito_set_no_bootable(ElToritoBootImage *bootimg)
Marks the specified boot image as not bootable.
int(* iso_node_xinfo_cloner)(void *old_data, void **new_data, int flag)
Class of functions to clone extended information.
int iso_node_add_xinfo(IsoNode *node, iso_node_xinfo_func proc, void *data)
Add extended information to the given node.
int iso_dir_iter_next(IsoDirIter *iter, IsoNode **node)
Get the next child.
int iso_zisofs_get_params(struct iso_zisofs_ctrl *params, int flag)
Get the current global parameters for zisofs filtering.
int iso_dir_find_children(IsoDir *dir, IsoFindCondition *cond, IsoDirIter **iter)
Find all directory children that match the given condition.
int iso_msgs_submit(int error_code, char msg_text[], int os_errno, char severity[], int origin)
Submit a message to the libisofs queueing system.
int iso_image_get_ignore_aclea(IsoImage *image)
Obtain the current setting of iso_image_set_ignore_aclea().
int iso_write_opts_set_hardlinks(IsoWriteOpts *opts, int enable)
Control generation of non-unique inode numbers for the emerging image.
uint32_t iso_read_image_features_get_size(IsoReadImageFeatures *f)
Get the size (in 2048 byte block) of the image, as reported in the PVM.
int iso_read_opts_new(IsoReadOpts **opts, int profile)
Creates an IsoReadOpts for reading an existent image.
int el_torito_seems_boot_info_table(ElToritoBootImage *bootimg, int flag)
Makes a guess whether the boot image was patched by a boot information table.
int iso_set_local_charset(char *name, int flag)
Override the reply of libc function nl_langinfo(CODESET) which may or may not give the name of the ch...
IsoFindCondition * iso_new_find_conditions_atime(time_t time, enum iso_find_comparisons comparison)
Create a new condition that checks the time of last access.
ino_t serial_id
Serial number to be used when you can't get a valid id for a Stream by other means.
IsoHideNodeFlag
Flag used to hide a file in the RR/ISO or Joliet tree.
@ LIBISO_HIDE_ON_JOLIET
Hide the node in the Joliet tree, if Joliet extension are enabled.
@ LIBISO_HIDE_BUT_WRITE
With IsoNode and IsoBoot: Write data content even if the node is not visible in any tree.
@ LIBISO_HIDE_ON_1999
Hide the node in the ISO-9660:1999 tree, if that format is enabled.
@ LIBISO_HIDE_ON_HFSPLUS
Hide the node in the HFS+ tree, if that format is enabled.
@ LIBISO_HIDE_ON_RR
Hide the node in the ECMA-119 / RR tree.
@ LIBISO_HIDE_ON_FAT
Hide the node in the FAT tree, if that format is enabled.
void * iso_image_get_attached_data(IsoImage *image)
The the data previously attached with iso_image_attach_data()
int iso_image_attach_data(IsoImage *image, void *data, void(*give_up)(void *))
Attach user defined data to the image.
int iso_stream_cmp_ino(IsoStream *s1, IsoStream *s2, int flag)
Compare two streams whether they are based on the same input and will produce the same output.
mode_t iso_node_get_permissions(const IsoNode *node)
Get the permissions for the node.
int iso_write_opts_set_overwrite_buf(IsoWriteOpts *opts, uint8_t *overwrite)
Sets the buffer where to store the descriptors which shall be written at the beginning of an overwrit...
int iso_image_dir_get_node(IsoImage *image, IsoDir *dir, const char *name, IsoNode **node, int flag)
Locate a node inside a given dir.
int el_torito_get_bootable(ElToritoBootImage *bootimg)
Get the bootability flag.
void el_torito_patch_isolinux_image(ElToritoBootImage *bootimg)
Deprecated: Specifies that this image needs to be patched.
int iso_tree_add_new_symlink(IsoDir *parent, const char *name, const char *dest, IsoSymlink **link)
const char * iso_image_get_biblio_file_id(const IsoImage *image)
Get the biblio information of a image.
int iso_write_opts_set_record_md5(IsoWriteOpts *opts, int session, int files)
Whether to compute and record MD5 checksums for the whole session and/or for each single IsoFile obje...
const char * iso_image_fs_get_volume_id(IsoImageFilesystem *fs)
Get the volume identifier for an existent image.
int iso_node_remove_all_xinfo(IsoNode *node, int flag)
Remove all extended information from the given node.
int iso_image_get_bootcat(IsoImage *image, IsoBoot **catnode, uint32_t *lba, char **content, off_t *size)
Get detailed information about the boot catalog that was loaded from an ISO image.
const char * iso_image_get_application_id(const IsoImage *image)
Get the application id of a image.
int iso_local_get_attrs(char *disk_path, size_t *num_attrs, char ***names, size_t **value_lengths, char ***values, int flag)
Get xattr and non-trivial ACLs of the given file in the local filesystem.
mode_t iso_node_get_perms_wo_acl(const IsoNode *node)
Like iso_node_get_permissions but reflecting ACL entry "group::" in S_IRWXG rather than ACL entry "ma...
const char * iso_image_get_publisher_id(const IsoImage *image)
Get the publisher of a image.
int iso_read_opts_set_no_aaip(IsoReadOpts *opts, int noaaip)
Control reading of AAIP information about ACL and xattr when loading existing images.
void iso_generate_gpt_guid(uint8_t guid[16])
Generate a pseudo-random GUID suitable for iso_write_opts_set_gpt_guid().
int iso_image_hfsplus_bless(IsoImage *img, enum IsoHfsplusBlessings blessing, IsoNode *node, int flag)
Issue a blessing to a particular IsoNode.
int iso_read_image_features_has_joliet(IsoReadImageFeatures *f)
Whether Joliet extensions are present in the image imported.
int iso_tree_resolve_symlink(IsoImage *img, IsoSymlink *sym, IsoNode **res, int *depth, int flag)
Get the destination node of a symbolic link within the IsoImage.
int iso_write_opts_set_max_37_char_filenames(IsoWriteOpts *opts, int allow)
Allow a single file or directory identifier to have up to 37 characters.
const char * iso_image_get_app_use(IsoImage *image)
Get the current setting for the Application Use field of the Primary Volume Descriptor.
int iso_image_filesystem_new(IsoDataSource *src, IsoReadOpts *opts, int msgid, IsoImageFilesystem **fs)
Create a new IsoFilesystem to access a existent ISO image.
int iso_write_opts_set_iso_mbr_part_type(IsoWriteOpts *opts, int part_type)
Set the partition type of the MBR partition which represents the ISO filesystem or at least protects ...
gid_t iso_node_get_gid(const IsoNode *node)
Get the group id of the node.
int iso_tree_path_to_node(IsoImage *image, const char *path, IsoNode **node)
int iso_image_give_up_mips_boot(IsoImage *image, int flag)
Clear the list of MIPS Big Endian boot file paths.
void iso_stream_unref(IsoStream *stream)
Decrement reference count of an IsoStream, and eventually free it if refcount reach 0.
void iso_node_set_atime(IsoNode *node, time_t time)
Set the time of last access to the file.
int iso_write_opts_set_old_empty(IsoWriteOpts *opts, int enable)
Use this only if you need to reproduce a suboptimal behavior of older versions of libisofs.
void iso_dir_iter_free(IsoDirIter *iter)
Free a dir iterator.
int iso_image_get_alpha_boot(IsoImage *img, char **boot_loader_path)
Inquire the path submitted by iso_image_set_alpha_boot() Do not free() the returned pointer.
IsoFindCondition * iso_new_find_conditions_and(IsoFindCondition *a, IsoFindCondition *b)
Create a new condition that check if the two given conditions are valid.
void iso_image_set_application_id(IsoImage *image, const char *application_id)
Fill in the application id for a image.
enum IsoNodeType iso_node_get_type(IsoNode *node)
Get the type of an IsoNode.
const char * iso_image_fs_get_abstract_file_id(IsoImageFilesystem *fs)
Get the abstract file identifier for an existent image.
int iso_gzip_get_refcounts(off_t *gzip_count, off_t *gunzip_count, int flag)
Inquire the number of gzip compression and uncompression filters which are in use.
int iso_read_opts_set_start_block(IsoReadOpts *opts, uint32_t block)
Set the block where the image begins.
int iso_read_opts_load_system_area(IsoReadOpts *opts, int mode)
Enable or disable loading of the first 32768 bytes of the session.
int iso_tree_add_node(IsoImage *image, IsoDir *parent, const char *path, IsoNode **node)
Add a new node to the image tree, from an existing file.
int iso_md5_start(void **md5_context)
Create a MD5 computation context and hand out an opaque handle.
int el_torito_get_load_size(ElToritoBootImage *bootimg)
Get the load size.
int iso_dir_iter_has_next(IsoDirIter *iter)
Check if there're more children.
int iso_file_get_old_image_sections(IsoFile *file, int *section_count, struct iso_file_section **sections, int flag)
Get the start addresses and the sizes of the data extents of a file node if it was imported from an o...
void el_torito_set_full_load(ElToritoBootImage *bootimg, int mode)
State that the load size shall be the size of the boot image automatically.
int iso_write_opts_set_allow_longer_paths(IsoWriteOpts *opts, int allow)
Allow path in the ISO-9660 tree to have more than 255 characters.
int iso_write_opts_set_part_type_guid(IsoWriteOpts *opts, int partition_number, uint8_t guid[16], int valid)
Set the GPT Type GUID for a partition defined by iso_write_opts_set_partition_img().
int iso_write_opts_set_system_area(IsoWriteOpts *opts, char data[32768], int options, int flag)
void iso_image_set_volume_id(IsoImage *image, const char *volume_id)
Fill in the volume identifier for a image.
int iso_node_get_hidden(IsoNode *node)
Get the hide_attrs as eventually set by iso_node_set_hidden().
int iso_node_get_old_image_lba(IsoNode *node, uint32_t *lba, int flag)
int iso_write_opts_set_rrip_1_10_px_ino(IsoWriteOpts *opts, int enable)
Write field PX with file serial number (i.e.
int iso_read_image_features_rr_loaded(IsoReadImageFeatures *f)
Tells whether Rock Ridge information was used while loading the tree: 1= yes, 0= no.
int iso_read_opts_set_new_inos(IsoReadOpts *opts, int new_inos)
Control discarding of eventual inode numbers from existing images.
int iso_file_source_open(IsoFileSource *src)
Opens the source.
int iso_symlink_set_dest(IsoSymlink *link, const char *dest)
Set the destination of a symbolic.
void iso_node_set_uid(IsoNode *node, uid_t uid)
Set the user id for the node.
int iso_node_xinfo_get_cloner(iso_node_xinfo_func proc, iso_node_xinfo_cloner *cloner, int flag)
Inquire the registered cloner function for a particular class of extended information.
int iso_write_opts_set_allow_full_ascii(IsoWriteOpts *opts, int allow)
Allow all 8-bit characters to appear on an ISO-9660 filename.
int iso_data_source_new_from_file(const char *path, IsoDataSource **src)
Create a new IsoDataSource from a local file.
void el_torito_set_load_size(ElToritoBootImage *bootimg, short sectors)
Sets the number of sectors (512b) to be load at load segment during the initial boot procedure.
IsoHfsplusBlessings
HFS+ blessings are relationships between HFS+ enhanced ISO images and particular files in such images...
@ ISO_HFSPLUS_BLESS_SHOWFOLDER
@ ISO_HFSPLUS_BLESS_OSX_FOLDER
@ ISO_HFSPLUS_BLESS_PPC_BOOTDIR
@ ISO_HFSPLUS_BLESS_INTEL_BOOTFILE
@ ISO_HFSPLUS_BLESS_OS9_FOLDER
void iso_image_ref(IsoImage *image)
Increments the reference counting of the given image.
const char * iso_image_get_abstract_file_id(const IsoImage *image)
Get the abstract information of a image.
void iso_image_set_ignore_aclea(IsoImage *image, int what)
Control whether ACL and xattr will be imported from external filesystems (typically the local POSIX f...
int iso_read_image_feature_named(IsoReadImageFeatures *f, char *name, char **text, int *type, int64_t *num_value, void **pt_value, size_t *pt_size)
Get a named feature as text, num_value, or pt_value depending on its type.
int iso_image_new(const char *name, IsoImage **image)
Create a new image, empty.
int iso_dir_get_children_count(IsoDir *dir)
Get the number of children of a directory.
int iso_file_source_readlink(IsoFileSource *src, char *buf, size_t bufsiz)
Read the destination of a symlink.
int iso_node_remove(IsoNode *node)
Removes a child from a directory and free (unref) it.
IsoFilesystem IsoImageFilesystem
IsoFilesystem implementation to deal with ISO images, and to offer a way to access specific informati...
int iso_stream_close(IsoStream *stream)
Close a previously opened IsoStream.
void iso_image_set_system_id(IsoImage *image, const char *system_id)
Fill in the system id for a image.
void iso_image_remove_boot_image(IsoImage *image)
Removes all El-Torito boot images from the ISO image.
struct Iso_Dir_Iter IsoDirIter
Context for iterate on directory children.
int iso_image_zisofs_discard_bpt(IsoImage *image, int flag)
Discard all buffered zisofs compression block pointers of streams in the given image,...
int iso_file_add_zisofs_filter(IsoFile *file, int flag)
Install a zisofs filter on top of the content stream of a data file.
int iso_write_opts_set_default_timestamp(IsoWriteOpts *opts, time_t timestamp)
Set the timestamp to use when you set the replace_timestamps to 2.
int iso_md5_compute(void *md5_context, char *data, int datalen)
Advance the computation of a MD5 checksum by a chunk of data bytes.
int el_torito_set_isolinux_options(ElToritoBootImage *bootimg, int options, int flag)
Specifies options for ISOLINUX or GRUB boot images.
int iso_hfsplus_xinfo_func(void *data, int flag)
The function that is used to mark struct iso_hfsplus_xinfo_data at IsoNodes and finally disposes such...
IsoDir * iso_image_get_root(const IsoImage *image)
Get the root directory of the image.
IsoFindCondition * iso_new_find_conditions_name(const char *wildcard)
Create a new condition that checks if the node name matches the given wildcard.
int iso_image_hfsplus_get_blessed(IsoImage *img, IsoNode ***blessed_nodes, int *bless_max, int flag)
Get the array of nodes which are currently blessed.
int iso_stream_zisofs_discard_bpt(IsoStream *stream, int flag)
Discard the buffered zisofs compression block pointers of a stream, if the stream is a zisofs compres...
time_t iso_node_get_mtime(const IsoNode *node)
Get the time of last modification of the file.
int iso_image_set_node_name(IsoImage *image, IsoNode *node, const char *name, int flag)
Set the name of a node.
int iso_tree_add_new_node(IsoImage *image, IsoDir *parent, const char *name, const char *path, IsoNode **node)
This is a more versatile form of iso_tree_add_node which allows to set the node name in ISO image alr...
int iso_image_get_mips_boot_files(IsoImage *image, char *paths[15], int flag)
Obtain the number of added MIPS Big Endian boot files and pointers to their paths in the ISO 9660 Roc...
int iso_truncate_leaf_name(int mode, int length, char *name, int flag)
Immediately apply the given truncate mode and length to the given string.
IsoFindCondition * iso_new_find_conditions_uid(uid_t uid)
Create a new condition that checks the node uid.
dev_t iso_special_get_dev(IsoSpecial *special)
Get the device id (major/minor numbers) of the given block or character device file.
int iso_write_opts_detach_jte(IsoWriteOpts *opts, void **libjte_handle)
Remove eventual association to a libjte environment handle.
iso_find_comparisons
Possible comparison between IsoNode and given conditions.
@ ISO_FIND_COND_LESS_OR_EQUAL
@ ISO_FIND_COND_GREATER_OR_EQUAL
int iso_read_opts_set_default_permissions(IsoReadOpts *opts, mode_t file_perm, mode_t dir_perm)
Set default permissions for files when RR extensions are not present.
int iso_write_opts_set_partition_img(IsoWriteOpts *opts, int partition_number, uint8_t partition_type, char *image_path, int flag)
Cause an arbitrary data file to be appended to the ISO image and to be described by a partition table...
int iso_image_was_blind_attrs(IsoImage *image, int flag)
Inquire whether some local filesystem xattr namespace could not be explored during node building....
char * iso_file_source_get_name(IsoFileSource *src)
Get the name of the file, with the dir component of the path.
int iso_read_image_features_has_iso1999(IsoReadImageFeatures *f)
Whether the image is recorded according to ISO 9660:1999, i.e.
struct Iso_Special IsoSpecial
An special file in the iso tree.
int iso_write_opts_set_rr_reloc(IsoWriteOpts *opts, char *name, int flags)
This call describes the directory where to store Rock Ridge relocated directories.
int iso_read_opts_set_ecma119_map(IsoReadOpts *opts, int ecma119_map)
How to convert file names if neither Rock Ridge nor Joliet names are present and acceptable.
int iso_image_set_truncate_mode(IsoImage *img, int mode, int length)
Set the name truncation mode and the maximum name length for nodes from image importing,...
void iso_image_set_data_preparer_id(IsoImage *image, const char *data_preparer_id)
Fill in the data preparer for a image.
void iso_read_opts_free(IsoReadOpts *opts)
Free an IsoReadOpts previously allocated with iso_read_opts_new().
int iso_write_opts_set_allow_7bit_ascii(IsoWriteOpts *opts, int allow)
If not iso_write_opts_set_allow_full_ascii() is set to 1: Allow all 7-bit characters that would be al...
int iso_obtain_msgs(char *minimum_severity, int *error_code, int *imgid, char msg_text[], char severity[])
Obtain the oldest pending libisofs message from the queue which has at least the given minimum_severi...
const char * iso_image_fs_get_volset_id(IsoImageFilesystem *fs)
Get the volset identifier for an existent image.
void iso_write_opts_free(IsoWriteOpts *opts)
Free an IsoWriteOpts previously allocated with iso_write_opts_new().
int iso_write_opts_set_allow_lowercase(IsoWriteOpts *opts, int allow)
Allow lowercase characters in ISO-9660 filenames.
const char * iso_image_get_volset_id(const IsoImage *image)
Get the volset identifier.
int iso_node_get_acl_text(IsoNode *node, char **access_text, char **default_text, int flag)
Get the eventual ACLs which are associated with the node.
int iso_write_opts_set_will_cancel(IsoWriteOpts *opts, int will_cancel)
Announce that only the image size is desired, that the struct burn_source which is set to consume the...
void iso_stream_ref(IsoStream *stream)
Increment reference count of an IsoStream.
char * iso_stream_get_source_path(IsoStream *stream, int flag)
Try to get eventual source path string of a stream.
int iso_file_make_md5(IsoFile *file, int flag)
Read the content of an IsoFile object, compute its MD5 and attach it to the IsoFile.
int iso_node_cmp_ino(IsoNode *n1, IsoNode *n2, int flag)
Compare two nodes whether they are based on the same input and can be considered as hardlinks to the ...
struct iso_hfsplus_xinfo_data * iso_hfsplus_xinfo_new(int flag)
Create an instance of struct iso_hfsplus_xinfo_new().
int iso_image_set_alpha_boot(IsoImage *img, char *boot_loader_path, int flag)
Submit the path of the DEC Alpha Secondary Bootstrap Loader file.
struct Iso_Image IsoImage
Context for image creation.
void iso_node_set_sort_weight(IsoNode *node, int w)
Sets the order in which a node will be written on image.
int iso_stream_is_repeatable(IsoStream *stream)
Whether the given IsoStream can be read several times, with the same results.
int iso_write_opts_set_ms_block(IsoWriteOpts *opts, uint32_t ms_block)
Set the start block of the image.
int iso_read_opts_keep_import_src(IsoReadOpts *opts, int mode)
Control whether to keep a reference to the IsoDataSource object which allows access to the blocks of ...
int iso_tree_add_new_cut_out_node(IsoImage *image, IsoDir *parent, const char *name, const char *path, off_t offset, off_t size, IsoNode **node)
Add a new node to the image tree with the given name that must not exist on dir.
int iso_read_image_features_text(IsoReadImageFeatures *f, int with_values, char **feature_text)
Get all validly assessed named features as one single 0-terminated string consisting of single lines ...
struct iso_find_condition IsoFindCondition
int iso_write_opts_set_rockridge(IsoWriteOpts *opts, int enable)
Whether to use or not Rock Ridge extensions.
int iso_read_opts_set_input_charset(IsoReadOpts *opts, const char *charset)
Set the input charset of the file names on the image.
uid_t iso_node_get_uid(const IsoNode *node)
Get the user id of the node.
int iso_image_get_sparc_core(IsoImage *img, IsoFile **sparc_core, int flag)
Obtain the current setting of iso_image_set_sparc_core().
IsoStream * iso_file_get_stream(IsoFile *file)
Get the IsoStream that represents the contents of the given IsoFile.
int iso_write_opts_set_sort_files(IsoWriteOpts *opts, int sort)
Whether to sort files based on their weight.
Interface definition for an IsoFileSource.
void(* free)(IsoFileSource *src)
Free implementation specific data.
int(* access)(IsoFileSource *src)
Check if the process has access to read file contents.
int(* close)(IsoFileSource *src)
Close a previously opened file.
int(* stat)(IsoFileSource *src, struct stat *info)
Get information about the file.
int(* open)(IsoFileSource *src)
Opens the source.
off_t(* lseek)(IsoFileSource *src, off_t offset, int flag)
Repositions the offset of the IsoFileSource (must be opened) to the given offset according to the val...
int(* get_aa_string)(IsoFileSource *src, unsigned char **aa_string, int flag)
Valid only if .version is > 0.
int(* read)(IsoFileSource *src, void *buf, size_t count)
Attempts to read up to count bytes from the given source into the buffer starting at buf.
int(* readlink)(IsoFileSource *src, char *buf, size_t bufsiz)
Read the destination of a symlink.
int version
Tells the version of the interface: Version 0 provides functions up to (*lseek)().
int(* readdir)(IsoFileSource *src, IsoFileSource **child)
Read a directory.
int(* lstat)(IsoFileSource *src, struct stat *info)
Get information about the file.
int(* clone_src)(IsoFileSource *old_src, IsoFileSource **new_src, int flag)
Produce a copy of a source.
Interface definition for IsoStream methods.
void(* get_id)(IsoStream *stream, unsigned int *fs_id, dev_t *dev_id, ino_t *ino_id)
Get an unique identifier for the IsoStream.
int(* cmp_ino)(IsoStream *s1, IsoStream *s2)
Compare two streams whether they are based on the same input and will produce the same output.
int(* clone_stream)(IsoStream *old_stream, IsoStream **new_stream, int flag)
Produce a copy of a stream.
char type[4]
Type of Stream.
int(* is_repeatable)(IsoStream *stream)
Tell whether this IsoStream can be read several times, with the same results.
off_t(* get_size)(IsoStream *stream)
Get the size (in bytes) of the stream.
int(* update_size)(IsoStream *stream)
Update the size of the IsoStream with the current size of the underlying source, if the source is pro...
int(* close)(IsoStream *stream)
Close the Stream.
void(* free)(IsoStream *stream)
Free implementation specific data.
int(* open)(IsoStream *stream)
Opens the stream.
int(* read)(IsoStream *stream, void *buf, size_t count)
Attempt to read up to count bytes from the given stream into the buffer starting at buf.
Data source used by libisofs for reading an existing image.
int(* close)(IsoDataSource *src)
Close a given source, freeing all system resources previously grabbed in open().
int(* open)(IsoDataSource *src)
Opens the given source.
int(* read_block)(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
Read an arbitrary block (2048 bytes) of data from the source.
unsigned int refcount
Reference count for the data source.
void * data
Source specific data.
void(* free_data)(IsoDataSource *src)
Clean up the source specific data.
Representation of an external program that shall serve as filter for an IsoStream.
File section in an old image.
An IsoFile Source is a POSIX abstraction of a file.
An IsoFilesystem is a handler for a source of files, or a "filesystem".
unsigned int(* get_id)(IsoFilesystem *fs)
Get filesystem identifier.
int(* open)(IsoFilesystem *fs)
Opens the filesystem for several read operations.
int(* get_root)(IsoFilesystem *fs, IsoFileSource **root)
Get the root of a filesystem.
int(* get_by_path)(IsoFilesystem *fs, const char *path, IsoFileSource **file)
Retrieve a file from its absolute path inside the filesystem.
int(* close)(IsoFilesystem *fs)
Close the filesystem, thus freeing all system resources.
void(* free)(IsoFilesystem *fs)
Free implementation specific data.
char type[4]
Type of filesystem.
HFS+ attributes which may be attached to IsoNode objects as data parameter of iso_node_add_xinfo().
Representation of file contents as a stream of bytes.
Parameter set for iso_zisofs_set_params().
uint64_t max_total_blocks
uint64_t current_total_blocks
uint8_t v2_block_size_log2
int64_t bpt_discard_file_blocks
double bpt_discard_free_ratio
int64_t block_number_target