PERFORCE change 143087 for review
Sam Leffler
sam at FreeBSD.org
Sat Jun 7 18:47:24 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=143087
Change 143087 by sam at sam_ebb on 2008/06/07 18:46:46
IFC @ 143086
Affected files ...
.. //depot/projects/vap/MAINTAINERS#5 integrate
.. //depot/projects/vap/bin/ln/ln.1#3 integrate
.. //depot/projects/vap/bin/ln/ln.c#3 integrate
.. //depot/projects/vap/bin/sh/alias.c#3 integrate
.. //depot/projects/vap/contrib/cvs/src/classify.c#6 integrate
.. //depot/projects/vap/etc/rc.firewall#5 integrate
.. //depot/projects/vap/sbin/geom/class/part/geom_part.c#5 integrate
.. //depot/projects/vap/sbin/geom/class/part/gpart.8#3 integrate
.. //depot/projects/vap/sbin/geom/misc/subr.c#3 integrate
.. //depot/projects/vap/sbin/geom/misc/subr.h#3 integrate
.. //depot/projects/vap/sbin/natd/natd.c#3 integrate
.. //depot/projects/vap/sys/arm/conf/GUMSTIX#1 branch
.. //depot/projects/vap/sys/arm/conf/GUMSTIX.hints#1 branch
.. //depot/projects/vap/sys/arm/include/intr.h#7 integrate
.. //depot/projects/vap/sys/arm/xscale/pxa/files.pxa#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/if_smc_smi.c#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/pxa_gpio.c#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/pxa_icu.c#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/pxa_machdep.c#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/pxa_obio.c#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/pxa_smi.c#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/pxa_space.c#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/pxa_timer.c#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/pxareg.h#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/pxavar.h#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/std.pxa#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/uart_bus_pxa.c#1 branch
.. //depot/projects/vap/sys/arm/xscale/pxa/uart_cpu_pxa.c#1 branch
.. //depot/projects/vap/sys/boot/common/ufsread.c#6 integrate
.. //depot/projects/vap/sys/boot/i386/libi386/biossmap.c#5 integrate
.. //depot/projects/vap/sys/conf/files#42 edit
.. //depot/projects/vap/sys/conf/kern.pre.mk#7 edit
.. //depot/projects/vap/sys/conf/newvers.sh#5 integrate
.. //depot/projects/vap/sys/conf/options#24 edit
.. //depot/projects/vap/sys/conf/options.arm#6 integrate
.. //depot/projects/vap/sys/dev/ath/if_ath.c#85 integrate
.. //depot/projects/vap/sys/dev/bktr/bktr_i2c.c#5 integrate
.. //depot/projects/vap/sys/dev/cs/if_cs.c#7 integrate
.. //depot/projects/vap/sys/dev/cs/if_cs_isa.c#6 integrate
.. //depot/projects/vap/sys/dev/cs/if_cs_pccard.c#7 integrate
.. //depot/projects/vap/sys/dev/cs/if_csreg.h#3 integrate
.. //depot/projects/vap/sys/dev/cs/if_csvar.h#7 integrate
.. //depot/projects/vap/sys/dev/ichsmb/ichsmb.c#6 integrate
.. //depot/projects/vap/sys/dev/ichsmb/ichsmb_pci.c#6 integrate
.. //depot/projects/vap/sys/dev/ichsmb/ichsmb_var.h#5 integrate
.. //depot/projects/vap/sys/dev/iicbus/iicsmb.c#5 integrate
.. //depot/projects/vap/sys/dev/iwi/if_iwi.c#34 integrate
.. //depot/projects/vap/sys/dev/iwn/if_iwn.c#23 integrate
.. //depot/projects/vap/sys/dev/mii/miidevs#11 integrate
.. //depot/projects/vap/sys/dev/mii/smcphy.c#1 branch
.. //depot/projects/vap/sys/dev/ral/rt2560.c#40 integrate
.. //depot/projects/vap/sys/dev/ral/rt2661.c#38 integrate
.. //depot/projects/vap/sys/dev/si/si.c#5 integrate
.. //depot/projects/vap/sys/dev/si/si.h#3 integrate
.. //depot/projects/vap/sys/dev/smbus/smb.c#5 integrate
.. //depot/projects/vap/sys/dev/smc/if_smc.c#1 branch
.. //depot/projects/vap/sys/dev/smc/if_smcreg.h#1 branch
.. //depot/projects/vap/sys/dev/smc/if_smcvar.h#1 branch
.. //depot/projects/vap/sys/dev/usb/if_rum.c#26 integrate
.. //depot/projects/vap/sys/dev/usb/if_ural.c#24 integrate
.. //depot/projects/vap/sys/dev/usb/if_zyd.c#25 integrate
.. //depot/projects/vap/sys/dev/wpi/if_wpi.c#28 integrate
.. //depot/projects/vap/sys/net80211/ieee80211_node.c#40 edit
.. //depot/projects/vap/sys/net80211/ieee80211_var.h#47 integrate
.. //depot/projects/vap/sys/pci/amdpm.c#6 integrate
.. //depot/projects/vap/sys/pci/amdsmb.c#4 integrate
.. //depot/projects/vap/sys/pci/intpm.c#7 integrate
.. //depot/projects/vap/sys/pci/nfsmb.c#4 integrate
.. //depot/projects/vap/sys/pci/viapm.c#6 integrate
.. //depot/projects/vap/sys/vm/vm_page.c#11 integrate
.. //depot/projects/vap/usr.sbin/config/Makefile#3 integrate
.. //depot/projects/vap/usr.sbin/sicontrol/Makefile#3 integrate
.. //depot/projects/vap/usr.sbin/sicontrol/sicontrol.c#4 integrate
Differences ...
==== //depot/projects/vap/MAINTAINERS#5 (text+ko) ====
@@ -1,8 +1,8 @@
-$FreeBSD: src/MAINTAINERS,v 1.149 2008/06/04 07:37:26 rafan Exp $
+$FreeBSD: src/MAINTAINERS,v 1.150 2008/06/06 21:32:01 peter Exp $
Please note that the content of this file is strictly advisory.
No locks listed here are valid. The only strict review requirements
-are granted by core. These are documented in src/LOCKS and enforced
+are granted by core. These are documented in head/LOCKS and enforced
by CVSROOT/approvers.
The source tree is a community effort. However, some folks go to the
==== //depot/projects/vap/bin/ln/ln.1#3 (text+ko) ====
@@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)ln.1 8.2 (Berkeley) 12/30/93
-.\" $FreeBSD: src/bin/ln/ln.1,v 1.32 2007/11/17 21:01:22 ru Exp $
+.\" $FreeBSD: src/bin/ln/ln.1,v 1.33 2008/06/06 08:27:59 keramida Exp $
.\"
-.Dd February 14, 2006
+.Dd June 6, 2008
.Dt LN 1
.Os
.Sh NAME
@@ -42,13 +42,13 @@
.Sh SYNOPSIS
.Nm
.Op Fl s Op Fl F
-.Op Fl f | i
+.Op Fl f | iw
.Op Fl hnv
.Ar source_file
.Op Ar target_file
.Nm
.Op Fl s Op Fl F
-.Op Fl f | i
+.Op Fl f | iw
.Op Fl hnv
.Ar source_file ...
.Ar target_dir
@@ -79,6 +79,8 @@
.Fl f
option overrides any previous
.Fl i
+and
+.Fl w
options.)
.It Fl F
If the target file already exists and is a directory, then remove it
@@ -134,6 +136,8 @@
Cause
.Nm
to be verbose, showing files as they are processed.
+.It Fl w
+Warn if the source of a symbolic link does not currently exist.
.El
.Pp
By default,
@@ -194,9 +198,10 @@
The
.Fl h ,
.Fl i ,
-.Fl n
+.Fl n ,
+.Fl v
and
-.Fl v
+.Fl w
options are non-standard and their use in scripts is not recommended.
They are provided solely for compatibility with other
.Nm
==== //depot/projects/vap/bin/ln/ln.c#3 (text+ko) ====
@@ -39,7 +39,7 @@
#endif /* not lint */
#endif
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/ln/ln.c,v 1.36 2007/11/17 21:01:22 ru Exp $");
+__FBSDID("$FreeBSD: src/bin/ln/ln.c,v 1.38 2008/06/07 09:37:30 keramida Exp $");
#include <sys/param.h>
#include <sys/stat.h>
@@ -58,6 +58,8 @@
int iflag; /* Interactive mode. */
int sflag; /* Symbolic, not hard, link. */
int vflag; /* Verbose output. */
+int wflag; /* Warn if symlink target does not
+ * exist, and -f is not enabled. */
/* System link call. */
int (*linkf)(const char *, const char *);
char linkch;
@@ -92,7 +94,7 @@
exit(linkit(argv[0], argv[1], 0));
}
- while ((ch = getopt(argc, argv, "Ffhinsv")) != -1)
+ while ((ch = getopt(argc, argv, "Ffhinsvw")) != -1)
switch (ch) {
case 'F':
Fflag = 1;
@@ -100,6 +102,7 @@
case 'f':
fflag = 1;
iflag = 0;
+ wflag = 0;
break;
case 'h':
case 'n':
@@ -115,6 +118,9 @@
case 'v':
vflag = 1;
break;
+ case 'w':
+ wflag = 1;
+ break;
case '?':
default:
usage();
@@ -127,8 +133,10 @@
linkch = sflag ? '-' : '=';
if (sflag == 0)
Fflag = 0;
- if (Fflag == 1 && iflag == 0)
+ if (Fflag == 1 && iflag == 0) {
fflag = 1;
+ wflag = 0; /* Implied when fflag != 0 */
+ }
switch(argc) {
case 0:
@@ -167,6 +175,7 @@
const char *p;
int ch, exists, first;
char path[PATH_MAX];
+ char wbuf[PATH_MAX];
if (!sflag) {
/* If source doesn't exist, quit now. */
@@ -204,6 +213,32 @@
exists = !lstat(target, &sb);
/*
+ * If the link source doesn't exist, and a symbolic link was
+ * requested, and -w was specified, give a warning.
+ */
+ if (sflag && wflag) {
+ if (*source == '/') {
+ /* Absolute link source. */
+ if (stat(source, &sb) != 0)
+ warn("warning: %s inaccessible", source);
+ } else {
+ /*
+ * Relative symlink source. Try to construct the
+ * absolute path of the source, by appending `source'
+ * to the parent directory of the target.
+ */
+ p = strrchr(target, '/');
+ if (p != NULL)
+ p++;
+ else
+ p = target;
+ (void)snprintf(wbuf, sizeof(wbuf), "%.*s%s",
+ (int)(p - target), target, source);
+ if (stat(wbuf, &sb) != 0)
+ warn("warning: %s", source);
+ }
+ }
+ /*
* If the file exists, then unlink it forcibly if -f was specified
* and interactively if -i was specified.
*/
==== //depot/projects/vap/bin/sh/alias.c#3 (text+ko) ====
@@ -36,11 +36,10 @@
#endif
#endif /* not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/sh/alias.c,v 1.20 2005/09/02 22:43:28 stefanf Exp $");
+__FBSDID("$FreeBSD: src/bin/sh/alias.c,v 1.22 2008/06/07 16:28:20 rse Exp $");
#include <stdlib.h>
#include "shell.h"
-#include "input.h"
#include "output.h"
#include "error.h"
#include "memalloc.h"
@@ -53,8 +52,8 @@
STATIC struct alias *atab[ATABSIZE];
STATIC void setalias(char *, char *);
-STATIC int unalias(char *);
-STATIC struct alias **hashalias(char *);
+STATIC int unalias(const char *);
+STATIC struct alias **hashalias(const char *);
STATIC
void
@@ -111,7 +110,7 @@
}
STATIC int
-unalias(char *name)
+unalias(const char *name)
{
struct alias *ap, **app;
@@ -248,7 +247,7 @@
}
STATIC struct alias **
-hashalias(char *p)
+hashalias(const char *p)
{
unsigned int hashval;
==== //depot/projects/vap/contrib/cvs/src/classify.c#6 (text+ko) ====
@@ -41,6 +41,7 @@
* changed by -A...
*/
|| (strlen (vers->entdata->options)
+ && strcmp (vers->entdata->options, vers->options)
&& strcmp (vers->entdata->options, "-kkv")
&& strcmp (vers->entdata->options, "-kb"))))
/* ...or... */
==== //depot/projects/vap/etc/rc.firewall#5 (text+ko) ====
@@ -23,7 +23,7 @@
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
-# $FreeBSD: src/etc/rc.firewall,v 1.54 2008/01/21 04:41:17 rafan Exp $
+# $FreeBSD: src/etc/rc.firewall,v 1.55 2008/06/06 07:17:04 keramida Exp $
#
#
@@ -171,6 +171,9 @@
mask="255.255.255.0"
ip="192.0.2.1"
+ # Allow limited broadcast traffic from my own net.
+ ${fwcmd} add pass all from ${net}:${mask} to 255.255.255.255
+
# Allow any traffic to or from my own net.
${fwcmd} add pass all from ${ip} to ${net}:${mask}
${fwcmd} add pass all from ${net}:${mask} to ${ip}
==== //depot/projects/vap/sbin/geom/class/part/geom_part.c#5 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/geom/class/part/geom_part.c,v 1.6 2008/06/04 20:07:59 marcel Exp $");
+__FBSDID("$FreeBSD: src/sbin/geom/class/part/geom_part.c,v 1.7 2008/06/06 23:58:29 marcel Exp $");
#include <stdio.h>
#include <stdint.h>
@@ -56,6 +56,10 @@
static char optional[] = "";
static char flags[] = "C";
+static char bootcode_param[] = "bootcode";
+static char index_param[] = "index";
+static char partcode_param[] = "partcode";
+
static void gpart_bootcode(struct gctl_req *, unsigned int);
static void gpart_show(struct gctl_req *, unsigned int);
@@ -64,14 +68,16 @@
{ 'b', "start", NULL, G_TYPE_STRING },
{ 's', "size", NULL, G_TYPE_STRING },
{ 't', "type", NULL, G_TYPE_STRING },
- { 'i', "index", optional, G_TYPE_STRING },
+ { 'i', index_param, optional, G_TYPE_STRING },
{ 'l', "label", optional, G_TYPE_STRING },
{ 'f', "flags", flags, G_TYPE_STRING },
G_OPT_SENTINEL },
"geom", NULL
},
{ "bootcode", 0, gpart_bootcode, {
- { 'b', "bootcode", NULL, G_TYPE_STRING },
+ { 'b', bootcode_param, optional, G_TYPE_STRING },
+ { 'p', partcode_param, optional, G_TYPE_STRING },
+ { 'i', index_param, optional, G_TYPE_STRING },
{ 'f', "flags", flags, G_TYPE_STRING },
G_OPT_SENTINEL },
"geom", NULL
@@ -85,7 +91,7 @@
"provider", NULL
},
{ "delete", 0, NULL, {
- { 'i', "index", NULL, G_TYPE_STRING },
+ { 'i', index_param, NULL, G_TYPE_STRING },
{ 'f', "flags", flags, G_TYPE_STRING },
G_OPT_SENTINEL },
"geom", NULL
@@ -95,7 +101,7 @@
G_OPT_SENTINEL },
"geom", NULL },
{ "modify", 0, NULL, {
- { 'i', "index", NULL, G_TYPE_STRING },
+ { 'i', index_param, NULL, G_TYPE_STRING },
{ 'l', "label", optional, G_TYPE_STRING },
{ 't', "type", optional, G_TYPE_STRING },
{ 'f', "flags", flags, G_TYPE_STRING },
@@ -286,38 +292,150 @@
geom_deletetree(&mesh);
}
-static void
-gpart_bootcode(struct gctl_req *req, unsigned int fl __unused)
+static void *
+gpart_bootfile_read(const char *bootfile, ssize_t *size)
{
struct stat sb;
- const char *bootfile;
void *code;
- int error, fd, size;
+ int fd;
- bootfile = gctl_get_ascii(req, "bootcode");
- if (bootfile == NULL)
- errx(EXIT_FAILURE, "Missing bootfile argument");
-
- error = stat(bootfile, &sb);
- if (error)
- errx(EXIT_FAILURE, "%s: not found", bootfile);
+ if (stat(bootfile, &sb) == -1)
+ err(EXIT_FAILURE, "%s", bootfile);
if (!S_ISREG(sb.st_mode))
errx(EXIT_FAILURE, "%s: not a regular file", bootfile);
- if (sb.st_size >= 1024*1024)
- errx(EXIT_FAILURE, "%s: file too big", bootfile);
+ if (sb.st_size == 0)
+ errx(EXIT_FAILURE, "%s: empty file", bootfile);
+ if (*size > 0 && sb.st_size >= *size)
+ errx(EXIT_FAILURE, "%s: file too big (%zu limit)", bootfile,
+ *size);
- size = sb.st_size;
+ *size = sb.st_size;
fd = open(bootfile, O_RDONLY);
if (fd == -1)
- errx(EXIT_FAILURE, "%s: unable to open", bootfile);
- code = malloc(size);
+ err(EXIT_FAILURE, "%s", bootfile);
+ code = malloc(*size);
if (code == NULL)
- errx(EXIT_FAILURE, "out of memory");
- if (read(fd, code, size) != size)
- errx(EXIT_FAILURE, "%s: unable to read", bootfile);
+ err(EXIT_FAILURE, NULL);
+ if (read(fd, code, *size) != *size)
+ err(EXIT_FAILURE, "%s", bootfile);
close(fd);
- gctl_change_param(req, "bootcode", size, code);
- gctl_issue(req);
+ return (code);
+}
+
+static void
+gpart_write_partcode(struct gctl_req *req, int idx, void *code, ssize_t size)
+{
+ char dsf[128];
+ struct gmesh mesh;
+ struct gclass *classp;
+ struct ggeom *gp;
+ struct gprovider *pp;
+ const char *s;
+ int error, fd;
+
+ s = gctl_get_ascii(req, "class");
+ if (s == NULL)
+ abort();
+ error = geom_gettree(&mesh);
+ if (error != 0)
+ errc(EXIT_FAILURE, error, "Cannot get GEOM tree");
+ classp = find_class(&mesh, s);
+ if (classp == NULL) {
+ geom_deletetree(&mesh);
+ errx(EXIT_FAILURE, "Class %s not found.", s);
+ }
+ s = gctl_get_ascii(req, "geom");
+ gp = find_geom(classp, s);
+ if (gp == NULL)
+ errx(EXIT_FAILURE, "No such geom: %s.", s);
+
+ LIST_FOREACH(pp, &gp->lg_provider, lg_provider) {
+ s = find_provcfg(pp, "index");
+ if (s == NULL)
+ continue;
+ if (atoi(s) == idx)
+ break;
+ }
+
+ if (pp != NULL) {
+ snprintf(dsf, sizeof(dsf), "/dev/%s", pp->lg_name);
+ fd = open(dsf, O_WRONLY);
+ if (fd == -1)
+ err(EXIT_FAILURE, "%s", dsf);
+ if (lseek(fd, size, SEEK_SET) != size)
+ errx(EXIT_FAILURE, "%s: not enough space", dsf);
+ if (lseek(fd, 0, SEEK_SET) != 0)
+ err(EXIT_FAILURE, "%s", dsf);
+ if (write(fd, code, size) != size)
+ err(EXIT_FAILURE, "%s", dsf);
+ close(fd);
+ } else
+ errx(EXIT_FAILURE, "invalid partition index");
+
+ geom_deletetree(&mesh);
+}
+
+static void
+gpart_bootcode(struct gctl_req *req, unsigned int fl __unused)
+{
+ const char *s;
+ char *sp;
+ void *bootcode, *partcode;
+ size_t bootsize, partsize;
+ int error, idx;
+
+ if (gctl_has_param(req, bootcode_param)) {
+ s = gctl_get_ascii(req, bootcode_param);
+ bootsize = 64 * 1024; /* Arbitrary limit. */
+ bootcode = gpart_bootfile_read(s, &bootsize);
+ error = gctl_change_param(req, bootcode_param, bootsize,
+ bootcode);
+ if (error)
+ errc(EXIT_FAILURE, error, "internal error");
+ } else {
+ bootcode = NULL;
+ bootsize = 0;
+ }
+
+ if (gctl_has_param(req, partcode_param)) {
+ s = gctl_get_ascii(req, partcode_param);
+ partsize = bootsize * 1024;
+ partcode = gpart_bootfile_read(s, &partsize);
+ error = gctl_delete_param(req, partcode_param);
+ if (error)
+ errc(EXIT_FAILURE, error, "internal error");
+ } else {
+ partcode = NULL;
+ partsize = 0;
+ }
+
+ if (gctl_has_param(req, index_param)) {
+ if (partcode == NULL)
+ errx(EXIT_FAILURE, "-i is only valid with -p");
+ s = gctl_get_ascii(req, index_param);
+ idx = strtol(s, &sp, 10);
+ if (idx < 1 || *s == '\0' || *sp != '\0')
+ errx(EXIT_FAILURE, "invalid partition index");
+ error = gctl_delete_param(req, index_param);
+ if (error)
+ errc(EXIT_FAILURE, error, "internal error");
+ } else
+ idx = 0;
+
+ if (partcode != NULL) {
+ if (idx == 0)
+ errx(EXIT_FAILURE, "missing -i option");
+ gpart_write_partcode(req, idx, partcode, partsize);
+ } else {
+ if (bootcode == NULL)
+ errx(EXIT_FAILURE, "no -b nor -p");
+ }
+
+ if (bootcode != NULL) {
+ s = gctl_issue(req);
+ if (s != NULL)
+ errx(EXIT_FAILURE, "%s", s);
+ }
}
==== //depot/projects/vap/sbin/geom/class/part/gpart.8#3 (text+ko) ====
@@ -1,4 +1,4 @@
-.\" Copyright (c) 2007 Marcel Moolenaar
+.\" Copyright (c) 2007, 2008 Marcel Moolenaar
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
@@ -22,9 +22,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/sbin/geom/class/part/gpart.8,v 1.2 2007/10/21 00:04:23 marcel Exp $
+.\" $FreeBSD: src/sbin/geom/class/part/gpart.8,v 1.4 2008/06/07 00:14:06 marcel Exp $
.\"
-.Dd Oct 20, 2007
+.Dd Jun 6, 2008
.Dt GPART 8
.Os
.Sh NAME
@@ -36,16 +36,24 @@
lines in your kernel configuration file:
.Bd -ragged -offset indent
.Cd "options GEOM_PART_APM"
+.Cd "options GEOM_PART_BSD"
.Cd "options GEOM_PART_GPT"
.Cd "options GEOM_PART_MBR"
+.Cd "options GEOM_PART_PC98"
+.Cd "options GEOM_PART_VTOC8"
.Ed
.Pp
The GEOM_PART_APM option adds support for the Apple Partition Map (APM)
found on Apple Macintosh computers.
+The GEOM_PART_BSD option adds support for the traditional BSD disklabel.
The GEOM_PART_GPT option adds support for the GUID Partition Table (GPT)
found on Intel Itanium computers and Intel-based Macintosh computers.
The GEOM_PART_MBR option adds support for the Master Boot Record (MBR)
found on PCs and used on many removable media.
+The GEOM_PART_PC98 option adds support for the MBR variant as used on
+NEC PC-98 computers.
+The GEOM_PART_VTOC8 option adds support for Sun's SMI VTOC8 label as
+found on UltraSPARC-based computers.
.Pp
Usage of the
.Xr gpart 8
@@ -61,6 +69,13 @@
.Op Fl l Ar label
.Op Fl f Ar flags
.Ar geom
+.\" ==== BOOTCODE ====
+.Nm
+.Cm bootcode
+.Op Fl b Ar bootcode
+.Op Fl p Ar partcode Fl i Ar index
+.Op Fl f Ar flags
+.Ar geom
.\" ==== COMMIT ====
.Nm
.Cm commit
@@ -122,7 +137,7 @@
Partition types are discussed in the section entitled "Partition Types".
.Pp
Addition options include:
-.Bl -tag -width ".Fl w Ar wwwwwww"
+.Bl -tag -width ".Fl w Ar wwwwwwww"
.It Fl i Ar index
The index in the partition table at which the new partition is to be
placed. The index determines the name of the device special file used
@@ -136,6 +151,36 @@
See the section entitled "Operational flags" below for a discussion
about its use.
.El
+.\" ==== BOOTCODE ====
+.It Cm bootcode
+Embed bootstrap code into the partitioning scheme's metadata on the
+.Ar geom
+(using
+.Fl b Ar bootcode )
+or write bootstrap code into a partition (using
+.Fl p Ar partcode
+and
+.Fl i Ar index ) .
+Not all partitioning schemes have embedded bootstrap code, so the
+.Fl b Ar bootcode
+option is scheme-specific in nature.
+For the GPT scheme, embedded bootstrap code is supported.
+The bootstrap code is embedded in the protective MBR rather than the GPT.
+The
+.Fl b Ar bootcode
+option specifies a file that contains the bootstrap code.
+The contents and size of the file are determined by the partitioning
+scheme.
+For the MBR scheme, it's a 512 byte file of which the first 446 bytes
+are installed as bootstrap code.
+The
+.Fl p Ar partcode
+option specifies a file that contains the bootstrap code intended to be
+written to a partition.
+The partition is specified by the
+.Fl i Ar index
+option.
+The size of the file must be smaller than the size of the partition.
.\" ==== COMMIT ====
.It Cm commit
Commit any pending changes for geom
==== //depot/projects/vap/sbin/geom/misc/subr.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/geom/misc/subr.c,v 1.7 2007/01/25 11:35:27 pjd Exp $");
+__FBSDID("$FreeBSD: src/sbin/geom/misc/subr.c,v 1.8 2008/06/06 22:44:03 marcel Exp $");
#include <sys/param.h>
#include <sys/disk.h>
@@ -414,3 +414,47 @@
}
return (ENOENT);
}
+
+int
+gctl_delete_param(struct gctl_req *req, const char *name)
+{
+ struct gctl_req_arg *ap;
+ unsigned int i;
+
+ if (req == NULL || req->error != NULL)
+ return (EDOOFUS);
+
+ i = 0;
+ while (i < req->narg) {
+ ap = &req->arg[i];
+ if (strcmp(ap->name, name) == 0)
+ break;
+ i++;
+ }
+ if (i == req->narg)
+ return (ENOENT);
+
+ req->narg--;
+ while (i < req->narg) {
+ req->arg[i] = req->arg[i + 1];
+ i++;
+ }
+ return (0);
+}
+
+int
+gctl_has_param(struct gctl_req *req, const char *name)
+{
+ struct gctl_req_arg *ap;
+ unsigned int i;
+
+ if (req == NULL || req->error != NULL)
+ return (0);
+
+ for (i = 0; i < req->narg; i++) {
+ ap = &req->arg[i];
+ if (strcmp(ap->name, name) == 0)
+ return (1);
+ }
+ return (0);
+}
==== //depot/projects/vap/sbin/geom/misc/subr.h#3 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sbin/geom/misc/subr.h,v 1.8 2007/01/25 11:35:27 pjd Exp $
+ * $FreeBSD: src/sbin/geom/misc/subr.h,v 1.9 2008/06/06 22:44:03 marcel Exp $
*/
#ifndef _SUBR_H_
@@ -47,4 +47,7 @@
const char *gctl_get_ascii(struct gctl_req *req, const char *pfmt, ...) __printflike(2, 3);
int gctl_change_param(struct gctl_req *req, const char *name, int len,
const void *value);
+int gctl_delete_param(struct gctl_req *req, const char *name);
+int gctl_has_param(struct gctl_req *req, const char *name);
+
#endif /* !_SUBR_H_ */
==== //depot/projects/vap/sbin/natd/natd.c#3 (text+ko) ====
@@ -11,7 +11,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/natd/natd.c,v 1.50 2006/09/26 23:26:51 piso Exp $");
+__FBSDID("$FreeBSD: src/sbin/natd/natd.c,v 1.51 2008/06/06 08:59:55 brian Exp $");
#define SYSLOG_NAMES
@@ -884,7 +884,7 @@
err(1, "iflist-sysctl-estimate");
if ((buf = malloc(needed)) == NULL)
errx(1, "malloc failed");
- if (sysctl(mib, 6, buf, &needed, NULL, 0) == -1)
+ if (sysctl(mib, 6, buf, &needed, NULL, 0) == -1 && errno != ENOMEM)
err(1, "iflist-sysctl-get");
lim = buf + needed;
/*
==== //depot/projects/vap/sys/arm/include/intr.h#7 (text+ko) ====
@@ -32,7 +32,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/arm/include/intr.h,v 1.8 2008/04/20 23:29:06 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/intr.h,v 1.9 2008/06/06 05:08:09 benno Exp $
*
*/
@@ -41,6 +41,9 @@
#ifdef CPU_XSCALE_81342
#define NIRQ 128
+#elif defined(CPU_XSCALE_PXA2X0)
+#include <arm/xscale/pxa/pxareg.h>
+#define NIRQ IRQ_GPIO_MAX
#elif defined(CPU_ARM9)
#define NIRQ 64
#else
==== //depot/projects/vap/sys/boot/common/ufsread.c#6 (text+ko) ====
@@ -44,7 +44,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/common/ufsread.c,v 1.17 2007/10/26 21:02:31 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/common/ufsread.c,v 1.18 2008/06/07 05:49:24 kib Exp $");
#include <ufs/ufs/dinode.h>
#include <ufs/ffs/fs.h>
@@ -249,7 +249,7 @@
} else if (lbn < NDADDR + NINDIR(fs)) {
n = INDIRPERVBLK(fs);
addr = DIP(di_ib[0]);
- u = (u_int)(lbn - NDADDR) / (n * DBPERVBLK);
+ u = (u_int)(lbn - NDADDR) / n * DBPERVBLK;
vbaddr = fsbtodb(fs, addr) + u;
if (indmap != vbaddr) {
if (dskread(indbuf, vbaddr, DBPERVBLK))
==== //depot/projects/vap/sys/boot/i386/libi386/biossmap.c#5 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biossmap.c,v 1.7 2007/10/28 21:23:49 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biossmap.c,v 1.8 2008/06/07 03:07:32 jhb Exp $");
/*
* Obtain memory configuration information from the BIOS
@@ -39,7 +39,10 @@
#include "libi386.h"
#include "btxv86.h"
-static struct bios_smap smap;
+static struct {
+ struct bios_smap _smap_entry;
+ char pad[8]; /* Bad BIOS writer, no cookie! */
+} smap;
static struct bios_smap *smapbase;
static int smaplen;
==== //depot/projects/vap/sys/conf/files#42 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1299 2008/05/18 19:47:49 jb Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1307 2008/06/06 05:00:49 benno Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -426,6 +426,7 @@
dev/advansys/adwcam.c optional adw
dev/advansys/adwlib.c optional adw
dev/advansys/adwmcode.c optional adw
+dev/age/if_age.c optional age pci
dev/agp/agp.c optional agp pci
dev/agp/agp_if.m optional agp pci
dev/aha/aha.c optional aha
@@ -671,28 +672,11 @@
dev/fxp/if_fxp.c optional fxp
dev/gem/if_gem.c optional gem
dev/gem/if_gem_pci.c optional gem pci
-#dev/harp/if_harp.c optional harp pci
dev/hatm/if_hatm.c optional hatm pci
dev/hatm/if_hatm_intr.c optional hatm pci
dev/hatm/if_hatm_ioctl.c optional hatm pci
dev/hatm/if_hatm_rx.c optional hatm pci
dev/hatm/if_hatm_tx.c optional hatm pci
-#dev/hfa/fore_buffer.c optional hfa
-#dev/hfa/fore_command.c optional hfa
-#dev/hfa/fore_globals.c optional hfa
-#dev/hfa/fore_if.c optional hfa
-#dev/hfa/fore_init.c optional hfa
-#dev/hfa/fore_intr.c optional hfa
-#dev/hfa/fore_output.c optional hfa
-#dev/hfa/fore_receive.c optional hfa
-#dev/hfa/fore_stats.c optional hfa
-#dev/hfa/fore_timer.c optional hfa
-#dev/hfa/fore_transmit.c optional hfa
-#dev/hfa/fore_vcm.c optional hfa
-##dev/hfa/hfa_eisa.c optional hfa eisa
-#dev/hfa/hfa_freebsd.c optional hfa
-#dev/hfa/hfa_pci.c optional hfa pci
-##dev/hfa/hfa_sbus.c optional hfa sbus
dev/hifn/hifn7751.c optional hifn
dev/hme/if_hme.c optional hme
dev/hme/if_hme_pci.c optional hme pci
@@ -866,6 +850,7 @@
compile-with "${NORMAL_C} -I$S/dev/ixgbe"
dev/ixgbe/ixgbe_82598.c optional ixgbe \
compile-with "${NORMAL_C} -I$S/dev/ixgbe"
+dev/jme/if_jme.c optional jme pci
dev/joy/joy.c optional joy
dev/joy/joy_isa.c optional joy isa
dev/joy/joy_pccard.c optional joy pccard
@@ -894,6 +879,7 @@
dev/mfi/mfi_cam.c optional mfip scbus
dev/mii/acphy.c optional miibus | acphy
dev/mii/amphy.c optional miibus | amphy
+dev/mii/atphy.c optional miibus | atphy
dev/mii/bmtphy.c optional miibus | bmtphy
dev/mii/brgphy.c optional miibus | brgphy
dev/mii/ciphy.c optional miibus | ciphy
@@ -905,6 +891,7 @@
# XXX only fxp cards?
dev/mii/inphy.c optional miibus | inphy
dev/mii/ip1000phy.c optional miibus | ip1000phy
+dev/mii/jmphy.c optional miibus | jmphy
dev/mii/lxtphy.c optional miibus | lxtphy
dev/mii/mii.c optional miibus | mii
dev/mii/mii_physubr.c optional miibus | mii
@@ -920,6 +907,7 @@
dev/mii/rlswitch.c optional rlswitch
# XXX rue only?
dev/mii/ruephy.c optional miibus | ruephy
+dev/mii/smcphy.c optional miibus | smcphy
dev/mii/tdkphy.c optional miibus | tdkphy
dev/mii/tlphy.c optional miibus | tlphy
dev/mii/ukphy.c optional miibus | mii
@@ -1126,6 +1114,7 @@
dev/smbus/smbconf.c optional smbus
dev/smbus/smbus.c optional smbus
dev/smbus/smbus_if.m optional smbus
+dev/smc/if_smc.c optional smc
dev/sn/if_sn.c optional sn
dev/sn/if_sn_isa.c optional sn isa
dev/sn/if_sn_pccard.c optional sn pccard
@@ -1536,62 +1525,6 @@
gnu/fs/reiserfs/reiserfs_vfsops.c optional reiserfs
gnu/fs/reiserfs/reiserfs_vnops.c optional reiserfs
#
-# isdn4bsd device drivers
-#
-i4b/driver/i4b_trace.c optional i4btrc
-i4b/driver/i4b_rbch.c optional i4brbch
-i4b/driver/i4b_tel.c optional i4btel
-#XXXBZ#i4b/driver/i4b_ipr.c optional i4bipr
-net/slcompress.c optional i4bipr | i4bisppp
-i4b/driver/i4b_ctl.c optional i4bctl
-#XXXBZ#i4b/driver/i4b_ing.c optional i4bing
-#XXXBZ#i4b/driver/i4b_isppp.c optional i4bisppp
-#
-# isdn4bsd CAPI driver
-#
-i4b/capi/capi_l4if.c optional i4bcapi
-i4b/capi/capi_llif.c optional i4bcapi
-i4b/capi/capi_msgs.c optional i4bcapi
-#
-# isdn4bsd AVM B1/T1 CAPI driver
-#
-i4b/capi/iavc/iavc_pci.c optional iavc i4bcapi pci
-i4b/capi/iavc/iavc_isa.c optional iavc i4bcapi isa
-i4b/capi/iavc/iavc_lli.c optional iavc i4bcapi
-i4b/capi/iavc/iavc_card.c optional iavc i4bcapi
-#
-# isdn4bsd support
-#
-i4b/layer2/i4b_mbuf.c optional i4btrc
-#
-# isdn4bsd Q.921 handler
-#
-i4b/layer2/i4b_l2.c optional i4bq921
-i4b/layer2/i4b_l2fsm.c optional i4bq921
-i4b/layer2/i4b_uframe.c optional i4bq921
-i4b/layer2/i4b_tei.c optional i4bq921
-i4b/layer2/i4b_sframe.c optional i4bq921
-i4b/layer2/i4b_iframe.c optional i4bq921
-i4b/layer2/i4b_l2timer.c optional i4bq921
-i4b/layer2/i4b_util.c optional i4bq921
-i4b/layer2/i4b_lme.c optional i4bq921
-#
-# isdn4bsd Q.931 handler
-#
-i4b/layer3/i4b_q931.c optional i4bq931
-i4b/layer3/i4b_l3fsm.c optional i4bq931
-i4b/layer3/i4b_l3timer.c optional i4bq931
-i4b/layer3/i4b_l2if.c optional i4bq931
-i4b/layer3/i4b_l4if.c optional i4bq931
-i4b/layer3/i4b_q932fac.c optional i4bq931
-#
-# isdn4bsd control device driver, interface to isdnd
-#
-i4b/layer4/i4b_i4bdrv.c optional i4b
-i4b/layer4/i4b_l4.c optional i4b
-i4b/layer4/i4b_l4mgmt.c optional i4b
-i4b/layer4/i4b_l4timer.c optional i4b
-#
isa/isa_if.m standard
isa/isa_common.c optional isa
isa/isahint.c optional isa
@@ -1687,6 +1620,7 @@
kern/subr_autoconf.c standard
kern/subr_blist.c standard
kern/subr_bus.c standard
+kern/subr_clist.c standard
kern/subr_clock.c standard
kern/subr_devstat.c standard
kern/subr_disk.c standard
@@ -1734,7 +1668,6 @@
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list