2007-11-24 12:14:45 +00:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2007 Vreixo Formoso
|
2015-02-28 14:13:38 +00:00
|
|
|
* Copyright (c) 2009 - 2015 Thomas Schmitt
|
2007-11-24 12:14:45 +00:00
|
|
|
*
|
|
|
|
* This file is part of the libisofs project; you can redistribute it and/or
|
2010-01-27 05:48:59 +00:00
|
|
|
* modify it under the terms of the GNU General Public License version 2
|
|
|
|
* or later as published by the Free Software Foundation.
|
|
|
|
* See COPYING file for details.
|
2007-11-24 12:14:45 +00:00
|
|
|
*/
|
|
|
|
#ifndef LIBISO_IMAGE_H_
|
|
|
|
#define LIBISO_IMAGE_H_
|
|
|
|
|
2007-12-02 18:10:30 +00:00
|
|
|
#include "libisofs.h"
|
|
|
|
#include "node.h"
|
2007-12-07 02:02:46 +00:00
|
|
|
#include "fsource.h"
|
|
|
|
#include "builder.h"
|
|
|
|
|
2009-04-28 20:40:15 +00:00
|
|
|
/* Size of a inode recycling window. Each new window causes a tree traversal.
|
|
|
|
Window memory consumption is ISO_USED_INODE_RANGE / 8.
|
|
|
|
This must be a power of 2 smaller than 30 bit and larger than 8 bit.
|
|
|
|
Here: 32 kB memory for 256k inodes.
|
|
|
|
*/
|
|
|
|
#define ISO_USED_INODE_RANGE (1 << 18)
|
|
|
|
|
2014-01-03 17:29:29 +00:00
|
|
|
/* How many warnings to issue about name collisions during iso_image_import()
|
|
|
|
*/
|
|
|
|
#define ISO_IMPORT_COLL_WARN_MAX 10
|
2009-04-28 20:40:15 +00:00
|
|
|
|
2007-12-02 18:10:30 +00:00
|
|
|
/*
|
|
|
|
* Image is a context for image manipulation.
|
|
|
|
* Global objects such as the message_queues must belogn to that
|
|
|
|
* context. Thus we will have, for example, a msg queue per image,
|
|
|
|
* so images are completelly independent and can be managed together.
|
|
|
|
* (Usefull, for example, in Multiple-Document-Interface GUI apps.
|
|
|
|
* [The stuff we have in init belongs really to image!]
|
|
|
|
*/
|
2007-12-28 21:10:17 +00:00
|
|
|
|
2008-01-23 20:38:09 +00:00
|
|
|
struct Iso_Image
|
2007-12-28 21:10:17 +00:00
|
|
|
{
|
|
|
|
|
2008-01-23 20:38:09 +00:00
|
|
|
int refcount;
|
|
|
|
|
|
|
|
IsoDir *root;
|
|
|
|
|
|
|
|
char *volset_id;
|
|
|
|
|
|
|
|
char *volume_id; /**< Volume identifier. */
|
|
|
|
char *publisher_id; /**< Volume publisher. */
|
|
|
|
char *data_preparer_id; /**< Volume data preparer. */
|
|
|
|
char *system_id; /**< Volume system identifier. */
|
|
|
|
char *application_id; /**< Volume application id */
|
|
|
|
char *copyright_file_id;
|
|
|
|
char *abstract_file_id;
|
|
|
|
char *biblio_file_id;
|
2013-03-12 16:42:13 +00:00
|
|
|
char *creation_time;
|
|
|
|
char *modification_time;
|
|
|
|
char *expiration_time;
|
|
|
|
char *effective_time;
|
2013-08-04 10:32:31 +00:00
|
|
|
char application_use[512];
|
2008-01-23 20:38:09 +00:00
|
|
|
|
|
|
|
/* el-torito boot catalog */
|
|
|
|
struct el_torito_boot_catalog *bootcat;
|
|
|
|
|
2010-04-16 19:49:44 +00:00
|
|
|
/* Eventually loaded system area data, or NULL */
|
|
|
|
char *system_area_data;
|
|
|
|
/* Prescribed/detected options, see iso_write_opts_set_system_area() */
|
2015-04-23 13:46:04 +00:00
|
|
|
/* >>> Needs to be coordinated with .imported_sa_info->system_area_options
|
|
|
|
*/
|
2010-04-16 19:49:44 +00:00
|
|
|
int system_area_options;
|
|
|
|
|
2010-10-12 18:24:17 +00:00
|
|
|
/*
|
|
|
|
* Up to 15 boot files can be referred by a MIPS Big Endian Volume Header.
|
|
|
|
The mips_boot_file_paths are ISO 9660 Rock Ridge paths.
|
|
|
|
*/
|
|
|
|
int num_mips_boot_files;
|
|
|
|
char *mips_boot_file_paths[15]; /* ISO 9660 Rock Ridge Paths */
|
|
|
|
|
2013-04-13 20:17:26 +00:00
|
|
|
/* A data file of which the position and size shall be written after
|
|
|
|
a SUN Disk Label.
|
|
|
|
*/
|
|
|
|
IsoFile *sparc_core_node;
|
2010-10-12 18:24:17 +00:00
|
|
|
|
2014-01-14 08:43:28 +00:00
|
|
|
/*
|
|
|
|
* Parameters for HP-PA PALO boot sector. cmdline is a string. The other
|
|
|
|
* four are absolute paths to data files in the ISO image.
|
|
|
|
*/
|
|
|
|
char *hppa_cmdline;
|
|
|
|
char *hppa_bootloader;
|
|
|
|
char *hppa_kernel_32;
|
|
|
|
char *hppa_kernel_64;
|
|
|
|
char *hppa_ramdisk;
|
|
|
|
|
2015-02-28 14:13:38 +00:00
|
|
|
/* Absolute DEC Alpha boot image path in the ISO image */
|
|
|
|
char *alpha_boot_image;
|
|
|
|
|
2008-01-23 20:38:09 +00:00
|
|
|
/* image identifier, for message origin identifier */
|
|
|
|
int id;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Default filesystem to use when adding files to the image tree.
|
|
|
|
*/
|
|
|
|
IsoFilesystem *fs;
|
|
|
|
|
2015-02-28 14:13:38 +00:00
|
|
|
/**
|
2015-04-23 13:46:04 +00:00
|
|
|
* Block storage of imported ISO if demanded by IsoReadOpts.
|
|
|
|
*/
|
|
|
|
IsoDataSource *import_src;
|
|
|
|
|
|
|
|
/*
|
2008-01-23 20:38:09 +00:00
|
|
|
* Default builder to use when adding files to the image tree.
|
|
|
|
*/
|
|
|
|
IsoNodeBuilder *builder;
|
|
|
|
|
2007-12-11 21:47:04 +00:00
|
|
|
/**
|
|
|
|
* Whether to follow symlinks or just add them as symlinks
|
|
|
|
*/
|
2007-12-29 16:15:24 +00:00
|
|
|
unsigned int follow_symlinks : 1;
|
2007-12-28 21:10:17 +00:00
|
|
|
|
2007-12-11 21:47:04 +00:00
|
|
|
/**
|
|
|
|
* Whether to skip hidden files
|
|
|
|
*/
|
2007-12-29 16:15:24 +00:00
|
|
|
unsigned int ignore_hidden : 1;
|
2007-12-28 21:10:17 +00:00
|
|
|
|
2008-01-15 16:23:34 +00:00
|
|
|
/**
|
|
|
|
* Flags that determine what special files should be ignore. It is a
|
|
|
|
* bitmask:
|
|
|
|
* bit0: ignore FIFOs
|
|
|
|
* bit1: ignore Sockets
|
|
|
|
* bit2: ignore char devices
|
|
|
|
* bit3: ignore block devices
|
|
|
|
*/
|
|
|
|
int ignore_special;
|
2007-12-28 21:10:17 +00:00
|
|
|
|
2009-01-23 08:32:32 +00:00
|
|
|
/**
|
|
|
|
* Whether to ignore ACL when inserting nodes into the image.
|
|
|
|
* Not in effect with loading a complete ISO image but only with image
|
|
|
|
* manipulation.
|
|
|
|
*/
|
|
|
|
unsigned int builder_ignore_acl : 1;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Whether to ignore EAs when inserting nodes into the image.
|
|
|
|
* Not in effect with loading a complete ISO image but only with image
|
|
|
|
* manipulation. ACL does not count as EA.
|
|
|
|
*/
|
|
|
|
unsigned int builder_ignore_ea : 1;
|
|
|
|
|
2007-12-11 21:47:04 +00:00
|
|
|
/**
|
2008-01-30 20:40:26 +00:00
|
|
|
* Files to exclude. Wildcard support is included.
|
2007-12-11 21:47:04 +00:00
|
|
|
*/
|
|
|
|
char** excludes;
|
2008-01-29 19:43:59 +00:00
|
|
|
int nexcludes;
|
2007-12-28 21:10:17 +00:00
|
|
|
|
2007-12-11 21:47:04 +00:00
|
|
|
/**
|
|
|
|
* if the dir already contains a node with the same name, whether to
|
|
|
|
* replace or not the old node with the new.
|
|
|
|
*/
|
2008-01-12 20:08:25 +00:00
|
|
|
enum iso_replace_mode replace;
|
2007-12-28 21:10:17 +00:00
|
|
|
|
2008-01-20 15:56:41 +00:00
|
|
|
/* TODO
|
|
|
|
enum iso_replace_mode (*confirm_replace)(IsoFileSource *src, IsoNode *node);
|
|
|
|
*/
|
Rectified handling of oversized filenames by new API calls:
iso_image_set_truncate_mode, iso_image_get_truncate_mode,
iso_truncate_leaf_name, iso_image_set_node_name, iso_image_tree_clone,
iso_image_add_new_dir, iso_image_add_new_file, iso_image_add_new_special,
iso_image_add_new_symlink, iso_image_dir_get_node, iso_image_path_to_node,
2015-09-17 11:59:05 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* What to do in case of name longer than truncate_length:
|
|
|
|
* 0= throw FAILURE
|
|
|
|
* 1= truncate to truncate_length with MD5 of whole name at end
|
|
|
|
*/
|
|
|
|
int truncate_mode;
|
|
|
|
int truncate_length;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This is a convenience buffer for name truncation during image
|
|
|
|
* manipulation where libisofs is not thread-safe anyway.
|
|
|
|
*/
|
|
|
|
char truncate_buffer[4096];
|
2008-01-20 15:56:41 +00:00
|
|
|
|
2007-12-11 21:47:04 +00:00
|
|
|
/**
|
|
|
|
* When this is not NULL, it is a pointer to a function that will
|
2008-01-20 15:56:41 +00:00
|
|
|
* be called just before a file will be added. You can control where
|
|
|
|
* the file will be in fact added or ignored.
|
2007-12-11 21:47:04 +00:00
|
|
|
*
|
|
|
|
* @return
|
2008-01-20 15:56:41 +00:00
|
|
|
* 1 add, 0 ignore, < 0 cancel
|
2007-12-11 21:47:04 +00:00
|
|
|
*/
|
2008-01-28 22:55:55 +00:00
|
|
|
int (*report)(IsoImage *image, IsoFileSource *src);
|
2008-01-28 23:12:33 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* User supplied data
|
|
|
|
*/
|
|
|
|
void *user_data;
|
|
|
|
void (*user_data_free)(void *ptr);
|
2009-04-28 20:40:15 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Inode number management. inode_counter is taken over from
|
|
|
|
* IsoImageFilesystem._ImageFsData after image import.
|
|
|
|
* It is to be used with img_give_ino_number()
|
2014-05-27 19:31:53 +00:00
|
|
|
* This is a Rock Ridge file serial number. Thus 32 bit.
|
|
|
|
*/
|
|
|
|
uint32_t inode_counter;
|
2009-04-28 20:40:15 +00:00
|
|
|
/*
|
|
|
|
* A bitmap of used inode numbers in an interval beginning at
|
|
|
|
* used_inodes_start and holding ISO_USED_INODE_RANGE bits.
|
|
|
|
* If a bit is set, then the corresponding inode number is occupied.
|
|
|
|
* This interval is kept around inode_counter and eventually gets
|
|
|
|
* advanced by ISO_USED_INODE_RANGE numbers in a tree traversal
|
2014-05-27 19:31:53 +00:00
|
|
|
* done by img_collect_inos(). The value will stay in the 32 bit range,
|
|
|
|
* although used_inodes_start is 64 bit to better handle rollovers.
|
2009-04-28 20:40:15 +00:00
|
|
|
*/
|
|
|
|
uint8_t *used_inodes;
|
2014-05-27 19:31:53 +00:00
|
|
|
uint64_t used_inodes_start;
|
2009-04-28 20:40:15 +00:00
|
|
|
|
2009-08-10 11:56:06 +00:00
|
|
|
/**
|
|
|
|
* Array of MD5 checksums as announced by xattr "isofs.ca" of the
|
|
|
|
* root node. Array element 0 contains an overall image checksum for the
|
|
|
|
* block range checksum_start_lba,checksum_end_lba. Element size is
|
|
|
|
* 16 bytes. IsoFile objects in the image may have xattr "isofs.cx"
|
|
|
|
* which gives their index in checksum_array.
|
|
|
|
*/
|
|
|
|
uint32_t checksum_start_lba;
|
|
|
|
uint32_t checksum_end_lba;
|
|
|
|
uint32_t checksum_idx_count;
|
|
|
|
char *checksum_array;
|
|
|
|
|
2010-10-06 15:33:46 +00:00
|
|
|
/**
|
|
|
|
* Whether a write run has been started by iso_image_create_burn_source()
|
|
|
|
* and has not yet been finished.
|
|
|
|
*/
|
|
|
|
int generator_is_running;
|
|
|
|
|
2012-05-25 17:34:09 +00:00
|
|
|
/* Pointers to directories or files which shall be get a HFS+ blessing.
|
|
|
|
* libisofs/hfsplus.c et.al. will compare these pointers
|
|
|
|
* with the ->node pointer of Ecma119Nodes.
|
|
|
|
* See libisofs.h
|
|
|
|
*/
|
|
|
|
IsoNode *hfsplus_blessed[ISO_HFSPLUS_BLESS_MAX];
|
|
|
|
|
2014-01-03 17:29:29 +00:00
|
|
|
/* Counts the name collisions while iso_image_import() */
|
|
|
|
size_t collision_warnings;
|
|
|
|
|
2014-04-11 13:39:45 +00:00
|
|
|
/* Contains the assessment of boot aspects of the loaded image */
|
|
|
|
struct iso_imported_sys_area *imported_sa_info;
|
|
|
|
|
2007-11-24 12:14:45 +00:00
|
|
|
};
|
|
|
|
|
2009-04-28 20:40:15 +00:00
|
|
|
|
Rectified handling of oversized filenames by new API calls:
iso_image_set_truncate_mode, iso_image_get_truncate_mode,
iso_truncate_leaf_name, iso_image_set_node_name, iso_image_tree_clone,
iso_image_add_new_dir, iso_image_add_new_file, iso_image_add_new_special,
iso_image_add_new_symlink, iso_image_dir_get_node, iso_image_path_to_node,
2015-09-17 11:59:05 +00:00
|
|
|
/* Apply truncation mode to name, using image->truncate_buffer to perform
|
|
|
|
truncation if needed.
|
|
|
|
|
|
|
|
Warning: Not thread-safe !
|
|
|
|
*/
|
|
|
|
int iso_image_truncate_name(IsoImage *image, const char *name, char **namept,
|
|
|
|
int flag);
|
|
|
|
|
2009-04-28 20:40:15 +00:00
|
|
|
|
|
|
|
/* Collect the bitmap of used inode numbers in the range of
|
|
|
|
_ImageFsData.used_inodes_start + ISO_USED_INODE_RANGE
|
|
|
|
@param flag bit0= recursion is active
|
|
|
|
*/
|
|
|
|
int img_collect_inos(IsoImage *image, IsoDir *dir, int flag);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A global counter for inode numbers for the ISO image filesystem.
|
|
|
|
* On image import it gets maxed by the eventual inode numbers from PX
|
|
|
|
* entries. Up to the first 32 bit rollover it simply increments the counter.
|
|
|
|
* After the first rollover it uses a look ahead bitmap which gets filled
|
|
|
|
* by a full tree traversal. It covers the next inode numbers to come
|
|
|
|
* (somewhere between 1 and ISO_USED_INODE_RANGE which is quite many)
|
|
|
|
* and advances when being exhausted.
|
|
|
|
* @param image The image where the number shall be used
|
|
|
|
* @param flag bit0= reset count (Caution: image must get new inos then)
|
|
|
|
* @return
|
2014-05-27 19:31:53 +00:00
|
|
|
* Since 0 is used as default and considered self-unique,
|
2009-04-28 20:40:15 +00:00
|
|
|
* the value 0 should only be returned in case of error.
|
|
|
|
*/
|
2014-05-27 19:31:53 +00:00
|
|
|
uint32_t img_give_ino_number(IsoImage *image, int flag);
|
2009-04-28 20:40:15 +00:00
|
|
|
|
|
|
|
/* @param flag bit0= overwrite any ino, else only ino == 0
|
|
|
|
bit1= install inode with non-data, non-directory files
|
|
|
|
bit2= install inode with directories
|
|
|
|
bit3= with bit2: install inode on parameter dir
|
|
|
|
*/
|
|
|
|
int img_make_inos(IsoImage *image, IsoDir *dir, int flag);
|
|
|
|
|
2009-08-20 15:08:07 +00:00
|
|
|
|
|
|
|
/* Free the checksum array of an image and reset its layout parameters
|
|
|
|
*/
|
|
|
|
int iso_image_free_checksums(IsoImage *image, int flag);
|
|
|
|
|
|
|
|
|
|
|
|
/* Equip an ISO image with a new checksum array buffer (after isofs.ca and
|
|
|
|
isofs.cx have already been adjusted).
|
|
|
|
*/
|
|
|
|
int iso_image_set_checksums(IsoImage *image, char *checksum_array,
|
|
|
|
uint32_t start_lba, uint32_t end_lba,
|
|
|
|
uint32_t idx_count, int flag);
|
|
|
|
|
|
|
|
|
2013-03-12 16:42:13 +00:00
|
|
|
int iso_image_set_pvd_times(IsoImage *image,
|
|
|
|
char *creation_time, char *modification_time,
|
|
|
|
char *expiration_time, char *effective_time);
|
|
|
|
|
2014-04-11 13:39:45 +00:00
|
|
|
|
|
|
|
/* Collects boot block information obtained from the system area of
|
|
|
|
imported images
|
|
|
|
*/
|
|
|
|
struct iso_imported_sys_area {
|
|
|
|
|
|
|
|
int refcount;
|
|
|
|
|
|
|
|
/* Whether there was some System Area data at all */
|
|
|
|
int is_not_zero;
|
|
|
|
|
|
|
|
/* Giving the error number if the assessment ended by an error */
|
|
|
|
int overall_return;
|
|
|
|
|
2014-04-27 10:09:13 +00:00
|
|
|
/* Block address of loaded Primar Volume Descriptor */
|
|
|
|
uint32_t pvd_block;
|
|
|
|
|
2014-04-11 13:39:45 +00:00
|
|
|
/* Size of the imported ISO image */
|
|
|
|
uint32_t image_size;
|
|
|
|
|
|
|
|
/* see libisofs.h : iso_write_opts_set_system_area() */
|
|
|
|
int system_area_options;
|
|
|
|
|
|
|
|
/* The perceived MBR partitions */
|
|
|
|
struct iso_mbr_partition_request **mbr_req;
|
|
|
|
int mbr_req_count;
|
|
|
|
|
|
|
|
/* see ecma119.h : struct ecma119_image , struct iso_write_opts */
|
|
|
|
/* Effective partition table parameter: 1 to 63, 0= disabled/default */
|
|
|
|
int partition_secs_per_head;
|
|
|
|
/* 1 to 255, 0= disabled/default */
|
|
|
|
int partition_heads_per_cyl;
|
|
|
|
|
|
|
|
/* see ecma119.h : struct iso_write_opts */
|
|
|
|
uint32_t partition_offset;
|
|
|
|
|
|
|
|
/* 2048-byte start LBA and block count of PreP partition */
|
|
|
|
uint32_t prep_part_start;
|
|
|
|
uint32_t prep_part_size;
|
|
|
|
|
|
|
|
/* see ecma119.h : struct ecma119_image */
|
|
|
|
struct iso_apm_partition_request **apm_req;
|
|
|
|
int apm_req_count;
|
|
|
|
int apm_req_flags;
|
|
|
|
/* Number of found "GapNN", "ISO9660_data" partitions in APM */
|
|
|
|
int apm_gap_count;
|
|
|
|
|
|
|
|
/* see ecma119.h : struct iso_write_opts */
|
|
|
|
int apm_block_size;
|
|
|
|
|
|
|
|
/* >>> see ecma119.h : struct iso_write_opts */
|
|
|
|
int hfsp_block_size;
|
|
|
|
|
|
|
|
/* see ecma119.h : struct ecma119_image */
|
|
|
|
struct iso_gpt_partition_request **gpt_req;
|
|
|
|
int gpt_req_count;
|
|
|
|
int gpt_req_flags;
|
|
|
|
|
|
|
|
/* see ecma119.h : struct ecma119_image */
|
|
|
|
uint8_t gpt_disk_guid[16];
|
|
|
|
/* Start of GPT entries in System Area, block size 512 */
|
|
|
|
uint64_t gpt_part_start;
|
|
|
|
uint32_t gpt_max_entries;
|
|
|
|
uint64_t gpt_first_lba;
|
|
|
|
uint64_t gpt_last_lba;
|
|
|
|
uint64_t gpt_backup_lba;
|
|
|
|
char *gpt_backup_comments;
|
|
|
|
uint32_t gpt_head_crc_found;
|
|
|
|
uint32_t gpt_head_crc_should;
|
|
|
|
uint32_t gpt_array_crc_found;
|
|
|
|
uint32_t gpt_array_crc_should;
|
|
|
|
|
|
|
|
/* see image.h : struct Iso_Image */
|
|
|
|
int num_mips_boot_files;
|
|
|
|
char **mips_boot_file_paths; /* ISO 9660 Rock Ridge Paths */
|
|
|
|
struct iso_mips_voldir_entry **mips_vd_entries;
|
|
|
|
|
|
|
|
/* see ecma119.h : struct ecma119_image */
|
|
|
|
/* Memorized ELF parameters from MIPS Little Endian boot file */
|
|
|
|
uint32_t mipsel_e_entry;
|
|
|
|
uint32_t mipsel_p_offset;
|
|
|
|
uint32_t mipsel_p_vaddr;
|
|
|
|
uint32_t mipsel_p_filesz;
|
|
|
|
uint32_t mipsel_seg_start;
|
|
|
|
char *mipsel_boot_file_path;
|
|
|
|
|
|
|
|
/* see image.h : struct Iso_Image */
|
|
|
|
char *sparc_disc_label;
|
|
|
|
int sparc_secs_per_head;
|
|
|
|
int sparc_heads_per_cyl;
|
|
|
|
struct iso_sun_disk_label_entry *sparc_entries;
|
|
|
|
int sparc_entry_count;
|
|
|
|
|
|
|
|
/* grub2-sparc-core : a node in the ISO image
|
|
|
|
published at bytes 0x228 to 0x233
|
|
|
|
*/
|
|
|
|
uint64_t sparc_grub2_core_adr;
|
|
|
|
uint32_t sparc_grub2_core_size;
|
|
|
|
IsoFile *sparc_core_node;
|
|
|
|
|
|
|
|
/* see image.h : struct Iso_Image */
|
|
|
|
int hppa_hdrversion;
|
|
|
|
char *hppa_cmdline;
|
|
|
|
uint32_t hppa_kern32_adr;
|
|
|
|
uint32_t hppa_kern32_len;
|
|
|
|
uint32_t hppa_kern64_adr;
|
|
|
|
uint32_t hppa_kern64_len;
|
|
|
|
uint32_t hppa_ramdisk_adr;
|
|
|
|
uint32_t hppa_ramdisk_len;
|
|
|
|
uint32_t hppa_bootloader_adr;
|
|
|
|
uint32_t hppa_bootloader_len;
|
|
|
|
uint32_t hppa_ipl_entry;
|
|
|
|
char *hppa_kernel_32;
|
|
|
|
char *hppa_kernel_64;
|
|
|
|
char *hppa_ramdisk;
|
|
|
|
char *hppa_bootloader;
|
|
|
|
|
2015-02-28 14:13:38 +00:00
|
|
|
uint64_t alpha_boot_image_size;
|
|
|
|
uint64_t alpha_boot_image_adr;
|
|
|
|
char *alpha_boot_image;
|
|
|
|
|
2014-04-27 10:09:13 +00:00
|
|
|
/* Some block addresses of active and first session:
|
|
|
|
PVD, L Pathtable, Opt L, M Pathtable, Opt M, root directory
|
|
|
|
*/
|
|
|
|
uint32_t meta_struct_blocks[12];
|
|
|
|
int num_meta_struct_blocks;
|
2014-04-11 13:39:45 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
int iso_imported_sa_new(struct iso_imported_sys_area **sa_info, int flag);
|
|
|
|
|
|
|
|
int iso_imported_sa_unref(struct iso_imported_sys_area **sa_info, int flag);
|
|
|
|
|
|
|
|
|
2007-11-24 12:14:45 +00:00
|
|
|
#endif /*LIBISO_IMAGE_H_*/
|