Go to the documentation of this file.
2 #ifndef LIBISO_LIBISOFS_H_
3 #define LIBISO_LIBISOFS_H_
46 #ifdef HAVE_INTTYPES_H
95 #define iso_lib_header_version_major 1
96 #define iso_lib_header_version_minor 4
97 #define iso_lib_header_version_micro 8
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)
875 unsigned char **aa_string,
int flag);
902 #ifndef Libisofs_h_as_cpluspluS
1172 #ifndef Libisofs_h_as_cpluspluS
1478 uint8_t serial_number[8]);
1498 int hfsp_block_size,
int apm_block_size);
1926 char *name,
char *timestamp,
1948 int file_mode,
int uid,
int gid);
2254 int options,
int flag);
2309 time_t vol_creation_time, time_t vol_modification_time,
2310 time_t vol_expiration_time, time_t vol_effective_time,
2347 uint32_t block_offset_2k,
2348 int secs_512_per_head,
int heads_per_cyl);
2356 #define iso_libjte_req_major 1
2357 #define iso_libjte_req_minor 0
2358 #define iso_libjte_req_micro 0
2470 struct iso_interval_reader;
2493 struct iso_interval_reader **ivr,
2494 off_t *byte_count,
int flag);
2529 int *buf_fill,
int flag);
2684 uint8_t partition_type,
char *image_path,
int flag);
2822 struct burn_source **burn_src);
3360 const char *data_preparer_id);
3410 const char *copyright_file_id);
3428 const char *abstract_file_id);
3513 char **creation_time,
char **modification_time,
3514 char **expiration_time,
char **effective_time);
3563 const char *catalog_path,
3661 char **content, off_t *size);
4059 int options,
int flag);
4106 int *options,
int flag);
4114 #define ISO_MAX_SYSAREA_LINE_LENGTH 4096
4122 #define ISO_SYSAREA_REPORT_DOC \
4124 "Report format for recognized System Area data.", \
4126 "No text will be reported if no System Area was loaded or if it was", \
4127 "entirely filled with 0-bytes.", \
4128 "Else there will be at least these three lines:", \
4129 " System area options: hex", \
4130 " see libisofs.h, parameter of iso_write_opts_set_system_area().", \
4131 " System area summary: word ... word", \
4132 " human readable interpretation of system area options and other info", \
4133 " The words are from the set:", \
4134 " { MBR, CHRP, PReP, GPT, APM, MIPS-Big-Endian, MIPS-Little-Endian,", \
4135 " SUN-SPARC-Disk-Label, HP-PA-PALO, DEC-Alpha, ", \
4136 " protective-msdos-label, isohybrid, grub2-mbr,", \
4137 " cyl-align-{auto,on,off,all}, not-recognized, }", \
4138 " The acronyms indicate boot data for particular hardware/firmware.", \
4139 " protective-msdos-label is an MBR conformant to specs of GPT.", \
4140 " isohybrid is an MBR implementing ISOLINUX isohybrid functionality.", \
4141 " grub2-mbr is an MBR with GRUB2 64 bit address patching.", \
4142 " cyl-align-on indicates that the ISO image MBR partition ends at a", \
4143 " cylinder boundary. cyl-align-all means that more MBR partitions", \
4144 " exist and all end at a cylinder boundary.", \
4145 " not-recognized tells about unrecognized non-zero system area data.", \
4146 " ISO image size/512 : decimal", \
4147 " size of ISO image in block units of 512 bytes.", \
4149 #define ISO_SYSAREA_REPORT_DOC_MBR \
4151 "If an MBR is detected, with at least one partition entry of non-zero size,", \
4152 "then there may be:", \
4153 " Partition offset : decimal", \
4154 " if not 0 then a second ISO 9660 superblock was found to which", \
4155 " MBR partition 1 or GPT partition 1 is pointing.", \
4156 " MBR heads per cyl : decimal", \
4157 " conversion factor between MBR C/H/S address and LBA. 0=inconsistent.", \
4158 " MBR secs per head : decimal", \
4159 " conversion factor between MBR C/H/S address and LBA. 0=inconsistent.", \
4160 " MBR partition table: N Status Type Start Blocks", \
4161 " headline for MBR partition table.", \
4162 " MBR partition : X hex hex decimal decimal", \
4163 " gives partition number, status byte, type byte, start block,", \
4164 " and number of blocks. 512 bytes per block.", \
4165 " MBR partition path : X path", \
4166 " the path of a file in the ISO image which begins at the partition", \
4167 " start block of partition X.", \
4168 " PReP boot partition: decimal decimal", \
4169 " gives start block and size of a PReP boot partition in ISO 9660", \
4170 " block units of 2048 bytes.", \
4172 #define ISO_SYSAREA_REPORT_DOC_GPT1 \
4174 "GUID Partition Table can coexist with MBR:", \
4176 " headline for GPT partition table. The fields are too wide for a", \
4177 " neat table. So they are listed with a partition number and a text.", \
4178 " GPT CRC should be : <hex> to match first 92 GPT header block bytes", \
4179 " GPT CRC found : <hex> matches all 512 bytes of GPT header block", \
4180 " libisofs-1.2.4 to 1.2.8 had a bug with the GPT header CRC. So", \
4181 " libisofs is willing to recognize GPT with the buggy CRC. These", \
4182 " two lines inform that most partition editors will not accept it.", \
4183 " GPT array CRC wrong: should be <hex>, found <hex>", \
4184 " GPT entry arrays are accepted even if their CRC does not match.", \
4185 " In this case, both CRCs are reported by this line.", \
4186 " GPT backup problems: text", \
4187 " reports about inconsistencies between main GPT and backup GPT.", \
4188 " The statements are comma separated:", \
4189 " Implausible header LBA <decimal>", \
4190 " Cannot read header block at 2k LBA <decimal>", \
4191 " Not a GPT 1.0 header of 92 bytes for 128 bytes per entry", \
4192 " Head CRC <hex> wrong. Should be <hex>", \
4193 " Head CRC <hex> wrong. Should be <hex>. Matches all 512 block bytes", \
4194 " Disk GUID differs (<hex_digits>)", \
4195 " Cannot read array block at 2k LBA <decimal>", \
4196 " Array CRC <hex> wrong. Should be <hex>", \
4197 " Entries differ for partitions <decimal> [... <decimal>]", \
4198 " GPT disk GUID : hex_digits", \
4199 " 32 hex digits giving the byte string of the disk's GUID", \
4200 " GPT entry array : decimal decimal word", \
4201 " start block of partition entry array and number of entries. 512 bytes", \
4202 " per block. The word may be \"separated\" if partitions are disjoint,", \
4203 " \"overlapping\" if they are not. In future there may be \"nested\"", \
4204 " as special case where all overlapping partitions are superset and", \
4205 " subset, and \"covering\" as special case of disjoint partitions", \
4206 " covering the whole GPT block range for partitions.", \
4207 " GPT lba range : decimal decimal decimal", \
4208 " addresses of first payload block, last payload block, and of the", \
4209 " GPT backup header block. 512 bytes per block." \
4211 #define ISO_SYSAREA_REPORT_DOC_GPT2 \
4213 " GPT partition name : X hex_digits", \
4214 " up to 144 hex digits giving the UTF-16LE name byte string of", \
4215 " partition X. Trailing 16 bit 0-characters are omitted.", \
4216 " GPT partname local : X text", \
4217 " the name of partition X converted to the local character set.", \
4218 " This line may be missing if the name cannot be converted, or is", \
4220 " GPT partition GUID : X hex_digits", \
4221 " 32 hex digits giving the byte string of the GUID of partition X.", \
4222 " GPT type GUID : X hex_digits", \
4223 " 32 hex digits giving the byte string of the type GUID of partition X.", \
4224 " GPT partition flags: X hex", \
4225 " 64 flag bits of partition X in hex representation.", \
4226 " Known bit meanings are:", \
4227 " bit0 = \"System Partition\" Do not alter.", \
4228 " bit2 = Legacy BIOS bootable (MBR partition type 0x80)", \
4229 " bit60= read-only", \
4230 " GPT start and size : X decimal decimal", \
4231 " start block and number of blocks of partition X. 512 bytes per block.", \
4232 " GPT partition path : X path", \
4233 " the path of a file in the ISO image which begins at the partition", \
4234 " start block of partition X.", \
4236 #define ISO_SYSAREA_REPORT_DOC_APM \
4238 "Apple partition map can coexist with MBR and GPT:", \
4240 " headline for human readers.", \
4241 " APM block size : decimal", \
4242 " block size of Apple Partition Map. 512 or 2048. This applies to", \
4243 " start address and size of all partitions in the APM.", \
4244 " APM gap fillers : decimal", \
4245 " tells the number of partitions with name \"Gap[0-9[0-9]]\" and type", \
4246 " \"ISO9660_data\".", \
4247 " APM partition name : X text", \
4248 " the name of partition X. Up to 32 characters.", \
4249 " APM partition type : X text", \
4250 " the type string of partition X. Up to 32 characters.", \
4251 " APM start and size : X decimal decimal", \
4252 " start block and number of blocks of partition X.", \
4253 " APM partition path : X path", \
4254 " the path of a file in the ISO image which begins at the partition", \
4255 " start block of partition X.", \
4257 #define ISO_SYSAREA_REPORT_DOC_MIPS \
4259 "If a MIPS Big Endian Volume Header is detected, there may be:", \
4260 " MIPS-BE volume dir : N Name Block Bytes", \
4261 " headline for human readers.", \
4262 " MIPS-BE boot entry : X upto8chr decimal decimal", \
4263 " tells name, 512-byte block address, and byte count of boot entry X.", \
4264 " MIPS-BE boot path : X path", \
4265 " tells the path to the boot image file in the ISO image which belongs", \
4266 " to the block address given by boot entry X.", \
4268 "If a DEC Boot Block for MIPS Little Endian is detected, there may be:", \
4269 " MIPS-LE boot map : LoadAddr ExecAddr SegmentSize SegmentStart", \
4270 " headline for human readers.", \
4271 " MIPS-LE boot params: decimal decimal decimal decimal", \
4272 " tells four numbers which are originally derived from the ELF header", \
4273 " of the boot file. The first two are counted in bytes, the other two", \
4274 " are counted in blocks of 512 bytes.", \
4275 " MIPS-LE boot path : path", \
4276 " tells the path to the boot file in the ISO image which belongs to the", \
4277 " address given by SegmentStart.", \
4278 " MIPS-LE elf offset : decimal", \
4279 " tells the relative 512-byte block offset inside the boot file:", \
4280 " SegmentStart - FileStartBlock", \
4282 #define ISO_SYSAREA_REPORT_DOC_SUN \
4284 "If a SUN SPARC Disk Label is present:", \
4285 " SUN SPARC disklabel: text", \
4286 " tells the disk label text.", \
4287 " SUN SPARC secs/head: decimal", \
4288 " tells the number of sectors per head.", \
4289 " SUN SPARC heads/cyl: decimal", \
4290 " tells the number of heads per cylinder.", \
4291 " SUN SPARC partmap : N IdTag Perms StartCyl NumBlock", \
4292 " headline for human readers.", \
4293 " SUN SPARC partition: X hex hex decimal decimal", \
4294 " gives partition number, type word, permission word, start cylinder,", \
4295 " and number of of blocks. 512 bytes per block. Type word may be: ", \
4296 " 0=unused, 2=root partition with boot, 4=user partition.", \
4297 " Permission word is 0x10 = read-only.", \
4298 " SPARC GRUB2 core : decimal decimal", \
4299 " tells byte address and byte count of the GRUB2 SPARC core file.", \
4300 " SPARC GRUB2 path : path", \
4301 " tells the path to the data file in the ISO image which belongs to the", \
4302 " address given by core.", \
4304 #define ISO_SYSAREA_REPORT_DOC_HPPA \
4306 "If a HP-PA PALO boot sector version 4 or 5 is present:", \
4307 " PALO header version: decimal", \
4308 " tells the PALO header version: 4 or 5.", \
4309 " HP-PA cmdline : text", \
4310 " tells the command line for the kernels.", \
4311 " HP-PA boot files : ByteAddr ByteSize Path", \
4312 " headline for human readers.", \
4313 " HP-PA 32-bit kernel: decimal decimal path", \
4314 " tells start byte, byte count, and file path of the 32-bit kernel.", \
4315 " HP-PA 64-bit kernel: decimal decimal path", \
4316 " tells the same for the 64-bit kernel.", \
4317 " HP-PA ramdisk : decimal decimal path", \
4318 " tells the same for the ramdisk file.", \
4319 " HP-PA bootloader : decimal decimal path", \
4320 " tells the same for the bootloader file.", \
4322 #define ISO_SYSAREA_REPORT_DOC_ALPHA \
4323 "If a DEC Alpha SRM boot sector is present:", \
4324 " DEC Alpha ldr size : decimal", \
4325 " tells the number of 512-byte blocks in DEC Alpha Secondary Bootstrap", \
4327 " DEC Alpha ldr adr : decimal", \
4328 " tells the start of the loader file in units of 512-byte blocks.", \
4329 " DEC Alpha ldr path : path", \
4330 " tells the path of a file in the ISO image which starts at the loader", \
4369 char ***reply,
int *line_count,
int flag);
4377 #define ISO_ELTORITO_REPORT_DOC \
4378 "Report format for recognized El Torito boot information.", \
4380 "No text will be reported if no El Torito information was found.", \
4381 "Else there will be at least these three lines", \
4382 " El Torito catalog : decimal decimal", \
4383 " tells the block address and number of 2048-blocks of the boot catalog.", \
4384 " El Torito images : N Pltf B Emul Ld_seg Hdpt Ldsiz LBA", \
4385 " is the headline of the boot image list.", \
4386 " El Torito boot img : X word char word hex hex decimal decimal", \
4387 " tells about boot image number X:", \
4388 " - Platform Id: \"BIOS\", \"PPC\", \"Mac\", \"UEFI\" or a hex number.", \
4389 " - Bootability: either \"y\" or \"n\".", \
4390 " - Emulation: \"none\", \"fd1.2\", \"fd1.4\", \"fd2.8\", \"hd\"", \
4391 " for no emulation, three floppy MB sizes, hard disk.", \
4392 " - Load Segment: start offset in boot image. 0x0000 means 0x07c0.", \
4393 " - Hard disk emulation partition type: MBR partition type code.", \
4394 " - Load size: number of 512-blocks to load with emulation mode \"none\".", \
4395 " - LBA: start block number in ISO filesystem (2048-block).", \
4397 "The following lines appear conditionally:", \
4398 " El Torito cat path : iso_rr_path", \
4399 " tells the path to the data file in the ISO image which belongs to", \
4400 " the block address where the boot catalog starts.", \
4401 " (This line is not reported if no path points to that block.)", \
4402 " El Torito img path : X iso_rr_path", \
4403 " tells the path to the data file in the ISO image which belongs to", \
4404 " the block address given by LBA of boot image X.", \
4405 " (This line is not reported if no path points to that block.)", \
4406 " El Torito img opts : X word ... word", \
4407 " tells the presence of extra features:", \
4408 " \"boot-info-table\" image got boot info table patching.", \
4409 " \"isohybrid-suitable\" image is suitable for ISOLINUX isohybrid MBR.", \
4410 " \"grub2-boot-info\" image got GRUB2 boot info patching.", \
4411 " (This line is not reported if no such options were detected.)", \
4412 " El Torito id string: X hex_digits", \
4413 " tells the id string of the catalog section which hosts boot image X.", \
4414 " (This line is not reported if the id string is all zero.)", \
4415 " El Torito sel crit : X hex_digits", \
4416 " tells the selection criterion of boot image X.", \
4417 " (This line is not reported if the criterion is all zero.)", \
4418 " El Torito img blks : X decimal", \
4419 " gives an upper limit of the number of 2048-blocks in the boot image", \
4420 " if it is not accessible via a path in the ISO directory tree.", \
4421 " The boot image is supposed to end before the start block of any", \
4422 " other entity of the ISO filesystem.", \
4423 " (This line is not reported if no limiting entity is found.)", \
4456 char ***reply,
int *line_count,
int flag);
4486 uint32_t
iso_crc32_gpt(
unsigned char *data,
int count,
int flag);
4604 char *kernel_32,
char *kernel_64,
char *ramdisk,
4628 char **kernel_32,
char **kernel_64,
char **ramdisk);
5149 const char *name,
IsoNode **node,
int flag);
5850 const char *name,
const char *dest,
5927 const char *name, mode_t mode,
6193 const char *path,
IsoNode **node);
6232 const char *name,
const char *path,
6233 off_t offset, off_t size,
6290 char *new_name,
IsoNode **new_node,
int flag);
6427 int *depth,
int flag);
6434 #define LIBISO_MAX_LINK_DEPTH 100
6488 size_t *free_bytes);
6490 #define ISO_MSGS_MESSAGE_LEN 4096
6535 int iso_obtain_msgs(
char *minimum_severity,
int *error_code,
int *imgid,
6536 char msg_text[],
char severity[]);
6563 char severity[],
int origin);
6927 unsigned char **aa_string,
int flag);
7271 char **access_text,
char **default_text,
int flag);
7306 char *access_text,
char *default_text,
int flag);
7363 char ***names,
size_t **value_lengths,
char ***values,
int flag);
7385 size_t *value_length,
char **value,
int flag);
7431 size_t *value_lengths,
char **values,
int flag);
7575 size_t **value_lengths,
char ***values,
int flag);
7609 size_t *value_lengths,
char **values,
int flag);
7614 #define Libisofs_default_path_maX 4096
7995 uint32_t *end_lba,
char md5[16],
int flag);
8096 uint32_t *range_start, uint32_t *range_size,
8097 uint32_t *next_tag,
char md5[16],
int flag);
8147 int iso_md5_clone(
void *old_md5_context,
void **new_md5_context);
8164 int iso_md5_end(
void **md5_context,
char result[16]);
8316 int *bless_max,
int flag);
8364 char **result,
size_t *result_len,
int flag);
8371 #define ISO_SUCCESS 1
8380 #define ISO_CANCELED 0xE830FFFF
8383 #define ISO_FATAL_ERROR 0xF030FFFE
8386 #define ISO_ERROR 0xE830FFFD
8389 #define ISO_ASSERT_FAILURE 0xF030FFFC
8394 #define ISO_NULL_POINTER 0xE830FFFB
8397 #define ISO_OUT_OF_MEM 0xF030FFFA
8400 #define ISO_INTERRUPTED 0xF030FFF9
8403 #define ISO_WRONG_ARG_VALUE 0xE830FFF8
8406 #define ISO_THREAD_ERROR 0xF030FFF7
8409 #define ISO_WRITE_ERROR 0xE830FFF6
8412 #define ISO_BUF_READ_ERROR 0xE830FFF5
8415 #define ISO_NODE_ALREADY_ADDED 0xE830FFC0
8418 #define ISO_NODE_NAME_NOT_UNIQUE 0xE830FFBF
8421 #define ISO_NODE_NOT_ADDED_TO_DIR 0xE830FFBE
8424 #define ISO_NODE_DOESNT_EXIST 0xE830FFBD
8429 #define ISO_IMAGE_ALREADY_BOOTABLE 0xE830FFBC
8432 #define ISO_BOOT_IMAGE_NOT_VALID 0xE830FFBB
8435 #define ISO_BOOT_IMAGE_OVERFLOW 0xE830FFBA
8438 #define ISO_BOOT_NO_CATALOG 0xE830FFB9
8445 #define ISO_FILE_ERROR 0xE830FF80
8448 #define ISO_FILE_ALREADY_OPENED 0xE830FF7F
8451 #define ISO_FILE_ALREADY_OPENNED 0xE830FF7F
8454 #define ISO_FILE_ACCESS_DENIED 0xE830FF7E
8457 #define ISO_FILE_BAD_PATH 0xE830FF7D
8460 #define ISO_FILE_DOESNT_EXIST 0xE830FF7C
8463 #define ISO_FILE_NOT_OPENED 0xE830FF7B
8466 #define ISO_FILE_NOT_OPENNED ISO_FILE_NOT_OPENED
8469 #define ISO_FILE_IS_DIR 0xE830FF7A
8472 #define ISO_FILE_READ_ERROR 0xE830FF79
8475 #define ISO_FILE_IS_NOT_DIR 0xE830FF78
8478 #define ISO_FILE_IS_NOT_SYMLINK 0xE830FF77
8481 #define ISO_FILE_SEEK_ERROR 0xE830FF76
8484 #define ISO_FILE_IGNORED 0xD020FF75
8487 #define ISO_FILE_TOO_BIG 0xE830FF74
8490 #define ISO_FILE_CANT_WRITE 0xE430FF73
8493 #define ISO_FILENAME_WRONG_CHARSET 0xD020FF72
8495 #define ISO_FILENAME_WRONG_CHARSET_OLD 0xC020FF72
8498 #define ISO_FILE_CANT_ADD 0xE030FF71
8504 #define ISO_FILE_IMGPATH_WRONG 0xD020FF70
8510 #define ISO_FILE_OFFSET_TOO_BIG 0xE830FF6A
8514 #define ISO_CHARSET_CONV_ERROR 0xE830FF00
8520 #define ISO_MANGLE_TOO_MUCH_FILES 0xE830FEFF
8528 #define ISO_WRONG_PVD 0xE830FEC0
8531 #define ISO_WRONG_RR 0xE030FEBF
8534 #define ISO_UNSUPPORTED_RR 0xE030FEBE
8537 #define ISO_WRONG_ECMA119 0xE830FEBD
8540 #define ISO_UNSUPPORTED_ECMA119 0xE830FEBC
8543 #define ISO_WRONG_EL_TORITO 0xD030FEBB
8546 #define ISO_UNSUPPORTED_EL_TORITO 0xD030FEBA
8549 #define ISO_ISOLINUX_CANT_PATCH 0xE030FEB9
8552 #define ISO_UNSUPPORTED_SUSP 0xE030FEB8
8555 #define ISO_WRONG_RR_WARN 0xD030FEB7
8558 #define ISO_SUSP_UNHANDLED 0xC020FEB6
8561 #define ISO_SUSP_MULTIPLE_ER 0xD030FEB5
8564 #define ISO_UNSUPPORTED_VD 0xC020FEB4
8567 #define ISO_EL_TORITO_WARN 0xD030FEB3
8570 #define ISO_IMAGE_WRITE_CANCELED 0xE430FEB2
8573 #define ISO_EL_TORITO_HIDDEN 0xD030FEB1
8578 #define ISO_AAIP_IGNORED 0xB030FEB0
8581 #define ISO_AAIP_BAD_ACL 0xE830FEAF
8584 #define ISO_AAIP_BAD_ACL_TEXT 0xE830FEAE
8588 #define ISO_AAIP_NOT_ENABLED 0xE830FEAD
8591 #define ISO_AAIP_BAD_AASTRING 0xE830FEAC
8594 #define ISO_AAIP_NO_GET_LOCAL 0xE830FEAB
8597 #define ISO_AAIP_NO_SET_LOCAL 0xE830FEAA
8601 #define ISO_AAIP_NON_USER_NAME 0xE830FEA9
8605 #define ISO_EXTF_TOO_OFTEN 0xE830FEA8
8608 #define ISO_ZLIB_NOT_ENABLED 0xE830FEA7
8611 #define ISO_ZISOFS_TOO_LARGE 0xE830FEA6
8614 #define ISO_FILTER_WRONG_INPUT 0xE830FEA5
8617 #define ISO_ZLIB_COMPR_ERR 0xE830FEA4
8620 #define ISO_ZISOFS_WRONG_INPUT 0xE830FEA3
8624 #define ISO_ZISOFS_PARAM_LOCK 0xE830FEA2
8627 #define ISO_ZLIB_EARLY_EOF 0xE830FEA1
8633 #define ISO_MD5_AREA_CORRUPTED 0xD030FEA0
8640 #define ISO_MD5_TAG_MISMATCH 0xE830FE9F
8647 #define ISO_SB_TREE_CORRUPTED 0xE830FE9E
8653 #define ISO_MD5_TAG_UNEXPECTED 0xD030FE9D
8659 #define ISO_MD5_TAG_MISPLACED 0xD030FE9C
8666 #define ISO_MD5_TAG_OTHER_RANGE 0xD030FE9B
8673 #define ISO_MD5_STREAM_CHANGE 0xE430FE9A
8680 #define ISO_SCDBACKUP_TAG_NOT_0 0xD030FE99
8688 #define ISO_OVWRT_MS_TOO_SMALL 0xE830FE98
8695 #define ISO_PART_OFFST_TOO_SMALL 0xE830FE97
8701 #define ISO_OVWRT_FIFO_TOO_SMALL 0xE830FE96
8704 #define ISO_LIBJTE_NOT_ENABLED 0xE830FE95
8707 #define ISO_LIBJTE_START_FAILED 0xE830FE94
8710 #define ISO_LIBJTE_END_FAILED 0xE830FE93
8714 #define ISO_LIBJTE_FILE_FAILED 0xE430FE92
8717 #define ISO_BOOT_TOO_MANY_MIPS 0xE830FE91
8720 #define ISO_BOOT_FILE_MISSING 0xE430FE90
8723 #define ISO_BAD_PARTITION_NO 0xE830FE8F
8726 #define ISO_BAD_PARTITION_FILE 0xE830FE8E
8730 #define ISO_NON_MBR_SYS_AREA 0xE830FE8D
8733 #define ISO_DISPLACE_ROLLOVER 0xE830FE8C
8737 #define ISO_NAME_NEEDS_TRANSL 0xE830FE8B
8741 #define ISO_STREAM_NO_CLONE 0xE830FE8A
8745 #define ISO_XINFO_NO_CLONE 0xE830FE89
8748 #define ISO_MD5_TAG_COPIED 0xD030FE88
8751 #define ISO_RR_NAME_TOO_LONG 0xE830FE87
8754 #define ISO_RR_NAME_RESERVED 0xE830FE86
8757 #define ISO_RR_PATH_TOO_LONG 0xE830FE85
8760 #define ISO_AAIP_BAD_ATTR_NAME 0xE830FE84
8764 #define ISO_AAIP_ACL_MULT_OBJ 0xE830FE83
8768 #define ISO_SECT_SCATTERED 0xE830FE82
8771 #define ISO_BOOT_TOO_MANY_APM 0xE830FE81
8774 #define ISO_BOOT_APM_OVERLAP 0xE830FE80
8777 #define ISO_BOOT_TOO_MANY_GPT 0xE830FE7F
8780 #define ISO_BOOT_GPT_OVERLAP 0xE830FE7E
8783 #define ISO_BOOT_TOO_MANY_MBR 0xE830FE7D
8786 #define ISO_BOOT_MBR_OVERLAP 0xE830FE7C
8789 #define ISO_BOOT_MBR_COLLISION 0xE830FE7B
8793 #define ISO_BOOT_NO_EFI_ELTO 0xE830FE7A
8796 #define ISO_BOOT_HFSP_BAD_BSIZE 0xE830FE79
8799 #define ISO_BOOT_APM_GPT_BSIZE 0xE830FE78
8802 #define ISO_HFSP_NO_MANGLE 0xE830FE77
8805 #define ISO_DEAD_SYMLINK 0xE830FE76
8808 #define ISO_DEEP_SYMLINK 0xE830FE75
8811 #define ISO_BAD_ISO_FILETYPE 0xE830FE74
8814 #define ISO_NAME_NOT_UCS2 0xD030FE73
8817 #define ISO_IMPORT_COLLISION 0xD030FE72
8820 #define ISO_HPPA_PALO_INCOMPL 0xE830FE71
8823 #define ISO_HPPA_PALO_OFLOW 0xE830FE70
8826 #define ISO_HPPA_PALO_NOTREG 0xE830FE6F
8829 #define ISO_HPPA_PALO_CMDLEN 0xE830FE6E
8832 #define ISO_SYSAREA_PROBLEMS 0xD030FE6D
8835 #define ISO_INQ_SYSAREA_PROP 0xE830FE6C
8838 #define ISO_ALPHA_BOOT_NOTREG 0xE830FE6B
8841 #define ISO_NO_KEPT_DATA_SRC 0xD030FE6A
8844 #define ISO_MALFORMED_READ_INTVL 0xE830FE69
8848 #define ISO_INTVL_READ_PROBLEM 0xD030FE68
8852 #define ISO_NOT_REPRODUCIBLE 0xB030FE67
8856 #define ISO_PATCH_FILTERED_BOOT 0xE830FE66
8860 #define ISO_PATCH_OVERSIZED_BOOT 0xE830FE65
8863 #define ISO_RR_NAME_TRUNCATED 0xD030FE64
8867 #define ISO_TRUNCATE_ISOFSNT 0xB030FE63
8870 #define ISO_GENERAL_NOTE 0xB030FE62
8873 #define ISO_BAD_FSRC_FILETYPE 0xE030FE61
8877 #define ISO_GPT_NO_VOL_UUID 0xE830FE60
8881 #define ISO_BAD_GPT_GUID_MODE 0xE830FE5F
8884 #define ISO_NO_ROOT_DIR 0xF030FE5E
8888 #define ISO_SUSP_WRONG_CE_SIZE 0xE830FE5D
8892 #define ISO_MULTI_OVER_IMPORTED 0xE830FE5C
8905 #define ISO_DATA_SOURCE_SORRY 0xE030FCFF
8908 #define ISO_DATA_SOURCE_MISHAP 0xE430FCFF
8911 #define ISO_DATA_SOURCE_FAILURE 0xE830FCFF
8914 #define ISO_DATA_SOURCE_FATAL 0xF030FCFF
8922 #ifdef LIBISOFS_WITHOUT_LIBBURN
8950 struct burn_source {
8980 int (*read)(
struct burn_source *,
unsigned char *buffer,
int size);
8989 int (*read_sub)(
struct burn_source *,
unsigned char *buffer,
int size);
8996 off_t (*get_size)(
struct burn_source *);
9012 int (*set_size)(
struct burn_source *source, off_t size);
9019 void (*free_data)(
struct burn_source *);
9026 struct burn_source *next;
9060 int (*read_xt)(
struct burn_source *,
unsigned char *buffer,
int size);
9066 int (*cancel)(
struct burn_source *source);
void(* free)(IsoStream *stream)
Free implementation specific data.
int iso_file_remove_filter(IsoFile *file, int flag)
Delete the top filter stream from a data file.
IsoFindCondition * iso_new_find_conditions_uid(uid_t uid)
Create a new condition that checks the node uid.
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...
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...
const char * iso_image_fs_get_biblio_file_id(IsoImageFilesystem *fs)
Get the biblio file identifier for an existent image.
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.
off_t iso_stream_get_size(IsoStream *stream)
Get the size of a given stream.
const char * iso_image_fs_get_copyright_file_id(IsoImageFilesystem *fs)
Get the copyright file identifier for an existent image.
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_write_opts_set_sort_files(IsoWriteOpts *opts, int sort)
Whether to sort files based on their weight.
void iso_image_set_publisher_id(IsoImage *image, const char *publisher_id)
Fill in the publisher for a image.
int iso_dir_get_children_count(IsoDir *dir)
Get the number of children of a directory.
IsoFilesystem * iso_file_source_get_filesystem(IsoFileSource *src)
Get the filesystem for this source.
int iso_init_with_flag(int flag)
Initialize libisofs.
struct iso_read_image_features IsoReadImageFeatures
Return information for image.
void iso_image_set_copyright_file_id(IsoImage *image, const char *copyright_file_id)
Fill copyright information for the image.
int(* close)(IsoFilesystem *fs)
Close the filesystem, thus freeing all system resources.
const char * iso_image_fs_get_system_id(IsoImageFilesystem *fs)
Get the system identifier for an existent image.
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.
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.
@ LIBISO_HIDE_ON_RR
Hide the node in the ECMA-119 / RR tree.
void(* free)(IsoFilesystem *fs)
Free implementation specific data.
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_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.
int iso_zisofs_set_params(struct iso_zisofs_ctrl *params, int flag)
Set the global parameters for zisofs filtering.
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.
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_dir_iter_remove(IsoDirIter *iter)
Removes a child from a directory during an iteration and unref() it.
int el_torito_get_id_string(ElToritoBootImage *bootimg, uint8_t id_string[28])
Get the id_string as of el_torito_set_id_string().
void iso_image_set_volset_id(IsoImage *image, const char *volset_id)
Fill in the volset identifier for a image.
int iso_dir_find_children(IsoDir *dir, IsoFindCondition *cond, IsoDirIter **iter)
Find all directory children that match the given condition.
const char * iso_image_get_abstract_file_id(const IsoImage *image)
Get the abstract information of a image.
int iso_dir_add_node(IsoDir *dir, IsoNode *child, enum iso_replace_mode replace)
Add a new node to a dir.
int iso_interval_reader_destroy(struct iso_interval_reader **ivr, int flag)
Dispose an interval reader object.
IsoFindCondition * iso_new_find_conditions_and(IsoFindCondition *a, IsoFindCondition *b)
Create a new condition that check if the two given conditions are valid.
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_image_add_mips_boot_file(IsoImage *image, char *path, int flag)
Add a MIPS boot file path to the image.
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.
struct iso_write_opts IsoWriteOpts
Options for image written.
IsoFindCondition * iso_new_find_conditions_gid(gid_t gid)
Create a new condition that checks the node gid.
void el_torito_set_load_seg(ElToritoBootImage *bootimg, short segment)
Sets the load segment for the initial boot image.
struct Iso_Symlink IsoSymlink
A symbolic link in the iso tree.
int iso_init()
Initialize libisofs.
int el_torito_get_isolinux_options(ElToritoBootImage *bootimg, int flag)
Get the options as of el_torito_set_isolinux_options().
iso_find_comparisons
Possible comparison between IsoNode and given conditions.
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 version
Tells the version of the interface: Version 0 provides functions up to (*lseek)().
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_abstract_file_id(IsoImage *image, const char *abstract_file_id)
Fill abstract information for the image.
struct Iso_Image IsoImage
Context for image creation.
int iso_write_opts_attach_jte(IsoWriteOpts *opts, void *libjte_handle)
Associate a libjte environment object to the upcoming write run.
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_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...
int iso_data_source_new_from_file(const char *path, IsoDataSource **src)
Create a new IsoDataSource from a local file.
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.
void iso_image_set_volume_id(IsoImage *image, const char *volume_id)
Fill in the volume identifier for a image.
uid_t iso_node_get_uid(const IsoNode *node)
Get the user id of the node.
int iso_image_set_boot_catalog_hidden(IsoImage *image, int hide_attrs)
Hides the boot catalog file from directory trees.
int iso_set_abort_severity(char *severity)
Set the minimum error severity that causes a libisofs operation to be aborted as soon as possible.
int(* open)(IsoFileSource *src)
Opens the source.
void iso_read_image_features_destroy(IsoReadImageFeatures *f)
Destroy an IsoReadImageFeatures object obtained with iso_image_import.
struct Iso_Dir IsoDir
A directory in the iso tree.
An IsoFilesystem is a handler for a source of files, or a "filesystem".
IsoFilesystem IsoImageFilesystem
IsoFilesystem implementation to deal with ISO images, and to offer a way to access specific informati...
int iso_write_opts_set_aaip(IsoWriteOpts *opts, int enable)
Control writing of AAIP informations for ACL and xattr.
time_t iso_node_get_ctime(const IsoNode *node)
Get the time of last status change of the file.
struct iso_hfsplus_xinfo_data * iso_hfsplus_xinfo_new(int flag)
Create an instance of struct iso_hfsplus_xinfo_new().
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.
int el_torito_get_load_size(ElToritoBootImage *bootimg)
Get the load size.
int iso_tree_add_new_symlink(IsoDir *parent, const char *name, const char *dest, IsoSymlink **link)
int iso_write_opts_set_rrip_1_10_px_ino(IsoWriteOpts *opts, int enable)
Write field PX with file serial number (i.e.
void iso_node_set_mtime(IsoNode *node, time_t time)
Set the time of last modification of the file.
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_image_give_up_mips_boot(IsoImage *image, int flag)
Clear the list of MIPS Big Endian boot file paths.
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(* readlink)(IsoFileSource *src, char *buf, size_t bufsiz)
Read the destination of a symlink.
int(* open)(IsoDataSource *src)
Opens the given source.
@ ISO_HFSPLUS_BLESS_OS9_FOLDER
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.
int el_torito_get_boot_platform_id(ElToritoBootImage *bootimg)
Get the platform ID value.
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_node_add_xinfo(IsoNode *node, iso_node_xinfo_func proc, void *data)
Add extended information to the given node.
int iso_dir_get_node(IsoDir *dir, const char *name, IsoNode **node)
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_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...
IsoNodeType
The type of an IsoNode.
@ ISO_REPLACE_NEVER
Never replace an existing node, and instead fail with ISO_NODE_NAME_NOT_UNIQUE.
int iso_zisofs_get_params(struct iso_zisofs_ctrl *params, int flag)
Get the current global parameters for zisofs filtering.
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.
int iso_tree_get_follow_symlinks(IsoImage *image)
Get current setting for follow_symlinks.
int iso_error_get_priority(int e)
Get the priority of a given error.
int iso_local_set_attrs(char *disk_path, size_t num_attrs, char **names, size_t *value_lengths, char **values, int flag)
Attach a list of xattr and ACLs to the given file in the local filesystem.
int iso_read_image_features_has_iso1999(IsoReadImageFeatures *f)
Whether the image is recorded according to ISO 9660:1999, i.e.
int iso_read_opts_set_no_joliet(IsoReadOpts *opts, int nojoliet)
Do not read Joliet extensions.
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_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.
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_stream_ref(IsoStream *stream)
Increment reference count of an IsoStream.
int iso_error_get_code(int e)
Get the message queue code of a libisofs error.
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.
@ LIBISO_HIDE_ON_HFSPLUS
Hide the node in the HFS+ tree, if that format is enabled.
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_node_remove_tree(IsoNode *node, IsoDirIter *boss_iter)
Removes a node by iso_node_remove() or iso_dir_iter_remove().
time_t iso_node_get_mtime(const IsoNode *node)
Get the time of last modification of the file.
void iso_image_ref(IsoImage *image)
Increments the reference counting of the given image.
@ 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.
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.
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.
@ ISO_REPLACE_IF_SAME_TYPE
Replace with the new node if it is the same file type.
void iso_image_set_system_id(IsoImage *image, const char *system_id)
Fill in the system id for a image.
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.
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.
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_node_remove(IsoNode *node)
Removes a child from a directory and free (unref) it.
eltorito_boot_media_type
El-Torito bootable image type.
char * iso_get_local_charset(int flag)
Obtain the local charset as currently assumed by libisofs.
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_symlink_set_dest(IsoSymlink *link, const char *dest)
Set the destination of a symbolic.
IsoStream * iso_stream_get_input_stream(IsoStream *stream, int flag)
Obtain the eventual input stream of a filter stream.
const char * iso_image_get_copyright_file_id(const IsoImage *image)
Get the copyright information of a image.
int iso_write_opts_set_iso1999(IsoWriteOpts *opts, int enable)
Whether to use newer ISO-9660:1999 version.
@ ISO_REPLACE_ALWAYS
Always replace the old node with the new.
const char * iso_image_get_data_preparer_id(const IsoImage *image)
Get the data preparer of a image.
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_dir_iter_next(IsoDirIter *iter, IsoNode **node)
Get the next child.
void iso_node_set_permissions(IsoNode *node, mode_t mode)
Set the permissions for the node.
@ ISO_FIND_COND_GREATER_OR_EQUAL
int iso_tree_clone(IsoNode *node, IsoDir *new_parent, char *new_name, IsoNode **new_node, int flag)
int iso_dir_get_children(const IsoDir *dir, IsoDirIter **iter)
Get an iterator for the children of the given dir.
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_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_import(IsoImage *image, IsoDataSource *src, IsoReadOpts *opts, IsoReadImageFeatures **features)
Import a previous session or image, for growing or modify.
int iso_tree_path_to_node(IsoImage *image, const char *path, IsoNode **node)
void iso_filesystem_unref(IsoFilesystem *fs)
Drop your ref to the given IsoFilesystem, evetually freeing associated resources.
int(* get_by_path)(IsoFilesystem *fs, const char *path, IsoFileSource **file)
Retrieve a file from its absolute path inside the filesystem.
int(* read_block)(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
Read an arbitrary block (2048 bytes) of data from the source.
@ ISO_HFSPLUS_BLESS_SHOWFOLDER
int iso_read_opts_set_no_aaip(IsoReadOpts *opts, int noaaip)
Control reading of AAIP informations about ACL and xattr when loading existing images.
int el_torito_set_isolinux_options(ElToritoBootImage *bootimg, int options, int flag)
Specifies options for ISOLINUX or GRUB boot images.
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.
void iso_node_set_sort_weight(IsoNode *node, int w)
Sets the order in which a node will be written on image.
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_stream_open(IsoStream *stream)
Opens the given stream.
@ ISO_REPLACE_IF_NEWER
Replace with the new node if its ctime is newer than the old one.
char type[4]
Type of filesystem.
int iso_write_opts_set_rockridge(IsoWriteOpts *opts, int enable)
Whether to use or not Rock Ridge extensions.
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...
const char * iso_image_fs_get_volume_id(IsoImageFilesystem *fs)
Get the volume identifier for an existent image.
int iso_md5_match(char first_md5[16], char second_md5[16])
Inquire whether two MD5 checksums match.
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_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.
int iso_image_get_session_md5(IsoImage *image, uint32_t *start_lba, uint32_t *end_lba, char md5[16], int flag)
Eventually obtain the recorded MD5 checksum of the session which was loaded as ISO image.
void iso_generate_gpt_guid(uint8_t guid[16])
Generate a pseudo-random GUID suitable for iso_write_opts_set_gpt_guid().
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_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_image_unref(IsoImage *image)
Decrements the reference couting of the given image.
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_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.
Data source used by libisofs for reading an existing image.
int iso_image_new(const char *name, IsoImage **image)
Create a new image, empty.
Representation of an external program that shall serve as filter for an IsoStream.
int iso_write_opts_set_iso_level(IsoWriteOpts *opts, int level)
Set the ISO-9960 level to write at.
int iso_node_remove_all_xinfo(IsoNode *node, int flag)
Remove all extended information from the given node.
int iso_write_opts_set_joliet_longer_paths(IsoWriteOpts *opts, int allow)
Allow paths in the Joliet tree to have more than 240 characters.
@ ELTORITO_HARD_DISC_EMUL
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.
@ LIBISO_HIDE_ON_1999
Hide the node in the ISO-9660:1999 tree, if that format is enabled.
void iso_node_unref(IsoNode *node)
Decrements the reference couting of the given node.
void el_torito_set_no_bootable(ElToritoBootImage *bootimg)
Marks the specified boot image as not bootable.
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.
Interface definition for an IsoFileSource.
int(* is_repeatable)(IsoStream *stream)
Tell whether this IsoStream can be read several times, with the same results.
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_tree_add_new_dir(IsoDir *parent, const char *name, IsoDir **dir)
IsoFindCondition * iso_new_find_conditions_name(const char *wildcard)
Create a new condition that checks if the node name matches the given wildcard.
@ LIBISO_HIDE_BUT_WRITE
With IsoNode and IsoBoot: Write data content even if the node is not visible in any tree.
const char * iso_image_fs_get_application_id(IsoImageFilesystem *fs)
Get the application identifier for an existent image.
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...
time_t iso_node_get_atime(const IsoNode *node)
Get the time of last access to the file.
int aaip_xinfo_func(void *data, int flag)
Function to identify and manage AAIP strings as xinfo of IsoNode.
int iso_tree_add_exclude(IsoImage *image, const char *path)
Add a excluded path.
int(* lstat)(IsoFileSource *src, struct stat *info)
Get information about the file.
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(* 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.
int iso_image_update_sizes(IsoImage *image)
Update the sizes of all files added to image.
struct Iso_Dir_Iter IsoDirIter
Context for iterate on directory children.
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_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...
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_local_attr_support(int flag)
libisofs has an internal system dependent adapter to ACL and xattr operations.
@ ISO_HFSPLUS_BLESS_PPC_BOOTDIR
IsoFindCondition * iso_new_find_conditions_mode(mode_t mask)
Create a new condition that checks the node mode against a mode mask.
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.
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 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 iso_read_opts_set_no_rockridge(IsoReadOpts *opts, int norr)
Do not read Rock Ridge extensions.
@ LIBISO_HIDE_ON_JOLIET
Hide the node in the Joliet tree, if Joliet extension are enabled.
void * data
Source specific data.
int iso_image_get_sparc_core(IsoImage *img, IsoFile **sparc_core, int flag)
Obtain the current setting of iso_image_set_sparc_core().
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_timestamps(IsoWriteOpts *opts, int replace)
0 to use IsoNode timestamps, 1 to use recording time, 2 to use values from timestamp field.
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_error_get_severity(int e)
Get the severity of a given error code.
int iso_file_get_sort_weight(IsoFile *file)
Get the sort weight of a file.
void iso_image_remove_boot_image(IsoImage *image)
Removes all El-Torito boot images from the ISO image.
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.
const char * iso_image_get_publisher_id(const IsoImage *image)
Get the publisher of a image.
int iso_write_opts_set_allow_lowercase(IsoWriteOpts *opts, int allow)
Allow lowercase characters in ISO-9660 filenames.
int iso_write_opts_detach_jte(IsoWriteOpts *opts, void **libjte_handle)
Remove eventual association to a libjte environment handle.
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_md5_start(void **md5_context)
Create a MD5 computation context and hand out an opaque handle.
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.
@ ISO_FIND_COND_LESS_OR_EQUAL
int iso_lib_is_compatible(int major, int minor, int micro)
Check at runtime if the library is ABI compatible with the given version.
Parameter set for iso_zisofs_set_params().
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_tree_set_ignore_special(IsoImage *image, int skip)
Set whether to skip or not special files.
int(* access)(IsoFileSource *src)
Check if the process has access to read file contents.
int iso_tree_remove_exclude(IsoImage *image, const char *path)
Remove a previously added exclude.
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_stream_clone(IsoStream *old_stream, IsoStream **new_stream, int flag)
Produce a copy of a stream.
int iso_read_opts_set_start_block(IsoReadOpts *opts, uint32_t block)
Set the block where the image begins.
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.
void iso_node_set_uid(IsoNode *node, uid_t uid)
Set the user id for 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.
int(* open)(IsoStream *stream)
Opens the stream.
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 ...
void iso_image_set_biblio_file_id(IsoImage *image, const char *biblio_file_id)
Fill biblio information for the image.
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...
int el_torito_get_full_load(ElToritoBootImage *bootimg)
Inquire the setting of el_torito_set_full_load().
int iso_write_opts_set_disc_label(IsoWriteOpts *opts, char *label)
Set a name for the system area.
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_set_default_uid(IsoWriteOpts *opts, uid_t uid)
Set the uid to use when you set the replace_uid to 2.
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_read_opts_set_new_inos(IsoReadOpts *opts, int new_inos)
Control discarding of eventual inode numbers from existing images.
int iso_write_opts_new(IsoWriteOpts **opts, int profile)
Creates an IsoWriteOpts for writing an image.
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.
void(* free)(IsoFileSource *src)
Free implementation specific data.
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)
Explicitely set the four timestamps of the emerging Primary Volume Descriptor and in the volume descr...
char * iso_file_source_get_name(IsoFileSource *src)
Get the name of the file, with the dir component of the path.
int iso_node_set_name(IsoNode *node, const char *name)
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_image_set_boot_catalog_weight(IsoImage *image, int sort_weight)
Sets the sort weight of the boot catalog that is attached to an IsoImage.
int iso_read_opts_new(IsoReadOpts **opts, int profile)
Creates an IsoReadOpts for reading an existent image.
int iso_write_opts_set_ms_block(IsoWriteOpts *opts, uint32_t ms_block)
Set the start block of the image.
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_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...
IsoDir * iso_node_get_parent(IsoNode *node)
void el_torito_patch_isolinux_image(ElToritoBootImage *bootimg)
Deprecated: Specifies that this image needs to be patched.
int(* get_root)(IsoFilesystem *fs, IsoFileSource **root)
Get the root of a filesystem.
int iso_node_get_hidden(IsoNode *node)
Get the hide_attrs as eventually set by iso_node_set_hidden().
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_sev_to_text(int severity_number, char **severity_name)
Convert a severity number into a severity name.
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_file_source_readlink(IsoFileSource *src, char *buf, size_t bufsiz)
Read the destination of a symlink.
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_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 el_torito_get_selection_crit(ElToritoBootImage *bootimg, uint8_t crit[20])
Get the Selection Criteria bytes as of el_torito_set_selection_crit().
char * iso_file_source_get_path(IsoFileSource *src)
Get the absolute path in the filesystem this file source belongs to.
int iso_node_get_old_image_lba(IsoNode *node, uint32_t *lba, int flag)
@ ISO_HFSPLUS_BLESS_OSX_FOLDER
const char * iso_image_fs_get_publisher_id(IsoImageFilesystem *fs)
Get the publisher identifier for an existent image.
int iso_file_source_access(IsoFileSource *src)
Check if the process has access to read file contents.
int iso_write_opts_set_joliet(IsoWriteOpts *opts, int enable)
Whether to add the non-standard Joliet extension to the image.
int iso_tree_get_ignore_special(IsoImage *image)
Get current setting for ignore_special.
void iso_file_source_ref(IsoFileSource *src)
Take a ref to the given IsoFileSource.
mode_t iso_node_get_permissions(const IsoNode *node)
Get the permissions for the node.
int iso_dir_iter_has_next(IsoDirIter *iter)
Check if there're more children.
void iso_tree_set_ignore_hidden(IsoImage *image, int skip)
Set whether to skip or not disk files with names beginning by '.
int iso_dir_iter_take(IsoDirIter *iter)
Removes a child from a directory during an iteration, without freeing it.
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.
IsoStream * iso_file_get_stream(IsoFile *file)
Get the IsoStream that represents the contents of the given IsoFile.
const char * iso_node_get_name(const IsoNode *node)
Get the name of a node.
int iso_image_get_msg_id(IsoImage *image)
Get the id of an IsoImage, used for message reporting.
void iso_data_source_unref(IsoDataSource *src)
Decrements the reference counting of the given IsoDataSource, freeing it if refcount reach 0.
void iso_file_source_unref(IsoFileSource *src)
Drop your ref to the given IsoFileSource, eventually freeing the associated system resources.
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.
void iso_image_set_application_id(IsoImage *image, const char *application_id)
Fill in the application id for a image.
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(* clone_stream)(IsoStream *old_stream, IsoStream **new_stream, int flag)
Produce a copy of a stream.
int iso_image_dir_get_node(IsoImage *image, IsoDir *dir, const char *name, IsoNode **node, int flag)
Locate a node inside a given dir.
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...
IsoDir * iso_image_get_root(const IsoImage *image)
Get the root directory of the image.
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.
int iso_tree_add_new_special(IsoDir *parent, const char *name, mode_t mode, dev_t dev, IsoSpecial **special)
const char * iso_image_get_volset_id(const IsoImage *image)
Get the volset identifier.
void iso_image_set_data_preparer_id(IsoImage *image, const char *data_preparer_id)
Fill in the data preparer for a image.
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_file_source_readdir(IsoFileSource *src, IsoFileSource **child)
Read a directory.
char * iso_tree_get_node_path(IsoNode *node)
Get the absolute path on image of the given node.
iso_replace_mode
Replace mode used when addding a node to a directory.
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_stream_close(IsoStream *stream)
Close a previously openned IsoStream.
Interface definition for IsoStream methods.
int iso_md5_compute(void *md5_context, char *data, int datalen)
Advance the computation of a MD5 checksum by a chunk of data bytes.
void iso_lib_version(int *major, int *minor, int *micro)
Get version of the libisofs library at runtime.
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...
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(* 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_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.
void iso_dir_iter_free(IsoDirIter *iter)
Free a dir iterator.
int iso_md5_end(void **md5_context, char result[16])
Obtain the MD5 checksum from a MD5 computation context and dispose this context.
int iso_write_opts_set_hardlinks(IsoWriteOpts *opts, int enable)
Control generation of non-unique inode numbers for the emerging 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_interval_reader_new(IsoImage *img, char *path, struct iso_interval_reader **ivr, off_t *byte_count, int flag)
Create an interval reader object.
const char * iso_symlink_get_dest(const IsoSymlink *link)
Get the destination of a node.
int iso_read_image_features_has_rockridge(IsoReadImageFeatures *f)
Whether RockRidge extensions are present in the image imported.
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.
unsigned int(* get_id)(IsoFilesystem *fs)
Get filesystem identifier.
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.
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.
int iso_stream_is_repeatable(IsoStream *stream)
Whether the given IsoStream can be read several times, with the same results.
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.
int iso_write_opts_set_system_area(IsoWriteOpts *opts, char data[32768], int options, int flag)
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...
const char * iso_image_get_application_id(const IsoImage *image)
Get the application id of a image.
int(* get_aa_string)(IsoFileSource *src, unsigned char **aa_string, int flag)
Valid only if .version is > 0.
char * iso_stream_get_source_path(IsoStream *stream, int flag)
Try to get eventual source path string of a stream.
const char * iso_image_fs_get_volset_id(IsoImageFilesystem *fs)
Get the volset identifier for an existent image.
void iso_read_opts_free(IsoReadOpts *opts)
Free an IsoReadOpts previously allocated with iso_read_opts_new().
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 el_torito_set_selection_crit(ElToritoBootImage *bootimg, uint8_t crit[20])
Set the Selection Criteria of a boot image.
void(* free_data)(IsoDataSource *src)
Clean up the source specific data.
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(* cmp_ino)(IsoStream *s1, IsoStream *s2)
Compare two streams whether they are based on the same input and will produce the same output.
int iso_tree_get_ignore_hidden(IsoImage *image)
Get current setting for ignore_hidden.
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_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(* stat)(IsoFileSource *src, struct stat *info)
Get information about the file.
const char * iso_image_fs_get_data_preparer_id(IsoImageFilesystem *fs)
Get the data preparer identifier for an existent image.
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_image_filesystem_new(IsoDataSource *src, IsoReadOpts *opts, int msgid, IsoImageFilesystem **fs)
Create a new IsoFilesystem to access a existent ISO image.
int iso_image_get_truncate_mode(IsoImage *img, int *mode, int *length)
Inquire the current setting of iso_image_set_truncate_mode().
An IsoFile Source is a POSIX abstraction of a file.
int(* close)(IsoFileSource *src)
Close a previuously openned file.
off_t iso_file_get_size(IsoFile *file)
Get the size of the file, in bytes.
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...
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_write_opts_set_omit_version_numbers(IsoWriteOpts *opts, int omit)
Omit the version number (";1") at the end of the ISO-9660 identifiers.
gid_t iso_node_get_gid(const IsoNode *node)
Get the group id of the node.
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 informations.
int(* iso_node_xinfo_cloner)(void *old_data, void **new_data, int flag)
Class of functions to clone extended information.
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.
struct iso_find_condition IsoFindCondition
IsoHfsplusBlessings
HFS+ blessings are relationships between HFS+ enhanced ISO images and particular files in such images...
int iso_image_attach_data(IsoImage *image, void *data, void(*give_up)(void *))
Attach user defined data to the image.
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_node_ref(IsoNode *node)
Increments the reference counting of the given 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_node_xinfo_func)(void *data, int flag)
Class of functions to handle particular extended information.
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(* open)(IsoFilesystem *fs)
Opens the filesystem for several read operations.
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_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 iso_filesystem_ref(IsoFilesystem *fs)
Take a ref to the given IsoFilesystem.
int el_torito_set_boot_platform_id(ElToritoBootImage *bootimg, uint8_t id)
Sets the platform ID of the boot image.
int iso_read_opts_auto_input_charset(IsoReadOpts *opts, int mode)
Enable or disable methods to automatically choose an input charset.
int(* clone_src)(IsoFileSource *old_src, IsoFileSource **new_src, int flag)
Produce a copy of a 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.
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_node_take(IsoNode *node)
Removes a child from a directory.
void iso_node_set_ctime(IsoNode *node, time_t time)
Set the time of last status change of the file.
void iso_node_set_atime(IsoNode *node, time_t time)
Set the time of last access to the file.
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.
const char * iso_image_get_system_id(const IsoImage *image)
Get the system id of a image.
int iso_read_opts_set_preferjoliet(IsoReadOpts *opts, int preferjoliet)
Whether to prefer Joliet over RR.
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_msgs_severities(char *queue_severity, char *print_severity, char *print_id)
Control queueing and stderr printing of messages from libisofs.
int iso_image_generator_is_running(IsoImage *image)
Inquire whether the image generator thread is still at work.
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.
enum iso_replace_mode iso_tree_get_replace_mode(IsoImage *image)
Get current setting for replace_mode.
struct iso_read_opts IsoReadOpts
Options for image reading or import.
Representation of file contents as a stream of bytes.
const char * iso_image_get_biblio_file_id(const IsoImage *image)
Get the biblio information of a image.
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 el_torito_get_bootable(ElToritoBootImage *bootimg)
Get the bootability flag.
int iso_file_source_get_aa_string(IsoFileSource *src, unsigned char **aa_string, int flag)
Get the AAIP string with encoded ACL and xattr.
@ LIBISO_HIDE_ON_FAT
Hide the node in the FAT tree, if that format is enabled.
int iso_read_opts_set_no_iso1999(IsoReadOpts *opts, int noiso1999)
Do not read ISO 9660:1999 enhanced tree.
int iso_file_source_open(IsoFileSource *src)
Opens the source.
int iso_read_opts_set_input_charset(IsoReadOpts *opts, const char *charset)
Set the input charset of the file names on the image.
void iso_write_opts_free(IsoWriteOpts *opts)
Free an IsoWriteOpts previously allocated with iso_write_opts_new().
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.
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_image_hfsplus_bless(IsoImage *img, enum IsoHfsplusBlessings blessing, IsoNode *node, int flag)
Issue a blessing to a particular IsoNode.
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(* update_size)(IsoStream *stream)
Update the size of the IsoStream with the current size of the underlying source, if the source is pro...
int iso_tree_add_new_file(IsoDir *parent, const char *name, IsoStream *stream, IsoFile **file)
enum IsoNodeType iso_node_get_type(IsoNode *node)
Get the type of an IsoNode.
int iso_write_opts_set_always_gmt(IsoWriteOpts *opts, int gmt)
Whether to always record timestamps in GMT.
struct Iso_Special IsoSpecial
An special file in the iso tree.
void iso_stream_unref(IsoStream *stream)
Decrement reference count of an IsoStream, and eventually free it if refcount reach 0.
unsigned int iso_fs_global_id
See IsoFilesystem->get_id() for info about this.
HFS+ attributes which may be attached to IsoNode objects as data parameter of iso_node_add_xinfo().
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_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...
void iso_data_source_ref(IsoDataSource *src)
Increments the reference counting of the given IsoDataSource.
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...
char type[4]
Type of Stream.
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_image_set_node_name(IsoImage *image, IsoNode *node, const char *name, int flag)
Set the name of a node.
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.
void iso_node_set_gid(IsoNode *node, gid_t gid)
Set the group id for the node.
void iso_finish()
Finalize libisofs.
int iso_write_opts_set_fat(IsoWriteOpts *opts, int enable)
Production of FAT32 is not implemented yet.
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(* close)(IsoStream *stream)
Close the Stream.
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_get_messenger()
Return the messenger object handle used by libisofs.
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_stream_update_size(IsoStream *stream)
Updates the size of the IsoStream with the current size of the underlying source.
void * iso_image_get_attached_data(IsoImage *image)
The the data previously attached with iso_image_attach_data()
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_read_image_features_has_joliet(IsoReadImageFeatures *f)
Whether Joliet extensions are present in the image imported.
struct el_torito_boot_image ElToritoBootImage
It represents an El-Torito boot 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.
struct Iso_Boot IsoBoot
An special type of IsoNode that acts as a placeholder for an El-Torito boot catalog.
int el_torito_get_load_seg(ElToritoBootImage *bootimg)
Get the load segment value.
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_file_source_lstat(IsoFileSource *src, struct stat *info)
Get information about the file.
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_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 ...
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.
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...
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_file_source_close(IsoFileSource *src)
Close a previuously openned file.
const char * iso_error_to_msg(int errcode)
Get a textual description of a libisofs error.
int iso_file_source_stat(IsoFileSource *src, struct stat *info)
Get information about the file.
struct Iso_File IsoFile
A regular file in the iso tree.
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.
int(* close)(IsoDataSource *src)
Close a given source, freeing all system resources previously grabbed in open().
File section in an old 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...
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.
IsoFindCondition * iso_new_find_conditions_not(IsoFindCondition *negate)
Create a new condition that check if the given conditions is false.
int iso_write_opts_set_allow_deep_paths(IsoWriteOpts *opts, int allow)
Allow ISO-9660 directory hierarchy to be deeper than 8 levels.
const char * iso_image_fs_get_abstract_file_id(IsoImageFilesystem *fs)
Get the abstract file identifier for an existent image.
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.
off_t(* get_size)(IsoStream *stream)
Get the size (in bytes) of the stream.
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...
@ ISO_HFSPLUS_BLESS_INTEL_BOOTFILE
int iso_read_image_features_has_eltorito(IsoReadImageFeatures *f)
Whether El-Torito boot record is present present in the image imported.
int(* readdir)(IsoFileSource *src, IsoFileSource **child)
Read a directory.
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...
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_read_opts_set_default_uid(IsoReadOpts *opts, uid_t uid)
Set default uid for files when RR extensions are not present.
int iso_stream_get_external_filter(IsoStream *stream, IsoExternalFilterCommand **cmd, int flag)
Obtain the IsoExternalFilterCommand which is eventually associated with the given stream.
const char * iso_image_get_volume_id(const IsoImage *image)
Get the volume identifier.
unsigned int refcount
Reference count for the data source.
Generated for libisofs by
1.8.17