2 #ifndef LIBISO_LIBISOFS_H_
3 #define LIBISO_LIBISOFS_H_
42 #ifdef HAVE_INTTYPES_H
85 #define iso_lib_header_version_major 1
86 #define iso_lib_header_version_minor 2
87 #define iso_lib_header_version_micro 8
227 #define ISO_NODE_IS_DIR(n) (iso_node_get_type(n) == LIBISO_DIR)
228 #define ISO_NODE_IS_FILE(n) (iso_node_get_type(n) == LIBISO_FILE)
229 #define ISO_NODE_IS_SYMLINK(n) (iso_node_get_type(n) == LIBISO_SYMLINK)
230 #define ISO_NODE_IS_SPECIAL(n) (iso_node_get_type(n) == LIBISO_SPECIAL)
231 #define ISO_NODE_IS_BOOTCAT(n) (iso_node_get_type(n) == LIBISO_BOOT)
234 #define ISO_DIR(n) ((IsoDir*)(ISO_NODE_IS_DIR(n) ? n : NULL))
235 #define ISO_FILE(n) ((IsoFile*)(ISO_NODE_IS_FILE(n) ? n : NULL))
236 #define ISO_SYMLINK(n) ((IsoSymlink*)(ISO_NODE_IS_SYMLINK(n) ? n : NULL))
237 #define ISO_SPECIAL(n) ((IsoSpecial*)(ISO_NODE_IS_SPECIAL(n) ? n : NULL))
239 #define ISO_NODE(n) ((IsoNode*)n)
865 unsigned char **aa_string,
int flag);
892 #ifndef Libisofs_h_as_cpluspluS
1165 #ifndef Libisofs_h_as_cpluspluS
1471 uint8_t serial_number[8]);
1491 int hfsp_block_size,
int apm_block_size);
1909 char *name,
char *timestamp,
1931 int file_mode,
int uid,
int gid);
2205 int options,
int flag);
2259 time_t vol_creation_time, time_t vol_modification_time,
2260 time_t vol_expiration_time, time_t vol_effective_time,
2297 uint32_t block_offset_2k,
2298 int secs_512_per_head,
int heads_per_cyl);
2306 #define iso_libjte_req_major 1
2307 #define iso_libjte_req_minor 0
2308 #define iso_libjte_req_micro 0
2463 uint8_t partition_type,
char *image_path,
int flag);
2520 struct burn_source **burn_src);
2934 const char *data_preparer_id);
2984 const char *copyright_file_id);
3002 const char *abstract_file_id);
3057 char **creation_time,
char **modification_time,
3058 char **expiration_time,
char **effective_time);
3099 const char *catalog_path,
3194 char **content, off_t *size);
3541 int options,
int flag);
3588 int *options,
int flag);
4959 const char *path,
IsoNode **node);
4996 const char *name,
const char *path,
4997 off_t offset, off_t size,
5124 int *depth,
int flag);
5131 #define LIBISO_MAX_LINK_DEPTH 100
5185 size_t *free_bytes);
5187 #define ISO_MSGS_MESSAGE_LEN 4096
5232 int iso_obtain_msgs(
char *minimum_severity,
int *error_code,
int *imgid,
5233 char msg_text[],
char severity[]);
5260 char severity[],
int origin);
5624 unsigned char **aa_string,
int flag);
5970 char **access_text,
char **default_text,
int flag);
6005 char *access_text,
char *default_text,
int flag);
6062 char ***names,
size_t **value_lengths,
char ***values,
int flag);
6084 size_t *value_length,
char **value,
int flag);
6130 size_t *value_lengths,
char **values,
int flag);
6274 size_t **value_lengths,
char ***values,
int flag);
6308 size_t *value_lengths,
char **values,
int flag);
6313 #define Libisofs_default_path_maX 4096
6691 uint32_t *end_lba,
char md5[16],
int flag);
6792 uint32_t *range_start, uint32_t *range_size,
6793 uint32_t *next_tag,
char md5[16],
int flag);
6843 int iso_md5_clone(
void *old_md5_context,
void **new_md5_context);
6860 int iso_md5_end(
void **md5_context,
char result[16]);
7012 int *bless_max,
int flag);
7018 #define ISO_SUCCESS 1
7027 #define ISO_CANCELED 0xE830FFFF
7030 #define ISO_FATAL_ERROR 0xF030FFFE
7033 #define ISO_ERROR 0xE830FFFD
7036 #define ISO_ASSERT_FAILURE 0xF030FFFC
7041 #define ISO_NULL_POINTER 0xE830FFFB
7044 #define ISO_OUT_OF_MEM 0xF030FFFA
7047 #define ISO_INTERRUPTED 0xF030FFF9
7050 #define ISO_WRONG_ARG_VALUE 0xE830FFF8
7053 #define ISO_THREAD_ERROR 0xF030FFF7
7056 #define ISO_WRITE_ERROR 0xE830FFF6
7059 #define ISO_BUF_READ_ERROR 0xE830FFF5
7062 #define ISO_NODE_ALREADY_ADDED 0xE830FFC0
7065 #define ISO_NODE_NAME_NOT_UNIQUE 0xE830FFBF
7068 #define ISO_NODE_NOT_ADDED_TO_DIR 0xE830FFBE
7071 #define ISO_NODE_DOESNT_EXIST 0xE830FFBD
7076 #define ISO_IMAGE_ALREADY_BOOTABLE 0xE830FFBC
7079 #define ISO_BOOT_IMAGE_NOT_VALID 0xE830FFBB
7082 #define ISO_BOOT_IMAGE_OVERFLOW 0xE830FFBA
7085 #define ISO_BOOT_NO_CATALOG 0xE830FFB9
7092 #define ISO_FILE_ERROR 0xE830FF80
7095 #define ISO_FILE_ALREADY_OPENED 0xE830FF7F
7098 #define ISO_FILE_ALREADY_OPENNED 0xE830FF7F
7101 #define ISO_FILE_ACCESS_DENIED 0xE830FF7E
7104 #define ISO_FILE_BAD_PATH 0xE830FF7D
7107 #define ISO_FILE_DOESNT_EXIST 0xE830FF7C
7110 #define ISO_FILE_NOT_OPENED 0xE830FF7B
7113 #define ISO_FILE_NOT_OPENNED ISO_FILE_NOT_OPENED
7116 #define ISO_FILE_IS_DIR 0xE830FF7A
7119 #define ISO_FILE_READ_ERROR 0xE830FF79
7122 #define ISO_FILE_IS_NOT_DIR 0xE830FF78
7125 #define ISO_FILE_IS_NOT_SYMLINK 0xE830FF77
7128 #define ISO_FILE_SEEK_ERROR 0xE830FF76
7131 #define ISO_FILE_IGNORED 0xD020FF75
7134 #define ISO_FILE_TOO_BIG 0xD020FF74
7137 #define ISO_FILE_CANT_WRITE 0xE430FF73
7140 #define ISO_FILENAME_WRONG_CHARSET 0xD020FF72
7142 #define ISO_FILENAME_WRONG_CHARSET_OLD 0xC020FF72
7145 #define ISO_FILE_CANT_ADD 0xE030FF71
7151 #define ISO_FILE_IMGPATH_WRONG 0xD020FF70
7157 #define ISO_FILE_OFFSET_TOO_BIG 0xE830FF6A
7161 #define ISO_CHARSET_CONV_ERROR 0xE830FF00
7167 #define ISO_MANGLE_TOO_MUCH_FILES 0xE830FEFF
7175 #define ISO_WRONG_PVD 0xE830FEC0
7178 #define ISO_WRONG_RR 0xE030FEBF
7181 #define ISO_UNSUPPORTED_RR 0xE030FEBE
7184 #define ISO_WRONG_ECMA119 0xE830FEBD
7187 #define ISO_UNSUPPORTED_ECMA119 0xE830FEBC
7190 #define ISO_WRONG_EL_TORITO 0xD030FEBB
7193 #define ISO_UNSUPPORTED_EL_TORITO 0xD030FEBA
7196 #define ISO_ISOLINUX_CANT_PATCH 0xE030FEB9
7199 #define ISO_UNSUPPORTED_SUSP 0xE030FEB8
7202 #define ISO_WRONG_RR_WARN 0xD030FEB7
7205 #define ISO_SUSP_UNHANDLED 0xC020FEB6
7208 #define ISO_SUSP_MULTIPLE_ER 0xD030FEB5
7211 #define ISO_UNSUPPORTED_VD 0xC020FEB4
7214 #define ISO_EL_TORITO_WARN 0xD030FEB3
7217 #define ISO_IMAGE_WRITE_CANCELED 0xE430FEB2
7220 #define ISO_EL_TORITO_HIDDEN 0xD030FEB1
7225 #define ISO_AAIP_IGNORED 0xB030FEB0
7228 #define ISO_AAIP_BAD_ACL 0xE830FEAF
7231 #define ISO_AAIP_BAD_ACL_TEXT 0xE830FEAE
7235 #define ISO_AAIP_NOT_ENABLED 0xE830FEAD
7238 #define ISO_AAIP_BAD_AASTRING 0xE830FEAC
7241 #define ISO_AAIP_NO_GET_LOCAL 0xE830FEAB
7244 #define ISO_AAIP_NO_SET_LOCAL 0xE830FEAA
7248 #define ISO_AAIP_NON_USER_NAME 0xE830FEA9
7252 #define ISO_EXTF_TOO_OFTEN 0xE830FEA8
7255 #define ISO_ZLIB_NOT_ENABLED 0xE830FEA7
7258 #define ISO_ZISOFS_TOO_LARGE 0xE830FEA6
7261 #define ISO_FILTER_WRONG_INPUT 0xE830FEA5
7264 #define ISO_ZLIB_COMPR_ERR 0xE830FEA4
7267 #define ISO_ZISOFS_WRONG_INPUT 0xE830FEA3
7271 #define ISO_ZISOFS_PARAM_LOCK 0xE830FEA2
7274 #define ISO_ZLIB_EARLY_EOF 0xE830FEA1
7280 #define ISO_MD5_AREA_CORRUPTED 0xD030FEA0
7287 #define ISO_MD5_TAG_MISMATCH 0xE830FE9F
7294 #define ISO_SB_TREE_CORRUPTED 0xE830FE9E
7300 #define ISO_MD5_TAG_UNEXPECTED 0xD030FE9D
7306 #define ISO_MD5_TAG_MISPLACED 0xD030FE9C
7313 #define ISO_MD5_TAG_OTHER_RANGE 0xD030FE9B
7320 #define ISO_MD5_STREAM_CHANGE 0xE430FE9A
7327 #define ISO_SCDBACKUP_TAG_NOT_0 0xD030FE99
7335 #define ISO_OVWRT_MS_TOO_SMALL 0xE830FE98
7342 #define ISO_PART_OFFST_TOO_SMALL 0xE830FE97
7348 #define ISO_OVWRT_FIFO_TOO_SMALL 0xE830FE96
7351 #define ISO_LIBJTE_NOT_ENABLED 0xE830FE95
7354 #define ISO_LIBJTE_START_FAILED 0xE830FE94
7357 #define ISO_LIBJTE_END_FAILED 0xE830FE93
7361 #define ISO_LIBJTE_FILE_FAILED 0xE430FE92
7364 #define ISO_BOOT_TOO_MANY_MIPS 0xE830FE91
7367 #define ISO_BOOT_FILE_MISSING 0xE430FE90
7370 #define ISO_BAD_PARTITION_NO 0xE830FE8F
7373 #define ISO_BAD_PARTITION_FILE 0xE830FE8E
7377 #define ISO_NON_MBR_SYS_AREA 0xE830FE8D
7380 #define ISO_DISPLACE_ROLLOVER 0xE830FE8C
7384 #define ISO_NAME_NEEDS_TRANSL 0xE830FE8B
7388 #define ISO_STREAM_NO_CLONE 0xE830FE8A
7392 #define ISO_XINFO_NO_CLONE 0xE830FE89
7395 #define ISO_MD5_TAG_COPIED 0xD030FE88
7398 #define ISO_RR_NAME_TOO_LONG 0xE830FE87
7401 #define ISO_RR_NAME_RESERVED 0xE830FE86
7404 #define ISO_RR_PATH_TOO_LONG 0xE830FE85
7407 #define ISO_AAIP_BAD_ATTR_NAME 0xE830FE84
7411 #define ISO_AAIP_ACL_MULT_OBJ 0xE830FE83
7415 #define ISO_SECT_SCATTERED 0xE830FE82
7418 #define ISO_BOOT_TOO_MANY_APM 0xE830FE81
7421 #define ISO_BOOT_APM_OVERLAP 0xE830FE80
7424 #define ISO_BOOT_TOO_MANY_GPT 0xE830FE7F
7427 #define ISO_BOOT_GPT_OVERLAP 0xE830FE7E
7430 #define ISO_BOOT_TOO_MANY_MBR 0xE830FE7D
7433 #define ISO_BOOT_MBR_OVERLAP 0xE830FE7C
7436 #define ISO_BOOT_MBR_COLLISION 0xE830FE7B
7440 #define ISO_BOOT_NO_EFI_ELTO 0xE830FE7A
7443 #define ISO_BOOT_HFSP_BAD_BSIZE 0xE830FE79
7446 #define ISO_BOOT_APM_GPT_BSIZE 0xE830FE78
7449 #define ISO_HFSP_NO_MANGLE 0xE830FE77
7452 #define ISO_DEAD_SYMLINK 0xE830FE76
7455 #define ISO_DEEP_SYMLINK 0xE830FE75
7458 #define ISO_BAD_ISO_FILETYPE 0xE830FE74
7471 #define ISO_DATA_SOURCE_SORRY 0xE030FCFF
7474 #define ISO_DATA_SOURCE_MISHAP 0xE430FCFF
7477 #define ISO_DATA_SOURCE_FAILURE 0xE830FCFF
7480 #define ISO_DATA_SOURCE_FATAL 0xF030FCFF
7488 #ifdef LIBISOFS_WITHOUT_LIBBURN
7516 struct burn_source {
7546 int (*read)(
struct burn_source *,
unsigned char *buffer,
int size);
7555 int (*read_sub)(
struct burn_source *,
unsigned char *buffer,
int size);
7562 off_t (*get_size)(
struct burn_source *);
7578 int (*set_size)(
struct burn_source *source, off_t size);
7585 void (*free_data)(
struct burn_source *);
7592 struct burn_source *next;
7626 int (*read_xt)(
struct burn_source *,
unsigned char *buffer,
int size);
7632 int (*cancel)(
struct burn_source *source);