Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Aug 2013 10:40:26 +0000 (UTC)
From:      Mark Murray <markm@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r254904 - in projects/random_number_generator: bin/sh cddl/lib/libdtrace contrib/llvm/tools/lldb/source contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote sys/arm/arm sys/arm/con...
Message-ID:  <201308261040.r7QAeQaw083565@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markm
Date: Mon Aug 26 10:40:25 2013
New Revision: 254904
URL: http://svnweb.freebsd.org/changeset/base/254904

Log:
  MFC

Added:
  projects/random_number_generator/cddl/lib/libdtrace/ip.d
     - copied unchanged from r254903, head/cddl/lib/libdtrace/ip.d
  projects/random_number_generator/cddl/lib/libdtrace/tcp.d
     - copied unchanged from r254903, head/cddl/lib/libdtrace/tcp.d
  projects/random_number_generator/cddl/lib/libdtrace/udp.d
     - copied unchanged from r254903, head/cddl/lib/libdtrace/udp.d
  projects/random_number_generator/sys/contrib/dev/drm2/
     - copied from r254903, head/sys/contrib/dev/drm2/
  projects/random_number_generator/sys/dev/drm2/ati_pcigart.c
     - copied unchanged from r254903, head/sys/dev/drm2/ati_pcigart.c
  projects/random_number_generator/sys/dev/drm2/drm_fixed.h
     - copied unchanged from r254903, head/sys/dev/drm2/drm_fixed.h
  projects/random_number_generator/sys/dev/drm2/drm_os_freebsd.h
     - copied unchanged from r254903, head/sys/dev/drm2/drm_os_freebsd.h
  projects/random_number_generator/sys/dev/drm2/radeon/
     - copied from r254903, head/sys/dev/drm2/radeon/
  projects/random_number_generator/sys/modules/drm2/radeonkms/
     - copied from r254903, head/sys/modules/drm2/radeonkms/
  projects/random_number_generator/sys/modules/drm2/radeonkmsfw/
     - copied from r254903, head/sys/modules/drm2/radeonkmsfw/
  projects/random_number_generator/sys/netinet/in_kdtrace.c
     - copied unchanged from r254903, head/sys/netinet/in_kdtrace.c
  projects/random_number_generator/sys/netinet/in_kdtrace.h
     - copied unchanged from r254903, head/sys/netinet/in_kdtrace.h
  projects/random_number_generator/tools/regression/bin/sh/builtins/alias4.0
     - copied unchanged from r254903, head/tools/regression/bin/sh/builtins/alias4.0
  projects/random_number_generator/tools/regression/bin/sh/parser/empty-cmd1.0
     - copied unchanged from r254903, head/tools/regression/bin/sh/parser/empty-cmd1.0
  projects/random_number_generator/tools/regression/file/fcntlflags/
     - copied from r254903, head/tools/regression/file/fcntlflags/
  projects/random_number_generator/tools/tools/drm/
     - copied from r254903, head/tools/tools/drm/
Modified:
  projects/random_number_generator/bin/sh/alias.c
  projects/random_number_generator/bin/sh/parser.c
  projects/random_number_generator/cddl/lib/libdtrace/Makefile
  projects/random_number_generator/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
  projects/random_number_generator/contrib/llvm/tools/lldb/source/lldb.cpp
  projects/random_number_generator/sys/arm/arm/irq_dispatch.S
  projects/random_number_generator/sys/arm/arm/pmap-v6.c
  projects/random_number_generator/sys/arm/arm/swtch.S
  projects/random_number_generator/sys/arm/conf/VERSATILEPB
  projects/random_number_generator/sys/compat/ndis/kern_ndis.c
  projects/random_number_generator/sys/compat/ndis/ndis_var.h
  projects/random_number_generator/sys/conf/files
  projects/random_number_generator/sys/dev/cas/if_cas.c
  projects/random_number_generator/sys/dev/drm2/drmP.h
  projects/random_number_generator/sys/dev/drm2/drm_atomic.h
  projects/random_number_generator/sys/dev/drm2/drm_gem.c
  projects/random_number_generator/sys/dev/drm2/drm_ioctl.c
  projects/random_number_generator/sys/dev/drm2/drm_irq.c
  projects/random_number_generator/sys/dev/drm2/drm_linux_list.h
  projects/random_number_generator/sys/dev/drm2/drm_pci.c
  projects/random_number_generator/sys/dev/drm2/drm_pciids.h
  projects/random_number_generator/sys/dev/drm2/ttm/ttm_bo.c
  projects/random_number_generator/sys/dev/drm2/ttm/ttm_bo_driver.h
  projects/random_number_generator/sys/dev/drm2/ttm/ttm_bo_util.c
  projects/random_number_generator/sys/dev/drm2/ttm/ttm_bo_vm.c
  projects/random_number_generator/sys/dev/drm2/ttm/ttm_execbuf_util.c
  projects/random_number_generator/sys/dev/drm2/ttm/ttm_page_alloc.c
  projects/random_number_generator/sys/dev/drm2/ttm/ttm_tt.c
  projects/random_number_generator/sys/dev/hatm/if_hatm_intr.c
  projects/random_number_generator/sys/dev/hwpmc/hwpmc_core.c
  projects/random_number_generator/sys/dev/hwpmc/pmc_events.h
  projects/random_number_generator/sys/dev/if_ndis/if_ndis.c
  projects/random_number_generator/sys/dev/iscsi_initiator/isc_soc.c
  projects/random_number_generator/sys/dev/lge/if_lge.c
  projects/random_number_generator/sys/dev/mwl/if_mwl.c
  projects/random_number_generator/sys/dev/pci/pcivar.h
  projects/random_number_generator/sys/dev/pci/vga_pci.c
  projects/random_number_generator/sys/dev/wb/if_wb.c
  projects/random_number_generator/sys/kern/subr_mbpool.c
  projects/random_number_generator/sys/kern/uipc_cow.c
  projects/random_number_generator/sys/kern/uipc_mbuf.c
  projects/random_number_generator/sys/kern/uipc_syscalls.c
  projects/random_number_generator/sys/modules/drm2/Makefile
  projects/random_number_generator/sys/modules/drm2/drm2/Makefile
  projects/random_number_generator/sys/net80211/ieee80211_output.c
  projects/random_number_generator/sys/net80211/ieee80211_proto.h
  projects/random_number_generator/sys/net80211/ieee80211_superg.c
  projects/random_number_generator/sys/netinet/ip_fastfwd.c
  projects/random_number_generator/sys/netinet/ip_input.c
  projects/random_number_generator/sys/netinet/ip_output.c
  projects/random_number_generator/sys/netinet/sctp_input.c
  projects/random_number_generator/sys/netinet/tcp_input.c
  projects/random_number_generator/sys/netinet/tcp_output.c
  projects/random_number_generator/sys/netinet/tcp_subr.c
  projects/random_number_generator/sys/netinet/tcp_syncache.c
  projects/random_number_generator/sys/netinet/tcp_usrreq.c
  projects/random_number_generator/sys/netinet/tcp_var.h
  projects/random_number_generator/sys/netinet/udp_usrreq.c
  projects/random_number_generator/sys/netinet/udp_var.h
  projects/random_number_generator/sys/netinet6/ip6_input.c
  projects/random_number_generator/sys/netinet6/ip6_mroute.c
  projects/random_number_generator/sys/netinet6/nd6.c
  projects/random_number_generator/sys/netinet6/sctp6_usrreq.c
  projects/random_number_generator/sys/netinet6/send.c
  projects/random_number_generator/sys/netinet6/udp6_usrreq.c
  projects/random_number_generator/sys/sys/fcntl.h
  projects/random_number_generator/sys/sys/mbpool.h
  projects/random_number_generator/sys/sys/mbuf.h
  projects/random_number_generator/sys/sys/param.h
  projects/random_number_generator/sys/sys/sf_buf.h
  projects/random_number_generator/tools/tools/README
Directory Properties:
  projects/random_number_generator/   (props changed)
  projects/random_number_generator/cddl/   (props changed)
  projects/random_number_generator/contrib/llvm/   (props changed)
  projects/random_number_generator/sys/   (props changed)
  projects/random_number_generator/sys/conf/   (props changed)

Modified: projects/random_number_generator/bin/sh/alias.c
==============================================================================
--- projects/random_number_generator/bin/sh/alias.c	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/bin/sh/alias.c	Mon Aug 26 10:40:25 2013	(r254904)
@@ -237,17 +237,19 @@ printaliases(void)
 }
 
 int
-aliascmd(int argc, char **argv)
+aliascmd(int argc __unused, char **argv __unused)
 {
 	char *n, *v;
 	int ret = 0;
 	struct alias *ap;
 
-	if (argc == 1) {
+	nextopt("");
+
+	if (*argptr == NULL) {
 		printaliases();
 		return (0);
 	}
-	while ((n = *++argv) != NULL) {
+	while ((n = *argptr++) != NULL) {
 		if ((v = strchr(n+1, '=')) == NULL) /* n+1: funny ksh stuff */
 			if ((ap = lookupalias(n, 0)) == NULL) {
 				warning("%s: not found", n);

Modified: projects/random_number_generator/bin/sh/parser.c
==============================================================================
--- projects/random_number_generator/bin/sh/parser.c	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/bin/sh/parser.c	Mon Aug 26 10:40:25 2013	(r254904)
@@ -573,7 +573,7 @@ TRACE(("expecting DO got %s %s\n", tokna
 			synexpect(TEND);
 		checkkwd = CHKKWD | CHKALIAS;
 		break;
-	/* Handle an empty command like other simple commands.  */
+	/* A simple command must have at least one redirection or word. */
 	case TBACKGND:
 	case TSEMI:
 	case TAND:
@@ -581,16 +581,12 @@ TRACE(("expecting DO got %s %s\n", tokna
 	case TPIPE:
 	case TENDCASE:
 	case TFALLTHRU:
-		/*
-		 * An empty command before a ; doesn't make much sense, and
-		 * should certainly be disallowed in the case of `if ;'.
-		 */
+	case TEOF:
+	case TNL:
+	case TRP:
 		if (!redir)
 			synexpect(-1);
-	case TNL:
-	case TEOF:
 	case TWORD:
-	case TRP:
 		tokpushback++;
 		n1 = simplecmd(rpp, redir);
 		return n1;

Modified: projects/random_number_generator/cddl/lib/libdtrace/Makefile
==============================================================================
--- projects/random_number_generator/cddl/lib/libdtrace/Makefile	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/cddl/lib/libdtrace/Makefile	Mon Aug 26 10:40:25 2013	(r254904)
@@ -48,8 +48,11 @@ SRCS=		dt_aggregate.c \
 
 DSRCS=		errno.d			\
 		io.d			\
+		ip.d			\
 		psinfo.d		\
 		signal.d		\
+		tcp.d			\
+		udp.d			\
 		unistd.d
 
 WARNS?=		1

Copied: projects/random_number_generator/cddl/lib/libdtrace/ip.d (from r254903, head/cddl/lib/libdtrace/ip.d)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/random_number_generator/cddl/lib/libdtrace/ip.d	Mon Aug 26 10:40:25 2013	(r254904, copy of r254903, head/cddl/lib/libdtrace/ip.d)
@@ -0,0 +1,285 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ * $FreeBSD$
+ */
+/*
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013 Mark Johnston <markj@freebsd.org>
+ */
+
+#pragma D depends_on provider ip
+
+/*
+ * pktinfo is where packet ID info can be made available for deeper
+ * analysis if packet IDs become supported by the kernel in the future.
+ * The pkt_addr member is currently always NULL.
+ */
+typedef struct pktinfo {
+	uintptr_t pkt_addr;
+} pktinfo_t;
+
+/*
+ * csinfo is where connection state info is made available.
+ */
+typedef uint32_t zoneid_t;
+typedef struct csinfo {
+	uintptr_t cs_addr;
+	uint64_t cs_cid;
+	pid_t cs_pid;
+	zoneid_t cs_zoneid;
+} csinfo_t;
+
+/*
+ * ipinfo contains common IP info for both IPv4 and IPv6.
+ */
+typedef struct ipinfo {
+	uint8_t ip_ver;			/* IP version (4, 6) */
+	uint32_t ip_plength;		/* payload length */
+	string ip_saddr;		/* source address */
+	string ip_daddr;		/* destination address */
+} ipinfo_t;
+
+/*
+ * ifinfo contains network interface info.
+ */
+typedef struct ifinfo {
+	string if_name;			/* interface name */
+	int8_t if_local;		/* is delivered locally */
+	/*netstackid_t if_ipstack;*/	/* ipstack ID */
+	uintptr_t if_addr;		/* pointer to raw ill_t */
+} ifinfo_t;
+
+typedef uint32_t ipaddr_t;
+typedef struct {
+	uint8_t		ipha_version_and_hdr_length;
+	uint8_t		ipha_type_of_service;
+	uint16_t	ipha_length;
+	uint16_t	ipha_ident;
+	uint16_t	ipha_fragment_offset_and_flags;
+	uint8_t		ipha_ttl;
+	uint8_t		ipha_protocol;
+	uint16_t	ipha_hdr_checksum;
+	ipaddr_t	ipha_src;
+	ipaddr_t	ipha_dst;
+} ipha_t;
+
+/*
+ * ipv4info is a translated version of the IPv4 header (with raw pointer).
+ * These values are NULL if the packet is not IPv4.
+ */
+typedef struct ipv4info {
+	uint8_t ipv4_ver;		/* IP version (4) */
+	uint8_t ipv4_ihl;		/* header length, bytes */
+	uint8_t ipv4_tos;		/* type of service field */
+	uint16_t ipv4_length;		/* length (header + payload) */
+	uint16_t ipv4_ident;		/* identification */
+	uint8_t ipv4_flags;		/* IP flags */
+	uint16_t ipv4_offset;		/* fragment offset */
+	uint8_t ipv4_ttl;		/* time to live */
+	uint8_t ipv4_protocol;		/* next level protocol */
+	string ipv4_protostr;		/* next level protocol, as a string */
+	uint16_t ipv4_checksum;		/* header checksum */
+	ipaddr_t ipv4_src;		/* source address */
+	ipaddr_t ipv4_dst;		/* destination address */
+	string ipv4_saddr;		/* source address, string */
+	string ipv4_daddr;		/* destination address, string */
+	ipha_t *ipv4_hdr;		/* pointer to raw header */
+} ipv4info_t;
+
+/*
+ * ipv6info is a translated version of the IPv6 header (with raw pointer).
+ * These values are NULL if the packet is not IPv6.
+ */
+typedef struct in6_addr in6_addr_t;
+typedef struct ip6_hdr ip6_t;
+typedef struct ipv6info {
+	uint8_t ipv6_ver;		/* IP version (6) */
+	uint8_t ipv6_tclass;		/* traffic class */
+	uint32_t ipv6_flow;		/* flow label */
+	uint16_t ipv6_plen;		/* payload length */
+	uint8_t ipv6_nexthdr;		/* next header protocol */
+	string ipv6_nextstr;		/* next header protocol, as a string */
+	uint8_t ipv6_hlim;		/* hop limit */
+	in6_addr_t *ipv6_src;		/* source address */
+	in6_addr_t *ipv6_dst;		/* destination address */
+	string ipv6_saddr;		/* source address, string */
+	string ipv6_daddr;		/* destination address, string */
+	ip6_t *ipv6_hdr;		/* pointer to raw header */
+} ipv6info_t;
+
+#pragma D binding "1.0" IPPROTO_IP
+inline short IPPROTO_IP =	0;
+#pragma D binding "1.0" IPPROTO_ICMP
+inline short IPPROTO_ICMP =	1;
+#pragma D binding "1.0" IPPROTO_IGMP
+inline short IPPROTO_IGMP =	2;
+#pragma D binding "1.0" IPPROTO_IPV4
+inline short IPPROTO_IPV4 =	4;
+#pragma D binding "1.0" IPPROTO_TCP
+inline short IPPROTO_TCP =	6;
+#pragma D binding "1.0" IPPROTO_UDP
+inline short IPPROTO_UDP =	17;
+#pragma D binding "1.0" IPPROTO_IPV6
+inline short IPPROTO_IPV6 =	41;
+#pragma D binding "1.0" IPPROTO_ROUTING
+inline short IPPROTO_ROUTING =	43;
+#pragma D binding "1.0" IPPROTO_FRAGMENT
+inline short IPPROTO_FRAGMENT =	44;
+#pragma D binding "1.0" IPPROTO_RSVP
+inline short IPPROTO_RSVP =	46;
+#pragma D binding "1.0" IPPROTO_GRE
+inline short IPPROTO_GRE =	47;
+#pragma D binding "1.0" IPPROTO_ESP
+inline short IPPROTO_ESP =	50;
+#pragma D binding "1.0" IPPROTO_AH
+inline short IPPROTO_AH =	51;
+#pragma D binding "1.0" IPPROTO_MOBILE
+inline short IPPROTO_MOBILE =	55;
+#pragma D binding "1.0" IPPROTO_ICMPV6
+inline short IPPROTO_ICMPV6 =	58;
+#pragma D binding "1.0" IPPROTO_DSTOPTS
+inline short IPPROTO_DSTOPTS =	60;
+#pragma D binding "1.0" IPPROTO_ETHERIP
+inline short IPPROTO_ETHERIP =	97;
+#pragma D binding "1.0" IPPROTO_PIM
+inline short IPPROTO_PIM =	103;
+#pragma D binding "1.0" IPPROTO_IPCOMP
+inline short IPPROTO_IPCOMP =	108;
+#pragma D binding "1.0" IPPROTO_SCTP
+inline short IPPROTO_SCTP =	132;
+#pragma D binding "1.0" IPPROTO_RAW
+inline short IPPROTO_RAW =	255;
+
+inline uint8_t INP_IPV4	= 0x01;
+inline uint8_t INP_IPV6 = 0x02;
+
+#pragma D binding "1.0" protocols
+inline string protocols[int proto] =
+	proto == IPPROTO_IP ? "IP" :
+	proto == IPPROTO_ICMP ? "ICMP" :
+	proto == IPPROTO_IGMP ? "IGMP" :
+	proto == IPPROTO_IPV4 ? "IPV4" :
+	proto == IPPROTO_TCP ? "TCP" :
+	proto == IPPROTO_UDP ? "UDP" :
+	proto == IPPROTO_IPV6 ? "IPV6" :
+	proto == IPPROTO_ROUTING ? "ROUTING" :
+	proto == IPPROTO_FRAGMENT ? "FRAGMENT" :
+	proto == IPPROTO_RSVP ? "RSVP" :
+	proto == IPPROTO_GRE ? "GRE" :
+	proto == IPPROTO_ESP ? "ESP" :
+	proto == IPPROTO_AH ? "AH" :
+	proto == IPPROTO_MOBILE ? "MOBILE" :
+	proto == IPPROTO_ICMPV6 ? "ICMPV6" :
+	proto == IPPROTO_DSTOPTS ? "DSTOPTS" :
+	proto == IPPROTO_ETHERIP ? "ETHERIP" :
+	proto == IPPROTO_PIM ? "PIM" :
+	proto == IPPROTO_IPCOMP ? "IPCOMP" :
+	proto == IPPROTO_SCTP ? "SCTP" :
+	proto == IPPROTO_RAW ? "RAW" :
+	"<unknown>";
+
+/*
+ * This field is always NULL according to the current definition of the ip
+ * probes.
+ */
+#pragma D binding "1.0" translator
+translator pktinfo_t < void *p > {
+	pkt_addr =	NULL;
+};
+
+#pragma D binding "1.0" translator
+translator csinfo_t < void *p > {
+	cs_addr =	NULL;
+	cs_cid =	(uint64_t)p;
+	cs_pid =	0;
+	cs_zoneid =	0;
+};
+
+#pragma D binding "1.0" translator
+translator csinfo_t < struct inpcb *p > {
+	cs_addr =       NULL;
+	cs_cid =        (uint64_t)p;
+	cs_pid =        0;	/* XXX */
+	cs_zoneid =     0;
+};
+
+#pragma D binding "1.0" translator
+translator ipinfo_t < uint8_t *p > {
+	ip_ver =	p == NULL ? 0 : ((struct ip *)p)->ip_v;
+	ip_plength =	p == NULL ? 0 :
+	    ((struct ip *)p)->ip_v == 4 ?
+	    ntohs(((struct ip *)p)->ip_len) - (((struct ip *)p)->ip_hl << 2):
+	    ntohs(((struct ip6_hdr *)p)->ip6_ctlun.ip6_un1.ip6_un1_plen);
+	ip_saddr =	p == NULL ? 0 :
+	    ((struct ip *)p)->ip_v == 4 ?
+	    inet_ntoa(&((struct ip *)p)->ip_src.s_addr) :
+	    inet_ntoa6(&((struct ip6_hdr *)p)->ip6_src);
+	ip_daddr =	p == NULL ? 0 :
+	    ((struct ip *)p)->ip_v == 4 ?
+	    inet_ntoa(&((struct ip *)p)->ip_dst.s_addr) :
+	    inet_ntoa6(&((struct ip6_hdr *)p)->ip6_dst);
+};
+
+#pragma D binding "1.0" IFF_LOOPBACK
+inline int IFF_LOOPBACK =	0x8;
+
+#pragma D binding "1.0" translator
+translator ifinfo_t < struct ifnet *p > {
+	if_name =	p->if_xname;
+	if_local =	(p->if_flags & IFF_LOOPBACK) == 0 ? 0 : 1;
+	if_addr =	(uintptr_t)p;
+};
+
+#pragma D binding "1.0" translator
+translator ipv4info_t < struct ip *p > {
+	ipv4_ver =	p == NULL ? 0 : p->ip_v;
+	ipv4_ihl =	p == NULL ? 0 : p->ip_hl;
+	ipv4_tos =	p == NULL ? 0 : p->ip_tos;
+	ipv4_length =	p == NULL ? 0 : ntohs(p->ip_len);
+	ipv4_ident =	p == NULL ? 0 : ntohs(p->ip_id);
+	ipv4_flags =	p == NULL ? 0 : (p->ip_off & 0xe000);
+	ipv4_offset =	p == NULL ? 0 : p->ip_off;
+	ipv4_ttl =	p == NULL ? 0 : p->ip_ttl;
+	ipv4_protocol =	p == NULL ? 0 : p->ip_p;
+	ipv4_protostr = p == NULL ? "<null>" : protocols[p->ip_p];
+	ipv4_checksum =	p == NULL ? 0 : ntohs(p->ip_sum);
+	ipv4_src =	p == NULL ? 0 : (ipaddr_t)ntohl(p->ip_src.s_addr);
+	ipv4_dst =	p == NULL ? 0 : (ipaddr_t)ntohl(p->ip_dst.s_addr);
+	ipv4_saddr =	p == NULL ? 0 : inet_ntoa(&p->ip_src.s_addr);
+	ipv4_daddr =	p == NULL ? 0 : inet_ntoa(&p->ip_dst.s_addr);
+	ipv4_hdr =	(ipha_t *)p;
+};
+
+#pragma D binding "1.0" translator
+translator ipv6info_t < struct ip6_hdr *p > {
+	ipv6_ver =	p == NULL ? 0 : (ntohl(p->ip6_ctlun.ip6_un1.ip6_un1_flow) & 0xf0000000) >> 28;
+	ipv6_tclass =	p == NULL ? 0 : (ntohl(p->ip6_ctlun.ip6_un1.ip6_un1_flow) & 0x0ff00000) >> 20;
+	ipv6_flow =	p == NULL ? 0 : ntohl(p->ip6_ctlun.ip6_un1.ip6_un1_flow) & 0x000fffff;
+	ipv6_plen =	p == NULL ? 0 : ntohs(p->ip6_ctlun.ip6_un1.ip6_un1_plen);
+	ipv6_nexthdr =	p == NULL ? 0 : p->ip6_ctlun.ip6_un1.ip6_un1_nxt;
+	ipv6_nextstr =	p == NULL ? "<null>" : protocols[p->ip6_ctlun.ip6_un1.ip6_un1_nxt];
+	ipv6_hlim =	p == NULL ? 0 : p->ip6_ctlun.ip6_un1.ip6_un1_hlim;
+	ipv6_src =	p == NULL ? 0 : (in6_addr_t *)&p->ip6_src;
+	ipv6_dst =	p == NULL ? 0 : (in6_addr_t *)&p->ip6_dst;
+	ipv6_saddr =	p == NULL ? 0 : inet_ntoa6(&p->ip6_src);
+	ipv6_daddr =	p == NULL ? 0 : inet_ntoa6(&p->ip6_dst);
+	ipv6_hdr =	(ip6_t *)p;
+};

Copied: projects/random_number_generator/cddl/lib/libdtrace/tcp.d (from r254903, head/cddl/lib/libdtrace/tcp.d)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/random_number_generator/cddl/lib/libdtrace/tcp.d	Mon Aug 26 10:40:25 2013	(r254904, copy of r254903, head/cddl/lib/libdtrace/tcp.d)
@@ -0,0 +1,203 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ * $FreeBSD$
+ */
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013 Mark Johnston <markj@freebsd.org>
+ */
+
+#pragma D depends_on library ip.d
+#pragma D depends_on provider tcp
+
+/*
+ * Convert a TCP state value to a string.
+ */
+#pragma D binding "1.0" TCPS_CLOSED
+inline int TCPS_CLOSED =	0;
+#pragma D binding "1.0" TCPS_LISTEN
+inline int TCPS_LISTEN =	1;
+#pragma D binding "1.0" TCPS_SYN_SENT
+inline int TCPS_SYN_SENT =	2;
+#pragma D binding "1.0" TCPS_SYN_RECEIVED
+inline int TCPS_SYN_RECEIVED =	3;
+#pragma D binding "1.0" TCPS_ESTABLISHED
+inline int TCPS_ESTABLISHED =	4;
+#pragma D binding "1.0" TCPS_CLOSE_WAIT
+inline int TCPS_CLOSE_WAIT =	5;
+#pragma D binding "1.0" TCPS_FIN_WAIT_1
+inline int TCPS_FIN_WAIT_1 =	6;
+#pragma D binding "1.0" TCPS_CLOSING
+inline int TCPS_CLOSING =	7;
+#pragma D binding "1.0" TCPS_LAST_ACK
+inline int TCPS_LAST_ACK =	8;
+#pragma D binding "1.0" TCPS_FIN_WAIT_2
+inline int TCPS_FIN_WAIT_2 =	9;
+#pragma D binding "1.0" TCPS_TIME_WAIT
+inline int TCPS_TIME_WAIT =	10;
+
+/* TCP segment flags. */
+#pragma D binding "1.0" TH_FIN
+inline uint8_t TH_FIN =		0x01;
+#pragma D binding "1.0" TH_SYN
+inline uint8_t TH_SYN =		0x02;
+#pragma D binding "1.0" TH_RST
+inline uint8_t TH_RST =		0x04;
+#pragma D binding "1.0" TH_PUSH
+inline uint8_t TH_PUSH =	0x08;
+#pragma D binding "1.0" TH_ACK
+inline uint8_t TH_ACK =		0x10;
+#pragma D binding "1.0" TH_URG
+inline uint8_t TH_URG =		0x20;
+#pragma D binding "1.0" TH_ECE
+inline uint8_t TH_ECE =		0x40;
+#pragma D binding "1.0" TH_CWR
+inline uint8_t TH_CWR =		0x80;
+
+/* TCP connection state strings. */
+#pragma D binding "1.0" tcp_state_string
+inline string tcp_state_string[int32_t state] =
+	state == TCPS_CLOSED ?		"state-closed" :
+	state == TCPS_LISTEN ?		"state-listen" :
+	state == TCPS_SYN_SENT ?	"state-syn-sent" :
+	state == TCPS_SYN_RECEIVED ?	"state-syn-received" :
+	state == TCPS_ESTABLISHED ?	"state-established" :
+	state == TCPS_CLOSE_WAIT ?	"state-close-wait" :
+	state == TCPS_FIN_WAIT_1 ?	"state-fin-wait-1" :
+	state == TCPS_CLOSING ?		"state-closing" :
+	state == TCPS_LAST_ACK ?	"state-last-ack" :
+	state == TCPS_FIN_WAIT_2 ?	"state-fin-wait-2" :
+	state == TCPS_TIME_WAIT ?	"state-time-wait" :
+	"<unknown>";
+
+/*
+ * tcpsinfo contains stable TCP details from tcp_t.
+ */
+typedef struct tcpsinfo {
+	uintptr_t tcps_addr;
+	int tcps_local;			/* is delivered locally, boolean */
+	int tcps_active;		/* active open (from here), boolean */
+	uint16_t tcps_lport;		/* local port */
+	uint16_t tcps_rport;		/* remote port */
+	string tcps_laddr;		/* local address, as a string */
+	string tcps_raddr;		/* remote address, as a string */
+	int32_t tcps_state;		/* TCP state */
+	uint32_t tcps_iss;		/* Initial sequence # sent */
+	uint32_t tcps_suna;		/* sequence # sent but unacked */
+	uint32_t tcps_snxt;		/* next sequence # to send */
+	uint32_t tcps_rack;		/* sequence # we have acked */
+	uint32_t tcps_rnxt;		/* next sequence # expected */
+	uint32_t tcps_swnd;		/* send window size */
+	int32_t tcps_snd_ws;		/* send window scaling */
+	uint32_t tcps_rwnd;		/* receive window size */
+	int32_t tcps_rcv_ws;		/* receive window scaling */
+	uint32_t tcps_cwnd;		/* congestion window */
+	uint32_t tcps_cwnd_ssthresh;	/* threshold for congestion avoidance */
+	uint32_t tcps_sack_fack;	/* SACK sequence # we have acked */
+	uint32_t tcps_sack_snxt;	/* next SACK seq # for retransmission */
+	uint32_t tcps_rto;		/* round-trip timeout, msec */
+	uint32_t tcps_mss;		/* max segment size */
+	int tcps_retransmit;		/* retransmit send event, boolean */
+} tcpsinfo_t;
+
+/*
+ * tcplsinfo provides the old tcp state for state changes.
+ */
+typedef struct tcplsinfo {
+	int32_t tcps_state;		/* previous TCP state */
+} tcplsinfo_t;
+
+/*
+ * tcpinfo is the TCP header fields.
+ */
+typedef struct tcpinfo {
+	uint16_t tcp_sport;		/* source port */
+	uint16_t tcp_dport;		/* destination port */
+	uint32_t tcp_seq;		/* sequence number */
+	uint32_t tcp_ack;		/* acknowledgment number */
+	uint8_t tcp_offset;		/* data offset, in bytes */
+	uint8_t tcp_flags;		/* flags */
+	uint16_t tcp_window;		/* window size */
+	uint16_t tcp_checksum;		/* checksum */
+	uint16_t tcp_urgent;		/* urgent data pointer */
+	struct tcphdr *tcp_hdr;		/* raw TCP header */
+} tcpinfo_t;
+
+#pragma D binding "1.0" translator
+translator csinfo_t < struct tcpcb *p > {
+	cs_addr =	NULL;
+	cs_cid =	(uint64_t)p;
+	cs_pid =	0;
+	cs_zoneid =	0;
+};
+
+#pragma D binding "1.0" translator
+translator tcpsinfo_t < struct tcpcb *p > {
+	tcps_addr =		(uintptr_t)p;
+	tcps_local =		-1; /* XXX */
+	tcps_active =		-1; /* XXX */
+	tcps_lport =		p == NULL ? 0 : ntohs(p->t_inpcb->inp_inc.inc_ie.ie_lport);
+	tcps_rport =		p == NULL ? 0 : ntohs(p->t_inpcb->inp_inc.inc_ie.ie_fport);
+	tcps_laddr =		p == NULL ? 0 :
+	    p->t_inpcb->inp_vflag == INP_IPV4 ?
+	    inet_ntoa(&p->t_inpcb->inp_inc.inc_ie.ie_dependladdr.ie46_local.ia46_addr4.s_addr) :
+	    inet_ntoa6(&p->t_inpcb->inp_inc.inc_ie.ie_dependladdr.ie6_local);
+	tcps_raddr =		p == NULL ? 0 :
+	    p->t_inpcb->inp_vflag == INP_IPV4 ?
+	    inet_ntoa(&p->t_inpcb->inp_inc.inc_ie.ie_dependfaddr.ie46_foreign.ia46_addr4.s_addr) :
+	    inet_ntoa6(&p->t_inpcb->inp_inc.inc_ie.ie_dependfaddr.ie6_foreign);
+	tcps_state =		p == NULL ? -1 : p->t_state;
+	tcps_iss =		p == NULL ? 0  : p->iss;
+	tcps_suna =		p == NULL ? 0  : p->snd_una;
+	tcps_snxt =		p == NULL ? 0  : p->snd_nxt;
+	tcps_rack =		p == NULL ? 0  : p->last_ack_sent;
+	tcps_rnxt =		p == NULL ? 0  : p->rcv_nxt;
+	tcps_swnd =		p == NULL ? -1  : p->snd_wnd;
+	tcps_snd_ws =		p == NULL ? -1  : p->snd_scale;
+	tcps_rwnd =		p == NULL ? -1  : p->rcv_wnd;
+	tcps_rcv_ws =		p == NULL ? -1  : p->rcv_scale;
+	tcps_cwnd =		p == NULL ? -1  : p->snd_cwnd;
+	tcps_cwnd_ssthresh =	p == NULL ? -1  : p->snd_ssthresh;
+	tcps_sack_fack =	p == NULL ? 0  : p->snd_fack;
+	tcps_sack_snxt =	p == NULL ? 0  : p->sack_newdata;
+	tcps_rto =		p == NULL ? -1  : p->t_rxtcur / 1000; /* XXX */
+	tcps_mss =		p == NULL ? -1  : p->t_maxseg;
+	tcps_retransmit =	-1; /* XXX */
+};
+
+#pragma D binding "1.0" translator
+translator tcpinfo_t < struct tcphdr *p > {
+	tcp_sport =	p == NULL ? 0  : ntohs(p->th_sport);
+	tcp_dport =	p == NULL ? 0  : ntohs(p->th_dport);
+	tcp_seq =	p == NULL ? -1 : ntohl(p->th_seq);
+	tcp_ack =	p == NULL ? -1 : ntohl(p->th_ack);
+	tcp_offset =	p == NULL ? -1 : (p->th_off >> 2);
+	tcp_flags =	p == NULL ? 0  : p->th_flags;
+	tcp_window =	p == NULL ? 0  : ntohs(p->th_win);
+	tcp_checksum =	p == NULL ? 0  : ntohs(p->th_sum);
+	tcp_urgent =	p == NULL ? 0  : ntohs(p->th_urp);
+	tcp_hdr =	(struct tcphdr *)p;
+};
+
+#pragma D binding "1.0" translator
+translator tcplsinfo_t < int s > {
+	tcps_state =	s;
+};

Copied: projects/random_number_generator/cddl/lib/libdtrace/udp.d (from r254903, head/cddl/lib/libdtrace/udp.d)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/random_number_generator/cddl/lib/libdtrace/udp.d	Mon Aug 26 10:40:25 2013	(r254904, copy of r254903, head/cddl/lib/libdtrace/udp.d)
@@ -0,0 +1,75 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
+ *
+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ * or http://www.opensolaris.org/os/licensing.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information: Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ * $FreeBSD$
+ */
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013 Mark Johnston <markj@FreeBSD.org>
+ */
+
+#pragma D depends_on library ip.d
+#pragma D depends_on provider udp
+
+/*
+ * udpsinfo contains stable UDP details.
+ */
+typedef struct udpsinfo {
+	uintptr_t udps_addr;
+	uint16_t udps_lport;		/* local port */
+	uint16_t udps_rport;		/* remote port */
+	string udps_laddr;		/* local address, as a string */
+	string udps_raddr;		/* remote address, as a string */
+} udpsinfo_t;
+
+/*
+ * udpinfo is the UDP header fields.
+ */
+typedef struct udpinfo {
+	uint16_t udp_sport;		/* source port */
+	uint16_t udp_dport;		/* destination port */
+	uint16_t udp_length;		/* total length */
+	uint16_t udp_checksum;          /* headers + data checksum */
+	struct udphdr *udp_hdr;		/* raw UDP header */
+} udpinfo_t;
+
+#pragma D binding "1.0" translator
+translator udpsinfo_t < struct inpcb *p > {
+	udps_addr =	(uintptr_t)p;
+	udps_lport =	p == NULL ? 0 : ntohs(p->inp_inc.inc_ie.ie_lport);
+	udps_rport =	p == NULL ? 0 : ntohs(p->inp_inc.inc_ie.ie_fport);
+	udps_laddr =	p == NULL ? "" :
+	    p->inp_vflag == INP_IPV4 ?
+	    inet_ntoa(&p->inp_inc.inc_ie.ie_dependladdr.ie46_local.ia46_addr4.s_addr) :
+	    inet_ntoa6(&p->inp_inc.inc_ie.ie_dependladdr.ie6_local);
+	udps_raddr =	p == NULL ? "" :
+	    p->inp_vflag == INP_IPV4 ?
+	    inet_ntoa(&p->inp_inc.inc_ie.ie_dependfaddr.ie46_foreign.ia46_addr4.s_addr) :
+	    inet_ntoa6(&p->inp_inc.inc_ie.ie_dependfaddr.ie6_foreign);
+};
+
+#pragma D binding "1.0" translator
+translator udpinfo_t < struct udphdr *p > {
+	udp_sport =	p == NULL ? 0 : ntohs(p->uh_sport);
+	udp_dport =	p == NULL ? 0 : ntohs(p->uh_dport);
+	udp_length =	p == NULL ? 0 : ntohs(p->uh_ulen);
+	udp_checksum =	p == NULL ? 0 : ntohs(p->uh_sum);
+	udp_hdr =	p;
+};

Modified: projects/random_number_generator/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
==============================================================================
--- projects/random_number_generator/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp	Mon Aug 26 10:40:25 2013	(r254904)
@@ -57,7 +57,6 @@
 #include "lldb/Host/Host.h"
 #include "Plugins/Process/Utility/InferiorCallPOSIX.h"
 #include "Plugins/Process/Utility/StopInfoMachException.h"
-#include "Plugins/Platform/MacOSX/PlatformRemoteiOS.h"
 #include "Utility/StringExtractorGDBRemote.h"
 #include "GDBRemoteRegisterContext.h"
 #include "ProcessGDBRemote.h"
@@ -1809,6 +1808,7 @@ ProcessGDBRemote::DoDestroy ()
     if (log)
         log->Printf ("ProcessGDBRemote::DoDestroy()");
 
+#if 0 // XXX Currently no iOS target support on FreeBSD
     // There is a bug in older iOS debugservers where they don't shut down the process
     // they are debugging properly.  If the process is sitting at a breakpoint or an exception,
     // this can cause problems with restarting.  So we check to see if any of our threads are stopped
@@ -1912,6 +1912,7 @@ ProcessGDBRemote::DoDestroy ()
             }
         }
     }
+#endif
     
     // Interrupt if our inferior is running...
     int exit_status = SIGABRT;

Modified: projects/random_number_generator/contrib/llvm/tools/lldb/source/lldb.cpp
==============================================================================
--- projects/random_number_generator/contrib/llvm/tools/lldb/source/lldb.cpp	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/contrib/llvm/tools/lldb/source/lldb.cpp	Mon Aug 26 10:40:25 2013	(r254904)
@@ -29,7 +29,6 @@
 #include "Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h"
 #include "Plugins/Disassembler/llvm/DisassemblerLLVMC.h"
 #include "Plugins/Instruction/ARM/EmulateInstructionARM.h"
-#include "Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.h"
 #include "Plugins/SymbolVendor/ELF/SymbolVendorELF.h"
 #include "Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h"
 #include "Plugins/ObjectFile/ELF/ObjectFileELF.h"
@@ -38,10 +37,8 @@
 #include "Plugins/SymbolFile/Symtab/SymbolFileSymtab.h"
 #include "Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h"
 #include "Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h"
-#include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h"
 #include "Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h"
 #include "Plugins/Platform/FreeBSD/PlatformFreeBSD.h"
-#include "Plugins/Platform/Linux/PlatformLinux.h"
 #include "Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h"
 #ifndef LLDB_DISABLE_PYTHON
 #include "Plugins/OperatingSystem/Python/OperatingSystemPython.h"
@@ -60,8 +57,6 @@
 #include "Plugins/Platform/MacOSX/PlatformiOSSimulator.h"
 #endif
 
-#include "Plugins/Process/mach-core/ProcessMachCore.h"
-
 #if defined(__linux__) or defined(__FreeBSD__)
 #include "Plugins/Process/elf-core/ProcessElfCore.h"
 #endif
@@ -109,10 +104,8 @@ lldb_private::Initialize ()
         UnwindAssemblyInstEmulation::Initialize();
         UnwindAssembly_x86::Initialize();
         EmulateInstructionARM::Initialize ();
-        ObjectFilePECOFF::Initialize ();
         DynamicLoaderPOSIXDYLD::Initialize ();
         PlatformFreeBSD::Initialize();
-        PlatformLinux::Initialize();
         SymbolFileDWARFDebugMap::Initialize();
         ItaniumABILanguageRuntime::Initialize();
 #ifndef LLDB_DISABLE_PYTHON
@@ -130,8 +123,6 @@ lldb_private::Initialize ()
         ObjectContainerUniversalMachO::Initialize();
         ObjectFileMachO::Initialize();
         ProcessKDP::Initialize();
-        ProcessMachCore::Initialize();
-        SymbolVendorMacOSX::Initialize();
         PlatformDarwinKernel::Initialize();
         PlatformRemoteiOS::Initialize();
         PlatformMacOSX::Initialize();
@@ -193,10 +184,8 @@ lldb_private::Terminate ()
     UnwindAssembly_x86::Terminate();
     UnwindAssemblyInstEmulation::Terminate();
     EmulateInstructionARM::Terminate ();
-    ObjectFilePECOFF::Terminate ();
     DynamicLoaderPOSIXDYLD::Terminate ();
     PlatformFreeBSD::Terminate();
-    PlatformLinux::Terminate();
     SymbolFileDWARFDebugMap::Terminate();
     ItaniumABILanguageRuntime::Terminate();
 #ifndef LLDB_DISABLE_PYTHON
@@ -210,9 +199,7 @@ lldb_private::Terminate ()
     AppleObjCRuntimeV1::Terminate();
     ObjectContainerUniversalMachO::Terminate();
     ObjectFileMachO::Terminate();
-    ProcessMachCore::Terminate();
     ProcessKDP::Terminate();
-    SymbolVendorMacOSX::Terminate();
     PlatformMacOSX::Terminate();
     PlatformDarwinKernel::Terminate();
     PlatformRemoteiOS::Terminate();

Modified: projects/random_number_generator/sys/arm/arm/irq_dispatch.S
==============================================================================
--- projects/random_number_generator/sys/arm/arm/irq_dispatch.S	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/sys/arm/arm/irq_dispatch.S	Mon Aug 26 10:40:25 2013	(r254904)
@@ -89,6 +89,7 @@ AST_LOCALS
 ASENTRY_NP(irq_entry)
 	sub	lr, lr, #0x00000004	/* Adjust the lr */
 	PUSHFRAMEINSVC			/* Push an interrupt frame */
+	UNWINDSVCFRAME
 	mov	r0, sp			/* arg for dispatcher */
 
 	mov	r1, #0

Modified: projects/random_number_generator/sys/arm/arm/pmap-v6.c
==============================================================================
--- projects/random_number_generator/sys/arm/arm/pmap-v6.c	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/sys/arm/arm/pmap-v6.c	Mon Aug 26 10:40:25 2013	(r254904)
@@ -2944,126 +2944,6 @@ void
 pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr,
     vm_size_t len, vm_offset_t src_addr)
 {
-	struct l2_bucket *l2b_src, *l2b_dst;
-	struct pv_entry *pve;
-	vm_offset_t addr;
-	vm_offset_t end_addr;
-	vm_offset_t next_bucket;
-	u_int flags;
-	boolean_t l2b_alloc;
-
-	CTR4(KTR_PMAP, "%s: VA = 0x%08x, len = 0x%08x. Will %s\n", __func__,
-	    src_addr, len, (dst_addr != src_addr) ? "exit" : "copy");
-
-	if (dst_addr != src_addr)
-		return;
-
-	rw_wlock(&pvh_global_lock);
-	if (dst_pmap < src_pmap) {
-		PMAP_LOCK(dst_pmap);
-		PMAP_LOCK(src_pmap);
-	} else {
-		PMAP_LOCK(src_pmap);
-		PMAP_LOCK(dst_pmap);
-	}
-
-	end_addr = src_addr + len;
-	addr = src_addr;
-	/*
-	 * Iterate through all used l2_buckets in a given range.
-	 */
-	while (addr < end_addr) {
-		pt_entry_t *src_ptep, *dst_ptep;
-		pt_entry_t src_pte;
-
-		next_bucket = L2_NEXT_BUCKET(addr);
-		/*
-		 * If the next bucket VA is out of the
-		 * copy range then set it to end_addr in order
-		 * to copy all mappings until the given limit.
-		 */ 
-		if (next_bucket > end_addr)
-			next_bucket = end_addr;
-
-		l2b_src = pmap_get_l2_bucket(src_pmap, addr);
-		if (l2b_src == NULL) {
-			addr = next_bucket;
-			continue;
-		}
-		src_ptep = &l2b_src->l2b_kva[l2pte_index(addr)];
-
-		while (addr < next_bucket) {
-			vm_page_t srcmpte;
-
-			src_pte = *src_ptep;
-			srcmpte = PHYS_TO_VM_PAGE(l2pte_pa(src_pte));
-			/*
-			 * We only virtual copy managed pages
-			 */
-			if (srcmpte && (srcmpte->oflags & VPO_UNMANAGED) == 0) {
-				l2b_alloc = FALSE;
-				l2b_dst = pmap_get_l2_bucket(dst_pmap, addr);
-				/*
-				 * Check if the allocation of another
-				 * l2_bucket is necessary.
-				 */
-				if (l2b_dst == NULL) {
-					l2b_dst = pmap_alloc_l2_bucket(dst_pmap,
-					    addr);
-					l2b_alloc = TRUE;
-				}
-				if (l2b_dst == NULL)
-					goto out;
-
-				dst_ptep = &l2b_dst->l2b_kva[l2pte_index(addr)];
-
-				if (*dst_ptep == 0 &&
-				    (pve = pmap_get_pv_entry(dst_pmap, TRUE))) {
-					/*
-					 * Check whether the source mapping is
-					 * writable and set the proper flag
-					 * for a copied mapping so that right
-					 * permissions could be set on the
-					 * access fault.
-					 */
-					flags = 0;
-					if ((src_pte & L2_APX) == 0)
-						flags = PVF_WRITE;
-					pmap_enter_pv(srcmpte, pve, dst_pmap,
-					    addr, flags);
-					/*
-					 * Clear the modified and
-					 * accessed (referenced) flags
-					 * and don't set the wired flag
-					 * during the copy.
-					 */
-					*dst_ptep = src_pte;
-					*dst_ptep &= ~L2_S_REF;
-					*dst_ptep |= L2_APX;
-					/*
-					 * Update stats
-					 */
-					l2b_dst->l2b_occupancy++;
-					dst_pmap->pm_stats.resident_count++;
-				} else {
-					/*
-					 * If the l2_bucket was acquired as
-					 * a result of allocation then free it.
-					 */
-					if (l2b_alloc)
-						pmap_free_l2_bucket(dst_pmap,
-						    l2b_dst, 1);
-					goto out;
-				}
-			}
-			addr += PAGE_SIZE;
-			src_ptep++;
-		}
-	}
-out:
-	rw_wunlock(&pvh_global_lock);
-	PMAP_UNLOCK(src_pmap);
-	PMAP_UNLOCK(dst_pmap);
 }
 
 

Modified: projects/random_number_generator/sys/arm/arm/swtch.S
==============================================================================
--- projects/random_number_generator/sys/arm/arm/swtch.S	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/sys/arm/arm/swtch.S	Mon Aug 26 10:40:25 2013	(r254904)
@@ -218,6 +218,11 @@ END(cpu_throw)
 ENTRY(cpu_switch)
 	stmfd	sp!, {r4-r7, lr}
 	sub	sp, sp, #4;
+#ifdef __ARM_EABI__
+	.save	{r4-r7, lr}
+	.pad	#4
+#endif
+
 	mov	r6, r2 /* Save the mutex */
 
 .Lswitch_resume:

Modified: projects/random_number_generator/sys/arm/conf/VERSATILEPB
==============================================================================
--- projects/random_number_generator/sys/arm/conf/VERSATILEPB	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/sys/arm/conf/VERSATILEPB	Mon Aug 26 10:40:25 2013	(r254904)
@@ -53,7 +53,7 @@ options 	SYSVMSG			#SYSV-style message q
 options 	SYSVSEM			#SYSV-style semaphores
 options 	_KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
 options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
-options         ROOTDEVNAME=\"ufs:da0s2a\"
+options 	ROOTDEVNAME=\"ufs:da0s1a\"
 options 	VFP		# vfp/neon
 
 options 	PREEMPTION

Modified: projects/random_number_generator/sys/compat/ndis/kern_ndis.c
==============================================================================
--- projects/random_number_generator/sys/compat/ndis/kern_ndis.c	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/sys/compat/ndis/kern_ndis.c	Mon Aug 26 10:40:25 2013	(r254904)
@@ -482,16 +482,14 @@ ndis_return(dobj, arg)
 	KeReleaseSpinLock(&block->nmb_returnlock, irql);
 }
 
-void
-ndis_return_packet(buf, arg)
-	void			*buf;	/* not used */
-	void			*arg;
+int
+ndis_return_packet(struct mbuf *m, void *buf, void *arg)
 {
 	ndis_packet		*p;
 	ndis_miniport_block	*block;
 
 	if (arg == NULL)
-		return;
+		return (EXT_FREE_OK);
 
 	p = arg;
 
@@ -500,7 +498,7 @@ ndis_return_packet(buf, arg)
 
 	/* Release packet when refcount hits zero, otherwise return. */
 	if (p->np_refcnt)
-		return;
+		return (EXT_FREE_OK);
 
 	block = ((struct ndis_softc *)p->np_softc)->ndis_block;
 
@@ -512,6 +510,8 @@ ndis_return_packet(buf, arg)
 	IoQueueWorkItem(block->nmb_returnitem,
 	    (io_workitem_func)kernndis_functbl[7].ipt_wrap,
 	    WORKQUEUE_CRITICAL, block);
+
+	return (EXT_FREE_OK);
 }
 
 void

Modified: projects/random_number_generator/sys/compat/ndis/ndis_var.h
==============================================================================
--- projects/random_number_generator/sys/compat/ndis/ndis_var.h	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/sys/compat/ndis/ndis_var.h	Mon Aug 26 10:40:25 2013	(r254904)
@@ -1743,7 +1743,7 @@ extern int ndis_halt_nic(void *);
 extern int ndis_shutdown_nic(void *);
 extern int ndis_pnpevent_nic(void *, int);
 extern int ndis_init_nic(void *);
-extern void ndis_return_packet(void *, void *);
+extern int ndis_return_packet(struct mbuf *, void *, void *);
 extern int ndis_init_dma(void *);
 extern int ndis_destroy_dma(void *);
 extern int ndis_create_sysctls(void *);

Modified: projects/random_number_generator/sys/conf/files
==============================================================================
--- projects/random_number_generator/sys/conf/files	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/sys/conf/files	Mon Aug 26 10:40:25 2013	(r254904)
@@ -3228,6 +3228,7 @@ netinet/if_ether.c		optional inet ether
 netinet/igmp.c			optional inet
 netinet/in.c			optional inet
 netinet/in_debug.c		optional inet ddb
+netinet/in_kdtrace.c		optional inet | inet6
 netinet/ip_carp.c		optional inet carp | inet6 carp
 netinet/in_gif.c		optional gif inet | netgraph_gif inet
 netinet/ip_gre.c		optional gre inet

Modified: projects/random_number_generator/sys/dev/cas/if_cas.c
==============================================================================
--- projects/random_number_generator/sys/dev/cas/if_cas.c	Mon Aug 26 10:32:36 2013	(r254903)
+++ projects/random_number_generator/sys/dev/cas/if_cas.c	Mon Aug 26 10:40:25 2013	(r254904)
@@ -132,7 +132,7 @@ static void	cas_detach(struct cas_softc 
 static int	cas_disable_rx(struct cas_softc *sc);
 static int	cas_disable_tx(struct cas_softc *sc);
 static void	cas_eint(struct cas_softc *sc, u_int status);
-static void	cas_free(struct mbuf *m, void *arg1, void* arg2);
+static int	cas_free(struct mbuf *m, void *arg1, void* arg2);
 static void	cas_init(void *xsc);
 static void	cas_init_locked(struct cas_softc *sc);
 static void	cas_init_regs(struct cas_softc *sc);
@@ -1887,7 +1887,7 @@ cas_rint(struct cas_softc *sc)
 #endif
 }
 
-static void
+static int
 cas_free(struct mbuf *m, void *arg1, void *arg2)
 {
 	struct cas_rxdsoft *rxds;
@@ -1904,7 +1904,7 @@ cas_free(struct mbuf *m, void *arg1, voi
 	rxds = &sc->sc_rxdsoft[idx];
 #endif
 	if (refcount_release(&rxds->rxds_refcount) == 0)
-		return;
+		return (EXT_FREE_OK);
 
 	/*
 	 * NB: this function can be called via m_freem(9) within
@@ -1915,6 +1915,7 @@ cas_free(struct mbuf *m, void *arg1, voi
 	cas_add_rxdesc(sc, idx);
 	if (locked == 0)
 		CAS_UNLOCK(sc);
+	return (EXT_FREE_OK);
 }
 

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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