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 2
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)
855 unsigned char **aa_string,
int flag);
882 #ifndef Libisofs_h_as_cpluspluS
1155 #ifndef Libisofs_h_as_cpluspluS
1809 char *name,
char *timestamp,
1831 int file_mode,
int uid,
int gid);
2094 int options,
int flag);
2145 time_t vol_creation_time, time_t vol_modification_time,
2146 time_t vol_expiration_time, time_t vol_effective_time,
2183 uint32_t block_offset_2k,
2184 int secs_512_per_head,
int heads_per_cyl);
2192 #define iso_libjte_req_major 1
2193 #define iso_libjte_req_minor 0
2194 #define iso_libjte_req_micro 0
2288 uint8_t partition_type,
char *image_path,
int flag);
2345 struct burn_source **burn_src);
2759 const char *data_preparer_id);
2809 const char *copyright_file_id);
2827 const char *abstract_file_id);
2894 const char *catalog_path,
2989 char **content, off_t *size);
3310 int options,
int flag);
3357 int *options,
int flag);
4728 const char *path,
IsoNode **node);
4765 const char *name,
const char *path,
4766 off_t offset, off_t size,
4923 size_t *free_bytes);
4925 #define ISO_MSGS_MESSAGE_LEN 4096
4970 int iso_obtain_msgs(
char *minimum_severity,
int *error_code,
int *imgid,
4971 char msg_text[],
char severity[]);
4998 char severity[],
int origin);
5362 unsigned char **aa_string,
int flag);
5708 char **access_text,
char **default_text,
int flag);
5743 char *access_text,
char *default_text,
int flag);
5800 char ***names,
size_t **value_lengths,
char ***values,
int flag);
5822 size_t *value_length,
char **value,
int flag);
5864 size_t *value_lengths,
char **values,
int flag);
6008 size_t **value_lengths,
char ***values,
int flag);
6042 size_t *value_lengths,
char **values,
int flag);
6047 #define Libisofs_default_path_maX 4096
6425 uint32_t *end_lba,
char md5[16],
int flag);
6526 uint32_t *range_start, uint32_t *range_size,
6527 uint32_t *next_tag,
char md5[16],
int flag);
6577 int iso_md5_clone(
void *old_md5_context,
void **new_md5_context);
6594 int iso_md5_end(
void **md5_context,
char result[16]);
6614 #define ISO_SUCCESS 1
6623 #define ISO_CANCELED 0xE830FFFF
6626 #define ISO_FATAL_ERROR 0xF030FFFE
6629 #define ISO_ERROR 0xE830FFFD
6632 #define ISO_ASSERT_FAILURE 0xF030FFFC
6637 #define ISO_NULL_POINTER 0xE830FFFB
6640 #define ISO_OUT_OF_MEM 0xF030FFFA
6643 #define ISO_INTERRUPTED 0xF030FFF9
6646 #define ISO_WRONG_ARG_VALUE 0xE830FFF8
6649 #define ISO_THREAD_ERROR 0xF030FFF7
6652 #define ISO_WRITE_ERROR 0xE830FFF6
6655 #define ISO_BUF_READ_ERROR 0xE830FFF5
6658 #define ISO_NODE_ALREADY_ADDED 0xE830FFC0
6661 #define ISO_NODE_NAME_NOT_UNIQUE 0xE830FFBF
6664 #define ISO_NODE_NOT_ADDED_TO_DIR 0xE830FFBE
6667 #define ISO_NODE_DOESNT_EXIST 0xE830FFBD
6672 #define ISO_IMAGE_ALREADY_BOOTABLE 0xE830FFBC
6675 #define ISO_BOOT_IMAGE_NOT_VALID 0xE830FFBB
6678 #define ISO_BOOT_IMAGE_OVERFLOW 0xE830FFBA
6681 #define ISO_BOOT_NO_CATALOG 0xE830FFB9
6688 #define ISO_FILE_ERROR 0xE830FF80
6691 #define ISO_FILE_ALREADY_OPENED 0xE830FF7F
6694 #define ISO_FILE_ALREADY_OPENNED 0xE830FF7F
6697 #define ISO_FILE_ACCESS_DENIED 0xE830FF7E
6700 #define ISO_FILE_BAD_PATH 0xE830FF7D
6703 #define ISO_FILE_DOESNT_EXIST 0xE830FF7C
6706 #define ISO_FILE_NOT_OPENED 0xE830FF7B
6709 #define ISO_FILE_NOT_OPENNED ISO_FILE_NOT_OPENED
6712 #define ISO_FILE_IS_DIR 0xE830FF7A
6715 #define ISO_FILE_READ_ERROR 0xE830FF79
6718 #define ISO_FILE_IS_NOT_DIR 0xE830FF78
6721 #define ISO_FILE_IS_NOT_SYMLINK 0xE830FF77
6724 #define ISO_FILE_SEEK_ERROR 0xE830FF76
6727 #define ISO_FILE_IGNORED 0xD020FF75
6730 #define ISO_FILE_TOO_BIG 0xD020FF74
6733 #define ISO_FILE_CANT_WRITE 0xE430FF73
6736 #define ISO_FILENAME_WRONG_CHARSET 0xD020FF72
6738 #define ISO_FILENAME_WRONG_CHARSET_OLD 0xC020FF72
6741 #define ISO_FILE_CANT_ADD 0xE030FF71
6747 #define ISO_FILE_IMGPATH_WRONG 0xD020FF70
6753 #define ISO_FILE_OFFSET_TOO_BIG 0xE830FF6A
6757 #define ISO_CHARSET_CONV_ERROR 0xE830FF00
6763 #define ISO_MANGLE_TOO_MUCH_FILES 0xE830FEFF
6771 #define ISO_WRONG_PVD 0xE830FEC0
6774 #define ISO_WRONG_RR 0xE030FEBF
6777 #define ISO_UNSUPPORTED_RR 0xE030FEBE
6780 #define ISO_WRONG_ECMA119 0xE830FEBD
6783 #define ISO_UNSUPPORTED_ECMA119 0xE830FEBC
6786 #define ISO_WRONG_EL_TORITO 0xD030FEBB
6789 #define ISO_UNSUPPORTED_EL_TORITO 0xD030FEBA
6792 #define ISO_ISOLINUX_CANT_PATCH 0xE030FEB9
6795 #define ISO_UNSUPPORTED_SUSP 0xE030FEB8
6798 #define ISO_WRONG_RR_WARN 0xD030FEB7
6801 #define ISO_SUSP_UNHANDLED 0xC020FEB6
6804 #define ISO_SUSP_MULTIPLE_ER 0xD030FEB5
6807 #define ISO_UNSUPPORTED_VD 0xC020FEB4
6810 #define ISO_EL_TORITO_WARN 0xD030FEB3
6813 #define ISO_IMAGE_WRITE_CANCELED 0xE430FEB2
6816 #define ISO_EL_TORITO_HIDDEN 0xD030FEB1
6821 #define ISO_AAIP_IGNORED 0xB030FEB0
6824 #define ISO_AAIP_BAD_ACL 0xE830FEAF
6827 #define ISO_AAIP_BAD_ACL_TEXT 0xE830FEAE
6831 #define ISO_AAIP_NOT_ENABLED 0xE830FEAD
6834 #define ISO_AAIP_BAD_AASTRING 0xE830FEAC
6837 #define ISO_AAIP_NO_GET_LOCAL 0xE830FEAB
6840 #define ISO_AAIP_NO_SET_LOCAL 0xE830FEAA
6844 #define ISO_AAIP_NON_USER_NAME 0xE830FEA9
6849 #define ISO_EXTF_TOO_OFTEN 0xE830FEA8
6852 #define ISO_ZLIB_NOT_ENABLED 0xE830FEA7
6855 #define ISO_ZISOFS_TOO_LARGE 0xE830FEA6
6858 #define ISO_FILTER_WRONG_INPUT 0xE830FEA5
6861 #define ISO_ZLIB_COMPR_ERR 0xE830FEA4
6864 #define ISO_ZISOFS_WRONG_INPUT 0xE830FEA3
6868 #define ISO_ZISOFS_PARAM_LOCK 0xE830FEA2
6871 #define ISO_ZLIB_EARLY_EOF 0xE830FEA1
6877 #define ISO_MD5_AREA_CORRUPTED 0xD030FEA0
6884 #define ISO_MD5_TAG_MISMATCH 0xE830FE9F
6891 #define ISO_SB_TREE_CORRUPTED 0xE830FE9E
6897 #define ISO_MD5_TAG_UNEXPECTED 0xD030FE9D
6903 #define ISO_MD5_TAG_MISPLACED 0xD030FE9C
6910 #define ISO_MD5_TAG_OTHER_RANGE 0xD030FE9B
6917 #define ISO_MD5_STREAM_CHANGE 0xE430FE9A
6924 #define ISO_SCDBACKUP_TAG_NOT_0 0xD030FE99
6932 #define ISO_OVWRT_MS_TOO_SMALL 0xE830FE98
6939 #define ISO_PART_OFFST_TOO_SMALL 0xE830FE97
6945 #define ISO_OVWRT_FIFO_TOO_SMALL 0xE830FE96
6948 #define ISO_LIBJTE_NOT_ENABLED 0xE830FE95
6951 #define ISO_LIBJTE_START_FAILED 0xE830FE94
6954 #define ISO_LIBJTE_END_FAILED 0xE830FE93
6958 #define ISO_LIBJTE_FILE_FAILED 0xE430FE92
6961 #define ISO_BOOT_TOO_MANY_MIPS 0xE830FE91
6964 #define ISO_BOOT_FILE_MISSING 0xE430FE90
6967 #define ISO_BAD_PARTITION_NO 0xE830FE8F
6970 #define ISO_BAD_PARTITION_FILE 0xE830FE8E
6974 #define ISO_NON_MBR_SYS_AREA 0xE830FE8D
6977 #define ISO_DISPLACE_ROLLOVER 0xE830FE8C
6981 #define ISO_NAME_NEEDS_TRANSL 0xE830FE8B
6985 #define ISO_STREAM_NO_CLONE 0xE830FE8A
6989 #define ISO_XINFO_NO_CLONE 0xE830FE89
6992 #define ISO_MD5_TAG_COPIED 0xD030FE88
6995 #define ISO_RR_NAME_TOO_LONG 0xE830FE87
6998 #define ISO_RR_NAME_RESERVED 0xE830FE86
7001 #define ISO_RR_PATH_TOO_LONG 0xE830FE85
7004 #define ISO_AAIP_BAD_ATTR_NAME 0xE830FE84
7008 #define ISO_AAIP_ACL_MULT_OBJ 0xE830FE83
7022 #define ISO_DATA_SOURCE_SORRY 0xE030FCFF
7025 #define ISO_DATA_SOURCE_MISHAP 0xE430FCFF
7028 #define ISO_DATA_SOURCE_FAILURE 0xE830FCFF
7031 #define ISO_DATA_SOURCE_FATAL 0xF030FCFF
7039 #ifdef LIBISOFS_WITHOUT_LIBBURN
7097 struct burn_source {
7127 int (*read)(
struct burn_source *,
unsigned char *buffer,
int size);
7136 int (*read_sub)(
struct burn_source *,
unsigned char *buffer,
int size);
7143 off_t (*get_size)(
struct burn_source *);
7159 int (*set_size)(
struct burn_source *source, off_t size);
7166 void (*free_data)(
struct burn_source *);
7173 struct burn_source *next;
7207 int (*read_xt)(
struct burn_source *,
unsigned char *buffer,
int size);
7213 int (*cancel)(
struct burn_source *source);
7229 #define Libisofs_with_rr_reloc_diR yes