svn commit: r246630 - in head/sys: boot/common sys

Andrey V. Elsukov ae at FreeBSD.org
Sun Feb 10 19:27:18 UTC 2013


Author: ae
Date: Sun Feb 10 19:27:17 2013
New Revision: 246630
URL: http://svnweb.freebsd.org/changeset/base/246630

Log:
  Add bootcamp support to the loader.
  
  Tested by:	dchagin
  MFC after:	1 week

Modified:
  head/sys/boot/common/part.c
  head/sys/sys/diskmbr.h

Modified: head/sys/boot/common/part.c
==============================================================================
--- head/sys/boot/common/part.c	Sun Feb 10 19:21:17 2013	(r246629)
+++ head/sys/boot/common/part.c	Sun Feb 10 19:27:17 2013	(r246630)
@@ -645,9 +645,13 @@ ptable_open(void *dev, off_t sectors, ui
 	/* Do we have some invalid values? */
 	if (i != NDOSPART ||
 	    (table->type == PTABLE_GPT && count > 1)) {
-		table->type = PTABLE_NONE;
-		DEBUG("invalid values detected, ignore partition table");
-		goto out;
+		if (dp[1].dp_typ != DOSPTYP_HFS) {
+			table->type = PTABLE_NONE;
+			DEBUG("invalid values detected, ignore "
+			    "partition table");
+			goto out;
+		}
+		DEBUG("Bootcamp detected");
 	}
 #ifdef LOADER_GPT_SUPPORT
 	if (table->type == PTABLE_GPT) {

Modified: head/sys/sys/diskmbr.h
==============================================================================
--- head/sys/sys/diskmbr.h	Sun Feb 10 19:21:17 2013	(r246629)
+++ head/sys/sys/diskmbr.h	Sun Feb 10 19:27:17 2013	(r246630)
@@ -51,6 +51,7 @@
 #define	DOSPTYP_PPCBOOT	0x41	/* PReP/CHRP boot partition */
 #define	DOSPTYP_LDM	0x42	/* Win2k dynamic extended partition */
 #define	DOSPTYP_386BSD	0xa5	/* 386BSD partition type */
+#define	DOSPTYP_HFS	0xaf	/* HFS/HFS+ partition type */
 #define	DOSPTYP_LINSWP	0x82	/* Linux swap partition */
 #define	DOSPTYP_LINUX	0x83	/* Linux partition */
 #define	DOSPTYP_LINLVM	0x8e	/* Linux LVM partition */


More information about the svn-src-head mailing list