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 3
87 #define iso_lib_header_version_micro 4
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);
2214 int options,
int flag);
2268 time_t vol_creation_time, time_t vol_modification_time,
2269 time_t vol_expiration_time, time_t vol_effective_time,
2306 uint32_t block_offset_2k,
2307 int secs_512_per_head,
int heads_per_cyl);
2315 #define iso_libjte_req_major 1
2316 #define iso_libjte_req_minor 0
2317 #define iso_libjte_req_micro 0
2472 uint8_t partition_type,
char *image_path,
int flag);
2529 struct burn_source **burn_src);
2943 const char *data_preparer_id);
2993 const char *copyright_file_id);
3011 const char *abstract_file_id);
3095 char **creation_time,
char **modification_time,
3096 char **expiration_time,
char **effective_time);
3137 const char *catalog_path,
3232 char **content, off_t *size);
3590 int options,
int flag);
3637 int *options,
int flag);
5043 const char *path,
IsoNode **node);
5080 const char *name,
const char *path,
5081 off_t offset, off_t size,
5208 int *depth,
int flag);
5215 #define LIBISO_MAX_LINK_DEPTH 100
5269 size_t *free_bytes);
5271 #define ISO_MSGS_MESSAGE_LEN 4096
5316 int iso_obtain_msgs(
char *minimum_severity,
int *error_code,
int *imgid,
5317 char msg_text[],
char severity[]);
5344 char severity[],
int origin);
5708 unsigned char **aa_string,
int flag);
6054 char **access_text,
char **default_text,
int flag);
6089 char *access_text,
char *default_text,
int flag);
6146 char ***names,
size_t **value_lengths,
char ***values,
int flag);
6168 size_t *value_length,
char **value,
int flag);
6214 size_t *value_lengths,
char **values,
int flag);
6358 size_t **value_lengths,
char ***values,
int flag);
6392 size_t *value_lengths,
char **values,
int flag);
6397 #define Libisofs_default_path_maX 4096
6778 uint32_t *end_lba,
char md5[16],
int flag);
6879 uint32_t *range_start, uint32_t *range_size,
6880 uint32_t *next_tag,
char md5[16],
int flag);
6930 int iso_md5_clone(
void *old_md5_context,
void **new_md5_context);
6947 int iso_md5_end(
void **md5_context,
char result[16]);
7099 int *bless_max,
int flag);
7105 #define ISO_SUCCESS 1
7114 #define ISO_CANCELED 0xE830FFFF
7117 #define ISO_FATAL_ERROR 0xF030FFFE
7120 #define ISO_ERROR 0xE830FFFD
7123 #define ISO_ASSERT_FAILURE 0xF030FFFC
7128 #define ISO_NULL_POINTER 0xE830FFFB
7131 #define ISO_OUT_OF_MEM 0xF030FFFA
7134 #define ISO_INTERRUPTED 0xF030FFF9
7137 #define ISO_WRONG_ARG_VALUE 0xE830FFF8
7140 #define ISO_THREAD_ERROR 0xF030FFF7
7143 #define ISO_WRITE_ERROR 0xE830FFF6
7146 #define ISO_BUF_READ_ERROR 0xE830FFF5
7149 #define ISO_NODE_ALREADY_ADDED 0xE830FFC0
7152 #define ISO_NODE_NAME_NOT_UNIQUE 0xE830FFBF
7155 #define ISO_NODE_NOT_ADDED_TO_DIR 0xE830FFBE
7158 #define ISO_NODE_DOESNT_EXIST 0xE830FFBD
7163 #define ISO_IMAGE_ALREADY_BOOTABLE 0xE830FFBC
7166 #define ISO_BOOT_IMAGE_NOT_VALID 0xE830FFBB
7169 #define ISO_BOOT_IMAGE_OVERFLOW 0xE830FFBA
7172 #define ISO_BOOT_NO_CATALOG 0xE830FFB9
7179 #define ISO_FILE_ERROR 0xE830FF80
7182 #define ISO_FILE_ALREADY_OPENED 0xE830FF7F
7185 #define ISO_FILE_ALREADY_OPENNED 0xE830FF7F
7188 #define ISO_FILE_ACCESS_DENIED 0xE830FF7E
7191 #define ISO_FILE_BAD_PATH 0xE830FF7D
7194 #define ISO_FILE_DOESNT_EXIST 0xE830FF7C
7197 #define ISO_FILE_NOT_OPENED 0xE830FF7B
7200 #define ISO_FILE_NOT_OPENNED ISO_FILE_NOT_OPENED
7203 #define ISO_FILE_IS_DIR 0xE830FF7A
7206 #define ISO_FILE_READ_ERROR 0xE830FF79
7209 #define ISO_FILE_IS_NOT_DIR 0xE830FF78
7212 #define ISO_FILE_IS_NOT_SYMLINK 0xE830FF77
7215 #define ISO_FILE_SEEK_ERROR 0xE830FF76
7218 #define ISO_FILE_IGNORED 0xD020FF75
7221 #define ISO_FILE_TOO_BIG 0xD020FF74
7224 #define ISO_FILE_CANT_WRITE 0xE430FF73
7227 #define ISO_FILENAME_WRONG_CHARSET 0xD020FF72
7229 #define ISO_FILENAME_WRONG_CHARSET_OLD 0xC020FF72
7232 #define ISO_FILE_CANT_ADD 0xE030FF71
7238 #define ISO_FILE_IMGPATH_WRONG 0xD020FF70
7244 #define ISO_FILE_OFFSET_TOO_BIG 0xE830FF6A
7248 #define ISO_CHARSET_CONV_ERROR 0xE830FF00
7254 #define ISO_MANGLE_TOO_MUCH_FILES 0xE830FEFF
7262 #define ISO_WRONG_PVD 0xE830FEC0
7265 #define ISO_WRONG_RR 0xE030FEBF
7268 #define ISO_UNSUPPORTED_RR 0xE030FEBE
7271 #define ISO_WRONG_ECMA119 0xE830FEBD
7274 #define ISO_UNSUPPORTED_ECMA119 0xE830FEBC
7277 #define ISO_WRONG_EL_TORITO 0xD030FEBB
7280 #define ISO_UNSUPPORTED_EL_TORITO 0xD030FEBA
7283 #define ISO_ISOLINUX_CANT_PATCH 0xE030FEB9
7286 #define ISO_UNSUPPORTED_SUSP 0xE030FEB8
7289 #define ISO_WRONG_RR_WARN 0xD030FEB7
7292 #define ISO_SUSP_UNHANDLED 0xC020FEB6
7295 #define ISO_SUSP_MULTIPLE_ER 0xD030FEB5
7298 #define ISO_UNSUPPORTED_VD 0xC020FEB4
7301 #define ISO_EL_TORITO_WARN 0xD030FEB3
7304 #define ISO_IMAGE_WRITE_CANCELED 0xE430FEB2
7307 #define ISO_EL_TORITO_HIDDEN 0xD030FEB1
7312 #define ISO_AAIP_IGNORED 0xB030FEB0
7315 #define ISO_AAIP_BAD_ACL 0xE830FEAF
7318 #define ISO_AAIP_BAD_ACL_TEXT 0xE830FEAE
7322 #define ISO_AAIP_NOT_ENABLED 0xE830FEAD
7325 #define ISO_AAIP_BAD_AASTRING 0xE830FEAC
7328 #define ISO_AAIP_NO_GET_LOCAL 0xE830FEAB
7331 #define ISO_AAIP_NO_SET_LOCAL 0xE830FEAA
7335 #define ISO_AAIP_NON_USER_NAME 0xE830FEA9
7339 #define ISO_EXTF_TOO_OFTEN 0xE830FEA8
7342 #define ISO_ZLIB_NOT_ENABLED 0xE830FEA7
7345 #define ISO_ZISOFS_TOO_LARGE 0xE830FEA6
7348 #define ISO_FILTER_WRONG_INPUT 0xE830FEA5
7351 #define ISO_ZLIB_COMPR_ERR 0xE830FEA4
7354 #define ISO_ZISOFS_WRONG_INPUT 0xE830FEA3
7358 #define ISO_ZISOFS_PARAM_LOCK 0xE830FEA2
7361 #define ISO_ZLIB_EARLY_EOF 0xE830FEA1
7367 #define ISO_MD5_AREA_CORRUPTED 0xD030FEA0
7374 #define ISO_MD5_TAG_MISMATCH 0xE830FE9F
7381 #define ISO_SB_TREE_CORRUPTED 0xE830FE9E
7387 #define ISO_MD5_TAG_UNEXPECTED 0xD030FE9D
7393 #define ISO_MD5_TAG_MISPLACED 0xD030FE9C
7400 #define ISO_MD5_TAG_OTHER_RANGE 0xD030FE9B
7407 #define ISO_MD5_STREAM_CHANGE 0xE430FE9A
7414 #define ISO_SCDBACKUP_TAG_NOT_0 0xD030FE99
7422 #define ISO_OVWRT_MS_TOO_SMALL 0xE830FE98
7429 #define ISO_PART_OFFST_TOO_SMALL 0xE830FE97
7435 #define ISO_OVWRT_FIFO_TOO_SMALL 0xE830FE96
7438 #define ISO_LIBJTE_NOT_ENABLED 0xE830FE95
7441 #define ISO_LIBJTE_START_FAILED 0xE830FE94
7444 #define ISO_LIBJTE_END_FAILED 0xE830FE93
7448 #define ISO_LIBJTE_FILE_FAILED 0xE430FE92
7451 #define ISO_BOOT_TOO_MANY_MIPS 0xE830FE91
7454 #define ISO_BOOT_FILE_MISSING 0xE430FE90
7457 #define ISO_BAD_PARTITION_NO 0xE830FE8F
7460 #define ISO_BAD_PARTITION_FILE 0xE830FE8E
7464 #define ISO_NON_MBR_SYS_AREA 0xE830FE8D
7467 #define ISO_DISPLACE_ROLLOVER 0xE830FE8C
7471 #define ISO_NAME_NEEDS_TRANSL 0xE830FE8B
7475 #define ISO_STREAM_NO_CLONE 0xE830FE8A
7479 #define ISO_XINFO_NO_CLONE 0xE830FE89
7482 #define ISO_MD5_TAG_COPIED 0xD030FE88
7485 #define ISO_RR_NAME_TOO_LONG 0xE830FE87
7488 #define ISO_RR_NAME_RESERVED 0xE830FE86
7491 #define ISO_RR_PATH_TOO_LONG 0xE830FE85
7494 #define ISO_AAIP_BAD_ATTR_NAME 0xE830FE84
7498 #define ISO_AAIP_ACL_MULT_OBJ 0xE830FE83
7502 #define ISO_SECT_SCATTERED 0xE830FE82
7505 #define ISO_BOOT_TOO_MANY_APM 0xE830FE81
7508 #define ISO_BOOT_APM_OVERLAP 0xE830FE80
7511 #define ISO_BOOT_TOO_MANY_GPT 0xE830FE7F
7514 #define ISO_BOOT_GPT_OVERLAP 0xE830FE7E
7517 #define ISO_BOOT_TOO_MANY_MBR 0xE830FE7D
7520 #define ISO_BOOT_MBR_OVERLAP 0xE830FE7C
7523 #define ISO_BOOT_MBR_COLLISION 0xE830FE7B
7527 #define ISO_BOOT_NO_EFI_ELTO 0xE830FE7A
7530 #define ISO_BOOT_HFSP_BAD_BSIZE 0xE830FE79
7533 #define ISO_BOOT_APM_GPT_BSIZE 0xE830FE78
7536 #define ISO_HFSP_NO_MANGLE 0xE830FE77
7539 #define ISO_DEAD_SYMLINK 0xE830FE76
7542 #define ISO_DEEP_SYMLINK 0xE830FE75
7545 #define ISO_BAD_ISO_FILETYPE 0xE830FE74
7558 #define ISO_DATA_SOURCE_SORRY 0xE030FCFF
7561 #define ISO_DATA_SOURCE_MISHAP 0xE430FCFF
7564 #define ISO_DATA_SOURCE_FAILURE 0xE830FCFF
7567 #define ISO_DATA_SOURCE_FATAL 0xF030FCFF
7575 #ifdef LIBISOFS_WITHOUT_LIBBURN
7603 struct burn_source {
7633 int (*read)(
struct burn_source *,
unsigned char *buffer,
int size);
7642 int (*read_sub)(
struct burn_source *,
unsigned char *buffer,
int size);
7649 off_t (*get_size)(
struct burn_source *);
7665 int (*set_size)(
struct burn_source *source, off_t size);
7672 void (*free_data)(
struct burn_source *);
7679 struct burn_source *next;
7713 int (*read_xt)(
struct burn_source *,
unsigned char *buffer,
int size);
7719 int (*cancel)(
struct burn_source *source);