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 6
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);
3069 const char *catalog_path,
3164 char **content, off_t *size);
3511 int options,
int flag);
3558 int *options,
int flag);
4929 const char *path,
IsoNode **node);
4966 const char *name,
const char *path,
4967 off_t offset, off_t size,
5094 int *depth,
int flag);
5101 #define LIBISO_MAX_LINK_DEPTH 100
5155 size_t *free_bytes);
5157 #define ISO_MSGS_MESSAGE_LEN 4096
5202 int iso_obtain_msgs(
char *minimum_severity,
int *error_code,
int *imgid,
5203 char msg_text[],
char severity[]);
5230 char severity[],
int origin);
5594 unsigned char **aa_string,
int flag);
5940 char **access_text,
char **default_text,
int flag);
5975 char *access_text,
char *default_text,
int flag);
6032 char ***names,
size_t **value_lengths,
char ***values,
int flag);
6054 size_t *value_length,
char **value,
int flag);
6100 size_t *value_lengths,
char **values,
int flag);
6244 size_t **value_lengths,
char ***values,
int flag);
6278 size_t *value_lengths,
char **values,
int flag);
6283 #define Libisofs_default_path_maX 4096
6661 uint32_t *end_lba,
char md5[16],
int flag);
6762 uint32_t *range_start, uint32_t *range_size,
6763 uint32_t *next_tag,
char md5[16],
int flag);
6813 int iso_md5_clone(
void *old_md5_context,
void **new_md5_context);
6830 int iso_md5_end(
void **md5_context,
char result[16]);
6982 int *bless_max,
int flag);
6988 #define ISO_SUCCESS 1
6997 #define ISO_CANCELED 0xE830FFFF
7000 #define ISO_FATAL_ERROR 0xF030FFFE
7003 #define ISO_ERROR 0xE830FFFD
7006 #define ISO_ASSERT_FAILURE 0xF030FFFC
7011 #define ISO_NULL_POINTER 0xE830FFFB
7014 #define ISO_OUT_OF_MEM 0xF030FFFA
7017 #define ISO_INTERRUPTED 0xF030FFF9
7020 #define ISO_WRONG_ARG_VALUE 0xE830FFF8
7023 #define ISO_THREAD_ERROR 0xF030FFF7
7026 #define ISO_WRITE_ERROR 0xE830FFF6
7029 #define ISO_BUF_READ_ERROR 0xE830FFF5
7032 #define ISO_NODE_ALREADY_ADDED 0xE830FFC0
7035 #define ISO_NODE_NAME_NOT_UNIQUE 0xE830FFBF
7038 #define ISO_NODE_NOT_ADDED_TO_DIR 0xE830FFBE
7041 #define ISO_NODE_DOESNT_EXIST 0xE830FFBD
7046 #define ISO_IMAGE_ALREADY_BOOTABLE 0xE830FFBC
7049 #define ISO_BOOT_IMAGE_NOT_VALID 0xE830FFBB
7052 #define ISO_BOOT_IMAGE_OVERFLOW 0xE830FFBA
7055 #define ISO_BOOT_NO_CATALOG 0xE830FFB9
7062 #define ISO_FILE_ERROR 0xE830FF80
7065 #define ISO_FILE_ALREADY_OPENED 0xE830FF7F
7068 #define ISO_FILE_ALREADY_OPENNED 0xE830FF7F
7071 #define ISO_FILE_ACCESS_DENIED 0xE830FF7E
7074 #define ISO_FILE_BAD_PATH 0xE830FF7D
7077 #define ISO_FILE_DOESNT_EXIST 0xE830FF7C
7080 #define ISO_FILE_NOT_OPENED 0xE830FF7B
7083 #define ISO_FILE_NOT_OPENNED ISO_FILE_NOT_OPENED
7086 #define ISO_FILE_IS_DIR 0xE830FF7A
7089 #define ISO_FILE_READ_ERROR 0xE830FF79
7092 #define ISO_FILE_IS_NOT_DIR 0xE830FF78
7095 #define ISO_FILE_IS_NOT_SYMLINK 0xE830FF77
7098 #define ISO_FILE_SEEK_ERROR 0xE830FF76
7101 #define ISO_FILE_IGNORED 0xD020FF75
7104 #define ISO_FILE_TOO_BIG 0xD020FF74
7107 #define ISO_FILE_CANT_WRITE 0xE430FF73
7110 #define ISO_FILENAME_WRONG_CHARSET 0xD020FF72
7112 #define ISO_FILENAME_WRONG_CHARSET_OLD 0xC020FF72
7115 #define ISO_FILE_CANT_ADD 0xE030FF71
7121 #define ISO_FILE_IMGPATH_WRONG 0xD020FF70
7127 #define ISO_FILE_OFFSET_TOO_BIG 0xE830FF6A
7131 #define ISO_CHARSET_CONV_ERROR 0xE830FF00
7137 #define ISO_MANGLE_TOO_MUCH_FILES 0xE830FEFF
7145 #define ISO_WRONG_PVD 0xE830FEC0
7148 #define ISO_WRONG_RR 0xE030FEBF
7151 #define ISO_UNSUPPORTED_RR 0xE030FEBE
7154 #define ISO_WRONG_ECMA119 0xE830FEBD
7157 #define ISO_UNSUPPORTED_ECMA119 0xE830FEBC
7160 #define ISO_WRONG_EL_TORITO 0xD030FEBB
7163 #define ISO_UNSUPPORTED_EL_TORITO 0xD030FEBA
7166 #define ISO_ISOLINUX_CANT_PATCH 0xE030FEB9
7169 #define ISO_UNSUPPORTED_SUSP 0xE030FEB8
7172 #define ISO_WRONG_RR_WARN 0xD030FEB7
7175 #define ISO_SUSP_UNHANDLED 0xC020FEB6
7178 #define ISO_SUSP_MULTIPLE_ER 0xD030FEB5
7181 #define ISO_UNSUPPORTED_VD 0xC020FEB4
7184 #define ISO_EL_TORITO_WARN 0xD030FEB3
7187 #define ISO_IMAGE_WRITE_CANCELED 0xE430FEB2
7190 #define ISO_EL_TORITO_HIDDEN 0xD030FEB1
7195 #define ISO_AAIP_IGNORED 0xB030FEB0
7198 #define ISO_AAIP_BAD_ACL 0xE830FEAF
7201 #define ISO_AAIP_BAD_ACL_TEXT 0xE830FEAE
7205 #define ISO_AAIP_NOT_ENABLED 0xE830FEAD
7208 #define ISO_AAIP_BAD_AASTRING 0xE830FEAC
7211 #define ISO_AAIP_NO_GET_LOCAL 0xE830FEAB
7214 #define ISO_AAIP_NO_SET_LOCAL 0xE830FEAA
7218 #define ISO_AAIP_NON_USER_NAME 0xE830FEA9
7222 #define ISO_EXTF_TOO_OFTEN 0xE830FEA8
7225 #define ISO_ZLIB_NOT_ENABLED 0xE830FEA7
7228 #define ISO_ZISOFS_TOO_LARGE 0xE830FEA6
7231 #define ISO_FILTER_WRONG_INPUT 0xE830FEA5
7234 #define ISO_ZLIB_COMPR_ERR 0xE830FEA4
7237 #define ISO_ZISOFS_WRONG_INPUT 0xE830FEA3
7241 #define ISO_ZISOFS_PARAM_LOCK 0xE830FEA2
7244 #define ISO_ZLIB_EARLY_EOF 0xE830FEA1
7250 #define ISO_MD5_AREA_CORRUPTED 0xD030FEA0
7257 #define ISO_MD5_TAG_MISMATCH 0xE830FE9F
7264 #define ISO_SB_TREE_CORRUPTED 0xE830FE9E
7270 #define ISO_MD5_TAG_UNEXPECTED 0xD030FE9D
7276 #define ISO_MD5_TAG_MISPLACED 0xD030FE9C
7283 #define ISO_MD5_TAG_OTHER_RANGE 0xD030FE9B
7290 #define ISO_MD5_STREAM_CHANGE 0xE430FE9A
7297 #define ISO_SCDBACKUP_TAG_NOT_0 0xD030FE99
7305 #define ISO_OVWRT_MS_TOO_SMALL 0xE830FE98
7312 #define ISO_PART_OFFST_TOO_SMALL 0xE830FE97
7318 #define ISO_OVWRT_FIFO_TOO_SMALL 0xE830FE96
7321 #define ISO_LIBJTE_NOT_ENABLED 0xE830FE95
7324 #define ISO_LIBJTE_START_FAILED 0xE830FE94
7327 #define ISO_LIBJTE_END_FAILED 0xE830FE93
7331 #define ISO_LIBJTE_FILE_FAILED 0xE430FE92
7334 #define ISO_BOOT_TOO_MANY_MIPS 0xE830FE91
7337 #define ISO_BOOT_FILE_MISSING 0xE430FE90
7340 #define ISO_BAD_PARTITION_NO 0xE830FE8F
7343 #define ISO_BAD_PARTITION_FILE 0xE830FE8E
7347 #define ISO_NON_MBR_SYS_AREA 0xE830FE8D
7350 #define ISO_DISPLACE_ROLLOVER 0xE830FE8C
7354 #define ISO_NAME_NEEDS_TRANSL 0xE830FE8B
7358 #define ISO_STREAM_NO_CLONE 0xE830FE8A
7362 #define ISO_XINFO_NO_CLONE 0xE830FE89
7365 #define ISO_MD5_TAG_COPIED 0xD030FE88
7368 #define ISO_RR_NAME_TOO_LONG 0xE830FE87
7371 #define ISO_RR_NAME_RESERVED 0xE830FE86
7374 #define ISO_RR_PATH_TOO_LONG 0xE830FE85
7377 #define ISO_AAIP_BAD_ATTR_NAME 0xE830FE84
7381 #define ISO_AAIP_ACL_MULT_OBJ 0xE830FE83
7385 #define ISO_SECT_SCATTERED 0xE830FE82
7388 #define ISO_BOOT_TOO_MANY_APM 0xE830FE81
7391 #define ISO_BOOT_APM_OVERLAP 0xE830FE80
7394 #define ISO_BOOT_TOO_MANY_GPT 0xE830FE7F
7397 #define ISO_BOOT_GPT_OVERLAP 0xE830FE7E
7400 #define ISO_BOOT_TOO_MANY_MBR 0xE830FE7D
7403 #define ISO_BOOT_MBR_OVERLAP 0xE830FE7C
7406 #define ISO_BOOT_MBR_COLLISION 0xE830FE7B
7410 #define ISO_BOOT_NO_EFI_ELTO 0xE830FE7A
7413 #define ISO_BOOT_HFSP_BAD_BSIZE 0xE830FE79
7416 #define ISO_BOOT_APM_GPT_BSIZE 0xE830FE78
7419 #define ISO_HFSP_NO_MANGLE 0xE830FE77
7422 #define ISO_DEAD_SYMLINK 0xE830FE76
7425 #define ISO_DEEP_SYMLINK 0xE830FE75
7438 #define ISO_DATA_SOURCE_SORRY 0xE030FCFF
7441 #define ISO_DATA_SOURCE_MISHAP 0xE430FCFF
7444 #define ISO_DATA_SOURCE_FAILURE 0xE830FCFF
7447 #define ISO_DATA_SOURCE_FATAL 0xF030FCFF
7455 #ifdef LIBISOFS_WITHOUT_LIBBURN
7483 struct burn_source {
7513 int (*read)(
struct burn_source *,
unsigned char *buffer,
int size);
7522 int (*read_sub)(
struct burn_source *,
unsigned char *buffer,
int size);
7529 off_t (*get_size)(
struct burn_source *);
7545 int (*set_size)(
struct burn_source *source, off_t size);
7552 void (*free_data)(
struct burn_source *);
7559 struct burn_source *next;
7593 int (*read_xt)(
struct burn_source *,
unsigned char *buffer,
int size);
7599 int (*cancel)(
struct burn_source *source);