|
|
|
@ -68,31 +68,40 @@ struct burn_source;
|
|
|
|
|
*/ |
|
|
|
|
typedef struct Iso_Image IsoImage; |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* A node in the iso tree, i.e. a file that will be written to image. |
|
|
|
|
*
|
|
|
|
|
* It can represent any kind of files. When needed, you can get the type with
|
|
|
|
|
* iso_node_get_type() and cast it to the appropiate subtype. Useful macros |
|
|
|
|
* are provided, see below. |
|
|
|
|
*/ |
|
|
|
|
typedef struct Iso_Node IsoNode; |
|
|
|
|
typedef struct Iso_Dir IsoDir; |
|
|
|
|
typedef struct Iso_Symlink IsoSymlink; |
|
|
|
|
typedef struct Iso_File IsoFile; |
|
|
|
|
typedef struct Iso_Special IsoSpecial; |
|
|
|
|
|
|
|
|
|
/* macros to check node type */ |
|
|
|
|
#define ISO_NODE_IS_DIR(n) (iso_node_get_type(n) == LIBISO_DIR) |
|
|
|
|
#define ISO_NODE_IS_FILE(n) (iso_node_get_type(n) == LIBISO_FILE) |
|
|
|
|
#define ISO_NODE_IS_SYMLINK(n) (iso_node_get_type(n) == LIBISO_SYMLINK) |
|
|
|
|
#define ISO_NODE_IS_SPECIAL(n) (iso_node_get_type(n) == LIBISO_SPECIAL) |
|
|
|
|
#define ISO_NODE_IS_BOOTCAT(n) (iso_node_get_type(n) == LIBISO_BOOT) |
|
|
|
|
|
|
|
|
|
/* macros for safe downcasting */ |
|
|
|
|
#define ISO_DIR(n) ((IsoDir*)(ISO_NODE_IS_DIR(n) ? n : NULL)) |
|
|
|
|
#define ISO_FILE(n) ((IsoFile*)(ISO_NODE_IS_FILE(n) ? n : NULL)) |
|
|
|
|
#define ISO_SYMLINK(n) ((IsoSymlink*)(ISO_NODE_IS_SYMLINK(n) ? n : NULL)) |
|
|
|
|
#define ISO_SPECIAL(n) ((IsoSpecial*)(ISO_NODE_IS_SPECIAL(n) ? n : NULL)) |
|
|
|
|
/**
|
|
|
|
|
* A directory in the iso tree. It is an special type of IsoNode and can be |
|
|
|
|
* casted to it in any case. |
|
|
|
|
*/ |
|
|
|
|
typedef struct Iso_Dir IsoDir; |
|
|
|
|
|
|
|
|
|
#define ISO_NODE(n) ((IsoNode*)n) |
|
|
|
|
/**
|
|
|
|
|
* A symbolic link in the iso tree. It is an special type of IsoNode and can be |
|
|
|
|
* casted to it in any case. |
|
|
|
|
*/ |
|
|
|
|
typedef struct Iso_Symlink IsoSymlink; |
|
|
|
|
|
|
|
|
|
typedef struct Iso_Dir_Iter IsoDirIter; |
|
|
|
|
/**
|
|
|
|
|
* A regular file in the iso tree. It is an special type of IsoNode and can be |
|
|
|
|
* casted to it in any case. |
|
|
|
|
*/ |
|
|
|
|
typedef struct Iso_File IsoFile; |
|
|
|
|
|
|
|
|
|
typedef struct el_torito_boot_image ElToritoBootImage; |
|
|
|
|
typedef struct Iso_Boot IsoBoot; |
|
|
|
|
/**
|
|
|
|
|
* An special file in the iso tree. This is used to represent any POSIX file
|
|
|
|
|
* other that regular files, directories or symlinks, i.e.: socket, block and |
|
|
|
|
* character devices, and fifos. |
|
|
|
|
* It is an special type of IsoNode and can be casted to it in any case. |
|
|
|
|
*/ |
|
|
|
|
typedef struct Iso_Special IsoSpecial; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The type of an IsoNode. |
|
|
|
@ -117,6 +126,38 @@ enum IsoNodeType {
|
|
|
|
|
LIBISO_BOOT |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/* macros to check node type */ |
|
|
|
|
#define ISO_NODE_IS_DIR(n) (iso_node_get_type(n) == LIBISO_DIR) |
|
|
|
|
#define ISO_NODE_IS_FILE(n) (iso_node_get_type(n) == LIBISO_FILE) |
|
|
|
|
#define ISO_NODE_IS_SYMLINK(n) (iso_node_get_type(n) == LIBISO_SYMLINK) |
|
|
|
|
#define ISO_NODE_IS_SPECIAL(n) (iso_node_get_type(n) == LIBISO_SPECIAL) |
|
|
|
|
#define ISO_NODE_IS_BOOTCAT(n) (iso_node_get_type(n) == LIBISO_BOOT) |
|
|
|
|
|
|
|
|
|
/* macros for safe downcasting */ |
|
|
|
|
#define ISO_DIR(n) ((IsoDir*)(ISO_NODE_IS_DIR(n) ? n : NULL)) |
|
|
|
|
#define ISO_FILE(n) ((IsoFile*)(ISO_NODE_IS_FILE(n) ? n : NULL)) |
|
|
|
|
#define ISO_SYMLINK(n) ((IsoSymlink*)(ISO_NODE_IS_SYMLINK(n) ? n : NULL)) |
|
|
|
|
#define ISO_SPECIAL(n) ((IsoSpecial*)(ISO_NODE_IS_SPECIAL(n) ? n : NULL)) |
|
|
|
|
|
|
|
|
|
#define ISO_NODE(n) ((IsoNode*)n) |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Context for iterate on directory children. |
|
|
|
|
* @see iso_dir_get_children() |
|
|
|
|
*/ |
|
|
|
|
typedef struct Iso_Dir_Iter IsoDirIter; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* It represents an El-Torito boot image. |
|
|
|
|
*/ |
|
|
|
|
typedef struct el_torito_boot_image ElToritoBootImage; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* An special type of IsoNode that acts as a placeholder for an El-Torito |
|
|
|
|
* boot catalog. Once written, it will appear as a regular file. |
|
|
|
|
*/ |
|
|
|
|
typedef struct Iso_Boot IsoBoot; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Flag used to hide a file in the RR/ISO or Joliet tree. |
|
|
|
|
*
|
|
|
|
@ -174,8 +215,23 @@ enum iso_replace_mode {
|
|
|
|
|
*/ |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Options for image written. |
|
|
|
|
* @see iso_write_opts_new() |
|
|
|
|
*/ |
|
|
|
|
typedef struct iso_write_opts IsoWriteOpts; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Options for image reading or import. |
|
|
|
|
* @see iso_read_opts_new() |
|
|
|
|
*/ |
|
|
|
|
typedef struct iso_read_opts IsoReadOpts; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Source for image reading. |
|
|
|
|
*
|
|
|
|
|
* @see struct iso_data_source |
|
|
|
|
*/ |
|
|
|
|
typedef struct iso_data_source IsoDataSource; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -275,8 +331,26 @@ struct iso_read_image_features
|
|
|
|
|
unsigned int hasElTorito :1; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* POSIX abstraction for source files. |
|
|
|
|
*
|
|
|
|
|
* @see struct iso_file_source |
|
|
|
|
*/ |
|
|
|
|
typedef struct iso_file_source IsoFileSource; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Abstract for source filesystems. |
|
|
|
|
*
|
|
|
|
|
* @see struct iso_filesystem |
|
|
|
|
*/ |
|
|
|
|
typedef struct iso_filesystem IsoFilesystem; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Interface that defines the operations (methods) available for an
|
|
|
|
|
* IsoFileSource. |
|
|
|
|
*
|
|
|
|
|
* @see struct IsoFileSource_Iface |
|
|
|
|
*/ |
|
|
|
|
typedef struct IsoFileSource_Iface IsoFileSourceIface; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -637,6 +711,10 @@ int iso_lib_is_compatible(int major, int minor, int micro);
|
|
|
|
|
* Options by default are determined by the selected profile. Fifo size is set |
|
|
|
|
* by default to 2 MB. |
|
|
|
|
*
|
|
|
|
|
* @param opts |
|
|
|
|
* Pointer to the location where the newly created IsoWriteOpts will be |
|
|
|
|
* stored. You should free it with iso_write_opts_free() when no more |
|
|
|
|
* needed. |
|
|
|
|
* @param profile |
|
|
|
|
* Default profile for image creation. For now the following values are |
|
|
|
|
* defined: |
|
|
|
@ -948,7 +1026,8 @@ int iso_write_opts_set_fifo_size(IsoWriteOpts *opts, size_t fifo_size);
|
|
|
|
|
* @param image |
|
|
|
|
* The image to write. |
|
|
|
|
* @param opts |
|
|
|
|
* The options for image generation. |
|
|
|
|
* The options for image generation. All needed data will be copied, so
|
|
|
|
|
* you can free the given struct once this function returns. |
|
|
|
|
* @param burn_src |
|
|
|
|
* Location where the pointer to the burn_source will be stored |
|
|
|
|
* @return |
|
|
|
@ -964,6 +1043,10 @@ int iso_image_create_burn_source(IsoImage *image, IsoWriteOpts *opts,
|
|
|
|
|
*
|
|
|
|
|
* Options by default are determined by the selected profile. |
|
|
|
|
*
|
|
|
|
|
* @param opts |
|
|
|
|
* Pointer to the location where the newly created IsoReadOpts will be |
|
|
|
|
* stored. You should free it with iso_read_opts_free() when no more |
|
|
|
|
* needed. |
|
|
|
|
* @param profile |
|
|
|
|
* Default profile for image reading. For now the following values are |
|
|
|
|
* defined: |
|
|
|
@ -1058,7 +1141,8 @@ int iso_read_opts_set_input_charset(IsoReadOpts *opts, const char *charset);
|
|
|
|
|
* Data Source from which old image will be read. A extra reference is |
|
|
|
|
* added, so you still need to iso_data_source_unref() yours. |
|
|
|
|
* @param opts |
|
|
|
|
* Options for image import |
|
|
|
|
* Options for image import. All needed data will be copied, so you |
|
|
|
|
* can free the given struct once this function returns. |
|
|
|
|
* @param features |
|
|
|
|
* If not NULL, a new struct iso_read_image_features will be allocated |
|
|
|
|
* and filled with the features of the old image. It should be freed when |
|
|
|
|