PERFORCE change 101341 for review
John Birrell
jb at FreeBSD.org
Wed Jul 12 08:46:22 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=101341
Change 101341 by jb at jb_freebsd2 on 2006/07/12 08:46:04
IFC
Affected files ...
.. //depot/projects/dtrace/src/MAINTAINERS#9 integrate
.. //depot/projects/dtrace/src/UPDATING#4 integrate
.. //depot/projects/dtrace/src/bin/dd/Makefile#3 integrate
.. //depot/projects/dtrace/src/contrib/wpa_supplicant/Makefile#3 edit
.. //depot/projects/dtrace/src/etc/rc.d/dhclient#3 integrate
.. //depot/projects/dtrace/src/games/fortune/datfiles/Makefile#3 integrate
.. //depot/projects/dtrace/src/games/fortune/datfiles/fortunes#8 integrate
.. //depot/projects/dtrace/src/lib/libthr/sys/thr_error.c#4 integrate
.. //depot/projects/dtrace/src/sbin/ifconfig/ifclone.c#3 integrate
.. //depot/projects/dtrace/src/sbin/ifconfig/ifconfig.c#3 integrate
.. //depot/projects/dtrace/src/sbin/ifconfig/ifconfig.h#3 integrate
.. //depot/projects/dtrace/src/sbin/ifconfig/ifvlan.c#3 integrate
.. //depot/projects/dtrace/src/share/man/man9/mac.9#3 integrate
.. //depot/projects/dtrace/src/share/man/man9/mutex.9#3 integrate
.. //depot/projects/dtrace/src/sys/amd64/amd64/identcpu.c#4 integrate
.. //depot/projects/dtrace/src/sys/amd64/conf/GENERIC#10 integrate
.. //depot/projects/dtrace/src/sys/amd64/include/specialreg.h#4 integrate
.. //depot/projects/dtrace/src/sys/amd64/linux32/linux32_proto.h#5 integrate
.. //depot/projects/dtrace/src/sys/amd64/linux32/linux32_syscall.h#5 integrate
.. //depot/projects/dtrace/src/sys/amd64/linux32/linux32_sysent.c#5 integrate
.. //depot/projects/dtrace/src/sys/amd64/linux32/syscalls.master#5 integrate
.. //depot/projects/dtrace/src/sys/arm/arm/pmap.c#8 integrate
.. //depot/projects/dtrace/src/sys/arm/at91/kb920x_machdep.c#5 integrate
.. //depot/projects/dtrace/src/sys/compat/freebsd32/freebsd32_misc.c#3 integrate
.. //depot/projects/dtrace/src/sys/compat/linux/linux_file.c#4 integrate
.. //depot/projects/dtrace/src/sys/compat/svr4/svr4_misc.c#3 integrate
.. //depot/projects/dtrace/src/sys/compat/svr4/svr4_proto.h#3 integrate
.. //depot/projects/dtrace/src/sys/compat/svr4/svr4_stream.c#3 integrate
.. //depot/projects/dtrace/src/sys/compat/svr4/svr4_syscall.h#3 integrate
.. //depot/projects/dtrace/src/sys/compat/svr4/svr4_syscallnames.c#3 integrate
.. //depot/projects/dtrace/src/sys/compat/svr4/svr4_sysent.c#3 integrate
.. //depot/projects/dtrace/src/sys/compat/svr4/svr4_util.h#3 integrate
.. //depot/projects/dtrace/src/sys/compat/svr4/syscalls.master#3 integrate
.. //depot/projects/dtrace/src/sys/conf/NOTES#11 integrate
.. //depot/projects/dtrace/src/sys/contrib/pf/net/if_pflog.c#3 integrate
.. //depot/projects/dtrace/src/sys/contrib/pf/net/if_pfsync.c#4 integrate
.. //depot/projects/dtrace/src/sys/dev/asr/MAINTAINER#3 delete
.. //depot/projects/dtrace/src/sys/dev/fdc/fdc.c#4 integrate
.. //depot/projects/dtrace/src/sys/dev/isp/isp_freebsd.c#5 integrate
.. //depot/projects/dtrace/src/sys/dev/isp/isp_freebsd.h#6 integrate
.. //depot/projects/dtrace/src/sys/dev/isp/isp_pci.c#6 integrate
.. //depot/projects/dtrace/src/sys/dev/isp/isp_sbus.c#4 integrate
.. //depot/projects/dtrace/src/sys/dev/isp/isp_target.c#4 integrate
.. //depot/projects/dtrace/src/sys/dev/ispfw/asm_1040.h#3 integrate
.. //depot/projects/dtrace/src/sys/dev/ispfw/asm_1080.h#3 integrate
.. //depot/projects/dtrace/src/sys/dev/ispfw/asm_12160.h#3 integrate
.. //depot/projects/dtrace/src/sys/dev/ispfw/ispfw.c#4 integrate
.. //depot/projects/dtrace/src/sys/dev/sound/midi/sequencer.c#3 integrate
.. //depot/projects/dtrace/src/sys/geom/mirror/g_mirror.c#6 integrate
.. //depot/projects/dtrace/src/sys/geom/raid3/g_raid3.c#9 integrate
.. //depot/projects/dtrace/src/sys/i386/conf/GENERIC#12 integrate
.. //depot/projects/dtrace/src/sys/i386/conf/PAE#4 integrate
.. //depot/projects/dtrace/src/sys/i386/i386/identcpu.c#4 integrate
.. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_misc.c#4 integrate
.. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_proto.h#4 integrate
.. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_syscall.h#4 integrate
.. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_sysent.c#4 integrate
.. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_util.h#3 integrate
.. //depot/projects/dtrace/src/sys/i386/ibcs2/ibcs2_xenix.c#4 integrate
.. //depot/projects/dtrace/src/sys/i386/ibcs2/imgact_coff.c#3 integrate
.. //depot/projects/dtrace/src/sys/i386/ibcs2/syscalls.master#4 integrate
.. //depot/projects/dtrace/src/sys/i386/include/i4b_ioctl.h#3 integrate
.. //depot/projects/dtrace/src/sys/i386/include/specialreg.h#4 integrate
.. //depot/projects/dtrace/src/sys/i386/linux/linux_proto.h#5 integrate
.. //depot/projects/dtrace/src/sys/i386/linux/linux_syscall.h#5 integrate
.. //depot/projects/dtrace/src/sys/i386/linux/linux_sysent.c#5 integrate
.. //depot/projects/dtrace/src/sys/i386/linux/syscalls.master#5 integrate
.. //depot/projects/dtrace/src/sys/i4b/layer4/i4b_l4mgmt.c#3 integrate
.. //depot/projects/dtrace/src/sys/ia64/conf/GENERIC#4 integrate
.. //depot/projects/dtrace/src/sys/kern/init_sysent.c#6 integrate
.. //depot/projects/dtrace/src/sys/kern/kern_environment.c#4 integrate
.. //depot/projects/dtrace/src/sys/kern/kern_linker.c#16 integrate
.. //depot/projects/dtrace/src/sys/kern/kern_thr.c#4 integrate
.. //depot/projects/dtrace/src/sys/kern/subr_hints.c#3 integrate
.. //depot/projects/dtrace/src/sys/kern/syscalls.c#5 integrate
.. //depot/projects/dtrace/src/sys/kern/syscalls.master#5 integrate
.. //depot/projects/dtrace/src/sys/kern/uipc_domain.c#4 integrate
.. //depot/projects/dtrace/src/sys/kern/uipc_socket.c#5 integrate
.. //depot/projects/dtrace/src/sys/kern/uipc_socket2.c#5 integrate
.. //depot/projects/dtrace/src/sys/kern/uipc_syscalls.c#5 integrate
.. //depot/projects/dtrace/src/sys/kern/uipc_usrreq.c#6 integrate
.. //depot/projects/dtrace/src/sys/kern/vfs_syscalls.c#4 integrate
.. //depot/projects/dtrace/src/sys/modules/ispfw/Makefile#3 integrate
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_1000/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_1040/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_1040_it/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_1080/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_1080_it/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_12160/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_12160_it/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_2100/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_2200/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_2300/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/isp_2322/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/modules/ispfw/ispfw/Makefile#1 branch
.. //depot/projects/dtrace/src/sys/net/if.c#4 integrate
.. //depot/projects/dtrace/src/sys/net/if_bridge.c#7 integrate
.. //depot/projects/dtrace/src/sys/net/if_clone.c#3 integrate
.. //depot/projects/dtrace/src/sys/net/if_clone.h#3 integrate
.. //depot/projects/dtrace/src/sys/net/if_disc.c#3 integrate
.. //depot/projects/dtrace/src/sys/net/if_enc.c#3 integrate
.. //depot/projects/dtrace/src/sys/net/if_faith.c#3 integrate
.. //depot/projects/dtrace/src/sys/net/if_gif.c#4 integrate
.. //depot/projects/dtrace/src/sys/net/if_gre.c#4 integrate
.. //depot/projects/dtrace/src/sys/net/if_loop.c#4 integrate
.. //depot/projects/dtrace/src/sys/net/if_ppp.c#3 integrate
.. //depot/projects/dtrace/src/sys/net/if_stf.c#4 integrate
.. //depot/projects/dtrace/src/sys/net/if_vlan.c#3 integrate
.. //depot/projects/dtrace/src/sys/netinet/ip_carp.c#4 integrate
.. //depot/projects/dtrace/src/sys/pc98/conf/GENERIC#5 integrate
.. //depot/projects/dtrace/src/sys/posix4/ksched.c#6 integrate
.. //depot/projects/dtrace/src/sys/posix4/p1003_1b.c#4 integrate
.. //depot/projects/dtrace/src/sys/posix4/posix4.h#3 integrate
.. //depot/projects/dtrace/src/sys/powerpc/powerpc/mmu_oea.c#4 integrate
.. //depot/projects/dtrace/src/sys/security/mac_biba/mac_biba.c#3 integrate
.. //depot/projects/dtrace/src/sys/sparc64/conf/GENERIC#6 integrate
.. //depot/projects/dtrace/src/sys/sys/protosw.h#4 integrate
.. //depot/projects/dtrace/src/sys/sys/sockio.h#3 integrate
.. //depot/projects/dtrace/src/sys/sys/syscall.h#5 integrate
.. //depot/projects/dtrace/src/sys/sys/syscall.mk#5 integrate
.. //depot/projects/dtrace/src/sys/sys/syscallsubr.h#4 integrate
.. //depot/projects/dtrace/src/sys/sys/sysproto.h#5 integrate
.. //depot/projects/dtrace/src/sys/sys/systm.h#5 integrate
.. //depot/projects/dtrace/src/sys/sys/thr.h#3 integrate
.. //depot/projects/dtrace/src/sys/ufs/ffs/ffs_vfsops.c#8 integrate
.. //depot/projects/dtrace/src/sys/ufs/ufs/ufs_lookup.c#3 integrate
.. //depot/projects/dtrace/src/sys/vm/vm_meter.c#5 integrate
.. //depot/projects/dtrace/src/tools/regression/fifo/fifo_create/Makefile#3 integrate
.. //depot/projects/dtrace/src/tools/regression/fifo/fifo_io/Makefile#3 integrate
.. //depot/projects/dtrace/src/tools/regression/fifo/fifo_misc/Makefile#3 integrate
.. //depot/projects/dtrace/src/tools/regression/fifo/fifo_open/Makefile#3 integrate
.. //depot/projects/dtrace/src/tools/regression/file/ftruncate/Makefile#1 branch
.. //depot/projects/dtrace/src/tools/regression/file/ftruncate/ftruncate.c#1 branch
.. //depot/projects/dtrace/src/tools/regression/lib/libc/resolv/Makefile#3 edit
.. //depot/projects/dtrace/src/tools/regression/netinet/msocket_ifnet_remove/Makefile#3 integrate
.. //depot/projects/dtrace/src/tools/regression/netinet/tcpdrop/Makefile#2 integrate
.. //depot/projects/dtrace/src/tools/regression/netinet/tcpsockclosebeforeaccept/Makefile#2 integrate
.. //depot/projects/dtrace/src/tools/regression/netinet/tcpsocktimewait/Makefile#2 integrate
.. //depot/projects/dtrace/src/tools/regression/netipx/ipxdgramloopback/Makefile#2 integrate
.. //depot/projects/dtrace/src/tools/regression/netipx/spxabort/Makefile#2 integrate
.. //depot/projects/dtrace/src/tools/regression/netipx/spxloopback/Makefile#2 integrate
.. //depot/projects/dtrace/src/tools/regression/sockets/listen_backlog/Makefile#3 integrate
.. //depot/projects/dtrace/src/tools/regression/sockets/rtsocket/Makefile#2 integrate
.. //depot/projects/dtrace/src/tools/regression/sockets/sendfile/Makefile#2 integrate
.. //depot/projects/dtrace/src/tools/regression/sockets/socketpair/Makefile#3 integrate
.. //depot/projects/dtrace/src/tools/regression/sockets/unix_bindconnect/Makefile#3 integrate
.. //depot/projects/dtrace/src/tools/regression/sockets/unix_passfd/Makefile#3 integrate
.. //depot/projects/dtrace/src/tools/regression/sockets/unix_socket/Makefile#2 integrate
.. //depot/projects/dtrace/src/tools/regression/ufs/uprintf/Makefile#3 integrate
.. //depot/projects/dtrace/src/usr.bin/csup/Makefile#2 edit
.. //depot/projects/dtrace/src/usr.sbin/i4b/isdnd/controller.c#4 integrate
.. //depot/projects/dtrace/src/usr.sbin/i4b/isdnd/main.c#4 integrate
.. //depot/projects/dtrace/src/usr.sbin/i4b/isdndebug/main.c#3 integrate
.. //depot/projects/dtrace/src/usr.sbin/i4b/isdnmonitor/main.c#3 integrate
.. //depot/projects/dtrace/src/usr.sbin/i4b/isdnphone/main.c#3 integrate
.. //depot/projects/dtrace/src/usr.sbin/i4b/isdntelctl/main.c#3 integrate
.. //depot/projects/dtrace/src/usr.sbin/i4b/isdntest/main.c#4 integrate
Differences ...
==== //depot/projects/dtrace/src/MAINTAINERS#9 (text+ko) ====
@@ -1,4 +1,4 @@
-$FreeBSD: src/MAINTAINERS,v 1.137 2006/07/04 02:01:48 brooks Exp $
+$FreeBSD: src/MAINTAINERS,v 1.139 2006/07/11 06:09:54 mjacob Exp $
Please note that the content of this file is strictly advisory.
No locks listed here are valid. The only strict review requirements
@@ -51,7 +51,6 @@
pass(4) ken Pre-commit review requested.
ch(4) ken Pre-commit review requested.
isp(4) mjacob Pre-commit review requested.
-mpt(4) mjacob Pre-commit review requested.
em(4) tackerman Pre-commit review requested.
tdfx(4) cokane Just keep me informed of changes, try not to break it.
sendmail gshapiro Pre-commit review requested.
@@ -135,11 +134,7 @@
List below generated with:
$ cd /usr/src; find */* -type f|xargs egrep 'MAINTAINER[ <tab>]*='
-bin/dd/Makefile:MAINTAINER= green at FreeBSD.org
-games/fortune/datfiles/Makefile:MAINTAINER= jkh
-gnu/usr.bin/man/apropos/Makefile:MAINTAINER= wosch
sys/modules/3dfx/Makefile:MAINTAINER= cokane at FreeBSD.org
sys/modules/urio/Makefile:MAINTAINER= Iwasa Kazmi <kzmi at ca2.so-net.ne.jp>
tools/tools/sysdoc/Makefile:MAINTAINER= trhodes at FreeBSD.org
-usr.bin/locate/Makefile:MAINTAINER= wosch
usr.sbin/zic/Makefile:MAINTAINER= wollman at FreeBSD.org
==== //depot/projects/dtrace/src/UPDATING#4 (text+ko) ====
@@ -21,6 +21,12 @@
developers choose to disable these features on build machines
to maximize performance.
+20060709:
+ The interface version of the i4b kernel part has changed. So
+ after updating the kernel sources and compiling a new kernel,
+ the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
+ be rebuilt, and vice versa.
+
20060627:
The XBOX kernel now defaults to the nfe(4) driver instead of
the nve(4) driver. Please update your configuration
@@ -585,4 +591,4 @@
Contact Warner Losh if you have any questions about your use of
this document.
-$FreeBSD: src/UPDATING,v 1.450 2006/06/27 20:22:32 rink Exp $
+$FreeBSD: src/UPDATING,v 1.451 2006/07/09 21:16:06 twinterg Exp $
==== //depot/projects/dtrace/src/bin/dd/Makefile#3 (text+ko) ====
@@ -1,7 +1,5 @@
# @(#)Makefile 8.1 (Berkeley) 5/31/93
-# $FreeBSD: src/bin/dd/Makefile,v 1.18 2004/04/09 07:13:27 njl Exp $
-
-MAINTAINER= green at FreeBSD.org
+# $FreeBSD: src/bin/dd/Makefile,v 1.19 2006/07/09 21:47:37 markm Exp $
PROG= dd
SRCS= args.c conv.c conv_tab.c dd.c misc.c position.c
==== //depot/projects/dtrace/src/contrib/wpa_supplicant/Makefile#3 (text+ko) ====
@@ -281,8 +281,7 @@
# PC/SC interface for smartcards (USIM, GSM SIM)
CFLAGS += -DPCSC_FUNCS -I/usr/include/PCSC
OBJS += pcsc_funcs.o
-# -lpthread may not be needed depending on how pcsc-lite was configured
-LIBS += -lpcsclite -lpthread
+LIBS += -lpcsclite
endif
ifndef CONFIG_TLS
==== //depot/projects/dtrace/src/etc/rc.d/dhclient#3 (text+ko) ====
@@ -1,7 +1,7 @@
#!/bin/sh
#
# $NetBSD: dhclient,v 1.8 2002/03/22 04:33:58 thorpej Exp $
-# $FreeBSD: src/etc/rc.d/dhclient,v 1.21 2005/07/26 00:37:19 brooks Exp $
+# $FreeBSD: src/etc/rc.d/dhclient,v 1.22 2006/07/09 06:54:24 stefanf Exp $
#
# PROVIDE: dhclient
@@ -18,7 +18,7 @@
dhclient_start()
{
- # prevent unnecessicary restarts
+ # prevent unnecessary restarts
# XXX: should use a pidfile
if [ -x /usr/bin/pgrep ]; then
pids=`/usr/bin/pgrep -f "dhclient: $ifn(\$| .*)"`
==== //depot/projects/dtrace/src/games/fortune/datfiles/Makefile#3 (text+ko) ====
@@ -1,15 +1,10 @@
# @(#)Makefile 8.2 (Berkeley) 4/19/94
-# $FreeBSD: src/games/fortune/datfiles/Makefile,v 1.33 2005/02/03 00:20:36 ru Exp $
+# $FreeBSD: src/games/fortune/datfiles/Makefile,v 1.34 2006/07/09 20:26:36 markm Exp $
FILES= fortunes freebsd-tips murphy startrek zippy
BLDS= fortunes.dat murphy.dat startrek.dat zippy.dat \
fortunes-o fortunes-o.dat freebsd-tips.dat
-# Pass all new entries by ${MAINTAINER} to preserve some semblance of
-# humor in the fortune files. What's funny to you on 6 beers may not
-# be funny to anyone else.
-MAINTAINER= jkh
-
# TO AVOID INSTALLING THE POTENTIALLY OFFENSIVE FORTUNES, COMMENT OUT THE
# THREE LINES AND UNCOMMENT THE FOURTH LINE.
==== //depot/projects/dtrace/src/games/fortune/datfiles/fortunes#8 (text+ko) ====
@@ -1,5 +1,5 @@
This fortune brought to you by:
-$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.221 2006/06/20 08:34:36 phk Exp $
+$FreeBSD: src/games/fortune/datfiles/fortunes,v 1.223 2006/07/10 16:53:32 phk Exp $
%
=======================================================================
@@ -29705,6 +29705,10 @@
remember.
-- Eugene McCarthy
%
+It is difficult to get a man to understand something when his salary
+depends upon his not understanding it.
+ -- Upton Sinclair
+%
It is difficult to legislate morality in the absence of moral legislators.
%
It is difficult to produce a television documentary that is both
==== //depot/projects/dtrace/src/lib/libthr/sys/thr_error.c#4 (text+ko) ====
@@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/lib/libthr/sys/thr_error.c,v 1.2 2005/04/02 01:20:00 davidxu Exp $
+ * $FreeBSD: src/lib/libthr/sys/thr_error.c,v 1.3 2006/07/12 03:44:05 davidxu Exp $
*/
#include <pthread.h>
@@ -52,5 +52,6 @@
if (curthread != NULL && curthread != _thr_initial)
return (&curthread->error);
} else
- return (&errno);
+ }
+ return (&errno);
}
==== //depot/projects/dtrace/src/sbin/ifconfig/ifclone.c#3 (text+ko) ====
@@ -29,7 +29,7 @@
#ifndef lint
static const char rcsid[] =
- "$FreeBSD: src/sbin/ifconfig/ifclone.c,v 1.1 2004/12/08 19:18:07 sam Exp $";
+ "$FreeBSD: src/sbin/ifconfig/ifclone.c,v 1.2 2006/07/09 06:10:23 sam Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -88,48 +88,62 @@
free(buf);
}
+static clone_callback_func *clone_cb = NULL;
+
void
-clone_create(void)
+clone_setcallback(clone_callback_func *p)
{
- int s;
+ if (clone_cb != NULL && clone_cb != p)
+ errx(1, "conflicting device create parameters");
+ clone_cb = p;
+}
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s == -1)
- err(1, "socket(AF_INET,SOCK_DGRAM)");
+/*
+ * Do the actual clone operation. Any parameters must have been
+ * setup by now. If a callback has been setup to do the work
+ * then defer to it; otherwise do a simple create operation with
+ * no parameters.
+ */
+static void
+ifclonecreate(int s, void *arg)
+{
+ struct ifreq ifr;
memset(&ifr, 0, sizeof(ifr));
(void) strlcpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
- if (ioctl(s, SIOCIFCREATE, &ifr) < 0)
- err(1, "SIOCIFCREATE");
+ if (clone_cb == NULL) {
+ /* NB: no parameters */
+ if (ioctl(s, SIOCIFCREATE2, &ifr) < 0)
+ err(1, "SIOCIFCREATE2");
+ } else {
+ clone_cb(s, &ifr);
+ }
/*
- * If we get a different name back then we put in, we probably
- * want to print it out, but we might change our mind later so
- * we just signal our intrest and leave the printout for later.
+ * If we get a different name back than we put in, print it.
*/
- if (strcmp(name, ifr.ifr_name) != 0) {
- printname = 1;
+ if (strncmp(name, ifr.ifr_name, sizeof(name)) != 0) {
strlcpy(name, ifr.ifr_name, sizeof(name));
+ printf("%s\n", name);
}
+}
- close(s);
+static
+DECL_CMD_FUNC(clone_create, arg, d)
+{
+ callback_register(ifclonecreate, NULL);
}
-static void
-clone_destroy(const char *val, int d, int s, const struct afswtch *rafp)
+static
+DECL_CMD_FUNC(clone_destroy, arg, d)
{
-
(void) strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name));
if (ioctl(s, SIOCIFDESTROY, &ifr) < 0)
err(1, "SIOCIFDESTROY");
- /*
- * If we create and destroy an interface in the same command,
- * there isn't any reason to print it's name.
- */
- printname = 0;
}
static struct cmd clone_cmds[] = {
+ DEF_CMD("create", 0, clone_create),
DEF_CMD("destroy", 0, clone_destroy),
DEF_CMD("unplumb", 0, clone_destroy),
};
==== //depot/projects/dtrace/src/sbin/ifconfig/ifconfig.c#3 (text+ko) ====
@@ -38,7 +38,7 @@
static char sccsid[] = "@(#)ifconfig.c 8.2 (Berkeley) 2/16/94";
#endif
static const char rcsid[] =
- "$FreeBSD: src/sbin/ifconfig/ifconfig.c,v 1.119 2006/03/12 14:00:15 glebius Exp $";
+ "$FreeBSD: src/sbin/ifconfig/ifconfig.c,v 1.120 2006/07/09 06:10:23 sam Exp $";
#endif /* not lint */
#include <sys/param.h>
@@ -92,7 +92,6 @@
int supmedia = 0;
int printkeys = 0; /* Print keying material for interfaces. */
-int printname = 0; /* Print the name of the created interface. */
static int ifconfig(int argc, char *const *argv, const struct afswtch *afp);
static void status(const struct afswtch *afp, int addrcount,
@@ -234,21 +233,20 @@
/* check and maybe load support for this interface */
ifmaybeload(name);
- /*
- * NOTE: We must special-case the `create' command right
- * here as we would otherwise fail when trying to find
- * the interface.
- */
- if (argc > 0 && (strcmp(argv[0], "create") == 0 ||
- strcmp(argv[0], "plumb") == 0)) {
- clone_create();
- argc--, argv++;
- if (argc == 0)
- goto end;
- }
ifindex = if_nametoindex(name);
- if (ifindex == 0)
+ if (ifindex == 0) {
+ /*
+ * NOTE: We must special-case the `create' command
+ * right here as we would otherwise fail when trying
+ * to find the interface.
+ */
+ if (argc > 0 && (strcmp(argv[0], "create") == 0 ||
+ strcmp(argv[0], "plumb") == 0)) {
+ ifconfig(argc, argv, NULL);
+ exit(0);
+ }
errx(1, "interface %s does not exist", name);
+ }
}
/* Check for address family */
@@ -356,9 +354,6 @@
if (namesonly && need_nl > 0)
putchar('\n');
-end:
- if (printname)
- printf("%s\n", name);
exit (0);
}
@@ -782,12 +777,6 @@
}
strlcpy(name, newname, sizeof(name));
free(newname);
-
- /*
- * Even if we just created the interface, we don't need to print
- * its name because we just nailed it down separately.
- */
- printname = 0;
}
/*
==== //depot/projects/dtrace/src/sbin/ifconfig/ifconfig.h#3 (text+ko) ====
@@ -31,7 +31,7 @@
*
* so there!
*
- * $FreeBSD: src/sbin/ifconfig/ifconfig.h,v 1.17 2005/07/14 18:33:21 rwatson Exp $
+ * $FreeBSD: src/sbin/ifconfig/ifconfig.h,v 1.18 2006/07/09 06:10:23 sam Exp $
*/
#define __constructor __attribute__((constructor))
@@ -127,7 +127,6 @@
extern int allmedia;
extern int supmedia;
extern int printkeys;
-extern int printname;
extern int flags;
extern int newaddr;
extern int verbose;
@@ -140,4 +139,5 @@
void ifmaybeload(char *name);
-void clone_create(void);
+typedef void clone_callback_func(int, struct ifreq *);
+void clone_setcallback(clone_callback_func *);
==== //depot/projects/dtrace/src/sbin/ifconfig/ifvlan.c#3 (text+ko) ====
@@ -56,95 +56,119 @@
#ifndef lint
static const char rcsid[] =
- "$FreeBSD: src/sbin/ifconfig/ifvlan.c,v 1.11 2006/03/09 14:58:09 yar Exp $";
+ "$FreeBSD: src/sbin/ifconfig/ifvlan.c,v 1.12 2006/07/09 06:10:23 sam Exp $";
#endif
-static struct vlanreq __vreq;
-static int __have_dev = 0;
-static int __have_tag = 0;
+
+#define NOTAG ((u_short) -1)
+
+static struct vlanreq params = {
+ .vlr_tag = NOTAG,
+};
+
+static int
+getvlan(int s, struct ifreq *ifr, struct vlanreq *vreq)
+{
+ bzero((char *)vreq, sizeof(*vreq));
+ ifr->ifr_data = (caddr_t)vreq;
-static void vlan_set(int);
+ return ioctl(s, SIOCGETVLAN, (caddr_t)ifr);
+}
static void
vlan_status(int s)
{
struct vlanreq vreq;
- bzero((char *)&vreq, sizeof(vreq));
- ifr.ifr_data = (caddr_t)&vreq;
+ if (getvlan(s, &ifr, &vreq) != -1)
+ printf("\tvlan: %d parent interface: %s\n",
+ vreq.vlr_tag, vreq.vlr_parent[0] == '\0' ?
+ "<none>" : vreq.vlr_parent);
+}
- if (ioctl(s, SIOCGETVLAN, (caddr_t)&ifr) == -1)
- return;
+static void
+vlan_create(int s, struct ifreq *ifr)
+{
+ if (params.vlr_tag != NOTAG || params.vlr_parent[0] != '\0') {
+ /*
+ * One or both parameters were specified, make sure both.
+ */
+ if (params.vlr_tag == NOTAG)
+ errx(1, "must specify a tag for vlan create");
+ if (params.vlr_parent[0] == '\0')
+ errx(1, "must specify a parent device for vlan create");
+ ifr->ifr_data = (caddr_t) ¶ms;
+ }
+ if (ioctl(s, SIOCIFCREATE2, ifr) < 0)
+ err(1, "SIOCIFCREATE2");
+}
- printf("\tvlan: %d parent interface: %s\n",
- vreq.vlr_tag, vreq.vlr_parent[0] == '\0' ?
- "<none>" : vreq.vlr_parent);
+static void
+vlan_cb(int s, void *arg)
+{
+ if ((params.vlr_tag != NOTAG) ^ (params.vlr_parent[0] != '\0'))
+ errx(1, "both vlan and vlandev must be specified");
}
static void
-setvlantag(const char *val, int d, int s, const struct afswtch *afp)
+vlan_set(int s, struct ifreq *ifr)
+{
+ if (params.vlr_tag != NOTAG && params.vlr_parent[0] != '\0') {
+ ifr->ifr_data = (caddr_t) ¶ms;
+ if (ioctl(s, SIOCSETVLAN, (caddr_t)ifr) == -1)
+ err(1, "SIOCSETVLAN");
+ }
+}
+
+static
+DECL_CMD_FUNC(setvlantag, val, d)
{
- char *endp;
- u_long ul;
+ struct vlanreq vreq;
+ u_long ul;
+ char *endp;
ul = strtoul(val, &endp, 0);
if (*endp != '\0')
errx(1, "invalid value for vlan");
- __vreq.vlr_tag = ul;
+ params.vlr_tag = ul;
/* check if the value can be represented in vlr_tag */
- if (__vreq.vlr_tag != ul)
+ if (params.vlr_tag != ul)
errx(1, "value for vlan out of range");
- /* the kernel will do more specific checks on vlr_tag */
- __have_tag = 1;
- vlan_set(s); /* try setting vlan params in kernel */
+
+ if (getvlan(s, &ifr, &vreq) != -1)
+ vlan_set(s, &ifr);
+ else
+ clone_setcallback(vlan_create);
}
-static void
-setvlandev(const char *val, int d, int s, const struct afswtch *afp)
+static
+DECL_CMD_FUNC(setvlandev, val, d)
{
+ struct vlanreq vreq;
+
+ strlcpy(params.vlr_parent, val, sizeof(params.vlr_parent));
- strncpy(__vreq.vlr_parent, val, sizeof(__vreq.vlr_parent));
- __have_dev = 1;
- vlan_set(s); /* try setting vlan params in kernel */
+ if (getvlan(s, &ifr, &vreq) != -1)
+ vlan_set(s, &ifr);
+ else
+ clone_setcallback(vlan_create);
}
-static void
-unsetvlandev(const char *val, int d, int s, const struct afswtch *afp)
+static
+DECL_CMD_FUNC(unsetvlandev, val, d)
{
+ struct vlanreq vreq;
- if (val != NULL)
- warnx("argument to -vlandev is useless and hence deprecated");
+ bzero((char *)&vreq, sizeof(struct vlanreq));
+ ifr.ifr_data = (caddr_t)&vreq;
- bzero((char *)&__vreq, sizeof(__vreq));
- ifr.ifr_data = (caddr_t)&__vreq;
-#if 0 /* this code will be of use when we can alter vlan or vlandev only */
if (ioctl(s, SIOCGETVLAN, (caddr_t)&ifr) == -1)
err(1, "SIOCGETVLAN");
- bzero((char *)&__vreq.vlr_parent, sizeof(__vreq.vlr_parent));
- __vreq.vlr_tag = 0; /* XXX clear parent only (no kernel support now) */
-#endif
+ bzero((char *)&vreq.vlr_parent, sizeof(vreq.vlr_parent));
+ vreq.vlr_tag = 0;
+
if (ioctl(s, SIOCSETVLAN, (caddr_t)&ifr) == -1)
err(1, "SIOCSETVLAN");
- __have_dev = __have_tag = 0;
-}
-
-static void
-vlan_cb(int s, void *arg)
-{
-
- if (__have_tag ^ __have_dev)
- errx(1, "both vlan and vlandev must be specified");
-}
-
-static void
-vlan_set(int s)
-{
-
- if (__have_tag && __have_dev) {
- ifr.ifr_data = (caddr_t)&__vreq;
- if (ioctl(s, SIOCSETVLAN, (caddr_t)&ifr) == -1)
- err(1, "SIOCSETVLAN");
- }
}
static struct cmd vlan_cmds[] = {
==== //depot/projects/dtrace/src/share/man/man9/mac.9#3 (text+ko) ====
@@ -31,9 +31,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/mac.9,v 1.15 2005/06/28 20:15:18 hmp Exp $
+.\" $FreeBSD: src/share/man/man9/mac.9,v 1.17 2006/07/11 16:26:40 joel Exp $
.\"
-.Dd February 16, 2002
+.Dd July 10, 2006
.Dt MAC 9
.Os
.Sh NAME
@@ -152,7 +152,7 @@
policies.
.Sh ENTRY POINTS
System service and module authors should reference the
-.%T "FreeBSD Developer's Handbook"
+.%T "FreeBSD Architecture Handbook"
for information on the MAC Framework APIs.
.Sh SEE ALSO
.Xr acl 3 ,
@@ -172,8 +172,8 @@
.Xr vaccess_acl_posix1e 9 ,
.Xr VFS 9
.Rs
-.%T "The FreeBSD Developers' Handbook"
-.%O "http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/"
+.%T "The FreeBSD Architecture Handbook"
+.%O "http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/arch-handbook/"
.Re
.Sh HISTORY
The
==== //depot/projects/dtrace/src/share/man/man9/mutex.9#3 (text+ko) ====
@@ -26,7 +26,7 @@
.\" SUCH DAMAGE.
.\"
.\" from BSDI $Id: mutex.4,v 1.1.2.3 1998/04/27 22:53:13 ewv Exp $
-.\" $FreeBSD: src/share/man/man9/mutex.9,v 1.49 2006/02/01 20:30:55 glebius Exp $
+.\" $FreeBSD: src/share/man/man9/mutex.9,v 1.50 2006/07/09 09:46:43 maxim Exp $
.\"
.Dd February 1, 2006
.Dt MUTEX 9
@@ -91,7 +91,7 @@
.Ft void
.Fn mtx_assert "struct mtx *mutex" "int what"
.In sys/kernel.h
-.Fn MTX_SYSINIT "name" "struct mutex *mtx" "const char *description" "int opts"
+.Fn MTX_SYSINIT "name" "struct mtx *mtx" "const char *description" "int opts"
.Sh DESCRIPTION
Mutexes are the most basic and primary method of thread synchronization.
The major design considerations for mutexes are:
==== //depot/projects/dtrace/src/sys/amd64/amd64/identcpu.c#4 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.146 2006/04/24 22:56:57 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.147 2006/07/12 06:04:11 jkim Exp $");
#include "opt_cpu.h"
@@ -306,8 +306,8 @@
"\020"
"\001LAHF" /* LAHF/SAHF in long mode */
"\002CMP" /* CMP legacy */
- "\003<b2>"
- "\004<b3>"
+ "\003SVM" /* Secure Virtual Mode */
+ "\004ExtAPIC" /* Extended APIC register */
"\005CR8" /* CR8 in legacy mode */
"\006<b5>"
"\007<b6>"
==== //depot/projects/dtrace/src/sys/amd64/conf/GENERIC#10 (text+ko) ====
@@ -16,7 +16,7 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.463 2006/07/05 02:32:55 davidxu Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.464 2006/07/09 16:39:21 mjacob Exp $
cpu HAMMER
ident GENERIC
@@ -251,6 +251,7 @@
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
+device firmware # firmware assist module
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
==== //depot/projects/dtrace/src/sys/amd64/include/specialreg.h#4 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* from: @(#)specialreg.h 7.1 (Berkeley) 5/9/91
- * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.33 2006/05/01 22:07:00 jhb Exp $
+ * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.34 2006/07/12 06:04:11 jkim Exp $
*/
#ifndef _MACHINE_SPECIALREG_H_
@@ -135,6 +135,8 @@
#define AMDID2_LAHF 0x00000001
#define AMDID2_CMP 0x00000002
+#define AMDID2_SVM 0x00000004
+#define AMDID2_EXT_APIC 0x00000008
#define AMDID2_CR8 0x00000010
/*
==== //depot/projects/dtrace/src/sys/amd64/linux32/linux32_proto.h#5 (text+ko) ====
@@ -2,8 +2,8 @@
* System call prototypes.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.17 2006/07/06 21:43:14 jhb Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.18 2006/07/11 20:55:22 jhb Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.16 2006/07/11 20:52:07 jhb Exp
*/
#ifndef _LINUX_SYSPROTO_H_
==== //depot/projects/dtrace/src/sys/amd64/linux32/linux32_syscall.h#5 (text+ko) ====
@@ -2,8 +2,8 @@
* System call numbers.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.17 2006/07/06 21:43:14 jhb Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.18 2006/07/11 20:55:22 jhb Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.16 2006/07/11 20:52:07 jhb Exp
*/
#define LINUX_SYS_exit 1
==== //depot/projects/dtrace/src/sys/amd64/linux32/linux32_sysent.c#5 (text+ko) ====
@@ -2,8 +2,8 @@
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.17 2006/07/06 21:43:14 jhb Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.18 2006/07/11 20:55:22 jhb Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.16 2006/07/11 20:52:07 jhb Exp
*/
#include <bsm/audit_kevents.h>
@@ -109,7 +109,7 @@
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 86 = linux_uselib */
{ SYF_MPSAFE | AS(swapon_args), (sy_call_t *)swapon, AUE_SWAPON }, /* 87 = swapon */
{ SYF_MPSAFE | AS(linux_reboot_args), (sy_call_t *)linux_reboot, AUE_REBOOT }, /* 88 = linux_reboot */
- { AS(linux_readdir_args), (sy_call_t *)linux_readdir, AUE_O_GETDENTS }, /* 89 = linux_readdir */
+ { SYF_MPSAFE | AS(linux_readdir_args), (sy_call_t *)linux_readdir, AUE_O_GETDENTS }, /* 89 = linux_readdir */
{ SYF_MPSAFE | AS(linux_mmap_args), (sy_call_t *)linux_mmap, AUE_MMAP }, /* 90 = linux_mmap */
{ SYF_MPSAFE | AS(munmap_args), (sy_call_t *)munmap, AUE_MUNMAP }, /* 91 = munmap */
{ SYF_MPSAFE | AS(linux_truncate_args), (sy_call_t *)linux_truncate, AUE_TRUNCATE }, /* 92 = linux_truncate */
@@ -161,7 +161,7 @@
{ SYF_MPSAFE | AS(linux_setfsuid16_args), (sy_call_t *)linux_setfsuid16, AUE_SETFSUID }, /* 138 = linux_setfsuid16 */
{ SYF_MPSAFE | AS(linux_setfsgid16_args), (sy_call_t *)linux_setfsgid16, AUE_SETFSGID }, /* 139 = linux_setfsgid16 */
{ SYF_MPSAFE | AS(linux_llseek_args), (sy_call_t *)linux_llseek, AUE_LSEEK }, /* 140 = linux_llseek */
- { AS(linux_getdents_args), (sy_call_t *)linux_getdents, AUE_O_GETDENTS }, /* 141 = linux_getdents */
+ { SYF_MPSAFE | AS(linux_getdents_args), (sy_call_t *)linux_getdents, AUE_O_GETDENTS }, /* 141 = linux_getdents */
{ SYF_MPSAFE | AS(linux_select_args), (sy_call_t *)linux_select, AUE_SELECT }, /* 142 = linux_select */
{ SYF_MPSAFE | AS(flock_args), (sy_call_t *)flock, AUE_FLOCK }, /* 143 = flock */
{ SYF_MPSAFE | AS(linux_msync_args), (sy_call_t *)linux_msync, AUE_MSYNC }, /* 144 = linux_msync */
@@ -240,7 +240,7 @@
{ SYF_MPSAFE | AS(linux_pivot_root_args), (sy_call_t *)linux_pivot_root, AUE_PIVOT_ROOT }, /* 217 = linux_pivot_root */
{ SYF_MPSAFE | AS(linux_mincore_args), (sy_call_t *)linux_mincore, AUE_MINCORE }, /* 218 = linux_mincore */
{ SYF_MPSAFE | AS(madvise_args), (sy_call_t *)madvise, AUE_MADVISE }, /* 219 = madvise */
- { AS(linux_getdents64_args), (sy_call_t *)linux_getdents64, AUE_O_GETDENTS }, /* 220 = linux_getdents64 */
+ { SYF_MPSAFE | AS(linux_getdents64_args), (sy_call_t *)linux_getdents64, AUE_O_GETDENTS }, /* 220 = linux_getdents64 */
{ SYF_MPSAFE | AS(linux_fcntl64_args), (sy_call_t *)linux_fcntl64, AUE_FCNTL }, /* 221 = linux_fcntl64 */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 222 = */
{ 0, (sy_call_t *)nosys, AUE_NULL }, /* 223 = */
==== //depot/projects/dtrace/src/sys/amd64/linux32/syscalls.master#5 (text+ko) ====
@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.15 2006/07/06 21:42:35 jhb Exp $
+ $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.16 2006/07/11 20:52:07 jhb Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
; System call name/number master file (or rather, slave, from LINUX).
@@ -169,7 +169,7 @@
87 AUE_SWAPON MNOPROTO { int swapon(char *name); }
88 AUE_REBOOT MSTD { int linux_reboot(l_int magic1, \
l_int magic2, l_uint cmd, void *arg); }
-89 AUE_O_GETDENTS STD { int linux_readdir(l_uint fd, \
+89 AUE_O_GETDENTS MSTD { int linux_readdir(l_uint fd, \
struct l_dirent *dent, l_uint count); }
90 AUE_MMAP MSTD { int linux_mmap(struct l_mmap_argv *ptr); }
91 AUE_MUNMAP MNOPROTO { int munmap(caddr_t addr, int len); }
@@ -246,7 +246,7 @@
140 AUE_LSEEK MSTD { int linux_llseek(l_int fd, l_ulong ohigh, \
l_ulong olow, l_loff_t *res, \
l_uint whence); }
-141 AUE_O_GETDENTS STD { int linux_getdents(l_uint fd, void *dent, \
+141 AUE_O_GETDENTS MSTD { int linux_getdents(l_uint fd, void *dent, \
l_uint count); }
142 AUE_SELECT MSTD { int linux_select(l_int nfds, \
l_fd_set *readfds, l_fd_set *writefds, \
@@ -381,7 +381,7 @@
l_size_t len, u_char *vec); }
219 AUE_MADVISE MNOPROTO { int madvise(void *addr, size_t len, \
int behav); }
-220 AUE_O_GETDENTS STD { int linux_getdents64(l_uint fd, \
+220 AUE_O_GETDENTS MSTD { int linux_getdents64(l_uint fd, \
void *dirent, l_uint count); }
221 AUE_FCNTL MSTD { int linux_fcntl64(l_uint fd, l_uint cmd, \
uintptr_t arg); }
==== //depot/projects/dtrace/src/sys/arm/arm/pmap.c#8 (text+ko) ====
@@ -147,7 +147,7 @@
#include "opt_vm.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.64 2006/06/15 01:01:05 ups Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.65 2006/07/11 11:22:06 cognet Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -199,7 +199,7 @@
static pv_entry_t pmap_get_pv_entry(void);
static void pmap_enter_locked(pmap_t, vm_offset_t, vm_page_t,
- vm_prot_t, boolean_t);
+ vm_prot_t, boolean_t, int);
static void pmap_vac_me_harder(struct vm_page *, pmap_t,
vm_offset_t);
static void pmap_vac_me_kpmap(struct vm_page *, pmap_t,
@@ -373,7 +373,7 @@
* L2 allocation.
*/
#define pmap_alloc_l2_dtable() \
- (void*)uma_zalloc(l2table_zone, M_NOWAIT)
+ (void*)uma_zalloc(l2table_zone, M_NOWAIT|M_USE_RESERVE)
#define pmap_free_l2_dtable(l2) \
uma_zfree(l2table_zone, l2)
@@ -952,7 +952,7 @@
again_ptep:
PMAP_UNLOCK(pm);
vm_page_unlock_queues();
- ptep = (void*)uma_zalloc(l2zone, M_NOWAIT);
+ ptep = (void*)uma_zalloc(l2zone, M_NOWAIT|M_USE_RESERVE);
vm_page_lock_queues();
PMAP_LOCK(pm);
if (l2b->l2b_kva != 0) {
@@ -3306,7 +3306,7 @@
vm_page_lock_queues();
PMAP_LOCK(pmap);
- pmap_enter_locked(pmap, va, m, prot, wired);
+ pmap_enter_locked(pmap, va, m, prot, wired, M_WAITOK);
vm_page_unlock_queues();
PMAP_UNLOCK(pmap);
}
@@ -3316,7 +3316,7 @@
*/
static void
pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot,
- boolean_t wired)
+ boolean_t wired, int flags)
{
struct l2_bucket *l2b = NULL;
struct vm_page *opg;
@@ -3347,10 +3347,22 @@
l2b = pmap_get_l2_bucket(pmap, va);
if (l2b == NULL)
l2b = pmap_grow_l2_bucket(pmap, va);
- } else
+ } else {
+do_l2b_alloc:
l2b = pmap_alloc_l2_bucket(pmap, va);
- KASSERT(l2b != NULL,
- ("pmap_enter: failed to allocate l2 bucket"));
+ if (l2b == NULL) {
+ if (flags & M_WAITOK) {
+ PMAP_UNLOCK(pmap);
+ vm_page_unlock_queues();
+ VM_WAIT;
+ vm_page_lock_queues();
+ PMAP_LOCK(pmap);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list