ensure that members of apple_drvr_map and apple_part_map_entry are big endian
This commit is contained in:
parent
ba21cf86c0
commit
a6fac9a778
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: macppc.c,v 1.2 2002/05/15 13:38:42 lukem Exp $ */
|
||||
/* $NetBSD: macppc.c,v 1.3 2002/05/15 15:43:01 lukem Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2002 The NetBSD Foundation, Inc.
|
||||
|
@ -38,7 +38,7 @@
|
|||
|
||||
#include <sys/cdefs.h>
|
||||
#if defined(__RCSID) && !defined(__lint)
|
||||
__RCSID("$NetBSD: macppc.c,v 1.2 2002/05/15 13:38:42 lukem Exp $");
|
||||
__RCSID("$NetBSD: macppc.c,v 1.3 2002/05/15 15:43:01 lukem Exp $");
|
||||
#endif /* !__lint */
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
|
@ -78,6 +78,7 @@ macppc_clearboot(ib_params *params)
|
|||
params->machine->name);
|
||||
return (0);
|
||||
}
|
||||
/* XXX: maybe clear the apple partition map too? */
|
||||
return (shared_bbinfo_clearboot(params, &bbparams));
|
||||
}
|
||||
|
||||
|
@ -100,9 +101,9 @@ writeapplepartmap(ib_params *params, struct bbinfo_params *bb_params, char *bb)
|
|||
warn("Can't read sector 0 of `%s'", params->filesystem);
|
||||
return (0);
|
||||
}
|
||||
dm.sbSig = APPLE_DRVR_MAP_MAGIC;
|
||||
dm.sbBlockSize = 512;
|
||||
dm.sbBlkCount = 0;
|
||||
dm.sbSig = htobe16(APPLE_DRVR_MAP_MAGIC);
|
||||
dm.sbBlockSize = htobe16(512);
|
||||
dm.sbBlkCount = htobe32(0);
|
||||
if (pwrite(params->fsfd, &dm, MACPPC_BOOT_BLOCK_BLOCKSIZE, 0) !=
|
||||
MACPPC_BOOT_BLOCK_BLOCKSIZE) {
|
||||
warn("Can't write sector 0 of `%s'", params->filesystem);
|
||||
|
@ -111,13 +112,14 @@ writeapplepartmap(ib_params *params, struct bbinfo_params *bb_params, char *bb)
|
|||
|
||||
/* block 1: Apple Partition Map */
|
||||
memset(&pme, 0, sizeof(pme));
|
||||
pme.pmSig = APPLE_PART_MAP_ENTRY_MAGIC;
|
||||
pme.pmMapBlkCnt = 2;
|
||||
pme.pmPyPartStart = 1;
|
||||
pme.pmPartBlkCnt = pme.pmDataCnt = 2;
|
||||
pme.pmSig = htobe16(APPLE_PART_MAP_ENTRY_MAGIC);
|
||||
pme.pmMapBlkCnt = htobe32(2);
|
||||
pme.pmPyPartStart = htobe32(1);
|
||||
pme.pmPartBlkCnt = htobe32(2);
|
||||
pme.pmDataCnt = htobe32(2);
|
||||
strlcpy(pme.pmPartName, "Apple", sizeof(pme.pmPartName));
|
||||
strlcpy(pme.pmPartType, "Apple_partition_map", sizeof(pme.pmPartType));
|
||||
pme.pmPartStatus = 0x37;
|
||||
pme.pmPartStatus = htobe32(0x37);
|
||||
if (pwrite(params->fsfd, &pme, MACPPC_BOOT_BLOCK_BLOCKSIZE,
|
||||
1 * MACPPC_BOOT_BLOCK_BLOCKSIZE) != MACPPC_BOOT_BLOCK_BLOCKSIZE) {
|
||||
warn("Can't write Apple Partition Map into sector 1 of `%s'",
|
||||
|
@ -127,16 +129,17 @@ writeapplepartmap(ib_params *params, struct bbinfo_params *bb_params, char *bb)
|
|||
|
||||
/* block 2: NetBSD partition */
|
||||
memset(&pme, 0, sizeof(pme));
|
||||
pme.pmSig = APPLE_PART_MAP_ENTRY_MAGIC;
|
||||
pme.pmMapBlkCnt = 2;
|
||||
pme.pmPyPartStart = 4;
|
||||
pme.pmPartBlkCnt = pme.pmDataCnt = 0x7fffffff;
|
||||
pme.pmSig = htobe16(APPLE_PART_MAP_ENTRY_MAGIC);
|
||||
pme.pmMapBlkCnt = htobe32(2);
|
||||
pme.pmPyPartStart = htobe32(4);
|
||||
pme.pmPartBlkCnt = htobe32(0x7fffffff);
|
||||
pme.pmDataCnt = htobe32(0x7fffffff);
|
||||
strlcpy(pme.pmPartName, "NetBSD", sizeof(pme.pmPartName));
|
||||
strlcpy(pme.pmPartType, "NetBSD/macppc", sizeof(pme.pmPartType));
|
||||
pme.pmPartStatus = 0x3b;
|
||||
pme.pmBootSize = 0x400;
|
||||
pme.pmBootLoad = 0x4000;
|
||||
pme.pmBootEntry = 0x4000;
|
||||
pme.pmPartStatus = htobe32(0x3b);
|
||||
pme.pmBootSize = htobe32(0x400);
|
||||
pme.pmBootLoad = htobe32(0x4000);
|
||||
pme.pmBootEntry = htobe32(0x4000);
|
||||
strlcpy(pme.pmProcessor, "PowerPC", sizeof(pme.pmProcessor));
|
||||
if (pwrite(params->fsfd, &pme, MACPPC_BOOT_BLOCK_BLOCKSIZE,
|
||||
2 * MACPPC_BOOT_BLOCK_BLOCKSIZE) != MACPPC_BOOT_BLOCK_BLOCKSIZE) {
|
||||
|
|
Loading…
Reference in New Issue