ensure that members of apple_drvr_map and apple_part_map_entry are big endian

This commit is contained in:
lukem 2002-05-15 15:43:01 +00:00
parent ba21cf86c0
commit a6fac9a778
1 changed files with 21 additions and 18 deletions

View File

@ -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) {