svn commit: r263706 - user/marcel/mkimg

Marcel Moolenaar marcel at FreeBSD.org
Tue Mar 25 03:58:14 UTC 2014


Author: marcel
Date: Tue Mar 25 03:58:13 2014
New Revision: 263706
URL: http://svnweb.freebsd.org/changeset/base/263706

Log:
  Move setting CHS fields to mbr_chs() in preparation of ...

Modified:
  user/marcel/mkimg/mbr.c

Modified: user/marcel/mkimg/mbr.c
==============================================================================
--- user/marcel/mkimg/mbr.c	Tue Mar 25 03:30:44 2014	(r263705)
+++ user/marcel/mkimg/mbr.c	Tue Mar 25 03:58:13 2014	(r263706)
@@ -54,6 +54,15 @@ mbr_metadata(u_int where)
 	return (secs);
 }
 
+static void
+mbr_chs(u_char *cyl, u_char *hd, u_char *sec, uint32_t lba __unused)
+{
+
+	*cyl = 0xff;		/* XXX */
+	*hd = 0xff;		/* XXX */
+	*sec = 0xff;		/* XXX */
+}
+
 static int
 mbr_write(int fd, lba_t imgsz __unused, void *bootcode)
 {
@@ -75,9 +84,11 @@ mbr_write(int fd, lba_t imgsz __unused, 
 	STAILQ_FOREACH(part, &partlist, link) {
 		dp = dpbase + part->index;
 		dp->dp_flag = (part->index == 0 && bootcode != NULL) ? 0x80 : 0;
-		dp->dp_shd = dp->dp_ssect = dp->dp_scyl = 0xff;	/* XXX */
+		mbr_chs(&dp->dp_scyl, &dp->dp_shd, &dp->dp_ssect,
+		    part->block);
 		dp->dp_typ = ALIAS_TYPE2INT(part->type);
-		dp->dp_ehd = dp->dp_esect = dp->dp_ecyl = 0xff;	/* XXX */
+		mbr_chs(&dp->dp_ecyl, &dp->dp_ehd, &dp->dp_esect,
+		    part->block + part->size - 1);
 		le32enc(&dp[part->index].dp_start, part->block);
 		le32enc(&dp[part->index].dp_size, part->size);
 	}


More information about the svn-src-user mailing list