New API function iso_write_opts_set_part_offset() controls creation of
an MBR with a first partiton table entry that bears non-zero start address. A second set of volume descriptors and directory tree+tables gets created which can be used to mount the image at the partition start. Not yet implemented for second set: ISO 9660:1999, MD5 checksums.
This commit is contained in:
@ -184,7 +184,9 @@ int rrip_add_PL(Ecma119Image *t, Ecma119Node *n, struct susp_info *susp)
|
||||
PL[3] = 1;
|
||||
|
||||
/* write the location of the real parent, already computed */
|
||||
iso_bb(&PL[4], n->info.dir->real_parent->info.dir->block, 4);
|
||||
/* TWINTREE: - t->eff_partition_offset */
|
||||
iso_bb(&PL[4],
|
||||
n->info.dir->real_parent->info.dir->block - t->eff_partition_offset, 4);
|
||||
return susp_append(t, susp, PL);
|
||||
}
|
||||
|
||||
@ -277,7 +279,9 @@ int rrip_add_CL(Ecma119Image *t, Ecma119Node *n, struct susp_info *susp)
|
||||
CL[1] = 'L';
|
||||
CL[2] = 12;
|
||||
CL[3] = 1;
|
||||
iso_bb(&CL[4], n->info.real_me->info.dir->block, 4);
|
||||
/* TWINTREE: - t->eff_partition_offset */
|
||||
iso_bb(&CL[4], n->info.real_me->info.dir->block - t->eff_partition_offset,
|
||||
4);
|
||||
return susp_append(t, susp, CL);
|
||||
}
|
||||
|
||||
@ -697,7 +701,9 @@ int susp_add_CE(Ecma119Image *t, size_t ce_len, struct susp_info *susp)
|
||||
CE[1] = 'E';
|
||||
CE[2] = 28;
|
||||
CE[3] = 1;
|
||||
iso_bb(&CE[4], susp->ce_block, 4);
|
||||
|
||||
/* TWINTREE: susp->ce_block - t->eff_partition_offset */
|
||||
iso_bb(&CE[4], susp->ce_block - t->eff_partition_offset, 4);
|
||||
iso_bb(&CE[12], susp->ce_len, 4);
|
||||
iso_bb(&CE[20], (uint32_t) ce_len, 4);
|
||||
|
||||
|
Reference in New Issue
Block a user