2#ifndef LIBISO_LIBISOFS_H_
3#define LIBISO_LIBISOFS_H_
97#define iso_lib_header_version_major 1
98#define iso_lib_header_version_minor 5
99#define iso_lib_header_version_micro 8
239#define ISO_NODE_IS_DIR(n) (iso_node_get_type(n) == LIBISO_DIR)
240#define ISO_NODE_IS_FILE(n) (iso_node_get_type(n) == LIBISO_FILE)
241#define ISO_NODE_IS_SYMLINK(n) (iso_node_get_type(n) == LIBISO_SYMLINK)
242#define ISO_NODE_IS_SPECIAL(n) (iso_node_get_type(n) == LIBISO_SPECIAL)
243#define ISO_NODE_IS_BOOTCAT(n) (iso_node_get_type(n) == LIBISO_BOOT)
246#define ISO_DIR(n) ((IsoDir*)(ISO_NODE_IS_DIR(n) ? n : NULL))
247#define ISO_FILE(n) ((IsoFile*)(ISO_NODE_IS_FILE(n) ? n : NULL))
248#define ISO_SYMLINK(n) ((IsoSymlink*)(ISO_NODE_IS_SYMLINK(n) ? n : NULL))
249#define ISO_SPECIAL(n) ((IsoSpecial*)(ISO_NODE_IS_SPECIAL(n) ? n : NULL))
251#define ISO_NODE(n) ((IsoNode*)n)
895 unsigned char **aa_string,
int flag);
922#ifndef Libisofs_h_as_cpluspluS
1192#ifndef Libisofs_h_as_cpluspluS
1545 uint8_t serial_number[8]);
1565 int hfsp_block_size,
int apm_block_size);
2056 char *name,
char *timestamp,
2078 int file_mode,
int uid,
int gid);
2397 int options,
int flag);
2453 time_t vol_creation_time, time_t vol_modification_time,
2454 time_t vol_expiration_time, time_t vol_effective_time,
2491 uint32_t block_offset_2k,
2492 int secs_512_per_head,
int heads_per_cyl);
2500#define iso_libjte_req_major 2
2501#define iso_libjte_req_minor 0
2502#define iso_libjte_req_micro 0
2614struct iso_interval_reader;
2637 struct iso_interval_reader **ivr,
2638 off_t *byte_count,
int flag);
2673 int *buf_fill,
int flag);
2862 uint8_t partition_type,
char *image_path,
int flag);
2907 uint8_t guid[16],
int valid);
2942 int with_gaps_no_sort,
int with_gaps_no_iso);
3086 struct burn_source **burn_src);
3574 char **text,
int *type,
3575 int64_t *num_value,
void **pt_value,
3596 char **feature_text);
3780 const char *volume_id);
3835 const char *data_preparer_id);
3885 const char *copyright_file_id);
3903 const char *abstract_file_id);
3988 char **creation_time,
char **modification_time,
3989 char **expiration_time,
char **effective_time);
4042 const char *catalog_path,
4140 char **content, off_t *size);
4538 int options,
int flag);
4585 int *options,
int flag);
4593#define ISO_MAX_SYSAREA_LINE_LENGTH 4096
4601#define ISO_SYSAREA_REPORT_DOC \
4603"Report format for recognized System Area data.", \
4605"No text will be reported if no System Area was loaded or if it was", \
4606"entirely filled with 0-bytes.", \
4607"Else there will be at least these three lines:", \
4608" System area options: hex", \
4609" see libisofs.h, parameter of iso_write_opts_set_system_area().", \
4610" System area summary: word ... word", \
4611" human readable interpretation of system area options and other info", \
4612" The words are from the set:", \
4613" { MBR, CHRP, PReP, GPT, APM, MIPS-Big-Endian, MIPS-Little-Endian,", \
4614" SUN-SPARC-Disk-Label, HP-PA-PALO, DEC-Alpha, ", \
4615" protective-msdos-label, isohybrid, grub2-mbr,", \
4616" cyl-align-{auto,on,off,all}, not-recognized, }", \
4617" The acronyms indicate boot data for particular hardware/firmware.", \
4618" protective-msdos-label is an MBR conformant to specs of GPT.", \
4619" isohybrid is an MBR implementing ISOLINUX isohybrid functionality.", \
4620" grub2-mbr is an MBR with GRUB2 64 bit address patching.", \
4621" cyl-align-on indicates that the ISO image MBR partition ends at a", \
4622" cylinder boundary. cyl-align-all means that more MBR partitions", \
4623" exist and all end at a cylinder boundary.", \
4624" not-recognized tells about unrecognized non-zero system area data.", \
4625" ISO image size/512 : decimal", \
4626" size of ISO image in block units of 512 bytes.", \
4628#define ISO_SYSAREA_REPORT_DOC_MBR \
4630"If an MBR is detected, with at least one partition entry of non-zero size,", \
4631"then there may be:", \
4632" Partition offset : decimal", \
4633" if not 0 then a second ISO 9660 superblock was found to which", \
4634" MBR partition 1 or GPT partition 1 is pointing.", \
4635" MBR heads per cyl : decimal", \
4636" conversion factor between MBR C/H/S address and LBA. 0=inconsistent.", \
4637" MBR secs per head : decimal", \
4638" conversion factor between MBR C/H/S address and LBA. 0=inconsistent.", \
4639" MBR partition table: N Status Type Start Blocks", \
4640" headline for MBR partition table.", \
4641" MBR partition : X hex hex decimal decimal", \
4642" gives partition number, status byte, type byte, start block,", \
4643" and number of blocks. 512 bytes per block.", \
4644" MBR partition path : X path", \
4645" the path of a file in the ISO image which began at the start block", \
4646" of partition X when the ISO filesystem was imported.", \
4647" PReP boot partition: decimal decimal", \
4648" gives start block and size of a PReP boot partition in ISO 9660", \
4649" block units of 2048 bytes.", \
4651#define ISO_SYSAREA_REPORT_DOC_GPT1 \
4653"GUID Partition Table can coexist with MBR:", \
4655" headline for GPT partition table. The fields are too wide for a", \
4656" neat table. So they are listed with a partition number and a text.", \
4657" GPT CRC should be : <hex> to match first 92 GPT header block bytes", \
4658" GPT CRC found : <hex> matches all 512 bytes of GPT header block", \
4659" libisofs-1.2.4 to 1.2.8 had a bug with the GPT header CRC. So", \
4660" libisofs is willing to recognize GPT with the buggy CRC. These", \
4661" two lines inform that most partition editors will not accept it.", \
4662" GPT array CRC wrong: should be <hex>, found <hex>", \
4663" GPT entry arrays are accepted even if their CRC does not match.", \
4664" In this case, both CRCs are reported by this line.", \
4665" GPT backup problems: text", \
4666" reports about inconsistencies between main GPT and backup GPT.", \
4667" The statements are comma separated:", \
4668" Implausible header LBA <decimal>", \
4669" Cannot read header block at 2k LBA <decimal>", \
4670" Not a GPT 1.0 header of 92 bytes for 128 bytes per entry", \
4671" Head CRC <hex> wrong. Should be <hex>", \
4672" Head CRC <hex> wrong. Should be <hex>. Matches all 512 block bytes", \
4673" Disk GUID differs (<hex_digits>)", \
4674" Cannot read array block at 2k LBA <decimal>", \
4675" Array CRC <hex> wrong. Should be <hex>", \
4676" Entries differ for partitions <decimal> [... <decimal>]", \
4677" GPT disk GUID : hex_digits", \
4678" 32 hex digits giving the byte string of the disk's GUID", \
4679" GPT entry array : decimal decimal word", \
4680" start block of partition entry array and number of entries. 512 bytes", \
4681" per block. The word may be \"separated\" if partitions are disjoint,", \
4682" \"overlapping\" if they are not. In future there may be \"nested\"", \
4683" as special case where all overlapping partitions are superset and", \
4684" subset, and \"covering\" as special case of disjoint partitions", \
4685" covering the whole GPT block range for partitions.", \
4686" GPT lba range : decimal decimal decimal", \
4687" addresses of first payload block, last payload block, and of the", \
4688" GPT backup header block. 512 bytes per block." \
4690#define ISO_SYSAREA_REPORT_DOC_GPT2 \
4692" GPT partition name : X hex_digits", \
4693" up to 144 hex digits giving the UTF-16LE name byte string of", \
4694" partition X. Trailing 16 bit 0-characters are omitted.", \
4695" GPT partname local : X text", \
4696" the name of partition X converted to the local character set.", \
4697" This line may be missing if the name cannot be converted, or is", \
4699" GPT partition GUID : X hex_digits", \
4700" 32 hex digits giving the byte string of the GUID of partition X.", \
4701" GPT type GUID : X hex_digits", \
4702" 32 hex digits giving the byte string of the type GUID of partition X.", \
4703" GPT partition flags: X hex", \
4704" 64 flag bits of partition X in hex representation.", \
4705" Known bit meanings are:", \
4706" bit0 = \"System Partition\" Do not alter.", \
4707" bit2 = Legacy BIOS bootable (MBR partition type 0x80)", \
4708" bit60= read-only", \
4709" GPT start and size : X decimal decimal", \
4710" start block and number of blocks of partition X. 512 bytes per block.", \
4711" GPT partition path : X path", \
4712" the path of a file in the ISO image which began at the start block", \
4713" of partition X when the ISO filesystem was imported.", \
4715#define ISO_SYSAREA_REPORT_DOC_APM \
4717"Apple partition map can coexist with MBR and GPT:", \
4719" headline for human readers.", \
4720" APM block size : decimal", \
4721" block size of Apple Partition Map. 512 or 2048. This applies to", \
4722" start address and size of all partitions in the APM.", \
4723" APM gap fillers : decimal", \
4724" tells the number of partitions with name \"Gap[0-9[0-9]]\" and type", \
4725" \"ISO9660_data\".", \
4726" APM partition name : X text", \
4727" the name of partition X. Up to 32 characters.", \
4728" APM partition type : X text", \
4729" the type string of partition X. Up to 32 characters.", \
4730" APM start and size : X decimal decimal", \
4731" start block and number of blocks of partition X.", \
4732" APM partition path : X path", \
4733" the path of a file in the ISO image which began at the start block", \
4734" of partition X when the ISO filesystem was imported.", \
4736#define ISO_SYSAREA_REPORT_DOC_MIPS \
4738"If a MIPS Big Endian Volume Header is detected, there may be:", \
4739" MIPS-BE volume dir : N Name Block Bytes", \
4740" headline for human readers.", \
4741" MIPS-BE boot entry : X upto8chr decimal decimal", \
4742" tells name, 512-byte block address, and byte count of boot entry X.", \
4743" MIPS-BE boot path : X path", \
4744" tells the path to the boot image file in the ISO image which began", \
4745" at the block address given by boot entry X when the ISO filesystem", \
4748"If a DEC Boot Block for MIPS Little Endian is detected, there may be:", \
4749" MIPS-LE boot map : LoadAddr ExecAddr SegmentSize SegmentStart", \
4750" headline for human readers.", \
4751" MIPS-LE boot params: decimal decimal decimal decimal", \
4752" tells four numbers which are originally derived from the ELF header", \
4753" of the boot file. The first two are counted in bytes, the other two", \
4754" are counted in blocks of 512 bytes.", \
4755" MIPS-LE boot path : path", \
4756" tells the path to the boot image file in the ISO image which began", \
4757" at the block address given by SegmentStart when the ISO filesystem", \
4759" MIPS-LE elf offset : decimal", \
4760" tells the relative 512-byte block offset inside the boot file:", \
4761" SegmentStart - FileStartBlock", \
4763#define ISO_SYSAREA_REPORT_DOC_SUN \
4765"If a SUN SPARC Disk Label is present:", \
4766" SUN SPARC disklabel: text", \
4767" tells the disk label text.", \
4768" SUN SPARC secs/head: decimal", \
4769" tells the number of sectors per head.", \
4770" SUN SPARC heads/cyl: decimal", \
4771" tells the number of heads per cylinder.", \
4772" SUN SPARC partmap : N IdTag Perms StartCyl NumBlock", \
4773" headline for human readers.", \
4774" SUN SPARC partition: X hex hex decimal decimal", \
4775" gives partition number, type word, permission word, start cylinder,", \
4776" and number of of blocks. 512 bytes per block. Type word may be: ", \
4777" 0=unused, 2=root partition with boot, 4=user partition.", \
4778" Permission word is 0x10 = read-only.", \
4779" SPARC GRUB2 core : decimal decimal", \
4780" tells byte address and byte count of the GRUB2 SPARC core file.", \
4781" SPARC GRUB2 path : path", \
4782" tells the path to the data file in the ISO image which began at the", \
4783" address given by core when the ISO filesystem was imported.", \
4785#define ISO_SYSAREA_REPORT_DOC_HPPA \
4787"If a HP-PA PALO boot sector version 4 or 5 is present:", \
4788" PALO header version: decimal", \
4789" tells the PALO header version: 4 or 5.", \
4790" HP-PA cmdline : text", \
4791" tells the command line for the kernels.", \
4792" HP-PA boot files : ByteAddr ByteSize Path", \
4793" headline for human readers.", \
4794" HP-PA 32-bit kernel: decimal decimal path", \
4795" tells start byte and byte count of the 32-bit kernel and the path", \
4796" to the data file in the ISO image which began at the start byte", \
4797" when the ISO filesystem was imported.", \
4798" HP-PA 64-bit kernel: decimal decimal path", \
4799" tells the same for the 64-bit kernel.", \
4800" HP-PA ramdisk : decimal decimal path", \
4801" tells the same for the ramdisk file.", \
4802" HP-PA bootloader : decimal decimal path", \
4803" tells the same for the bootloader file.", \
4805#define ISO_SYSAREA_REPORT_DOC_ALPHA \
4806"If a DEC Alpha SRM boot sector is present:", \
4807" DEC Alpha ldr size : decimal", \
4808" tells the number of 512-byte blocks in DEC Alpha Secondary Bootstrap", \
4810" DEC Alpha ldr adr : decimal", \
4811" tells the start of the loader file in units of 512-byte blocks.", \
4812" DEC Alpha ldr path : path", \
4813" tells the path to a file in the ISO image which began at the", \
4814" loader start address when the ISO filesystem was imported."
4852 char ***reply,
int *line_count,
int flag);
4860#define ISO_ELTORITO_REPORT_DOC \
4861"Report format for recognized El Torito boot information.", \
4863"No text will be reported if no El Torito information was found.", \
4864"Else there will be at least these three lines", \
4865" El Torito catalog : decimal decimal", \
4866" tells the block address and number of 2048-blocks of the boot catalog.", \
4867" El Torito images : N Pltf B Emul Ld_seg Hdpt Ldsiz LBA", \
4868" is the headline of the boot image list.", \
4869" El Torito boot img : X word char word hex hex decimal decimal", \
4870" tells about boot image number X:", \
4871" - Platform Id: \"BIOS\", \"PPC\", \"Mac\", \"UEFI\" or a hex number.", \
4872" - Bootability: either \"y\" or \"n\".", \
4873" - Emulation: \"none\", \"fd1.2\", \"fd1.4\", \"fd2.8\", \"hd\"", \
4874" for no emulation, three floppy MB sizes, hard disk.", \
4875" - Load Segment: start offset in boot image. 0x0000 means 0x07c0.", \
4876" - Hard disk emulation partition type: MBR partition type code.", \
4877" - Load size: number of 512-blocks to load with emulation mode \"none\".", \
4878" - LBA: start block number in ISO filesystem (2048-block).", \
4880"The following lines appear conditionally:", \
4881" El Torito cat path : iso_rr_path", \
4882" tells the path to the data file in the ISO image which began at the", \
4883" block address where the boot catalog starts when the ISO filesystem", \
4885" (This line is not reported if no path points to that block.)", \
4886" El Torito img path : X iso_rr_path", \
4887" tells the path to the data file in the ISO image which began at the", \
4888" LBA of boot image X when the ISO filesystem was imported.", \
4889" (This line is not reported if no path points to that block.)", \
4890" El Torito img opts : X word ... word", \
4891" tells the presence of extra features:", \
4892" \"boot-info-table\" image got boot info table patching.", \
4893" \"isohybrid-suitable\" image is suitable for ISOLINUX isohybrid MBR.", \
4894" \"grub2-boot-info\" image got GRUB2 boot info patching.", \
4895" (This line is not reported if no such options were detected.)", \
4896" El Torito id string: X hex_digits", \
4897" tells the id string of the catalog section which hosts boot image X.", \
4898" (This line is not reported if the id string is all zero.)", \
4899" El Torito sel crit : X hex_digits", \
4900" tells the selection criterion of boot image X.", \
4901" (This line is not reported if the criterion is all zero.)", \
4902" El Torito img blks : X decimal", \
4903" gives an upper limit of the number of 2048-blocks in the boot image", \
4904" if it is not accessible via a path in the ISO directory tree.", \
4905" The boot image is supposed to end before the start block of any", \
4906" other entity of the ISO filesystem.", \
4907" (This line is not reported if no limiting entity is found.)", \
4908" El Torito hdsiz/512: X decimal", \
4909" gives with a boot image of emulation type \"hd\" the lowest block", \
4910" number which is above any partition end in the boot image's MBR", \
4911" partition table. This can be considered the claimed size of the", \
4912" emulated hard disk given in blocks of 512 bytes.", \
4913" (This line is not reported if no partition is found in the image.)", \
4946 char ***reply,
int *line_count,
int flag);
5094 char *kernel_32,
char *kernel_64,
char *ramdisk,
5118 char **kernel_32,
char **kernel_64,
char **ramdisk);
5640 const char *name,
IsoNode **node,
int flag);
6341 const char *name,
const char *dest,
6418 const char *name, mode_t mode,
6684 const char *path,
IsoNode **node);
6727 const char *name,
const char *path,
6728 off_t offset, off_t size,
6785 char *new_name,
IsoNode **new_node,
int flag);
6944 int *depth,
int flag);
6951#define LIBISO_MAX_LINK_DEPTH 100
7005 size_t *free_bytes);
7007#define ISO_MSGS_MESSAGE_LEN 4096
7053 char msg_text[],
char severity[]);
7080 char severity[],
int origin);
7456 unsigned char **aa_string,
int flag);
7822 char **access_text,
char **default_text,
int flag);
7861 char *access_text,
char *default_text,
int flag);
7918 char ***names,
size_t **value_lengths,
char ***values,
int flag);
7940 size_t *value_length,
char **value,
int flag);
7986 size_t *value_lengths,
char **values,
int flag);
8234 size_t **value_lengths,
char ***values,
int flag);
8276 size_t *value_lengths,
char **values,
8277 int *errnos,
int flag);
8285 size_t *value_lengths,
char **values,
int flag);
8324 int *os_errno,
int flag);
8366 uint64_t change_mask,
int *os_errno,
int flag);
8441 uint64_t *non_settable, uint64_t *unknown);
8544 int *os_errno,
int flag);
8552#define Libisofs_default_path_maX 4096
8786 uint8_t zisofs_algo[2], uint8_t* algo_num,
8787 int *block_size_log2,
int flag);
9099 uint32_t *end_lba,
char md5[16],
int flag);
9201 uint32_t *range_start, uint32_t *range_size,
9202 uint32_t *next_tag,
char md5[16],
int flag);
9421 int *bless_max,
int flag);
9469 char **result,
size_t *result_len,
int flag);
9476#define ISO_SUCCESS 1
9485#define ISO_CANCELED 0xE830FFFF
9488#define ISO_FATAL_ERROR 0xF030FFFE
9491#define ISO_ERROR 0xE830FFFD
9494#define ISO_ASSERT_FAILURE 0xF030FFFC
9499#define ISO_NULL_POINTER 0xE830FFFB
9502#define ISO_OUT_OF_MEM 0xF030FFFA
9505#define ISO_INTERRUPTED 0xF030FFF9
9508#define ISO_WRONG_ARG_VALUE 0xE830FFF8
9511#define ISO_THREAD_ERROR 0xF030FFF7
9514#define ISO_WRITE_ERROR 0xE830FFF6
9517#define ISO_BUF_READ_ERROR 0xE830FFF5
9520#define ISO_NODE_ALREADY_ADDED 0xE830FFC0
9523#define ISO_NODE_NAME_NOT_UNIQUE 0xE830FFBF
9526#define ISO_NODE_NOT_ADDED_TO_DIR 0xE830FFBE
9529#define ISO_NODE_DOESNT_EXIST 0xE830FFBD
9534#define ISO_IMAGE_ALREADY_BOOTABLE 0xE830FFBC
9537#define ISO_BOOT_IMAGE_NOT_VALID 0xE830FFBB
9540#define ISO_BOOT_IMAGE_OVERFLOW 0xE830FFBA
9543#define ISO_BOOT_NO_CATALOG 0xE830FFB9
9550#define ISO_FILE_ERROR 0xE830FF80
9553#define ISO_FILE_ALREADY_OPENED 0xE830FF7F
9556#define ISO_FILE_ALREADY_OPENNED 0xE830FF7F
9559#define ISO_FILE_ACCESS_DENIED 0xE830FF7E
9562#define ISO_FILE_BAD_PATH 0xE830FF7D
9565#define ISO_FILE_DOESNT_EXIST 0xE830FF7C
9568#define ISO_FILE_NOT_OPENED 0xE830FF7B
9571#define ISO_FILE_NOT_OPENNED ISO_FILE_NOT_OPENED
9574#define ISO_FILE_IS_DIR 0xE830FF7A
9577#define ISO_FILE_READ_ERROR 0xE830FF79
9580#define ISO_FILE_IS_NOT_DIR 0xE830FF78
9583#define ISO_FILE_IS_NOT_SYMLINK 0xE830FF77
9586#define ISO_FILE_SEEK_ERROR 0xE830FF76
9589#define ISO_FILE_IGNORED 0xD020FF75
9592#define ISO_FILE_TOO_BIG 0xE830FF74
9595#define ISO_FILE_CANT_WRITE 0xE430FF73
9598#define ISO_FILENAME_WRONG_CHARSET 0xD020FF72
9600#define ISO_FILENAME_WRONG_CHARSET_OLD 0xC020FF72
9603#define ISO_FILE_CANT_ADD 0xE030FF71
9609#define ISO_FILE_IMGPATH_WRONG 0xD020FF70
9615#define ISO_FILE_OFFSET_TOO_BIG 0xE830FF6A
9619#define ISO_CHARSET_CONV_ERROR 0xE830FF00
9625#define ISO_MANGLE_TOO_MUCH_FILES 0xE830FEFF
9633#define ISO_WRONG_PVD 0xE830FEC0
9636#define ISO_WRONG_RR 0xE030FEBF
9639#define ISO_UNSUPPORTED_RR 0xE030FEBE
9642#define ISO_WRONG_ECMA119 0xE830FEBD
9645#define ISO_UNSUPPORTED_ECMA119 0xE830FEBC
9648#define ISO_WRONG_EL_TORITO 0xD030FEBB
9651#define ISO_UNSUPPORTED_EL_TORITO 0xD030FEBA
9654#define ISO_ISOLINUX_CANT_PATCH 0xE030FEB9
9657#define ISO_UNSUPPORTED_SUSP 0xE030FEB8
9660#define ISO_WRONG_RR_WARN 0xD030FEB7
9663#define ISO_SUSP_UNHANDLED 0xC020FEB6
9666#define ISO_SUSP_MULTIPLE_ER 0xD030FEB5
9669#define ISO_UNSUPPORTED_VD 0xC020FEB4
9672#define ISO_EL_TORITO_WARN 0xD030FEB3
9675#define ISO_IMAGE_WRITE_CANCELED 0xE430FEB2
9678#define ISO_EL_TORITO_HIDDEN 0xD030FEB1
9683#define ISO_AAIP_IGNORED 0xB030FEB0
9686#define ISO_AAIP_BAD_ACL 0xE830FEAF
9689#define ISO_AAIP_BAD_ACL_TEXT 0xE830FEAE
9693#define ISO_AAIP_NOT_ENABLED 0xE830FEAD
9696#define ISO_AAIP_BAD_AASTRING 0xE830FEAC
9699#define ISO_AAIP_NO_GET_LOCAL 0xE830FEAB
9701#define ISO_AAIP_NO_GET_LOCAL_S 0xE030FEAB
9704#define ISO_AAIP_NO_SET_LOCAL 0xE830FEAA
9706#define ISO_AAIP_NO_SET_LOCAL_S 0xE030FEAA
9710#define ISO_AAIP_NON_USER_NAME 0xE830FEA9
9714#define ISO_EXTF_TOO_OFTEN 0xE830FEA8
9717#define ISO_ZLIB_NOT_ENABLED 0xE830FEA7
9720#define ISO_ZISOFS_TOO_LARGE 0xE830FEA6
9723#define ISO_FILTER_WRONG_INPUT 0xE830FEA5
9726#define ISO_ZLIB_COMPR_ERR 0xE830FEA4
9729#define ISO_ZISOFS_WRONG_INPUT 0xE830FEA3
9733#define ISO_ZISOFS_PARAM_LOCK 0xE830FEA2
9736#define ISO_ZLIB_EARLY_EOF 0xE830FEA1
9742#define ISO_MD5_AREA_CORRUPTED 0xD030FEA0
9749#define ISO_MD5_TAG_MISMATCH 0xE830FE9F
9756#define ISO_SB_TREE_CORRUPTED 0xE830FE9E
9762#define ISO_MD5_TAG_UNEXPECTED 0xD030FE9D
9768#define ISO_MD5_TAG_MISPLACED 0xD030FE9C
9775#define ISO_MD5_TAG_OTHER_RANGE 0xD030FE9B
9782#define ISO_MD5_STREAM_CHANGE 0xE430FE9A
9789#define ISO_SCDBACKUP_TAG_NOT_0 0xD030FE99
9797#define ISO_OVWRT_MS_TOO_SMALL 0xE830FE98
9804#define ISO_PART_OFFST_TOO_SMALL 0xE830FE97
9810#define ISO_OVWRT_FIFO_TOO_SMALL 0xE830FE96
9813#define ISO_LIBJTE_NOT_ENABLED 0xE830FE95
9816#define ISO_LIBJTE_START_FAILED 0xE830FE94
9819#define ISO_LIBJTE_END_FAILED 0xE830FE93
9823#define ISO_LIBJTE_FILE_FAILED 0xE430FE92
9826#define ISO_BOOT_TOO_MANY_MIPS 0xE830FE91
9829#define ISO_BOOT_FILE_MISSING 0xE430FE90
9832#define ISO_BAD_PARTITION_NO 0xE830FE8F
9835#define ISO_BAD_PARTITION_FILE 0xE830FE8E
9839#define ISO_NON_MBR_SYS_AREA 0xE830FE8D
9842#define ISO_DISPLACE_ROLLOVER 0xE830FE8C
9846#define ISO_NAME_NEEDS_TRANSL 0xE830FE8B
9850#define ISO_STREAM_NO_CLONE 0xE830FE8A
9854#define ISO_XINFO_NO_CLONE 0xE830FE89
9857#define ISO_MD5_TAG_COPIED 0xD030FE88
9860#define ISO_RR_NAME_TOO_LONG 0xE830FE87
9863#define ISO_RR_NAME_RESERVED 0xE830FE86
9866#define ISO_RR_PATH_TOO_LONG 0xE830FE85
9869#define ISO_AAIP_BAD_ATTR_NAME 0xE830FE84
9873#define ISO_AAIP_ACL_MULT_OBJ 0xE830FE83
9877#define ISO_SECT_SCATTERED 0xE830FE82
9880#define ISO_BOOT_TOO_MANY_APM 0xE830FE81
9883#define ISO_BOOT_APM_OVERLAP 0xE830FE80
9886#define ISO_BOOT_TOO_MANY_GPT 0xE830FE7F
9889#define ISO_BOOT_GPT_OVERLAP 0xE830FE7E
9892#define ISO_BOOT_TOO_MANY_MBR 0xE830FE7D
9895#define ISO_BOOT_MBR_OVERLAP 0xE830FE7C
9898#define ISO_BOOT_MBR_COLLISION 0xE830FE7B
9902#define ISO_BOOT_NO_EFI_ELTO 0xE830FE7A
9905#define ISO_BOOT_HFSP_BAD_BSIZE 0xE830FE79
9908#define ISO_BOOT_APM_GPT_BSIZE 0xE830FE78
9911#define ISO_HFSP_NO_MANGLE 0xE830FE77
9914#define ISO_DEAD_SYMLINK 0xE830FE76
9917#define ISO_DEEP_SYMLINK 0xE830FE75
9920#define ISO_BAD_ISO_FILETYPE 0xE830FE74
9923#define ISO_NAME_NOT_UCS2 0xD030FE73
9926#define ISO_IMPORT_COLLISION 0xD030FE72
9929#define ISO_HPPA_PALO_INCOMPL 0xE830FE71
9932#define ISO_HPPA_PALO_OFLOW 0xE830FE70
9935#define ISO_HPPA_PALO_NOTREG 0xE830FE6F
9938#define ISO_HPPA_PALO_CMDLEN 0xE830FE6E
9941#define ISO_SYSAREA_PROBLEMS 0xD030FE6D
9944#define ISO_INQ_SYSAREA_PROP 0xE830FE6C
9947#define ISO_ALPHA_BOOT_NOTREG 0xE830FE6B
9950#define ISO_NO_KEPT_DATA_SRC 0xD030FE6A
9953#define ISO_MALFORMED_READ_INTVL 0xE830FE69
9957#define ISO_INTVL_READ_PROBLEM 0xD030FE68
9961#define ISO_NOT_REPRODUCIBLE 0xB030FE67
9965#define ISO_PATCH_FILTERED_BOOT 0xE830FE66
9969#define ISO_PATCH_OVERSIZED_BOOT 0xE830FE65
9972#define ISO_RR_NAME_TRUNCATED 0xD030FE64
9976#define ISO_TRUNCATE_ISOFSNT 0xB030FE63
9979#define ISO_GENERAL_NOTE 0xB030FE62
9982#define ISO_BAD_FSRC_FILETYPE 0xE030FE61
9986#define ISO_GPT_NO_VOL_UUID 0xE830FE60
9990#define ISO_BAD_GPT_GUID_MODE 0xE830FE5F
9993#define ISO_NO_ROOT_DIR 0xF030FE5E
9997#define ISO_SUSP_WRONG_CE_SIZE 0xE830FE5D
10001#define ISO_MULTI_OVER_IMPORTED 0xE830FE5C
10004#define ISO_ELTO_EFI_HIDDEN 0xB030FE5B
10007#define ISO_HFSPLUS_TOO_MANY_FILES 0xE830FE5A
10010#define ISO_ZISOFS_TOO_MANY_PTR 0xE830FE59
10013#define ISO_ZISOFS_BPT_UNDERRUN 0xD020FE58
10016#define ISO_ZISOFS_UNKNOWN_SIZE 0xE830FE57
10019#define ISO_UNDEF_READ_FEATURE 0xE030FE56
10022#define ISO_TOO_MANY_CE 0xE830FE55
10026#define ISO_TOO_MANY_CE_FOR_LINUX 0xD030FE54
10030#define ISO_CE_REMOVING_ATTR 0xD030FE53
10034#define ISO_LFA_UNKNOWN_LETTER 0xD030FE52
10038#define ISO_LFA_UNKNOWN_BIT 0xD030FE51
10042#define ISO_LFA_NOT_ENABLED 0xE030FE50
10046#define ISO_LFA_NO_GET_LOCAL 0xE030FE4F
10050#define ISO_LFA_NO_SET_LOCAL 0xE030FE4E
10054#define ISO_LFA_NO_OPEN_LOCAL 0xE030FE4D
10058#define ISO_PROJID_NOT_ENABLED 0xE030FE4C
10062#define ISO_PROJID_NO_GET_LOCAL 0xE030FE4B
10066#define ISO_PROJID_NO_SET_LOCAL 0xE030FE4A
10070#define ISO_PROJID_NO_OPEN_LOCAL 0xE030FE49
10074#define ISO_DIR_REC_SIZE_MISMATCH 0xD030FE48
10077#define ISO_INSANE_CE_SIZE 0xD030FE47
10080#define ISO_DEV_NOT_CREATED 0xE830FE46
10084#define ISO_DEV_NO_CREATION 0xE830FE45
10097#define ISO_DATA_SOURCE_SORRY 0xE030FCFF
10100#define ISO_DATA_SOURCE_MISHAP 0xE430FCFF
10103#define ISO_DATA_SOURCE_FAILURE 0xE830FCFF
10106#define ISO_DATA_SOURCE_FATAL 0xF030FCFF
10114#ifdef LIBISOFS_WITHOUT_LIBBURN
10142struct burn_source {
10172 int (*read)(
struct burn_source *,
unsigned char *buffer,
int size);
10181 int (*read_sub)(
struct burn_source *,
unsigned char *buffer,
int size);
10188 off_t (*get_size)(
struct burn_source *);
10204 int (*set_size)(
struct burn_source *source, off_t size);
10211 void (*free_data)(
struct burn_source *);
10218 struct burn_source *next;
10252 int (*read_xt)(
struct burn_source *,
unsigned char *buffer,
int size);
10258 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)
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 of an image for ISO 9660 and Rock Ridge.
int iso_local_get_projid(char *disk_path, uint32_t *projid, int *os_errno, int flag)
Obtain the XFS-style project id of the given file.
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 possibly loaded El Torito boot inf...
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 perform operations on ACL, xattr,...
IsoFindCondition * iso_new_find_conditions_mode(mode_t mask)
Create a new condition that checks the node mode against a mode mask.
const char * iso_image_fs_get_volume_id_v2(IsoImageFilesystem *fs, int fs_type)
Get the volume identifier of a loaded image from a particular filesystem superblock.
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_rrip_tf_y1900(IsoWriteOpts *opts, int enable)
Enable curbing of of time values before year 1900 AD in RRIP field TF.
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.
struct IsoStream_Iface IsoStreamIface
Interface that defines the operations (methods) available for an IsoStream.
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_image_set_volume_id_v2(IsoImage *image, int fs_type_mask, const char *volume_id)
Fill in the volume identifier for one or more filesystem superblocks in an image.
int iso_node_get_projid(IsoNode *node, uint32_t *projid, int flag)
Obtain the XFS-style project id of the given node.
int iso_read_opts_set_no_md5(IsoReadOpts *opts, int no_md5)
Control reading of an array of MD5 checksums which is possibly 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 possibl...
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 the tree of an Enhanced Volume Descriptor (aka ISO 9660:1999) as of ECMA-119 4th Edition.
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...
uint64_t iso_util_get_effective_lfa_mask(uint64_t change_mask, int flag)
Return the effective change mask which will be used by iso_local_set_lfa_flags() with the same input ...
void iso_file_source_unref(IsoFileSource *src)
Drop your ref to the given IsoFileSource, freeing the associated system resources if not still needed...
struct iso_filesystem IsoFilesystem
Abstract for source filesystems.
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_gpt_with_gaps(IsoWriteOpts *opts, int with_gaps, int with_gaps_no_sort, int with_gaps_no_iso)
Control whether the GPT partition table is allowed to leave some parts of the emerging ISO image unco...
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 checksum tag and if so, obtain its recorded parameters.
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 whi...
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 possibly 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 possibly 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 writing.
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.
int iso_node_set_projid(IsoNode *node, uint32_t projid, int flag)
Set the Linux-like XFS-style project id of the given node.
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().
struct iso_external_filter_command IsoExternalFilterCommand
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_local_create_dev(char *disk_path, mode_t st_mode, dev_t dev, int *os_errno, int flag)
Create a device file in the local filesystem.
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 create an additional tree starting at Enhanced Volume Descriptor (aka ISO 9660:1999) as of...
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 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 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.
struct iso_data_source IsoDataSource
Source for image reading.
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 = Enhanced Volume Descriptor tree...
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, in the volume descripto...
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.
void iso_util_get_lfa_masks(uint64_t *user_settable, uint64_t *su_settable, uint64_t *non_settable, uint64_t *unknown)
Return the bit patterns of four classes of Linux-like file attribute flags.
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.
int iso_util_encode_lfa_flags(uint64_t lfa_flags, char **flags_text, int flag)
Convert the known set bits of the given Linux-like file attribute flags to a string of flag letters l...
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 iso_write_opts_set_relaxed_nonvol_atts(IsoWriteOpts *opts, int allow)
Like iso_write_opts_set_relaxed_vol_atts() but for all other text attributes in the Primary Volume De...
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 iso_util_decode_lfa_flags(char *flags_text, uint64_t *lfa_flags, int flag)
Convert the given string of flag letters to a bit array usable by iso_*_set_lfa_flags().
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().
const char * iso_image_get_volume_id_v2(const IsoImage *image, int fs_type)
Get the current volume identifier of an image for a particular filesystem superblock.
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.
struct iso_stream IsoStream
Representation of file contents.
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 tree of an Enhanced Volume Descriptor (aka ISO 9660:1999) as of ECMA-119 4th Edi...
@ 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 iso_local_set_lfa_flags(char *disk_path, uint64_t lfa_flags, int max_bit, uint64_t change_mask, int *os_errno, int flag)
Bring the given Linux-like file attribute flags (chattr) into effect with the given file.
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_get_lfa_flags(IsoNode *node, uint64_t *lfa_flags, int *max_bit, int flag)
Obtain the Linux-like file attribute flags (chattr) as bit array.
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, non-trivial ACLs, possible Linux-like file attribute flags (chattr), and XFS-style project...
struct iso_file_source IsoFileSource
POSIX abstraction for source files.
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 free it if reference count reaches 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 all filesystem superblocks in an image.
int iso_local_set_projid(char *disk_path, uint32_t projid, int *os_errno, int flag)
Bring the given XFS-style project id into effect with the given file.
int iso_node_get_hidden(IsoNode *node)
Get the hide_attrs as possibly 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 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.
struct IsoFileSource_Iface IsoFileSourceIface
Interface that defines the operations (methods) available for an IsoFileSource.
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 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 with an Enhanced Volume Descriptor (aka ISO 9660:1999) as of ECMA-119 4...
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_node_set_lfa_flags(IsoNode *node, uint64_t lfa_flags, int flag)
Set the Linux-like file attribute flags (chattr) which are associated with the node.
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.
int iso_local_get_lfa_flags(char *disk_path, uint64_t *lfa_flags, int *max_bit, int *os_errno, int flag)
Obtain the Linux-like file attribute flags (chattr) of the given file as bit array.
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 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 the 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.
int iso_write_opts_set_rrip_tf_long(IsoWriteOpts *opts, int enable)
Force writing of RRIP field TF with LONG FORM timestamps of 17 bytes instead of 7-byte timestamps.
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 imported or emerging 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