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...
Mark Murray
markm at FreeBSD.org
Mon Aug 26 10:40:29 UTC 2013
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 at 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 at 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 at 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 ***
More information about the svn-src-projects
mailing list