New error code ISO_BOOT_APM_OVERLAP
This commit is contained in:
parent
e57e45e40b
commit
e9eb22f514
@ -7003,7 +7003,6 @@ int iso_image_hfsplus_bless(IsoImage *img, enum IsoHfsplusBlessings blessing,
|
|||||||
(FAILURE, HIGH, -343) */
|
(FAILURE, HIGH, -343) */
|
||||||
#define ISO_AAIP_NON_USER_NAME 0xE830FEA9
|
#define ISO_AAIP_NON_USER_NAME 0xE830FEA9
|
||||||
|
|
||||||
|
|
||||||
/** Too many references on a single IsoExternalFilterCommand
|
/** Too many references on a single IsoExternalFilterCommand
|
||||||
(FAILURE, HIGH, -344) */
|
(FAILURE, HIGH, -344) */
|
||||||
#define ISO_EXTF_TOO_OFTEN 0xE830FEA8
|
#define ISO_EXTF_TOO_OFTEN 0xE830FEA8
|
||||||
@ -7171,9 +7170,12 @@ int iso_image_hfsplus_bless(IsoImage *img, enum IsoHfsplusBlessings blessing,
|
|||||||
(FAILURE, HIGH, -382) */
|
(FAILURE, HIGH, -382) */
|
||||||
#define ISO_SECT_SCATTERED 0xE830FE82
|
#define ISO_SECT_SCATTERED 0xE830FE82
|
||||||
|
|
||||||
/** Too many Apple Partition Map entries requested (FAILURE, HIGH, -383)*/
|
/** Too many Apple Partition Map entries requested (FAILURE, HIGH, -383) */
|
||||||
#define ISO_BOOT_TOO_MANY_APM 0xE830FE81
|
#define ISO_BOOT_TOO_MANY_APM 0xE830FE81
|
||||||
|
|
||||||
|
/** Overlapping Apple Partition Map entries requested (FAILURE, HIGH, -384) */
|
||||||
|
#define ISO_BOOT_APM_OVERLAP 0xE830FE80
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Internal developer note:
|
/* Internal developer note:
|
||||||
|
@ -476,6 +476,8 @@ const char *iso_error_to_msg(int errcode)
|
|||||||
return "File sections do not form consecutive array of blocks";
|
return "File sections do not form consecutive array of blocks";
|
||||||
case ISO_BOOT_TOO_MANY_APM:
|
case ISO_BOOT_TOO_MANY_APM:
|
||||||
return "Too many Apple Partition Map entries requested";
|
return "Too many Apple Partition Map entries requested";
|
||||||
|
case ISO_BOOT_APM_OVERLAP:
|
||||||
|
return "Overlapping Apple Partition Map entries requested";
|
||||||
default:
|
default:
|
||||||
return "Unknown error";
|
return "Unknown error";
|
||||||
}
|
}
|
||||||
|
@ -800,8 +800,10 @@ static int iso_write_apm(Ecma119Image *t, uint32_t img_blocks, uint8_t *buf)
|
|||||||
if (t->apm_req_count <= 0) {
|
if (t->apm_req_count <= 0) {
|
||||||
/*
|
/*
|
||||||
ret = iso_quick_apm_entry(t, 16, 20, "Test1_name_16_20", "Test1_type");
|
ret = iso_quick_apm_entry(t, 16, 20, "Test1_name_16_20", "Test1_type");
|
||||||
*/
|
|
||||||
ret = iso_quick_apm_entry(t, 30, 20, "Test1_name_30_20", "Test1_type");
|
ret = iso_quick_apm_entry(t, 30, 20, "Test1_name_30_20", "Test1_type");
|
||||||
|
*/
|
||||||
|
/* >>> Caution: Size 90 causes intentional partition overlap error */
|
||||||
|
ret = iso_quick_apm_entry(t, 30, 90, "BAD_30_90_BAD", "Test1_type");
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
ret = iso_quick_apm_entry(t, 100, 400, "Test2_name_100_400",
|
ret = iso_quick_apm_entry(t, 100, 400, "Test2_name_100_400",
|
||||||
@ -846,16 +848,15 @@ static int iso_write_apm(Ecma119Image *t, uint32_t img_blocks, uint8_t *buf)
|
|||||||
t->apm_req[i - 1]->block_count;
|
t->apm_req[i - 1]->block_count;
|
||||||
}
|
}
|
||||||
if (part_end > goal) {
|
if (part_end > goal) {
|
||||||
|
iso_msg_submit(t->image->id, ISO_BOOT_APM_OVERLAP, 0,
|
||||||
/* >>> Overlapping partition. */;
|
"Program error: APM partitions %d and %d oberlap by %lu blocks",
|
||||||
/* >>> Vladimir: "Throw error." */;
|
i - 1, i, part_end - goal);
|
||||||
|
return ISO_BOOT_APM_OVERLAP;
|
||||||
}
|
}
|
||||||
if (part_end < goal) {
|
if (part_end < goal) {
|
||||||
sprintf(gap_name, "Gap%d", gap_counter);
|
sprintf(gap_name, "Gap%d", gap_counter);
|
||||||
gap_counter++;
|
gap_counter++;
|
||||||
ret = iso_quick_apm_entry(t, part_end,
|
ret = iso_quick_apm_entry(t, part_end, goal - part_end,
|
||||||
goal - part_end,
|
|
||||||
gap_name, "ISO9660_data");
|
gap_name, "ISO9660_data");
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user