Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 May 2010 22:21:33 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r208173 - in head: sbin/geom/class/part sys/geom/part
Message-ID:  <201005162221.o4GMLXet032237@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Sun May 16 22:21:33 2010
New Revision: 208173
URL: http://svn.freebsd.org/changeset/base/208173

Log:
  Teach gpart about bootcode on APM.

Modified:
  head/sbin/geom/class/part/geom_part.c
  head/sys/geom/part/g_part_apm.c

Modified: head/sbin/geom/class/part/geom_part.c
==============================================================================
--- head/sbin/geom/class/part/geom_part.c	Sun May 16 22:01:43 2010	(r208172)
+++ head/sbin/geom/class/part/geom_part.c	Sun May 16 22:21:33 2010	(r208173)
@@ -705,7 +705,7 @@ gpart_bootcode(struct gctl_req *req, uns
 
 	if (gctl_has_param(req, bootcode_param)) {
 		s = gctl_get_ascii(req, bootcode_param);
-		bootsize = 64 * 1024;		/* Arbitrary limit. */
+		bootsize = 800 * 1024;		/* Arbitrary limit. */
 		bootcode = gpart_bootfile_read(s, &bootsize);
 		error = gctl_change_param(req, bootcode_param, bootsize,
 		    bootcode);

Modified: head/sys/geom/part/g_part_apm.c
==============================================================================
--- head/sys/geom/part/g_part_apm.c	Sun May 16 22:01:43 2010	(r208172)
+++ head/sys/geom/part/g_part_apm.c	Sun May 16 22:21:33 2010	(r208173)
@@ -131,6 +131,26 @@ apm_parse_type(const char *type, char *b
 		strncpy(buf, type, bufsz);
 		return (0);
 	}
+	alias = g_part_alias_name(G_PART_ALIAS_APPLE_BOOT);
+	if (!strcasecmp(type, alias)) {
+		strcpy(buf, APM_ENT_TYPE_APPLE_BOOT);
+		return (0);
+	}
+	alias = g_part_alias_name(G_PART_ALIAS_APPLE_HFS);
+	if (!strcasecmp(type, alias)) {
+		strcpy(buf, APM_ENT_TYPE_APPLE_HFS);
+		return (0);
+	}
+	alias = g_part_alias_name(G_PART_ALIAS_APPLE_UFS);
+	if (!strcasecmp(type, alias)) {
+		strcpy(buf, APM_ENT_TYPE_APPLE_UFS);
+		return (0);
+	}
+	alias = g_part_alias_name(G_PART_ALIAS_FREEBSD_BOOT);
+	if (!strcasecmp(type, alias)) {
+		strcpy(buf, APM_ENT_TYPE_APPLE_BOOT);
+		return (0);
+	}
 	alias = g_part_alias_name(G_PART_ALIAS_FREEBSD);
 	if (!strcasecmp(type, alias)) {
 		strcpy(buf, APM_ENT_TYPE_FREEBSD);
@@ -445,6 +465,12 @@ g_part_apm_type(struct g_part_table *bas
 
 	entry = (struct g_part_apm_entry *)baseentry;
 	type = entry->ent.ent_type;
+	if (!strcmp(type, APM_ENT_TYPE_APPLE_BOOT))
+		return (g_part_alias_name(G_PART_ALIAS_APPLE_BOOT));
+	if (!strcmp(type, APM_ENT_TYPE_APPLE_HFS))
+		return (g_part_alias_name(G_PART_ALIAS_APPLE_HFS));
+	if (!strcmp(type, APM_ENT_TYPE_APPLE_UFS))
+		return (g_part_alias_name(G_PART_ALIAS_APPLE_UFS));
 	if (!strcmp(type, APM_ENT_TYPE_FREEBSD))
 		return (g_part_alias_name(G_PART_ALIAS_FREEBSD));
 	if (!strcmp(type, APM_ENT_TYPE_FREEBSD_SWAP))



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005162221.o4GMLXet032237>