svn commit: r224108 - head/usr.sbin/bsdinstall/partedit

Nathan Whitehorn nwhitehorn at FreeBSD.org
Sat Jul 16 19:25:47 UTC 2011


Author: nwhitehorn
Date: Sat Jul 16 19:25:47 2011
New Revision: 224108
URL: http://svn.freebsd.org/changeset/base/224108

Log:
  Add PS3 partitioning (and framework for future pseries support) to the
  installer.

Modified:
  head/usr.sbin/bsdinstall/partedit/partedit_powerpc.c

Modified: head/usr.sbin/bsdinstall/partedit/partedit_powerpc.c
==============================================================================
--- head/usr.sbin/bsdinstall/partedit/partedit_powerpc.c	Sat Jul 16 19:11:45 2011	(r224107)
+++ head/usr.sbin/bsdinstall/partedit/partedit_powerpc.c	Sat Jul 16 19:25:47 2011	(r224108)
@@ -26,19 +26,42 @@
  * $FreeBSD$
  */
 
+#include <sys/types.h>
+#include <sys/sysctl.h>
 #include <string.h>
 
 #include "partedit.h"
 
+static char platform[255] = "";
+
 const char *
 default_scheme(void) {
-	return ("APM");
+	size_t platlen = sizeof(platform);
+	if (strlen(platform) == 0)
+		sysctlbyname("hw.platform", platform, &platlen, NULL, -1);
+
+	if (strcmp(platform, "powermac") == 0)
+		return ("APM");
+	if (strcmp(platform, "chrp") == 0)
+		return ("MBR");
+
+	/* Pick GPT (bootable on PS3) as a generic default */
+	return ("GPT");
 }
 
 int
 is_scheme_bootable(const char *part_type) {
-	if (strcmp(part_type, "APM") == 0)
+	size_t platlen = sizeof(platform);
+	if (strlen(platform) == 0)
+		sysctlbyname("hw.platform", platform, &platlen, NULL, -1);
+
+	if (strcmp(platform, "powermac") == 0 && strcmp(part_type, "APM") == 0)
 		return (1);
+	if (strcmp(platform, "ps3") == 0 && strcmp(part_type, "GPT") == 0)
+		return (1);
+	if (strcmp(platform, "chrp") == 0 && strcmp(part_type, "MBR") == 0)
+		return (1);
+
 	return (0);
 }
 


More information about the svn-src-all mailing list