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);
int el_torito_get_load_seg(ElToritoBootImage *bootimg)
Get the load segment value.
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 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...
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 iso_file_remove_filter(IsoFile *file, int flag)
Delete the top filter stream from a data file.
char type[4]
Type of filesystem.
int iso_write_opts_set_hardlinks(IsoWriteOpts *opts, int enable)
Control generation of non-unique inode numbers for the emerging image.
int iso_write_opts_set_sort_files(IsoWriteOpts *opts, int sort)
Whether to sort files based on their weight.
char * iso_file_source_get_path(IsoFileSource *src)
Get the absolute path in the filesystem this file source belongs to.
int(* close)(IsoFileSource *src)
Close a previuously openned file.
const char * iso_symlink_get_dest(const IsoSymlink *link)
Get the destination of a node.
An IsoFile Source is a POSIX abstraction of a file.
int iso_tree_add_new_special(IsoDir *parent, const char *name, mode_t mode, dev_t dev, IsoSpecial **special)
*** Deprecated *** use iso_image_add_new_special() instead
int iso_image_new(const char *name, IsoImage **image)
Create a new image, empty.
int iso_write_opts_set_aaip(IsoWriteOpts *opts, int enable)
Control writing of AAIP informations for ACL and xattr.
Replace with the new node if it is the same file type.
int iso_read_opts_set_no_iso1999(IsoReadOpts *opts, int noiso1999)
Do not read ISO 9660:1999 enhanced tree.
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.
int iso_write_opts_set_allow_lowercase(IsoWriteOpts *opts, int allow)
Allow lowercase characters in ISO-9660 filenames.
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_read_opts_set_no_rockridge(IsoReadOpts *opts, int norr)
Do not read Rock Ridge extensions.
int iso_error_get_severity(int e)
Get the severity of a given error code.
int iso_data_source_new_from_file(const char *path, IsoDataSource **src)
Create a new IsoDataSource from a local file.
int(* open)(IsoFilesystem *fs)
Opens the filesystem for several read operations.
int iso_node_remove(IsoNode *node)
Removes a child from a directory and free (unref) it.
void * iso_image_get_attached_data(IsoImage *image)
The the data previously attached with iso_image_attach_data()
void iso_data_source_ref(IsoDataSource *src)
Increments the reference counting of the given IsoDataSource.
int iso_write_opts_set_rockridge(IsoWriteOpts *opts, int enable)
Whether to use or not Rock Ridge extensions.
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_node_remove_tree(IsoNode *node, IsoDirIter *boss_iter)
Removes a node by iso_node_remove() or iso_dir_iter_remove().
IsoFindCondition * iso_new_find_conditions_gid(gid_t gid)
Create a new condition that checks the node gid.
int iso_image_generator_is_running(IsoImage *image)
Inquire whether the image generator thread is still at work.
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...
With IsoNode and IsoBoot: Write data content even if the node is not visible in any tree...
const char * iso_image_fs_get_volume_id(IsoImageFilesystem *fs)
Get the volume identifier for an existent image.
int iso_init_with_flag(int flag)
Initialize libisofs.
void(* get_id)(IsoStream *stream, unsigned int *fs_id, dev_t *dev_id, ino_t *ino_id)
Get an unique identifier for the IsoStream.
void iso_file_source_ref(IsoFileSource *src)
Take a ref to the given IsoFileSource.
struct Iso_Dir_Iter IsoDirIter
Context for iterate on directory children.
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_tree_get_ignore_special(IsoImage *image)
Get current setting for ignore_special.
int iso_file_source_lstat(IsoFileSource *src, struct stat *info)
Get information about the file.
int el_torito_get_boot_platform_id(ElToritoBootImage *bootimg)
Get the platform ID value.
int iso_tree_get_follow_symlinks(IsoImage *image)
Get current setting for follow_symlinks.
struct Iso_File IsoFile
A regular file in the iso tree.
int iso_dir_get_children_count(IsoDir *dir)
Get the number of children of a directory.
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.
int iso_file_add_zisofs_filter(IsoFile *file, int flag)
Install a zisofs filter on top of the content stream of a data file.
const char * iso_image_get_publisher_id(const IsoImage *image)
Get the publisher 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.
int(* close)(IsoDataSource *src)
Close a given source, freeing all system resources previously grabbed in open().
struct Iso_Symlink IsoSymlink
A symbolic link in the iso tree.
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_write_opts_set_allow_full_ascii(IsoWriteOpts *opts, int allow)
Allow all 8-bit characters to appear on an ISO-9660 filename.
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.
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_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_hfsp_serial_number(IsoWriteOpts *opts, uint8_t serial_number[8])
Supply a serial number for the HFS+ extension of the emerging image.
int iso_zisofs_get_params(struct iso_zisofs_ctrl *params, int flag)
Get the current global parameters for zisofs filtering.
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 iso_write_opts_set_allow_deep_paths(IsoWriteOpts *opts, int allow)
Allow ISO-9660 directory hierarchy to be deeper than 8 levels.
int iso_write_opts_new(IsoWriteOpts **opts, int profile)
Creates an IsoWriteOpts for writing an image.
int iso_file_source_open(IsoFileSource *src)
Opens the source.
struct iso_find_condition IsoFindCondition
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...
int iso_node_remove_all_xinfo(IsoNode *node, int flag)
Remove all extended information from the given node.
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 ...
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.
void el_torito_set_no_bootable(ElToritoBootImage *bootimg)
Marks the specified boot image as not bootable.
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_ctime(IsoNode *node, time_t time)
Set the time of last status change of the file.
int iso_image_get_truncate_mode(IsoImage *img, int *mode, int *length)
Inquire the current setting of iso_image_set_truncate_mode().
int iso_write_opts_set_part_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_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, creation of new IsoNode objects, and name changing image manipulations.
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...
void el_torito_set_load_seg(ElToritoBootImage *bootimg, short segment)
Sets the load segment for the initial boot image.
int iso_symlink_set_dest(IsoSymlink *link, const char *dest)
Set the destination of a symbolic.
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...
char * iso_stream_get_source_path(IsoStream *stream, int flag)
Try to get eventual source path string of a stream.
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.
struct Iso_Boot IsoBoot
An special type of IsoNode that acts as a placeholder for an El-Torito boot catalog.
void iso_stream_ref(IsoStream *stream)
Increment reference count of an IsoStream.
void iso_image_set_application_id(IsoImage *image, const char *application_id)
Fill in the application id for a image.
int iso_file_get_md5(IsoImage *image, IsoFile *file, char md5[16], int flag)
Eventually obtain the recorded MD5 checksum of a data file from the loaded ISO image.
int iso_file_get_old_image_lba(IsoFile *file, uint32_t *lba, int flag)
Get the block lba of a file node, if it was imported from an old image.
const char * iso_image_get_volume_id(const IsoImage *image)
Get the volume identifier.
int(* get_aa_string)(IsoFileSource *src, unsigned char **aa_string, int flag)
Valid only if .version is > 0.
int iso_image_add_new_dir(IsoImage *image, IsoDir *parent, const char *name, IsoDir **dir)
Add a new directory to the iso tree.
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_dir_add_node(IsoDir *dir, IsoNode *child, enum iso_replace_mode replace)
Add a new node to a dir.
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_allow_longer_paths(IsoWriteOpts *opts, int allow)
Allow path in the ISO-9660 tree to have more than 255 characters.
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_stream_update_size(IsoStream *stream)
Updates the size of the IsoStream with the current size of the underlying source. ...
int iso_write_opts_set_disc_label(IsoWriteOpts *opts, char *label)
Set a name for the system area.
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_tree_remove_exclude(IsoImage *image, const char *path)
Remove a previously added exclude.
void iso_generate_gpt_guid(uint8_t guid[16])
Generate a pseudo-random GUID suitable for iso_write_opts_set_gpt_guid().
off_t(* get_size)(IsoStream *stream)
Get the size (in bytes) of the stream.
int iso_tree_get_ignore_hidden(IsoImage *image)
Get current setting for ignore_hidden.
void iso_node_set_mtime(IsoNode *node, time_t time)
Set the time of last modification of the file.
int iso_stream_get_external_filter(IsoStream *stream, IsoExternalFilterCommand **cmd, int flag)
Obtain the IsoExternalFilterCommand which is eventually associated with the given stream...
void iso_file_source_unref(IsoFileSource *src)
Drop your ref to the given IsoFileSource, eventually freeing the associated system resources...
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_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_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...
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...
off_t iso_file_get_size(IsoFile *file)
Get the size of the file, in bytes.
int iso_dir_iter_take(IsoDirIter *iter)
Removes a child from a directory during an iteration, without freeing it.
int el_torito_set_selection_crit(ElToritoBootImage *bootimg, uint8_t crit[20])
Set the Selection Criteria of a boot image.
IsoStream * iso_file_get_stream(IsoFile *file)
Get the IsoStream that represents the contents of the given IsoFile.
int iso_tree_add_new_symlink(IsoDir *parent, const char *name, const char *dest, IsoSymlink **link)
*** Deprecated *** use iso_image_add_new_symlink() instead
const char * iso_image_get_copyright_file_id(const IsoImage *image)
Get the copyright information of a 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().
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...
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_ms_block(IsoWriteOpts *opts, uint32_t ms_block)
Set the start block of the image.
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. ...
ino_t serial_id
Serial number to be used when you can't get a valid id for a Stream by other means.
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_hfsplus_xinfo_data * iso_hfsplus_xinfo_new(int flag)
Create an instance of struct iso_hfsplus_xinfo_new().
const char * iso_image_fs_get_biblio_file_id(IsoImageFilesystem *fs)
Get the biblio file identifier for an existent image.
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_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_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_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...
void iso_image_set_volume_id(IsoImage *image, const char *volume_id)
Fill in the volume identifier for a image.
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.
void iso_image_ref(IsoImage *image)
Increments the reference counting of the given image.
int iso_read_opts_new(IsoReadOpts **opts, int profile)
Creates an IsoReadOpts for reading an existent image.
int iso_file_get_sort_weight(IsoFile *file)
Get the sort weight of a file.
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(* is_repeatable)(IsoStream *stream)
Tell whether this IsoStream can be read several times, with the same results.
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.
void iso_node_unref(IsoNode *node)
Decrements the reference couting of the given node.
const char * iso_image_get_data_preparer_id(const IsoImage *image)
Get the data preparer of a image.
off_t iso_stream_get_size(IsoStream *stream)
Get the size of a given stream.
int iso_sev_to_text(int severity_number, char **severity_name)
Convert a severity number into a severity name.
int(* close)(IsoFilesystem *fs)
Close the filesystem, thus freeing all system resources.
int iso_write_opts_set_rrip_1_10_px_ino(IsoWriteOpts *opts, int enable)
Write field PX with file serial number (i.e.
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_always_gmt(IsoWriteOpts *opts, int gmt)
Whether to always record timestamps in GMT.
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...
Interface definition for IsoStream methods.
IsoHideNodeFlag
Flag used to hide a file in the RR/ISO or Joliet 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(* get_root)(IsoFilesystem *fs, IsoFileSource **root)
Get the root of a filesystem.
struct Iso_Dir IsoDir
A directory in the iso tree.
Hide the node in the HFS+ tree, if that format is enabled.
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_file_source_close(IsoFileSource *src)
Close a previuously openned file.
const char * iso_image_fs_get_system_id(IsoImageFilesystem *fs)
Get the system identifier for an existent image.
unsigned int iso_fs_global_id
See IsoFilesystem->get_id() for info about this.
int el_torito_get_isolinux_options(ElToritoBootImage *bootimg, int flag)
Get the options as of el_torito_set_isolinux_options().
IsoFindCondition * iso_new_find_conditions_and(IsoFindCondition *a, IsoFindCondition *b)
Create a new condition that check if the two given conditions are valid.
unsigned int(* get_id)(IsoFilesystem *fs)
Get filesystem identifier.
int(* clone_src)(IsoFileSource *old_src, IsoFileSource **new_src, int flag)
Produce a copy of a source.
Hide the node in the Joliet tree, if Joliet extension are enabled.
int iso_md5_match(char first_md5[16], char second_md5[16])
Inquire whether two MD5 checksums match.
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_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...
int iso_read_opts_auto_input_charset(IsoReadOpts *opts, int mode)
Enable or disable methods to automatically choose an input charset.
int(* readdir)(IsoFileSource *src, IsoFileSource **child)
Read a directory.
int iso_tree_add_new_dir(IsoDir *parent, const char *name, IsoDir **dir)
*** Deprecated *** use iso_image_add_new_dir() instead
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...
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 version
Tells the version of the interface: Version 0 provides functions up to (*lseek)().
int(* clone_stream)(IsoStream *old_stream, IsoStream **new_stream, int flag)
Produce a copy of a stream.
void iso_node_set_uid(IsoNode *node, uid_t uid)
Set the user id for the node.
time_t iso_node_get_ctime(const IsoNode *node)
Get the time of last status change of the file.
int iso_write_opts_set_system_area(IsoWriteOpts *opts, char data[32768], int options, int flag)
int iso_image_set_boot_catalog_hidden(IsoImage *image, int hide_attrs)
Hides the boot catalog file from directory trees.
int iso_stream_is_repeatable(IsoStream *stream)
Whether the given IsoStream can be read several times, with the same results.
An IsoFilesystem is a handler for a source of files, or a "filesystem".
int(* lstat)(IsoFileSource *src, struct stat *info)
Get information about the file.
int iso_read_opts_set_no_joliet(IsoReadOpts *opts, int nojoliet)
Do not read Joliet extensions.
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(* 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_set_no_force_dots(IsoWriteOpts *opts, int no)
ISO-9660 forces filenames to have a ".", that separates file name from extension. ...
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.
IsoFindCondition * iso_new_find_conditions_uid(uid_t uid)
Create a new condition that checks the node uid.
int iso_dir_iter_next(IsoDirIter *iter, IsoNode **node)
Get the next child.
IsoFilesystem IsoImageFilesystem
IsoFilesystem implementation to deal with ISO images, and to offer a way to access specific informati...
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_stream_clone(IsoStream *old_stream, IsoStream **new_stream, int flag)
Produce a copy of a stream.
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 aaip_xinfo_func(void *data, int flag)
Function to identify and manage AAIP strings as xinfo of IsoNode.
struct iso_read_image_features IsoReadImageFeatures
Return information for image.
const char * iso_image_fs_get_application_id(IsoImageFilesystem *fs)
Get the application identifier for an existent image.
File section in an old 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 el_torito_get_load_size(ElToritoBootImage *bootimg)
Get the load size.
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_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_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.
void iso_finish()
Finalize libisofs.
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.
enum IsoNodeType iso_node_get_type(IsoNode *node)
Get the type of an IsoNode.
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...
Representation of an external program that shall serve as filter for an IsoStream.
const char * iso_image_get_volset_id(const IsoImage *image)
Get the volset identifier.
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...
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.
void iso_filesystem_unref(IsoFilesystem *fs)
Drop your ref to the given IsoFilesystem, evetually freeing associated resources. ...
int iso_write_opts_set_joliet_longer_paths(IsoWriteOpts *opts, int allow)
Allow paths in the Joliet tree to have more than 240 characters.
void iso_image_set_publisher_id(IsoImage *image, const char *publisher_id)
Fill in the publisher for a image.
int iso_init()
Initialize libisofs.
int(* iso_node_xinfo_cloner)(void *old_data, void **new_data, int flag)
Class of functions to clone extended information.
struct el_torito_boot_image ElToritoBootImage
It represents an El-Torito boot image.
int iso_node_get_old_image_lba(IsoNode *node, uint32_t *lba, int flag)
int(* stat)(IsoFileSource *src, struct stat *info)
Get information about the file.
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_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_node_set_name(IsoNode *node, const char *name)
*** Deprecated *** use iso_image_set_node_name() instead
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_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...
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_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.
void iso_data_source_unref(IsoDataSource *src)
Decrements the reference counting of the given IsoDataSource, freeing it if refcount reach 0...
void iso_lib_version(int *major, int *minor, int *micro)
Get version of the libisofs library at runtime.
void iso_node_set_atime(IsoNode *node, time_t time)
Set the time of last access to the file.
void iso_tree_set_ignore_special(IsoImage *image, int skip)
Set whether to skip or not special files.
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.
Representation of file contents as a stream of bytes.
int(* read_block)(IsoDataSource *src, uint32_t lba, uint8_t *buffer)
Read an arbitrary block (2048 bytes) of data from the source.
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_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...
char * iso_tree_get_node_path(IsoNode *node)
Get the absolute path on image of the given node.
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_dir_get_node(IsoImage *image, IsoDir *dir, const char *name, IsoNode **node, int flag)
Locate a node inside a given dir.
int iso_image_attach_data(IsoImage *image, void *data, void(*give_up)(void *))
Attach user defined data to the image.
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...
void(* free_data)(IsoDataSource *src)
Clean up the source specific data.
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 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_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.
const char * iso_image_get_abstract_file_id(const IsoImage *image)
Get the abstract information of a image.
int iso_file_source_access(IsoFileSource *src)
Check if the process has access to read file contents.
struct Iso_Image IsoImage
Context for image creation.
int iso_md5_clone(void *old_md5_context, void **new_md5_context)
Create a MD5 computation context as clone of an existing one.
Always replace the old node with the new.
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.
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_load_system_area(IsoReadOpts *opts, int mode)
Enable or disable loading of the first 32768 bytes of the session.
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_file_source_stat(IsoFileSource *src, struct stat *info)
Get information about the file.
int iso_md5_start(void **md5_context)
Create a MD5 computation context and hand out an opaque handle.
unsigned int refcount
Reference count for the data source.
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 ...
Never replace an existing node, and instead fail with ISO_NODE_NAME_NOT_UNIQUE.
const char * iso_image_get_system_id(const IsoImage *image)
Get the system id of a image.
int(* readlink)(IsoFileSource *src, char *buf, size_t bufsiz)
Read the destination of a symlink.
int(* iso_node_xinfo_func)(void *data, int flag)
Class of functions to handle particular extended information.
time_t iso_node_get_atime(const IsoNode *node)
Get the time of last access to the file.
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...
uid_t iso_node_get_uid(const IsoNode *node)
Get the user id of the node.
int iso_write_opts_set_joliet(IsoWriteOpts *opts, int enable)
Whether to add the non-standard Joliet extension to the image.
void * data
Source specific data.
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...
Hide the node in the ISO-9660:1999 tree, if that format is enabled.
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_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.
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.
const char * iso_image_fs_get_volset_id(IsoImageFilesystem *fs)
Get the volset identifier for an existent image.
Hide the node in the FAT tree, if that format is enabled.
int iso_write_opts_detach_jte(IsoWriteOpts *opts, void **libjte_handle)
Remove eventual association to a libjte environment handle.
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_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_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_image_import(IsoImage *image, IsoDataSource *src, IsoReadOpts *opts, IsoReadImageFeatures **features)
Import a previous session or image, for growing or modify.
int iso_read_image_features_has_eltorito(IsoReadImageFeatures *f)
Whether El-Torito boot record is present present in the image imported.
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_write_opts_set_appendable(IsoWriteOpts *opts, int append)
Set the type of image creation in case there was already an existing image imported.
struct iso_write_opts IsoWriteOpts
Options for image written.
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_error_get_priority(int e)
Get the priority of a given 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.
const char * iso_error_to_msg(int errcode)
Get a textual description of a libisofs error.
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.
IsoStream * iso_stream_get_input_stream(IsoStream *stream, int flag)
Obtain the eventual input stream of a filter stream.
int iso_read_opts_set_preferjoliet(IsoReadOpts *opts, int preferjoliet)
Whether to prefer Joliet over RR.
Replace with the new node if it is the same file type and its ctime is newer than the old one...
void iso_write_opts_free(IsoWriteOpts *opts)
Free an IsoWriteOpts previously allocated with iso_write_opts_new().
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_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_tree_path_to_node(IsoImage *image, const char *path, IsoNode **node)
*** Deprecated *** In most cases use iso_image_path_to_node() instead
int iso_set_abort_severity(char *severity)
Set the minimum error severity that causes a libisofs operation to be aborted as soon as possible...
Interface definition for an IsoFileSource.
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_not(IsoFindCondition *negate)
Create a new condition that check if the given conditions is false.
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.
int iso_error_get_code(int e)
Get the message queue code of a libisofs error.
int iso_dir_get_node(IsoDir *dir, const char *name, IsoNode **node)
*** Deprecated *** In most cases use iso_image_dir_get_node() instead.
Data source used by libisofs for reading an existing image.
void iso_image_set_volset_id(IsoImage *image, const char *volset_id)
Fill in the volset identifier for a image.
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_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_set_msgs_severities(char *queue_severity, char *print_severity, char *print_id)
Control queueing and stderr printing of messages from libisofs.
int iso_tree_add_new_file(IsoDir *parent, const char *name, IsoStream *stream, IsoFile **file)
*** Deprecated *** use iso_image_add_new_file() instead
int iso_lib_is_compatible(int major, int minor, int micro)
Check at runtime if the library is ABI compatible with the given version.
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_relaxed_vol_atts(IsoWriteOpts *opts, int allow)
Allow all characters to be part of Volume and Volset identifiers on the Primary Volume Descriptor...
void iso_image_set_copyright_file_id(IsoImage *image, const char *copyright_file_id)
Fill copyright information for the image.
int iso_image_give_up_mips_boot(IsoImage *image, int flag)
Clear the list of MIPS Big Endian boot file paths.
void(* free)(IsoFilesystem *fs)
Free implementation specific data.
IsoHfsplusBlessings
HFS+ blessings are relationships between HFS+ enhanced ISO images and particular files in such images...
int(* get_by_path)(IsoFilesystem *fs, const char *path, IsoFileSource **file)
Retrieve a file from its absolute path inside the filesystem.
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...
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_write_opts_attach_jte(IsoWriteOpts *opts, void *libjte_handle)
Associate a libjte environment object to the upcoming write run.
int(* close)(IsoStream *stream)
Close the Stream.
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.
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 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_image_get_sparc_core(IsoImage *img, IsoFile **sparc_core, int flag)
Obtain the current setting of iso_image_set_sparc_core().
IsoDir * iso_node_get_parent(IsoNode *node)
void iso_filesystem_ref(IsoFilesystem *fs)
Take a ref to the given IsoFilesystem.
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...
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_tree_clone(IsoNode *node, IsoDir *new_parent, char *new_name, IsoNode **new_node, int flag)
*** Deprecated *** use iso_image_tree_clone() instead
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.
char * iso_file_source_get_name(IsoFileSource *src)
Get the name of the file, with the dir component of the path.
struct Iso_Special IsoSpecial
An special file in the iso tree.
char * iso_get_local_charset(int flag)
Obtain the local charset as currently assumed by libisofs.
void iso_image_remove_boot_image(IsoImage *image)
Removes all El-Torito boot images from the 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_file_source_get_aa_string(IsoFileSource *src, unsigned char **aa_string, int flag)
Get the AAIP string with encoded ACL and xattr.
int iso_image_set_node_name(IsoImage *image, IsoNode *node, const char *name, int flag)
Set the name of a node.
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_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_read_opts_set_default_gid(IsoReadOpts *opts, gid_t gid)
Set default gid for files when RR extensions are not present.
int iso_image_update_sizes(IsoImage *image)
Update the sizes of all files added to image.
int iso_read_image_features_has_rockridge(IsoReadImageFeatures *f)
Whether RockRidge extensions are present in the image imported.
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_stream_close(IsoStream *stream)
Close a previously openned IsoStream.
int el_torito_get_full_load(ElToritoBootImage *bootimg)
Inquire the setting of el_torito_set_full_load().
const char * iso_image_get_biblio_file_id(const IsoImage *image)
Get the biblio information of a image.
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_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.
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...
gid_t iso_node_get_gid(const IsoNode *node)
Get the group id of the node.
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_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_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...
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...
const char * iso_image_fs_get_abstract_file_id(IsoImageFilesystem *fs)
Get the abstract file identifier for an existent image.
int iso_dir_iter_has_next(IsoDirIter *iter)
Check if there're more children.
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(* open)(IsoDataSource *src)
Opens the given source.
void(* free)(IsoStream *stream)
Free implementation specific data.
enum iso_replace_mode iso_tree_get_replace_mode(IsoImage *image)
Get current setting for replace_mode.
int iso_node_take(IsoNode *node)
Removes a child from a directory.
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_dir_iter_remove(IsoDirIter *iter)
Removes a child from a directory during an iteration and unref() it.
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_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...
Parameter set for iso_zisofs_set_params().
int iso_zisofs_set_params(struct iso_zisofs_ctrl *params, int flag)
Set the global parameters for zisofs filtering.
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_get_messenger()
Return the messenger object handle used by libisofs.
int iso_dir_get_children(const IsoDir *dir, IsoDirIter **iter)
Get an iterator for the children of the given dir.
const char * iso_image_get_app_use(IsoImage *image)
Get the current setting for the Application Use field of the Primary Volume Descriptor.
char type[4]
Type of Stream.
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...
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_write_opts_set_iso1999(IsoWriteOpts *opts, int enable)
Whether to use newer ISO-9660:1999 version.
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.
const char * iso_image_get_application_id(const IsoImage *image)
Get the application id of a image.
void iso_stream_unref(IsoStream *stream)
Decrement reference count of an IsoStream, and eventually free it if refcount reach 0...
eltorito_boot_media_type
El-Torito bootable image type.
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 ...
IsoFindCondition * iso_new_find_conditions_mode(mode_t mask)
Create a new condition that checks the node mode against a mode mask.
IsoNodeType
The type of an IsoNode.
int iso_file_source_readdir(IsoFileSource *src, IsoFileSource **child)
Read a directory.
void iso_image_set_biblio_file_id(IsoImage *image, const char *biblio_file_id)
Fill biblio information for the image.
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_md5_compute(void *md5_context, char *data, int datalen)
Advance the computation of a MD5 checksum by a chunk of data bytes.
int iso_image_add_mips_boot_file(IsoImage *image, char *path, int flag)
Add a MIPS boot file path to the image.
int(* open)(IsoStream *stream)
Opens the stream.
void iso_node_set_sort_weight(IsoNode *node, int w)
Sets the order in which a node will be written on image.
int el_torito_set_isolinux_options(ElToritoBootImage *bootimg, int options, int flag)
Specifies options for ISOLINUX or GRUB boot images.
int(* access)(IsoFileSource *src)
Check if the process has access to read file contents.
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...
const char * iso_image_fs_get_copyright_file_id(IsoImageFilesystem *fs)
Get the copyright file identifier for an existent image.
int iso_interval_reader_destroy(struct iso_interval_reader **ivr, int flag)
Dispose an interval reader object.
int(* 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.
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.
void(* free)(IsoFileSource *src)
Free implementation specific data.
void iso_image_set_system_id(IsoImage *image, const char *system_id)
Fill in the system id for a image.
int iso_read_opts_set_new_inos(IsoReadOpts *opts, int new_inos)
Control discarding of eventual inode numbers from existing images.
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_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...
void iso_image_unref(IsoImage *image)
Decrements the reference couting of the given image.
iso_replace_mode
Replace mode used when addding a node to a directory.
void iso_tree_set_ignore_hidden(IsoImage *image, int skip)
Set whether to skip or not disk files with names beginning by '.
iso_find_comparisons
Possible comparison between IsoNode and given conditions.
HFS+ attributes which may be attached to IsoNode objects as data parameter of iso_node_add_xinfo().
void iso_node_set_permissions(IsoNode *node, mode_t mode)
Set the permissions for the node.
void iso_node_set_gid(IsoNode *node, gid_t gid)
Set the group id for the node.
int iso_local_attr_support(int flag)
libisofs has an internal system dependent adapter to ACL and xattr operations.
const char * iso_image_fs_get_publisher_id(IsoImageFilesystem *fs)
Get the publisher identifier for an existent image.
int iso_read_image_features_has_joliet(IsoReadImageFeatures *f)
Whether Joliet extensions are present in the image imported.
void iso_node_ref(IsoNode *node)
Increments the reference counting of the given node.
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...
int iso_file_source_readlink(IsoFileSource *src, char *buf, size_t bufsiz)
Read the destination of a symlink.
Hide the node in the ECMA-119 / RR tree.
struct iso_read_opts IsoReadOpts
Options for image reading or import.
IsoFilesystem * iso_file_source_get_filesystem(IsoFileSource *src)
Get the filesystem for this source.
int iso_node_add_xinfo(IsoNode *node, iso_node_xinfo_func proc, void *data)
Add extended information to the given node.
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...
mode_t iso_node_get_permissions(const IsoNode *node)
Get the permissions for the node.
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_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.
void iso_dir_iter_free(IsoDirIter *iter)
Free a dir iterator.
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_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_iso_level(IsoWriteOpts *opts, int level)
Set the ISO-9960 level to write at.
time_t iso_node_get_mtime(const IsoNode *node)
Get the time of last modification of the file.
int iso_write_opts_set_fat(IsoWriteOpts *opts, int enable)
Production of FAT32 is not implemented yet.
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_path_to_node(IsoImage *image, const char *path, IsoNode **node)
Locate a node by its absolute path in the image.
const char * iso_image_fs_get_data_preparer_id(IsoImageFilesystem *fs)
Get the data preparer identifier for an existent image.
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_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_read_image_features_destroy(IsoReadImageFeatures *f)
Destroy an IsoReadImageFeatures object obtained with iso_image_import.
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_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_read_opts_set_start_block(IsoReadOpts *opts, uint32_t block)
Set the block where the image begins.
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_read_opts_free(IsoReadOpts *opts)
Free an IsoReadOpts previously allocated with iso_read_opts_new().
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...
int iso_tree_add_exclude(IsoImage *image, const char *path)
Add a excluded path.
int iso_stream_open(IsoStream *stream)
Opens the given stream.
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.
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_find_children(IsoDir *dir, IsoFindCondition *cond, IsoDirIter **iter)
Find all directory children that match the given condition.
int iso_image_hfsplus_bless(IsoImage *img, enum IsoHfsplusBlessings blessing, IsoNode *node, int flag)
Issue a blessing to a particular IsoNode.
IsoDir * iso_image_get_root(const IsoImage *image)
Get the root directory of the image.
Replace with the new node if its ctime is newer than the old one.
int iso_node_get_hidden(IsoNode *node)
Get the hide_attrs as eventually set by iso_node_set_hidden().
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'.