xorriso  1.5.4.pl02
About: GNU xorriso creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions. It is suitable for incremental data backup and for production of bootable ISO 9660 images. GNU xorriso is a statical compilation of the libraries libburn, libisofs, libisoburn, and libjte.
  Fossies Dox: xorriso-1.5.4.pl02.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

system_area.c File Reference
#include "libisofs.h"
#include "system_area.h"
#include "eltorito.h"
#include "filesrc.h"
#include "ecma119_tree.h"
#include "image.h"
#include "messages.h"
#include "ecma119.h"
#include "writer.h"
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/time.h>
Include dependency graph for system_area.c:

Go to the source code of this file.

Macros

#define O_BINARY   0
 

Functions

int make_isohybrid_mbr (int bin_lba, int *img_blocks, char *mbr, int flag)
 
int make_isolinux_mbr (uint32_t *img_blocks, Ecma119Image *t, int part_offset, int part_number, int fs_type, uint8_t *buf, int flag)
 
int assess_isohybrid_gpt_apm (Ecma119Image *t, int *gpt_count, int gpt_idx[128], int *apm_count, int flag)
 
static int precompute_gpt (Ecma119Image *t)
 
static void iso_compute_cyl_head_sec (uint64_t img_blocks, int hpc, int sph, uint32_t *end_lba, uint32_t *end_sec, uint32_t *end_head, uint32_t *end_cyl, int flag)
 
static int compute_partition_size (Ecma119Image *t, char *disk_path, uint32_t *size, int flag)
 
int iso_compute_append_partitions (Ecma119Image *t, int flag)
 
static int mbr_part_slot_is_unused (uint8_t *slot)
 
static int write_mbr_partition_entry (int partition_number, int partition_type, uint64_t partition_offset, uint64_t partition_size, int sph, int hpc, uint8_t *buf, int flag)
 
static int make_grub_msdos_label (uint32_t img_blocks, int sph, int hpc, uint8_t part_type, uint8_t *buf, int flag)
 
static int iso_offset_partition_start (uint32_t img_blocks, int post_part_pad, uint32_t partition_offset, int sph, int hpc, uint8_t *buf, int flag)
 
static int boot_nodes_from_iso_path (Ecma119Image *t, char *path, IsoNode **iso_node, Ecma119Node **ecma_node, char *purpose, int flag)
 
static int make_mips_volume_header (Ecma119Image *t, uint8_t *buf, int flag)
 
int iso_read_mipsel_elf (Ecma119Image *t, int flag)
 
static int make_mipsel_boot_block (Ecma119Image *t, uint8_t *buf, int flag)
 
static int write_sun_partition_entry (int partition_number, char *appended_partitions[], uint32_t partition_offset[], uint32_t partition_size[], uint32_t cyl_size, uint8_t *buf, int flag)
 
static int make_sun_disk_label (Ecma119Image *t, uint8_t *buf, int flag)
 
static int hppa_palo_get_filepar (Ecma119Image *t, char *path, uint32_t *adr, uint32_t *len, int flag)
 
static int make_hppa_palo_sector (Ecma119Image *t, uint8_t *buf, int hdrversion, int flag)
 
static int make_dec_alpha_sector (Ecma119Image *t, uint8_t *buf, int flag)
 
int iso_quick_apm_entry (struct iso_apm_partition_request **req_array, int *apm_req_count, uint32_t start_block, uint32_t block_count, char *name, char *type)
 
static int iso_find_gpt_entry (struct iso_gpt_partition_request **req_array, int gpt_req_count, uint64_t start_block, uint64_t block_count, int *index, int flag)
 
int iso_quick_gpt_entry (struct iso_gpt_partition_request **req_array, int *gpt_req_count, uint64_t start_block, uint64_t block_count, uint8_t type_guid[16], uint8_t partition_guid[16], uint64_t flags, uint8_t name[72])
 
int iso_quick_mbr_entry (struct iso_mbr_partition_request **req_array, int *mbr_req_count, uint64_t start_block, uint64_t block_count, uint8_t type_byte, uint8_t status_byte, int desired_slot)
 
int iso_mbr_entry_slot_is_free (struct iso_mbr_partition_request **req_array, int mbr_req_count, int slot)
 
static int cmp_partition_request (const void *f1, const void *f2)
 
static int iso_write_apm_entry (Ecma119Image *t, int apm_block_size, struct iso_apm_partition_request *req, uint8_t *buf, int map_entries, int flag)
 
static int fill_apm_gaps (Ecma119Image *t, uint32_t img_blocks)
 
static int rectify_apm (Ecma119Image *t)
 
static int iso_write_apm (Ecma119Image *t, uint32_t img_blocks, uint8_t *buf, int flag)
 
static int iso_write_mbr (Ecma119Image *t, uint32_t img_blocks, uint8_t *buf)
 
static void iso_write_gpt_entry (Ecma119Image *t, uint8_t *buf, uint8_t type_guid[16], uint8_t part_uuid[16], uint64_t start_lba, uint64_t end_lba, uint64_t flags, uint8_t name[72])
 
int iso_write_gpt_header_block (Ecma119Image *t, uint32_t img_blocks, uint8_t *buf, uint32_t max_entries, uint32_t part_start, uint32_t p_arr_crc)
 
void iso_ascii_utf_16le (uint8_t gap_name[72])
 
static int intvl_overlap (uint64_t start1, uint64_t end1, uint64_t start2, uint64_t end2, int second)
 
static int iso_copy_apmhfs_to_gpt (Ecma119Image *t, int flag)
 
static int iso_write_gpt (Ecma119Image *t, uint32_t img_blocks, uint8_t *buf)
 
static void iso_dummy_mbr_partition (uint8_t *buf, int mode)
 
int iso_write_system_area (Ecma119Image *t, uint8_t *buf, int flag)
 
static int try_sph (off_t imgsize, int secs_per_head, int *heads_per_cyl, int flag)
 
int iso_align_isohybrid (Ecma119Image *t, int flag)
 
int iso_register_apm_entry (struct iso_apm_partition_request **req_array, int *apm_req_count, struct iso_apm_partition_request *req, int flag)
 
int iso_register_mbr_entry (struct iso_mbr_partition_request **req_array, int *mbr_req_count, struct iso_mbr_partition_request *req, int flag)
 
int iso_register_gpt_entry (struct iso_gpt_partition_request **req_array, int *gpt_req_count, struct iso_gpt_partition_request *req, int flag)
 
uint32_t iso_crc32_gpt (unsigned char *data, int count, int flag)
 
void iso_mark_guid_version_4 (uint8_t *u)
 
void iso_generate_gpt_guid (uint8_t guid[16])
 
void iso_gpt_uuid (Ecma119Image *t, uint8_t uuid[16])
 
int assess_appended_gpt (Ecma119Image *t, int flag)
 
int gpt_tail_writer_compute_data_blocks (IsoImageWriter *writer)
 
int gpt_tail_writer_write_vol_desc (IsoImageWriter *writer)
 
static int gpt_tail_writer_write_data (IsoImageWriter *writer)
 
static int gpt_tail_writer_free_data (IsoImageWriter *writer)
 
int gpt_tail_writer_create (Ecma119Image *target)
 
static int partprepend_writer_compute_data_blocks (IsoImageWriter *writer)
 
static int partprepend_writer_write_vol_desc (IsoImageWriter *writer)
 
static int partprepend_writer_write_data (IsoImageWriter *writer)
 
static int partprepend_writer_free_data (IsoImageWriter *writer)
 
int partprepend_writer_create (Ecma119Image *target)
 
static int partappend_writer_compute_data_blocks (IsoImageWriter *writer)
 
static int partappend_writer_write_vol_desc (IsoImageWriter *writer)
 
static int partappend_writer_write_data (IsoImageWriter *writer)
 
static int partappend_writer_free_data (IsoImageWriter *writer)
 
int partappend_writer_create (Ecma119Image *target)
 
void iso_delete_gpt_apm_fillers (Ecma119Image *target, int flag)
 

Macro Definition Documentation

◆ O_BINARY

#define O_BINARY   0

Definition at line 47 of file system_area.c.

Function Documentation

◆ assess_appended_gpt()

◆ assess_isohybrid_gpt_apm()

◆ boot_nodes_from_iso_path()

◆ cmp_partition_request()

static int cmp_partition_request ( const void *  f1,
const void *  f2 
)
static

Compare the block interval positions of two iso_apm_partition_request

Definition at line 1157 of file system_area.c.

Referenced by fill_apm_gaps(), and iso_write_gpt().

◆ compute_partition_size()

static int compute_partition_size ( Ecma119Image t,
char *  disk_path,
uint32_t *  size,
int  flag 
)
static

◆ fill_apm_gaps()

◆ gpt_tail_writer_compute_data_blocks()

◆ gpt_tail_writer_create()

◆ gpt_tail_writer_free_data()

static int gpt_tail_writer_free_data ( IsoImageWriter writer)
static

Definition at line 2981 of file system_area.c.

References ISO_SUCCESS.

Referenced by gpt_tail_writer_create().

◆ gpt_tail_writer_write_data()

◆ gpt_tail_writer_write_vol_desc()

int gpt_tail_writer_write_vol_desc ( IsoImageWriter writer)

Definition at line 2900 of file system_area.c.

References ISO_SUCCESS.

Referenced by ecma119_image_new(), gpt_tail_writer_create(), and write_function().

◆ hppa_palo_get_filepar()

◆ intvl_overlap()

static int intvl_overlap ( uint64_t  start1,
uint64_t  end1,
uint64_t  start2,
uint64_t  end2,
int  second 
)
static

Definition at line 1668 of file system_area.c.

Referenced by iso_copy_apmhfs_to_gpt().

◆ iso_align_isohybrid()

◆ iso_ascii_utf_16le()

void iso_ascii_utf_16le ( uint8_t  gap_name[72])

◆ iso_compute_append_partitions()

◆ iso_compute_cyl_head_sec()

static void iso_compute_cyl_head_sec ( uint64_t  img_blocks,
int  hpc,
int  sph,
uint32_t *  end_lba,
uint32_t *  end_sec,
uint32_t *  end_head,
uint32_t *  end_cyl,
int  flag 
)
static

◆ iso_copy_apmhfs_to_gpt()

◆ iso_crc32_gpt()

uint32_t iso_crc32_gpt ( unsigned char *  data,
int  count,
int  flag 
)

Compute a CRC number as expected in the GPT main and backup header blocks.

The CRC at byte offset 88 is supposed to cover the array of partition entries. The CRC at byte offset 16 is supposed to cover the readily produced first 92 bytes of the header block while its bytes 16 to 19 are still set to 0. Block size is 512 bytes. Numbers are stored little-endian. See doc/boot_sectors.txt for the byte layout of GPT.

This might be helpful for applications which want to manipulate GPT directly. The function is in libisofs/system_area.c and self-contained. So if you want to copy+paste it under the license of that file: Be invited. Be warned that this implementation works bit-wise and thus is much slower than table-driven ones. For less than 32 KiB, it fully suffices, though.

Parameters
dataThe memory buffer with the data to sum up.
countNumber of bytes in data.
flagBitfield for control purposes. Submit 0.
Returns
The CRC of data.
Since
1.3.8

Definition at line 2513 of file system_area.c.

Referenced by gpt_tail_writer_write_data(), iso_analyze_gpt_backup(), iso_analyze_gpt_head(), iso_generate_gpt_guid(), iso_make_mbr_id(), iso_write_gpt(), iso_write_gpt_header_block(), and Xorriso_gpt_crc().

◆ iso_delete_gpt_apm_fillers()

◆ iso_dummy_mbr_partition()

static void iso_dummy_mbr_partition ( uint8_t *  buf,
int  mode 
)
static

Definition at line 1851 of file system_area.c.

References mbr_part_slot_is_unused().

Referenced by iso_write_system_area().

◆ iso_find_gpt_entry()

static int iso_find_gpt_entry ( struct iso_gpt_partition_request **  req_array,
int  gpt_req_count,
uint64_t  start_block,
uint64_t  block_count,
int *  index,
int  flag 
)
static

◆ iso_generate_gpt_guid()

void iso_generate_gpt_guid ( uint8_t  guid[16])

Generate a pseudo-random GUID suitable for iso_write_opts_set_gpt_guid().

Parameters
guidWill be filled by 16 bytes of generated GUID.
Since
1.4.6

Definition at line 2554 of file system_area.c.

References iso_crc32_gpt(), iso_mark_guid_version_4(), and O_BINARY.

Referenced by iso_gpt_uuid(), and Xorriso_make_guid().

◆ iso_gpt_uuid()

void iso_gpt_uuid ( Ecma119Image t,
uint8_t  uuid[16] 
)

◆ iso_mark_guid_version_4()

void iso_mark_guid_version_4 ( uint8_t *  u)

Definition at line 2540 of file system_area.c.

Referenced by gpt_disk_guid_setup(), and iso_generate_gpt_guid().

◆ iso_mbr_entry_slot_is_free()

int iso_mbr_entry_slot_is_free ( struct iso_mbr_partition_request **  req_array,
int  mbr_req_count,
int  slot 
)

Definition at line 1137 of file system_area.c.

References iso_mbr_partition_request::desired_slot, and ISO_MBR_ENTRIES_MAX.

Referenced by iso_quick_mbr_entry().

◆ iso_offset_partition_start()

static int iso_offset_partition_start ( uint32_t  img_blocks,
int  post_part_pad,
uint32_t  partition_offset,
int  sph,
int  hpc,
uint8_t *  buf,
int  flag 
)
static

Definition at line 390 of file system_area.c.

References ISO_ASSERT_FAILURE, iso_compute_cyl_head_sec(), and ISO_SUCCESS.

Referenced by iso_write_system_area().

◆ iso_quick_apm_entry()

◆ iso_quick_gpt_entry()

◆ iso_quick_mbr_entry()

int iso_quick_mbr_entry ( struct iso_mbr_partition_request **  req_array,
int *  mbr_req_count,
uint64_t  start_block,
uint64_t  block_count,
uint8_t  type_byte,
uint8_t  status_byte,
int  desired_slot 
)

◆ iso_read_mipsel_elf()

◆ iso_register_apm_entry()

int iso_register_apm_entry ( struct iso_apm_partition_request **  req_array,
int *  apm_req_count,
struct iso_apm_partition_request req,
int  flag 
)

Definition at line 2439 of file system_area.c.

References ISO_APM_ENTRIES_MAX, ISO_BOOT_TOO_MANY_APM, ISO_OUT_OF_MEM, and ISO_SUCCESS.

Referenced by iso_quick_apm_entry().

◆ iso_register_gpt_entry()

int iso_register_gpt_entry ( struct iso_gpt_partition_request **  req_array,
int *  gpt_req_count,
struct iso_gpt_partition_request req,
int  flag 
)

Definition at line 2476 of file system_area.c.

References ISO_BOOT_TOO_MANY_GPT, ISO_GPT_ENTRIES_MAX, ISO_OUT_OF_MEM, and ISO_SUCCESS.

Referenced by iso_quick_gpt_entry().

◆ iso_register_mbr_entry()

int iso_register_mbr_entry ( struct iso_mbr_partition_request **  req_array,
int *  mbr_req_count,
struct iso_mbr_partition_request req,
int  flag 
)

Definition at line 2458 of file system_area.c.

References ISO_BOOT_TOO_MANY_MBR, ISO_MBR_ENTRIES_MAX, ISO_OUT_OF_MEM, and ISO_SUCCESS.

Referenced by iso_quick_mbr_entry().

◆ iso_write_apm()

◆ iso_write_apm_entry()

static int iso_write_apm_entry ( Ecma119Image t,
int  apm_block_size,
struct iso_apm_partition_request req,
uint8_t *  buf,
int  map_entries,
int  flag 
)
static

◆ iso_write_gpt()

◆ iso_write_gpt_entry()

static void iso_write_gpt_entry ( Ecma119Image t,
uint8_t *  buf,
uint8_t  type_guid[16],
uint8_t  part_uuid[16],
uint64_t  start_lba,
uint64_t  end_lba,
uint64_t  flags,
uint8_t  name[72] 
)
static

◆ iso_write_gpt_header_block()

int iso_write_gpt_header_block ( Ecma119Image t,
uint32_t  img_blocks,
uint8_t *  buf,
uint32_t  max_entries,
uint32_t  part_start,
uint32_t  p_arr_crc 
)

◆ iso_write_mbr()

◆ iso_write_system_area()

int iso_write_system_area ( Ecma119Image t,
uint8_t *  buf,
int  flag 
)

Write the system area for the given image to the given buffer.

Parameters
bufA buffer with at least 32 K allocated
flagbit0= t->opts->ms_block is not counted in t->total_size
Returns
1 if success, < 0 on error

Definition at line 1881 of file system_area.c.

References iso_write_opts::appended_as_apm, iso_write_opts::appended_as_gpt, ecma119_image::appended_part_size, ecma119_image::appended_part_start, iso_write_opts::appended_part_types, iso_write_opts::appended_partitions, assess_isohybrid_gpt_apm(), iso_file_section::block, BLOCK_SIZE, el_torito_boot_catalog::bootimages, ecma119_image::bootsrc, ecma119_image::catalog, ecma119_image::curblock, iso_mbr_partition_request::desired_slot, ecma119_image::gpt_backup_outside, ecma119_image::gpt_req_count, ecma119_image::have_appended_partitions, Iso_Image::id, ecma119_image::image, ISO_ASSERT_FAILURE, ISO_BOOT_IMAGE_NOT_VALID, ISO_BOOT_MBR_COLLISION, ISO_BOOT_MBR_OVERLAP, iso_dummy_mbr_partition(), ISO_ISOLINUX_CANT_PATCH, iso_write_opts::iso_mbr_part_type, iso_msg_submit(), iso_msgs_submit(), ISO_NON_MBR_SYS_AREA, ISO_NULL_POINTER, iso_offset_partition_start(), ISO_SUCCESS, ISO_SUN_CYL_SIZE, iso_tell_max_part_range(), iso_write_apm(), iso_write_gpt(), iso_write_mbr(), el_torito_boot_image::isolinux_options, Libisofs_grub2_mbr_patch_offsT, Libisofs_grub2_mbr_patch_poS, make_dec_alpha_sector(), make_grub_msdos_label(), make_hppa_palo_sector(), make_isohybrid_mbr(), make_isolinux_mbr(), make_mips_volume_header(), make_mipsel_boot_block(), make_sun_disk_label(), mbr_part_slot_is_unused(), ecma119_image::mbr_req, ecma119_image::mbr_req_count, iso_write_opts::ms_block, ecma119_image::num_bootsrc, ecma119_image::opts, iso_write_opts::part_like_isohybrid, ecma119_image::partition_heads_per_cyl, iso_write_opts::partition_offset, ecma119_image::partition_secs_per_head, ecma119_image::post_iso_part_pad, ecma119_image::pvd_size_is_total_size, Iso_File_Src::sections, ecma119_image::system_area_data, ecma119_image::system_area_options, ecma119_image::total_size, iso_mbr_partition_request::type_byte, ecma119_image::vol_space_size, write_mbr_partition_entry(), and write_sun_partition_entry().

Referenced by write_head_part1().

◆ make_dec_alpha_sector()

static int make_dec_alpha_sector ( Ecma119Image t,
uint8_t *  buf,
int  flag 
)
static

Write DEC Alpha boot sector. See doc/boot_sectors.txt

learned from cdrkit-1.1.10/genisoimage/boot-alpha.c by Steve McIntyre steve.nosp@m.@ein.nosp@m.val.c.nosp@m.om who states "Heavily inspired by isomarkboot by David Mosberger in 1996"

Definition at line 1002 of file system_area.c.

References Iso_Image::alpha_boot_image, iso_file_section::block, boot_nodes_from_iso_path(), ecma119_node::file, ecma119_image::image, ecma119_node::info, iso_lsb(), iso_read_lsb64(), ISO_SUCCESS, Iso_File_Src::sections, and iso_file_section::size.

Referenced by iso_write_system_area().

◆ make_grub_msdos_label()

static int make_grub_msdos_label ( uint32_t  img_blocks,
int  sph,
int  hpc,
uint8_t  part_type,
uint8_t *  buf,
int  flag 
)
static

Definition at line 326 of file system_area.c.

References ISO_ASSERT_FAILURE, iso_compute_cyl_head_sec(), and ISO_SUCCESS.

Referenced by iso_write_system_area().

◆ make_hppa_palo_sector()

static int make_hppa_palo_sector ( Ecma119Image t,
uint8_t *  buf,
int  hdrversion,
int  flag 
)
static

Write HP-PA PALO boot sector. See doc/boot_sectors.txt

learned from cdrkit-1.1.10/genisoimage/boot-hppa.c by Steve McIntyre steve.nosp@m.@ein.nosp@m.val.c.nosp@m.om who states "Heavily inspired by palo" Public mail conversations with Helge Deller, beginning with https://lists.debian.org/debian-hppa/2014/01/msg00016.html http://git.kernel.org/cgit/linux/kernel/git/deller/palo.git/tree/lib/ (especially struct firstblock in common.h and struct partition in part.h)

Definition at line 901 of file system_area.c.

References Iso_Image::hppa_bootloader, Iso_Image::hppa_cmdline, Iso_Image::hppa_kernel_32, Iso_Image::hppa_kernel_64, hppa_palo_get_filepar(), Iso_Image::hppa_ramdisk, Iso_Image::id, ecma119_image::image, ISO_HPPA_PALO_CMDLEN, ISO_HPPA_PALO_INCOMPL, iso_msb(), iso_msg_submit(), ISO_SUCCESS, and ISO_WRONG_ARG_VALUE.

Referenced by iso_write_system_area().

◆ make_isohybrid_mbr()

int make_isohybrid_mbr ( int  bin_lba,
int *  img_blocks,
char *  mbr,
int  flag 
)

Definition at line 116 of file make_isohybrid_mbr.c.

Referenced by iso_write_system_area().

◆ make_isolinux_mbr()

◆ make_mips_volume_header()

◆ make_mipsel_boot_block()

static int make_mipsel_boot_block ( Ecma119Image t,
uint8_t *  buf,
int  flag 
)
static

◆ make_sun_disk_label()

◆ mbr_part_slot_is_unused()

static int mbr_part_slot_is_unused ( uint8_t *  slot)
static

Definition at line 237 of file system_area.c.

Referenced by iso_dummy_mbr_partition(), and iso_write_system_area().

◆ partappend_writer_compute_data_blocks()

static int partappend_writer_compute_data_blocks ( IsoImageWriter writer)
static

Definition at line 3228 of file system_area.c.

References iso_compute_append_partitions(), and Iso_Image_Writer::target.

Referenced by partappend_writer_create().

◆ partappend_writer_create()

◆ partappend_writer_free_data()

static int partappend_writer_free_data ( IsoImageWriter writer)
static

Definition at line 3273 of file system_area.c.

References ISO_SUCCESS.

Referenced by partappend_writer_create().

◆ partappend_writer_write_data()

◆ partappend_writer_write_vol_desc()

static int partappend_writer_write_vol_desc ( IsoImageWriter writer)
static

Definition at line 3237 of file system_area.c.

References ISO_SUCCESS.

Referenced by partappend_writer_create().

◆ partprepend_writer_compute_data_blocks()

◆ partprepend_writer_create()

◆ partprepend_writer_free_data()

static int partprepend_writer_free_data ( IsoImageWriter writer)
static

Definition at line 3194 of file system_area.c.

References ISO_SUCCESS.

Referenced by partprepend_writer_create().

◆ partprepend_writer_write_data()

◆ partprepend_writer_write_vol_desc()

static int partprepend_writer_write_vol_desc ( IsoImageWriter writer)
static

Definition at line 3156 of file system_area.c.

References ISO_SUCCESS.

Referenced by partprepend_writer_create().

◆ precompute_gpt()

◆ rectify_apm()

◆ try_sph()

static int try_sph ( off_t  imgsize,
int  secs_per_head,
int *  heads_per_cyl,
int  flag 
)
static

Definition at line 2282 of file system_area.c.

Referenced by iso_align_isohybrid().

◆ write_mbr_partition_entry()

static int write_mbr_partition_entry ( int  partition_number,
int  partition_type,
uint64_t  partition_offset,
uint64_t  partition_size,
int  sph,
int  hpc,
uint8_t *  buf,
int  flag 
)
static

Definition at line 254 of file system_area.c.

References iso_compute_cyl_head_sec(), and ISO_SUCCESS.

Referenced by iso_write_mbr(), and iso_write_system_area().

◆ write_sun_partition_entry()

static int write_sun_partition_entry ( int  partition_number,
char *  appended_partitions[],
uint32_t  partition_offset[],
uint32_t  partition_size[],
uint32_t  cyl_size,
uint8_t *  buf,
int  flag 
)
static

Definition at line 745 of file system_area.c.

References ISO_ASSERT_FAILURE, iso_msb(), ISO_SUCCESS, and ISO_SUN_CYL_SIZE.

Referenced by iso_write_system_area(), and make_sun_disk_label().