summaryrefslogtreecommitdiff
path: root/sys/arch/powerpc/include
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/powerpc/include')
-rw-r--r--sys/arch/powerpc/include/disklabel.h68
1 files changed, 61 insertions, 7 deletions
diff --git a/sys/arch/powerpc/include/disklabel.h b/sys/arch/powerpc/include/disklabel.h
index 1e76f9d9725..c1db665f39a 100644
--- a/sys/arch/powerpc/include/disklabel.h
+++ b/sys/arch/powerpc/include/disklabel.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: disklabel.h,v 1.13 1999/12/04 03:35:57 deraadt Exp $ */
+/* $OpenBSD: disklabel.h,v 1.14 2001/03/14 08:02:11 drahn Exp $ */
/*
* Copyright (c) 1994 Christopher G. Demetriou
@@ -79,12 +79,6 @@ struct dos_partition {
#define DOSPTYP_NETBSD 0xa9 /* NetBSD partition type */
#include <sys/dkbad.h>
-struct cpu_disklabel {
- struct dos_partition dosparts[NDOSPART];
- struct dkbad bad;
-};
-
-#define DKBAD(x) ((x)->bad)
/* Isolate the relevant bits to get sector and cylinder. */
#define DPSECT(s) ((s) & 0x3f)
@@ -110,4 +104,64 @@ get_le(p)
return x;
}
+/* HFS/DPME */
+
+/* partition map structure from Inside Macintosh: Devices, SCSI Manager
+ * pp. 13-14. The partition map always begins on physical block 1.
+ *
+ * With the exception of block 0, all blocks on the disk must belong to
+ * exactly one partition. The partition map itself belongs to a partition
+ * of type `APPLE_PARTITION_MAP', and is not limited in size by anything
+ * other than available disk space. The partition map is not necessarily
+ * the first partition listed.
+ */
+struct part_map_entry {
+#define PART_ENTRY_MAGIC 0x504d
+ u_int16_t pmSig; /* partition signature */
+ u_int16_t pmSigPad; /* (reserved) */
+ u_int32_t pmMapBlkCnt; /* number of blocks in partition map */
+ u_int32_t pmPyPartStart; /* first physical block of partition */
+ u_int32_t pmPartBlkCnt; /* number of blocks in partition */
+ char pmPartName[32]; /* partition name */
+ char pmPartType[32]; /* partition type */
+ u_int32_t pmLgDataStart; /* first logical block of data area */
+ u_int32_t pmDataCnt; /* number of blocks in data area */
+ u_int32_t pmPartStatus; /* partition status information */
+ u_int32_t pmLgBootStart; /* first logical block of boot code */
+ u_int32_t pmBootSize; /* size of boot code, in bytes */
+ u_int32_t pmBootLoad; /* boot code load address */
+ u_int32_t pmBootLoad2; /* (reserved) */
+ u_int32_t pmBootEntry; /* boot code entry point */
+ u_int32_t pmBootEntry2; /* (reserved) */
+ u_int32_t pmBootCksum; /* boot code checksum */
+ char pmProcessor[16]; /* processor type (e.g. "68020") */
+ u_int8_t pmBootArgs[128]; /* A/UX boot arguments */
+ /* we do not index the disk image as an array,
+ * leave out the on disk padding
+ */
+#if 0
+ u_int8_t pad[248]; /* pad to end of block */
+#endif
+};
+
+#define PART_TYPE_DRIVER "APPLE_DRIVER"
+#define PART_TYPE_DRIVER43 "APPLE_DRIVER43"
+#define PART_TYPE_DRIVERATA "APPLE_DRIVER_ATA"
+#define PART_TYPE_DRIVERIOKIT "APPLE_DRIVER_IOKIT"
+#define PART_TYPE_FWDRIVER "APPLE_FWDRIVER"
+#define PART_TYPE_FWB_COMPONENT "FWB DRIVER COMPONENTS"
+#define PART_TYPE_FREE "APPLE_FREE"
+#define PART_TYPE_MAC "APPLE_HFS"
+#define PART_TYPE_OPENBSD "OPENBSD"
+
+
+struct cpu_disklabel {
+ struct dos_partition dosparts[NDOSPART];
+ /* only store first entry and openbsd partition */
+ struct part_map_entry macparts[2];
+ struct dkbad bad;
+};
+
+#define DKBAD(x) ((x)->bad)
+
#endif /* _MACHINE_DISKLABEL_H_ */