From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 01:41:11 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A28EFB7; Sun, 26 Apr 2015 01:41:11 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 918CF12B7; Sun, 26 Apr 2015 01:41:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3Q1fBM7080523; Sun, 26 Apr 2015 01:41:11 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3Q1fBEM080522; Sun, 26 Apr 2015 01:41:11 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201504260141.t3Q1fBEM080522@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Sun, 26 Apr 2015 01:41:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r281992 - projects/em_mq/sys/dev/e1000 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 01:41:11 -0000 Author: sbruno Date: Sun Apr 26 01:41:10 2015 New Revision: 281992 URL: https://svnweb.freebsd.org/changeset/base/281992 Log: Repair a race condition where we can accidently use the same mbuf in multiple irq threads somehow. Steal bus_dmamap_sync() invocations from igb(4). Modified: projects/em_mq/sys/dev/e1000/if_em.c Modified: projects/em_mq/sys/dev/e1000/if_em.c ============================================================================== --- projects/em_mq/sys/dev/e1000/if_em.c Sat Apr 25 22:42:03 2015 (r281991) +++ projects/em_mq/sys/dev/e1000/if_em.c Sun Apr 26 01:41:10 2015 (r281992) @@ -1552,8 +1552,8 @@ em_handle_que(void *context, int pending { struct em_queue *que = context; struct adapter *adapter = que->adapter; - if_t ifp = adapter->ifp; struct tx_ring *txr = que->txr; + if_t ifp = adapter->ifp; if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { bool more = em_rxeof(que, adapter->rx_process_limit, NULL); @@ -4445,6 +4445,11 @@ em_rxeof(struct em_queue *que, int count EM_RX_LOCK(rxr); + /* Sync the ring */ + bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, + BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); + + #ifdef DEV_NETMAP if (netmap_rx_irq(ifp, rxr->me, &processed)) { EM_RX_UNLOCK(rxr); @@ -4457,9 +4462,6 @@ em_rxeof(struct em_queue *que, int count if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) break; - bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, - BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); - cur = &rxr->rx_base[i]; status = cur->status; mp = sendmp = NULL; @@ -4525,6 +4527,10 @@ skip: rxr->fmp = rxr->lmp = NULL; } next_desc: + /* Sync the ring */ + bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, + BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); + /* Zero out the receive descriptors status. */ cur->status = 0; ++rxdone; /* cumulative for POLL */ From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 06:52:20 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5198961B; Sun, 26 Apr 2015 06:52:20 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 25D871E84; Sun, 26 Apr 2015 06:52:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3Q6qK2t033987; Sun, 26 Apr 2015 06:52:20 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3Q6qKj1033986; Sun, 26 Apr 2015 06:52:20 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504260652.t3Q6qKj1033986@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 06:52:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r281993 - projects/ifnet/sys/net X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 06:52:20 -0000 Author: glebius Date: Sun Apr 26 06:52:19 2015 New Revision: 281993 URL: https://svnweb.freebsd.org/changeset/base/281993 Log: To not confuse possible 3-rd party applications, always report historical IFF_RUNNING together with IFF_UP in getifaddrs(3). Modified: projects/ifnet/sys/net/rtsock.c Modified: projects/ifnet/sys/net/rtsock.c ============================================================================== --- projects/ifnet/sys/net/rtsock.c Sun Apr 26 01:41:10 2015 (r281992) +++ projects/ifnet/sys/net/rtsock.c Sun Apr 26 06:52:19 2015 (r281993) @@ -1253,6 +1253,8 @@ rt_ifmsg(struct ifnet *ifp) ifm = mtod(m, struct if_msghdr *); ifm->ifm_index = ifp->if_index; ifm->ifm_flags = ifp->if_flags; + if (ifp->if_flags & IFF_UP) + ifm->ifm_flags |= IFF_RUNNING; if_data_copy(ifp, &ifm->ifm_data); ifm->ifm_addrs = 0; rt_dispatch(m, AF_UNSPEC); @@ -1558,6 +1560,8 @@ sysctl_iflist_ifml(struct ifnet *ifp, st ifm32 = (struct if_msghdrl32 *)ifm; ifm32->ifm_addrs = info->rti_addrs; ifm32->ifm_flags = ifp->if_flags; + if (ifp->if_flags & IFF_UP) + ifm32->ifm_flags |= IFF_RUNNING; ifm32->ifm_index = ifp->if_index; ifm32->_ifm_spare1 = 0; ifm32->ifm_len = sizeof(*ifm32); @@ -1568,6 +1572,8 @@ sysctl_iflist_ifml(struct ifnet *ifp, st { ifm->ifm_addrs = info->rti_addrs; ifm->ifm_flags = ifp->if_flags; + if (ifp->if_flags & IFF_UP) + ifm->ifm_flags |= IFF_RUNNING; ifm->ifm_index = ifp->if_index; ifm->_ifm_spare1 = 0; ifm->ifm_len = sizeof(*ifm); @@ -1596,6 +1602,8 @@ sysctl_iflist_ifm(struct ifnet *ifp, str ifm32 = (struct if_msghdr32 *)ifm; ifm32->ifm_addrs = info->rti_addrs; ifm32->ifm_flags = ifp->if_flags; + if (ifp->if_flags & IFF_UP) + ifm32->ifm_flags |= IFF_RUNNING; ifm32->ifm_index = ifp->if_index; ifd = &ifm32->ifm_data; } else @@ -1603,6 +1611,8 @@ sysctl_iflist_ifm(struct ifnet *ifp, str { ifm->ifm_addrs = info->rti_addrs; ifm->ifm_flags = ifp->if_flags; + if (ifp->if_flags & IFF_UP) + ifm->ifm_flags |= IFF_RUNNING; ifm->ifm_index = ifp->if_index; ifd = &ifm->ifm_data; } From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 15:41:00 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 78CB9FD7; Sun, 26 Apr 2015 15:41:00 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 65CC91354; Sun, 26 Apr 2015 15:41:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QFf036000268; Sun, 26 Apr 2015 15:41:00 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QFexFv000257; Sun, 26 Apr 2015 15:40:59 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504261540.t3QFexFv000257@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 15:40:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282021 - projects/ifnet/sys/net X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 15:41:00 -0000 Author: glebius Date: Sun Apr 26 15:40:58 2015 New Revision: 282021 URL: https://svnweb.freebsd.org/changeset/base/282021 Log: Tie ifmedia to the generic framework of new ifnet KPI. Implementation: o struct if_media goes opaque into if_media.c o ifmedia is an optional softc (keyword IF_MEDIA) of an interface. o if_media.h declares just preprocessor defines to manipulate media bits. Since a conservative decision was taken in r281236, the media information remains a single 32-bit word. However, to improve type checking it is declared as if_media_t, not a bare integer. if_media.h is now automatically included from if.h o if_attach() calls ifmedia_alloc(). if_free() calls ifmedia_free(). Driver changes: o Drivers supply ifop_media_change and ifop_media_status callbacks in their ifdriver ifops. This were arguments to ifmedia_init() before. The ifop_media_change() callback gets additional argument of the new media, we are trying to swtich to. o On attach, drivers supply array of supported media words in ifat_mediae, currently chose media in ifat_media and optional ifat_mediamask. Drivers may change the media array later via if_media_change(). o Drivers don't need to support SIOCSIFMEDIA, SIOCGIFMEDIA. The stack does now. o Drivers may call if_media_status() if they are running autonegotiation and wish to report new status. The function updates link state and baudrate of the interface. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/net/if.c projects/ifnet/sys/net/if.h projects/ifnet/sys/net/if_media.c projects/ifnet/sys/net/if_media.h Modified: projects/ifnet/sys/net/if.c ============================================================================== --- projects/ifnet/sys/net/if.c Sun Apr 26 12:24:42 2015 (r282020) +++ projects/ifnet/sys/net/if.c Sun Apr 26 15:40:58 2015 (r282021) @@ -100,6 +100,11 @@ #include #endif +/* Interface media functions, living in if_media.c. */ +extern void ifmedia_alloc(struct ifnet *, struct if_attach_args *); +extern void ifmedia_free(struct ifnet *); +extern int ifmedia_ioctl(struct ifnet *, struct ifreq *, u_long); + SYSCTL_NODE(_net, PF_LINK, link, CTLFLAG_RW, 0, "Link layers"); SYSCTL_NODE(_net_link, 0, generic, CTLFLAG_RW, 0, "Generic link-management"); @@ -543,6 +548,7 @@ if_attach(struct if_attach_args *ifat) mac_ifnet_init(ifp); mac_ifnet_create(ifp); #endif + rw_init(&ifp->if_lock, "if_lock"); ifp->if_ops = &ifdrv->ifdrv_ops; ifp->if_drv = ifdrv; @@ -558,6 +564,13 @@ if_attach(struct if_attach_args *ifat) COPY(baudrate); #undef COPY + if (ifat->ifat_mediae) { + KASSERT(ifp->if_ops->ifop_media_change != NULL && + ifp->if_ops->ifop_media_status != NULL, + ("%s: media array but no callbacks", ifdrv->ifdrv_name)); + ifmedia_alloc(ifp, ifat); + } + if (ifat->ifat_tsomax) { /* * Driver wants dynamic tsomax on this interface, we @@ -578,7 +591,6 @@ if_attach(struct if_attach_args *ifat) if (ifdrv->ifdrv_maxqlen > 0) ifp->if_snd = if_snd_alloc(ifdrv->ifdrv_maxqlen); - rw_init(&ifp->if_lock, "if_lock"); IF_AFDATA_LOCK_INIT(ifp); TASK_INIT(&ifp->if_linktask, 0, do_link_state_change, ifp); TAILQ_INIT(&ifp->if_addrhead); @@ -670,6 +682,8 @@ if_free_internal(struct ifnet *ifp) if (ifp->if_tsomax != ifp->if_drv->ifdrv_tsomax) free(ifp->if_tsomax, M_IFNET); + ifmedia_free(ifp); + free(ifp, M_IFNET); } @@ -2749,7 +2763,6 @@ if_drvioctl(struct ifnet *ifp, u_long cm #ifdef INET6 case SIOCSIFPHYADDR_IN6: #endif - case SIOCSIFMEDIA: case SIOCSIFGENERIC: error = priv_check(td, PRIV_NET_HWIOCTL); if (error) @@ -2762,8 +2775,6 @@ if_drvioctl(struct ifnet *ifp, u_long cm case SIOCGIFSTATUS: case SIOCGIFPSRCADDR: case SIOCGIFPDSTADDR: - case SIOCGIFMEDIA: - case SIOCGIFXMEDIA: case SIOCGIFGENERIC: error = if_ioctl(ifp, cmd, data, td); break; @@ -2806,6 +2817,15 @@ if_drvioctl(struct ifnet *ifp, u_long cm break; } + case SIOCSIFMEDIA: + error = priv_check(td, PRIV_NET_HWIOCTL); + if (error) + return (error); + /* FALLTHROUGH */ + case SIOCGIFMEDIA: + case SIOCGIFXMEDIA: + return (ifmedia_ioctl(ifp, ifr, cmd)); + default: error = ENOIOCTL; break; Modified: projects/ifnet/sys/net/if.h ============================================================================== --- projects/ifnet/sys/net/if.h Sun Apr 26 12:24:42 2015 (r282020) +++ projects/ifnet/sys/net/if.h Sun Apr 26 15:40:58 2015 (r282021) @@ -539,6 +539,7 @@ __END_DECLS #ifdef _KERNEL #include +#include /* * Under _KERNEL there live declarations from net/if.c, that are public * and available to network device drivers. Declarations that are protected @@ -586,6 +587,7 @@ typedef enum { IF_CARP, IF_VLAN, IF_TOEDEV, + IF_MEDIA, /* * Space above 99999 is split among different vendors. * @@ -603,6 +605,8 @@ typedef int (*if_output_t)(if_t, struct typedef int (*if_ioctl_t)(if_t, u_long, void *, struct thread *); typedef uint64_t (*if_get_counter_t)(if_t, ift_counter); typedef void (*if_qflush_t)(if_t); +typedef int (*if_media_change_t)(if_t, if_media_t); +typedef void (*if_media_status_t)(if_t, struct ifmediareq *); typedef int (*if_resolvemulti_t)(if_t, struct sockaddr **, struct sockaddr *); typedef void (*if_reassign_t)(if_t, struct vnet *); @@ -623,6 +627,8 @@ struct ifops { if_ioctl_t ifop_ioctl; /* ioctl routine */ if_get_counter_t ifop_get_counter; /* get counter values */ if_qflush_t ifop_qflush; /* flush any queue */ + if_media_change_t ifop_media_change; /* change media */ + if_media_status_t ifop_media_status; /* query media */ if_resolvemulti_t ifop_resolvemulti; /* validate/resolve multicast */ if_reassign_t ifop_reassign; /* reassign to vnet routine */ if_vlan_event_t ifop_vlan_event;/* VLAN config/unconfig */ @@ -694,11 +700,18 @@ struct if_attach_args { #define IFAT_DUNIT_NONE (-1) char * ifat_name; /* If driver wants a specific name. */ /* - * Variables that may differ between two instances of a same - * driver, but are constant within instance lifetime. + * Capabilities can be different for two interfaces of the same + * driver, e.g. different chip revisions. */ uint64_t ifat_capabilities; /* + * Pointer to static array of supported mediae, current media + * word, and ignore mask for ifmedia_match(). + */ + if_media_t *ifat_mediae; + if_media_t ifat_media; + if_media_t ifat_mediamask; + /* * MTU, flags, capabilities at attach time. Driver * can change them later. */ @@ -732,6 +745,12 @@ int if_drvioctl(if_t, u_long, void *, st uint64_t if_get_counter_default(if_t, ift_counter); /* + * Interface media manipulation by drivers. + */ +void if_media_status(if_t, if_media_t); +void if_media_change(if_t, if_media_t *, if_media_t); + +/* * Interface if_ops that are available for drivers. */ void if_input_noinline(if_t, struct mbuf *); Modified: projects/ifnet/sys/net/if_media.c ============================================================================== --- projects/ifnet/sys/net/if_media.c Sun Apr 26 12:24:42 2015 (r282020) +++ projects/ifnet/sys/net/if_media.c Sun Apr 26 15:40:58 2015 (r282021) @@ -1,6 +1,3 @@ -/* $NetBSD: if_media.c,v 1.1 1997/03/17 02:55:15 thorpej Exp $ */ -/* $FreeBSD$ */ - /*- * Copyright (c) 1997 * Jonathan Stone and Jason R. Thorpe. All rights reserved. @@ -33,218 +30,106 @@ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - */ - -/* - * BSD/OS-compatible network interface media selection. * - * Where it is safe to do so, this code strays slightly from the BSD/OS - * design. Software which uses the API (device drivers, basically) - * shouldn't notice any difference. - * - * Many thanks to Matt Thomas for providing the information necessary - * to implement this interface. + * $NetBSD: if_media.c,v 1.1 1997/03/17 02:55:15 thorpej Exp $ */ +#include +__FBSDID("$FreeBSD$"); + #include "opt_ifmedia.h" #include #include #include #include +#include #include #include #include #include -#include +#include -/* - * Compile-time options: - * IFMEDIA_DEBUG: - * turn on implementation-level debug printfs. - * Useful for debugging newly-ported drivers. - */ +static MALLOC_DEFINE(M_IFMEDIA, "if_media", "interface media info"); -static struct ifmedia_entry *ifmedia_match(struct ifmedia *ifm, - int flags, int mask); +struct ifmedia { + if_media_t ifm_media; /* current user-set media word */ + if_media_t ifm_mask; /* mask of changes we don't care */ + if_media_t *ifm_array; /* array of all supported mediae */ + if_media_t *ifm_cur; /* currently selected media */ +}; +void ifmedia_alloc(struct ifnet *, struct if_attach_args *); +void ifmedia_free(struct ifnet *); +int ifmedia_ioctl(struct ifnet *, struct ifreq *, u_long); + +static if_media_t * ifmedia_match(struct ifmedia *, if_media_t); +static if_media_t ifmedia_compat(if_media_t media); +static uint64_t ifmedia_baudrate(if_media_t); +static int ifmedia_link_state(u_int); #ifdef IFMEDIA_DEBUG -#include -int ifmedia_debug = 0; -SYSCTL_INT(_debug, OID_AUTO, ifmedia, CTLFLAG_RW, &ifmedia_debug, - 0, "if_media debugging msgs"); -static void ifmedia_printword(int); +static void ifmedia_printword(int); +static int ifmedia_debug; #endif /* - * Initialize if_media struct for a specific interface instance. + * Called by if_attach(), if interface reports media. */ void -ifmedia_init(ifm, dontcare_mask, change_callback, status_callback) - struct ifmedia *ifm; - int dontcare_mask; - ifm_change_cb_t change_callback; - ifm_stat_cb_t status_callback; +ifmedia_alloc(struct ifnet *ifp, struct if_attach_args *ifat) { - - LIST_INIT(&ifm->ifm_list); - ifm->ifm_cur = NULL; - ifm->ifm_media = 0; - ifm->ifm_mask = dontcare_mask; /* IF don't-care bits */ - ifm->ifm_change = change_callback; - ifm->ifm_status = status_callback; -} - -void -ifmedia_removeall(ifm) - struct ifmedia *ifm; -{ - struct ifmedia_entry *entry; - - for (entry = LIST_FIRST(&ifm->ifm_list); entry; - entry = LIST_FIRST(&ifm->ifm_list)) { - LIST_REMOVE(entry, ifm_list); - free(entry, M_IFADDR); - } -} - -/* - * Add a media configuration to the list of supported media - * for a specific interface instance. - */ -void -ifmedia_add(ifm, mword, data, aux) struct ifmedia *ifm; - int mword; - int data; - void *aux; -{ - register struct ifmedia_entry *entry; - -#ifdef IFMEDIA_DEBUG - if (ifmedia_debug) { - if (ifm == NULL) { - printf("ifmedia_add: null ifm\n"); - return; - } - printf("Adding entry for "); - ifmedia_printword(mword); - } -#endif - entry = malloc(sizeof(*entry), M_IFADDR, M_NOWAIT); - if (entry == NULL) - panic("ifmedia_add: can't malloc entry"); - - entry->ifm_media = mword; - entry->ifm_data = data; - entry->ifm_aux = aux; + ifm = malloc(sizeof(struct ifmedia), M_IFMEDIA, M_WAITOK); + ifm->ifm_array = ifat->ifat_mediae; + ifm->ifm_mask = ifat->ifat_mediamask; + ifm->ifm_cur = ifmedia_match(ifm, ifat->ifat_media); + ifm->ifm_media = *ifm->ifm_cur; - LIST_INSERT_HEAD(&ifm->ifm_list, entry, ifm_list); -} + if_setsoftc(ifp, IF_MEDIA, ifm); -/* - * Add an array of media configurations to the list of - * supported media for a specific interface instance. - */ -void -ifmedia_list_add(ifm, lp, count) - struct ifmedia *ifm; - struct ifmedia_entry *lp; - int count; -{ - int i; - - for (i = 0; i < count; i++) - ifmedia_add(ifm, lp[i].ifm_media, lp[i].ifm_data, - lp[i].ifm_aux); + ifp->if_baudrate = ifmedia_baudrate(ifm->ifm_media); } /* - * Set the default active media. - * - * Called by device-specific code which is assumed to have already - * selected the default media in hardware. We do _not_ call the - * media-change callback. + * Called by if_free(). */ void -ifmedia_set(ifm, target) - struct ifmedia *ifm; - int target; - -{ - struct ifmedia_entry *match; - - match = ifmedia_match(ifm, target, ifm->ifm_mask); - - if (match == NULL) { - printf("ifmedia_set: no match for 0x%x/0x%x\n", - target, ~ifm->ifm_mask); - panic("ifmedia_set"); - } - ifm->ifm_cur = match; - -#ifdef IFMEDIA_DEBUG - if (ifmedia_debug) { - printf("ifmedia_set: target "); - ifmedia_printword(target); - printf("ifmedia_set: setting to "); - ifmedia_printword(ifm->ifm_cur->ifm_media); - } -#endif -} - -/* - * Given a media word, return one suitable for an application - * using the original encoding. - */ -static int -compat_media(int media) +ifmedia_free(struct ifnet *ifp) { + struct ifmedia *ifm; - if (IFM_TYPE(media) == IFM_ETHER && IFM_SUBTYPE(media) > IFM_OTHER) { - media &= ~(IFM_ETH_XTYPE|IFM_TMASK); - media |= IFM_OTHER; - } - return (media); + ifm = if_getsoftc(ifp, IF_MEDIA); + if_setsoftc(ifp, IF_MEDIA, NULL); + free(ifm, M_IFMEDIA); } /* * Device-independent media ioctl support function. */ int -ifmedia_ioctl(ifp, ifr, ifm, cmd) - struct ifnet *ifp; - struct ifreq *ifr; - struct ifmedia *ifm; - u_long cmd; +ifmedia_ioctl(struct ifnet *ifp, struct ifreq *ifr, u_long cmd) { - struct ifmedia_entry *match; struct ifmediareq *ifmr = (struct ifmediareq *) ifr; - int error = 0; + struct ifmedia *ifm; + if_media_t newmedia, *match; + int i, error; - if (ifp == NULL || ifr == NULL || ifm == NULL) - return(EINVAL); + ifm = if_getsoftc(ifp, IF_MEDIA); + if (ifm == NULL) + return (ENODEV); + error = 0; switch (cmd) { - - /* - * Set the current media. - */ case SIOCSIFMEDIA: - { - struct ifmedia_entry *oldentry; - int oldmedia; - int newmedia = ifr->ifr_media; - - match = ifmedia_match(ifm, newmedia, ifm->ifm_mask); + newmedia = ifr->ifr_media; + match = ifmedia_match(ifm, newmedia); if (match == NULL) { #ifdef IFMEDIA_DEBUG if (ifmedia_debug) { - printf( - "ifmedia_ioctl: no media found for 0x%x\n", - newmedia); + printf("%s: no media found for 0x%x\n", + __func__, newmedia); } #endif return (ENXIO); @@ -252,14 +137,11 @@ ifmedia_ioctl(ifp, ifr, ifm, cmd) /* * If no change, we're done. - * XXX Automedia may invole software intervention. - * Keep going in case the connected media changed. - * Similarly, if best match changed (kernel debugger?). */ if ((IFM_SUBTYPE(newmedia) != IFM_AUTO) && (newmedia == ifm->ifm_media) && (match == ifm->ifm_cur)) - return 0; + return (0); /* * We found a match, now make the driver switch to it. @@ -268,57 +150,52 @@ ifmedia_ioctl(ifp, ifr, ifm, cmd) */ #ifdef IFMEDIA_DEBUG if (ifmedia_debug) { - printf("ifmedia_ioctl: switching %s to ", - ifp->if_xname); - ifmedia_printword(match->ifm_media); + printf("%s: switching %s to ", __func__, ifp->if_xname); + ifmedia_printword(*match); } #endif - oldentry = ifm->ifm_cur; - oldmedia = ifm->ifm_media; + error = ifp->if_ops->ifop_media_change(ifp, newmedia); + if (error) + break; ifm->ifm_cur = match; ifm->ifm_media = newmedia; - error = (*ifm->ifm_change)(ifp); - if (error) { - ifm->ifm_cur = oldentry; - ifm->ifm_media = oldmedia; - } + /* + * Some drivers, e.g. miibus(4) enabled, already set the + * baudrate in ifop_media_change, but some may not. + */ + ifp->if_baudrate = ifmedia_baudrate(newmedia); + break; - } /* * Get list of available media and current media on interface. */ case SIOCGIFMEDIA: case SIOCGIFXMEDIA: - { - struct ifmedia_entry *ep; - int i; - if (ifmr->ifm_count < 0) return (EINVAL); if (cmd == SIOCGIFMEDIA) { ifmr->ifm_active = ifmr->ifm_current = ifm->ifm_cur ? - compat_media(ifm->ifm_cur->ifm_media) : IFM_NONE; + ifmedia_compat(*ifm->ifm_cur) : IFM_NONE; } else { ifmr->ifm_active = ifmr->ifm_current = ifm->ifm_cur ? - ifm->ifm_cur->ifm_media : IFM_NONE; + *ifm->ifm_cur : IFM_NONE; } ifmr->ifm_mask = ifm->ifm_mask; ifmr->ifm_status = 0; - (*ifm->ifm_status)(ifp, ifmr); + ifp->if_ops->ifop_media_status(ifp, ifmr); /* - * If there are more interfaces on the list, count + * If there are more supported mediae on the list, count * them. This allows the caller to set ifmr->ifm_count * to 0 on the first call to know how much space to * allocate. */ - i = 0; - LIST_FOREACH(ep, &ifm->ifm_list, ifm_list) - if (i++ < ifmr->ifm_count) { - error = copyout(&ep->ifm_media, - ifmr->ifm_ulist + i - 1, sizeof(int)); + for (i = 0; ifm->ifm_array[i] != 0; i++) + if (i < ifmr->ifm_count) { + error = copyout(&ifm->ifm_array[i], + ifmr->ifm_ulist + i, sizeof(if_media_t)); if (error) break; } @@ -326,7 +203,6 @@ ifmedia_ioctl(ifp, ifr, ifm, cmd) error = ifmr->ifm_count ? E2BIG : 0; ifmr->ifm_count = i; break; - } default: return (EINVAL); @@ -336,33 +212,71 @@ ifmedia_ioctl(ifp, ifr, ifm, cmd) } /* - * Find media entry matching a given ifm word. - * + * Upcall from driver to report new media status. + * We intentionally don't change ifm_cur or ifm_media, since this + * upcall should come only in case if media is set to autonegotiation. + */ +void +if_media_status(struct ifnet *ifp, if_media_t media) +{ + + if_setbaudrate(ifp, ifmedia_baudrate(media)); + if_link_state_change(ifp, ifmedia_link_state(media)); +} + +/* + * Interface wants to change its media list. */ -static struct ifmedia_entry * -ifmedia_match(ifm, target, mask) - struct ifmedia *ifm; - int target; - int mask; +void +if_media_change(struct ifnet *ifp, if_media_t *array, if_media_t cur) { - struct ifmedia_entry *match, *next; + struct ifmedia *ifm; + + ifm = if_getsoftc(ifp, IF_MEDIA); + ifm->ifm_array = array; + ifm->ifm_cur = ifmedia_match(ifm, cur); + ifm->ifm_media = *ifm->ifm_cur; + + ifp->if_baudrate = ifmedia_baudrate(ifm->ifm_media); +} +/* + * Find media entry index matching a given ifm word. + */ +static if_media_t * +ifmedia_match(struct ifmedia *ifm, if_media_t target) +{ + if_media_t *match, mask; + + mask = ~ifm->ifm_mask; match = NULL; - mask = ~mask; - LIST_FOREACH(next, &ifm->ifm_list, ifm_list) { - if ((next->ifm_media & mask) == (target & mask)) { + for (int i = 0; ifm->ifm_array[i] != 0; i++) + if ((ifm->ifm_array[i] & mask) == (target & mask)) { #if defined(IFMEDIA_DEBUG) || defined(DIAGNOSTIC) - if (match) { - printf("ifmedia_match: multiple match for " - "0x%x/0x%x\n", target, mask); - } + if (match != NULL) + printf("%s: multiple match for " + "0x%x/0x%x\n", __func__, target, mask); #endif - match = next; + match = &ifm->ifm_array[i]; } - } - return match; + return (match); +} + +/* + * Given a media word, return one suitable for an application + * using the original encoding. + */ +static if_media_t +ifmedia_compat(if_media_t media) +{ + + if (IFM_TYPE(media) == IFM_ETHER && IFM_SUBTYPE(media) > IFM_OTHER) { + media &= ~(IFM_ETH_XTYPE|IFM_TMASK); + media |= IFM_OTHER; + } + return (media); } /* @@ -372,8 +286,8 @@ ifmedia_match(ifm, target, mask) static const struct ifmedia_baudrate ifmedia_baudrate_descriptions[] = IFM_BAUDRATE_DESCRIPTIONS; -uint64_t -ifmedia_baudrate(int mword) +static uint64_t +ifmedia_baudrate(if_media_t mword) { int i; @@ -386,7 +300,7 @@ ifmedia_baudrate(int mword) return (0); } -int +static int ifmedia_link_state(u_int mstatus) { @@ -400,6 +314,9 @@ ifmedia_link_state(u_int mstatus) } #ifdef IFMEDIA_DEBUG +SYSCTL_INT(_debug, OID_AUTO, ifmedia, CTLFLAG_RW, &ifmedia_debug, + 0, "if_media debugging msgs"); + struct ifmedia_description ifm_type_descriptions[] = IFM_TYPE_DESCRIPTIONS; Modified: projects/ifnet/sys/net/if_media.h ============================================================================== --- projects/ifnet/sys/net/if_media.h Sun Apr 26 12:24:42 2015 (r282020) +++ projects/ifnet/sys/net/if_media.h Sun Apr 26 15:40:58 2015 (r282021) @@ -39,83 +39,10 @@ #define _NET_IF_MEDIA_H_ /* - * Prototypes and definitions for BSD/OS-compatible network interface - * media selection. + * Interface media description could be bigger than a 32-bit word, + * but a conservative decision was taken in r281236. * - * Where it is safe to do so, this code strays slightly from the BSD/OS - * design. Software which uses the API (device drivers, basically) - * shouldn't notice any difference. - * - * Many thanks to Matt Thomas for providing the information necessary - * to implement this interface. - */ - -#ifdef _KERNEL - -#include - -struct ifnet; - -/* - * Driver callbacks for media status and change requests. - */ -typedef int (*ifm_change_cb_t)(struct ifnet *); -typedef void (*ifm_stat_cb_t)(struct ifnet *, struct ifmediareq *req); - -/* - * In-kernel representation of a single supported media type. - */ -struct ifmedia_entry { - LIST_ENTRY(ifmedia_entry) ifm_list; - int ifm_media; /* description of this media attachment */ - int ifm_data; /* for driver-specific use */ - void *ifm_aux; /* for driver-specific use */ -}; - -/* - * One of these goes into a network interface's softc structure. - * It is used to keep general media state. - */ -struct ifmedia { - int ifm_mask; /* mask of changes we don't care about */ - int ifm_media; /* current user-set media word */ - struct ifmedia_entry *ifm_cur; /* currently selected media */ - LIST_HEAD(, ifmedia_entry) ifm_list; /* list of all supported media */ - ifm_change_cb_t ifm_change; /* media change driver callback */ - ifm_stat_cb_t ifm_status; /* media status driver callback */ -}; - -/* Initialize an interface's struct if_media field. */ -void ifmedia_init(struct ifmedia *ifm, int dontcare_mask, - ifm_change_cb_t change_callback, ifm_stat_cb_t status_callback); - -/* Remove all mediums from a struct ifmedia. */ -void ifmedia_removeall( struct ifmedia *ifm); - -/* Add one supported medium to a struct ifmedia. */ -void ifmedia_add(struct ifmedia *ifm, int mword, int data, void *aux); - -/* Add an array (of ifmedia_entry) media to a struct ifmedia. */ -void ifmedia_list_add(struct ifmedia *mp, struct ifmedia_entry *lp, - int count); - -/* Set default media type on initialization. */ -void ifmedia_set(struct ifmedia *ifm, int mword); - -/* Common ioctl function for getting/setting media, called by driver. */ -int ifmedia_ioctl(struct ifnet *ifp, struct ifreq *ifr, - struct ifmedia *ifm, u_long cmd); - -/* Compute baudrate for a given media. */ -uint64_t ifmedia_baudrate(int); - -/* Convert media status to link state. */ -int ifmedia_link_state(u_int); - -#endif /*_KERNEL */ - -/* - * if_media Options word: + * Options word: * Bits Use * ---- ------- * 0-4 Media variant @@ -126,6 +53,7 @@ int ifmedia_link_state(u_int); * 20-27 Shared (global) options * 28-31 Instance */ +typedef int if_media_t; /* * Ethernet From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 15:42:15 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7F8BD16C; Sun, 26 Apr 2015 15:42:15 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6C058136C; Sun, 26 Apr 2015 15:42:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QFgFFv000983; Sun, 26 Apr 2015 15:42:15 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QFgFii000980; Sun, 26 Apr 2015 15:42:15 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504261542.t3QFgFii000980@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 15:42:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282022 - projects/ifnet/sys/dev/virtio/network X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 15:42:15 -0000 Author: glebius Date: Sun Apr 26 15:42:14 2015 New Revision: 282022 URL: https://svnweb.freebsd.org/changeset/base/282022 Log: Convert vtnet(4) to new ifmedia KPI. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/virtio/network/if_vtnet.c projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h Modified: projects/ifnet/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- projects/ifnet/sys/dev/virtio/network/if_vtnet.c Sun Apr 26 15:40:58 2015 (r282021) +++ projects/ifnet/sys/dev/virtio/network/if_vtnet.c Sun Apr 26 15:42:14 2015 (r282022) @@ -194,7 +194,7 @@ static void vtnet_unregister_vlan(void * static int vtnet_is_link_up(struct vtnet_softc *); static void vtnet_update_link_status(struct vtnet_softc *); -static int vtnet_ifmedia_upd(if_t); +static int vtnet_ifmedia_upd(if_t, if_media_t); static void vtnet_ifmedia_sts(if_t, struct ifmediareq *); static void vtnet_get_hwaddr(struct vtnet_softc *); static void vtnet_set_hwaddr(struct vtnet_softc *); @@ -294,12 +294,16 @@ DRIVER_MODULE(vtnet, virtio_pci, vtnet_d MODULE_VERSION(vtnet, 1); MODULE_DEPEND(vtnet, virtio, 1, 1, 1); +static if_media_t vtnet_mediae[] = { VTNET_MEDIATYPE, 0 }; + static struct ifdriver vtnet_ifdrv = { .ifdrv_ops = { .ifop_ioctl = vtnet_ioctl, .ifop_get_counter = vtnet_get_counter, .ifop_transmit = vtnet_txq_mq_start, .ifop_qflush = vtnet_qflush, + .ifop_media_change = vtnet_ifmedia_upd, + .ifop_media_status = vtnet_ifmedia_sts, }, .ifdrv_name = "vtnet", .ifdrv_type = IFT_ETHER, @@ -440,8 +444,6 @@ vtnet_detach(device_t dev) sc->vtnet_vlan_detach = NULL; } - ifmedia_removeall(&sc->vtnet_media); - vtnet_free_rxtx_queues(sc); vtnet_free_rx_filters(sc); @@ -891,6 +893,8 @@ vtnet_setup_interface(struct vtnet_softc .ifat_baudrate = IF_Gbps(10), /* Approx. */ .ifat_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, .ifat_capabilities = IFCAP_JUMBO_MTU | IFCAP_VLAN_MTU, + .ifat_mediae = vtnet_mediae, + .ifat_media = VTNET_MEDIATYPE, }; device_t dev; @@ -960,11 +964,6 @@ vtnet_setup_interface(struct vtnet_softc vtnet_set_rx_process_limit(sc); vtnet_set_tx_intr_threshold(sc); - ifmedia_init(&sc->vtnet_media, IFM_IMASK, vtnet_ifmedia_upd, - vtnet_ifmedia_sts); - ifmedia_add(&sc->vtnet_media, VTNET_MEDIATYPE, 0, NULL); - ifmedia_set(&sc->vtnet_media, VTNET_MEDIATYPE); - sc->vtnet_ifp = if_attach(&ifat); } @@ -1055,11 +1054,6 @@ vtnet_ioctl(if_t ifp, u_long cmd, void * VTNET_CORE_UNLOCK(sc); break; - case SIOCSIFMEDIA: - case SIOCGIFMEDIA: - error = ifmedia_ioctl(ifp, ifr, &sc->vtnet_media, cmd); - break; - case SIOCSIFCAP: sc->vtnet_capenable = ifr->ifr_reqcap; /* These Rx features require us to renegotiate. */ @@ -3350,15 +3344,10 @@ vtnet_update_link_status(struct vtnet_so } static int -vtnet_ifmedia_upd(if_t ifp) +vtnet_ifmedia_upd(if_t ifp, if_media_t media) { - struct vtnet_softc *sc; - struct ifmedia *ifm; - - sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); - ifm = &sc->vtnet_media; - if (IFM_TYPE(ifm->ifm_media) != IFM_ETHER) + if (IFM_TYPE(media) != IFM_ETHER) return (EINVAL); return (0); Modified: projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h ============================================================================== --- projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h Sun Apr 26 15:40:58 2015 (r282021) +++ projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h Sun Apr 26 15:42:14 2015 (r282022) @@ -166,7 +166,6 @@ struct vtnet_softc { uint64_t vtnet_features; struct vtnet_statistics vtnet_stats; struct callout vtnet_tick_ch; - struct ifmedia vtnet_media; eventhandler_tag vtnet_vlan_attach; eventhandler_tag vtnet_vlan_detach; From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 16:45:02 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BD138EBB; Sun, 26 Apr 2015 16:45:02 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A9B8F1963; Sun, 26 Apr 2015 16:45:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QGj29W031368; Sun, 26 Apr 2015 16:45:02 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QGj0KZ031336; Sun, 26 Apr 2015 16:45:00 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504261645.t3QGj0KZ031336@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 16:45:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282026 - projects/ifnet/sys/dev/mii X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 16:45:02 -0000 Author: glebius Date: Sun Apr 26 16:44:59 2015 New Revision: 282026 URL: https://svnweb.freebsd.org/changeset/base/282026 Log: Convert miibus(4) to new ifmedia KPI. This requires some changes. o miibus(4) gets rid of interface knowledge entirely. It includes only if_media.h, to get media macros. It doesn't include if.h. o Argument list to mii_attach() is reduced by the function pointers, that now live in ifops. o struct mii_data now stores mii_media, which caches value of currently selected media. XXX: it might be, that mii_media, mii_media_active and mii_media_status can be collapsed into one word, but that's not entirely clear. So take conservative approach. o struct mii_data now stores array of available mediae, accessible by the NIC driver. XXX: since miibus can hold several phys, the array is allocated dynamically. The size of array MII_MAX_MEDIAE might need a bump in future, in case if new phys ever appear. Or a more smart allocation method should be coded. However, it looks like future NICs aren't going to use miibus(4), and definitely aren't going to carry > 1 phys. o phy_status, phy_service and phy_reset now take media as argument, and so do some internal functions. Before, this functions used to take current media from struct ifmedia, and ifmedia_ioctl() used to restore it to previous value, in case of and error. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/mii/acphy.c projects/ifnet/sys/dev/mii/amphy.c projects/ifnet/sys/dev/mii/atphy.c projects/ifnet/sys/dev/mii/axphy.c projects/ifnet/sys/dev/mii/bmtphy.c projects/ifnet/sys/dev/mii/brgphy.c projects/ifnet/sys/dev/mii/ciphy.c projects/ifnet/sys/dev/mii/e1000phy.c projects/ifnet/sys/dev/mii/gentbi.c projects/ifnet/sys/dev/mii/icsphy.c projects/ifnet/sys/dev/mii/ip1000phy.c projects/ifnet/sys/dev/mii/jmphy.c projects/ifnet/sys/dev/mii/lxtphy.c projects/ifnet/sys/dev/mii/micphy.c projects/ifnet/sys/dev/mii/mii.c projects/ifnet/sys/dev/mii/mii_physubr.c projects/ifnet/sys/dev/mii/miivar.h projects/ifnet/sys/dev/mii/mlphy.c projects/ifnet/sys/dev/mii/nsgphy.c projects/ifnet/sys/dev/mii/nsphy.c projects/ifnet/sys/dev/mii/nsphyter.c projects/ifnet/sys/dev/mii/pnaphy.c projects/ifnet/sys/dev/mii/qsphy.c projects/ifnet/sys/dev/mii/rdcphy.c projects/ifnet/sys/dev/mii/rgephy.c projects/ifnet/sys/dev/mii/rlphy.c projects/ifnet/sys/dev/mii/rlswitch.c projects/ifnet/sys/dev/mii/smcphy.c projects/ifnet/sys/dev/mii/smscphy.c projects/ifnet/sys/dev/mii/tdkphy.c projects/ifnet/sys/dev/mii/tlphy.c projects/ifnet/sys/dev/mii/truephy.c projects/ifnet/sys/dev/mii/ukphy.c projects/ifnet/sys/dev/mii/ukphy_subr.c projects/ifnet/sys/dev/mii/xmphy.c Modified: projects/ifnet/sys/dev/mii/acphy.c ============================================================================== --- projects/ifnet/sys/dev/mii/acphy.c Sun Apr 26 16:37:27 2015 (r282025) +++ projects/ifnet/sys/dev/mii/acphy.c Sun Apr 26 16:44:59 2015 (r282026) @@ -67,7 +67,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -100,9 +99,10 @@ static driver_t acphy_driver = { DRIVER_MODULE(acphy, miibus, acphy_driver, acphy_devclass, 0, 0); -static int acphy_service(struct mii_softc *, struct mii_data *, int); -static void acphy_reset(struct mii_softc *); -static void acphy_status(struct mii_softc *); +static int acphy_service(struct mii_softc *, struct mii_data *, + mii_cmd_t, if_media_t); +static void acphy_reset(struct mii_softc *, if_media_t); +static void acphy_status(struct mii_softc *, if_media_t); static const struct mii_phydesc acphys[] = { MII_PHY_DESC(ALTIMA, AC101), @@ -134,22 +134,22 @@ acphy_attach(device_t dev) mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &acphy_funcs, 0); - PHY_RESET(sc); + PHY_RESET(sc, 0); sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & sc->mii_capmask; device_printf(dev, " "); -#define ADD(m) ifmedia_add(&sc->mii_pdata->mii_media, (m), 0, NULL) if ((PHY_READ(sc, MII_ACPHY_MCTL) & AC_MCTL_FX_SEL) != 0) { sc->mii_flags |= MIIF_HAVEFIBER; - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_FX, 0, sc->mii_inst)); + mii_phy_add_media(sc->mii_pdata, IFM_MAKEWORD(IFM_ETHER, + IFM_100_FX, 0, sc->mii_inst)); printf("100baseFX, "); - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_FX, IFM_FDX, sc->mii_inst)); + mii_phy_add_media(sc->mii_pdata, IFM_MAKEWORD(IFM_ETHER, + IFM_100_FX, IFM_FDX, sc->mii_inst)); printf("100baseFX-FDX, "); } -#undef ADD - mii_phy_add_media(sc); + mii_phy_generic_media(sc); printf("\n"); MIIBUS_MEDIAINIT(sc->mii_dev); @@ -157,7 +157,8 @@ acphy_attach(device_t dev) } static int -acphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +acphy_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t media) { int reg; @@ -171,7 +172,7 @@ acphy_service(struct mii_softc *sc, stru if (reg & (BMCR_ISO | BMCR_PDOWN)) PHY_WRITE(sc, MII_BMCR, reg & ~(BMCR_ISO | BMCR_PDOWN)); - mii_phy_setmedia(sc); + mii_phy_setmedia(sc, media); break; case MII_TICK: @@ -182,7 +183,7 @@ acphy_service(struct mii_softc *sc, stru } /* Update the media status. */ - PHY_STATUS(sc); + PHY_STATUS(sc, media); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -190,10 +191,9 @@ acphy_service(struct mii_softc *sc, stru } static void -acphy_status(struct mii_softc *sc) +acphy_status(struct mii_softc *sc, if_media_t media) { struct mii_data *mii = sc->mii_pdata; - struct ifmedia_entry *ife = mii->mii_media.ifm_cur; int bmsr, bmcr, diag; mii->mii_media_status = IFM_AVALID; @@ -232,13 +232,13 @@ acphy_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_HDX; } else - mii->mii_media_active = ife->ifm_media; + mii->mii_media_active = media; } static void -acphy_reset(struct mii_softc *sc) +acphy_reset(struct mii_softc *sc, if_media_t media) { - mii_phy_reset(sc); + mii_phy_reset(sc, media); PHY_WRITE(sc, MII_ACPHY_INT, 0); } Modified: projects/ifnet/sys/dev/mii/amphy.c ============================================================================== --- projects/ifnet/sys/dev/mii/amphy.c Sun Apr 26 16:37:27 2015 (r282025) +++ projects/ifnet/sys/dev/mii/amphy.c Sun Apr 26 16:44:59 2015 (r282026) @@ -46,7 +46,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -79,8 +78,9 @@ static driver_t amphy_driver = { DRIVER_MODULE(amphy, miibus, amphy_driver, amphy_devclass, 0, 0); -static int amphy_service(struct mii_softc *, struct mii_data *, int); -static void amphy_status(struct mii_softc *); +static int amphy_service(struct mii_softc *, struct mii_data *, + mii_cmd_t, if_media_t); +static void amphy_status(struct mii_softc *, if_media_t); static const struct mii_phydesc amphys[] = { MII_PHY_DESC(xxDAVICOM, DM9102), @@ -111,7 +111,8 @@ amphy_attach(device_t dev) } static int -amphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +amphy_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t media) { switch (cmd) { @@ -119,7 +120,7 @@ amphy_service(struct mii_softc *sc, stru break; case MII_MEDIACHG: - mii_phy_setmedia(sc); + mii_phy_setmedia(sc, media); break; case MII_TICK: @@ -129,7 +130,7 @@ amphy_service(struct mii_softc *sc, stru } /* Update the media status. */ - PHY_STATUS(sc); + PHY_STATUS(sc, media); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -137,10 +138,9 @@ amphy_service(struct mii_softc *sc, stru } static void -amphy_status(struct mii_softc *sc) +amphy_status(struct mii_softc *sc, if_media_t media) { struct mii_data *mii = sc->mii_pdata; - struct ifmedia_entry *ife = mii->mii_media.ifm_cur; int bmsr, bmcr, par, anlpar; mii->mii_media_status = IFM_AVALID; @@ -205,5 +205,5 @@ amphy_status(struct mii_softc *sc) if ((mii->mii_media_active & IFM_FDX) != 0) mii->mii_media_active |= mii_phy_flowstatus(sc); } else - mii->mii_media_active = ife->ifm_media; + mii->mii_media_active = media; } Modified: projects/ifnet/sys/dev/mii/atphy.c ============================================================================== --- projects/ifnet/sys/dev/mii/atphy.c Sun Apr 26 16:37:27 2015 (r282025) +++ projects/ifnet/sys/dev/mii/atphy.c Sun Apr 26 16:44:59 2015 (r282026) @@ -39,7 +39,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -71,11 +70,12 @@ static driver_t atphy_driver = { DRIVER_MODULE(atphy, miibus, atphy_driver, atphy_devclass, 0, 0); -static int atphy_service(struct mii_softc *, struct mii_data *, int); -static void atphy_status(struct mii_softc *); -static void atphy_reset(struct mii_softc *); -static uint16_t atphy_anar(struct ifmedia_entry *); -static int atphy_setmedia(struct mii_softc *, int); +static int atphy_service(struct mii_softc *, struct mii_data *, mii_cmd_t, + if_media_t); +static void atphy_status(struct mii_softc *, if_media_t); +static void atphy_reset(struct mii_softc *, if_media_t); +static uint16_t atphy_anar(if_media_t); +static int atphy_setmedia(struct mii_softc *, if_media_t); static const struct mii_phydesc atphys[] = { MII_PHY_DESC(xxATHEROS, F1), @@ -107,9 +107,9 @@ atphy_attach(device_t dev) } static int -atphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +atphy_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t media) { - struct ifmedia_entry *ife = mii->mii_media.ifm_cur; uint16_t anar, bmcr, bmsr; switch (cmd) { @@ -117,14 +117,14 @@ atphy_service(struct mii_softc *sc, stru break; case MII_MEDIACHG: - if (IFM_SUBTYPE(ife->ifm_media) == IFM_AUTO || - IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) { - atphy_setmedia(sc, ife->ifm_media); + if (IFM_SUBTYPE(media) == IFM_AUTO || + IFM_SUBTYPE(media) == IFM_1000_T) { + atphy_setmedia(sc, media); break; } bmcr = 0; - switch (IFM_SUBTYPE(ife->ifm_media)) { + switch (IFM_SUBTYPE(media)) { case IFM_100_TX: bmcr = BMCR_S100; break; @@ -147,10 +147,10 @@ atphy_service(struct mii_softc *sc, stru return (EINVAL); } - anar = atphy_anar(ife); - if ((ife->ifm_media & IFM_FDX) != 0) { + anar = atphy_anar(media); + if ((media & IFM_FDX) != 0) { bmcr |= BMCR_FDX; - if ((ife->ifm_media & IFM_FLOW) != 0 || + if ((media & IFM_FLOW) != 0 || (sc->mii_flags & MIIF_FORCEPAUSE) != 0) anar |= ANAR_PAUSE_TOWARDS; } @@ -172,7 +172,7 @@ done: /* * Only used for autonegotiation. */ - if (IFM_SUBTYPE(ife->ifm_media) != IFM_AUTO) { + if (IFM_SUBTYPE(media) != IFM_AUTO) { sc->mii_ticks = 0; break; } @@ -194,12 +194,12 @@ done: return (0); sc->mii_ticks = 0; - atphy_setmedia(sc, ife->ifm_media); + atphy_setmedia(sc, media); break; } /* Update the media status. */ - PHY_STATUS(sc); + PHY_STATUS(sc, media); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -207,7 +207,7 @@ done: } static void -atphy_status(struct mii_softc *sc) +atphy_status(struct mii_softc *sc, if_media_t media) { struct mii_data *mii = sc->mii_pdata; uint32_t bmsr, bmcr, ssr; @@ -270,9 +270,8 @@ atphy_status(struct mii_softc *sc) } static void -atphy_reset(struct mii_softc *sc) +atphy_reset(struct mii_softc *sc, if_media_t media) { - struct ifmedia_entry *ife = sc->mii_pdata->mii_media.ifm_cur; uint32_t reg; int i; @@ -292,7 +291,7 @@ atphy_reset(struct mii_softc *sc) PHY_WRITE(sc, ATPHY_SCR, reg); /* Workaround F1 bug to reset phy. */ - atphy_setmedia(sc, ife == NULL ? IFM_AUTO : ife->ifm_media); + atphy_setmedia(sc, media); for (i = 0; i < 1000; i++) { DELAY(1); @@ -302,12 +301,12 @@ atphy_reset(struct mii_softc *sc) } static uint16_t -atphy_anar(struct ifmedia_entry *ife) +atphy_anar(if_media_t media) { uint16_t anar; anar = 0; - switch (IFM_SUBTYPE(ife->ifm_media)) { + switch (IFM_SUBTYPE(media)) { case IFM_AUTO: anar |= ANAR_TX_FD | ANAR_TX | ANAR_10_FD | ANAR_10; return (anar); @@ -323,8 +322,8 @@ atphy_anar(struct ifmedia_entry *ife) return (0); } - if ((ife->ifm_media & IFM_FDX) != 0) { - if (IFM_SUBTYPE(ife->ifm_media) == IFM_100_TX) + if ((media & IFM_FDX) != 0) { + if (IFM_SUBTYPE(media) == IFM_100_TX) anar |= ANAR_TX_FD; else anar |= ANAR_10_FD; @@ -334,7 +333,7 @@ atphy_anar(struct ifmedia_entry *ife) } static int -atphy_setmedia(struct mii_softc *sc, int media) +atphy_setmedia(struct mii_softc *sc, if_media_t media) { uint16_t anar; Modified: projects/ifnet/sys/dev/mii/axphy.c ============================================================================== --- projects/ifnet/sys/dev/mii/axphy.c Sun Apr 26 16:37:27 2015 (r282025) +++ projects/ifnet/sys/dev/mii/axphy.c Sun Apr 26 16:44:59 2015 (r282026) @@ -38,7 +38,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -69,8 +68,9 @@ static driver_t axphy_driver = { DRIVER_MODULE(axphy, miibus, axphy_driver, axphy_devclass, 0, 0); -static int axphy_service(struct mii_softc *, struct mii_data *, int); -static void axphy_status(struct mii_softc *); +static int axphy_service(struct mii_softc *, struct mii_data *, mii_cmd_t, + if_media_t); +static void axphy_status(struct mii_softc *, if_media_t); static const struct mii_phydesc axphys[] = { MII_PHY_DESC(xxASIX, AX88X9X), @@ -99,13 +99,14 @@ axphy_attach(device_t dev) mii_phy_dev_attach(dev, MIIF_NOISOLATE | MIIF_NOMANPAUSE, &axphy_funcs, 1); - mii_phy_setmedia(sc); + mii_phy_setmedia(sc, (IFM_ETHER | IFM_AUTO)); return (0); } static int -axphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +axphy_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t media) { switch (cmd) { @@ -113,7 +114,7 @@ axphy_service(struct mii_softc *sc, stru break; case MII_MEDIACHG: - mii_phy_setmedia(sc); + mii_phy_setmedia(sc, media); break; case MII_TICK: @@ -123,7 +124,7 @@ axphy_service(struct mii_softc *sc, stru } /* Update the media status. */ - PHY_STATUS(sc); + PHY_STATUS(sc, media); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -131,10 +132,9 @@ axphy_service(struct mii_softc *sc, stru } static void -axphy_status(struct mii_softc *sc) +axphy_status(struct mii_softc *sc, if_media_t media) { struct mii_data *mii = sc->mii_pdata; - struct ifmedia_entry *ife = mii->mii_media.ifm_cur; int bmsr, bmcr; mii->mii_media_status = IFM_AVALID; @@ -173,5 +173,5 @@ axphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_HDX; #endif } else - mii->mii_media_active = ife->ifm_media; + mii->mii_media_active = media; } Modified: projects/ifnet/sys/dev/mii/bmtphy.c ============================================================================== --- projects/ifnet/sys/dev/mii/bmtphy.c Sun Apr 26 16:37:27 2015 (r282025) +++ projects/ifnet/sys/dev/mii/bmtphy.c Sun Apr 26 16:44:59 2015 (r282026) @@ -71,7 +71,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -104,9 +103,10 @@ static driver_t bmtphy_driver = { DRIVER_MODULE(bmtphy, miibus, bmtphy_driver, bmtphy_devclass, 0, 0); -static int bmtphy_service(struct mii_softc *, struct mii_data *, int); -static void bmtphy_status(struct mii_softc *); -static void bmtphy_reset(struct mii_softc *); +static int bmtphy_service(struct mii_softc *, struct mii_data *, + mii_cmd_t, if_media_t); +static void bmtphy_status(struct mii_softc *, if_media_t); +static void bmtphy_reset(struct mii_softc *, if_media_t); static const struct mii_phydesc bmtphys_dp[] = { MII_PHY_DESC(xxBROADCOM, BCM4401), @@ -151,7 +151,8 @@ bmtphy_attach(device_t dev) } static int -bmtphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +bmtphy_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t media) { switch (cmd) { @@ -159,7 +160,7 @@ bmtphy_service(struct mii_softc *sc, str break; case MII_MEDIACHG: - mii_phy_setmedia(sc); + mii_phy_setmedia(sc, media); break; case MII_TICK: @@ -169,7 +170,7 @@ bmtphy_service(struct mii_softc *sc, str } /* Update the media status. */ - PHY_STATUS(sc); + PHY_STATUS(sc, media); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -177,14 +178,12 @@ bmtphy_service(struct mii_softc *sc, str } static void -bmtphy_status(struct mii_softc *sc) +bmtphy_status(struct mii_softc *sc, if_media_t media) { struct mii_data *mii; - struct ifmedia_entry *ife; int bmsr, bmcr, aux_csr; mii = sc->mii_pdata; - ife = mii->mii_media.ifm_cur; mii->mii_media_status = IFM_AVALID; mii->mii_media_active = IFM_ETHER; @@ -226,15 +225,15 @@ bmtphy_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_HDX; } else - mii->mii_media_active = ife->ifm_media; + mii->mii_media_active = media; } static void -bmtphy_reset(struct mii_softc *sc) +bmtphy_reset(struct mii_softc *sc, if_media_t media) { u_int16_t data; - mii_phy_reset(sc); + mii_phy_reset(sc, media); if (sc->mii_mpd_model == MII_MODEL_xxBROADCOM_BCM5221) { /* Enable shadow register mode. */ Modified: projects/ifnet/sys/dev/mii/brgphy.c ============================================================================== --- projects/ifnet/sys/dev/mii/brgphy.c Sun Apr 26 16:37:27 2015 (r282025) +++ projects/ifnet/sys/dev/mii/brgphy.c Sun Apr 26 16:44:59 2015 (r282026) @@ -47,8 +47,8 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include +#include /* XXXGL: if_b[cg]ereg.h contamination */ #include #include @@ -97,11 +97,12 @@ static driver_t brgphy_driver = { DRIVER_MODULE(brgphy, miibus, brgphy_driver, brgphy_devclass, 0, 0); -static int brgphy_service(struct mii_softc *, struct mii_data *, int); -static void brgphy_setmedia(struct mii_softc *, int); -static void brgphy_status(struct mii_softc *); -static void brgphy_mii_phy_auto(struct mii_softc *, int); -static void brgphy_reset(struct mii_softc *); +static int brgphy_service(struct mii_softc *, struct mii_data *, + mii_cmd_t, if_media_t); +static void brgphy_setmedia(struct mii_softc *, if_media_t); +static void brgphy_status(struct mii_softc *, if_media_t); +static void brgphy_mii_phy_auto(struct mii_softc *, if_media_t); +static void brgphy_reset(struct mii_softc *, if_media_t); static void brgphy_enable_loopback(struct mii_softc *); static void bcm5401_load_dspcode(struct mii_softc *); static void bcm5411_load_dspcode(struct mii_softc *); @@ -266,7 +267,7 @@ brgphy_attach(device_t dev) break; } - PHY_RESET(sc); + PHY_RESET(sc, 0); /* Read the PHY's capabilities. */ sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & sc->mii_capmask; @@ -276,13 +277,12 @@ brgphy_attach(device_t dev) /* Add the supported media types */ if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) { - mii_phy_add_media(sc); + mii_phy_generic_media(sc); printf("\n"); } else { sc->mii_anegticks = MII_ANEGTICKS_GIGE; - ifmedia_add(&sc->mii_pdata->mii_media, - IFM_MAKEWORD(IFM_ETHER, IFM_1000_SX, IFM_FDX, sc->mii_inst), - 0, NULL); + mii_phy_add_media(sc->mii_pdata, IFM_MAKEWORD(IFM_ETHER, + IFM_1000_SX, IFM_FDX, sc->mii_inst)); printf("1000baseSX-FDX, "); /* * 2.5G support is a software enabled feature @@ -290,9 +290,9 @@ brgphy_attach(device_t dev) */ if (bce_sc && (bce_sc->bce_phy_flags & BCE_PHY_2_5G_CAPABLE_FLAG)) { - ifmedia_add(&sc->mii_pdata->mii_media, + mii_phy_add_media(sc->mii_pdata, IFM_MAKEWORD(IFM_ETHER, IFM_2500_SX, IFM_FDX, - sc->mii_inst), 0, NULL); + sc->mii_inst)); printf("2500baseSX-FDX, "); } else if ((bsc->serdes_flags & BRGPHY_5708S) && bce_sc && (detect_hs21(bce_sc) != 0)) { @@ -308,8 +308,8 @@ brgphy_attach(device_t dev) printf("auto-neg workaround, "); bsc->serdes_flags |= BRGPHY_NOANWAIT; } - ifmedia_add(&sc->mii_pdata->mii_media, IFM_MAKEWORD(IFM_ETHER, - IFM_AUTO, 0, sc->mii_inst), 0, NULL); + mii_phy_add_media(sc->mii_pdata, IFM_MAKEWORD(IFM_ETHER, + IFM_AUTO, 0, sc->mii_inst)); printf("auto\n"); } @@ -318,9 +318,9 @@ brgphy_attach(device_t dev) } static int -brgphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +brgphy_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t media) { - struct ifmedia_entry *ife = mii->mii_media.ifm_cur; int val; switch (cmd) { @@ -328,18 +328,18 @@ brgphy_service(struct mii_softc *sc, str break; case MII_MEDIACHG: /* Todo: Why is this here? Is it really needed? */ - PHY_RESET(sc); /* XXX hardware bug work-around */ + PHY_RESET(sc, media); /* XXX hardware bug work-around */ - switch (IFM_SUBTYPE(ife->ifm_media)) { + switch (IFM_SUBTYPE(media)) { case IFM_AUTO: - brgphy_mii_phy_auto(sc, ife->ifm_media); + brgphy_mii_phy_auto(sc, media); break; case IFM_2500_SX: case IFM_1000_SX: case IFM_1000_T: case IFM_100_TX: case IFM_10_T: - brgphy_setmedia(sc, ife->ifm_media); + brgphy_setmedia(sc, media); break; default: return (EINVAL); @@ -347,7 +347,7 @@ brgphy_service(struct mii_softc *sc, str break; case MII_TICK: /* Bail if autoneg isn't in process. */ - if (IFM_SUBTYPE(ife->ifm_media) != IFM_AUTO) { + if (IFM_SUBTYPE(media) != IFM_AUTO) { sc->mii_ticks = 0; break; } @@ -373,12 +373,12 @@ brgphy_service(struct mii_softc *sc, str /* Retry autonegotiation */ sc->mii_ticks = 0; - brgphy_mii_phy_auto(sc, ife->ifm_media); + brgphy_mii_phy_auto(sc, media); break; } /* Update the media status. */ - PHY_STATUS(sc); + PHY_STATUS(sc, media); /* * Callback if something changed. Note that we need to poke @@ -418,7 +418,7 @@ brgphy_service(struct mii_softc *sc, str /* None */ /****************************************************************************/ static void -brgphy_setmedia(struct mii_softc *sc, int media) +brgphy_setmedia(struct mii_softc *sc, if_media_t media) { int bmcr = 0, gig; @@ -474,7 +474,7 @@ brgphy_setmedia(struct mii_softc *sc, in /* None */ /****************************************************************************/ static void -brgphy_status(struct mii_softc *sc) +brgphy_status(struct mii_softc *sc, if_media_t media) { struct brgphy_softc *bsc = (struct brgphy_softc *)sc; struct mii_data *mii = sc->mii_pdata; @@ -611,7 +611,7 @@ brgphy_mii_phy_auto(struct mii_softc *sc { int anar, ktcr = 0; - PHY_RESET(sc); + PHY_RESET(sc, media); if ((sc->mii_flags & MIIF_HAVEFIBER) == 0) { anar = BMSR_MEDIA_TO_ANAR(sc->mii_capabilities) | ANAR_CSMA; @@ -887,7 +887,7 @@ brgphy_jumbo_settings(struct mii_softc * } static void -brgphy_reset(struct mii_softc *sc) +brgphy_reset(struct mii_softc *sc, if_media_t media) { struct bge_softc *bge_sc = NULL; struct bce_softc *bce_sc = NULL; Modified: projects/ifnet/sys/dev/mii/ciphy.c ============================================================================== --- projects/ifnet/sys/dev/mii/ciphy.c Sun Apr 26 16:37:27 2015 (r282025) +++ projects/ifnet/sys/dev/mii/ciphy.c Sun Apr 26 16:44:59 2015 (r282026) @@ -44,7 +44,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -79,9 +78,10 @@ static driver_t ciphy_driver = { DRIVER_MODULE(ciphy, miibus, ciphy_driver, ciphy_devclass, 0, 0); -static int ciphy_service(struct mii_softc *, struct mii_data *, int); -static void ciphy_status(struct mii_softc *); -static void ciphy_reset(struct mii_softc *); +static int ciphy_service(struct mii_softc *, struct mii_data *, mii_cmd_t, + if_media_t); +static void ciphy_status(struct mii_softc *, if_media_t); +static void ciphy_reset(struct mii_softc *, if_media_t); static void ciphy_fixup(struct mii_softc *); static const struct mii_phydesc ciphys[] = { @@ -120,9 +120,9 @@ ciphy_attach(device_t dev) } static int -ciphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +ciphy_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t media) { - struct ifmedia_entry *ife = mii->mii_media.ifm_cur; int reg, speed, gig; switch (cmd) { @@ -132,7 +132,7 @@ ciphy_service(struct mii_softc *sc, stru case MII_MEDIACHG: ciphy_fixup(sc); /* XXX hardware bug work-around */ - switch (IFM_SUBTYPE(ife->ifm_media)) { + switch (IFM_SUBTYPE(media)) { case IFM_AUTO: #ifdef foo /* @@ -141,7 +141,7 @@ ciphy_service(struct mii_softc *sc, stru if (PHY_READ(sc, CIPHY_MII_BMCR) & CIPHY_BMCR_AUTOEN) return (0); #endif - (void)mii_phy_auto(sc); + (void)mii_phy_auto(sc, media); break; case IFM_1000_T: speed = CIPHY_S1000; @@ -152,15 +152,15 @@ ciphy_service(struct mii_softc *sc, stru case IFM_10_T: speed = CIPHY_S10; setit: - if ((ife->ifm_media & IFM_FDX) != 0) { + if ((media & IFM_FDX) != 0) { speed |= CIPHY_BMCR_FDX; gig = CIPHY_1000CTL_AFD; } else gig = CIPHY_1000CTL_AHD; - if (IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) { + if (IFM_SUBTYPE(media) == IFM_1000_T) { gig |= CIPHY_1000CTL_MSE; - if ((ife->ifm_media & IFM_ETH_MASTER) != 0) + if ((media & IFM_ETH_MASTER) != 0) gig |= CIPHY_1000CTL_MSC; speed |= CIPHY_BMCR_AUTOEN | CIPHY_BMCR_STARTNEG; @@ -182,7 +182,7 @@ setit: /* * Only used for autonegotiation. */ - if (IFM_SUBTYPE(ife->ifm_media) != IFM_AUTO) + if (IFM_SUBTYPE(media) != IFM_AUTO) break; /* @@ -204,12 +204,12 @@ setit: break; sc->mii_ticks = 0; - mii_phy_auto(sc); + mii_phy_auto(sc, media); break; } /* Update the media status. */ - PHY_STATUS(sc); + PHY_STATUS(sc, media); /* * Callback if something changed. Note that we need to poke @@ -225,7 +225,7 @@ setit: } static void -ciphy_status(struct mii_softc *sc) +ciphy_status(struct mii_softc *sc, if_media_t media) { struct mii_data *mii = sc->mii_pdata; int bmsr, bmcr; @@ -279,10 +279,10 @@ ciphy_status(struct mii_softc *sc) } static void -ciphy_reset(struct mii_softc *sc) +ciphy_reset(struct mii_softc *sc, if_media_t media) { - mii_phy_reset(sc); + mii_phy_reset(sc, media); DELAY(1000); } Modified: projects/ifnet/sys/dev/mii/e1000phy.c ============================================================================== --- projects/ifnet/sys/dev/mii/e1000phy.c Sun Apr 26 16:37:27 2015 (r282025) +++ projects/ifnet/sys/dev/mii/e1000phy.c Sun Apr 26 16:44:59 2015 (r282026) @@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -82,10 +81,11 @@ static driver_t e1000phy_driver = { DRIVER_MODULE(e1000phy, miibus, e1000phy_driver, e1000phy_devclass, 0, 0); -static int e1000phy_service(struct mii_softc *, struct mii_data *, int); -static void e1000phy_status(struct mii_softc *); -static void e1000phy_reset(struct mii_softc *); -static int e1000phy_mii_phy_auto(struct mii_softc *, int); +static int e1000phy_service(struct mii_softc *, struct mii_data *, + mii_cmd_t, if_media_t); +static void e1000phy_status(struct mii_softc *, if_media_t); +static void e1000phy_reset(struct mii_softc *, if_media_t); +static int e1000phy_mii_phy_auto(struct mii_softc *, if_media_t); static const struct mii_phydesc e1000phys[] = { MII_PHY_DESC(MARVELL, E1000), @@ -163,7 +163,7 @@ e1000phy_attach(device_t dev) break; } - PHY_RESET(sc); + PHY_RESET(sc, 0); sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & sc->mii_capmask; if (sc->mii_capabilities & BMSR_EXTSTAT) { @@ -173,7 +173,7 @@ e1000phy_attach(device_t dev) sc->mii_flags |= MIIF_HAVE_GTCR; } device_printf(dev, " "); - mii_phy_add_media(sc); + mii_phy_generic_media(sc); printf("\n"); MIIBUS_MEDIAINIT(sc->mii_dev); @@ -181,7 +181,7 @@ e1000phy_attach(device_t dev) } static void -e1000phy_reset(struct mii_softc *sc) +e1000phy_reset(struct mii_softc *sc, if_media_t media) { uint16_t reg, page; @@ -301,9 +301,9 @@ e1000phy_reset(struct mii_softc *sc) } static int -e1000phy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +e1000phy_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t media) { - struct ifmedia_entry *ife = mii->mii_media.ifm_cur; uint16_t speed, gig; int reg; @@ -312,13 +312,13 @@ e1000phy_service(struct mii_softc *sc, s break; case MII_MEDIACHG: - if (IFM_SUBTYPE(ife->ifm_media) == IFM_AUTO) { - e1000phy_mii_phy_auto(sc, ife->ifm_media); + if (IFM_SUBTYPE(media) == IFM_AUTO) { + e1000phy_mii_phy_auto(sc, media); break; } speed = 0; - switch (IFM_SUBTYPE(ife->ifm_media)) { + switch (IFM_SUBTYPE(media)) { case IFM_1000_T: if ((sc->mii_flags & MIIF_HAVE_GTCR) == 0) return (EINVAL); @@ -345,7 +345,7 @@ e1000phy_service(struct mii_softc *sc, s return (EINVAL); } - if ((ife->ifm_media & IFM_FDX) != 0) { + if ((media & IFM_FDX) != 0) { speed |= E1000_CR_FULL_DUPLEX; gig = E1000_1GCR_1000T_FD; } else @@ -355,9 +355,9 @@ e1000phy_service(struct mii_softc *sc, s reg &= ~E1000_CR_AUTO_NEG_ENABLE; PHY_WRITE(sc, E1000_CR, reg | E1000_CR_RESET); - if (IFM_SUBTYPE(ife->ifm_media) == IFM_1000_T) { + if (IFM_SUBTYPE(media) == IFM_1000_T) { gig |= E1000_1GCR_MS_ENABLE; - if ((ife->ifm_media & IFM_ETH_MASTER) != 0) + if ((media & IFM_ETH_MASTER) != 0) gig |= E1000_1GCR_MS_VALUE; } else if ((sc->mii_flags & MIIF_HAVE_GTCR) != 0) gig = 0; @@ -370,7 +370,7 @@ done: /* * Only used for autonegotiation. */ - if (IFM_SUBTYPE(ife->ifm_media) != IFM_AUTO) { + if (IFM_SUBTYPE(media) != IFM_AUTO) { sc->mii_ticks = 0; break; } @@ -392,13 +392,13 @@ done: break; sc->mii_ticks = 0; - PHY_RESET(sc); - e1000phy_mii_phy_auto(sc, ife->ifm_media); + PHY_RESET(sc, media); + e1000phy_mii_phy_auto(sc, media); break; } /* Update the media status. */ - PHY_STATUS(sc); + PHY_STATUS(sc, media); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -406,7 +406,7 @@ done: } static void -e1000phy_status(struct mii_softc *sc) +e1000phy_status(struct mii_softc *sc, if_media_t media) { struct mii_data *mii = sc->mii_pdata; int bmcr, bmsr, ssr; @@ -469,7 +469,7 @@ e1000phy_status(struct mii_softc *sc) } static int -e1000phy_mii_phy_auto(struct mii_softc *sc, int media) +e1000phy_mii_phy_auto(struct mii_softc *sc, if_media_t media) { uint16_t reg; Modified: projects/ifnet/sys/dev/mii/gentbi.c ============================================================================== --- projects/ifnet/sys/dev/mii/gentbi.c Sun Apr 26 16:37:27 2015 (r282025) +++ projects/ifnet/sys/dev/mii/gentbi.c Sun Apr 26 16:44:59 2015 (r282026) @@ -77,7 +77,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -108,8 +107,9 @@ static driver_t gentbi_driver = { DRIVER_MODULE(gentbi, miibus, gentbi_driver, gentbi_devclass, 0, 0); -static int gentbi_service(struct mii_softc *, struct mii_data *, int); -static void gentbi_status(struct mii_softc *); +static int gentbi_service(struct mii_softc *, struct mii_data *, + mii_cmd_t, if_media_t); +static void gentbi_status(struct mii_softc *, if_media_t); static const struct mii_phy_funcs gentbi_funcs = { gentbi_service, @@ -163,7 +163,7 @@ gentbi_attach(device_t dev) mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &gentbi_funcs, 0); - PHY_RESET(sc); + PHY_RESET(sc, 0); /* * Mask out all media in the BMSR. We only are really interested @@ -175,7 +175,7 @@ gentbi_attach(device_t dev) sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR); device_printf(dev, " "); - mii_phy_add_media(sc); + mii_phy_generic_media(sc); printf("\n"); MIIBUS_MEDIAINIT(sc->mii_dev); @@ -183,7 +183,8 @@ gentbi_attach(device_t dev) } static int -gentbi_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +gentbi_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t media) { switch (cmd) { @@ -191,7 +192,7 @@ gentbi_service(struct mii_softc *sc, str break; case MII_MEDIACHG: - mii_phy_setmedia(sc); + mii_phy_setmedia(sc, media); break; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 16:48:17 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 21468182; Sun, 26 Apr 2015 16:48:17 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 06EB91981; Sun, 26 Apr 2015 16:48:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QGmGCU031890; Sun, 26 Apr 2015 16:48:16 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QGmGT3031889; Sun, 26 Apr 2015 16:48:16 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504261648.t3QGmGT3031889@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 16:48:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282027 - projects/ifnet/sys/dev/rl X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 16:48:17 -0000 Author: glebius Date: Sun Apr 26 16:48:16 2015 New Revision: 282027 URL: https://svnweb.freebsd.org/changeset/base/282027 Log: Convert rl(4) to new media and miibus KPI. Functional changes: o rl_miibus_statchg() now update baudrate and link state, so drver can declare IFCAP_LINKSTATE. Tested: Realtek 8139 Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/rl/if_rl.c Modified: projects/ifnet/sys/dev/rl/if_rl.c ============================================================================== --- projects/ifnet/sys/dev/rl/if_rl.c Sun Apr 26 16:44:59 2015 (r282026) +++ projects/ifnet/sys/dev/rl/if_rl.c Sun Apr 26 16:48:16 2015 (r282027) @@ -181,7 +181,7 @@ static void rl_eeprom_getword(struct rl_ static int rl_encap(struct rl_softc *, struct mbuf **); static int rl_list_tx_init(struct rl_softc *); static int rl_list_rx_init(struct rl_softc *); -static int rl_ifmedia_upd(if_t); +static int rl_ifmedia_upd(if_t, if_media_t); static void rl_ifmedia_sts(if_t, struct ifmediareq *); static int rl_ioctl(if_t, u_long, void *, struct thread *); static void rl_intr(void *); @@ -260,6 +260,8 @@ static struct ifdriver rl_ifdrv = { .ifdrv_ops = { .ifop_ioctl = rl_ioctl, .ifop_transmit = rl_transmit, + .ifop_media_change = rl_ifmedia_upd, + .ifop_media_status = rl_ifmedia_sts, #ifdef DEVICE_POLLING .ifop_poll = rl_poll, #endif @@ -512,6 +514,7 @@ rl_miibus_statchg(device_t dev) * Tx/Rx MACs for resolved speed, duplex and flow-control * parameters. */ + if_media_status(ifp, mii->mii_media_active | mii->mii_media_status); } /* @@ -649,10 +652,12 @@ rl_attach(device_t dev) .ifat_drv = &rl_ifdrv, .ifat_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, .ifat_capabilities = IFCAP_VLAN_MTU | IFCAP_LINKSTATE, + .ifat_mediamask = MII_MEDIA_MASK, }; uint8_t eaddr[ETHER_ADDR_LEN]; uint16_t as[3]; struct rl_softc *sc; + struct mii_data *mii; const struct rl_type *t; struct sysctl_ctx_list *ctx; struct sysctl_oid_list *children; @@ -801,12 +806,13 @@ rl_attach(device_t dev) phy = MII_PHY_ANY; if (sc->rl_type == RL_8139) phy = RL_PHYAD_INTERNAL; - error = mii_attach(dev, &sc->rl_miibus, rl_ifmedia_upd, - rl_ifmedia_sts, BMSR_DEFCAPMASK, phy, MII_OFFSET_ANY, 0); + error = mii_attach(dev, &sc->rl_miibus, BMSR_DEFCAPMASK, phy, + MII_OFFSET_ANY, 0); if (error != 0) { device_printf(dev, "attaching PHYs failed\n"); goto fail; } + mii = device_get_softc(sc->rl_miibus); error = bus_setup_intr(dev, sc->rl_irq[0], INTR_TYPE_NET | INTR_MPSAFE, NULL, rl_intr, sc, &sc->rl_intrhand[0]); if (error) { @@ -817,6 +823,8 @@ rl_attach(device_t dev) ifat.ifat_softc = sc; ifat.ifat_dunit = device_get_unit(dev); ifat.ifat_lla = eaddr; + ifat.ifat_mediae = mii->mii_mediae; + ifat.ifat_media = mii->mii_media; /* Check WOL for RTL8139B or newer controllers. */ if (sc->rl_type == RL_8139 && pci_find_cap(sc->rl_dev, PCIY_PMG, &pmc) == 0) { @@ -1642,8 +1650,6 @@ rl_init(struct rl_softc *sc) RL_LOCK_ASSERT(sc); - mii = device_get_softc(sc->rl_miibus); - if ((sc->rl_flags & RL_FLAG_RUNNING) != 0) return; @@ -1716,7 +1722,9 @@ rl_init(struct rl_softc *sc) CSR_WRITE_1(sc, RL_COMMAND, RL_CMD_TX_ENB|RL_CMD_RX_ENB); sc->rl_flags &= ~RL_FLAG_LINK; - mii_mediachg(mii); + + mii = device_get_softc(sc->rl_miibus); + mii_mediachg(mii, mii->mii_media); CSR_WRITE_1(sc, sc->rl_cfg1, RL_CFG1_DRVLOAD|RL_CFG1_FULLDUPLEX); @@ -1729,7 +1737,7 @@ rl_init(struct rl_softc *sc) * Set media options. */ static int -rl_ifmedia_upd(if_t ifp) +rl_ifmedia_upd(if_t ifp, if_media_t media) { struct rl_softc *sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); struct mii_data *mii; @@ -1737,7 +1745,7 @@ rl_ifmedia_upd(if_t ifp) mii = device_get_softc(sc->rl_miibus); RL_LOCK(sc); - mii_mediachg(mii); + mii_mediachg(mii, media); RL_UNLOCK(sc); return (0); @@ -1765,7 +1773,6 @@ static int rl_ioctl(if_t ifp, u_long command, void *data, struct thread *td) { struct ifreq *ifr = data; - struct mii_data *mii; struct rl_softc *sc; uint32_t oflags; int error = 0; @@ -1793,11 +1800,6 @@ rl_ioctl(if_t ifp, u_long command, void rl_rxfilter(sc); RL_UNLOCK(sc); break; - case SIOCGIFMEDIA: - case SIOCSIFMEDIA: - mii = device_get_softc(sc->rl_miibus); - error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command); - break; case SIOCSIFCAP: RL_LOCK(sc); #ifdef DEVICE_POLLING From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 16:49:55 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C970027D; Sun, 26 Apr 2015 16:49:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AA644198C; Sun, 26 Apr 2015 16:49:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QGntaN032142; Sun, 26 Apr 2015 16:49:55 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QGntV2032141; Sun, 26 Apr 2015 16:49:55 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504261649.t3QGntV2032141@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 16:49:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282028 - projects/ifnet/sys/dev/alc X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 16:49:55 -0000 Author: glebius Date: Sun Apr 26 16:49:54 2015 New Revision: 282028 URL: https://svnweb.freebsd.org/changeset/base/282028 Log: Convert alc(4) to new media and miibus KPI. Functional changes: o alc_miibus_statchg() now update baudrate and link state. Since change isn't tested on hardware, take conservative approach and don't declare IFCAP_LINKSTATE. Not tested. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/alc/if_alc.c Modified: projects/ifnet/sys/dev/alc/if_alc.c ============================================================================== --- projects/ifnet/sys/dev/alc/if_alc.c Sun Apr 26 16:48:16 2015 (r282027) +++ projects/ifnet/sys/dev/alc/if_alc.c Sun Apr 26 16:49:54 2015 (r282028) @@ -162,8 +162,8 @@ static uint32_t alc_miidbg_readreg(struc static uint32_t alc_miidbg_writereg(struct alc_softc *, int, int); static uint32_t alc_miiext_readreg(struct alc_softc *, int, int); static uint32_t alc_miiext_writereg(struct alc_softc *, int, int, int); -static int alc_mediachange(if_t); -static int alc_mediachange_locked(struct alc_softc *); +static int alc_mediachange(if_t, if_media_t); +static int alc_mediachange_locked(struct alc_softc *, if_media_t); static void alc_mediastatus(if_t, struct ifmediareq *); static int alc_newbuf(struct alc_softc *, struct alc_rxdesc *); static void alc_osc_reset(struct alc_softc *); @@ -232,6 +232,8 @@ static struct ifdriver alc_ifdrv = { .ifdrv_ops = { .ifop_ioctl = alc_ioctl, .ifop_transmit = alc_transmit, + .ifop_media_change = alc_mediachange, + .ifop_media_status = alc_mediastatus, }, .ifdrv_name = "alc", .ifdrv_type = IFT_ETHER, @@ -439,6 +441,9 @@ alc_miibus_statchg(device_t dev) } alc_aspm(sc, 0, IFM_SUBTYPE(mii->mii_media_active)); alc_dsp_fixup(sc, IFM_SUBTYPE(mii->mii_media_active)); + if (sc->alc_ifp != NULL) + if_media_status(sc->alc_ifp, + mii->mii_media_active | mii->mii_media_status); } static uint32_t @@ -613,21 +618,21 @@ alc_mediastatus(if_t ifp, struct ifmedia } static int -alc_mediachange(if_t ifp) +alc_mediachange(if_t ifp, if_media_t media) { struct alc_softc *sc; int error; sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); ALC_LOCK(sc); - error = alc_mediachange_locked(sc); + error = alc_mediachange_locked(sc, media); ALC_UNLOCK(sc); return (error); } static int -alc_mediachange_locked(struct alc_softc *sc) +alc_mediachange_locked(struct alc_softc *sc, if_media_t media) { struct mii_data *mii; struct mii_softc *miisc; @@ -637,8 +642,8 @@ alc_mediachange_locked(struct alc_softc mii = device_get_softc(sc->alc_miibus); LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - PHY_RESET(miisc); - error = mii_mediachg(mii); + PHY_RESET(miisc, media); + error = mii_mediachg(mii, media); return (error); } @@ -1366,11 +1371,12 @@ alc_attach(device_t dev) .ifat_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, .ifat_capabilities = IFCAP_TXCSUM | IFCAP_TSO4 | IFCAP_VLAN_MTU | IFCAP_VLAN_HWTAGGING | - IFCAP_VLAN_HWCSUM | IFCAP_VLAN_HWTSO | - IFCAP_LINKSTATE, + IFCAP_VLAN_HWCSUM | IFCAP_VLAN_HWTSO, .ifat_hwassist = ALC_CSUM_FEATURES | CSUM_TSO, + .ifat_mediamask = MII_MEDIA_MASK, }; struct alc_softc *sc; + struct mii_data *mii; int base, error, i, msic, msixc; uint16_t burst; @@ -1548,13 +1554,13 @@ alc_attach(device_t dev) alc_get_macaddr(sc); /* Set up MII bus. */ - error = mii_attach(dev, &sc->alc_miibus, alc_mediachange, - alc_mediastatus, BMSR_DEFCAPMASK, sc->alc_phyaddr, MII_OFFSET_ANY, - MIIF_DOPAUSE); + error = mii_attach(dev, &sc->alc_miibus, BMSR_DEFCAPMASK, + sc->alc_phyaddr, MII_OFFSET_ANY, MIIF_DOPAUSE); if (error != 0) { device_printf(dev, "attaching PHYs failed\n"); goto fail; } + mii = device_get_softc(sc->alc_miibus); /* Create local taskq. */ sc->alc_tq = taskqueue_create_fast("alc_taskq", M_WAITOK, @@ -1591,6 +1597,8 @@ alc_attach(device_t dev) ifat.ifat_softc = sc; ifat.ifat_dunit = device_get_unit(dev); ifat.ifat_lla = sc->alc_eaddr; + ifat.ifat_mediae = mii->mii_mediae; + ifat.ifat_media = mii->mii_media; if (pci_find_cap(dev, PCIY_PMG, &base) == 0) { ifat.ifat_capabilities |= IFCAP_WOL_MAGIC | IFCAP_WOL_MCAST; sc->alc_flags |= ALC_FLAG_PM; @@ -2972,7 +2980,6 @@ alc_ioctl(if_t ifp, u_long cmd, void *da { struct alc_softc *sc; struct ifreq *ifr; - struct mii_data *mii; uint32_t oflags; int error, mask; @@ -3020,11 +3027,6 @@ alc_ioctl(if_t ifp, u_long cmd, void *da alc_rxfilter(sc); ALC_UNLOCK(sc); break; - case SIOCSIFMEDIA: - case SIOCGIFMEDIA: - mii = device_get_softc(sc->alc_miibus); - error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, cmd); - break; case SIOCSIFCAP: ALC_LOCK(sc); mask = ifr->ifr_reqcap ^ ifr->ifr_curcap; @@ -3815,8 +3817,6 @@ alc_init(struct alc_softc *sc) ALC_LOCK_ASSERT(sc); - mii = device_get_softc(sc->alc_miibus); - if ((sc->alc_flags & ALC_FLAG_RUNNING) != 0) return; /* @@ -4184,8 +4184,10 @@ alc_init(struct alc_softc *sc) sc->alc_flags |= ALC_FLAG_RUNNING; sc->alc_flags &= ~ALC_FLAG_LINK; + /* Switch to the current media. */ - alc_mediachange_locked(sc); + mii = device_get_softc(sc->alc_miibus); + alc_mediachange_locked(sc, mii->mii_media); callout_reset(&sc->alc_tick_ch, hz, alc_tick, sc); } From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 16:51:10 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 26604371; Sun, 26 Apr 2015 16:51:10 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 14D9A1999; Sun, 26 Apr 2015 16:51:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QGp9nO032914; Sun, 26 Apr 2015 16:51:09 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QGp91V032913; Sun, 26 Apr 2015 16:51:09 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504261651.t3QGp91V032913@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 16:51:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282029 - projects/ifnet/sys/dev/msk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 16:51:10 -0000 Author: glebius Date: Sun Apr 26 16:51:09 2015 New Revision: 282029 URL: https://svnweb.freebsd.org/changeset/base/282029 Log: Convert msk(4) to new media and miibus KPI. No functional changes. Not tested. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/msk/if_msk.c Modified: projects/ifnet/sys/dev/msk/if_msk.c ============================================================================== --- projects/ifnet/sys/dev/msk/if_msk.c Sun Apr 26 16:49:54 2015 (r282028) +++ projects/ifnet/sys/dev/msk/if_msk.c Sun Apr 26 16:51:09 2015 (r282029) @@ -289,7 +289,7 @@ static void msk_set_tx_stfwd(struct msk_ static void msk_init(struct msk_if_softc *); static void msk_stop(struct msk_if_softc *); static void msk_watchdog(struct msk_if_softc *); -static int msk_mediachange(if_t); +static int msk_mediachange(if_t, if_media_t); static void msk_mediastatus(if_t, struct ifmediareq *); static void msk_phy_power(struct msk_softc *, int); static void msk_dmamap_cb(void *, bus_dma_segment_t *, int, int); @@ -398,6 +398,8 @@ static struct ifdriver msk_ifdrv = { .ifdrv_ops = { .ifop_ioctl = msk_ioctl, .ifop_transmit = msk_transmit, + .ifop_media_change = msk_mediachange, + .ifop_media_status = msk_mediastatus, }, .ifdrv_name = "msk", .ifdrv_type = IFT_ETHER, @@ -578,8 +580,7 @@ msk_miibus_statchg(device_t dev) GMAC_READ_2(sc, sc_if->msk_port, GM_GP_CTRL); } } - if_setbaudrate(ifp, ifmedia_baudrate(mii->mii_media_active)); - if_link_state_change(ifp, ifmedia_link_state(mii->mii_media_status)); + if_media_status(ifp, mii->mii_media_active | mii->mii_media_status); } static void @@ -1026,7 +1027,7 @@ msk_jumbo_newbuf(struct msk_if_softc *sc * Set media options. */ static int -msk_mediachange(if_t ifp) +msk_mediachange(if_t ifp, if_media_t media) { struct msk_if_softc *sc_if; struct mii_data *mii; @@ -1036,7 +1037,7 @@ msk_mediachange(if_t ifp) MSK_IF_LOCK(sc_if); mii = device_get_softc(sc_if->msk_miibus); - error = mii_mediachg(mii); + error = mii_mediachg(mii, media); MSK_IF_UNLOCK(sc_if); return (error); @@ -1069,7 +1070,6 @@ msk_ioctl(if_t ifp, u_long command, void { struct msk_if_softc *sc_if; struct ifreq *ifr; - struct mii_data *mii; int error, reinit, setvlan; uint32_t oflags, mask; @@ -1131,11 +1131,6 @@ msk_ioctl(if_t ifp, u_long command, void msk_rxfilter(sc_if); MSK_IF_UNLOCK(sc_if); break; - case SIOCGIFMEDIA: - case SIOCSIFMEDIA: - mii = device_get_softc(sc_if->msk_miibus); - error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command); - break; case SIOCSIFCAP: reinit = 0; setvlan = 0; @@ -1590,6 +1585,7 @@ msk_attach(device_t dev) .ifat_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, .ifat_capabilities = IFCAP_TXCSUM | IFCAP_TSO4 | IFCAP_LINKSTATE, + .ifat_mediamask = MII_MEDIA_MASK, }; struct msk_softc *sc; struct msk_if_softc *sc_if; @@ -1634,9 +1630,8 @@ msk_attach(device_t dev) /* * Do miibus setup. */ - error = mii_attach(dev, &sc_if->msk_miibus, msk_mediachange, - msk_mediastatus, BMSR_DEFCAPMASK, PHY_ADDR_MARV, MII_OFFSET_ANY, - mmd->mii_flags); + error = mii_attach(dev, &sc_if->msk_miibus, BMSR_DEFCAPMASK, + PHY_ADDR_MARV, MII_OFFSET_ANY, mmd->mii_flags); if (error) goto fail; mii = device_get_softc(sc_if->msk_miibus); @@ -1673,7 +1668,8 @@ msk_attach(device_t dev) } ifat.ifat_hwassist = MSK_CSUM_FEATURES | CSUM_TSO; ifat.ifat_capenable = ifat.ifat_capabilities; - ifat.ifat_baudrate = ifmedia_baudrate(mii->mii_media_active); + ifat.ifat_mediae = mii->mii_mediae; + ifat.ifat_media = mii->mii_media; /* * Disable RX checksum offloading on controllers that don't use @@ -3753,7 +3749,6 @@ msk_init(struct msk_if_softc *sc_if) ifp = sc_if->msk_ifp; sc = sc_if->msk_softc; - mii = device_get_softc(sc_if->msk_miibus); if ((sc_if->msk_flags & MSK_FLAG_RUNNING) != 0) return; @@ -3996,7 +3991,8 @@ msk_init(struct msk_if_softc *sc_if) sc_if->msk_flags |= MSK_FLAG_RUNNING; sc_if->msk_flags &= ~MSK_FLAG_LINK; - mii_mediachg(mii); + mii = device_get_softc(sc_if->msk_miibus); + mii_mediachg(mii, mii->mii_media); callout_reset(&sc_if->msk_tick_ch, hz, msk_tick, sc_if); } From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 16:51:55 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 785E345F; Sun, 26 Apr 2015 16:51:55 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6701A1A42; Sun, 26 Apr 2015 16:51:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QGptiY036111; Sun, 26 Apr 2015 16:51:55 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QGptW7036110; Sun, 26 Apr 2015 16:51:55 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504261651.t3QGptW7036110@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 16:51:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282030 - projects/ifnet/sys/dev/re X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 16:51:55 -0000 Author: glebius Date: Sun Apr 26 16:51:54 2015 New Revision: 282030 URL: https://svnweb.freebsd.org/changeset/base/282030 Log: Convert re(4) to new media and miibus KPI. No functional changes. Not tested. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/re/if_re.c Modified: projects/ifnet/sys/dev/re/if_re.c ============================================================================== --- projects/ifnet/sys/dev/re/if_re.c Sun Apr 26 16:51:09 2015 (r282029) +++ projects/ifnet/sys/dev/re/if_re.c Sun Apr 26 16:51:54 2015 (r282030) @@ -275,7 +275,7 @@ static void re_watchdog (struct rl_soft static int re_suspend (device_t); static int re_resume (device_t); static int re_shutdown (device_t); -static int re_ifmedia_upd (if_t); +static int re_ifmedia_upd (if_t, if_media_t); static void re_ifmedia_sts (if_t, struct ifmediareq *); static void re_eeprom_putbyte (struct rl_softc *, int); @@ -313,6 +313,8 @@ static struct ifdriver re_ifdrv = { .ifdrv_ops = { .ifop_ioctl = re_ioctl, .ifop_transmit = re_transmit, + .ifop_media_change = re_ifmedia_upd, + .ifop_media_status = re_ifmedia_sts, #ifdef DEVICE_POLLING .ifop_poll = re_poll, #endif @@ -642,8 +644,7 @@ re_miibus_statchg(device_t dev) } } - if_setbaudrate(ifp, ifmedia_baudrate(mii->mii_media_active)); - if_link_state_change(ifp, ifmedia_link_state(mii->mii_media_status)); + if_media_status(ifp, mii->mii_media_active | mii->mii_media_status); /* * RealTek controllers does not provide any interface to @@ -1228,6 +1229,7 @@ re_attach(device_t dev) .ifat_drv = &re_ifdrv, .ifat_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, .ifat_capabilities = IFCAP_LINKSTATE, + .ifat_mediamask = MII_MEDIA_MASK, }; u_char eaddr[ETHER_ADDR_LEN]; u_int16_t as[ETHER_ADDR_LEN / 2]; @@ -1669,19 +1671,15 @@ re_attach(device_t dev) phy = RE_PHYAD_INTERNAL; if (sc->rl_type == RL_8169) phy = 1; - error = mii_attach(dev, &sc->rl_miibus, re_ifmedia_upd, re_ifmedia_sts, - BMSR_DEFCAPMASK, phy, MII_OFFSET_ANY, MIIF_DOPAUSE); + error = mii_attach(dev, &sc->rl_miibus, BMSR_DEFCAPMASK, phy, + MII_OFFSET_ANY, MIIF_DOPAUSE); if (error != 0) { device_printf(dev, "attaching PHYs failed\n"); goto fail; } - mii = device_get_softc(sc->rl_miibus); - ifat.ifat_baudrate = ifmedia_baudrate(mii->mii_media_active); - - /* - * Call MI attach routine. - */ + ifat.ifat_media = mii->mii_media; + ifat.ifat_mediae = mii->mii_mediae; /* VLAN capability setup */ ifat.ifat_capabilities |= IFCAP_VLAN_MTU | IFCAP_VLAN_HWTAGGING; @@ -3062,8 +3060,6 @@ re_init(struct rl_softc *sc) RL_LOCK_ASSERT(sc); - mii = device_get_softc(sc->rl_miibus); - if ((sc->rl_flags & RL_FLAG_RUNNING) != 0) return; @@ -3294,7 +3290,8 @@ re_init(struct rl_softc *sc) sc->rl_flags |= RL_FLAG_RUNNING; sc->rl_flags &= ~RL_FLAG_LINK; - mii_mediachg(mii); + mii = device_get_softc(sc->rl_miibus); + mii_mediachg(mii, mii->mii_media); sc->rl_watchdog_timer = 0; callout_reset(&sc->rl_stat_callout, hz, re_tick, sc); @@ -3304,7 +3301,7 @@ re_init(struct rl_softc *sc) * Set media options. */ static int -re_ifmedia_upd(if_t ifp) +re_ifmedia_upd(if_t ifp, if_media_t media) { struct rl_softc *sc; struct mii_data *mii; @@ -3313,7 +3310,7 @@ re_ifmedia_upd(if_t ifp) sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); mii = device_get_softc(sc->rl_miibus); RL_LOCK(sc); - error = mii_mediachg(mii); + error = mii_mediachg(mii, media); RL_UNLOCK(sc); return (error); @@ -3344,7 +3341,6 @@ re_ioctl(if_t ifp, u_long command, void { struct rl_softc *sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); struct ifreq *ifr = (struct ifreq *) data; - struct mii_data *mii; int error = 0; uint32_t oflags; @@ -3414,11 +3410,6 @@ re_ioctl(if_t ifp, u_long command, void re_set_rxmode(sc); RL_UNLOCK(sc); break; - case SIOCGIFMEDIA: - case SIOCSIFMEDIA: - mii = device_get_softc(sc->rl_miibus); - error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, command); - break; case SIOCSIFCAP: { int mask, reinit; @@ -3748,7 +3739,7 @@ re_set_linkspeed(struct rl_softc *sc) miisc = LIST_FIRST(&mii->mii_phys); phyno = miisc->mii_phy; LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - PHY_RESET(miisc); + PHY_RESET(miisc, mii->mii_media); re_miibus_writereg(sc->rl_dev, phyno, MII_100T2CR, 0); re_miibus_writereg(sc->rl_dev, phyno, MII_ANAR, ANAR_TX_FD | ANAR_TX | ANAR_10_FD | ANAR_10 | ANAR_CSMA); From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 16:54:34 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A4C295A4; Sun, 26 Apr 2015 16:54:34 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 931FE1A55; Sun, 26 Apr 2015 16:54:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QGsY45036578; Sun, 26 Apr 2015 16:54:34 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QGsY11036577; Sun, 26 Apr 2015 16:54:34 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504261654.t3QGsY11036577@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 16:54:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282031 - projects/ifnet/sys/dev/bce X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 16:54:34 -0000 Author: glebius Date: Sun Apr 26 16:54:33 2015 New Revision: 282031 URL: https://svnweb.freebsd.org/changeset/base/282031 Log: Missed in miibus(4) commit. Required to compile brgphy. Modified: projects/ifnet/sys/dev/bce/if_bcereg.h Modified: projects/ifnet/sys/dev/bce/if_bcereg.h ============================================================================== --- projects/ifnet/sys/dev/bce/if_bcereg.h Sun Apr 26 16:51:54 2015 (r282030) +++ projects/ifnet/sys/dev/bce/if_bcereg.h Sun Apr 26 16:54:33 2015 (r282031) @@ -6382,9 +6382,6 @@ struct bce_softc /* Device resource handle */ struct resource *bce_res_mem; - /* TBI media info */ - struct ifmedia bce_ifmedia; - /* Device bus tag */ bus_space_tag_t bce_btag; From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 17:48:16 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E335CF96; Sun, 26 Apr 2015 17:48:16 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D0A0E1F04; Sun, 26 Apr 2015 17:48:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QHmGOu064648; Sun, 26 Apr 2015 17:48:16 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QHmG7O064644; Sun, 26 Apr 2015 17:48:16 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504261748.t3QHmG7O064644@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 17:48:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282034 - projects/ifnet/sys/dev/xl X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 17:48:17 -0000 Author: glebius Date: Sun Apr 26 17:48:15 2015 New Revision: 282034 URL: https://svnweb.freebsd.org/changeset/base/282034 Log: Convert xl(4) to new media and miibus KPI. xl(4) supports a zillion of varieties of 3Com NICs, so it is quite complex. Some NICs have miibus(4), and some not. Some miibus NICs have extra mediae, that are added from the NIC driver on top of phys mediae. So, unlike in other NIC drivers, the mediae list isn't static, but allocated per-softc. Actually it is possible to build a set of static mediae arrays, matching every possible NIC, but such approach would require testing on every possible NIC. Functional changes: o Since not tested on miibus(4) based xl(4), be conservative and don't declare IFCAP_LINKSTATE. Tested: 3Com 3c900B-COMBO Etherlink XL, only UTP tested Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/xl/if_xl.c projects/ifnet/sys/dev/xl/if_xlreg.h projects/ifnet/sys/dev/xl/xlphy.c Modified: projects/ifnet/sys/dev/xl/if_xl.c ============================================================================== --- projects/ifnet/sys/dev/xl/if_xl.c Sun Apr 26 17:27:55 2015 (r282033) +++ projects/ifnet/sys/dev/xl/if_xl.c Sun Apr 26 17:48:15 2015 (r282034) @@ -250,7 +250,7 @@ static void xl_setwol(struct xl_softc *) static int xl_poll(if_t, enum poll_cmd cmd, int count); #endif -static int xl_ifmedia_upd(if_t); +static int xl_ifmedia_upd(if_t, if_media_t); static void xl_ifmedia_sts(if_t, struct ifmediareq *); static int xl_eeprom_wait(struct xl_softc *); @@ -260,14 +260,14 @@ static void xl_rxfilter(struct xl_softc static void xl_rxfilter_90x(struct xl_softc *); static void xl_rxfilter_90xB(struct xl_softc *); static void xl_setcfg(struct xl_softc *); -static void xl_setmode(struct xl_softc *, int); +static void xl_setmode(struct xl_softc *, if_media_t); static void xl_reset(struct xl_softc *); static int xl_list_rx_init(struct xl_softc *); static int xl_list_tx_init(struct xl_softc *); static int xl_list_tx_init_90xB(struct xl_softc *); static void xl_wait(struct xl_softc *); static void xl_mediacheck(struct xl_softc *); -static void xl_choose_media(struct xl_softc *sc, int *media); +static void xl_choose_media(struct xl_softc *, if_media_t *); static void xl_choose_xcvr(struct xl_softc *, int); static void xl_dma_map_addr(void *, bus_dma_segment_t *, int, int); #ifdef notdef @@ -331,6 +331,8 @@ static struct ifdriver xl_ifdrv = { .ifdrv_ops = { .ifop_ioctl = xl_ioctl, .ifop_transmit = xl_transmit, + .ifop_media_change = xl_ifmedia_upd, + .ifop_media_status = xl_ifmedia_sts, #ifdef DEVICE_POLLING .ifop_poll = xl_poll, #endif @@ -474,19 +476,16 @@ xl_miibus_statchg(device_t dev) macctl &= ~XL_MACCTRL_FLOW_CONTROL_ENB; } CSR_WRITE_1(sc, XL_W3_MAC_CTRL, macctl); - if (sc->xl_ifp != NULL) { - if_setbaudrate(sc->xl_ifp, - ifmedia_baudrate(mii->mii_media_active)); - if_link_state_change(sc->xl_ifp, - ifmedia_link_state(mii->mii_media_status)); - } + if (sc->xl_ifp != NULL) + if_media_status(sc->xl_ifp, + mii->mii_media_active | mii->mii_media_status); } /* * Special support for the 3c905B-COMBO. This card has 10/100 support * plus BNC and AUI ports. This means we will have both an miibus attached * plus some non-MII media settings. In order to allow this, we have to - * add the extra media to the miibus's ifmedia struct, but we can't do + * add the extra media to the miibus's mii_data struct, but we can't do * that during xl_attach() because the miibus hasn't been attached yet. * So instead, we wait until the miibus probe/attach is done, at which * point we will get a callback telling is that it's safe to add our @@ -497,11 +496,9 @@ xl_miibus_mediainit(device_t dev) { struct xl_softc *sc; struct mii_data *mii; - struct ifmedia *ifm; sc = device_get_softc(dev); mii = device_get_softc(sc->xl_miibus); - ifm = &mii->mii_media; if (sc->xl_media & (XL_MEDIAOPT_AUI | XL_MEDIAOPT_10FL)) { /* @@ -511,23 +508,22 @@ xl_miibus_mediainit(device_t dev) sc->xl_media == XL_MEDIAOPT_10FL) { if (bootverbose) device_printf(sc->xl_dev, "found 10baseFL\n"); - ifmedia_add(ifm, IFM_ETHER | IFM_10_FL, 0, NULL); - ifmedia_add(ifm, IFM_ETHER | IFM_10_FL|IFM_HDX, 0, - NULL); + mii_phy_add_media(mii, IFM_ETHER | IFM_10_FL); + mii_phy_add_media(mii, IFM_ETHER | IFM_10_FL | IFM_HDX); if (sc->xl_caps & XL_CAPS_FULL_DUPLEX) - ifmedia_add(ifm, - IFM_ETHER | IFM_10_FL | IFM_FDX, 0, NULL); + mii_phy_add_media(mii, + IFM_ETHER | IFM_10_FL | IFM_FDX); } else { if (bootverbose) device_printf(sc->xl_dev, "found AUI\n"); - ifmedia_add(ifm, IFM_ETHER | IFM_10_5, 0, NULL); + mii_phy_add_media(mii, IFM_ETHER | IFM_10_5); } } if (sc->xl_media & XL_MEDIAOPT_BNC) { if (bootverbose) device_printf(sc->xl_dev, "found BNC\n"); - ifmedia_add(ifm, IFM_ETHER | IFM_10_2, 0, NULL); + mii_phy_add_media(mii, IFM_ETHER | IFM_10_2); } } @@ -740,7 +736,7 @@ xl_setcfg(struct xl_softc *sc) } static void -xl_setmode(struct xl_softc *sc, int media) +xl_setmode(struct xl_softc *sc, if_media_t media) { u_int32_t icfg; u_int16_t mediastat; @@ -1069,13 +1065,14 @@ xl_attach(device_t dev) .ifat_version = IF_ATTACH_VERSION, .ifat_drv = &xl_ifdrv, .ifat_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, - .ifat_capabilities = IFCAP_VLAN_MTU | IFCAP_LINKSTATE, + .ifat_capabilities = IFCAP_VLAN_MTU, }; u_char eaddr[ETHER_ADDR_LEN]; u_int16_t sinfo2, xcvr[2]; struct xl_softc *sc; if_t ifp; - int media, pmcap; + if_media_t media; + int midx, pmcap; int error = 0, rid, res, unit; uint16_t did; @@ -1086,8 +1083,6 @@ xl_attach(device_t dev) mtx_init(&sc->xl_mtx, device_get_nameunit(dev), MTX_NETWORK_LOCK, MTX_DEF); - ifmedia_init(&sc->ifmedia, 0, xl_ifmedia_upd, xl_ifmedia_sts); - did = pci_get_device(dev); sc->xl_flags = 0; @@ -1372,15 +1367,17 @@ xl_attach(device_t dev) phy = MII_PHY_ANY; if ((sc->xl_flags & XL_FLAG_PHYOK) == 0) phy = 24; - error = mii_attach(dev, &sc->xl_miibus, xl_ifmedia_upd, - xl_ifmedia_sts, BMSR_DEFCAPMASK, phy, MII_OFFSET_ANY, + error = mii_attach(dev, &sc->xl_miibus, BMSR_DEFCAPMASK, phy, + MII_OFFSET_ANY, sc->xl_type == XL_TYPE_905B ? MIIF_DOPAUSE : 0); if (error != 0) { device_printf(dev, "attaching PHYs failed\n"); goto fail; } mii = device_get_softc(sc->xl_miibus); - ifat.ifat_baudrate = ifmedia_baudrate(mii->mii_media_active); + ifat.ifat_mediae = mii->mii_mediae; + ifat.ifat_media = mii->mii_media; + ifat.ifat_mediamask = MII_MEDIA_MASK; ifat.ifat_capabilities |= IFCAP_LINKSTATE; goto media_done; } @@ -1396,14 +1393,14 @@ xl_attach(device_t dev) /* * Do ifmedia setup. */ + midx = 0; if (sc->xl_media & XL_MEDIAOPT_BT) { if (bootverbose) device_printf(dev, "found 10baseT\n"); - ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_T, 0, NULL); - ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_T|IFM_HDX, 0, NULL); + sc->xl_mediae[midx++] = IFM_ETHER | IFM_10_T; + sc->xl_mediae[midx++] = IFM_ETHER | IFM_10_T | IFM_HDX; if (sc->xl_caps & XL_CAPS_FULL_DUPLEX) - ifmedia_add(&sc->ifmedia, - IFM_ETHER|IFM_10_T|IFM_FDX, 0, NULL); + sc->xl_mediae[midx++] = IFM_ETHER | IFM_10_T | IFM_FDX; } if (sc->xl_media & (XL_MEDIAOPT_AUI|XL_MEDIAOPT_10FL)) { @@ -1414,37 +1411,35 @@ xl_attach(device_t dev) sc->xl_media == XL_MEDIAOPT_10FL) { if (bootverbose) device_printf(dev, "found 10baseFL\n"); - ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_FL, 0, NULL); - ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_FL|IFM_HDX, - 0, NULL); + sc->xl_mediae[midx++] = IFM_ETHER | IFM_10_FL; + sc->xl_mediae[midx++] = IFM_ETHER | IFM_10_FL | IFM_HDX; if (sc->xl_caps & XL_CAPS_FULL_DUPLEX) - ifmedia_add(&sc->ifmedia, - IFM_ETHER|IFM_10_FL|IFM_FDX, 0, NULL); + sc->xl_mediae[midx++] = + IFM_ETHER | IFM_10_FL | IFM_FDX; } else { if (bootverbose) device_printf(dev, "found AUI\n"); - ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_5, 0, NULL); + sc->xl_mediae[midx++] = IFM_ETHER | IFM_10_5; } } if (sc->xl_media & XL_MEDIAOPT_BNC) { if (bootverbose) device_printf(dev, "found BNC\n"); - ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_10_2, 0, NULL); + sc->xl_mediae[midx++] = IFM_ETHER | IFM_10_2; } if (sc->xl_media & XL_MEDIAOPT_BFX) { if (bootverbose) device_printf(dev, "found 100baseFX\n"); - ifmedia_add(&sc->ifmedia, IFM_ETHER|IFM_100_FX, 0, NULL); + sc->xl_mediae[midx++] = IFM_ETHER | IFM_100_FX; } media = IFM_ETHER|IFM_100_TX|IFM_FDX; xl_choose_media(sc, &media); - if (sc->xl_miibus == NULL) - ifmedia_set(&sc->ifmedia, media); - ifat.ifat_baudrate = ifmedia_baudrate(sc->ifmedia.ifm_media); + ifat.ifat_mediae = sc->xl_mediae; + ifat.ifat_media = media; media_done: if (sc->xl_flags & XL_FLAG_NO_XCVR_PWR) { @@ -1494,7 +1489,7 @@ fail: * satisfy lock assertions. */ static void -xl_choose_media(struct xl_softc *sc, int *media) +xl_choose_media(struct xl_softc *sc, if_media_t *media) { XL_LOCK(sc); @@ -1579,7 +1574,6 @@ xl_detach(device_t dev) if (sc->xl_miibus) device_delete_child(dev, sc->xl_miibus); bus_generic_detach(dev); - ifmedia_removeall(&sc->ifmedia); if (sc->xl_intrhand) bus_teardown_intr(dev, sc->xl_irq, sc->xl_intrhand); @@ -2625,7 +2619,7 @@ static void xl_init(struct xl_softc *sc) { int error, i; - struct mii_data *mii = NULL; + struct mii_data *mii; XL_LOCK_ASSERT(sc); @@ -2647,9 +2641,6 @@ xl_init(struct xl_softc *sc) xl_wait(sc); DELAY(10000); - if (sc->xl_miibus != NULL) - mii = device_get_softc(sc->xl_miibus); - /* * Clear WOL status and disable all WOL feature as WOL * would interfere Rx operation under normal environments. @@ -2812,8 +2803,10 @@ xl_init(struct xl_softc *sc) xl_wait(sc); /* XXX Downcall to miibus. */ - if (mii != NULL) - mii_mediachg(mii); + if (sc->xl_miibus != NULL) { + mii = device_get_softc(sc->xl_miibus); + mii_mediachg(mii, mii->mii_media); + } /* Select window 7 for normal operations. */ XL_SEL_WIN(7); @@ -2828,10 +2821,9 @@ xl_init(struct xl_softc *sc) * Set media options. */ static int -xl_ifmedia_upd(if_t ifp) +xl_ifmedia_upd(if_t ifp, if_media_t media) { struct xl_softc *sc; - struct ifmedia *ifm = NULL; struct mii_data *mii = NULL; sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); @@ -2839,17 +2831,13 @@ xl_ifmedia_upd(if_t ifp) if (sc->xl_miibus != NULL) mii = device_get_softc(sc->xl_miibus); - if (mii == NULL) - ifm = &sc->ifmedia; - else - ifm = &mii->mii_media; - switch (IFM_SUBTYPE(ifm->ifm_media)) { + switch (IFM_SUBTYPE(media)) { case IFM_100_FX: case IFM_10_FL: case IFM_10_2: case IFM_10_5: - xl_setmode(sc, ifm->ifm_media); + xl_setmode(sc, media); XL_UNLOCK(sc); return (0); } @@ -2860,7 +2848,7 @@ xl_ifmedia_upd(if_t ifp) sc->xl_flags &= ~XL_FLAG_RUNNING; xl_init(sc); } else { - xl_setmode(sc, ifm->ifm_media); + xl_setmode(sc, media); } XL_UNLOCK(sc); @@ -2951,7 +2939,6 @@ xl_ioctl(if_t ifp, u_long command, void struct ifreq *ifr = (struct ifreq *) data; uint32_t oflags; int error = 0; - struct mii_data *mii = NULL; sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); @@ -2979,17 +2966,6 @@ xl_ioctl(if_t ifp, u_long command, void xl_rxfilter(sc); XL_UNLOCK(sc); break; - case SIOCGIFMEDIA: - case SIOCSIFMEDIA: - if (sc->xl_miibus != NULL) - mii = device_get_softc(sc->xl_miibus); - if (mii == NULL) - error = ifmedia_ioctl(ifp, ifr, - &sc->ifmedia, command); - else - error = ifmedia_ioctl(ifp, ifr, - &mii->mii_media, command); - break; case SIOCSIFCAP: #ifdef DEVICE_POLLING if (((ifr->ifr_reqcap ^ ifr->ifr_curcap) & IFCAP_POLLING)) { Modified: projects/ifnet/sys/dev/xl/if_xlreg.h ============================================================================== --- projects/ifnet/sys/dev/xl/if_xlreg.h Sun Apr 26 17:27:55 2015 (r282033) +++ projects/ifnet/sys/dev/xl/if_xlreg.h Sun Apr 26 17:48:15 2015 (r282034) @@ -589,14 +589,12 @@ struct xl_type { struct xl_softc { if_t xl_ifp; /* interface info */ device_t xl_dev; /* device info */ - struct ifmedia ifmedia; /* media info */ bus_space_handle_t xl_bhandle; bus_space_tag_t xl_btag; void *xl_intrhand; struct resource *xl_irq; struct resource *xl_res; device_t xl_miibus; - const struct xl_type *xl_info; /* 3Com adapter info */ bus_dma_tag_t xl_mtag; bus_dmamap_t xl_tmpmap; /* spare DMA map */ u_int8_t xl_type; @@ -620,6 +618,8 @@ struct xl_softc { #ifdef DEVICE_POLLING int rxcycles; #endif +#define XL_MAX_MEDIAE 10 + if_media_t xl_mediae[XL_MAX_MEDIAE + 1]; }; #define XL_LOCK(_sc) mtx_lock(&(_sc)->xl_mtx) Modified: projects/ifnet/sys/dev/xl/xlphy.c ============================================================================== --- projects/ifnet/sys/dev/xl/xlphy.c Sun Apr 26 17:27:55 2015 (r282033) +++ projects/ifnet/sys/dev/xl/xlphy.c Sun Apr 26 17:48:15 2015 (r282034) @@ -99,8 +99,9 @@ static driver_t xlphy_driver = { DRIVER_MODULE(xlphy, miibus, xlphy_driver, xlphy_devclass, 0, 0); -static int xlphy_service(struct mii_softc *, struct mii_data *, int); -static void xlphy_reset(struct mii_softc *); +static int xlphy_service(struct mii_softc *, struct mii_data *, mii_cmd_t, + if_media_t); +static void xlphy_reset(struct mii_softc *, if_media_t); /* * Some 3Com internal PHYs report zero for OUI and model, others use @@ -144,7 +145,8 @@ xlphy_attach(device_t dev) } static int -xlphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +xlphy_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t ifm) { switch (cmd) { @@ -152,7 +154,7 @@ xlphy_service(struct mii_softc *sc, stru break; case MII_MEDIACHG: - mii_phy_setmedia(sc); + mii_phy_setmedia(sc, ifm); break; case MII_TICK: @@ -164,7 +166,7 @@ xlphy_service(struct mii_softc *sc, stru } /* Update the media status. */ - PHY_STATUS(sc); + PHY_STATUS(sc, ifm); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -172,10 +174,10 @@ xlphy_service(struct mii_softc *sc, stru } static void -xlphy_reset(struct mii_softc *sc) +xlphy_reset(struct mii_softc *sc, if_media_t media) { - mii_phy_reset(sc); + mii_phy_reset(sc, media); /* * XXX 3Com PHY doesn't set the BMCR properly after From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 17:57:29 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2BEF8214; Sun, 26 Apr 2015 17:57:29 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1A9131FE5; Sun, 26 Apr 2015 17:57:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QHvSxg069483; Sun, 26 Apr 2015 17:57:28 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QHvSpJ069481; Sun, 26 Apr 2015 17:57:28 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504261757.t3QHvSpJ069481@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 17:57:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282035 - projects/ifnet/sys/dev/bge X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 17:57:29 -0000 Author: glebius Date: Sun Apr 26 17:57:28 2015 New Revision: 282035 URL: https://svnweb.freebsd.org/changeset/base/282035 Log: Convert bge(4) to new media and miibus KPI. Tested: Broadcom NetXtreme Gigabit Ethernet Controller, ASIC rev. 0x001002 Tested: Broadcom Gigabit Ethernet Controller, ASIC rev. 0x007102 Tested: Broadcom NetXtreme Gigabit Ethernet Controller, ASIC rev. 0x000105 Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/bge/if_bge.c projects/ifnet/sys/dev/bge/if_bgereg.h Modified: projects/ifnet/sys/dev/bge/if_bge.c ============================================================================== --- projects/ifnet/sys/dev/bge/if_bge.c Sun Apr 26 17:48:15 2015 (r282034) +++ projects/ifnet/sys/dev/bge/if_bge.c Sun Apr 26 17:57:28 2015 (r282035) @@ -424,8 +424,8 @@ static void bge_stop_block(struct bge_so static void bge_stop(struct bge_softc *); static void bge_watchdog(struct bge_softc *); static int bge_shutdown(device_t); -static int bge_ifmedia_upd_locked(if_t); -static int bge_ifmedia_upd(if_t); +static int bge_ifmedia_upd_locked(if_t, if_media_t); +static int bge_ifmedia_upd(if_t, if_media_t); static void bge_ifmedia_sts(if_t, struct ifmediareq *); static uint64_t bge_get_counter(if_t, ift_counter); @@ -531,11 +531,20 @@ static driver_t bge_driver = { sizeof(struct bge_softc) }; +static if_media_t bge_tbi_mediae[] = { + IFM_ETHER | IFM_1000_SX, + IFM_ETHER | IFM_1000_SX | IFM_FDX, + IFM_ETHER | IFM_AUTO, + 0 +}; + static struct ifdriver bge_ifdrv = { .ifdrv_ops = { .ifop_ioctl = bge_ioctl, .ifop_transmit = bge_transmit, .ifop_get_counter = bge_get_counter, + .ifop_media_change = bge_ifmedia_upd, + .ifop_media_status = bge_ifmedia_sts, #ifdef DEVICE_POLLING .ifop_poll = bge_poll, #endif @@ -1281,12 +1290,9 @@ bge_miibus_statchg(device_t dev) } else sc->bge_link = 0; - if (sc->bge_ifp != NULL) { - if_setbaudrate(sc->bge_ifp, - ifmedia_baudrate(mii->mii_media_active)); - if_link_state_change(sc->bge_ifp, - ifmedia_link_state(mii->mii_media_status)); - } + if (sc->bge_ifp != NULL) + if_media_status(sc->bge_ifp, + mii->mii_media_active | mii->mii_media_status); if (sc->bge_link == 0) return; @@ -3826,15 +3832,11 @@ bge_attach(device_t dev) sc->bge_phy_flags |= BGE_PHY_NO_WIRESPEED; if (sc->bge_flags & BGE_FLAG_TBI) { - ifmedia_init(&sc->bge_ifmedia, IFM_IMASK, bge_ifmedia_upd, - bge_ifmedia_sts); - ifmedia_add(&sc->bge_ifmedia, IFM_ETHER | IFM_1000_SX, 0, NULL); - ifmedia_add(&sc->bge_ifmedia, IFM_ETHER | IFM_1000_SX | IFM_FDX, - 0, NULL); - ifmedia_add(&sc->bge_ifmedia, IFM_ETHER | IFM_AUTO, 0, NULL); - ifmedia_set(&sc->bge_ifmedia, IFM_ETHER | IFM_AUTO); - sc->bge_ifmedia.ifm_media = sc->bge_ifmedia.ifm_cur->ifm_media; + ifat.ifat_mediae = bge_tbi_mediae; + ifat.ifat_media = IFM_ETHER | IFM_AUTO; } else { + struct mii_data *mii; + /* * Do transceiver setup and tell the firmware the * driver is down so we can try to get access the @@ -3847,9 +3849,8 @@ bge_attach(device_t dev) again: bge_asf_driver_up(sc); - error = mii_attach(dev, &sc->bge_miibus, bge_ifmedia_upd, - bge_ifmedia_sts, capmask, sc->bge_phy_addr, - MII_OFFSET_ANY, MIIF_DOPAUSE); + error = mii_attach(dev, &sc->bge_miibus, capmask, + sc->bge_phy_addr, MII_OFFSET_ANY, MIIF_DOPAUSE); if (error != 0) { if (trys++ < 4) { device_printf(sc->bge_dev, "Try again\n"); @@ -3866,6 +3867,11 @@ again: */ if (sc->bge_asf_mode & ASF_STACKUP) BGE_SETBIT(sc, BGE_MODE_CTL, BGE_MODECTL_STACKUP); + + mii = device_get_softc(sc->bge_miibus); + ifat.ifat_mediae = mii->mii_mediae; + ifat.ifat_media = mii->mii_media; + ifat.ifat_mediamask = MII_MEDIA_MASK; ifat.ifat_capabilities |= IFCAP_LINKSTATE; } @@ -3964,9 +3970,7 @@ bge_detach(device_t dev) if (sc->bge_tq) taskqueue_drain(sc->bge_tq, &sc->bge_intr_task); - if (sc->bge_flags & BGE_FLAG_TBI) - ifmedia_removeall(&sc->bge_ifmedia); - else if (sc->bge_miibus != NULL) { + if (sc->bge_miibus != NULL) { bus_generic_detach(dev); device_delete_child(dev, sc->bge_miibus); } @@ -5570,7 +5574,7 @@ bge_init(struct bge_softc *sc) sc->bge_flags |= BGE_FLAG_RUNNING; - bge_ifmedia_upd_locked(ifp); + bge_ifmedia_upd_locked(ifp, IFM_ETHER | IFM_AUTO); callout_reset(&sc->bge_stat_ch, hz, bge_tick, sc); } @@ -5579,35 +5583,32 @@ bge_init(struct bge_softc *sc) * Set media options. */ static int -bge_ifmedia_upd(if_t ifp) +bge_ifmedia_upd(if_t ifp, if_media_t media) { struct bge_softc *sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); int res; BGE_LOCK(sc); - res = bge_ifmedia_upd_locked(ifp); + res = bge_ifmedia_upd_locked(ifp, media); BGE_UNLOCK(sc); return (res); } static int -bge_ifmedia_upd_locked(if_t ifp) +bge_ifmedia_upd_locked(if_t ifp, if_media_t media) { struct bge_softc *sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); struct mii_data *mii; struct mii_softc *miisc; - struct ifmedia *ifm; BGE_LOCK_ASSERT(sc); - ifm = &sc->bge_ifmedia; - /* If this is a 1000baseX NIC, enable the TBI port. */ if (sc->bge_flags & BGE_FLAG_TBI) { - if (IFM_TYPE(ifm->ifm_media) != IFM_ETHER) + if (IFM_TYPE(media) != IFM_ETHER) return (EINVAL); - switch(IFM_SUBTYPE(ifm->ifm_media)) { + switch(IFM_SUBTYPE(media)) { case IFM_AUTO: /* * The BCM5704 ASIC appears to have a special @@ -5631,7 +5632,7 @@ bge_ifmedia_upd_locked(if_t ifp) } break; case IFM_1000_SX: - if ((ifm->ifm_media & IFM_GMASK) == IFM_FDX) { + if ((media & IFM_GMASK) == IFM_FDX) { BGE_CLRBIT(sc, BGE_MAC_MODE, BGE_MACMODE_HALF_DUPLEX); } else { @@ -5649,8 +5650,8 @@ bge_ifmedia_upd_locked(if_t ifp) sc->bge_link_evt++; mii = device_get_softc(sc->bge_miibus); LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - PHY_RESET(miisc); - mii_mediachg(mii); + PHY_RESET(miisc, media); + mii_mediachg(mii, media); /* * Force an interrupt so that we will call bge_link_upd @@ -5721,7 +5722,6 @@ bge_ioctl(if_t ifp, u_long command, void { struct bge_softc *sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); struct ifreq *ifr = (struct ifreq *) data; - struct mii_data *mii; int oflags, mask, error = 0; switch (command) { @@ -5778,17 +5778,6 @@ bge_ioctl(if_t ifp, u_long command, void error = 0; } break; - case SIOCSIFMEDIA: - case SIOCGIFMEDIA: - if (sc->bge_flags & BGE_FLAG_TBI) { - error = ifmedia_ioctl(ifp, ifr, - &sc->bge_ifmedia, command); - } else { - mii = device_get_softc(sc->bge_miibus); - error = ifmedia_ioctl(ifp, ifr, - &mii->mii_media, command); - } - break; case SIOCSIFCAP: mask = ifr->ifr_reqcap ^ ifr->ifr_curcap; #ifdef DEVICE_POLLING Modified: projects/ifnet/sys/dev/bge/if_bgereg.h ============================================================================== --- projects/ifnet/sys/dev/bge/if_bgereg.h Sun Apr 26 17:48:15 2015 (r282034) +++ projects/ifnet/sys/dev/bge/if_bgereg.h Sun Apr 26 17:57:28 2015 (r282035) @@ -2961,7 +2961,6 @@ struct bge_softc { struct resource *bge_irq; struct resource *bge_res; /* MAC mapped I/O */ struct resource *bge_res2; /* APE mapped I/O */ - struct ifmedia bge_ifmedia; /* TBI media info */ int bge_expcap; int bge_expmrq; int bge_msicap; From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 21:09:08 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2151C107; Sun, 26 Apr 2015 21:09:08 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 01A36123B; Sun, 26 Apr 2015 21:09:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QL974n063956; Sun, 26 Apr 2015 21:09:07 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QL95uG063945; Sun, 26 Apr 2015 21:09:05 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504262109.t3QL95uG063945@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 21:09:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282036 - in projects/ifnet/sys: dev/alc dev/bge dev/msk dev/re dev/rl dev/xl net X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 21:09:08 -0000 Author: glebius Date: Sun Apr 26 21:09:05 2015 New Revision: 282036 URL: https://svnweb.freebsd.org/changeset/base/282036 Log: Since IFM_ACTIVE clashes with IFM_NONE, we can't mix mii_media_status and mii_media_active. Modified: projects/ifnet/sys/dev/alc/if_alc.c projects/ifnet/sys/dev/bge/if_bge.c projects/ifnet/sys/dev/msk/if_msk.c projects/ifnet/sys/dev/re/if_re.c projects/ifnet/sys/dev/rl/if_rl.c projects/ifnet/sys/dev/xl/if_xl.c projects/ifnet/sys/net/if.h projects/ifnet/sys/net/if_media.c Modified: projects/ifnet/sys/dev/alc/if_alc.c ============================================================================== --- projects/ifnet/sys/dev/alc/if_alc.c Sun Apr 26 17:57:28 2015 (r282035) +++ projects/ifnet/sys/dev/alc/if_alc.c Sun Apr 26 21:09:05 2015 (r282036) @@ -442,8 +442,8 @@ alc_miibus_statchg(device_t dev) alc_aspm(sc, 0, IFM_SUBTYPE(mii->mii_media_active)); alc_dsp_fixup(sc, IFM_SUBTYPE(mii->mii_media_active)); if (sc->alc_ifp != NULL) - if_media_status(sc->alc_ifp, - mii->mii_media_active | mii->mii_media_status); + if_media_status(sc->alc_ifp, mii->mii_media_active, + mii->mii_media_status); } static uint32_t Modified: projects/ifnet/sys/dev/bge/if_bge.c ============================================================================== --- projects/ifnet/sys/dev/bge/if_bge.c Sun Apr 26 17:57:28 2015 (r282035) +++ projects/ifnet/sys/dev/bge/if_bge.c Sun Apr 26 21:09:05 2015 (r282036) @@ -1291,8 +1291,8 @@ bge_miibus_statchg(device_t dev) sc->bge_link = 0; if (sc->bge_ifp != NULL) - if_media_status(sc->bge_ifp, - mii->mii_media_active | mii->mii_media_status); + if_media_status(sc->bge_ifp, mii->mii_media_active, + mii->mii_media_status); if (sc->bge_link == 0) return; Modified: projects/ifnet/sys/dev/msk/if_msk.c ============================================================================== --- projects/ifnet/sys/dev/msk/if_msk.c Sun Apr 26 17:57:28 2015 (r282035) +++ projects/ifnet/sys/dev/msk/if_msk.c Sun Apr 26 21:09:05 2015 (r282036) @@ -580,7 +580,7 @@ msk_miibus_statchg(device_t dev) GMAC_READ_2(sc, sc_if->msk_port, GM_GP_CTRL); } } - if_media_status(ifp, mii->mii_media_active | mii->mii_media_status); + if_media_status(ifp, mii->mii_media_active, mii->mii_media_status); } static void Modified: projects/ifnet/sys/dev/re/if_re.c ============================================================================== --- projects/ifnet/sys/dev/re/if_re.c Sun Apr 26 17:57:28 2015 (r282035) +++ projects/ifnet/sys/dev/re/if_re.c Sun Apr 26 21:09:05 2015 (r282036) @@ -644,7 +644,7 @@ re_miibus_statchg(device_t dev) } } - if_media_status(ifp, mii->mii_media_active | mii->mii_media_status); + if_media_status(ifp, mii->mii_media_active, mii->mii_media_status); /* * RealTek controllers does not provide any interface to Modified: projects/ifnet/sys/dev/rl/if_rl.c ============================================================================== --- projects/ifnet/sys/dev/rl/if_rl.c Sun Apr 26 17:57:28 2015 (r282035) +++ projects/ifnet/sys/dev/rl/if_rl.c Sun Apr 26 21:09:05 2015 (r282036) @@ -514,7 +514,7 @@ rl_miibus_statchg(device_t dev) * Tx/Rx MACs for resolved speed, duplex and flow-control * parameters. */ - if_media_status(ifp, mii->mii_media_active | mii->mii_media_status); + if_media_status(ifp, mii->mii_media_active, mii->mii_media_status); } /* Modified: projects/ifnet/sys/dev/xl/if_xl.c ============================================================================== --- projects/ifnet/sys/dev/xl/if_xl.c Sun Apr 26 17:57:28 2015 (r282035) +++ projects/ifnet/sys/dev/xl/if_xl.c Sun Apr 26 21:09:05 2015 (r282036) @@ -477,8 +477,8 @@ xl_miibus_statchg(device_t dev) } CSR_WRITE_1(sc, XL_W3_MAC_CTRL, macctl); if (sc->xl_ifp != NULL) - if_media_status(sc->xl_ifp, - mii->mii_media_active | mii->mii_media_status); + if_media_status(sc->xl_ifp, mii->mii_media_active, + mii->mii_media_status); } /* Modified: projects/ifnet/sys/net/if.h ============================================================================== --- projects/ifnet/sys/net/if.h Sun Apr 26 17:57:28 2015 (r282035) +++ projects/ifnet/sys/net/if.h Sun Apr 26 21:09:05 2015 (r282036) @@ -747,7 +747,7 @@ uint64_t if_get_counter_default(if_t, if /* * Interface media manipulation by drivers. */ -void if_media_status(if_t, if_media_t); +void if_media_status(if_t, if_media_t, if_media_t); void if_media_change(if_t, if_media_t *, if_media_t); /* Modified: projects/ifnet/sys/net/if_media.c ============================================================================== --- projects/ifnet/sys/net/if_media.c Sun Apr 26 17:57:28 2015 (r282035) +++ projects/ifnet/sys/net/if_media.c Sun Apr 26 21:09:05 2015 (r282036) @@ -217,11 +217,11 @@ ifmedia_ioctl(struct ifnet *ifp, struct * upcall should come only in case if media is set to autonegotiation. */ void -if_media_status(struct ifnet *ifp, if_media_t media) +if_media_status(struct ifnet *ifp, if_media_t media, if_media_t status) { if_setbaudrate(ifp, ifmedia_baudrate(media)); - if_link_state_change(ifp, ifmedia_link_state(media)); + if_link_state_change(ifp, ifmedia_link_state(status)); } /* From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 21:16:40 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D9C9423D; Sun, 26 Apr 2015 21:16:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BC41F1306; Sun, 26 Apr 2015 21:16:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QLGdDM068658; Sun, 26 Apr 2015 21:16:39 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QLGdPE068652; Sun, 26 Apr 2015 21:16:39 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504262116.t3QLGdPE068652@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 21:16:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282037 - projects/ifnet/sys/dev/fxp X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 21:16:40 -0000 Author: glebius Date: Sun Apr 26 21:16:38 2015 New Revision: 282037 URL: https://svnweb.freebsd.org/changeset/base/282037 Log: iConvert fxp(4) to new media and miibus KPI. Functional changes: o Move "Clear wakeup events" block down below if_attach(). This is actually bugfix after initial conversion to projects/ifnet. o In fxp_init() first set FXP_FLAG_RUNNING, then call mii_mediachg(), otherwise fxp_miibus_statchg() would return at beginning. o In fxp_miibus_statchg() don't return on !IFM_AVALID media, and we won't call if_media_status(). Tested: Intel 82557 (phy DP83840, nsphy) Tested: Intel 82558 (phy i82555, inphy) Tested: Intel 82558B (phy i82555, inphy) Tested: Intel 82559 (phy i82555, inphy) Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/fxp/if_fxp.c projects/ifnet/sys/dev/fxp/if_fxpvar.h projects/ifnet/sys/dev/fxp/inphy.c Modified: projects/ifnet/sys/dev/fxp/if_fxp.c ============================================================================== --- projects/ifnet/sys/dev/fxp/if_fxp.c Sun Apr 26 21:09:05 2015 (r282036) +++ projects/ifnet/sys/dev/fxp/if_fxp.c Sun Apr 26 21:16:38 2015 (r282037) @@ -250,12 +250,8 @@ static void fxp_read_eeprom(struct fxp_ int offset, int words); static void fxp_write_eeprom(struct fxp_softc *sc, u_short *data, int offset, int words); -static int fxp_ifmedia_upd(if_t ifp); -static void fxp_ifmedia_sts(if_t ifp, - struct ifmediareq *ifmr); -static int fxp_serial_ifmedia_upd(if_t ifp); -static void fxp_serial_ifmedia_sts(if_t ifp, - struct ifmediareq *ifmr); +static int fxp_ifmedia_upd(if_t, if_media_t); +static void fxp_ifmedia_sts(if_t, struct ifmediareq *); static int fxp_miibus_readreg(device_t dev, int phy, int reg); static int fxp_miibus_writereg(device_t dev, int phy, int reg, int value); @@ -314,10 +310,14 @@ static struct resource_spec fxp_res_spec { -1, 0 } }; +static if_media_t fxp_serial_mediae[] = { IFM_ETHER | IFM_MANUAL, 0 }; + static struct ifdriver fxp_ifdrv = { .ifdrv_ops = { .ifop_ioctl = fxp_ioctl, .ifop_transmit = fxp_transmit, + .ifop_media_change = fxp_ifmedia_upd, + .ifop_media_status = fxp_ifmedia_sts, #ifdef DEVICE_POLLING .ifop_poll = fxp_poll, #endif @@ -454,8 +454,6 @@ fxp_attach(device_t dev) mtx_init(&sc->sc_mtx, device_get_nameunit(dev), MTX_NETWORK_LOCK, MTX_DEF); callout_init_mtx(&sc->stat_ch, &sc->sc_mtx, 0); - ifmedia_init(&sc->sc_media, 0, fxp_serial_ifmedia_upd, - fxp_serial_ifmedia_sts); /* * Enable bus mastering. @@ -826,22 +824,28 @@ fxp_attach(device_t dev) * is configured. This is, in essence, manual configuration. */ if (sc->flags & FXP_FLAG_SERIAL_MEDIA) { - ifmedia_add(&sc->sc_media, IFM_ETHER|IFM_MANUAL, 0, NULL); - ifmedia_set(&sc->sc_media, IFM_ETHER|IFM_MANUAL); + ifat.ifat_mediae = fxp_serial_mediae; + ifat.ifat_media = IFM_ETHER | IFM_MANUAL; } else { + struct mii_data *mii; + /* * i82557 wedge when isolating all of their PHYs. */ flags = MIIF_NOISOLATE; if (sc->revision >= FXP_REV_82558_A4) flags |= MIIF_DOPAUSE; - error = mii_attach(dev, &sc->miibus, fxp_ifmedia_upd, - fxp_ifmedia_sts, BMSR_DEFCAPMASK, MII_PHY_ANY, - MII_OFFSET_ANY, flags); + error = mii_attach(dev, &sc->miibus, BMSR_DEFCAPMASK, + MII_PHY_ANY, MII_OFFSET_ANY, flags); if (error != 0) { device_printf(dev, "attaching PHYs failed\n"); goto fail; } + + mii = device_get_softc(sc->miibus); + ifat.ifat_mediae = mii->mii_mediae; + ifat.ifat_media = mii->mii_media; + ifat.ifat_mediamask = MII_MEDIA_MASK; ifat.ifat_capabilities |= IFCAP_LINKSTATE; } @@ -856,19 +860,6 @@ fxp_attach(device_t dev) } /* - * Configure hardware to reject magic frames otherwise - * system will hang on recipt of magic frames. - */ - if ((sc->flags & FXP_FLAG_WOLCAP) != 0) { - FXP_LOCK(sc); - /* Clear wakeup events. */ - CSR_WRITE_1(sc, FXP_CSR_PMDR, CSR_READ_1(sc, FXP_CSR_PMDR)); - fxp_init(sc, 0); - fxp_stop(sc); - FXP_UNLOCK(sc); - } - - /* * Attach the interface. */ ifat.ifat_softc = sc; @@ -893,6 +884,19 @@ fxp_attach(device_t dev) sc->if_flags = ifat.ifat_flags; sc->ifp = if_attach(&ifat); + /* + * Configure hardware to reject magic frames otherwise + * system will hang on recipt of magic frames. + */ + if ((sc->flags & FXP_FLAG_WOLCAP) != 0) { + FXP_LOCK(sc); + /* Clear wakeup events. */ + CSR_WRITE_1(sc, FXP_CSR_PMDR, CSR_READ_1(sc, FXP_CSR_PMDR)); + fxp_init(sc, 0); + fxp_stop(sc); + FXP_UNLOCK(sc); + } + return (0); fail: @@ -917,7 +921,6 @@ fxp_release(struct fxp_softc *sc) if (sc->miibus) device_delete_child(sc->dev, sc->miibus); bus_generic_detach(sc->dev); - ifmedia_removeall(&sc->sc_media); if (sc->fxp_desc.cbl_list) { bus_dmamap_unload(sc->cbl_tag, sc->cbl_map); bus_dmamem_free(sc->cbl_tag, sc->fxp_desc.cbl_list, @@ -2488,11 +2491,15 @@ fxp_init(struct fxp_softc *sc, int setme CSR_WRITE_4(sc, FXP_CSR_SCB_GENERAL, sc->fxp_desc.rx_head->rx_addr); fxp_scb_cmd(sc, FXP_SCB_COMMAND_RU_START); - if (sc->miibus != NULL && setmedia != 0) - mii_mediachg(device_get_softc(sc->miibus)); - sc->flags |= FXP_FLAG_RUNNING; + if (sc->miibus != NULL && setmedia != 0) { + struct mii_data *mii; + + mii = device_get_softc(sc->miibus); + mii_mediachg(mii, mii->mii_media); + } + /* * Enable interrupts. */ @@ -2513,35 +2520,24 @@ fxp_init(struct fxp_softc *sc, int setme callout_reset(&sc->stat_ch, hz, fxp_tick, sc); } -static int -fxp_serial_ifmedia_upd(if_t ifp) -{ - - return (0); -} - -static void -fxp_serial_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr) -{ - - ifmr->ifm_active = IFM_ETHER|IFM_MANUAL; -} - /* * Change media according to request. */ static int -fxp_ifmedia_upd(if_t ifp) +fxp_ifmedia_upd(if_t ifp, if_media_t media) { struct fxp_softc *sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); struct mii_data *mii; - struct mii_softc *miisc; + struct mii_softc *miisc; + + if (sc->flags & FXP_FLAG_SERIAL_MEDIA) + return (0); mii = device_get_softc(sc->miibus); FXP_LOCK(sc); LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - PHY_RESET(miisc); - mii_mediachg(mii); + PHY_RESET(miisc, media); + mii_mediachg(mii, media); FXP_UNLOCK(sc); return (0); } @@ -2555,6 +2551,11 @@ fxp_ifmedia_sts(if_t ifp, struct ifmedia struct fxp_softc *sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); struct mii_data *mii; + if (sc->flags & FXP_FLAG_SERIAL_MEDIA) { + ifmr->ifm_active = IFM_ETHER|IFM_MANUAL; + return; + } + mii = device_get_softc(sc->miibus); FXP_LOCK(sc); mii_pollstat(mii); @@ -2746,9 +2747,7 @@ fxp_miibus_statchg(device_t dev) sc = device_get_softc(dev); mii = device_get_softc(sc->miibus); ifp = sc->ifp; - if (ifp == NULL || (sc->flags & FXP_FLAG_RUNNING) == 0 || - (mii->mii_media_status & (IFM_AVALID | IFM_ACTIVE)) != - (IFM_AVALID | IFM_ACTIVE)) + if (ifp == NULL || (sc->flags & FXP_FLAG_RUNNING) == 0) return; if (IFM_SUBTYPE(mii->mii_media_active) == IFM_10_T && @@ -2760,10 +2759,11 @@ fxp_miibus_statchg(device_t dev) * Call fxp_init() in order to adjust the flow control settings. * Note that the 82557 doesn't support hardware flow control. */ - if (sc->revision == FXP_REV_82557) - return; - sc->flags &= ~FXP_FLAG_RUNNING; - fxp_init(sc, 0); + if (sc->revision != FXP_REV_82557) { + sc->flags &= ~FXP_FLAG_RUNNING; + fxp_init(sc, 0); + } + if_media_status(ifp, mii->mii_media_active, mii->mii_media_status); } static int @@ -2771,7 +2771,6 @@ fxp_ioctl(if_t ifp, u_long command, void { struct fxp_softc *sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); struct ifreq *ifr = data; - struct mii_data *mii; int oflags, flag, mask, error = 0, reinit; switch (command) { @@ -2808,17 +2807,6 @@ fxp_ioctl(if_t ifp, u_long command, void FXP_UNLOCK(sc); break; - case SIOCSIFMEDIA: - case SIOCGIFMEDIA: - if (sc->miibus != NULL) { - mii = device_get_softc(sc->miibus); - error = ifmedia_ioctl(ifp, ifr, - &mii->mii_media, command); - } else { - error = ifmedia_ioctl(ifp, ifr, &sc->sc_media, command); - } - break; - case SIOCSIFCAP: reinit = 0; mask = ifr->ifr_reqcap ^ ifr->ifr_curcap; Modified: projects/ifnet/sys/dev/fxp/if_fxpvar.h ============================================================================== --- projects/ifnet/sys/dev/fxp/if_fxpvar.h Sun Apr 26 21:09:05 2015 (r282036) +++ projects/ifnet/sys/dev/fxp/if_fxpvar.h Sun Apr 26 21:16:38 2015 (r282037) @@ -206,7 +206,6 @@ struct fxp_softc { int watchdog_timer; /* seconds until chip reset */ struct fxp_cb_mcs *mcsp; /* Pointer to mcast setup descriptor */ uint32_t mcs_addr; /* DMA address of the multicast cmd */ - struct ifmedia sc_media; /* media information */ device_t miibus; device_t dev; int tunable_int_delay; /* interrupt delay value for ucode */ Modified: projects/ifnet/sys/dev/fxp/inphy.c ============================================================================== --- projects/ifnet/sys/dev/fxp/inphy.c Sun Apr 26 21:09:05 2015 (r282036) +++ projects/ifnet/sys/dev/fxp/inphy.c Sun Apr 26 21:16:38 2015 (r282037) @@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -75,9 +74,10 @@ static driver_t inphy_driver = { DRIVER_MODULE(inphy, miibus, inphy_driver, inphy_devclass, 0, 0); -static int inphy_service(struct mii_softc *, struct mii_data *, int); -static void inphy_status(struct mii_softc *); -static void inphy_reset(struct mii_softc *); +static int inphy_service(struct mii_softc *, struct mii_data *, + mii_cmd_t, if_media_t); +static void inphy_status(struct mii_softc *, if_media_t); +static void inphy_reset(struct mii_softc *, if_media_t); static const struct mii_phydesc inphys[] = { MII_PHY_DESC(xxINTEL, I82553), @@ -110,7 +110,8 @@ inphy_attach(device_t dev) } static int -inphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd) +inphy_service(struct mii_softc *sc, struct mii_data *mii, mii_cmd_t cmd, + if_media_t media) { switch (cmd) { @@ -118,7 +119,7 @@ inphy_service(struct mii_softc *sc, stru break; case MII_MEDIACHG: - mii_phy_setmedia(sc); + mii_phy_setmedia(sc, media); break; case MII_TICK: @@ -128,7 +129,7 @@ inphy_service(struct mii_softc *sc, stru } /* Update the media status. */ - PHY_STATUS(sc); + PHY_STATUS(sc, media); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -136,10 +137,9 @@ inphy_service(struct mii_softc *sc, stru } static void -inphy_status(struct mii_softc *sc) +inphy_status(struct mii_softc *sc, if_media_t media) { struct mii_data *mii = sc->mii_pdata; - struct ifmedia_entry *ife = mii->mii_media.ifm_cur; int bmsr, bmcr, scr; mii->mii_media_status = IFM_AVALID; @@ -176,14 +176,14 @@ inphy_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_HDX; } else - mii->mii_media_active = ife->ifm_media; + mii->mii_media_active = media; } static void -inphy_reset(struct mii_softc *sc) +inphy_reset(struct mii_softc *sc, if_media_t media) { - mii_phy_reset(sc); + mii_phy_reset(sc, media); /* Ensure Bay flow control is disabled. */ PHY_WRITE(sc, MII_INPHY_SCR, From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 21:28:26 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 7B3103AF; Sun, 26 Apr 2015 21:28:26 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 66F7513E3; Sun, 26 Apr 2015 21:28:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QLSQ0v073915; Sun, 26 Apr 2015 21:28:26 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QLSGkh073850; Sun, 26 Apr 2015 21:28:16 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504262128.t3QLSGkh073850@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 21:28:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282038 - in projects/ifnet: . bin/ed bin/expr lib/libarchive lib/libc/gen lib/libc/nls lib/libc/regex lib/libc/rpc lib/libc/sys lib/libedit lib/msun/man sbin/atm/atmconfig sbin/camcont... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 21:28:26 -0000 Author: glebius Date: Sun Apr 26 21:28:15 2015 New Revision: 282038 URL: https://svnweb.freebsd.org/changeset/base/282038 Log: Merge head r257698 through r282037. Added: projects/ifnet/share/doc/usd/10.exref/ - copied from r282037, head/share/doc/usd/10.exref/ projects/ifnet/share/doc/usd/11.vitut/ - copied from r282037, head/share/doc/usd/11.vitut/ projects/ifnet/share/doc/usd/12.vi/ - copied from r282037, head/share/doc/usd/12.vi/ projects/ifnet/share/doc/usd/13.viref/ - copied from r282037, head/share/doc/usd/13.viref/ Modified: projects/ifnet/ObsoleteFiles.inc projects/ifnet/bin/ed/ed.1 projects/ifnet/bin/expr/expr.1 projects/ifnet/lib/libarchive/config_freebsd.h projects/ifnet/lib/libc/gen/getutxent.3 projects/ifnet/lib/libc/gen/nice.3 projects/ifnet/lib/libc/gen/posix_spawn.3 projects/ifnet/lib/libc/gen/posix_spawn_file_actions_addopen.3 projects/ifnet/lib/libc/gen/posix_spawn_file_actions_init.3 projects/ifnet/lib/libc/gen/posix_spawnattr_getflags.3 projects/ifnet/lib/libc/gen/posix_spawnattr_getpgroup.3 projects/ifnet/lib/libc/gen/posix_spawnattr_getschedparam.3 projects/ifnet/lib/libc/gen/posix_spawnattr_getschedpolicy.3 projects/ifnet/lib/libc/gen/posix_spawnattr_getsigdefault.3 projects/ifnet/lib/libc/gen/posix_spawnattr_getsigmask.3 projects/ifnet/lib/libc/gen/posix_spawnattr_init.3 projects/ifnet/lib/libc/nls/catopen.3 projects/ifnet/lib/libc/regex/re_format.7 projects/ifnet/lib/libc/regex/regex.3 projects/ifnet/lib/libc/rpc/rpcbind.3 projects/ifnet/lib/libc/sys/posix_openpt.2 projects/ifnet/lib/libedit/el.c projects/ifnet/lib/msun/man/j0.3 projects/ifnet/lib/msun/man/lgamma.3 projects/ifnet/lib/msun/man/nextafter.3 projects/ifnet/sbin/atm/atmconfig/atmconfig.8 projects/ifnet/sbin/camcontrol/camcontrol.8 projects/ifnet/sbin/ipfw/ipfw2.c projects/ifnet/sbin/ipfw/ipfw2.h projects/ifnet/sbin/ipfw/tables.c projects/ifnet/share/doc/usd/Makefile projects/ifnet/share/man/man4/smb.4 projects/ifnet/sys/arm/allwinner/std.a10 projects/ifnet/sys/arm/arm/cpufunc.c projects/ifnet/sys/arm/arm/locore-v4.S projects/ifnet/sys/arm/arm/locore-v6.S projects/ifnet/sys/arm/broadcom/bcm2835/std.bcm2836 projects/ifnet/sys/dev/iicbus/pcf8563.c projects/ifnet/sys/dev/sound/pcm/dsp.c projects/ifnet/sys/kern/kern_descrip.c projects/ifnet/sys/kern/kern_thr.c projects/ifnet/sys/netinet/libalias/libalias.3 Directory Properties: projects/ifnet/ (props changed) projects/ifnet/lib/libc/ (props changed) projects/ifnet/sbin/ (props changed) projects/ifnet/sbin/ipfw/ (props changed) projects/ifnet/share/ (props changed) projects/ifnet/share/doc/usd/10.exref/exref/ex.rm (props changed) projects/ifnet/share/doc/usd/10.exref/summary/ex.summary (props changed) projects/ifnet/share/doc/usd/11.vitut/edittut.ms (props changed) projects/ifnet/share/doc/usd/12.vi/summary/vi.summary (props changed) projects/ifnet/share/doc/usd/12.vi/vi/vi.chars (props changed) projects/ifnet/share/doc/usd/12.vi/vi/vi.in (props changed) projects/ifnet/share/doc/usd/12.vi/viapwh/vi.apwh.ms (props changed) projects/ifnet/share/doc/usd/13.viref/ex.cmd.roff (props changed) projects/ifnet/share/doc/usd/13.viref/ref.so (props changed) projects/ifnet/share/doc/usd/13.viref/set.opt.roff (props changed) projects/ifnet/share/doc/usd/13.viref/vi.cmd.roff (props changed) projects/ifnet/share/doc/usd/13.viref/vi.ref (props changed) projects/ifnet/share/man/man4/ (props changed) projects/ifnet/sys/ (props changed) Modified: projects/ifnet/ObsoleteFiles.inc ============================================================================== --- projects/ifnet/ObsoleteFiles.inc Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/ObsoleteFiles.inc Sun Apr 26 21:28:15 2015 (r282038) @@ -56,18 +56,6 @@ OLD_FILES+=usr/include/altq/altq_rmclass OLD_FILES+=usr/include/altq/altq_cbq.h OLD_FILES+=usr/include/altq/altq_rio.h OLD_DIRS+=usr/include/altq -# 20150410 -OLD_FILES+=usr/share/doc/usd/10.exref/paper.ascii.gz -OLD_FILES+=usr/share/doc/usd/10.exref/summary.ascii.gz -OLD_DIRS+=usr/share/doc/usd/10.exref -OLD_FILES+=usr/share/doc/usd/11.edit/paper.ascii.gz -OLD_DIRS+=usr/share/doc/usd/11.edit -OLD_FILES+=usr/share/doc/usd/12.vi/paper.ascii.gz -OLD_FILES+=usr/share/doc/usd/12.vi/summary.ascii.gz -OLD_FILES+=usr/share/doc/usd/12.vi/viapwh.ascii.gz -OLD_DIRS+=usr/share/doc/usd/12.vi -OLD_FILES+=usr/share/doc/usd/13.viref/paper.ascii.gz -OLD_DIRS+=usr/share/doc/usd/13.viref # 20150329 .if ${TARGET_ARCH} == "arm" OLD_FILES+=usr/include/bootconfig.h Modified: projects/ifnet/bin/ed/ed.1 ============================================================================== --- projects/ifnet/bin/ed/ed.1 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/bin/ed/ed.1 Sun Apr 26 21:28:15 2015 (r282038) @@ -738,7 +738,7 @@ It is an error if no substitutions are p lines. The current address is set the last line affected. .Pp -.Ar Re +.Ar \&Re and .Ar replacement may be delimited by any character other than space and newline Modified: projects/ifnet/bin/expr/expr.1 ============================================================================== --- projects/ifnet/bin/expr/expr.1 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/bin/expr/expr.1 Sun Apr 26 21:28:15 2015 (r282038) @@ -90,17 +90,17 @@ Return the evaluation of .Ar expr1 if neither expression evaluates to an empty string or zero; otherwise, returns zero. -.It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2 +.It Ar expr1 Bro =, >, >=, <, <=, != Brc Ar expr2 Return the results of integer comparison if both arguments are integers; otherwise, returns the results of string comparison using the locale-specific collation sequence. The result of each comparison is 1 if the specified relation is true, or 0 if the relation is false. -.It Ar expr1 Li "{+, -}" Ar expr2 +.It Ar expr1 Bro +, - Brc Ar expr2 Return the results of addition or subtraction of integer-valued arguments. -.It Ar expr1 Li "{*, /, %}" Ar expr2 +.It Ar expr1 Bro *, /, % Brc Ar expr2 Return the results of multiplication, integer division, or remainder of integer-valued arguments. -.It Ar expr1 Li : Ar expr2 +.It Ar expr1 Li \&: Ar expr2 The .Dq Li \&: operator matches Modified: projects/ifnet/lib/libarchive/config_freebsd.h ============================================================================== --- projects/ifnet/lib/libarchive/config_freebsd.h Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libarchive/config_freebsd.h Sun Apr 26 21:28:15 2015 (r282038) @@ -25,6 +25,8 @@ * $FreeBSD$ */ +#include + /* FreeBSD 5.0 and later have ACL and extattr support. */ #if __FreeBSD__ > 4 #define HAVE_ACL_CREATE_ENTRY 1 @@ -220,6 +222,11 @@ #define HAVE_ZLIB_H 1 #define TIME_WITH_SYS_TIME 1 +#if __FreeBSD_version >= 1100056 +#define HAVE_FUTIMENS 1 +#define HAVE_UTIMENSAT 1 +#endif + /* FreeBSD 4 and earlier lack intmax_t/uintmax_t */ #if __FreeBSD__ < 5 #define intmax_t int64_t Modified: projects/ifnet/lib/libc/gen/getutxent.3 ============================================================================== --- projects/ifnet/lib/libc/gen/getutxent.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/getutxent.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -475,4 +475,4 @@ They replaced the .In utmp.h interface. .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/gen/nice.3 ============================================================================== --- projects/ifnet/lib/libc/gen/nice.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/nice.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -87,7 +87,7 @@ The function conforms to .St -p1003.1-2008 except for the return value. -This implementation returns 0 upon successful completion but +This implementation returns 0 upon successful completion but the standard requires returning the new nice value, which could be \-1. .Sh HISTORY Modified: projects/ifnet/lib/libc/gen/posix_spawn.3 ============================================================================== --- projects/ifnet/lib/libc/gen/posix_spawn.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/posix_spawn.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -457,4 +457,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/gen/posix_spawn_file_actions_addopen.3 ============================================================================== --- projects/ifnet/lib/libc/gen/posix_spawn_file_actions_addopen.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/posix_spawn_file_actions_addopen.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -200,4 +200,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/gen/posix_spawn_file_actions_init.3 ============================================================================== --- projects/ifnet/lib/libc/gen/posix_spawn_file_actions_init.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/posix_spawn_file_actions_init.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -101,4 +101,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/gen/posix_spawnattr_getflags.3 ============================================================================== --- projects/ifnet/lib/libc/gen/posix_spawnattr_getflags.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/posix_spawnattr_getflags.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -108,4 +108,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/gen/posix_spawnattr_getpgroup.3 ============================================================================== --- projects/ifnet/lib/libc/gen/posix_spawnattr_getpgroup.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/posix_spawnattr_getpgroup.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -93,4 +93,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/gen/posix_spawnattr_getschedparam.3 ============================================================================== --- projects/ifnet/lib/libc/gen/posix_spawnattr_getschedparam.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/posix_spawnattr_getschedparam.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -97,4 +97,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/gen/posix_spawnattr_getschedpolicy.3 ============================================================================== --- projects/ifnet/lib/libc/gen/posix_spawnattr_getschedpolicy.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/posix_spawnattr_getschedpolicy.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -95,4 +95,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/gen/posix_spawnattr_getsigdefault.3 ============================================================================== --- projects/ifnet/lib/libc/gen/posix_spawnattr_getsigdefault.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/posix_spawnattr_getsigdefault.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -95,4 +95,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/gen/posix_spawnattr_getsigmask.3 ============================================================================== --- projects/ifnet/lib/libc/gen/posix_spawnattr_getsigmask.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/posix_spawnattr_getsigmask.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -95,4 +95,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/gen/posix_spawnattr_init.3 ============================================================================== --- projects/ifnet/lib/libc/gen/posix_spawnattr_init.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/gen/posix_spawnattr_init.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -120,4 +120,4 @@ and functions first appeared in .Fx 8.0 . .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libc/nls/catopen.3 ============================================================================== --- projects/ifnet/lib/libc/nls/catopen.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/nls/catopen.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -94,7 +94,7 @@ An empty string is substituted for undef Path names templates defined in .Ev NLSPATH are separated by colons -.No ( Sq \&: ) . +.Pq Sq \&: . A leading or two adjacent colons is equivalent to specifying %N. .Pp Modified: projects/ifnet/lib/libc/regex/re_format.7 ============================================================================== --- projects/ifnet/lib/libc/regex/re_format.7 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/regex/re_format.7 Sun Apr 26 21:28:15 2015 (r282038) @@ -392,10 +392,12 @@ and .Ql ?\& are ordinary characters, and their functionality can be expressed using bounds -.No ( Ql {1,} +.Po +.Ql {1,} or .Ql {0,1} -respectively). +respectively +.Pc . Also note that .Ql x+ in modern REs is equivalent to Modified: projects/ifnet/lib/libc/regex/regex.3 ============================================================================== --- projects/ifnet/lib/libc/regex/regex.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/regex/regex.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -420,10 +420,12 @@ it should have been the result from the using that .Ft regex_t . The -.Fn ( regerror +.Po +.Fn regerror may be able to supply a more detailed message using information from the -.Ft regex_t . ) +.Ft regex_t . +.Pc The .Fn regerror function Modified: projects/ifnet/lib/libc/rpc/rpcbind.3 ============================================================================== --- projects/ifnet/lib/libc/rpc/rpcbind.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/rpc/rpcbind.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -25,7 +25,7 @@ .Ft bool_t .Fn rpcb_gettime "const char *host" "time_t * timep" .Ft "enum clnt_stat" -.Fn rpcb_rmtcall "const struct netconfig *netconf" "const char *host" "const rpcprog_t prognum, const rpcvers_t versnum" "const rpcproc_t procnum, const xdrproc_t inproc" "const caddr_t in" "const xdrproc_t outproc" "const caddr_t out" "const struct timeval tout, const struct netbuf *svcaddr" +.Fn rpcb_rmtcall "const struct netconfig *netconf" "const char *host" "const rpcprog_t prognum" "const rpcvers_t versnum" "const rpcproc_t procnum" "const xdrproc_t inproc" "const caddr_t in" "const xdrproc_t outproc" "const caddr_t out" "const struct timeval tout" "const struct netbuf *svcaddr" .Ft bool_t .Fn rpcb_set "const rpcprog_t prognum" "const rpcvers_t versnum" "const struct netconfig *netconf" "const struct netbuf *svcaddr" .Ft bool_t Modified: projects/ifnet/lib/libc/sys/posix_openpt.2 ============================================================================== --- projects/ifnet/lib/libc/sys/posix_openpt.2 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libc/sys/posix_openpt.2 Sun Apr 26 21:28:15 2015 (r282038) @@ -137,4 +137,4 @@ is included for compatibility; in opening a terminal does not cause it to become a process's controlling terminal. .Sh AUTHORS -.An Ed Schouten Aq Mt ed@FreeBSD.org +.An \&Ed Schouten Aq Mt ed@FreeBSD.org Modified: projects/ifnet/lib/libedit/el.c ============================================================================== --- projects/ifnet/lib/libedit/el.c Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/libedit/el.c Sun Apr 26 21:28:15 2015 (r282038) @@ -96,7 +96,7 @@ el_init_fd(const char *prog, FILE *fin, */ el->el_flags = 0; #ifdef WIDECHAR - if (setlocale(LC_CTYPE, "") != NULL) { + if (setlocale(LC_CTYPE, NULL) != NULL) { if (strcmp(nl_langinfo(CODESET), "UTF-8") == 0) el->el_flags |= CHARSET_IS_UTF8; } Modified: projects/ifnet/lib/msun/man/j0.3 ============================================================================== --- projects/ifnet/lib/msun/man/j0.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/msun/man/j0.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -98,7 +98,7 @@ The functions .Fn y1 , and .Fn y1f -compute the linearly independent Bessel function of the second kind +compute the linearly independent Bessel function of the second kind of orders 0 and 1 for the positive .Em real value @@ -135,12 +135,12 @@ is \*(Pm0, these routines will generate a divide-by-zero exception and return -\*(If. If .Fa x -is a sufficiently small positive number, then +is a sufficiently small positive number, then .Fn y1 , .Fn y1f , .Fn yn , and -.Fn ynf +.Fn ynf will generate an overflow exception and return -\*(If. .Sh SEE ALSO .Xr math 3 Modified: projects/ifnet/lib/msun/man/lgamma.3 ============================================================================== --- projects/ifnet/lib/msun/man/lgamma.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/msun/man/lgamma.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -124,7 +124,6 @@ are deprecated aliases for and .Fn lgammaf_r , respectively. - .Sh IDIOSYNCRASIES Do not use the expression .Dq Li signgam\(**exp(lgamma(x)) Modified: projects/ifnet/lib/msun/man/nextafter.3 ============================================================================== --- projects/ifnet/lib/msun/man/nextafter.3 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/lib/msun/man/nextafter.3 Sun Apr 26 21:28:15 2015 (r282038) @@ -78,11 +78,11 @@ routines conform to They implement the Nextafter function recommended by .St -ieee754 , with the extension that -.Fn nextafter +0.0, -0.0 +.Fn nextafter "+0.0" "-0.0" returns .Li -0.0 , and -.Fn nextafter -0.0, +0.0 +.Fn nextafter "-0.0" "+0.0" returns .Li +0.0 . .Sh HISTORY Modified: projects/ifnet/sbin/atm/atmconfig/atmconfig.8 ============================================================================== --- projects/ifnet/sbin/atm/atmconfig/atmconfig.8 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/sbin/atm/atmconfig/atmconfig.8 Sun Apr 26 21:28:15 2015 (r282038) @@ -90,7 +90,7 @@ To get a list of options and arguments f .Pp To get a list of common options use: .D1 Nm Ic help Cm options -.Ss The Ic diag Ss Command +.Ss The Ic diag Command The .Ic diag command allows the inspection of the ATM interfaces on the local host @@ -201,7 +201,7 @@ Print traffic parameters: PCR, SCR, MBS, .It Nm Ic diag Cm stats Ar device Print driver specific statistics. .El -.Ss The Ic natm Ss Command +.Ss The Ic natm Command The .Ic natm command is used to change Modified: projects/ifnet/sbin/camcontrol/camcontrol.8 ============================================================================== --- projects/ifnet/sbin/camcontrol/camcontrol.8 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/sbin/camcontrol/camcontrol.8 Sun Apr 26 21:28:15 2015 (r282038) @@ -529,7 +529,7 @@ on the system. .It Ic defects Send the .Tn SCSI -READ DEFECT DATA (10) command (0x37) or the +READ DEFECT DATA (10) command (0x37) or the .Tn SCSI READ DEFECT DATA (12) command (0xB7) to the given device, and print out any combination of: the total number of defects, the primary @@ -563,12 +563,12 @@ drives. .It longblock Print out the list as logical blocks. This option uses a 64-bit block size. -.It bfi +.It bfi Print out the list in bytes from index format. .It extbfi Print out the list in extended bytes from index format. The extended format allows for ranges of blocks to be printed. -.It phys +.It phys Print out the list in physical sector format. Most drives support this format. .It extphys Modified: projects/ifnet/sbin/ipfw/ipfw2.c ============================================================================== --- projects/ifnet/sbin/ipfw/ipfw2.c Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/sbin/ipfw/ipfw2.c Sun Apr 26 21:28:15 2015 (r282038) @@ -375,6 +375,13 @@ static int ipfw_show_config(struct cmdli ipfw_cfg_lheader *cfg, size_t sz, int ac, char **av); static void ipfw_list_tifaces(void); +struct tidx; +static uint16_t pack_object(struct tidx *tstate, char *name, int otype); +static uint16_t pack_table(struct tidx *tstate, char *name); + +static char *table_search_ctlv(ipfw_obj_ctlv *ctlv, uint16_t idx); +static void object_sort_ctlv(ipfw_obj_ctlv *ctlv); + /* * Simple string buffer API. * Used to simplify buffer passing between function and for @@ -2558,6 +2565,7 @@ ipfw_show_config(struct cmdline_opts *co if (cfg->flags & IPFW_CFG_GET_STATIC) { /* We've requested static rules */ if (ctlv->head.type == IPFW_TLV_TBLNAME_LIST) { + object_sort_ctlv(ctlv); fo->tstate = ctlv; readsz += ctlv->head.length; ctlv = (ipfw_obj_ctlv *)((caddr_t)ctlv + @@ -2724,19 +2732,18 @@ struct tidx { }; static uint16_t -pack_table(struct tidx *tstate, char *name) +pack_object(struct tidx *tstate, char *name, int otype) { int i; ipfw_obj_ntlv *ntlv; - if (table_check_name(name) != 0) - return (0); - for (i = 0; i < tstate->count; i++) { if (strcmp(tstate->idx[i].name, name) != 0) continue; if (tstate->idx[i].set != tstate->set) continue; + if (tstate->idx[i].head.type != otype) + continue; return (tstate->idx[i].idx); } @@ -2752,7 +2759,7 @@ pack_table(struct tidx *tstate, char *na ntlv = &tstate->idx[i]; memset(ntlv, 0, sizeof(ipfw_obj_ntlv)); strlcpy(ntlv->name, name, sizeof(ntlv->name)); - ntlv->head.type = IPFW_TLV_TBL_NAME; + ntlv->head.type = otype; ntlv->head.length = sizeof(ipfw_obj_ntlv); ntlv->set = tstate->set; ntlv->idx = ++tstate->counter; @@ -2761,6 +2768,16 @@ pack_table(struct tidx *tstate, char *na return (ntlv->idx); } +static uint16_t +pack_table(struct tidx *tstate, char *name) +{ + + if (table_check_name(name) != 0) + return (0); + + return (pack_object(tstate, name, IPFW_TLV_TBL_NAME)); +} + static void fill_table(ipfw_insn *cmd, char *av, uint8_t opcode, struct tidx *tstate) { @@ -3611,7 +3628,6 @@ compile_rule(char *av[], uint32_t *rbuf, break; } else goto chkarg; - case TOK_QUEUE: action->opcode = O_QUEUE; goto chkarg; @@ -4656,6 +4672,101 @@ done: *rbufsize = (char *)dst - (char *)rule; } +static int +compare_ntlv(const void *_a, const void *_b) +{ + ipfw_obj_ntlv *a, *b; + + a = (ipfw_obj_ntlv *)_a; + b = (ipfw_obj_ntlv *)_b; + + if (a->set < b->set) + return (-1); + else if (a->set > b->set) + return (1); + + if (a->idx < b->idx) + return (-1); + else if (a->idx > b->idx) + return (1); + + if (a->head.type < b->head.type) + return (-1); + else if (a->head.type > b->head.type) + return (1); + + return (0); +} + +/* + * Provide kernel with sorted list of referenced objects + */ +static void +object_sort_ctlv(ipfw_obj_ctlv *ctlv) +{ + + qsort(ctlv + 1, ctlv->count, ctlv->objsize, compare_ntlv); +} + +struct object_kt { + uint16_t uidx; + uint16_t type; +}; +static int +compare_object_kntlv(const void *k, const void *v) +{ + ipfw_obj_ntlv *ntlv; + struct object_kt key; + + key = *((struct object_kt *)k); + ntlv = (ipfw_obj_ntlv *)v; + + if (key.uidx < ntlv->idx) + return (-1); + else if (key.uidx > ntlv->idx) + return (1); + + if (key.type < ntlv->head.type) + return (-1); + else if (key.type > ntlv->head.type) + return (1); + + return (0); +} + +/* + * Finds object name in @ctlv by @idx and @type. + * Uses the following facts: + * 1) All TLVs are the same size + * 2) Kernel implementation provides already sorted list. + * + * Returns table name or NULL. + */ +static char * +object_search_ctlv(ipfw_obj_ctlv *ctlv, uint16_t idx, uint16_t type) +{ + ipfw_obj_ntlv *ntlv; + struct object_kt key; + + key.uidx = idx; + key.type = type; + + ntlv = bsearch(&key, (ctlv + 1), ctlv->count, ctlv->objsize, + compare_object_kntlv); + + if (ntlv != 0) + return (ntlv->name); + + return (NULL); +} + +static char * +table_search_ctlv(ipfw_obj_ctlv *ctlv, uint16_t idx) +{ + + return (object_search_ctlv(ctlv, idx, IPFW_TLV_TBL_NAME)); +} + /* * Adds one or more rules to ipfw chain. * Data layout: @@ -4724,7 +4835,7 @@ ipfw_add(char *av[]) ctlv->count = ts.count; ctlv->objsize = sizeof(ipfw_obj_ntlv); memcpy(ctlv + 1, ts.idx, tlen); - table_sort_ctlv(ctlv); + object_sort_ctlv(ctlv); tstate = ctlv; /* Rule next */ ctlv = (ipfw_obj_ctlv *)((caddr_t)ctlv + ctlv->head.length); Modified: projects/ifnet/sbin/ipfw/ipfw2.h ============================================================================== --- projects/ifnet/sbin/ipfw/ipfw2.h Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/sbin/ipfw/ipfw2.h Sun Apr 26 21:28:15 2015 (r282038) @@ -344,8 +344,6 @@ int fill_ext6hdr(struct _ipfw_insn *cmd, /* tables.c */ struct _ipfw_obj_ctlv; -char *table_search_ctlv(struct _ipfw_obj_ctlv *ctlv, uint16_t idx); -void table_sort_ctlv(struct _ipfw_obj_ctlv *ctlv); int table_check_name(char *tablename); void ipfw_list_ta(int ac, char *av[]); void ipfw_list_values(int ac, char *av[]); Modified: projects/ifnet/sbin/ipfw/tables.c ============================================================================== --- projects/ifnet/sbin/ipfw/tables.c Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/sbin/ipfw/tables.c Sun Apr 26 21:28:15 2015 (r282038) @@ -1937,73 +1937,6 @@ ipfw_list_values(int ac, char *av[]) } int -compare_ntlv(const void *_a, const void *_b) -{ - ipfw_obj_ntlv *a, *b; - - a = (ipfw_obj_ntlv *)_a; - b = (ipfw_obj_ntlv *)_b; - - if (a->set < b->set) - return (-1); - else if (a->set > b->set) - return (1); - - if (a->idx < b->idx) - return (-1); - else if (a->idx > b->idx) - return (1); - - return (0); -} - -int -compare_kntlv(const void *k, const void *v) -{ - ipfw_obj_ntlv *ntlv; - uint16_t key; - - key = *((uint16_t *)k); - ntlv = (ipfw_obj_ntlv *)v; - - if (key < ntlv->idx) - return (-1); - else if (key > ntlv->idx) - return (1); - - return (0); -} - -/* - * Finds table name in @ctlv by @idx. - * Uses the following facts: - * 1) All TLVs are the same size - * 2) Kernel implementation provides already sorted list. - * - * Returns table name or NULL. - */ -char * -table_search_ctlv(ipfw_obj_ctlv *ctlv, uint16_t idx) -{ - ipfw_obj_ntlv *ntlv; - - ntlv = bsearch(&idx, (ctlv + 1), ctlv->count, ctlv->objsize, - compare_kntlv); - - if (ntlv != 0) - return (ntlv->name); - - return (NULL); -} - -void -table_sort_ctlv(ipfw_obj_ctlv *ctlv) -{ - - qsort(ctlv + 1, ctlv->count, ctlv->objsize, compare_ntlv); -} - -int table_check_name(char *tablename) { int c, i, l; Modified: projects/ifnet/share/doc/usd/Makefile ============================================================================== --- projects/ifnet/share/doc/usd/Makefile Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/share/doc/usd/Makefile Sun Apr 26 21:28:15 2015 (r282038) @@ -10,6 +10,10 @@ SUBDIR= title \ 05.dc \ 06.bc \ 07.mail \ + 10.exref \ + 11.vitut \ + 12.vi \ + 13.viref \ 18.msdiffs \ 19.memacros \ 20.meref \ Modified: projects/ifnet/share/man/man4/smb.4 ============================================================================== --- projects/ifnet/share/man/man4/smb.4 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/share/man/man4/smb.4 Sun Apr 26 21:28:15 2015 (r282038) @@ -37,10 +37,10 @@ .Sh DESCRIPTION The .Em smb -character device driver provides generic i/o to any +character device driver provides generic I/O to any .Xr smbus 4 instance. -In order to control SMB devices, use +To control SMB devices, use .Pa /dev/smb? with the ioctls described below. Any of these ioctl commands takes a pointer to @@ -74,86 +74,74 @@ struct smbcmd { The .Fa slave field is always used, and provides the address of the -SMBus slave device to talk to. +SMBus slave device. The slave address is specified in the seven most significant bits -.Pq i.e. Dq "left-justified" . +.Pq i.e., Dq "left-justified" . The least significant bit of the slave address must be zero. .Pp .Bl -column ".Dv SMB_QUICK_WRITE" -compact .It Em Ioctl Ta Em Description .Pp .It Dv SMB_QUICK_WRITE Ta -The .Em QuickWrite -command just issues the device address with write intent -to the bus, without transferring any data. +does not transfer any data. +It just issues the device address with write intent to the bus. .It Dv SMB_QUICK_READ Ta -The .Em QuickRead -command just issues the device address with read intent -to the bus, without transferring any data. +does not transfer any data. +It just issues the device address with read intent to the bus. .It Dv SMB_SENDB Ta -The .Em SendByte -command sends the byte provided in the +sends the byte provided in .Fa cmd -field to the device. +to the device. .It Dv SMB_RECVB Ta -The .Em ReceiveByte -command reads a single byte from the device which will -be returned in the -.Fa cmd -field. +reads a single byte from the device which is returned in +.Fa cmd . .It Dv SMB_WRITEB Ta -The .Em WriteByte -command first sends the byte from the +first sends the byte from .Fa cmd -field to the device, followed by the byte given in +to the device, followed by the byte given in .Fa wdata.byte . .It Dv SMB_WRITEW Ta -The .Em WriteWord -command first sends the byte from the +first sends the byte from .Fa cmd -field to the device, followed by the word given in +to the device, followed by the word given in .Fa wdata.word . Note that the SMBus byte-order is little-endian by definition. .It Dv SMB_READB Ta -The .Em ReadByte -command first sends the byte from the +first sends the byte from .Fa cmd -field to the device, and then reads one byte of data from +to the device, then reads one byte of data from the device. -The returned data will be stored in +Returned data is stored in .Fa rdata.byte . .It Dv SMB_READW Ta -The .Em ReadWord -command first sends the byte from the +first sends the byte from .Fa cmd -field to the device, and then reads one word of data from +to the device, then reads one word of data from the device. -The returned data will be stored in +Returned data is stored in .Fa rdata.word . .It Dv SMB_PCALL Ta -The .Em ProcedureCall -command first sends the byte from the +first sends the byte from .Fa cmd -field to the device, followed by the word provided in +to the device, followed by the word provided in .Fa wdata.word . -It then reads one word of data from the device, and returns it +It then reads one word of data from the device and returns it in .Fa rdata.word . .It Dv SMB_BWRITE Ta -The .Em BlockWrite -command first sends the byte from the +first sends the byte from .Fa cmd -field to the device, followed by +to the device, followed by .Fa wcount bytes of data that are taken from the buffer pointed to by .Fa wbuf . @@ -163,34 +151,32 @@ but since .Xr smbus 4 is also used to access I2C devices, the limit has been increased to 1024. -This value is available in the constant +This value can be read from the constant .Dv SMB_MAXBLOCKSIZE . .It Dv SMB_BREAD Ta -The .Em BlockRead -command first sends the byte from the +first sends the byte from .Fa cmd -field to the device, and then reads +to the device, then reads .Fa rcount bytes of data that from the device. -These data will be returned in the buffer pointed to by +This data is returned in the buffer pointed to by .Fa rbuf . .It Dv SMB_TRANS Ta -The .Em Trans -command sends an SMB roll-up transaction with flags that also allow it to -be used for (mostly) I2C pass-through and with with 10-bit addresses. -This function can be used to roll up all of the above functions. -It first sends the byte from the +sends an SMB roll-up transaction with flags that also allow it to +be used for (mostly) I2C pass-through and with 10-bit addresses. +This function can be utilized to roll up all of the above functions. +It first sends the byte from .Fa cmd -field to the device, followed by +to the device, followed by .Fa wcount bytes of data that are taken from the buffer pointed to by .Fa wbuf , then reads .Fa rcount bytes of data that from the device. -These data will be returned in the buffer pointed to by +This data is returned in the buffer pointed to by .Fa rbuf . .Pp The following flags are allowed in @@ -239,5 +225,4 @@ This manual page was written by .An Nicolas Souchu and extended by -.An Michael Gmelin Aq freebsd@grem.de -. +.An Michael Gmelin Aq freebsd@grem.de . Modified: projects/ifnet/sys/arm/allwinner/std.a10 ============================================================================== --- projects/ifnet/sys/arm/allwinner/std.a10 Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/sys/arm/allwinner/std.a10 Sun Apr 26 21:28:15 2015 (r282038) @@ -17,5 +17,7 @@ options KERNPHYSADDR=0x40200000 makeoptions KERNVIRTADDR=0xc0200000 options KERNVIRTADDR=0xc0200000 +options ARM_L2_PIPT + files "../allwinner/files.allwinner" files "../allwinner/files.a10" Modified: projects/ifnet/sys/arm/arm/cpufunc.c ============================================================================== --- projects/ifnet/sys/arm/arm/cpufunc.c Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/sys/arm/arm/cpufunc.c Sun Apr 26 21:28:15 2015 (r282038) @@ -1186,7 +1186,8 @@ arm11x6_setup(void) CPU_CONTROL_32BD_ENABLE | CPU_CONTROL_LABT_ENABLE | CPU_CONTROL_SYST_ENABLE | - CPU_CONTROL_IC_ENABLE; + CPU_CONTROL_IC_ENABLE | + CPU_CONTROL_UNAL_ENABLE; /* * "write as existing" bits Modified: projects/ifnet/sys/arm/arm/locore-v4.S ============================================================================== --- projects/ifnet/sys/arm/arm/locore-v4.S Sun Apr 26 21:16:38 2015 (r282037) +++ projects/ifnet/sys/arm/arm/locore-v4.S Sun Apr 26 21:28:15 2015 (r282038) @@ -116,7 +116,7 @@ ASENTRY_NP(_start) * If we're running with MMU disabled, test against the * physical address instead. */ - mrc p15, 0, r2, c1, c0, 0 + mrc p15, 0, r2, c1, c0, 0 ands r2, r2, #CPU_CONTROL_MMU_ENABLE ldreq r6, =PHYSADDR ldrne r6, =LOADERRAMADDR @@ -125,7 +125,7 @@ ASENTRY_NP(_start) cmp r7, pc bhi from_ram b do_copy - + flash_lower: cmp r6, pc bls from_ram @@ -148,12 +148,12 @@ from_ram: disable_mmu: /* Disable MMU for a while */ - mrc p15, 0, r2, c1, c0, 0 + mrc p15, 0, r2, c1, c0, 0 bic r2, r2, #(CPU_CONTROL_MMU_ENABLE | CPU_CONTROL_DC_ENABLE |\ CPU_CONTROL_WBUF_ENABLE) bic r2, r2, #(CPU_CONTROL_IC_ENABLE) bic r2, r2, #(CPU_CONTROL_BPRD_ENABLE) - mcr p15, 0, r2, c1, c0, 0 + mcr p15, 0, r2, c1, c0, 0 nop nop @@ -169,36 +169,16 @@ Lunmapped: adr r0, Lpagetable bl translate_va_to_pa -#ifndef _ARM_ARCH_6 /* * Some of the older ports (the various XScale, mostly) assume * that the memory before the kernel is mapped, and use it for - * the various stacks, page tables, etc. For those CPUs, map the - * 64 first MB of RAM, as it used to be. + * the various stacks, page tables, etc. For those CPUs, map the + * 64 first MB of RAM, as it used to be. */ /* * Map PA == VA - */ - ldr r5, =PHYSADDR - mov r1, r5 - mov r2, r5 - /* Map 64MiB, preserved over calls to build_pagetables */ - mov r3, #64 - bl build_pagetables - - /* Create the kernel map to jump to */ - mov r1, r5 - ldr r2, =(KERNBASE) - bl build_pagetables - ldr r5, =(KERNPHYSADDR) -#else - /* - * Map PA == VA - */ - /* Find the start kernels load address */ - adr r5, _start - ldr r2, =(L1_S_OFFSET) - bic r5, r2 + */ + ldr r5, =PHYSADDR mov r1, r5 mov r2, r5 /* Map 64MiB, preserved over calls to build_pagetables */ @@ -207,10 +187,10 @@ Lunmapped: /* Create the kernel map to jump to */ mov r1, r5 - ldr r2, =(KERNVIRTADDR) + ldr r2, =(KERNBASE) bl build_pagetables -#endif - + ldr r5, =(KERNPHYSADDR) + #if defined(SOCDEV_PA) && defined(SOCDEV_VA) /* Create the custom map */ ldr r1, =SOCDEV_PA @@ -221,26 +201,16 @@ Lunmapped: mcr p15, 0, r0, c2, c0, 0 /* Set TTB */ mcr p15, 0, r0, c8, c7, 0 /* Flush TLB */ -#if defined(CPU_ARM1136) || defined(CPU_ARM1176) || defined(CPU_CORTEXA) || defined(CPU_MV_PJ4B) || defined(CPU_KRAIT) - mov r0, #0 - mcr p15, 0, r0, c13, c0, 1 /* Set ASID to 0 */ -#endif - /* Set the Domain Access register. Very important! */ - mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT) + mov r0, #((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT) mcr p15, 0, r0, c3, c0, 0 - /* + /* * Enable MMU. * On armv6 enable extended page tables, and set alignment checking * to modulo-4 (CPU_CONTROL_UNAL_ENABLE) for the ldrd/strd * instructions emitted by clang. */ mrc p15, 0, r0, c1, c0, 0 -#ifdef _ARM_ARCH_6 - orr r0, r0, #(CPU_CONTROL_V6_EXTPAGE | CPU_CONTROL_UNAL_ENABLE) - orr r0, r0, #(CPU_CONTROL_AFLT_ENABLE) - orr r0, r0, #(CPU_CONTROL_AF_ENABLE) -#endif orr r0, r0, #(CPU_CONTROL_MMU_ENABLE) mcr p15, 0, r0, c1, c0, 0 nop @@ -280,7 +250,7 @@ virt_done: /* init arm will return the new stack pointer. */ mov sp, r0 - bl _C_LABEL(mi_startup) /* call mi_startup()! */ + bl _C_LABEL(mi_startup) /* call mi_startup()! */ adr r0, .Lmainreturned b _C_LABEL(panic) @@ -389,11 +359,11 @@ pagetable: .word _C_LABEL(cpufuncs) ENTRY_NP(cpu_halt) - mrs r2, cpsr + mrs r2, cpsr bic r2, r2, #(PSR_MODE) - orr r2, r2, #(PSR_SVC32_MODE) + orr r2, r2, #(PSR_SVC32_MODE) orr r2, r2, #(PSR_I | PSR_F) - msr cpsr_fsxc, r2 + msr cpsr_fsxc, r2 ldr r4, .Lcpu_reset_address ldr r4, [r4] @@ -419,9 +389,9 @@ ENTRY_NP(cpu_halt) * Hurl ourselves into the ROM */ mov r0, #(CPU_CONTROL_32BP_ENABLE | CPU_CONTROL_32BD_ENABLE) - mcr p15, 0, r0, c1, c0, 0 - mcrne p15, 0, r2, c8, c7, 0 /* nail I+D TLB on ARMv4 and greater */ - mov pc, r4 + mcr p15, 0, r0, c1, c0, 0 + mcrne p15, 0, r2, c8, c7, 0 /* nail I+D TLB on ARMv4 and greater */ + mov pc, r4 /* * _cpu_reset_address contains the address to branch to, to complete *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 21:32:46 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3F7FB5F7; Sun, 26 Apr 2015 21:32:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2F68F14EC; Sun, 26 Apr 2015 21:32:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QLWkkl078286; Sun, 26 Apr 2015 21:32:46 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QLWkot078285; Sun, 26 Apr 2015 21:32:46 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504262132.t3QLWkot078285@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 21:32:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282040 - projects/ifnet/sys/amd64/conf X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 21:32:46 -0000 Author: glebius Date: Sun Apr 26 21:32:45 2015 New Revision: 282040 URL: https://svnweb.freebsd.org/changeset/base/282040 Log: Add cxgbe(4) to IFNET kernel config. This config is kinda LINT for projects/ifnet. Modified: projects/ifnet/sys/amd64/conf/IFNET Modified: projects/ifnet/sys/amd64/conf/IFNET ============================================================================== --- projects/ifnet/sys/amd64/conf/IFNET Sun Apr 26 21:31:30 2015 (r282039) +++ projects/ifnet/sys/amd64/conf/IFNET Sun Apr 26 21:32:45 2015 (r282040) @@ -1,5 +1,7 @@ include GENERIC +device cxgbe + # Untrivial stuff nodevice netmap nodevice wlan From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 22:29:22 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 453B2148; Sun, 26 Apr 2015 22:29:22 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 340BB19E8; Sun, 26 Apr 2015 22:29:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QMTM7I004517; Sun, 26 Apr 2015 22:29:22 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QMTLso004511; Sun, 26 Apr 2015 22:29:21 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504262229.t3QMTLso004511@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 22:29:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282043 - projects/ifnet/sys/dev/e1000 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 22:29:22 -0000 Author: glebius Date: Sun Apr 26 22:29:21 2015 New Revision: 282043 URL: https://svnweb.freebsd.org/changeset/base/282043 Log: Convert igb(4) to new ifmedia KPI. Functional changes: o If e1000_check_reset_block(&adapter->hw) != 0, then return EBUSY, instead of doing nothing and returning no error. Tested: E1000_DEV_ID_I210_COPPER Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/e1000/if_igb.c projects/ifnet/sys/dev/e1000/if_igb.h Modified: projects/ifnet/sys/dev/e1000/if_igb.c ============================================================================== --- projects/ifnet/sys/dev/e1000/if_igb.c Sun Apr 26 21:47:15 2015 (r282042) +++ projects/ifnet/sys/dev/e1000/if_igb.c Sun Apr 26 22:29:21 2015 (r282043) @@ -67,7 +67,6 @@ #include #include #include -#include #ifdef RSS #include #endif @@ -195,7 +194,7 @@ static uint64_t igb_get_counter(if_t, if static void igb_init(struct adapter *); static void igb_stop(void *); static void igb_media_status(if_t, struct ifmediareq *); -static int igb_media_change(if_t); +static int igb_media_change(if_t, if_media_t); static void igb_identify_hardware(struct adapter *); static int igb_allocate_pci_resources(struct adapter *); static int igb_allocate_msix(struct adapter *); @@ -304,12 +303,33 @@ static driver_t igb_driver = { "igb", igb_methods, sizeof(struct adapter), }; +static if_media_t igb_media_fiber[] = { + IFM_ETHER | IFM_1000_SX | IFM_FDX, + IFM_ETHER | IFM_1000_SX, + IFM_ETHER | IFM_AUTO, 0 }; +static if_media_t igb_media_ife[] = { + IFM_ETHER | IFM_10_T, + IFM_ETHER | IFM_10_T | IFM_FDX, + IFM_ETHER | IFM_100_TX, + IFM_ETHER | IFM_100_TX | IFM_FDX, + IFM_ETHER | IFM_AUTO, 0 }; +static if_media_t igb_media_copper[] = { + IFM_ETHER | IFM_10_T, + IFM_ETHER | IFM_10_T | IFM_FDX, + IFM_ETHER | IFM_100_TX, + IFM_ETHER | IFM_100_TX | IFM_FDX, + IFM_ETHER | IFM_1000_T | IFM_FDX, + IFM_ETHER | IFM_1000_T, + IFM_ETHER | IFM_AUTO, 0 }; + static struct ifdriver igb_ifdrv = { .ifdrv_ops = { .ifop_ioctl = igb_ioctl, .ifop_get_counter = igb_get_counter, .ifop_transmit = igb_mq_start, .ifop_qflush = igb_qflush, + .ifop_media_change = igb_media_change, + .ifop_media_status = igb_media_status, #ifdef DEVICE_POLLING .ifop_poll = igb_poll, #endif @@ -1060,21 +1080,6 @@ igb_ioctl(if_t ifp, u_long command, void IGB_CORE_UNLOCK(adapter); } break; - case SIOCSIFMEDIA: - /* Check SOL/IDER usage */ - IGB_CORE_LOCK(adapter); - if (e1000_check_reset_block(&adapter->hw)) { - IGB_CORE_UNLOCK(adapter); - device_printf(adapter->dev, "Media change is" - " blocked due to SOL/IDER session.\n"); - break; - } - IGB_CORE_UNLOCK(adapter); - case SIOCGIFMEDIA: - IOCTL_DEBUGOUT("ioctl rcv'd: \ - SIOCxIFMEDIA (Get/Set Interface Media)"); - error = ifmedia_ioctl(ifp, ifr, &adapter->media, command); - break; case SIOCSIFCAP: IOCTL_DEBUGOUT("ioctl rcv'd: SIOCSIFCAP (Set Capabilities)"); mask = ifr->ifr_reqcap ^ ifr->ifr_curcap; @@ -1561,18 +1566,25 @@ igb_media_status(if_t ifp, struct ifmedi * **********************************************************************/ static int -igb_media_change(if_t ifp) +igb_media_change(if_t ifp, if_media_t media) { struct adapter *adapter = if_getsoftc(ifp, IF_DRIVER_SOFTC); - struct ifmedia *ifm = &adapter->media; INIT_DEBUGOUT("igb_media_change: begin"); - if (IFM_TYPE(ifm->ifm_media) != IFM_ETHER) + if (IFM_TYPE(media) != IFM_ETHER) return (EINVAL); + /* Check SOL/IDER usage */ IGB_CORE_LOCK(adapter); - switch (IFM_SUBTYPE(ifm->ifm_media)) { + if (e1000_check_reset_block(&adapter->hw)) { + IGB_CORE_UNLOCK(adapter); + device_printf(adapter->dev, "Media change is" + " blocked due to SOL/IDER session.\n"); + return (EBUSY); + } + + switch (IFM_SUBTYPE(media)) { case IFM_AUTO: adapter->hw.mac.autoneg = DO_AUTO_NEG; adapter->hw.phy.autoneg_advertised = AUTONEG_ADV_DEFAULT; @@ -1586,7 +1598,7 @@ igb_media_change(if_t ifp) case IFM_100_TX: adapter->hw.mac.autoneg = FALSE; adapter->hw.phy.autoneg_advertised = 0; - if ((ifm->ifm_media & IFM_GMASK) == IFM_FDX) + if ((media & IFM_GMASK) == IFM_FDX) adapter->hw.mac.forced_speed_duplex = ADVERTISE_100_FULL; else adapter->hw.mac.forced_speed_duplex = ADVERTISE_100_HALF; @@ -1594,7 +1606,7 @@ igb_media_change(if_t ifp) case IFM_10_T: adapter->hw.mac.autoneg = FALSE; adapter->hw.phy.autoneg_advertised = 0; - if ((ifm->ifm_media & IFM_GMASK) == IFM_FDX) + if ((media & IFM_GMASK) == IFM_FDX) adapter->hw.mac.forced_speed_duplex = ADVERTISE_10_FULL; else adapter->hw.mac.forced_speed_duplex = ADVERTISE_10_HALF; @@ -2945,6 +2957,7 @@ igb_setup_interface(device_t dev, struct #endif IFCAP_TSO | IFCAP_JUMBO_MTU | IFCAP_LRO | IFCAP_VLAN_HWFILTER, + .ifat_media = IFM_ETHER | IFM_AUTO, }; INIT_DEBUGOUT("igb_setup_interface: begin"); @@ -2965,36 +2978,18 @@ igb_setup_interface(device_t dev, struct ifat.ifat_capabilities & ~(IFCAP_LRO | IFCAP_VLAN_HWFILTER | IFCAP_POLLING); - adapter->ifp = if_attach(&ifat); - /* - * Specify the media types supported by this adapter and register - * callbacks to update media and link information + * Specify the media types supported by this adapter. */ - ifmedia_init(&adapter->media, IFM_IMASK, - igb_media_change, igb_media_status); if ((adapter->hw.phy.media_type == e1000_media_type_fiber) || - (adapter->hw.phy.media_type == e1000_media_type_internal_serdes)) { - ifmedia_add(&adapter->media, IFM_ETHER | IFM_1000_SX | IFM_FDX, - 0, NULL); - ifmedia_add(&adapter->media, IFM_ETHER | IFM_1000_SX, 0, NULL); - } else { - ifmedia_add(&adapter->media, IFM_ETHER | IFM_10_T, 0, NULL); - ifmedia_add(&adapter->media, IFM_ETHER | IFM_10_T | IFM_FDX, - 0, NULL); - ifmedia_add(&adapter->media, IFM_ETHER | IFM_100_TX, - 0, NULL); - ifmedia_add(&adapter->media, IFM_ETHER | IFM_100_TX | IFM_FDX, - 0, NULL); - if (adapter->hw.phy.type != e1000_phy_ife) { - ifmedia_add(&adapter->media, - IFM_ETHER | IFM_1000_T | IFM_FDX, 0, NULL); - ifmedia_add(&adapter->media, - IFM_ETHER | IFM_1000_T, 0, NULL); - } - } - ifmedia_add(&adapter->media, IFM_ETHER | IFM_AUTO, 0, NULL); - ifmedia_set(&adapter->media, IFM_ETHER | IFM_AUTO); + (adapter->hw.phy.media_type == e1000_media_type_internal_serdes)) + ifat.ifat_mediae = igb_media_fiber; + else if (adapter->hw.phy.type == e1000_phy_ife) + ifat.ifat_mediae = igb_media_ife; + else + ifat.ifat_mediae = igb_media_copper; + + adapter->ifp = if_attach(&ifat); } Modified: projects/ifnet/sys/dev/e1000/if_igb.h ============================================================================== --- projects/ifnet/sys/dev/e1000/if_igb.h Sun Apr 26 21:47:15 2015 (r282042) +++ projects/ifnet/sys/dev/e1000/if_igb.h Sun Apr 26 22:29:21 2015 (r282043) @@ -382,7 +382,6 @@ struct adapter { void *tag; struct resource *res; - struct ifmedia media; struct callout timer; int msix; u32 if_flags; From owner-svn-src-projects@FreeBSD.ORG Sun Apr 26 22:30:56 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CDF67244; Sun, 26 Apr 2015 22:30:56 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BC8C819F8; Sun, 26 Apr 2015 22:30:56 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3QMUuWD004859; Sun, 26 Apr 2015 22:30:56 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3QMUu80004856; Sun, 26 Apr 2015 22:30:56 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201504262230.t3QMUu80004856@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Sun, 26 Apr 2015 22:30:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282044 - projects/ifnet/sys/dev/cxgbe X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Apr 2015 22:30:56 -0000 Author: glebius Date: Sun Apr 26 22:30:55 2015 New Revision: 282044 URL: https://svnweb.freebsd.org/changeset/base/282044 Log: Convert cxgbe(4) to new ifmedia KPI. Not tested. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/cxgbe/adapter.h projects/ifnet/sys/dev/cxgbe/t4_main.c projects/ifnet/sys/dev/cxgbe/t4_tracer.c Modified: projects/ifnet/sys/dev/cxgbe/adapter.h ============================================================================== --- projects/ifnet/sys/dev/cxgbe/adapter.h Sun Apr 26 22:29:21 2015 (r282043) +++ projects/ifnet/sys/dev/cxgbe/adapter.h Sun Apr 26 22:30:55 2015 (r282044) @@ -49,7 +49,6 @@ #include #include #include -#include #include #include @@ -219,7 +218,6 @@ struct port_info { struct adapter *adapter; if_t ifp; - struct ifmedia media; struct mtx pi_lock; char lockname[16]; @@ -259,7 +257,6 @@ struct port_info { int first_nm_rxq; /* index of first netmap rx queue */ if_t nm_ifp; - struct ifmedia nm_media; int nmif_flags; uint16_t nm_viid; int16_t nm_xact_addr_filt; @@ -766,7 +763,6 @@ struct adapter { char ifp_lockname[16]; struct mtx ifp_lock; struct ifnet *ifp; /* tracer ifp */ - struct ifmedia media; int traceq; /* iq used by all tracers, -1 if none */ int tracer_valid; /* bitmap of valid tracers */ int tracer_enabled; /* bitmap of enabled tracers */ Modified: projects/ifnet/sys/dev/cxgbe/t4_main.c ============================================================================== --- projects/ifnet/sys/dev/cxgbe/t4_main.c Sun Apr 26 22:29:21 2015 (r282043) +++ projects/ifnet/sys/dev/cxgbe/t4_main.c Sun Apr 26 22:30:55 2015 (r282044) @@ -154,7 +154,7 @@ static int cxgbe_transmit(if_t, struct m static void cxgbe_qflush(if_t); static uint64_t cxgbe_get_counter(if_t, ift_counter); static void cxgbe_vlan_event(if_t, uint16_t, if_t); -static int cxgbe_media_change(if_t); +static int cxgbe_media_change(if_t, if_media_t); static void cxgbe_media_status(if_t, struct ifmediareq *); static struct iftsomax cxgbe_tsomax = { @@ -163,6 +163,38 @@ static struct iftsomax cxgbe_tsomax = { .tsomax_segsize = 65536, }; +static if_media_t cxgbe_media_xfi[] = { + IFM_ETHER | IFM_AUTO, + IFM_ETHER | IFM_FDX | IFM_10G_T, + IFM_ETHER | IFM_FDX | IFM_1000_T, + IFM_ETHER | IFM_FDX | IFM_100_TX, 0 +}; +static if_media_t cxgbe_media_sgmii[] = { + IFM_ETHER | IFM_AUTO, + IFM_ETHER | IFM_FDX | IFM_1000_T, + IFM_ETHER | IFM_FDX | IFM_100_TX, 0 +}; +static if_media_t cxgbe_media_cx4[] = { + IFM_ETHER | IFM_FDX | IFM_10G_CX4, 0 }; +static if_media_t cxgbe_media_lr[] = { + IFM_ETHER | IFM_FDX | IFM_10G_LR, 0 }; +static if_media_t cxgbe_media_sr[] = { + IFM_ETHER | IFM_FDX | IFM_10G_SR, 0 }; +static if_media_t cxgbe_media_lrm[] = { + IFM_ETHER | IFM_FDX | IFM_10G_LRM, 0 }; +static if_media_t cxgbe_media_twinax[] = { + IFM_ETHER | IFM_FDX | IFM_10G_TWINAX, 0 }; +static if_media_t cxgbe_media_lr4[] = { + IFM_ETHER | IFM_FDX | IFM_40G_LR4, 0 }; +static if_media_t cxgbe_media_sr4[] = { + IFM_ETHER | IFM_FDX | IFM_40G_SR4, 0 }; +static if_media_t cxgbe_media_cr4[] = { + IFM_ETHER | IFM_FDX | IFM_40G_CR4, 0 }; +static if_media_t cxgbe_media_none[] = { + IFM_ETHER | IFM_NONE, 0 }; +static if_media_t cxgbe_media_unknown[] = { + IFM_ETHER | IFM_FDX | IFM_UNKNOWN, 0 }; + static struct ifdriver cxgbe_ifdrv = { .ifdrv_ops = { .ifop_origin = IFOP_ORIGIN_DRIVER, @@ -171,6 +203,8 @@ static struct ifdriver cxgbe_ifdrv = { .ifop_qflush = cxgbe_qflush, .ifop_get_counter = cxgbe_get_counter, .ifop_vlan_event = cxgbe_vlan_event, + .ifop_media_change = cxgbe_media_change, + .ifop_media_status = cxgbe_media_status, }, .ifdrv_name = "cxgbe", .ifdrv_type = IFT_ETHER, @@ -396,7 +430,7 @@ static int get_params__pre_init(struct a static int get_params__post_init(struct adapter *); static int set_params__post_init(struct adapter *); static void t4_set_desc(struct adapter *); -static void build_medialist(struct port_info *, struct ifmedia *); +static if_media_t * choose_mediae(struct port_info *); static int cxgbe_init_synchronized(struct port_info *); static int cxgbe_uninit_synchronized(struct port_info *); static int setup_intr_handlers(struct adapter *); @@ -1103,11 +1137,6 @@ cxgbe_attach(device_t dev) callout_init(&pi->tick, CALLOUT_MPSAFE); - /* Initialize ifmedia for this port */ - ifmedia_init(&pi->media, IFM_IMASK, cxgbe_media_change, - cxgbe_media_status); - build_medialist(pi, &pi->media); - n = 128; s = malloc(n, M_CXGBE, M_WAITOK); o = snprintf(s, n, "%d txq, %d rxq (NIC)", pi->ntxq, pi->nrxq); @@ -1134,14 +1163,12 @@ cxgbe_attach(device_t dev) ifat.ifat_lla = pi->hw_addr; ifat.ifat_softc = pi; ifat.ifat_dunit = device_get_unit(dev); + ifat.ifat_mediae = choose_mediae(pi); + ifat.ifat_media = ifat.ifat_mediae[0]; pi->ifp = if_attach(&ifat); if_setsoftc(pi->ifp, IF_CXGBE_PORT, pi); #ifdef DEV_NETMAP - /* nm_media handled here to keep implementation private to this file */ - ifmedia_init(&pi->nm_media, IFM_IMASK, cxgbe_media_change, - cxgbe_media_status); - build_medialist(pi, &pi->nm_media); create_netmap_ifnet(pi); /* logs errors it something fails */ #endif cxgbe_sysctls(pi); @@ -1182,7 +1209,6 @@ cxgbe_detach(device_t dev) cxgbe_uninit_synchronized(pi); port_full_uninit(pi); - ifmedia_removeall(&pi->media); if_detach(pi->ifp); #ifdef DEV_NETMAP @@ -1317,11 +1343,6 @@ fail: end_synchronized_op(sc, 0); break; - case SIOCSIFMEDIA: - case SIOCGIFMEDIA: - ifmedia_ioctl(ifp, ifr, &pi->media, cmd); - break; - case SIOCGI2C: { struct ifi2creq i2c; @@ -1471,7 +1492,7 @@ cxgbe_get_counter(if_t ifp, ift_counter } static int -cxgbe_media_change(if_t ifp) +cxgbe_media_change(if_t ifp, if_media_t media) { struct port_info *pi = if_getsoftc(ifp, IF_DRIVER_SOFTC); @@ -1484,23 +1505,7 @@ static void cxgbe_media_status(if_t ifp, struct ifmediareq *ifmr) { struct port_info *pi = if_getsoftc(ifp, IF_DRIVER_SOFTC); - struct ifmedia *media = NULL; - struct ifmedia_entry *cur; int speed = pi->link_cfg.speed; -#ifdef INVARIANTS - int data = (pi->port_type << 8) | pi->mod_type; -#endif - - if (ifp == pi->ifp) - media = &pi->media; -#ifdef DEV_NETMAP - else if (ifp == pi->nm_ifp) - media = &pi->nm_media; -#endif - MPASS(media != NULL); - - cur = media->ifm_cur; - MPASS(cur->ifm_data == data); ifmr->ifm_status = IFM_AVALID; if (!pi->link_cfg.link_ok) @@ -1509,7 +1514,7 @@ cxgbe_media_status(if_t ifp, struct ifme ifmr->ifm_status |= IFM_ACTIVE; /* active and current will differ iff current media is autoselect. */ - if (IFM_SUBTYPE(cur->ifm_media) != IFM_AUTO) + if (IFM_SUBTYPE(ifmr->ifm_current) != IFM_AUTO) return; ifmr->ifm_active = IFM_ETHER | IFM_FDX; @@ -2797,35 +2802,20 @@ t4_set_desc(struct adapter *sc) device_set_desc_copy(sc->dev, buf); } -static void -build_medialist(struct port_info *pi, struct ifmedia *media) +static if_media_t * +choose_mediae(struct port_info *pi) { - int data, m; - - PORT_LOCK(pi); - - ifmedia_removeall(media); - - m = IFM_ETHER | IFM_FDX; - data = (pi->port_type << 8) | pi->mod_type; switch(pi->port_type) { case FW_PORT_TYPE_BT_XFI: case FW_PORT_TYPE_BT_XAUI: - ifmedia_add(media, m | IFM_10G_T, data, NULL); - /* fall through */ + return (cxgbe_media_xfi); case FW_PORT_TYPE_BT_SGMII: - ifmedia_add(media, m | IFM_1000_T, data, NULL); - ifmedia_add(media, m | IFM_100_TX, data, NULL); - ifmedia_add(media, IFM_ETHER | IFM_AUTO, data, NULL); - ifmedia_set(media, IFM_ETHER | IFM_AUTO); - break; + return (cxgbe_media_sgmii); case FW_PORT_TYPE_CX4: - ifmedia_add(media, m | IFM_10G_CX4, data, NULL); - ifmedia_set(media, m | IFM_10G_CX4); - break; + return (cxgbe_media_cx4); case FW_PORT_TYPE_QSFP_10G: case FW_PORT_TYPE_SFP: @@ -2834,89 +2824,48 @@ build_medialist(struct port_info *pi, st switch (pi->mod_type) { case FW_PORT_MOD_TYPE_LR: - ifmedia_add(media, m | IFM_10G_LR, data, NULL); - ifmedia_set(media, m | IFM_10G_LR); - break; + return (cxgbe_media_lr); case FW_PORT_MOD_TYPE_SR: - ifmedia_add(media, m | IFM_10G_SR, data, NULL); - ifmedia_set(media, m | IFM_10G_SR); - break; + return (cxgbe_media_sr); case FW_PORT_MOD_TYPE_LRM: - ifmedia_add(media, m | IFM_10G_LRM, data, NULL); - ifmedia_set(media, m | IFM_10G_LRM); - break; + return (cxgbe_media_lrm); case FW_PORT_MOD_TYPE_TWINAX_PASSIVE: case FW_PORT_MOD_TYPE_TWINAX_ACTIVE: - ifmedia_add(media, m | IFM_10G_TWINAX, data, NULL); - ifmedia_set(media, m | IFM_10G_TWINAX); - break; + return (cxgbe_media_twinax); case FW_PORT_MOD_TYPE_NONE: - m &= ~IFM_FDX; - ifmedia_add(media, m | IFM_NONE, data, NULL); - ifmedia_set(media, m | IFM_NONE); - break; + return (cxgbe_media_none); case FW_PORT_MOD_TYPE_NA: case FW_PORT_MOD_TYPE_ER: default: - device_printf(pi->dev, - "unknown port_type (%d), mod_type (%d)\n", - pi->port_type, pi->mod_type); - ifmedia_add(media, m | IFM_UNKNOWN, data, NULL); - ifmedia_set(media, m | IFM_UNKNOWN); - break; + return (cxgbe_media_unknown); } - break; - case FW_PORT_TYPE_QSFP: switch (pi->mod_type) { case FW_PORT_MOD_TYPE_LR: - ifmedia_add(media, m | IFM_40G_LR4, data, NULL); - ifmedia_set(media, m | IFM_40G_LR4); - break; + return (cxgbe_media_lr4); case FW_PORT_MOD_TYPE_SR: - ifmedia_add(media, m | IFM_40G_SR4, data, NULL); - ifmedia_set(media, m | IFM_40G_SR4); - break; + return (cxgbe_media_sr4); case FW_PORT_MOD_TYPE_TWINAX_PASSIVE: case FW_PORT_MOD_TYPE_TWINAX_ACTIVE: - ifmedia_add(media, m | IFM_40G_CR4, data, NULL); - ifmedia_set(media, m | IFM_40G_CR4); - break; + return (cxgbe_media_cr4); case FW_PORT_MOD_TYPE_NONE: - m &= ~IFM_FDX; - ifmedia_add(media, m | IFM_NONE, data, NULL); - ifmedia_set(media, m | IFM_NONE); - break; + return (cxgbe_media_none); default: - device_printf(pi->dev, - "unknown port_type (%d), mod_type (%d)\n", - pi->port_type, pi->mod_type); - ifmedia_add(media, m | IFM_UNKNOWN, data, NULL); - ifmedia_set(media, m | IFM_UNKNOWN); - break; + return (cxgbe_media_unknown); } - break; - default: - device_printf(pi->dev, - "unknown port_type (%d), mod_type (%d)\n", pi->port_type, - pi->mod_type); - ifmedia_add(media, m | IFM_UNKNOWN, data, NULL); - ifmedia_set(media, m | IFM_UNKNOWN); - break; + return (cxgbe_media_unknown); } - - PORT_UNLOCK(pi); } struct mc_addr_ctx { @@ -7879,10 +7828,12 @@ t4_os_portmod_changed(const struct adapt static const char *mod_str[] = { NULL, "LR", "SR", "ER", "TWINAX", "active TWINAX", "LRM" }; + if_media_t *newmediae; - build_medialist(pi, &pi->media); + newmediae = choose_mediae(pi); + if_media_change(pi->ifp, newmediae, newmediae[0]); #ifdef DEV_NETMAP - build_medialist(pi, &pi->nm_media); + if_media_change(pi->nm_ifp, newmediae, newmediae[0]); #endif if (pi->mod_type == FW_PORT_MOD_TYPE_NONE) Modified: projects/ifnet/sys/dev/cxgbe/t4_tracer.c ============================================================================== --- projects/ifnet/sys/dev/cxgbe/t4_tracer.c Sun Apr 26 22:29:21 2015 (r282043) +++ projects/ifnet/sys/dev/cxgbe/t4_tracer.c Sun Apr 26 22:30:55 2015 (r282044) @@ -85,12 +85,16 @@ static struct sx t4_trace_lock; /* tracer interface ops. mostly no-ops. */ static int tracer_ioctl(if_t, unsigned long, void *, struct thread *); -static int tracer_media_change(if_t); +static int tracer_media_change(if_t, if_media_t); static void tracer_media_status(if_t, struct ifmediareq *); +static if_media_t tracer_mediae[] = { IFM_ETHER | IFM_FDX | IFM_NONE, 0 }; + static struct ifdriver t4_tracer_ifdrv = { .ifdrv_ops = { .ifop_ioctl = tracer_ioctl, + .ifop_media_change = tracer_media_change, + .ifop_media_status = tracer_media_status, }, .ifdrv_name = "tXnex", .ifdrv_type = IFT_ETHER, @@ -145,6 +149,8 @@ t4_cloner_create(struct if_clone *ifc, c .ifat_flags = IFF_SIMPLEX, .ifat_capabilities = IFCAP_JUMBO_MTU | IFCAP_VLAN_MTU, .ifat_lla = lla, + .ifat_mediae = tracer_mediae, + .ifat_media = tracer_mediae[0], }; struct match_rr mrr; struct adapter *sc; @@ -179,11 +185,6 @@ t4_cloner_create(struct if_clone *ifc, c ifat.ifat_softc = sc; ifp = if_attach(&ifat); - ifmedia_init(&sc->media, IFM_IMASK, tracer_media_change, - tracer_media_status); - ifmedia_add(&sc->media, IFM_ETHER | IFM_FDX | IFM_NONE, 0, NULL); - ifmedia_set(&sc->media, IFM_ETHER | IFM_FDX | IFM_NONE); - mtx_lock(&sc->ifp_lock); sc->ifp = ifp; mtx_unlock(&sc->ifp_lock); @@ -204,7 +205,6 @@ t4_cloner_destroy(struct if_clone *ifc, mtx_lock(&sc->ifp_lock); sc->ifp = NULL; mtx_unlock(&sc->ifp_lock); - ifmedia_removeall(&sc->media); } if_detach(ifp); sx_xunlock(&t4_trace_lock); @@ -249,7 +249,6 @@ t4_tracer_port_detach(struct adapter *sc sc->ifp = NULL; mtx_unlock(&sc->ifp_lock); } - ifmedia_removeall(&sc->media); sx_xunlock(&t4_trace_lock); } @@ -435,9 +434,6 @@ t5_trace_pkt(struct sge_iq *iq, const st static int tracer_ioctl(if_t ifp, unsigned long cmd, void *data, struct thread *td) { - int rc = 0; - struct adapter *sc; - struct ifreq *ifr = (struct ifreq *)data; switch (cmd) { case SIOCSIFMTU: @@ -445,26 +441,14 @@ tracer_ioctl(if_t ifp, unsigned long cmd case SIOCADDMULTI: case SIOCDELMULTI: case SIOCSIFCAP: - break; - case SIOCSIFMEDIA: - case SIOCGIFMEDIA: - sx_xlock(&t4_trace_lock); - sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); - if (sc == NULL) - rc = EIO; - else - rc = ifmedia_ioctl(ifp, ifr, &sc->media, cmd); - sx_xunlock(&t4_trace_lock); - break; + return (0); default: - rc = EOPNOTSUPP; + return (EOPNOTSUPP); } - - return (rc); } static int -tracer_media_change(if_t ifp) +tracer_media_change(if_t ifp, if_media_t media) { return (EOPNOTSUPP); From owner-svn-src-projects@FreeBSD.ORG Mon Apr 27 17:47:13 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0B4D2A96; Mon, 27 Apr 2015 17:47:13 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E9F5E148F; Mon, 27 Apr 2015 17:47:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3RHlCC0091871; Mon, 27 Apr 2015 17:47:12 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3RHl9RX091846; Mon, 27 Apr 2015 17:47:09 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201504271747.t3RHl9RX091846@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Mon, 27 Apr 2015 17:47:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282103 - in projects/em_mq: . bin/ed bin/expr bin/sh contrib/ldns contrib/ldns/drill contrib/ldns/packaging contrib/libxo contrib/libxo/doc contrib/libxo/libxo contrib/libxo/m4 contrib... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2015 17:47:13 -0000 Author: sbruno Date: Mon Apr 27 17:47:08 2015 New Revision: 282103 URL: https://svnweb.freebsd.org/changeset/base/282103 Log: MFH @282102 Added: projects/em_mq/contrib/ldns/freebsd-configure.sh - copied unchanged from r282102, head/contrib/ldns/freebsd-configure.sh projects/em_mq/contrib/ldns/packaging/ - copied from r282102, head/contrib/ldns/packaging/ projects/em_mq/contrib/libxo/libxo/xo_open_marker.3 - copied unchanged from r282102, head/contrib/libxo/libxo/xo_open_marker.3 projects/em_mq/contrib/libxo/libxo/xo_set_version.3 - copied unchanged from r282102, head/contrib/libxo/libxo/xo_set_version.3 projects/em_mq/contrib/libxo/tests/core/saved/test_10.H.err - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.H.err projects/em_mq/contrib/libxo/tests/core/saved/test_10.H.out - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.H.out projects/em_mq/contrib/libxo/tests/core/saved/test_10.HIPx.err - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.HIPx.err projects/em_mq/contrib/libxo/tests/core/saved/test_10.HIPx.out - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.HIPx.out projects/em_mq/contrib/libxo/tests/core/saved/test_10.HP.err - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.HP.err projects/em_mq/contrib/libxo/tests/core/saved/test_10.HP.out - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.HP.out projects/em_mq/contrib/libxo/tests/core/saved/test_10.J.err - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.J.err projects/em_mq/contrib/libxo/tests/core/saved/test_10.J.out - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.J.out projects/em_mq/contrib/libxo/tests/core/saved/test_10.JP.err - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.JP.err projects/em_mq/contrib/libxo/tests/core/saved/test_10.JP.out - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.JP.out projects/em_mq/contrib/libxo/tests/core/saved/test_10.T.err - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.T.err projects/em_mq/contrib/libxo/tests/core/saved/test_10.T.out - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.T.out projects/em_mq/contrib/libxo/tests/core/saved/test_10.X.err - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.X.err projects/em_mq/contrib/libxo/tests/core/saved/test_10.X.out - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.X.out projects/em_mq/contrib/libxo/tests/core/saved/test_10.XP.err - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.XP.err projects/em_mq/contrib/libxo/tests/core/saved/test_10.XP.out - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.XP.out projects/em_mq/contrib/libxo/tests/core/saved/test_10.err - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.err projects/em_mq/contrib/libxo/tests/core/saved/test_10.out - copied unchanged from r282102, head/contrib/libxo/tests/core/saved/test_10.out projects/em_mq/contrib/libxo/tests/core/test_10.c - copied unchanged from r282102, head/contrib/libxo/tests/core/test_10.c projects/em_mq/contrib/libxo/xohtml/Makefile.am - copied unchanged from r282102, head/contrib/libxo/xohtml/Makefile.am projects/em_mq/contrib/libxo/xohtml/xohtml.1 - copied unchanged from r282102, head/contrib/libxo/xohtml/xohtml.1 projects/em_mq/etc/rc.d/tests/ - copied from r282102, head/etc/rc.d/tests/ projects/em_mq/share/doc/usd/10.exref/ - copied from r282102, head/share/doc/usd/10.exref/ projects/em_mq/share/doc/usd/11.vitut/ - copied from r282102, head/share/doc/usd/11.vitut/ projects/em_mq/share/doc/usd/12.vi/ - copied from r282102, head/share/doc/usd/12.vi/ projects/em_mq/share/doc/usd/13.viref/ - copied from r282102, head/share/doc/usd/13.viref/ projects/em_mq/sys/arm/conf/AML8726 - copied unchanged from r282102, head/sys/arm/conf/AML8726 projects/em_mq/sys/arm/freescale/imx/files.imx5 - copied unchanged from r282102, head/sys/arm/freescale/imx/files.imx5 projects/em_mq/sys/arm64/arm64/db_disasm.c - copied unchanged from r282102, head/sys/arm64/arm64/db_disasm.c projects/em_mq/sys/arm64/arm64/db_interface.c - copied unchanged from r282102, head/sys/arm64/arm64/db_interface.c projects/em_mq/sys/arm64/arm64/db_trace.c - copied unchanged from r282102, head/sys/arm64/arm64/db_trace.c projects/em_mq/sys/arm64/arm64/debug_monitor.c - copied unchanged from r282102, head/sys/arm64/arm64/debug_monitor.c projects/em_mq/sys/libkern/zlib.c - copied unchanged from r282102, head/sys/libkern/zlib.c projects/em_mq/sys/sys/zlib.h - copied unchanged from r282102, head/sys/sys/zlib.h projects/em_mq/sys/sys/zutil.h - copied unchanged from r282102, head/sys/sys/zutil.h projects/em_mq/sys/x86/x86/cpu_machdep.c - copied unchanged from r282102, head/sys/x86/x86/cpu_machdep.c projects/em_mq/sys/x86/x86/mp_x86.c - copied unchanged from r282102, head/sys/x86/x86/mp_x86.c projects/em_mq/tests/sys/aio/ - copied from r282102, head/tests/sys/aio/ projects/em_mq/tests/sys/fifo/ - copied from r282102, head/tests/sys/fifo/ projects/em_mq/tests/sys/file/ - copied from r282102, head/tests/sys/file/ projects/em_mq/tests/sys/kern/execve/ - copied from r282102, head/tests/sys/kern/execve/ projects/em_mq/tests/sys/kern/mmap_test.c - copied unchanged from r282102, head/tests/sys/kern/mmap_test.c projects/em_mq/tests/sys/kqueue/ - copied from r282102, head/tests/sys/kqueue/ projects/em_mq/tests/sys/mqueue/ - copied from r282102, head/tests/sys/mqueue/ Deleted: projects/em_mq/etc/tests/rc.d/ projects/em_mq/lib/libc/Makefile.amd64 projects/em_mq/lib/libc/Makefile.i386 projects/em_mq/lib/librt/Makefile.amd64 projects/em_mq/lib/librt/Makefile.i386 projects/em_mq/lib/libthr/Makefile.amd64 projects/em_mq/lib/libthr/Makefile.i386 projects/em_mq/lib/msun/Makefile.amd64 projects/em_mq/lib/msun/Makefile.i386 projects/em_mq/sys/arm/amlogic/aml8726/files.smp projects/em_mq/sys/arm/amlogic/aml8726/std.odroidc1 projects/em_mq/sys/arm/amlogic/aml8726/std.vsatv102-m6 projects/em_mq/sys/arm/freescale/imx/files.imx51 projects/em_mq/sys/arm/freescale/imx/files.imx53 projects/em_mq/sys/net/zlib.c projects/em_mq/sys/net/zlib.h projects/em_mq/sys/net/zutil.h projects/em_mq/tools/regression/aio/aiotest/ projects/em_mq/tools/regression/aio/kqueue/ projects/em_mq/tools/regression/execve/ projects/em_mq/tools/regression/fifo/ projects/em_mq/tools/regression/file/dup/ projects/em_mq/tools/regression/file/fcntlflags/ projects/em_mq/tools/regression/file/flock/ projects/em_mq/tools/regression/file/ftruncate/ projects/em_mq/tools/regression/file/newfileops_on_fork/ projects/em_mq/tools/regression/kqueue/ projects/em_mq/tools/regression/mmap/ projects/em_mq/tools/regression/mqueue/ Modified: projects/em_mq/ObsoleteFiles.inc projects/em_mq/bin/ed/ed.1 projects/em_mq/bin/expr/expr.1 projects/em_mq/bin/sh/jobs.c projects/em_mq/contrib/ldns/drill/config.h projects/em_mq/contrib/ldns/drill/drill.1 projects/em_mq/contrib/libxo/Makefile.am projects/em_mq/contrib/libxo/configure.ac projects/em_mq/contrib/libxo/doc/libxo.txt projects/em_mq/contrib/libxo/libxo/Makefile.am projects/em_mq/contrib/libxo/libxo/libxo.c projects/em_mq/contrib/libxo/libxo/xo.h projects/em_mq/contrib/libxo/libxo/xo_error.3 projects/em_mq/contrib/libxo/libxo/xo_format.5 projects/em_mq/contrib/libxo/libxo/xo_open_container.3 projects/em_mq/contrib/libxo/libxo/xoconfig.h projects/em_mq/contrib/libxo/libxo/xoconfig.h.in projects/em_mq/contrib/libxo/libxo/xoversion.h projects/em_mq/contrib/libxo/m4/libtool.m4 projects/em_mq/contrib/libxo/m4/ltoptions.m4 projects/em_mq/contrib/libxo/m4/ltversion.m4 projects/em_mq/contrib/libxo/tests/core/Makefile.am projects/em_mq/contrib/libxo/tests/core/saved/test_01.JP.out projects/em_mq/contrib/libxo/tests/core/saved/test_02.JP.out projects/em_mq/contrib/libxo/tests/core/saved/test_05.H.out projects/em_mq/contrib/libxo/tests/core/saved/test_05.HIPx.out projects/em_mq/contrib/libxo/tests/core/saved/test_05.HP.out projects/em_mq/contrib/libxo/tests/core/saved/test_05.J.out projects/em_mq/contrib/libxo/tests/core/saved/test_05.JP.out projects/em_mq/contrib/libxo/tests/core/saved/test_05.T.out projects/em_mq/contrib/libxo/tests/core/saved/test_05.X.out projects/em_mq/contrib/libxo/tests/core/saved/test_05.XP.out projects/em_mq/contrib/libxo/tests/core/saved/test_09.JP.out projects/em_mq/contrib/libxo/tests/core/test_05.c projects/em_mq/contrib/libxo/xo/xo.1 projects/em_mq/contrib/libxo/xohtml/xohtml.css projects/em_mq/contrib/libxo/xohtml/xohtml.sh.in projects/em_mq/contrib/libxo/xolint/Makefile.am projects/em_mq/contrib/libxo/xolint/xolint.1 projects/em_mq/contrib/libxo/xolint/xolint.pl projects/em_mq/contrib/netbsd-tests/lib/libm/t_fmod.c projects/em_mq/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c projects/em_mq/contrib/tcpdump/interface.h projects/em_mq/contrib/tcpdump/netdissect.h projects/em_mq/contrib/tcpdump/print-ip.c projects/em_mq/contrib/tcpdump/print-pfsync.c projects/em_mq/contrib/unbound/Makefile.in projects/em_mq/contrib/unbound/compat/getentropy_linux.c projects/em_mq/contrib/unbound/config.h projects/em_mq/contrib/unbound/config.h.in projects/em_mq/contrib/unbound/configure projects/em_mq/contrib/unbound/configure.ac projects/em_mq/contrib/unbound/daemon/remote.c projects/em_mq/contrib/unbound/daemon/unbound.c projects/em_mq/contrib/unbound/daemon/worker.c projects/em_mq/contrib/unbound/doc/Changelog projects/em_mq/contrib/unbound/doc/README projects/em_mq/contrib/unbound/doc/example.conf projects/em_mq/contrib/unbound/doc/example.conf.in projects/em_mq/contrib/unbound/doc/libunbound.3 projects/em_mq/contrib/unbound/doc/libunbound.3.in projects/em_mq/contrib/unbound/doc/unbound-anchor.8 projects/em_mq/contrib/unbound/doc/unbound-anchor.8.in projects/em_mq/contrib/unbound/doc/unbound-checkconf.8 projects/em_mq/contrib/unbound/doc/unbound-checkconf.8.in projects/em_mq/contrib/unbound/doc/unbound-control.8 projects/em_mq/contrib/unbound/doc/unbound-control.8.in projects/em_mq/contrib/unbound/doc/unbound-host.1 projects/em_mq/contrib/unbound/doc/unbound-host.1.in projects/em_mq/contrib/unbound/doc/unbound.8 projects/em_mq/contrib/unbound/doc/unbound.8.in projects/em_mq/contrib/unbound/doc/unbound.conf.5 projects/em_mq/contrib/unbound/doc/unbound.conf.5.in projects/em_mq/contrib/unbound/iterator/iter_scrub.c projects/em_mq/contrib/unbound/iterator/iter_utils.c projects/em_mq/contrib/unbound/iterator/iter_utils.h projects/em_mq/contrib/unbound/iterator/iterator.c projects/em_mq/contrib/unbound/libunbound/libworker.c projects/em_mq/contrib/unbound/libunbound/python/libunbound.i projects/em_mq/contrib/unbound/services/listen_dnsport.c projects/em_mq/contrib/unbound/services/localzone.c projects/em_mq/contrib/unbound/services/localzone.h projects/em_mq/contrib/unbound/smallapp/unbound-checkconf.c projects/em_mq/contrib/unbound/smallapp/unbound-control-setup.sh projects/em_mq/contrib/unbound/smallapp/unbound-control-setup.sh.in projects/em_mq/contrib/unbound/smallapp/unbound-control.c projects/em_mq/contrib/unbound/util/config_file.c projects/em_mq/contrib/unbound/util/config_file.h projects/em_mq/contrib/unbound/util/configlexer.lex projects/em_mq/contrib/unbound/util/configparser.y projects/em_mq/contrib/unbound/util/iana_ports.inc projects/em_mq/contrib/unbound/util/net_help.c projects/em_mq/contrib/unbound/util/rtt.c projects/em_mq/contrib/unbound/util/rtt.h projects/em_mq/contrib/unbound/validator/val_secalgo.c projects/em_mq/contrib/unbound/validator/val_utils.c projects/em_mq/contrib/unbound/validator/val_utils.h projects/em_mq/contrib/unbound/validator/validator.c projects/em_mq/etc/mtree/BSD.tests.dist projects/em_mq/etc/rc.d/Makefile projects/em_mq/etc/tests/Makefile projects/em_mq/lib/libarchive/config_freebsd.h projects/em_mq/lib/libc/Makefile projects/em_mq/lib/libc/gen/_once_stub.c projects/em_mq/lib/libc/gen/getutxent.3 projects/em_mq/lib/libc/gen/nice.3 projects/em_mq/lib/libc/gen/posix_spawn.3 projects/em_mq/lib/libc/gen/posix_spawn_file_actions_addopen.3 projects/em_mq/lib/libc/gen/posix_spawn_file_actions_init.3 projects/em_mq/lib/libc/gen/posix_spawnattr_getflags.3 projects/em_mq/lib/libc/gen/posix_spawnattr_getpgroup.3 projects/em_mq/lib/libc/gen/posix_spawnattr_getschedparam.3 projects/em_mq/lib/libc/gen/posix_spawnattr_getschedpolicy.3 projects/em_mq/lib/libc/gen/posix_spawnattr_getsigdefault.3 projects/em_mq/lib/libc/gen/posix_spawnattr_getsigmask.3 projects/em_mq/lib/libc/gen/posix_spawnattr_init.3 projects/em_mq/lib/libc/include/compat.h projects/em_mq/lib/libc/locale/duplocale.3 projects/em_mq/lib/libc/locale/freelocale.3 projects/em_mq/lib/libc/locale/newlocale.3 projects/em_mq/lib/libc/locale/none.c projects/em_mq/lib/libc/locale/querylocale.3 projects/em_mq/lib/libc/locale/uselocale.3 projects/em_mq/lib/libc/net/sctp_recvmsg.3 projects/em_mq/lib/libc/nls/catopen.3 projects/em_mq/lib/libc/regex/re_format.7 projects/em_mq/lib/libc/regex/regcomp.c projects/em_mq/lib/libc/regex/regex.3 projects/em_mq/lib/libc/rpc/rpcbind.3 projects/em_mq/lib/libc/stdio/flags.c projects/em_mq/lib/libc/stdio/open_memstream.3 projects/em_mq/lib/libc/stdio/open_memstream.c projects/em_mq/lib/libc/stdio/open_wmemstream.c projects/em_mq/lib/libc/sys/closefrom.2 projects/em_mq/lib/libc/sys/posix_openpt.2 projects/em_mq/lib/libc/sys/procctl.2 projects/em_mq/lib/libc/tests/db/Makefile projects/em_mq/lib/libc/tests/sys/Makefile projects/em_mq/lib/libedit/el.c projects/em_mq/lib/libgeom/geom_xml2tree.c projects/em_mq/lib/libmd/mdXhl.c projects/em_mq/lib/librt/Makefile projects/em_mq/lib/libstand/Makefile projects/em_mq/lib/libthr/Makefile projects/em_mq/lib/libthr/tests/Makefile projects/em_mq/lib/libthr/thread/thr_clean.c projects/em_mq/lib/libxo/Makefile projects/em_mq/lib/msun/Makefile projects/em_mq/lib/msun/man/j0.3 projects/em_mq/lib/msun/man/lgamma.3 projects/em_mq/lib/msun/man/nextafter.3 projects/em_mq/lib/msun/tests/Makefile projects/em_mq/libexec/casper/dns/dns.c projects/em_mq/libexec/rtld-elf/rtld.c projects/em_mq/release/arm64/make-memstick.sh projects/em_mq/release/scripts/mk-vmimage.sh projects/em_mq/release/tools/vmimage.subr projects/em_mq/sbin/atm/atmconfig/atmconfig.8 projects/em_mq/sbin/camcontrol/camcontrol.8 projects/em_mq/sbin/growfs/Makefile projects/em_mq/sbin/growfs/growfs.c projects/em_mq/sbin/ipfw/ipfw2.c projects/em_mq/sbin/ipfw/ipfw2.h projects/em_mq/sbin/ipfw/tables.c projects/em_mq/share/doc/usd/Makefile projects/em_mq/share/man/man4/ada.4 projects/em_mq/share/man/man4/smb.4 projects/em_mq/share/man/man4/urtwn.4 projects/em_mq/share/man/man9/BUS_BIND_INTR.9 projects/em_mq/share/man/man9/BUS_CHILD_DELETED.9 projects/em_mq/share/man/man9/BUS_CHILD_DETACHED.9 projects/em_mq/share/man/man9/BUS_DESCRIBE_INTR.9 projects/em_mq/share/man/man9/BUS_NEW_PASS.9 projects/em_mq/share/man/man9/Makefile projects/em_mq/share/man/man9/VOP_ADVISE.9 projects/em_mq/share/man/man9/VOP_ALLOCATE.9 projects/em_mq/share/man/man9/bus_adjust_resource.9 projects/em_mq/share/man/man9/bus_generic_new_pass.9 projects/em_mq/share/man/man9/bus_set_pass.9 projects/em_mq/share/man/man9/getenv.9 projects/em_mq/share/man/man9/panic.9 projects/em_mq/share/man/man9/refcount.9 projects/em_mq/share/man/man9/sglist.9 projects/em_mq/share/man/man9/shm_map.9 projects/em_mq/share/misc/committers-src.dot projects/em_mq/share/mk/src.opts.mk projects/em_mq/sys/amd64/amd64/machdep.c projects/em_mq/sys/amd64/amd64/mp_machdep.c projects/em_mq/sys/amd64/include/md_var.h projects/em_mq/sys/amd64/include/smp.h projects/em_mq/sys/amd64/include/vm.h projects/em_mq/sys/amd64/vmm/amd/svm.c projects/em_mq/sys/amd64/vmm/vmm_instruction_emul.c projects/em_mq/sys/arm/allwinner/std.a10 projects/em_mq/sys/arm/amlogic/aml8726/files.aml8726 projects/em_mq/sys/arm/amlogic/aml8726/std.aml8726 projects/em_mq/sys/arm/arm/cpufunc.c projects/em_mq/sys/arm/arm/locore-v4.S projects/em_mq/sys/arm/arm/locore-v6.S projects/em_mq/sys/arm/broadcom/bcm2835/bcm2835_mbox.c projects/em_mq/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c projects/em_mq/sys/arm/broadcom/bcm2835/std.bcm2836 projects/em_mq/sys/arm/conf/EFIKA_MX projects/em_mq/sys/arm/conf/IMX53 projects/em_mq/sys/arm/conf/IMX6 projects/em_mq/sys/arm/conf/ODROIDC1 projects/em_mq/sys/arm/conf/RK3188 projects/em_mq/sys/arm/conf/RPI2 projects/em_mq/sys/arm/conf/VSATV102 projects/em_mq/sys/arm/freescale/imx/std.imx51 projects/em_mq/sys/arm/freescale/imx/std.imx53 projects/em_mq/sys/arm64/arm64/nexus.c projects/em_mq/sys/arm64/arm64/pmap.c projects/em_mq/sys/arm64/arm64/stack_machdep.c projects/em_mq/sys/boot/common/md.c projects/em_mq/sys/boot/fdt/dts/arm/bcm2836.dtsi projects/em_mq/sys/boot/fdt/dts/arm/rpi2.dts projects/em_mq/sys/boot/i386/common/edd.h projects/em_mq/sys/boot/libstand32/Makefile projects/em_mq/sys/boot/userboot/libstand/Makefile projects/em_mq/sys/cam/scsi/scsi_da.c projects/em_mq/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/em_mq/sys/cddl/dev/dtrace/amd64/dtrace_asm.S projects/em_mq/sys/cddl/dev/dtrace/arm/dtrace_asm.S projects/em_mq/sys/cddl/dev/dtrace/dtrace_hacks.c projects/em_mq/sys/cddl/dev/dtrace/i386/dtrace_asm.S projects/em_mq/sys/cddl/dev/dtrace/mips/dtrace_asm.S projects/em_mq/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S projects/em_mq/sys/cddl/dev/profile/profile.c projects/em_mq/sys/compat/linux/linux_getcwd.c projects/em_mq/sys/conf/files projects/em_mq/sys/conf/files.amd64 projects/em_mq/sys/conf/files.arm64 projects/em_mq/sys/conf/files.i386 projects/em_mq/sys/conf/files.pc98 projects/em_mq/sys/conf/options.arm projects/em_mq/sys/dev/bxe/bxe.h projects/em_mq/sys/dev/cxgbe/t4_main.c projects/em_mq/sys/dev/e1000/if_igb.c projects/em_mq/sys/dev/ichsmb/ichsmb_pci.c projects/em_mq/sys/dev/iicbus/pcf8563.c projects/em_mq/sys/dev/ipmi/ipmi.c projects/em_mq/sys/dev/ipmi/ipmi_kcs.c projects/em_mq/sys/dev/ipmi/ipmi_smic.c projects/em_mq/sys/dev/ipmi/ipmivars.h projects/em_mq/sys/dev/mii/brgphy.c projects/em_mq/sys/dev/mxge/if_mxge.c projects/em_mq/sys/dev/pccbb/pccbb_pci.c projects/em_mq/sys/dev/pci/pci.c projects/em_mq/sys/dev/pci/pci_pci.c projects/em_mq/sys/dev/pci/pci_subr.c projects/em_mq/sys/dev/pci/pcib_private.h projects/em_mq/sys/dev/pci/pcivar.h projects/em_mq/sys/dev/smbus/smb.c projects/em_mq/sys/dev/smbus/smb.h projects/em_mq/sys/dev/smbus/smbconf.h projects/em_mq/sys/dev/smbus/smbus.c projects/em_mq/sys/dev/smbus/smbus.h projects/em_mq/sys/dev/smbus/smbus_if.m projects/em_mq/sys/dev/sound/pcm/dsp.c projects/em_mq/sys/dev/usb/controller/dwc_otg.c projects/em_mq/sys/dev/usb/wlan/if_urtwn.c projects/em_mq/sys/dev/vt/vt_core.c projects/em_mq/sys/fs/nfs/nfsport.h projects/em_mq/sys/fs/nfsclient/nfs_clvfsops.c projects/em_mq/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/em_mq/sys/geom/uncompress/g_uncompress.c projects/em_mq/sys/geom/uzip/g_uzip.c projects/em_mq/sys/i386/i386/machdep.c projects/em_mq/sys/i386/i386/mp_machdep.c projects/em_mq/sys/i386/include/md_var.h projects/em_mq/sys/i386/include/smp.h projects/em_mq/sys/i386/include/vm.h projects/em_mq/sys/i386/xen/mp_machdep.c projects/em_mq/sys/kern/kern_descrip.c projects/em_mq/sys/kern/kern_exec.c projects/em_mq/sys/kern/kern_gzio.c projects/em_mq/sys/kern/kern_proc.c projects/em_mq/sys/kern/kern_shutdown.c projects/em_mq/sys/kern/kern_thr.c projects/em_mq/sys/kern/link_elf.c projects/em_mq/sys/kern/link_elf_obj.c projects/em_mq/sys/kern/sysv_shm.c projects/em_mq/sys/kern/uipc_shm.c projects/em_mq/sys/kern/vfs_aio.c projects/em_mq/sys/kern/vfs_bio.c projects/em_mq/sys/kern/vfs_vnops.c projects/em_mq/sys/modules/oce/Makefile projects/em_mq/sys/modules/zlib/Makefile projects/em_mq/sys/net/if_vlan.c projects/em_mq/sys/net/netisr.c projects/em_mq/sys/netgraph/ng_deflate.c projects/em_mq/sys/netinet/ip_carp.c projects/em_mq/sys/netinet/ip_fw.h projects/em_mq/sys/netinet/ip_ipsec.c projects/em_mq/sys/netinet/libalias/libalias.3 projects/em_mq/sys/netinet/sctp_indata.c projects/em_mq/sys/netinet/tcp_subr.c projects/em_mq/sys/netinet6/ip6_forward.c projects/em_mq/sys/netinet6/ip6_ipsec.c projects/em_mq/sys/netipsec/ipsec.c projects/em_mq/sys/netipsec/ipsec.h projects/em_mq/sys/netipsec/ipsec_output.c projects/em_mq/sys/netipsec/xform_ah.c projects/em_mq/sys/netipsec/xform_esp.c projects/em_mq/sys/netipsec/xform_ipcomp.c projects/em_mq/sys/netpfil/ipfw/ip_fw2.c projects/em_mq/sys/netpfil/ipfw/ip_fw_nat.c projects/em_mq/sys/netpfil/ipfw/ip_fw_private.h projects/em_mq/sys/netpfil/ipfw/ip_fw_sockopt.c projects/em_mq/sys/netpfil/ipfw/ip_fw_table.c projects/em_mq/sys/netpfil/ipfw/ip_fw_table.h projects/em_mq/sys/opencrypto/cryptodeflate.c projects/em_mq/sys/opencrypto/deflate.h projects/em_mq/sys/sparc64/pci/apb.c projects/em_mq/sys/sys/cdefs.h projects/em_mq/sys/sys/fcntl.h projects/em_mq/sys/sys/mbuf.h projects/em_mq/sys/sys/param.h projects/em_mq/sys/sys/procctl.h projects/em_mq/sys/sys/systm.h projects/em_mq/sys/sys/vnode.h projects/em_mq/sys/ufs/ffs/ffs_alloc.c projects/em_mq/sys/ufs/ffs/ffs_vfsops.c projects/em_mq/sys/ufs/ufs/inode.h projects/em_mq/sys/vm/sg_pager.c projects/em_mq/sys/vm/uma_int.h projects/em_mq/sys/x86/acpica/srat.c projects/em_mq/sys/x86/include/mca.h projects/em_mq/sys/x86/pci/qpi.c projects/em_mq/sys/x86/x86/mca.c projects/em_mq/tests/sys/Makefile projects/em_mq/tests/sys/kern/Makefile projects/em_mq/tools/regression/aio/aiop/Makefile projects/em_mq/tools/regression/aio/aiop/aiop.c projects/em_mq/tools/regression/file/closefrom/closefrom.c projects/em_mq/tools/regression/gaithrstress/gaithrstress.c projects/em_mq/tools/regression/lib/libc/stdio/test-open_memstream.c projects/em_mq/tools/regression/lib/libc/stdio/test-open_wmemstream.c projects/em_mq/tools/regression/netinet/arphold/arphold.c projects/em_mq/tools/regression/p1003_1b/Makefile projects/em_mq/tools/regression/p1003_1b/fifo.c projects/em_mq/tools/regression/p1003_1b/sched.c projects/em_mq/tools/regression/p1003_1b/yield.c projects/em_mq/tools/tools/tscdrift/tscdrift.c projects/em_mq/usr.bin/calendar/calendars/calendar.freebsd projects/em_mq/usr.bin/calendar/calendars/calendar.holiday projects/em_mq/usr.bin/hexdump/display.c projects/em_mq/usr.bin/kdump/kdump.c projects/em_mq/usr.bin/nfsstat/Makefile projects/em_mq/usr.bin/nfsstat/nfsstat.1 projects/em_mq/usr.bin/nfsstat/nfsstat.c projects/em_mq/usr.bin/perror/perror.1 projects/em_mq/usr.bin/perror/perror.c projects/em_mq/usr.bin/procstat/procstat_rusage.c projects/em_mq/usr.bin/protect/protect.1 projects/em_mq/usr.bin/protect/protect.c projects/em_mq/usr.bin/whois/whois.c projects/em_mq/usr.sbin/bhyve/ioapic.c projects/em_mq/usr.sbin/bhyve/ioapic.h projects/em_mq/usr.sbin/bhyve/pci_emul.c projects/em_mq/usr.sbin/bhyve/pci_irq.c projects/em_mq/usr.sbin/bhyve/pci_irq.h projects/em_mq/usr.sbin/bhyve/pm.c projects/em_mq/usr.sbin/bluetooth/Makefile projects/em_mq/usr.sbin/ctld/login.c projects/em_mq/usr.sbin/etcupdate/etcupdate.8 projects/em_mq/usr.sbin/etcupdate/etcupdate.sh projects/em_mq/usr.sbin/etcupdate/tests/always_test.sh projects/em_mq/usr.sbin/etcupdate/tests/conflicts_test.sh projects/em_mq/usr.sbin/etcupdate/tests/fbsdid_test.sh projects/em_mq/usr.sbin/etcupdate/tests/ignore_test.sh projects/em_mq/usr.sbin/etcupdate/tests/preworld_test.sh projects/em_mq/usr.sbin/etcupdate/tests/tests_test.sh projects/em_mq/usr.sbin/etcupdate/tests/tzsetup_test.sh projects/em_mq/usr.sbin/iovctl/iovctl.conf.5 projects/em_mq/usr.sbin/jail/jail.8 projects/em_mq/usr.sbin/ntp/doc/ntptime.8 projects/em_mq/usr.sbin/pciconf/err.c projects/em_mq/usr.sbin/smbmsg/smbmsg.c Directory Properties: projects/em_mq/ (props changed) projects/em_mq/contrib/ldns/ (props changed) projects/em_mq/contrib/tcpdump/ (props changed) projects/em_mq/contrib/unbound/ (props changed) projects/em_mq/etc/ (props changed) projects/em_mq/lib/libc/ (props changed) projects/em_mq/sbin/ (props changed) projects/em_mq/sbin/ipfw/ (props changed) projects/em_mq/share/ (props changed) projects/em_mq/share/doc/usd/10.exref/exref/ex.rm (props changed) projects/em_mq/share/doc/usd/10.exref/summary/ex.summary (props changed) projects/em_mq/share/doc/usd/11.vitut/edittut.ms (props changed) projects/em_mq/share/doc/usd/12.vi/summary/vi.summary (props changed) projects/em_mq/share/doc/usd/12.vi/vi/vi.chars (props changed) projects/em_mq/share/doc/usd/12.vi/vi/vi.in (props changed) projects/em_mq/share/doc/usd/12.vi/viapwh/vi.apwh.ms (props changed) projects/em_mq/share/doc/usd/13.viref/ex.cmd.roff (props changed) projects/em_mq/share/doc/usd/13.viref/ref.so (props changed) projects/em_mq/share/doc/usd/13.viref/set.opt.roff (props changed) projects/em_mq/share/doc/usd/13.viref/vi.cmd.roff (props changed) projects/em_mq/share/doc/usd/13.viref/vi.ref (props changed) projects/em_mq/share/man/man4/ (props changed) projects/em_mq/sys/ (props changed) projects/em_mq/sys/amd64/vmm/ (props changed) projects/em_mq/sys/boot/ (props changed) projects/em_mq/sys/cddl/contrib/opensolaris/ (props changed) projects/em_mq/sys/conf/ (props changed) projects/em_mq/usr.bin/calendar/ (props changed) projects/em_mq/usr.bin/procstat/ (props changed) projects/em_mq/usr.sbin/bhyve/ (props changed) projects/em_mq/usr.sbin/jail/ (props changed) Modified: projects/em_mq/ObsoleteFiles.inc ============================================================================== --- projects/em_mq/ObsoleteFiles.inc Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/ObsoleteFiles.inc Mon Apr 27 17:47:08 2015 (r282103) @@ -56,18 +56,6 @@ OLD_FILES+=usr/include/altq/altq_rmclass OLD_FILES+=usr/include/altq/altq_cbq.h OLD_FILES+=usr/include/altq/altq_rio.h OLD_DIRS+=usr/include/altq -# 20150410 -OLD_FILES+=usr/share/doc/usd/10.exref/paper.ascii.gz -OLD_FILES+=usr/share/doc/usd/10.exref/summary.ascii.gz -OLD_DIRS+=usr/share/doc/usd/10.exref -OLD_FILES+=usr/share/doc/usd/11.edit/paper.ascii.gz -OLD_DIRS+=usr/share/doc/usd/11.edit -OLD_FILES+=usr/share/doc/usd/12.vi/paper.ascii.gz -OLD_FILES+=usr/share/doc/usd/12.vi/summary.ascii.gz -OLD_FILES+=usr/share/doc/usd/12.vi/viapwh.ascii.gz -OLD_DIRS+=usr/share/doc/usd/12.vi -OLD_FILES+=usr/share/doc/usd/13.viref/paper.ascii.gz -OLD_DIRS+=usr/share/doc/usd/13.viref # 20150329 .if ${TARGET_ARCH} == "arm" OLD_FILES+=usr/include/bootconfig.h Modified: projects/em_mq/bin/ed/ed.1 ============================================================================== --- projects/em_mq/bin/ed/ed.1 Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/bin/ed/ed.1 Mon Apr 27 17:47:08 2015 (r282103) @@ -738,7 +738,7 @@ It is an error if no substitutions are p lines. The current address is set the last line affected. .Pp -.Ar Re +.Ar \&Re and .Ar replacement may be delimited by any character other than space and newline Modified: projects/em_mq/bin/expr/expr.1 ============================================================================== --- projects/em_mq/bin/expr/expr.1 Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/bin/expr/expr.1 Mon Apr 27 17:47:08 2015 (r282103) @@ -90,17 +90,17 @@ Return the evaluation of .Ar expr1 if neither expression evaluates to an empty string or zero; otherwise, returns zero. -.It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2 +.It Ar expr1 Bro =, >, >=, <, <=, != Brc Ar expr2 Return the results of integer comparison if both arguments are integers; otherwise, returns the results of string comparison using the locale-specific collation sequence. The result of each comparison is 1 if the specified relation is true, or 0 if the relation is false. -.It Ar expr1 Li "{+, -}" Ar expr2 +.It Ar expr1 Bro +, - Brc Ar expr2 Return the results of addition or subtraction of integer-valued arguments. -.It Ar expr1 Li "{*, /, %}" Ar expr2 +.It Ar expr1 Bro *, /, % Brc Ar expr2 Return the results of multiplication, integer division, or remainder of integer-valued arguments. -.It Ar expr1 Li : Ar expr2 +.It Ar expr1 Li \&: Ar expr2 The .Dq Li \&: operator matches Modified: projects/em_mq/bin/sh/jobs.c ============================================================================== --- projects/em_mq/bin/sh/jobs.c Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/bin/sh/jobs.c Mon Apr 27 17:47:08 2015 (r282103) @@ -1057,7 +1057,7 @@ waitforjob(struct job *jp, int *origstat CLEAR_PENDING_INT; } #if JOBS - else if (rootshell && iflag && propagate_int && + else if (rootshell && propagate_int && WIFSIGNALED(status) && WTERMSIG(status) == SIGINT) kill(getpid(), SIGINT); #endif Modified: projects/em_mq/contrib/ldns/drill/config.h ============================================================================== --- projects/em_mq/contrib/ldns/drill/config.h Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/contrib/ldns/drill/config.h Mon Apr 27 17:47:08 2015 (r282103) @@ -122,7 +122,7 @@ #define PACKAGE_NAME "ldns" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "ldns 1.6.16" +#define PACKAGE_STRING "ldns 1.6.17" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libdns" @@ -131,7 +131,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.6.16" +#define PACKAGE_VERSION "1.6.17" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 Modified: projects/em_mq/contrib/ldns/drill/drill.1 ============================================================================== --- projects/em_mq/contrib/ldns/drill/drill.1 Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/contrib/ldns/drill/drill.1 Mon Apr 27 17:47:08 2015 (r282103) @@ -83,6 +83,11 @@ Chase the signature(s) of 'name' to a kn the tree as possible. .TP +\fB\-I \fIIPv4 or IPv6 address\fR +Source address to query from. The source address has to be present +on an interface of the host running drill. + +.TP \fB\-V \fIlevel\fR Be more verbose. Set level to 5 to see the actual query that is sent. @@ -217,6 +222,12 @@ specify named base64 tsig key, and optio \fB\-z \fR don't randomize the nameserver list before sending queries. +.SH "EXIT STATUS" +The exit status is 0 if the looked up answer is secure and trusted, +or insecure. +The exit status is not 0 if the looked up answer is untrusted or bogus, +or an error occurred while performing the lookup. + .SH "FILES" .TP /etc/unbound/root.key Copied: projects/em_mq/contrib/ldns/freebsd-configure.sh (from r282102, head/contrib/ldns/freebsd-configure.sh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/em_mq/contrib/ldns/freebsd-configure.sh Mon Apr 27 17:47:08 2015 (r282103, copy of r282102, head/contrib/ldns/freebsd-configure.sh) @@ -0,0 +1,19 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +set -e + +ldns=$(dirname $(realpath $0)) +cd $ldns + +libtoolize --copy +autoheader +autoconf +./configure --prefix= --exec-prefix=/usr + +cd $ldns/drill +autoheader +autoconf +./configure --prefix= --exec-prefix=/usr Modified: projects/em_mq/contrib/libxo/Makefile.am ============================================================================== --- projects/em_mq/contrib/libxo/Makefile.am Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/contrib/libxo/Makefile.am Mon Apr 27 17:47:08 2015 (r282103) @@ -10,7 +10,7 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = libxo xo xolint tests doc +SUBDIRS = libxo xo xolint xohtml tests doc bin_SCRIPTS=libxo-config dist_doc_DATA = Copyright Modified: projects/em_mq/contrib/libxo/configure.ac ============================================================================== --- projects/em_mq/contrib/libxo/configure.ac Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/contrib/libxo/configure.ac Mon Apr 27 17:47:08 2015 (r282103) @@ -12,7 +12,7 @@ # AC_PREREQ(2.2) -AC_INIT([libxo], [0.2.0], [phil@juniper.net]) +AC_INIT([libxo], [0.3.2], [phil@juniper.net]) AM_INIT_AUTOMAKE([-Wall -Werror foreign -Wno-portability]) # Support silent build rules. Requires at least automake-1.11. @@ -133,6 +133,14 @@ AC_ARG_ENABLE([debug], AC_MSG_RESULT([$LIBXO_DEBUG]) AM_CONDITIONAL([LIBXO_DEBUG], [test "$LIBXO_DEBUG" != "no"]) +AC_MSG_CHECKING([whether to build with text-only rendering]) +AC_ARG_ENABLE([text-only], + [ --enable-text-only Turn on text-only rendering], + [LIBXO_TEXT_ONLY=yes; AC_DEFINE([LIBXO_TEXT_ONLY], [1], [Enable text-only rendering])], + [LIBXO_TEXT_ONLY=no]) +AC_MSG_RESULT([$LIBXO_TEXT_ONLY]) +AM_CONDITIONAL([LIBXO_TEXT_ONLY], [test "$LIBXO_TEXT_ONLY" != "no"]) + AC_CHECK_LIB([m], [lrint]) AM_CONDITIONAL([HAVE_LIBM], [test "$HAVE_LIBM" != "no"]) @@ -233,6 +241,7 @@ AC_CONFIG_FILES([ libxo/xoversion.h xo/Makefile xolint/Makefile + xohtml/Makefile packaging/libxo.pc doc/Makefile tests/Makefile @@ -253,6 +262,7 @@ AC_MSG_NOTICE([summary of build options: bindir: ${XO_BINDIR} includedir: ${XO_INCLUDEDIR} share dir: ${XO_SHAREDIR} + oxtradoc dir: ${SLAX_OXTRADOCDIR} compiler: ${CC} (${HAVE_GCC:-no}) compiler flags: ${CFLAGS} @@ -262,4 +272,5 @@ AC_MSG_NOTICE([summary of build options: debug: ${LIBXO_DEBUG:-no} printf-like: ${HAVE_PRINTFLIKE:-no} libxo-options: ${LIBXO_OPTS:-no} + text-only: ${LIBXO_TEXT_ONLY:-no} ]) Modified: projects/em_mq/contrib/libxo/doc/libxo.txt ============================================================================== --- projects/em_mq/contrib/libxo/doc/libxo.txt Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/contrib/libxo/doc/libxo.txt Mon Apr 27 17:47:08 2015 (r282103) @@ -134,7 +134,7 @@ A single libxo function call in source c my-box example.com JSON: - "host": my-box", + "host": "my-box", "domain": "example.com" For brevity, the HTML output is emitted. @@ -228,17 +228,17 @@ data, including data type, description,
36
-
./src
+
./src
40
-
./bin
+
./bin
90
-
./
+
./
** Format Strings @format-strings@ @@ -285,6 +285,7 @@ content. The roles are listed below; on |---+--------------+-------------------------------------------------| | M | Name | Description | |---+--------------+-------------------------------------------------| +| C | color/effect | Field has color and effect controls | | D | decoration | Field is non-text (e.g., colon, comma) | | E | error | Field is an error message | | L | label | Field is text that prefixes a value | @@ -298,6 +299,56 @@ content. The roles are listed below; on | ] | stop anchor | End a section of anchored variable-width text | |---+--------------+-------------------------------------------------| +**** The Color Role ({C:}) + +Colors and effects control how text values are displayed; they are +used for display styles (TEXT and HTML). The color content can be +either static, when placed directly within the field descriptor, or a +printf-style format descriptor can be used, if preceded by a slash ("/"): + + xo_emit("{C:bold}{Lwc:Cost}{:cost/%u}{C:reset}\n", cost); + xo_emit("{C:/fg-%s,bg-%s}{Lwc:Cost}{:cost/%u}{C:reset}\n", + fg_color, bg_color, cost); + +The content should be a comma-separated list of zero or more colors or +display effects. Colors and effects remain in effect until +modified by other "C" roles. If the content is empty, the "reset" +action is performed. + +|---------------+-------------------------------------------------| +| Name | Description | +|---------------+-------------------------------------------------| +| bg-XXXXX | Change background color | +| bold | Start bold text effect | +| fg-XXXXX | Change foreground color | +| inverse | Start inverse (aka reverse) text effect | +| no-bold | Stop bold text effect | +| no-inverse | Stop inverse (aka reverse) text effect | +| no-underline | Stop underline text effect | +| normal | Reset effects (only) | +| reset | Reset colors and effects (restore defaults) | +| underline | Start underline text effect | +|---------------+-------------------------------------------------| + +The following color names are supported: + +|---------------| +| Name | +|---------------| +| black | +| blue | +| cyan | +| default | +| green | +| magenta | +| red | +| white | +| yellow | +|---------------| + +Color names are prefixed with either "fg-" or "bg-" to change the +foreground and background colors, respectively. + **** The Decoration Role ({D:}) Decorations are typically punctuation marks such as colons, @@ -1404,9 +1455,21 @@ functions like xo_failure, xo_warn, xo_e initialized by xo_parse_args, but subsequent calls to xo_set_program can override this value. + xo_set_program(argv[0]); + Note that the value is not copied, so the memory passed to xo_set_program (and xo_parse_args) must be maintained by the caller. +*** xo_set_version + +The xo_set_version function records a version number to be emitted as +part of the data for encoding styles (XML and JSON). This version +number is suitable for tracking changes in the content, allowing a +user of the data to discern which version of the data model is in use. + + void xo_set_version (const char *version); + void xo_set_version_h (xo_handle_t *xop, const char *version); + *** Field Information (xo_info_t) @info@ HTML data can include additional information in attributes that @@ -1705,6 +1768,32 @@ The "-V" option does not report errors, all field names, sorted alphabetically. The output can help spot inconsistencies and spelling errors. +* xohtml + +xohtml is a tool for turning the output of libxo-enabled commands into +html files suitable for display in modern HTML web browsers. It can +be used to test and debug HTML output, as well as to make the user +ache to escape the world of 70s terminal devices. + +xohtml is given a command, either on the command line or via the "-c" +option. If not command is given, standard input is used. The +command's output is wrapped in HTML tags, with references to +supporting CSS and Javascript files, and written to standard output or +the file given in the "-f" option. The "-b" option can be used to +provide an alternative base path for the support files. + +|--------------+---------------------------------------------------| +| Option | Meaning | +|--------------+---------------------------------------------------| +| -b | Base path for finding css/javascript files | +| -c | Command to execute | +| -f | Output file name | +|--------------+---------------------------------------------------| + +The "-c" option takes a full command with arguments, including +any libxo options needed to generate html ("--libxo=html"). This +value must be quoted if it consists of multiple tokens. + * FAQs This section contains the set of questions that users typically ask, Modified: projects/em_mq/contrib/libxo/libxo/Makefile.am ============================================================================== --- projects/em_mq/contrib/libxo/libxo/Makefile.am Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/contrib/libxo/libxo/Makefile.am Mon Apr 27 17:47:08 2015 (r282103) @@ -38,12 +38,15 @@ man_MANS = \ xo_no_setlocale.3 \ xo_open_container.3 \ xo_open_list.3 \ + xo_open_marker.3 \ xo_parse_args.3 \ xo_set_allocator.3 \ xo_set_flags.3 \ xo_set_info.3 \ xo_set_options.3 \ xo_set_style.3 \ + xo_set_version.3 \ xo_set_writer.3 -EXTRA_DIST = +EXTRA_DIST = ${man_MANS} + Modified: projects/em_mq/contrib/libxo/libxo/libxo.c ============================================================================== --- projects/em_mq/contrib/libxo/libxo/libxo.c Mon Apr 27 17:39:40 2015 (r282102) +++ projects/em_mq/contrib/libxo/libxo/libxo.c Mon Apr 27 17:47:08 2015 (r282103) @@ -121,6 +121,50 @@ typedef struct xo_stack_s { char *xs_keys; /* XPath predicate for any key fields */ } xo_stack_t; +/* "colors" refers to fancy ansi codes */ +#define XO_COL_DEFAULT 0 +#define XO_COL_BLACK 1 +#define XO_COL_RED 2 +#define XO_COL_GREEN 3 +#define XO_COL_YELLOW 4 +#define XO_COL_BLUE 5 +#define XO_COL_MAGENTA 6 +#define XO_COL_CYAN 7 +#define XO_COL_WHITE 8 + +#define XO_NUM_COLORS 9 + +/* "effects" refers to fancy ansi codes */ +/* + * Yes, there's no blink. We're civilized. We like users. Blink + * isn't something one does to someone you like. Friends don't let + * friends use blink. On friends. You know what I mean. Blink is + * like, well, it's like bursting into show tunes at a funeral. It's + * just not done. Not something anyone wants. And on those rare + * instances where it might actually be appropriate, it's still wrong. + * It's likely done my the wrong person for the wrong reason. Just + * like blink. And if I implemented blink, I'd be like a funeral + * director who adds "Would you like us to burst into show tunes?" on + * the list of questions asking while making funeral arrangements. + * It's formalizing wrongness in the wrong way. And we're just too + * civilized to do that. Hhhmph! + */ +#define XO_EFF_RESET (1<<0) +#define XO_EFF_NORMAL (1<<1) +#define XO_EFF_BOLD (1<<2) +#define XO_EFF_UNDERLINE (1<<3) +#define XO_EFF_INVERSE (1<<4) + +#define XO_EFF_CLEAR_BITS XO_EFF_RESET + +typedef uint8_t xo_effect_t; +typedef uint8_t xo_color_t; +typedef struct xo_colors_s { + xo_effect_t xoc_effects; /* Current effect set */ + xo_color_t xoc_col_fg; /* Foreground color */ + xo_color_t xoc_col_bg; /* Background color */ +} xo_colors_t; + /* * xo_handle_t: this is the principle data structure for libxo. * It's used as a store for state, options, and content. @@ -136,7 +180,6 @@ struct xo_handle_s { xo_formatter_t xo_formatter; /* Custom formating function */ xo_checkpointer_t xo_checkpointer; /* Custom formating support function */ void *xo_opaque; /* Opaque data for write function */ - FILE *xo_fp; /* XXX File pointer */ xo_buffer_t xo_data; /* Output data */ xo_buffer_t xo_fmt; /* Work area for building format strings */ xo_buffer_t xo_attrs; /* Work area for building XML attributes */ @@ -154,6 +197,11 @@ struct xo_handle_s { int xo_anchor_min_width; /* Desired width of anchored text */ unsigned xo_units_offset; /* Start of units insertion point */ unsigned xo_columns; /* Columns emitted during this xo_emit call */ + uint8_t xo_color_map_fg[XO_NUM_COLORS]; /* Foreground color mappings */ + uint8_t xo_color_map_bg[XO_NUM_COLORS]; /* Background color mappings */ + xo_colors_t xo_colors; /* Current color and effect values */ + xo_buffer_t xo_color_buf; /* HTML: buffer of colors and effects */ + char *xo_version; /* Version string */ }; /* Flags for formatting functions */ @@ -161,7 +209,7 @@ typedef unsigned long xo_xff_flags_t; #define XFF_COLON (1<<0) /* Append a ":" */ #define XFF_COMMA (1<<1) /* Append a "," iff there's more output */ #define XFF_WS (1<<2) /* Append a blank */ -#define XFF_ENCODE_ONLY (1<<3) /* Only emit for encoding formats (xml and json) */ +#define XFF_ENCODE_ONLY (1<<3) /* Only emit for encoding formats (xml, json) */ #define XFF_QUOTE (1<<4) /* Force quotes */ #define XFF_NOQUOTE (1<<5) /* Force no quotes */ @@ -277,6 +325,24 @@ static void xo_anchor_clear (xo_handle_t *xop); /* + * xo_style is used to retrieve the current style. When we're built + * for "text only" mode, we use this function to drive the removal + * of most of the code in libxo. We return a constant and the compiler + * happily removes the non-text code that is not longer executed. This + * trims our code nicely without needing to trampel perfectly readable + * code with ifdefs. + */ +static inline unsigned short +xo_style (xo_handle_t *xop UNUSED) +{ +#ifdef LIBXO_TEXT_ONLY + return XO_STYLE_TEXT; +#else /* LIBXO_TEXT_ONLY */ + return xop->xo_style; +#endif /* LIBXO_TEXT_ONLY */ +} + +/* * Callback to write data to a FILE pointer */ static int @@ -321,6 +387,24 @@ xo_buf_init (xo_buffer_t *xbp) } /* + * Reset the buffer to empty + */ +static void +xo_buf_reset (xo_buffer_t *xbp) +{ + xbp->xb_curp = xbp->xb_bufp; +} + +/* + * Reset the buffer to empty + */ +static int +xo_buf_is_empty (xo_buffer_t *xbp) +{ + return (xbp->xb_curp == xbp->xb_bufp); +} + +/* * Initialize the contents of an xo_buffer_t. */ static void @@ -363,8 +447,8 @@ xo_no_setlocale (void) /* * We need to decide if stdout is line buffered (_IOLBF). Lacking a * standard way to decide this (e.g. getlinebuf()), we have configure - * look to find __flbf, which glibc supported. If not, we'll rely - * on isatty, with the assumption that terminals are the only thing + * look to find __flbf, which glibc supported. If not, we'll rely on + * isatty, with the assumption that terminals are the only thing * that's line buffered. We _could_ test for "steam._flags & _IOLBF", * which is all __flbf does, but that's even tackier. Like a * bedazzled Elvis outfit on an ugly lap dog sort of tacky. Not @@ -399,6 +483,13 @@ xo_init_handle (xo_handle_t *xop) xop->xo_flags |= XOF_FLUSH_LINE; /* + * We only want to do color output on terminals, but we only want + * to do this if the user has asked for color. + */ + if ((xop->xo_flags & XOF_COLOR_ALLOWED) && isatty(1)) + xop->xo_flags |= XOF_COLOR; + + /* * We need to initialize the locale, which isn't really pretty. * Libraries should depend on their caller to set up the * environment. But we really can't count on the caller to do @@ -497,7 +588,7 @@ xo_default (xo_handle_t *xop) /* * Return the number of spaces we should be indenting. If - * we are pretty-printing, theis is indent * indent_by. + * we are pretty-printing, this is indent * indent_by. */ static int xo_indent (xo_handle_t *xop) @@ -647,6 +738,21 @@ xo_buf_append (xo_buffer_t *xbp, const c xbp->xb_curp += len; } +/* + * Append the given NUL-terminated string to the given buffer + */ +static void +xo_buf_append_str (xo_buffer_t *xbp, const char *str) +{ + int len = strlen(str); + + if (!xo_buf_has_room(xbp, len)) + return; + + memcpy(xbp->xb_curp, str, len); + xbp->xb_curp += len; +} + static void xo_buf_escape (xo_handle_t *xop, xo_buffer_t *xbp, const char *str, int len, xo_xff_flags_t flags) @@ -656,7 +762,7 @@ xo_buf_escape (xo_handle_t *xop, xo_buff memcpy(xbp->xb_curp, str, len); - switch (xop->xo_style) { + switch (xo_style(xop)) { case XO_STYLE_XML: case XO_STYLE_HTML: len = xo_escape_xml(xbp, len, (flags & XFF_ATTR)); @@ -711,7 +817,7 @@ xo_vsnprintf (xo_handle_t *xop, xo_buffe else rc = vsnprintf(xbp->xb_curp, left, fmt, va_local); - if (rc > xbp->xb_size) { + if (rc >= left) { if (!xo_buf_has_room(xbp, rc)) { va_end(va_local); return -1; @@ -721,7 +827,7 @@ xo_vsnprintf (xo_handle_t *xop, xo_buffe * After we call vsnprintf(), the stage of vap is not defined. * We need to copy it before we pass. Then we have to do our * own logic below to move it along. This is because the - * implementation can have va_list be a point (bsd) or a + * implementation can have va_list be a pointer (bsd) or a * structure (macosx) or anything in between. */ @@ -730,7 +836,7 @@ xo_vsnprintf (xo_handle_t *xop, xo_buffe left = xbp->xb_size - (xbp->xb_curp - xbp->xb_bufp); if (xop->xo_formatter) - xop->xo_formatter(xop, xbp->xb_curp, left, fmt, va_local); + rc = xop->xo_formatter(xop, xbp->xb_curp, left, fmt, va_local); else rc = vsnprintf(xbp->xb_curp, left, fmt, va_local); } @@ -1219,7 +1325,7 @@ xo_message_hcv (xo_handle_t *xop, int co int need_nl = (fmt[strlen(fmt) - 1] != '\n'); - switch (xop->xo_style) { + switch (xo_style(xop)) { case XO_STYLE_XML: xbp = &xop->xo_data; if (xop->xo_flags & XOF_PRETTY) @@ -1431,6 +1537,10 @@ xo_destroy (xo_handle_t *xop_arg) xo_buf_cleanup(&xop->xo_fmt); xo_buf_cleanup(&xop->xo_predicate); xo_buf_cleanup(&xop->xo_attrs); + xo_buf_cleanup(&xop->xo_color_buf); + + if (xop->xo_version) + xo_free(xop->xo_version); if (xop_arg == NULL) { bzero(&xo_default_handle, sizeof(xo_default_handle)); @@ -1457,7 +1567,7 @@ xo_style_t xo_get_style (xo_handle_t *xop) { xop = xo_default(xop); - return xop->xo_style; + return xo_style(xop); } static int @@ -1492,6 +1602,8 @@ xo_name_to_flag (const char *name) return XOF_INFO; if (strcmp(name, "warn-xml") == 0) return XOF_WARN_XML; + if (strcmp(name, "color") == 0) + return XOF_COLOR_ALLOWED; if (strcmp(name, "columns") == 0) return XOF_COLUMNS; if (strcmp(name, "dtrt") == 0) @@ -1547,6 +1659,11 @@ xo_set_options (xo_handle_t *xop, const xop = xo_default(xop); +#ifdef LIBXO_COLOR_ON_BY_DEFAULT + /* If the installer used --enable-color-on-by-default, then we allow it */ + xop->xo_flags |= XOF_COLOR_ALLOWED; +#endif /* LIBXO_COLOR_ON_BY_DEFAULT */ + /* * We support a simpler, old-school style of giving option * also, using a single character for each option. It's @@ -1557,6 +1674,10 @@ xo_set_options (xo_handle_t *xop, const for (input++ ; *input; input++) { switch (*input) { + case 'c': + xop->xo_flags |= XOF_COLOR_ALLOWED; + break; + case 'f': xop->xo_flags |= XOF_FLUSH; break; @@ -1634,6 +1755,11 @@ xo_set_options (xo_handle_t *xop, const if (vp) *vp++ = '\0'; + if (strcmp("colors", cp) == 0) { + /* XXX Look for colors=red-blue+green-yellow */ + continue; + } + new_style = xo_name_to_style(cp); if (new_style >= 0) { if (style >= 0) @@ -1645,7 +1771,9 @@ xo_set_options (xo_handle_t *xop, const if (new_flag != 0) xop->xo_flags |= new_flag; else { - if (strcmp(cp, "indent") == 0) { + if (strcmp(cp, "no-color") == 0) { + xop->xo_flags &= ~XOF_COLOR_ALLOWED; + } else if (strcmp(cp, "indent") == 0) { xop->xo_indent_by = atoi(vp); } else { xo_warnx("unknown option: '%s'", cp); @@ -1801,7 +1929,7 @@ xo_line_ensure_open (xo_handle_t *xop, x if (xop->xo_flags & XOF_DIV_OPEN) return; - if (xop->xo_style != XO_STYLE_HTML) + if (xo_style(xop) != XO_STYLE_HTML) return; xop->xo_flags |= XOF_DIV_OPEN; @@ -1819,7 +1947,7 @@ xo_line_close (xo_handle_t *xop) { static char div_close[] = ""; - switch (xop->xo_style) { + switch (xo_style(xop)) { case XO_STYLE_HTML: if (!(xop->xo_flags & XOF_DIV_OPEN)) xo_line_ensure_open(xop, 0); @@ -1976,7 +2104,7 @@ xo_format_string_direct (xo_handle_t *xo if (width < 0) width = iswcntrl(wc) ? 0 : 1; - if (xop->xo_style == XO_STYLE_TEXT || xop->xo_style == XO_STYLE_HTML) { + if (xo_style(xop) == XO_STYLE_TEXT || xo_style(xop) == XO_STYLE_HTML) { if (max > 0 && cols + width > max) break; } @@ -1985,7 +2113,7 @@ xo_format_string_direct (xo_handle_t *xo case XF_ENC_UTF8: /* Output in UTF-8 needs to be escaped, based on the style */ - switch (xop->xo_style) { + switch (xo_style(xop)) { case XO_STYLE_XML: case XO_STYLE_HTML: if (wc == '<') @@ -2071,7 +2199,7 @@ xo_format_string (xo_handle_t *xop, xo_b wchar_t *wcp = NULL; int len, cols = 0, rc = 0; int off = xbp->xb_curp - xbp->xb_bufp, off2; - int need_enc = (xop->xo_style == XO_STYLE_TEXT) + int need_enc = (xo_style(xop) == XO_STYLE_TEXT) ? XF_ENC_LOCALE : XF_ENC_UTF8; if (xo_check_conversion(xop, xfp->xf_enc, need_enc)) @@ -2185,7 +2313,7 @@ static void xo_data_append_content (xo_handle_t *xop, const char *str, int len) { int cols; - int need_enc = (xop->xo_style == XO_STYLE_TEXT) + int need_enc = (xo_style(xop) == XO_STYLE_TEXT) ? XF_ENC_LOCALE : XF_ENC_UTF8; cols = xo_format_string_direct(xop, &xop->xo_data, XFF_UNESCAPE, @@ -2246,9 +2374,9 @@ xo_format_data (xo_handle_t *xop, xo_buf xo_format_t xf; const char *cp, *ep, *sp, *xp = NULL; int rc, cols; - int style = (flags & XFF_XML) ? XO_STYLE_XML : xop->xo_style; + int style = (flags & XFF_XML) ? XO_STYLE_XML : xo_style(xop); unsigned make_output = !(flags & XFF_NO_OUTPUT); - int need_enc = (xop->xo_style == XO_STYLE_TEXT) + int need_enc = (xo_style(xop) == XO_STYLE_TEXT) ? XF_ENC_LOCALE : XF_ENC_UTF8; if (xbp == NULL) @@ -2310,11 +2438,11 @@ xo_format_data (xo_handle_t *xop, xo_buf /* Hidden fields are only visible to JSON and XML */ if (xop->xo_flags & XFF_ENCODE_ONLY) { if (style != XO_STYLE_XML - && xop->xo_style != XO_STYLE_JSON) + && xo_style(xop) != XO_STYLE_JSON) xf.xf_skip = 1; } else if (xop->xo_flags & XFF_DISPLAY_ONLY) { if (style != XO_STYLE_TEXT - && xop->xo_style != XO_STYLE_HTML) + && xo_style(xop) != XO_STYLE_HTML) xf.xf_skip = 1; } @@ -2420,8 +2548,8 @@ xo_format_data (xo_handle_t *xop, xo_buf rc = xo_format_string(xop, xbp, flags, &xf); if ((flags & XFF_TRIM_WS) - && (xop->xo_style == XO_STYLE_XML - || xop->xo_style == XO_STYLE_JSON)) + && (xo_style(xop) == XO_STYLE_XML + || xo_style(xop) == XO_STYLE_JSON)) rc = xo_trim_ws(xbp, rc); } else { @@ -2567,6 +2695,20 @@ xo_fix_encoding (xo_handle_t *xop UNUSED } static void +xo_color_append_html (xo_handle_t *xop) +{ + /* + * If the color buffer has content, we add it now. It's already + * prebuilt and ready, since we want to add it to every
. + */ + if (!xo_buf_is_empty(&xop->xo_color_buf)) { + xo_buffer_t *xbp = &xop->xo_color_buf; + + xo_data_append(xop, xbp->xb_bufp, xbp->xb_curp - xbp->xb_bufp); + } +} + +static void xo_buf_append_div (xo_handle_t *xop, const char *class, xo_xff_flags_t flags, const char *name, int nlen, const char *value, int vlen, @@ -2663,6 +2805,16 @@ xo_buf_append_div (xo_handle_t *xop, con xo_data_append(xop, div_start, sizeof(div_start) - 1); xo_data_append(xop, class, strlen(class)); + /* + * If the color buffer has content, we add it now. It's already + * prebuilt and ready, since we want to add it to every
. + */ + if (!xo_buf_is_empty(&xop->xo_color_buf)) { + xo_buffer_t *xbp = &xop->xo_color_buf; + + xo_data_append(xop, xbp->xb_bufp, xbp->xb_curp - xbp->xb_bufp); + } + if (name) { xo_data_append(xop, div_tag, sizeof(div_tag) - 1); xo_data_escape(xop, name, nlen); @@ -2753,7 +2905,7 @@ xo_buf_append_div (xo_handle_t *xop, con static void xo_format_text (xo_handle_t *xop, const char *str, int len) { - switch (xop->xo_style) { + switch (xo_style(xop)) { case XO_STYLE_TEXT: xo_buf_append_locale(xop, &xop->xo_data, str, len); break; @@ -2768,7 +2920,8 @@ static void xo_format_title (xo_handle_t *xop, const char *str, int len, const char *fmt, int flen) { - static char div_open[] = "
"; + static char div_open[] = "
"; static char div_close[] = "
"; if (flen == 0) { @@ -2776,7 +2929,7 @@ xo_format_title (xo_handle_t *xop, const flen = 2; } - switch (xop->xo_style) { + switch (xo_style(xop)) { case XO_STYLE_XML: case XO_STYLE_JSON: /* @@ -2794,12 +2947,14 @@ xo_format_title (xo_handle_t *xop, const int rc; int need_enc = XF_ENC_LOCALE; - if (xop->xo_style == XO_STYLE_HTML) { + if (xo_style(xop) == XO_STYLE_HTML) { need_enc = XF_ENC_UTF8; xo_line_ensure_open(xop, 0); if (xop->xo_flags & XOF_PRETTY) xo_buf_indent(xop, xop->xo_indent_by); xo_buf_append(&xop->xo_data, div_open, sizeof(div_open) - 1); + xo_color_append_html(xop); + xo_buf_append(&xop->xo_data, div_middle, sizeof(div_middle) - 1); } start = xbp->xb_curp - xbp->xb_bufp; /* Reset start */ @@ -2862,7 +3017,7 @@ xo_format_title (xo_handle_t *xop, const } /* If we're styling HTML, then we need to escape it */ - if (xop->xo_style == XO_STYLE_HTML) { + if (xo_style(xop) == XO_STYLE_HTML) { rc = xo_escape_xml(xbp, rc, 0); } @@ -2870,7 +3025,7 @@ xo_format_title (xo_handle_t *xop, const xbp->xb_curp += rc; move_along: - if (xop->xo_style == XO_STYLE_HTML) { + if (xo_style(xop) == XO_STYLE_HTML) { xo_data_append(xop, div_close, sizeof(div_close) - 1); if (xop->xo_flags & XOF_PRETTY) xo_data_append(xop, "\n", 1); @@ -2978,7 +3133,7 @@ xo_format_value (xo_handle_t *xop, const } } - switch (xop->xo_style) { + switch (xo_style(xop)) { case XO_STYLE_TEXT: if (flags & XFF_ENCODE_ONLY) flags |= XFF_NO_OUTPUT; @@ -3103,7 +3258,9 @@ xo_format_value (xo_handle_t *xop, const } if (flags & XFF_LEAF_LIST) { - if (first && pretty) + if (!first && pretty) + xo_data_append(xop, "\n", 1); + if (pretty) xo_buf_indent(xop, -1); } else { if (pretty) @@ -3122,10 +3279,10 @@ xo_format_value (xo_handle_t *xop, const xbp->xb_bufp[off] = '_'; } xo_data_append(xop, "\":", 2); + if (pretty) + xo_data_append(xop, " ", 1); } - if (pretty) - xo_data_append(xop, " ", 1); if (quote) xo_data_append(xop, "\"", 1); @@ -3142,7 +3299,7 @@ xo_format_content (xo_handle_t *xop, con const char *xml_tag, int display_only, const char *str, int len, const char *fmt, int flen) { - switch (xop->xo_style) { + switch (xo_style(xop)) { case XO_STYLE_TEXT: if (len) { xo_data_append_content(xop, str, len); @@ -3195,6 +3352,362 @@ xo_format_content (xo_handle_t *xop, con } } +static const char *xo_color_names[] = { + "default", /* XO_COL_DEFAULT */ + "black", /* XO_COL_BLACK */ + "red", /* XO_CLOR_RED */ + "green", /* XO_COL_GREEN */ + "yellow", /* XO_COL_YELLOW */ + "blue", /* XO_COL_BLUE */ + "magenta", /* XO_COL_MAGENTA */ + "cyan", /* XO_COL_CYAN */ + "white", /* XO_COL_WHITE */ + NULL +}; + +static int +xo_color_find (const char *str) +{ + int i; + + for (i = 0; xo_color_names[i]; i++) { + if (strcmp(xo_color_names[i], str) == 0) + return i; + } + + return -1; +} + +static const char *xo_effect_names[] = { + "reset", /* XO_EFF_RESET */ + "normal", /* XO_EFF_NORMAL */ + "bold", /* XO_EFF_BOLD */ + "underline", /* XO_EFF_UNDERLINE */ + "inverse", /* XO_EFF_INVERSE */ + NULL +}; + +static const char *xo_effect_on_codes[] = { + "0", /* XO_EFF_RESET */ + "0", /* XO_EFF_NORMAL */ + "1", /* XO_EFF_BOLD */ + "4", /* XO_EFF_UNDERLINE */ + "7", /* XO_EFF_INVERSE */ + NULL +}; + +#if 0 +/* + * See comment below re: joy of terminal standards. These can + * be use by just adding: + * if (newp->xoc_effects & bit) + * code = xo_effect_on_codes[i]; + * + else + * + code = xo_effect_off_codes[i]; + * in xo_color_handle_text. + */ +static const char *xo_effect_off_codes[] = { + "0", /* XO_EFF_RESET */ + "0", /* XO_EFF_NORMAL */ + "21", /* XO_EFF_BOLD */ + "24", /* XO_EFF_UNDERLINE */ + "27", /* XO_EFF_INVERSE */ + NULL +}; +#endif /* 0 */ + +static int +xo_effect_find (const char *str) +{ + int i; + + for (i = 0; xo_effect_names[i]; i++) { + if (strcmp(xo_effect_names[i], str) == 0) + return i; + } + + return -1; +} + +static void +xo_colors_parse (xo_handle_t *xop, xo_colors_t *xocp, char *str) +{ +#ifdef LIBXO_TEXT_ONLY + return; +#endif /* LIBXO_TEXT_ONLY */ + + char *cp, *ep, *np, *xp; + int len = strlen(str); + int rc; + + /* *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Apr 27 19:52:19 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CAF29995; Mon, 27 Apr 2015 19:52:19 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B7E581459; Mon, 27 Apr 2015 19:52:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3RJqJxG057988; Mon, 27 Apr 2015 19:52:19 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3RJqISc057980; Mon, 27 Apr 2015 19:52:18 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201504271952.t3RJqISc057980@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Mon, 27 Apr 2015 19:52:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282113 - in projects/em_mq: share/man/man4 sys/dev/e1000 sys/dev/netmap X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Apr 2015 19:52:20 -0000 Author: sbruno Date: Mon Apr 27 19:52:18 2015 New Revision: 282113 URL: https://svnweb.freebsd.org/changeset/base/282113 Log: Testing shows that for the 82574, having tx/rx in one msi-x handler is substantially slower than having them be independant. Revert r281965 for now. I will combine them for the case of multiqueue capable nics that do not have 5 MSI-X vectors available. Modified: projects/em_mq/share/man/man4/em.4 projects/em_mq/sys/dev/e1000/if_em.c projects/em_mq/sys/dev/e1000/if_em.h projects/em_mq/sys/dev/netmap/if_em_netmap.h Modified: projects/em_mq/share/man/man4/em.4 ============================================================================== --- projects/em_mq/share/man/man4/em.4 Mon Apr 27 19:49:50 2015 (r282112) +++ projects/em_mq/share/man/man4/em.4 Mon Apr 27 19:52:18 2015 (r282113) @@ -244,6 +244,7 @@ If .Va hw.em.tx_int_delay is non-zero, this tunable limits the maximum delay in which a transmit interrupt is generated. +.It Va hw.em.num_rx_queues .It Va hw.em.num_tx_queues Number of h/w queues that we will run on this adapter. Max 2. Defaults to 1. Only valid with kernel configuration Modified: projects/em_mq/sys/dev/e1000/if_em.c ============================================================================== --- projects/em_mq/sys/dev/e1000/if_em.c Mon Apr 27 19:49:50 2015 (r282112) +++ projects/em_mq/sys/dev/e1000/if_em.c Mon Apr 27 19:52:18 2015 (r282113) @@ -256,7 +256,7 @@ static void em_disable_intr(struct adapt static void em_update_stats_counters(struct adapter *); static void em_add_hw_stats(struct adapter *adapter); static void em_txeof(struct tx_ring *); -static bool em_rxeof(struct em_queue *, int, int *); +static bool em_rxeof(struct rx_ring *, int, int *); #ifndef __NO_STRICT_ALIGNMENT static int em_fixup_rx(struct rx_ring *); #endif @@ -299,11 +299,17 @@ static void em_disable_aspm(struct adapt static int em_irq_fast(void *); /* MSIX handlers */ -static void em_msix_que(void *); +static void em_msix_tx(void *); +static void em_msix_rx(void *); static void em_msix_link(void *); -static void em_handle_que(void *context, int pending); +static void em_handle_tx(void *context, int pending); +static void em_handle_rx(void *context, int pending); static void em_handle_link(void *context, int pending); +#ifdef EM_MULTIQUEUE +static void em_enable_vectors_82574(struct adapter *); +#endif + static void em_set_sysctl_value(struct adapter *, const char *, const char *, int *, int); static int em_set_flowcntl(SYSCTL_HANDLER_ARGS); @@ -394,9 +400,13 @@ SYSCTL_INT(_hw_em, OID_AUTO, enable_msix "Enable MSI-X interrupts"); #ifdef EM_MULTIQUEUE -static int em_num_queues = 1; -SYSCTL_INT(_hw_em, OID_AUTO, num_queues, CTLFLAG_RDTUN, &em_num_queues, 0, - "82574 only: Number of hw queues to configure, 0 indicates autoconfigure"); +static int em_num_tx_queues = 1; +SYSCTL_INT(_hw_em, OID_AUTO, num_tx_queues, CTLFLAG_RDTUN, &em_num_tx_queues, 0, + "82574 only: Number of tx queues to configure, 0 indicates autoconfigure"); + +static int em_num_rx_queues = 1; +SYSCTL_INT(_hw_em, OID_AUTO, num_rx_queues, CTLFLAG_RDTUN, &em_num_rx_queues, 0, + "82574 only: Number of rx queues to configure, 0 indicates autoconfigure"); #endif /* @@ -899,7 +909,7 @@ em_resume(device_t dev) if ((if_getflags(ifp) & IFF_UP) && (if_getdrvflags(ifp) & IFF_DRV_RUNNING) && adapter->link_active) { - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { EM_TX_LOCK(txr); #ifdef EM_MULTIQUEUE if (!drbr_empty(ifp, txr->br)) @@ -995,19 +1005,19 @@ static int em_mq_start(if_t ifp, struct mbuf *m) { struct adapter *adapter = if_getsoftc(ifp); - struct tx_ring *txr; - struct em_queue *que; + struct tx_ring *txr = adapter->tx_rings; unsigned int i, error; if (M_HASHTYPE_GET(m) != M_HASHTYPE_NONE) - i = m->m_pkthdr.flowid % adapter->num_queues; + i = m->m_pkthdr.flowid % adapter->num_tx_queues; else - i = curcpu % adapter->num_queues; + i = curcpu % adapter->num_tx_queues; txr = &adapter->tx_rings[i]; - que = &adapter->queues[i]; + EM_TX_LOCK(txr); error = drbr_enqueue(ifp, txr->br, m); + EM_TX_UNLOCK(txr); if (error) return (error); @@ -1015,7 +1025,7 @@ em_mq_start(if_t ifp, struct mbuf *m) em_mq_start_locked(ifp, txr); EM_TX_UNLOCK(txr); } else - taskqueue_enqueue(que->tq, &que->que_task); + taskqueue_enqueue(txr->tq, &txr->tx_task); return (0); } @@ -1084,7 +1094,7 @@ em_qflush(if_t ifp) struct tx_ring *txr = adapter->tx_rings; struct mbuf *m; - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { EM_TX_LOCK(txr); while ((m = buf_ring_dequeue_sc(txr->br)) != NULL) m_freem(m); @@ -1508,7 +1518,6 @@ static int em_irq_fast(void *arg) { struct adapter *adapter = arg; - struct em_queue *que = adapter->queues; if_t ifp; u32 reg_icr; @@ -1533,7 +1542,7 @@ em_irq_fast(void *arg) return FILTER_STRAY; em_disable_intr(adapter); - taskqueue_enqueue(que->tq, &que->que_task); + taskqueue_enqueue(adapter->tq, &adapter->que_task); /* Link status change */ if (reg_icr & (E1000_ICR_RXSEQ | E1000_ICR_LSC)) { @@ -1550,13 +1559,13 @@ em_irq_fast(void *arg) static void em_handle_que(void *context, int pending) { - struct em_queue *que = context; - struct adapter *adapter = que->adapter; - struct tx_ring *txr = que->txr; + struct adapter *adapter = context; if_t ifp = adapter->ifp; + struct tx_ring *txr = adapter->tx_rings; + struct rx_ring *rxr = adapter->rx_rings; if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { - bool more = em_rxeof(que, adapter->rx_process_limit, NULL); + bool more = em_rxeof(rxr, adapter->rx_process_limit, NULL); EM_TX_LOCK(txr); em_txeof(txr); @@ -1569,7 +1578,7 @@ em_handle_que(void *context, int pending #endif EM_TX_UNLOCK(txr); if (more) { - taskqueue_enqueue(que->tq, &que->que_task); + taskqueue_enqueue(adapter->tq, &adapter->que_task); return; } } @@ -1585,20 +1594,13 @@ em_handle_que(void *context, int pending * **********************************************************************/ static void -em_msix_que(void *arg) +em_msix_tx(void *arg) { - struct em_queue *que = arg; - struct adapter *adapter = que->adapter; - struct tx_ring *txr = que->txr; - bool more; + struct tx_ring *txr = arg; + struct adapter *adapter = txr->adapter; if_t ifp = adapter->ifp; - if (!(if_getdrvflags(adapter->ifp) & IFF_DRV_RUNNING)) - return; - - E1000_WRITE_REG(&adapter->hw, E1000_IMS, que->ims); - ++que->irqs; - + ++txr->tx_irq; EM_TX_LOCK(txr); em_txeof(txr); #ifdef EM_MULTIQUEUE @@ -1608,14 +1610,35 @@ em_msix_que(void *arg) if (!if_sendq_empty(ifp)) em_start_locked(ifp, txr); #endif + + /* Reenable this interrupt */ + E1000_WRITE_REG(&adapter->hw, E1000_IMS, txr->ims); EM_TX_UNLOCK(txr); + return; +} + +/********************************************************************* + * + * MSIX RX Interrupt Service routine + * + **********************************************************************/ - more = em_rxeof(que, adapter->rx_process_limit, NULL); +static void +em_msix_rx(void *arg) +{ + struct rx_ring *rxr = arg; + struct adapter *adapter = rxr->adapter; + bool more; + + ++rxr->rx_irq; + if (!(if_getdrvflags(adapter->ifp) & IFF_DRV_RUNNING)) + return; + more = em_rxeof(rxr, adapter->rx_process_limit, NULL); if (more) - taskqueue_enqueue(que->tq, &que->que_task); + taskqueue_enqueue(rxr->tq, &rxr->rx_task); else { /* Reenable this interrupt */ - E1000_WRITE_REG(&adapter->hw, E1000_IMS, que->ims); + E1000_WRITE_REG(&adapter->hw, E1000_IMS, rxr->ims); } return; } @@ -1644,6 +1667,42 @@ em_msix_link(void *arg) } static void +em_handle_rx(void *context, int pending) +{ + struct rx_ring *rxr = context; + struct adapter *adapter = rxr->adapter; + bool more; + + more = em_rxeof(rxr, adapter->rx_process_limit, NULL); + if (more) + taskqueue_enqueue(rxr->tq, &rxr->rx_task); + else { + /* Reenable this interrupt */ + E1000_WRITE_REG(&adapter->hw, E1000_IMS, rxr->ims); + } +} + +static void +em_handle_tx(void *context, int pending) +{ + struct tx_ring *txr = context; + struct adapter *adapter = txr->adapter; + if_t ifp = adapter->ifp; + + EM_TX_LOCK(txr); + em_txeof(txr); +#ifdef EM_MULTIQUEUE + if (!drbr_empty(ifp, txr->br)) + em_mq_start_locked(ifp, txr); +#else + if (!if_sendq_empty(ifp)) + em_start_locked(ifp, txr); +#endif + E1000_WRITE_REG(&adapter->hw, E1000_IMS, txr->ims); + EM_TX_UNLOCK(txr); +} + +static void em_handle_link(void *context, int pending) { struct adapter *adapter = context; @@ -1660,7 +1719,7 @@ em_handle_link(void *context, int pendin E1000_WRITE_REG(&adapter->hw, E1000_IMS, EM_MSIX_LINK | E1000_IMS_LSC); if (adapter->link_active) { - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { EM_TX_LOCK(txr); #ifdef EM_MULTIQUEUE if (!drbr_empty(ifp, txr->br)) @@ -2208,8 +2267,8 @@ em_local_timer(void *arg) { struct adapter *adapter = arg; if_t ifp = adapter->ifp; - struct em_queue *que = adapter->queues; struct tx_ring *txr = adapter->tx_rings; + struct rx_ring *rxr = adapter->rx_rings; u32 trigger; EM_CORE_LOCK_ASSERT(adapter); @@ -2224,7 +2283,7 @@ em_local_timer(void *arg) /* Mask to use in the irq trigger */ if (adapter->msix_mem) - trigger = adapter->que_mask; + trigger = rxr->ims; else trigger = E1000_ICS_RXDMT0; @@ -2233,7 +2292,7 @@ em_local_timer(void *arg) ** can be done without the lock because its RO ** and the HUNG state will be static if set. */ - for (int i = 0; i < adapter->num_queues; i++, que++, txr++) { + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { if ((txr->queue_status == EM_QUEUE_HUNG) && (adapter->pause_frames == 0)) { em_print_debug_info(adapter); @@ -2241,7 +2300,7 @@ em_local_timer(void *arg) } /* Schedule a TX tasklet if needed */ if (txr->tx_avail <= EM_MAX_SCATTER) - taskqueue_enqueue(que->tq, &que->que_task); + taskqueue_enqueue(txr->tq, &txr->tx_task); } adapter->pause_frames = 0; @@ -2328,7 +2387,7 @@ em_update_link_status(struct adapter *ad device_printf(dev, "Link is Down\n"); adapter->link_active = 0; /* Link down, disable watchdog */ - for (int i = 0; i < adapter->num_queues; i++, txr++) + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) txr->queue_status = EM_QUEUE_IDLE; if_link_state_change(ifp, LINK_STATE_DOWN); } @@ -2361,7 +2420,7 @@ em_stop(void *arg) if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, IFF_DRV_RUNNING); /* Unarm watchdog timer. */ - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { EM_TX_LOCK(txr); txr->queue_status = EM_QUEUE_IDLE; EM_TX_UNLOCK(txr); @@ -2438,7 +2497,7 @@ int em_allocate_legacy(struct adapter *adapter) { device_t dev = adapter->dev; - struct em_queue *que = adapter->queues; + struct tx_ring *txr = adapter->tx_rings; int error, rid = 0; /* Manually turn off all interrupts */ @@ -2459,11 +2518,17 @@ em_allocate_legacy(struct adapter *adapt * Allocate a fast interrupt and the associated * deferred processing contexts. */ - TASK_INIT(&adapter->que_task, 0, em_handle_que, que); + TASK_INIT(&adapter->que_task, 0, em_handle_que, adapter); adapter->tq = taskqueue_create_fast("em_taskq", M_NOWAIT, taskqueue_thread_enqueue, &adapter->tq); taskqueue_start_threads(&adapter->tq, 1, PI_NET, "%s que", device_get_nameunit(adapter->dev)); + /* Use a TX only tasklet for local timer */ + TASK_INIT(&txr->tx_task, 0, em_handle_tx, txr); + txr->tq = taskqueue_create_fast("em_txq", M_NOWAIT, + taskqueue_thread_enqueue, &txr->tq); + taskqueue_start_threads(&txr->tq, 1, PI_NET, "%s txq", + device_get_nameunit(adapter->dev)); TASK_INIT(&adapter->link_task, 0, em_handle_link, adapter); if ((error = bus_setup_intr(dev, adapter->res, INTR_TYPE_NET, em_irq_fast, NULL, adapter, &adapter->tag)) != 0) { @@ -2489,7 +2554,8 @@ int em_allocate_msix(struct adapter *adapter) { device_t dev = adapter->dev; - struct em_queue *que = adapter->queues; + struct tx_ring *txr = adapter->tx_rings; + struct rx_ring *rxr = adapter->rx_rings; int error, rid, vector = 0; int cpu_id = 0; @@ -2498,51 +2564,92 @@ em_allocate_msix(struct adapter *adapter E1000_WRITE_REG(&adapter->hw, E1000_IMC, 0xffffffff); /* First set up ring resources */ - for (int i = 0; i < adapter->num_queues; i++, vector++, que++) { + for (int i = 0; i < adapter->num_rx_queues; i++, rxr++, vector++) { /* RX ring */ rid = vector + 1; - que->res = bus_alloc_resource_any(dev, - SYS_RES_IRQ, &rid, RF_SHAREABLE | RF_ACTIVE); - if (que->res == NULL) { + rxr->res = bus_alloc_resource_any(dev, + SYS_RES_IRQ, &rid, RF_ACTIVE); + if (rxr->res == NULL) { device_printf(dev, "Unable to allocate bus resource: " - "MSIX QUEUE Interrupt %d\n", i); + "RX MSIX Interrupt %d\n", i); return (ENXIO); } - if ((error = bus_setup_intr(dev, que->res, - INTR_TYPE_NET | INTR_MPSAFE, NULL, em_msix_que, - que, &que->tag)) != 0) { - device_printf(dev, "Failed to register QUEUE handler"); + if ((error = bus_setup_intr(dev, rxr->res, + INTR_TYPE_NET | INTR_MPSAFE, NULL, em_msix_rx, + rxr, &rxr->tag)) != 0) { + device_printf(dev, "Failed to register RX handler"); return (error); } #if __FreeBSD_version >= 800504 - bus_describe_intr(dev, que->res, que->tag, "que %d", i); + bus_describe_intr(dev, rxr->res, rxr->tag, "rx %d", i); #endif - que->msix = vector; + rxr->msix = vector; if (em_last_bind_cpu < 0) em_last_bind_cpu = CPU_FIRST(); cpu_id = em_last_bind_cpu; - bus_bind_intr(dev, que->res, cpu_id); + bus_bind_intr(dev, rxr->res, cpu_id); - TASK_INIT(&que->que_task, 0, em_handle_que, que); - que->tq = taskqueue_create_fast("em_queue", M_NOWAIT, - taskqueue_thread_enqueue, &que->tq); - taskqueue_start_threads(&que->tq, 1, PI_NET, "%s que (qid %d)", + TASK_INIT(&rxr->rx_task, 0, em_handle_rx, rxr); + rxr->tq = taskqueue_create_fast("em_rxq", M_NOWAIT, + taskqueue_thread_enqueue, &rxr->tq); + taskqueue_start_threads(&rxr->tq, 1, PI_NET, "%s rxq (qid %d)", device_get_nameunit(adapter->dev), cpu_id); /* ** Set the bit to enable interrupt ** in E1000_IMS -- bits 20 and 21 - ** are for RX0 and RX1, bits 22 and 23 - ** are for TX0 and TX1. note this has + ** are for RX0 and RX1, note this has ** NOTHING to do with the MSIX vector */ - que->ims = (1 << (20 + i)) | (1 << (22 + i)); - adapter->ivars |= (8 | que->msix) << (i * 4); - adapter->ivars |= (8 | que->msix) << (8 + (i * 4)); - adapter->que_mask |= que->ims; + rxr->ims = 1 << (20 + i); + adapter->ivars |= (8 | rxr->msix) << (i * 4); + + em_last_bind_cpu = CPU_NEXT(em_last_bind_cpu); + } + + for (int i = 0; i < adapter->num_tx_queues; i++, txr++, vector++) { + /* TX ring */ + rid = vector + 1; + txr->res = bus_alloc_resource_any(dev, + SYS_RES_IRQ, &rid, RF_ACTIVE); + if (txr->res == NULL) { + device_printf(dev, + "Unable to allocate bus resource: " + "TX MSIX Interrupt %d\n", i); + return (ENXIO); + } + if ((error = bus_setup_intr(dev, txr->res, + INTR_TYPE_NET | INTR_MPSAFE, NULL, em_msix_tx, + txr, &txr->tag)) != 0) { + device_printf(dev, "Failed to register TX handler"); + return (error); + } +#if __FreeBSD_version >= 800504 + bus_describe_intr(dev, txr->res, txr->tag, "tx %d", i); +#endif + txr->msix = vector; + + if (em_last_bind_cpu < 0) + em_last_bind_cpu = CPU_FIRST(); + cpu_id = em_last_bind_cpu; + bus_bind_intr(dev, txr->res, cpu_id); + + TASK_INIT(&txr->tx_task, 0, em_handle_tx, txr); + txr->tq = taskqueue_create_fast("em_txq", M_NOWAIT, + taskqueue_thread_enqueue, &txr->tq); + taskqueue_start_threads(&txr->tq, 1, PI_NET, "%s txq (qid %d)", + device_get_nameunit(adapter->dev), cpu_id); + /* + ** Set the bit to enable interrupt + ** in E1000_IMS -- bits 22 and 23 + ** are for TX0 and TX1, note this has + ** NOTHING to do with the MSIX vector + */ + txr->ims = 1 << (22 + i); + adapter->ivars |= (8 | txr->msix) << (8 + (i * 4)); em_last_bind_cpu = CPU_NEXT(em_last_bind_cpu); } @@ -2579,23 +2686,43 @@ em_allocate_msix(struct adapter *adapter static void em_free_pci_resources(struct adapter *adapter) { - struct em_queue *que = adapter->queues; device_t dev = adapter->dev; + struct tx_ring *txr; + struct rx_ring *rxr; int rid; /* ** Release all the queue interrupt resources: */ - for (int i = 0; i < adapter->num_queues; i++, que++) { - rid = que->msix +1; - if (que->tag != NULL) { - bus_teardown_intr(dev, que->res, que->tag); - que->tag = NULL; + for (int i = 0; i < adapter->num_tx_queues; i++) { + txr = &adapter->tx_rings[i]; + /* an early abort? */ + if (txr == NULL) + break; + rid = txr->msix +1; + if (txr->tag != NULL) { + bus_teardown_intr(dev, txr->res, txr->tag); + txr->tag = NULL; } - if (que->res != NULL) + if (txr->res != NULL) bus_release_resource(dev, SYS_RES_IRQ, - rid, que->res); + rid, txr->res); + } + + for (int i = 0; i < adapter->num_tx_queues; i++) { + rxr = &adapter->rx_rings[i]; + /* an early abort? */ + if (rxr == NULL) + break; + rid = rxr->msix +1; + if (rxr->tag != NULL) { + bus_teardown_intr(dev, rxr->res, rxr->tag); + rxr->tag = NULL; + } + if (rxr->res != NULL) + bus_release_resource(dev, SYS_RES_IRQ, + rid, rxr->res); } if (adapter->linkvec) /* we are doing MSIX */ @@ -2638,14 +2765,19 @@ em_setup_msix(struct adapter *adapter) int val; /* Nearly always going to use one queue */ - adapter->num_queues = 1; + adapter->num_rx_queues = 1; + adapter->num_tx_queues = 1; /* ** Try using MSI-X for Hartwell adapters */ - if (em_enable_msix == TRUE) { + if ((adapter->hw.mac.type == e1000_82574) && + (em_enable_msix == TRUE)) { #ifdef EM_MULTIQUEUE - adapter->num_queues = (em_num_queues == 1) ? 1 : 2; + adapter->num_tx_queues = (em_num_tx_queues == 1) ? 1 : 2; + adapter->num_rx_queues = (em_num_rx_queues == 1) ? 1 : 2; + if (adapter->num_rx_queues > 1 || adapter->num_tx_queues > 1) + em_enable_vectors_82574(adapter); #endif /* Map the MSIX BAR */ int rid = PCIR_BAR(EM_MSIX_BAR); @@ -2661,11 +2793,12 @@ em_setup_msix(struct adapter *adapter) #ifdef EM_MULTIQUEUE /* We need 5 vectors in the multiqueue case */ - if (adapter->num_queues > 1 || adapter->num_queues > 1) { - if (val >= 3) - val = 3; + if (adapter->num_rx_queues > 1 || adapter->num_tx_queues > 1) { + if (val >= 5) + val = 5; else { - adapter->num_queues = 1; + adapter->num_tx_queues = 1; + adapter->num_rx_queues = 1; device_printf(adapter->dev, "Insufficient MSIX vectors for >1 queue, " "using single queue...\n"); @@ -3077,35 +3210,25 @@ static int em_allocate_queues(struct adapter *adapter) { device_t dev = adapter->dev; - struct em_queue *que = NULL; struct tx_ring *txr = NULL; struct rx_ring *rxr = NULL; int rsize, tsize, error = E1000_SUCCESS; int txconf = 0, rxconf = 0; - /* First allocate the top level queue structs */ - if (!(adapter->queues = - (struct em_queue *) malloc(sizeof(struct em_queue) * - adapter->num_queues, M_DEVBUF, M_NOWAIT | M_ZERO))) { - device_printf(dev, "Unable to allocate queue memory\n"); - error = ENOMEM; - goto fail; - } - /* Allocate the TX ring struct memory */ if (!(adapter->tx_rings = (struct tx_ring *) malloc(sizeof(struct tx_ring) * - adapter->num_queues, M_DEVBUF, M_NOWAIT | M_ZERO))) { + adapter->num_tx_queues, M_DEVBUF, M_NOWAIT | M_ZERO))) { device_printf(dev, "Unable to allocate TX ring memory\n"); error = ENOMEM; - goto tx_fail; + goto fail; } /* Now allocate the RX */ if (!(adapter->rx_rings = (struct rx_ring *) malloc(sizeof(struct rx_ring) * - adapter->num_queues, M_DEVBUF, M_NOWAIT | M_ZERO))) { + adapter->num_rx_queues, M_DEVBUF, M_NOWAIT | M_ZERO))) { device_printf(dev, "Unable to allocate RX ring memory\n"); error = ENOMEM; goto rx_fail; @@ -3118,7 +3241,7 @@ em_allocate_queues(struct adapter *adapt * possibility that things fail midcourse and we need to * undo memory gracefully */ - for (int i = 0; i < adapter->num_queues; i++, txconf++) { + for (int i = 0; i < adapter->num_tx_queues; i++, txconf++) { /* Set up some basics */ txr = &adapter->tx_rings[i]; txr->adapter = adapter; @@ -3157,7 +3280,7 @@ em_allocate_queues(struct adapter *adapt */ rsize = roundup2(adapter->num_rx_desc * sizeof(struct e1000_rx_desc), EM_DBA_ALIGN); - for (int i = 0; i < adapter->num_queues; i++, rxconf++) { + for (int i = 0; i < adapter->num_rx_queues; i++, rxconf++) { rxr = &adapter->rx_rings[i]; rxr->adapter = adapter; rxr->me = i; @@ -3186,16 +3309,6 @@ em_allocate_queues(struct adapter *adapt } } - /* - ** Finally set up the queue holding structs - */ - for (int i = 0; i < adapter->num_queues; i++) { - que = &adapter->queues[i]; - que->adapter = adapter; - que->txr = &adapter->tx_rings[i]; - que->rxr = &adapter->rx_rings[i]; - } - return (0); err_rx_desc: @@ -3210,8 +3323,6 @@ rx_fail: buf_ring_free(txr->br, M_DEVBUF); #endif free(adapter->tx_rings, M_DEVBUF); -tx_fail: - free(adapter->queues, M_DEVBUF); fail: return (error); } @@ -3357,7 +3468,7 @@ em_setup_transmit_structures(struct adap { struct tx_ring *txr = adapter->tx_rings; - for (int i = 0; i < adapter->num_queues; i++, txr++) + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) em_setup_transmit_ring(txr); return; @@ -3377,7 +3488,7 @@ em_initialize_transmit_unit(struct adapt INIT_DEBUGOUT("em_initialize_transmit_unit: begin"); - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { u64 bus_addr = txr->txdma.dma_paddr; /* Base and Len of TX Ring */ E1000_WRITE_REG(hw, E1000_TDLEN(i), @@ -3474,7 +3585,7 @@ em_free_transmit_structures(struct adapt { struct tx_ring *txr = adapter->tx_rings; - for (int i = 0; i < adapter->num_queues; i++, txr++) { + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { EM_TX_LOCK(txr); em_free_transmit_buffers(txr); em_dma_free(adapter, &txr->txdma); @@ -4125,7 +4236,7 @@ em_setup_receive_structures(struct adapt struct rx_ring *rxr = adapter->rx_rings; int q; - for (q = 0; q < adapter->num_queues; q++, rxr++) + for (q = 0; q < adapter->num_rx_queues; q++, rxr++) if (em_setup_receive_ring(rxr)) goto fail; @@ -4166,7 +4277,7 @@ em_free_receive_structures(struct adapte { struct rx_ring *rxr = adapter->rx_rings; - for (int i = 0; i < adapter->num_queues; i++, rxr++) { + for (int i = 0; i < adapter->num_rx_queues; i++, rxr++) { em_free_receive_buffers(rxr); /* Free the ring memory as well */ em_dma_free(adapter, &rxr->rxdma); @@ -4286,7 +4397,7 @@ em_initialize_receive_unit(struct adapte E1000_WRITE_REG(hw, E1000_RXCSUM, rxcsum); #ifdef EM_MULTIQUEUE - if (adapter->num_queues > 1) { + if (adapter->num_rx_queues > 1) { uint32_t rss_key[10]; uint32_t reta; int i; @@ -4305,7 +4416,7 @@ em_initialize_receive_unit(struct adapte reta = 0; for (i = 0; i < 4; ++i) { uint32_t q; - q = (i % adapter->num_queues) << 7; + q = (i % adapter->num_rx_queues) << 7; reta |= q << (8 * i); } for (i = 0; i < 32; ++i) @@ -4330,7 +4441,7 @@ em_initialize_receive_unit(struct adapte if (hw->mac.type == e1000_82573) E1000_WRITE_REG(hw, E1000_RDTR, 0x20); - for (int i = 0; i < adapter->num_queues; i++, rxr++) { + for (int i = 0; i < adapter->num_rx_queues; i++, rxr++) { /* Setup the Base and Length of the Rx Descriptor Ring */ u32 rdt = adapter->num_rx_desc - 1; /* default */ @@ -4369,7 +4480,7 @@ em_initialize_receive_unit(struct adapte E1000_WRITE_REG(hw, E1000_RXDCTL(0), rxdctl | 3); } else if ((adapter->hw.mac.type == e1000_82574) && (if_getmtu(ifp) > ETHERMTU)) { - for (int i = 0; i < adapter->num_queues; i++) { + for (int i = 0; i < adapter->num_rx_queues; i++) { u32 rxdctl = E1000_READ_REG(hw, E1000_RXDCTL(i)); rxdctl |= 0x20; /* PTHRESH */ @@ -4431,10 +4542,9 @@ em_initialize_receive_unit(struct adapte * For polling we also now return the number of cleaned packets *********************************************************************/ static bool -em_rxeof(struct em_queue *que, int count, int *done) +em_rxeof(struct rx_ring *rxr, int count, int *done) { - struct adapter *adapter = que->adapter; - struct rx_ring *rxr = que->rxr; + struct adapter *adapter = rxr->adapter; if_t ifp = adapter->ifp; struct mbuf *mp, *sendmp; u8 status = 0; @@ -5307,7 +5417,6 @@ em_add_hw_stats(struct adapter *adapter) struct tx_ring *txr = adapter->tx_rings; struct rx_ring *rxr = adapter->rx_rings; - struct em_queue *que = adapter->queues; struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(dev); struct sysctl_oid *tree = device_get_sysctl_tree(dev); @@ -5358,7 +5467,7 @@ em_add_hw_stats(struct adapter *adapter) CTLFLAG_RD, &adapter->hw.fc.low_water, 0, "Flow Control Low Watermark"); - for (int i = 0; i < adapter->num_queues; i++, txr++, rxr++, que++) { + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { snprintf(namebuf, QUEUE_NAME_LEN, "queue_tx_%d", i); queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf, CTLFLAG_RD, NULL, "TX Queue Name"); @@ -5374,13 +5483,14 @@ em_add_hw_stats(struct adapter *adapter) E1000_TDT(txr->me), em_sysctl_reg_handler, "IU", "Transmit Descriptor Tail"); - SYSCTL_ADD_ULONG(ctx, queue_list, OID_AUTO, "queue_irq", - CTLFLAG_RD, &que->irqs, + SYSCTL_ADD_ULONG(ctx, queue_list, OID_AUTO, "tx_irq", + CTLFLAG_RD, &txr->tx_irq, "Queue MSI-X Transmit Interrupts"); SYSCTL_ADD_ULONG(ctx, queue_list, OID_AUTO, "no_desc_avail", CTLFLAG_RD, &txr->no_desc_avail, "Queue No Descriptor Available"); - + } + for (int i = 0; i < adapter->num_rx_queues; i++, rxr++) { snprintf(namebuf, QUEUE_NAME_LEN, "queue_rx_%d", i); queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf, CTLFLAG_RD, NULL, "RX Queue Name"); @@ -5396,6 +5506,9 @@ em_add_hw_stats(struct adapter *adapter) E1000_RDT(rxr->me), em_sysctl_reg_handler, "IU", "Receive Descriptor Tail"); + SYSCTL_ADD_ULONG(ctx, queue_list, OID_AUTO, "rx_irq", + CTLFLAG_RD, &rxr->rx_irq, + "Queue MSI-X Receive Interrupts"); } /* MAC stats get their own sub node */ @@ -5816,7 +5929,7 @@ em_print_debug_info(struct adapter *adap else printf("and ACTIVE\n"); - for (int i = 0; i < adapter->num_queues; i++, rxr++, txr++) { + for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { device_printf(dev, "TX Queue %d ------\n", i); device_printf(dev, "hw tdh = %d, hw tdt = %d\n", E1000_READ_REG(&adapter->hw, E1000_TDH(i)), @@ -5826,6 +5939,8 @@ em_print_debug_info(struct adapter *adap txr->tx_avail); device_printf(dev, "Tx Descriptors avail failure = %ld\n", txr->no_desc_avail); + } + for (int i = 0; i < adapter->num_rx_queues; i++, rxr++) { device_printf(dev, "RX Queue %d ------\n", i); device_printf(dev, "hw rdh = %d, hw rdt = %d\n", E1000_READ_REG(&adapter->hw, E1000_RDH(i)), @@ -5837,6 +5952,33 @@ em_print_debug_info(struct adapter *adap } } +#ifdef EM_MULTIQUEUE +/* + * 82574 only: + * Write a new value to the EEPROM increasing the number of MSIX + * vectors from 3 to 5, for proper multiqueue support. + */ +static void +em_enable_vectors_82574(struct adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + device_t dev = adapter->dev; + u16 edata; + + e1000_read_nvm(hw, EM_NVM_PCIE_CTRL, 1, &edata); + printf("Current cap: %#06x\n", edata); + if (((edata & EM_NVM_MSIX_N_MASK) >> EM_NVM_MSIX_N_SHIFT) != 4) { + device_printf(dev, "Writing to eeprom: increasing " + "reported MSIX vectors from 3 to 5...\n"); + edata &= ~(EM_NVM_MSIX_N_MASK); + edata |= 4 << EM_NVM_MSIX_N_SHIFT; + e1000_write_nvm(hw, EM_NVM_PCIE_CTRL, 1, &edata); + e1000_update_nvm_checksum(hw); + device_printf(dev, "Writing to eeprom: done\n"); + } +} +#endif + #ifdef DDB DB_COMMAND(em_dump_queue, em_ddb_dump_queue) { Modified: projects/em_mq/sys/dev/e1000/if_em.h ============================================================================== --- projects/em_mq/sys/dev/e1000/if_em.h Mon Apr 27 19:49:50 2015 (r282112) +++ projects/em_mq/sys/dev/e1000/if_em.h Mon Apr 27 19:52:18 2015 (r282113) @@ -265,6 +265,14 @@ * solve it just using this define. */ #define EM_EIAC 0x000DC +/* + * 82574 only reports 3 MSI-X vectors by default; + * defines assisting with making it report 5 are + * located here. + */ +#define EM_NVM_PCIE_CTRL 0x1B +#define EM_NVM_MSIX_N_MASK (0x7 << EM_NVM_MSIX_N_SHIFT) +#define EM_NVM_MSIX_N_SHIFT 7 /* * Bus dma allocation structure used by @@ -288,24 +296,6 @@ struct em_int_delay_info { }; /* -** Driver queue struct: this is the interrupt container -** for the associated tx and rx ring. -*/ -struct em_queue { - struct adapter *adapter; - u32 msix; /* This queue's MSIX vector */ - u32 ims; /* This queue's EIMS bit */ - u32 eitr_setting; - struct resource *res; - void *tag; - struct tx_ring *txr; - struct rx_ring *rxr; - struct task que_task; - struct taskqueue *tq; - u64 irqs; -}; - -/* * The transmit ring, one per tx queue */ struct tx_ring { @@ -313,10 +303,14 @@ struct tx_ring { struct mtx tx_mtx; char mtx_name[16]; u32 me; + u32 msix; + u32 ims; int queue_status; int watchdog_time; struct em_dma_alloc txdma; struct e1000_tx_desc *tx_base; + struct task tx_task; + struct taskqueue *tq; u32 next_avail_desc; u32 next_to_clean; struct em_buffer *tx_buffers; @@ -332,6 +326,9 @@ struct tx_ring { #endif /* Interrupt resources */ bus_dma_tag_t txtag; + void *tag; + struct resource *res; + unsigned long tx_irq; unsigned long no_desc_avail; }; @@ -341,9 +338,13 @@ struct tx_ring { struct rx_ring { struct adapter *adapter; u32 me; + u32 msix; + u32 ims; struct mtx rx_mtx; char mtx_name[16]; u32 payload; + struct task rx_task; + struct taskqueue *tq; struct e1000_rx_desc *rx_base; struct em_dma_alloc rxdma; u32 next_to_refresh; @@ -353,10 +354,13 @@ struct rx_ring { struct mbuf *lmp; /* Interrupt resources */ + void *tag; + struct resource *res; bus_dma_tag_t rxtag; bool discard; /* Soft stats */ + unsigned long rx_irq; unsigned long rx_discarded; unsigned long rx_packets; unsigned long rx_bytes; @@ -403,10 +407,10 @@ struct adapter { eventhandler_tag vlan_detach; u16 num_vlans; - u8 num_queues; + /* Allow number of tx queues != num of rx_queues */ + u8 num_tx_queues; + u8 num_rx_queues; - /* Interface queues */ - struct em_queue *queues; /* * Transmit rings: * Allocated at run time, an array of rings. @@ -424,8 +428,6 @@ struct adapter { u32 rx_process_limit; u32 rx_mbuf_sz; - u64 que_mask; - /* Management and WOL features */ u32 wol; bool has_manage; Modified: projects/em_mq/sys/dev/netmap/if_em_netmap.h ============================================================================== --- projects/em_mq/sys/dev/netmap/if_em_netmap.h Mon Apr 27 19:49:50 2015 (r282112) +++ projects/em_mq/sys/dev/netmap/if_em_netmap.h Mon Apr 27 19:52:18 2015 (r282113) @@ -45,11 +45,16 @@ em_netmap_block_tasks(struct adapter *ad { if (adapter->msix > 1) { /* MSIX */ int i; - struct em_queue *que = adapter->queues; + struct tx_ring *txr = adapter->tx_rings; + struct rx_ring *rxr = adapter->rx_rings; - for (i = 0; i < adapter->num_queues; i++, que++) { - taskqueue_block(que->tq); - taskqueue_drain(que->tq, &que->que_task); + for (i = 0; i < adapter->num_tx_queues; i++, txr++) { + taskqueue_block(txr->tq); + taskqueue_drain(txr->tq, &txr->tx_task); + } + for (i = 0; i < adapter->num_rx_queues; i++, rxr++) { + taskqueue_block(rxr->tq); + taskqueue_drain(rxr->tq, &rxr->rx_task); } } else { /* legacy */ taskqueue_block(adapter->tq); @@ -63,11 +68,15 @@ static void em_netmap_unblock_tasks(struct adapter *adapter) { if (adapter->msix > 1) { - struct em_queue *que = adapter->queues; + struct tx_ring *txr = adapter->tx_rings; + struct rx_ring *rxr = adapter->rx_rings; int i; - for (i = 0; i < adapter->num_queues; i++) { - taskqueue_unblock(que->tq); + for (i = 0; i < adapter->num_tx_queues; i++) { + taskqueue_unblock(txr->tq); + } + for (i = 0; i < adapter->num_rx_queues; i++) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Apr 28 15:00:47 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EBA1A572; Tue, 28 Apr 2015 15:00:46 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D860B18CD; Tue, 28 Apr 2015 15:00:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3SF0kSu028462; Tue, 28 Apr 2015 15:00:46 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3SF0jGp028459; Tue, 28 Apr 2015 15:00:45 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201504281500.t3SF0jGp028459@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Tue, 28 Apr 2015 15:00:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282147 - in projects/em_mq: share/man/man4 sys/dev/e1000 sys/dev/netmap X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Apr 2015 15:00:47 -0000 Author: sbruno Date: Tue Apr 28 15:00:45 2015 New Revision: 282147 URL: https://svnweb.freebsd.org/changeset/base/282147 Log: No need to break up the rx/tx num queue configuration anymore. Modified: projects/em_mq/share/man/man4/em.4 projects/em_mq/sys/dev/e1000/if_em.c projects/em_mq/sys/dev/e1000/if_em.h projects/em_mq/sys/dev/netmap/if_em_netmap.h Modified: projects/em_mq/share/man/man4/em.4 ============================================================================== --- projects/em_mq/share/man/man4/em.4 Tue Apr 28 14:14:06 2015 (r282146) +++ projects/em_mq/share/man/man4/em.4 Tue Apr 28 15:00:45 2015 (r282147) @@ -244,8 +244,7 @@ If .Va hw.em.tx_int_delay is non-zero, this tunable limits the maximum delay in which a transmit interrupt is generated. -.It Va hw.em.num_rx_queues -.It Va hw.em.num_tx_queues +.It Va hw.em.num_queues Number of h/w queues that we will run on this adapter. Max 2. Defaults to 1. Only valid with kernel configuration .Cd "options EM_MULTIQUEUE". Modified: projects/em_mq/sys/dev/e1000/if_em.c ============================================================================== --- projects/em_mq/sys/dev/e1000/if_em.c Tue Apr 28 14:14:06 2015 (r282146) +++ projects/em_mq/sys/dev/e1000/if_em.c Tue Apr 28 15:00:45 2015 (r282147) @@ -400,13 +400,9 @@ SYSCTL_INT(_hw_em, OID_AUTO, enable_msix "Enable MSI-X interrupts"); #ifdef EM_MULTIQUEUE -static int em_num_tx_queues = 1; -SYSCTL_INT(_hw_em, OID_AUTO, num_tx_queues, CTLFLAG_RDTUN, &em_num_tx_queues, 0, - "82574 only: Number of tx queues to configure, 0 indicates autoconfigure"); - -static int em_num_rx_queues = 1; -SYSCTL_INT(_hw_em, OID_AUTO, num_rx_queues, CTLFLAG_RDTUN, &em_num_rx_queues, 0, - "82574 only: Number of rx queues to configure, 0 indicates autoconfigure"); +static int em_num_queues = 1; +SYSCTL_INT(_hw_em, OID_AUTO, num_queues, CTLFLAG_RDTUN, &em_num_queues, 0, + "82574 only: Number of queues to configure, 0 indicates autoconfigure"); #endif /* @@ -909,7 +905,7 @@ em_resume(device_t dev) if ((if_getflags(ifp) & IFF_UP) && (if_getdrvflags(ifp) & IFF_DRV_RUNNING) && adapter->link_active) { - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { EM_TX_LOCK(txr); #ifdef EM_MULTIQUEUE if (!drbr_empty(ifp, txr->br)) @@ -1009,9 +1005,9 @@ em_mq_start(if_t ifp, struct mbuf *m) unsigned int i, error; if (M_HASHTYPE_GET(m) != M_HASHTYPE_NONE) - i = m->m_pkthdr.flowid % adapter->num_tx_queues; + i = m->m_pkthdr.flowid % adapter->num_queues; else - i = curcpu % adapter->num_tx_queues; + i = curcpu % adapter->num_queues; txr = &adapter->tx_rings[i]; @@ -1094,7 +1090,7 @@ em_qflush(if_t ifp) struct tx_ring *txr = adapter->tx_rings; struct mbuf *m; - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { EM_TX_LOCK(txr); while ((m = buf_ring_dequeue_sc(txr->br)) != NULL) m_freem(m); @@ -1719,7 +1715,7 @@ em_handle_link(void *context, int pendin E1000_WRITE_REG(&adapter->hw, E1000_IMS, EM_MSIX_LINK | E1000_IMS_LSC); if (adapter->link_active) { - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { EM_TX_LOCK(txr); #ifdef EM_MULTIQUEUE if (!drbr_empty(ifp, txr->br)) @@ -2292,7 +2288,7 @@ em_local_timer(void *arg) ** can be done without the lock because its RO ** and the HUNG state will be static if set. */ - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { if ((txr->queue_status == EM_QUEUE_HUNG) && (adapter->pause_frames == 0)) { em_print_debug_info(adapter); @@ -2387,7 +2383,7 @@ em_update_link_status(struct adapter *ad device_printf(dev, "Link is Down\n"); adapter->link_active = 0; /* Link down, disable watchdog */ - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) + for (int i = 0; i < adapter->num_queues; i++, txr++) txr->queue_status = EM_QUEUE_IDLE; if_link_state_change(ifp, LINK_STATE_DOWN); } @@ -2420,7 +2416,7 @@ em_stop(void *arg) if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, IFF_DRV_RUNNING); /* Unarm watchdog timer. */ - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { EM_TX_LOCK(txr); txr->queue_status = EM_QUEUE_IDLE; EM_TX_UNLOCK(txr); @@ -2564,7 +2560,7 @@ em_allocate_msix(struct adapter *adapter E1000_WRITE_REG(&adapter->hw, E1000_IMC, 0xffffffff); /* First set up ring resources */ - for (int i = 0; i < adapter->num_rx_queues; i++, rxr++, vector++) { + for (int i = 0; i < adapter->num_queues; i++, rxr++, vector++) { /* RX ring */ rid = vector + 1; @@ -2610,7 +2606,7 @@ em_allocate_msix(struct adapter *adapter em_last_bind_cpu = CPU_NEXT(em_last_bind_cpu); } - for (int i = 0; i < adapter->num_tx_queues; i++, txr++, vector++) { + for (int i = 0; i < adapter->num_queues; i++, txr++, vector++) { /* TX ring */ rid = vector + 1; txr->res = bus_alloc_resource_any(dev, @@ -2695,7 +2691,7 @@ em_free_pci_resources(struct adapter *ad /* ** Release all the queue interrupt resources: */ - for (int i = 0; i < adapter->num_tx_queues; i++) { + for (int i = 0; i < adapter->num_queues; i++) { txr = &adapter->tx_rings[i]; /* an early abort? */ if (txr == NULL) @@ -2708,9 +2704,7 @@ em_free_pci_resources(struct adapter *ad if (txr->res != NULL) bus_release_resource(dev, SYS_RES_IRQ, rid, txr->res); - } - for (int i = 0; i < adapter->num_tx_queues; i++) { rxr = &adapter->rx_rings[i]; /* an early abort? */ if (rxr == NULL) @@ -2765,8 +2759,7 @@ em_setup_msix(struct adapter *adapter) int val; /* Nearly always going to use one queue */ - adapter->num_rx_queues = 1; - adapter->num_tx_queues = 1; + adapter->num_queues = 1; /* ** Try using MSI-X for Hartwell adapters @@ -2774,9 +2767,8 @@ em_setup_msix(struct adapter *adapter) if ((adapter->hw.mac.type == e1000_82574) && (em_enable_msix == TRUE)) { #ifdef EM_MULTIQUEUE - adapter->num_tx_queues = (em_num_tx_queues == 1) ? 1 : 2; - adapter->num_rx_queues = (em_num_rx_queues == 1) ? 1 : 2; - if (adapter->num_rx_queues > 1 || adapter->num_tx_queues > 1) + adapter->num_queues = (em_num_queues == 1) ? 1 : 2; + if (adapter->num_queues > 1) em_enable_vectors_82574(adapter); #endif /* Map the MSIX BAR */ @@ -2793,12 +2785,12 @@ em_setup_msix(struct adapter *adapter) #ifdef EM_MULTIQUEUE /* We need 5 vectors in the multiqueue case */ - if (adapter->num_rx_queues > 1 || adapter->num_tx_queues > 1) { + if (adapter->num_queues > 1 ) { if (val >= 5) val = 5; else { - adapter->num_tx_queues = 1; - adapter->num_rx_queues = 1; + adapter->num_queues = 1; + adapter->num_queues = 1; device_printf(adapter->dev, "Insufficient MSIX vectors for >1 queue, " "using single queue...\n"); @@ -3219,7 +3211,7 @@ em_allocate_queues(struct adapter *adapt /* Allocate the TX ring struct memory */ if (!(adapter->tx_rings = (struct tx_ring *) malloc(sizeof(struct tx_ring) * - adapter->num_tx_queues, M_DEVBUF, M_NOWAIT | M_ZERO))) { + adapter->num_queues, M_DEVBUF, M_NOWAIT | M_ZERO))) { device_printf(dev, "Unable to allocate TX ring memory\n"); error = ENOMEM; goto fail; @@ -3228,7 +3220,7 @@ em_allocate_queues(struct adapter *adapt /* Now allocate the RX */ if (!(adapter->rx_rings = (struct rx_ring *) malloc(sizeof(struct rx_ring) * - adapter->num_rx_queues, M_DEVBUF, M_NOWAIT | M_ZERO))) { + adapter->num_queues, M_DEVBUF, M_NOWAIT | M_ZERO))) { device_printf(dev, "Unable to allocate RX ring memory\n"); error = ENOMEM; goto rx_fail; @@ -3241,7 +3233,7 @@ em_allocate_queues(struct adapter *adapt * possibility that things fail midcourse and we need to * undo memory gracefully */ - for (int i = 0; i < adapter->num_tx_queues; i++, txconf++) { + for (int i = 0; i < adapter->num_queues; i++, txconf++) { /* Set up some basics */ txr = &adapter->tx_rings[i]; txr->adapter = adapter; @@ -3280,7 +3272,7 @@ em_allocate_queues(struct adapter *adapt */ rsize = roundup2(adapter->num_rx_desc * sizeof(struct e1000_rx_desc), EM_DBA_ALIGN); - for (int i = 0; i < adapter->num_rx_queues; i++, rxconf++) { + for (int i = 0; i < adapter->num_queues; i++, rxconf++) { rxr = &adapter->rx_rings[i]; rxr->adapter = adapter; rxr->me = i; @@ -3468,7 +3460,7 @@ em_setup_transmit_structures(struct adap { struct tx_ring *txr = adapter->tx_rings; - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) + for (int i = 0; i < adapter->num_queues; i++, txr++) em_setup_transmit_ring(txr); return; @@ -3488,7 +3480,7 @@ em_initialize_transmit_unit(struct adapt INIT_DEBUGOUT("em_initialize_transmit_unit: begin"); - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { u64 bus_addr = txr->txdma.dma_paddr; /* Base and Len of TX Ring */ E1000_WRITE_REG(hw, E1000_TDLEN(i), @@ -3585,7 +3577,7 @@ em_free_transmit_structures(struct adapt { struct tx_ring *txr = adapter->tx_rings; - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { EM_TX_LOCK(txr); em_free_transmit_buffers(txr); em_dma_free(adapter, &txr->txdma); @@ -4236,7 +4228,7 @@ em_setup_receive_structures(struct adapt struct rx_ring *rxr = adapter->rx_rings; int q; - for (q = 0; q < adapter->num_rx_queues; q++, rxr++) + for (q = 0; q < adapter->num_queues; q++, rxr++) if (em_setup_receive_ring(rxr)) goto fail; @@ -4277,7 +4269,7 @@ em_free_receive_structures(struct adapte { struct rx_ring *rxr = adapter->rx_rings; - for (int i = 0; i < adapter->num_rx_queues; i++, rxr++) { + for (int i = 0; i < adapter->num_queues; i++, rxr++) { em_free_receive_buffers(rxr); /* Free the ring memory as well */ em_dma_free(adapter, &rxr->rxdma); @@ -4397,7 +4389,7 @@ em_initialize_receive_unit(struct adapte E1000_WRITE_REG(hw, E1000_RXCSUM, rxcsum); #ifdef EM_MULTIQUEUE - if (adapter->num_rx_queues > 1) { + if (adapter->num_queues > 1) { uint32_t rss_key[10]; uint32_t reta; int i; @@ -4416,7 +4408,7 @@ em_initialize_receive_unit(struct adapte reta = 0; for (i = 0; i < 4; ++i) { uint32_t q; - q = (i % adapter->num_rx_queues) << 7; + q = (i % adapter->num_queues) << 7; reta |= q << (8 * i); } for (i = 0; i < 32; ++i) @@ -4441,7 +4433,7 @@ em_initialize_receive_unit(struct adapte if (hw->mac.type == e1000_82573) E1000_WRITE_REG(hw, E1000_RDTR, 0x20); - for (int i = 0; i < adapter->num_rx_queues; i++, rxr++) { + for (int i = 0; i < adapter->num_queues; i++, rxr++) { /* Setup the Base and Length of the Rx Descriptor Ring */ u32 rdt = adapter->num_rx_desc - 1; /* default */ @@ -4480,7 +4472,7 @@ em_initialize_receive_unit(struct adapte E1000_WRITE_REG(hw, E1000_RXDCTL(0), rxdctl | 3); } else if ((adapter->hw.mac.type == e1000_82574) && (if_getmtu(ifp) > ETHERMTU)) { - for (int i = 0; i < adapter->num_rx_queues; i++) { + for (int i = 0; i < adapter->num_queues; i++) { u32 rxdctl = E1000_READ_REG(hw, E1000_RXDCTL(i)); rxdctl |= 0x20; /* PTHRESH */ @@ -5467,7 +5459,7 @@ em_add_hw_stats(struct adapter *adapter) CTLFLAG_RD, &adapter->hw.fc.low_water, 0, "Flow Control Low Watermark"); - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { snprintf(namebuf, QUEUE_NAME_LEN, "queue_tx_%d", i); queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf, CTLFLAG_RD, NULL, "TX Queue Name"); @@ -5490,7 +5482,7 @@ em_add_hw_stats(struct adapter *adapter) CTLFLAG_RD, &txr->no_desc_avail, "Queue No Descriptor Available"); } - for (int i = 0; i < adapter->num_rx_queues; i++, rxr++) { + for (int i = 0; i < adapter->num_queues; i++, rxr++) { snprintf(namebuf, QUEUE_NAME_LEN, "queue_rx_%d", i); queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf, CTLFLAG_RD, NULL, "RX Queue Name"); @@ -5929,7 +5921,7 @@ em_print_debug_info(struct adapter *adap else printf("and ACTIVE\n"); - for (int i = 0; i < adapter->num_tx_queues; i++, txr++) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { device_printf(dev, "TX Queue %d ------\n", i); device_printf(dev, "hw tdh = %d, hw tdt = %d\n", E1000_READ_REG(&adapter->hw, E1000_TDH(i)), @@ -5940,7 +5932,7 @@ em_print_debug_info(struct adapter *adap device_printf(dev, "Tx Descriptors avail failure = %ld\n", txr->no_desc_avail); } - for (int i = 0; i < adapter->num_rx_queues; i++, rxr++) { + for (int i = 0; i < adapter->num_queues; i++, rxr++) { device_printf(dev, "RX Queue %d ------\n", i); device_printf(dev, "hw rdh = %d, hw rdt = %d\n", E1000_READ_REG(&adapter->hw, E1000_RDH(i)), Modified: projects/em_mq/sys/dev/e1000/if_em.h ============================================================================== --- projects/em_mq/sys/dev/e1000/if_em.h Tue Apr 28 14:14:06 2015 (r282146) +++ projects/em_mq/sys/dev/e1000/if_em.h Tue Apr 28 15:00:45 2015 (r282147) @@ -408,8 +408,7 @@ struct adapter { u16 num_vlans; /* Allow number of tx queues != num of rx_queues */ - u8 num_tx_queues; - u8 num_rx_queues; + u8 num_queues; /* * Transmit rings: Modified: projects/em_mq/sys/dev/netmap/if_em_netmap.h ============================================================================== --- projects/em_mq/sys/dev/netmap/if_em_netmap.h Tue Apr 28 14:14:06 2015 (r282146) +++ projects/em_mq/sys/dev/netmap/if_em_netmap.h Tue Apr 28 15:00:45 2015 (r282147) @@ -48,11 +48,9 @@ em_netmap_block_tasks(struct adapter *ad struct tx_ring *txr = adapter->tx_rings; struct rx_ring *rxr = adapter->rx_rings; - for (i = 0; i < adapter->num_tx_queues; i++, txr++) { + for (i = 0; i < adapter->num_queues; i++, txr++, rxr++) { taskqueue_block(txr->tq); taskqueue_drain(txr->tq, &txr->tx_task); - } - for (i = 0; i < adapter->num_rx_queues; i++, rxr++) { taskqueue_block(rxr->tq); taskqueue_drain(rxr->tq, &rxr->rx_task); } @@ -72,10 +70,8 @@ em_netmap_unblock_tasks(struct adapter * struct rx_ring *rxr = adapter->rx_rings; int i; - for (i = 0; i < adapter->num_tx_queues; i++) { + for (i = 0; i < adapter->num_queues; i++, txr++, rxr++) { taskqueue_unblock(txr->tq); - } - for (i = 0; i < adapter->num_rx_queues; i++) { taskqueue_unblock(rxr->tq); } } else { /* legacy */ @@ -331,8 +327,8 @@ em_netmap_attach(struct adapter *adapter na.nm_txsync = em_netmap_txsync; na.nm_rxsync = em_netmap_rxsync; na.nm_register = em_netmap_reg; - na.num_tx_rings = adapter->num_tx_queues; - na.num_rx_rings = adapter->num_rx_queues; + na.num_tx_rings = adapter->num_queues; + na.num_rx_rings = adapter->num_queues; netmap_attach(&na); } From owner-svn-src-projects@FreeBSD.ORG Wed Apr 29 16:31:05 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D0A82433; Wed, 29 Apr 2015 16:31:05 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BF45715C5; Wed, 29 Apr 2015 16:31:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t3TGV5gG095494; Wed, 29 Apr 2015 16:31:05 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t3TGV5HT095491; Wed, 29 Apr 2015 16:31:05 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201504291631.t3TGV5HT095491@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Wed, 29 Apr 2015 16:31:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282234 - projects/em_mq/sys/dev/e1000 X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Apr 2015 16:31:05 -0000 Author: sbruno Date: Wed Apr 29 16:31:04 2015 New Revision: 282234 URL: https://svnweb.freebsd.org/changeset/base/282234 Log: bus_describe_intr() will stop at the first whitespace it encounters, remove space so the intr thread is identified correctly. Remove stray comment. Modified: projects/em_mq/sys/dev/e1000/if_em.c projects/em_mq/sys/dev/e1000/if_em.h Modified: projects/em_mq/sys/dev/e1000/if_em.c ============================================================================== --- projects/em_mq/sys/dev/e1000/if_em.c Wed Apr 29 16:15:38 2015 (r282233) +++ projects/em_mq/sys/dev/e1000/if_em.c Wed Apr 29 16:31:04 2015 (r282234) @@ -2580,7 +2580,7 @@ em_allocate_msix(struct adapter *adapter return (error); } #if __FreeBSD_version >= 800504 - bus_describe_intr(dev, rxr->res, rxr->tag, "rx %d", i); + bus_describe_intr(dev, rxr->res, rxr->tag, "rx%d", i); #endif rxr->msix = vector; Modified: projects/em_mq/sys/dev/e1000/if_em.h ============================================================================== --- projects/em_mq/sys/dev/e1000/if_em.h Wed Apr 29 16:15:38 2015 (r282233) +++ projects/em_mq/sys/dev/e1000/if_em.h Wed Apr 29 16:31:04 2015 (r282234) @@ -407,7 +407,6 @@ struct adapter { eventhandler_tag vlan_detach; u16 num_vlans; - /* Allow number of tx queues != num of rx_queues */ u8 num_queues; /* From owner-svn-src-projects@FreeBSD.ORG Wed Apr 29 17:40:00 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4F782CEB; Wed, 29 Apr 2015 17:40:00 +0000 (UTC) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B41E1EEC; Wed, 29 Apr 2015 17:40:00 +0000 (UTC) Received: from ralph.baldwin.cx (pool-173-54-116-245.nwrknj.fios.verizon.net [173.54.116.245]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 1083CB98C; Wed, 29 Apr 2015 13:39:58 -0400 (EDT) From: John Baldwin To: Sean Bruno Cc: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r282234 - projects/em_mq/sys/dev/e1000 Date: Wed, 29 Apr 2015 13:39:51 -0400 Message-ID: <2153914.PBmIINthoT@ralph.baldwin.cx> User-Agent: KMail/4.14.2 (FreeBSD/10.1-STABLE; KDE/4.14.2; amd64; ; ) In-Reply-To: <201504291631.t3TGV5HT095491@svn.freebsd.org> References: <201504291631.t3TGV5HT095491@svn.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 29 Apr 2015 13:39:58 -0400 (EDT) X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 29 Apr 2015 17:40:00 -0000 On Wednesday, April 29, 2015 04:31:05 PM Sean Bruno wrote: > Author: sbruno > Date: Wed Apr 29 16:31:04 2015 > New Revision: 282234 > URL: https://svnweb.freebsd.org/changeset/base/282234 > > Log: > bus_describe_intr() will stop at the first whitespace it encounters, remove space > so the intr thread is identified correctly. Hmm, that requirement is probably worth noting in the manpage. Can you either take a stab at it or open a PR and assign it to me? -- John Baldwin From owner-svn-src-projects@FreeBSD.ORG Fri May 1 18:07:26 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 157FE934; Fri, 1 May 2015 18:07:26 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F31AA1923; Fri, 1 May 2015 18:07:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t41I7PUg084932; Fri, 1 May 2015 18:07:25 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t41I7KnF084836; Fri, 1 May 2015 18:07:20 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <201505011807.t41I7KnF084836@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Fri, 1 May 2015 18:07:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282313 - in projects/release-arm-redux: . bin/chflags bin/chmod bin/ed bin/expr bin/sh cddl/contrib/opensolaris/lib/libnvpair cddl/lib/libdtrace contrib/bmake/mk contrib/bmake/unit-tes... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2015 18:07:26 -0000 Author: gjb Date: Fri May 1 18:07:18 2015 New Revision: 282313 URL: https://svnweb.freebsd.org/changeset/base/282313 Log: MFH: r281855-r282312 Sponsored by: The FreeBSD Foundation Added: projects/release-arm-redux/contrib/gcclibs/libgomp/ChangeLog.gcc44 - copied unchanged from r282312, head/contrib/gcclibs/libgomp/ChangeLog.gcc44 projects/release-arm-redux/contrib/gcclibs/libgomp/config/bsd/ - copied from r282312, head/contrib/gcclibs/libgomp/config/bsd/ projects/release-arm-redux/contrib/gcclibs/libgomp/config/linux/affinity.c - copied unchanged from r282312, head/contrib/gcclibs/libgomp/config/linux/affinity.c projects/release-arm-redux/contrib/gcclibs/libgomp/config/linux/proc.c - copied unchanged from r282312, head/contrib/gcclibs/libgomp/config/linux/proc.c projects/release-arm-redux/contrib/gcclibs/libgomp/config/mingw32/proc.c - copied unchanged from r282312, head/contrib/gcclibs/libgomp/config/mingw32/proc.c projects/release-arm-redux/contrib/gcclibs/libgomp/config/posix/affinity.c - copied unchanged from r282312, head/contrib/gcclibs/libgomp/config/posix/affinity.c projects/release-arm-redux/contrib/ldns/freebsd-configure.sh - copied unchanged from r282312, head/contrib/ldns/freebsd-configure.sh projects/release-arm-redux/contrib/ldns/packaging/ - copied from r282312, head/contrib/ldns/packaging/ projects/release-arm-redux/contrib/libxo/libxo/xo_open_marker.3 - copied unchanged from r282312, head/contrib/libxo/libxo/xo_open_marker.3 projects/release-arm-redux/contrib/libxo/libxo/xo_set_version.3 - copied unchanged from r282312, head/contrib/libxo/libxo/xo_set_version.3 projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.H.err - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.H.err projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.H.out - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.H.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.HIPx.err - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.HIPx.err projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.HIPx.out - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.HIPx.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.HP.err - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.HP.err projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.HP.out - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.HP.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.J.err - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.J.err projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.J.out - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.J.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.JP.err - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.JP.err projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.JP.out - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.JP.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.T.err - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.T.err projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.T.out - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.T.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.X.err - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.X.err projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.X.out - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.X.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.XP.err - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.XP.err projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.XP.out - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.XP.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.err - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.err projects/release-arm-redux/contrib/libxo/tests/core/saved/test_10.out - copied unchanged from r282312, head/contrib/libxo/tests/core/saved/test_10.out projects/release-arm-redux/contrib/libxo/tests/core/test_10.c - copied unchanged from r282312, head/contrib/libxo/tests/core/test_10.c projects/release-arm-redux/contrib/libxo/xohtml/Makefile.am - copied unchanged from r282312, head/contrib/libxo/xohtml/Makefile.am projects/release-arm-redux/contrib/libxo/xohtml/xohtml.1 - copied unchanged from r282312, head/contrib/libxo/xohtml/xohtml.1 projects/release-arm-redux/etc/rc.d/tests/ - copied from r282312, head/etc/rc.d/tests/ projects/release-arm-redux/share/doc/usd/10.exref/ - copied from r282312, head/share/doc/usd/10.exref/ projects/release-arm-redux/share/doc/usd/11.vitut/ - copied from r282312, head/share/doc/usd/11.vitut/ projects/release-arm-redux/share/doc/usd/12.vi/ - copied from r282312, head/share/doc/usd/12.vi/ projects/release-arm-redux/share/doc/usd/13.viref/ - copied from r282312, head/share/doc/usd/13.viref/ projects/release-arm-redux/share/dtrace/siftr - copied unchanged from r282312, head/share/dtrace/siftr projects/release-arm-redux/sys/arm/conf/AML8726 - copied unchanged from r282312, head/sys/arm/conf/AML8726 projects/release-arm-redux/sys/arm/freescale/imx/files.imx5 - copied unchanged from r282312, head/sys/arm/freescale/imx/files.imx5 projects/release-arm-redux/sys/arm64/arm64/db_disasm.c - copied unchanged from r282312, head/sys/arm64/arm64/db_disasm.c projects/release-arm-redux/sys/arm64/arm64/db_interface.c - copied unchanged from r282312, head/sys/arm64/arm64/db_interface.c projects/release-arm-redux/sys/arm64/arm64/db_trace.c - copied unchanged from r282312, head/sys/arm64/arm64/db_trace.c projects/release-arm-redux/sys/arm64/arm64/debug_monitor.c - copied unchanged from r282312, head/sys/arm64/arm64/debug_monitor.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_x550.c - copied unchanged from r282312, head/sys/dev/ixgbe/ixgbe_x550.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_x550.h - copied unchanged from r282312, head/sys/dev/ixgbe/ixgbe_x550.h projects/release-arm-redux/sys/libkern/zlib.c - copied unchanged from r282312, head/sys/libkern/zlib.c projects/release-arm-redux/sys/powerpc/aim/aim_machdep.c - copied unchanged from r282312, head/sys/powerpc/aim/aim_machdep.c projects/release-arm-redux/sys/powerpc/booke/booke_machdep.c - copied unchanged from r282312, head/sys/powerpc/booke/booke_machdep.c projects/release-arm-redux/sys/powerpc/powerpc/machdep.c - copied unchanged from r282312, head/sys/powerpc/powerpc/machdep.c projects/release-arm-redux/sys/powerpc/powerpc/uma_machdep.c - copied unchanged from r282312, head/sys/powerpc/powerpc/uma_machdep.c projects/release-arm-redux/sys/sys/zlib.h - copied unchanged from r282312, head/sys/sys/zlib.h projects/release-arm-redux/sys/sys/zutil.h - copied unchanged from r282312, head/sys/sys/zutil.h projects/release-arm-redux/sys/x86/x86/mp_x86.c - copied unchanged from r282312, head/sys/x86/x86/mp_x86.c projects/release-arm-redux/tests/freebsd_test_suite/ - copied from r282312, head/tests/freebsd_test_suite/ projects/release-arm-redux/tests/sys/aio/ - copied from r282312, head/tests/sys/aio/ projects/release-arm-redux/tests/sys/fifo/ - copied from r282312, head/tests/sys/fifo/ projects/release-arm-redux/tests/sys/file/ - copied from r282312, head/tests/sys/file/ projects/release-arm-redux/tests/sys/kern/execve/ - copied from r282312, head/tests/sys/kern/execve/ projects/release-arm-redux/tests/sys/kqueue/ - copied from r282312, head/tests/sys/kqueue/ projects/release-arm-redux/tests/sys/mqueue/ - copied from r282312, head/tests/sys/mqueue/ projects/release-arm-redux/tests/sys/vm/ - copied from r282312, head/tests/sys/vm/ projects/release-arm-redux/usr.bin/cxxfilt/ - copied from r282312, head/usr.bin/cxxfilt/ Replaced: projects/release-arm-redux/contrib/bmake/mk/cython.mk - copied unchanged from r282312, head/contrib/bmake/mk/cython.mk projects/release-arm-redux/contrib/bmake/mk/manifest.mk - copied unchanged from r282312, head/contrib/bmake/mk/manifest.mk projects/release-arm-redux/contrib/bmake/mk/mkopt.sh - copied unchanged from r282312, head/contrib/bmake/mk/mkopt.sh projects/release-arm-redux/contrib/bmake/mk/whats.mk - copied unchanged from r282312, head/contrib/bmake/mk/whats.mk projects/release-arm-redux/contrib/bmake/unit-tests/comment.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/comment.exp projects/release-arm-redux/contrib/bmake/unit-tests/comment.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/comment.mk projects/release-arm-redux/contrib/bmake/unit-tests/cond1.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/cond1.exp projects/release-arm-redux/contrib/bmake/unit-tests/cond1.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/cond1.mk projects/release-arm-redux/contrib/bmake/unit-tests/doterror.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/doterror.exp projects/release-arm-redux/contrib/bmake/unit-tests/doterror.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/doterror.mk projects/release-arm-redux/contrib/bmake/unit-tests/dotwait.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/dotwait.exp projects/release-arm-redux/contrib/bmake/unit-tests/dotwait.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/dotwait.mk projects/release-arm-redux/contrib/bmake/unit-tests/error.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/error.exp projects/release-arm-redux/contrib/bmake/unit-tests/error.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/error.mk projects/release-arm-redux/contrib/bmake/unit-tests/escape.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/escape.exp projects/release-arm-redux/contrib/bmake/unit-tests/escape.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/escape.mk projects/release-arm-redux/contrib/bmake/unit-tests/export-all.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/export-all.exp projects/release-arm-redux/contrib/bmake/unit-tests/export-all.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/export-all.mk projects/release-arm-redux/contrib/bmake/unit-tests/export-env.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/export-env.exp projects/release-arm-redux/contrib/bmake/unit-tests/export-env.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/export-env.mk projects/release-arm-redux/contrib/bmake/unit-tests/export.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/export.exp projects/release-arm-redux/contrib/bmake/unit-tests/export.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/export.mk projects/release-arm-redux/contrib/bmake/unit-tests/forloop.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/forloop.exp projects/release-arm-redux/contrib/bmake/unit-tests/forloop.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/forloop.mk projects/release-arm-redux/contrib/bmake/unit-tests/forsubst.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/forsubst.exp projects/release-arm-redux/contrib/bmake/unit-tests/forsubst.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/forsubst.mk projects/release-arm-redux/contrib/bmake/unit-tests/hash.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/hash.exp projects/release-arm-redux/contrib/bmake/unit-tests/hash.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/hash.mk projects/release-arm-redux/contrib/bmake/unit-tests/impsrc.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/impsrc.exp projects/release-arm-redux/contrib/bmake/unit-tests/impsrc.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/impsrc.mk projects/release-arm-redux/contrib/bmake/unit-tests/misc.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/misc.exp projects/release-arm-redux/contrib/bmake/unit-tests/misc.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/misc.mk projects/release-arm-redux/contrib/bmake/unit-tests/moderrs.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/moderrs.exp projects/release-arm-redux/contrib/bmake/unit-tests/moderrs.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/moderrs.mk projects/release-arm-redux/contrib/bmake/unit-tests/modmatch.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/modmatch.exp projects/release-arm-redux/contrib/bmake/unit-tests/modmatch.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/modmatch.mk projects/release-arm-redux/contrib/bmake/unit-tests/modmisc.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/modmisc.exp projects/release-arm-redux/contrib/bmake/unit-tests/modmisc.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/modmisc.mk projects/release-arm-redux/contrib/bmake/unit-tests/modorder.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/modorder.exp projects/release-arm-redux/contrib/bmake/unit-tests/modorder.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/modorder.mk projects/release-arm-redux/contrib/bmake/unit-tests/modts.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/modts.exp projects/release-arm-redux/contrib/bmake/unit-tests/modts.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/modts.mk projects/release-arm-redux/contrib/bmake/unit-tests/modword.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/modword.exp projects/release-arm-redux/contrib/bmake/unit-tests/modword.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/modword.mk projects/release-arm-redux/contrib/bmake/unit-tests/order.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/order.exp projects/release-arm-redux/contrib/bmake/unit-tests/order.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/order.mk projects/release-arm-redux/contrib/bmake/unit-tests/phony-end.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/phony-end.exp projects/release-arm-redux/contrib/bmake/unit-tests/phony-end.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/phony-end.mk projects/release-arm-redux/contrib/bmake/unit-tests/posix.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/posix.exp projects/release-arm-redux/contrib/bmake/unit-tests/posix.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/posix.mk projects/release-arm-redux/contrib/bmake/unit-tests/posix1.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/posix1.exp projects/release-arm-redux/contrib/bmake/unit-tests/posix1.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/posix1.mk projects/release-arm-redux/contrib/bmake/unit-tests/qequals.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/qequals.exp projects/release-arm-redux/contrib/bmake/unit-tests/qequals.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/qequals.mk projects/release-arm-redux/contrib/bmake/unit-tests/suffixes.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/suffixes.exp projects/release-arm-redux/contrib/bmake/unit-tests/suffixes.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/suffixes.mk projects/release-arm-redux/contrib/bmake/unit-tests/sunshcmd.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/sunshcmd.exp projects/release-arm-redux/contrib/bmake/unit-tests/sunshcmd.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/sunshcmd.mk projects/release-arm-redux/contrib/bmake/unit-tests/sysv.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/sysv.exp projects/release-arm-redux/contrib/bmake/unit-tests/sysv.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/sysv.mk projects/release-arm-redux/contrib/bmake/unit-tests/ternary.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/ternary.exp projects/release-arm-redux/contrib/bmake/unit-tests/ternary.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/ternary.mk projects/release-arm-redux/contrib/bmake/unit-tests/unexport-env.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/unexport-env.exp projects/release-arm-redux/contrib/bmake/unit-tests/unexport-env.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/unexport-env.mk projects/release-arm-redux/contrib/bmake/unit-tests/unexport.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/unexport.exp projects/release-arm-redux/contrib/bmake/unit-tests/unexport.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/unexport.mk projects/release-arm-redux/contrib/bmake/unit-tests/varcmd.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/varcmd.exp projects/release-arm-redux/contrib/bmake/unit-tests/varcmd.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/varcmd.mk projects/release-arm-redux/contrib/bmake/unit-tests/varmisc.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/varmisc.exp projects/release-arm-redux/contrib/bmake/unit-tests/varmisc.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/varmisc.mk projects/release-arm-redux/contrib/bmake/unit-tests/varshell.exp - copied unchanged from r282312, head/contrib/bmake/unit-tests/varshell.exp projects/release-arm-redux/contrib/bmake/unit-tests/varshell.mk - copied unchanged from r282312, head/contrib/bmake/unit-tests/varshell.mk projects/release-arm-redux/contrib/wpa/CONTRIBUTIONS - copied unchanged from r282312, head/contrib/wpa/CONTRIBUTIONS projects/release-arm-redux/contrib/wpa/hostapd/hapd_module_tests.c - copied unchanged from r282312, head/contrib/wpa/hostapd/hapd_module_tests.c projects/release-arm-redux/contrib/wpa/hostapd/wps-ap-nfc.py - copied unchanged from r282312, head/contrib/wpa/hostapd/wps-ap-nfc.py projects/release-arm-redux/contrib/wpa/hs20/ - copied from r282312, head/contrib/wpa/hs20/ projects/release-arm-redux/contrib/wpa/patches/openssl-0.9.8za-tls-extensions.patch - copied unchanged from r282312, head/contrib/wpa/patches/openssl-0.9.8za-tls-extensions.patch projects/release-arm-redux/contrib/wpa/src/ap/acs.c - copied unchanged from r282312, head/contrib/wpa/src/ap/acs.c projects/release-arm-redux/contrib/wpa/src/ap/acs.h - copied unchanged from r282312, head/contrib/wpa/src/ap/acs.h projects/release-arm-redux/contrib/wpa/src/ap/bss_load.c - copied unchanged from r282312, head/contrib/wpa/src/ap/bss_load.c projects/release-arm-redux/contrib/wpa/src/ap/bss_load.h - copied unchanged from r282312, head/contrib/wpa/src/ap/bss_load.h projects/release-arm-redux/contrib/wpa/src/ap/dfs.c - copied unchanged from r282312, head/contrib/wpa/src/ap/dfs.c projects/release-arm-redux/contrib/wpa/src/ap/dfs.h - copied unchanged from r282312, head/contrib/wpa/src/ap/dfs.h projects/release-arm-redux/contrib/wpa/src/ap/dhcp_snoop.c - copied unchanged from r282312, head/contrib/wpa/src/ap/dhcp_snoop.c projects/release-arm-redux/contrib/wpa/src/ap/dhcp_snoop.h - copied unchanged from r282312, head/contrib/wpa/src/ap/dhcp_snoop.h projects/release-arm-redux/contrib/wpa/src/ap/ndisc_snoop.c - copied unchanged from r282312, head/contrib/wpa/src/ap/ndisc_snoop.c projects/release-arm-redux/contrib/wpa/src/ap/ndisc_snoop.h - copied unchanged from r282312, head/contrib/wpa/src/ap/ndisc_snoop.h projects/release-arm-redux/contrib/wpa/src/ap/x_snoop.c - copied unchanged from r282312, head/contrib/wpa/src/ap/x_snoop.c projects/release-arm-redux/contrib/wpa/src/ap/x_snoop.h - copied unchanged from r282312, head/contrib/wpa/src/ap/x_snoop.h projects/release-arm-redux/contrib/wpa/src/common/common_module_tests.c - copied unchanged from r282312, head/contrib/wpa/src/common/common_module_tests.c projects/release-arm-redux/contrib/wpa/src/common/hw_features_common.c - copied unchanged from r282312, head/contrib/wpa/src/common/hw_features_common.c projects/release-arm-redux/contrib/wpa/src/common/hw_features_common.h - copied unchanged from r282312, head/contrib/wpa/src/common/hw_features_common.h projects/release-arm-redux/contrib/wpa/src/common/ieee802_1x_defs.h - copied unchanged from r282312, head/contrib/wpa/src/common/ieee802_1x_defs.h projects/release-arm-redux/contrib/wpa/src/common/qca-vendor-attr.h - copied unchanged from r282312, head/contrib/wpa/src/common/qca-vendor-attr.h projects/release-arm-redux/contrib/wpa/src/common/qca-vendor.h - copied unchanged from r282312, head/contrib/wpa/src/common/qca-vendor.h projects/release-arm-redux/contrib/wpa/src/common/sae.c - copied unchanged from r282312, head/contrib/wpa/src/common/sae.c projects/release-arm-redux/contrib/wpa/src/common/sae.h - copied unchanged from r282312, head/contrib/wpa/src/common/sae.h projects/release-arm-redux/contrib/wpa/src/common/tnc.h - copied unchanged from r282312, head/contrib/wpa/src/common/tnc.h projects/release-arm-redux/contrib/wpa/src/common/wpa_helpers.c - copied unchanged from r282312, head/contrib/wpa/src/common/wpa_helpers.c projects/release-arm-redux/contrib/wpa/src/common/wpa_helpers.h - copied unchanged from r282312, head/contrib/wpa/src/common/wpa_helpers.h projects/release-arm-redux/contrib/wpa/src/crypto/aes-siv.c - copied unchanged from r282312, head/contrib/wpa/src/crypto/aes-siv.c projects/release-arm-redux/contrib/wpa/src/crypto/aes_siv.h - copied unchanged from r282312, head/contrib/wpa/src/crypto/aes_siv.h projects/release-arm-redux/contrib/wpa/src/crypto/crypto_module_tests.c - copied unchanged from r282312, head/contrib/wpa/src/crypto/crypto_module_tests.c projects/release-arm-redux/contrib/wpa/src/crypto/sha256-kdf.c - copied unchanged from r282312, head/contrib/wpa/src/crypto/sha256-kdf.c projects/release-arm-redux/contrib/wpa/src/crypto/sha384.h - copied unchanged from r282312, head/contrib/wpa/src/crypto/sha384.h projects/release-arm-redux/contrib/wpa/src/drivers/driver_macsec_qca.c - copied unchanged from r282312, head/contrib/wpa/src/drivers/driver_macsec_qca.c projects/release-arm-redux/contrib/wpa/src/drivers/driver_nl80211.h - copied unchanged from r282312, head/contrib/wpa/src/drivers/driver_nl80211.h projects/release-arm-redux/contrib/wpa/src/drivers/driver_nl80211_android.c - copied unchanged from r282312, head/contrib/wpa/src/drivers/driver_nl80211_android.c projects/release-arm-redux/contrib/wpa/src/drivers/driver_nl80211_capa.c - copied unchanged from r282312, head/contrib/wpa/src/drivers/driver_nl80211_capa.c projects/release-arm-redux/contrib/wpa/src/drivers/driver_nl80211_event.c - copied unchanged from r282312, head/contrib/wpa/src/drivers/driver_nl80211_event.c projects/release-arm-redux/contrib/wpa/src/drivers/driver_nl80211_monitor.c - copied unchanged from r282312, head/contrib/wpa/src/drivers/driver_nl80211_monitor.c projects/release-arm-redux/contrib/wpa/src/drivers/driver_nl80211_scan.c - copied unchanged from r282312, head/contrib/wpa/src/drivers/driver_nl80211_scan.c projects/release-arm-redux/contrib/wpa/src/drivers/driver_openbsd.c - copied unchanged from r282312, head/contrib/wpa/src/drivers/driver_openbsd.c projects/release-arm-redux/contrib/wpa/src/drivers/linux_defines.h - copied unchanged from r282312, head/contrib/wpa/src/drivers/linux_defines.h projects/release-arm-redux/contrib/wpa/src/eap_common/eap_eke_common.c - copied unchanged from r282312, head/contrib/wpa/src/eap_common/eap_eke_common.c projects/release-arm-redux/contrib/wpa/src/eap_common/eap_eke_common.h - copied unchanged from r282312, head/contrib/wpa/src/eap_common/eap_eke_common.h projects/release-arm-redux/contrib/wpa/src/eap_peer/eap_eke.c - copied unchanged from r282312, head/contrib/wpa/src/eap_peer/eap_eke.c projects/release-arm-redux/contrib/wpa/src/eap_peer/eap_proxy.h - copied unchanged from r282312, head/contrib/wpa/src/eap_peer/eap_proxy.h projects/release-arm-redux/contrib/wpa/src/eap_peer/eap_proxy_dummy.c - copied unchanged from r282312, head/contrib/wpa/src/eap_peer/eap_proxy_dummy.c projects/release-arm-redux/contrib/wpa/src/eap_server/eap_server_eke.c - copied unchanged from r282312, head/contrib/wpa/src/eap_server/eap_server_eke.c projects/release-arm-redux/contrib/wpa/src/pae/ - copied from r282312, head/contrib/wpa/src/pae/ projects/release-arm-redux/contrib/wpa/src/utils/bitfield.c - copied unchanged from r282312, head/contrib/wpa/src/utils/bitfield.c projects/release-arm-redux/contrib/wpa/src/utils/bitfield.h - copied unchanged from r282312, head/contrib/wpa/src/utils/bitfield.h projects/release-arm-redux/contrib/wpa/src/utils/browser-android.c - copied unchanged from r282312, head/contrib/wpa/src/utils/browser-android.c projects/release-arm-redux/contrib/wpa/src/utils/browser-system.c - copied unchanged from r282312, head/contrib/wpa/src/utils/browser-system.c projects/release-arm-redux/contrib/wpa/src/utils/browser-wpadebug.c - copied unchanged from r282312, head/contrib/wpa/src/utils/browser-wpadebug.c projects/release-arm-redux/contrib/wpa/src/utils/browser.c - copied unchanged from r282312, head/contrib/wpa/src/utils/browser.c projects/release-arm-redux/contrib/wpa/src/utils/browser.h - copied unchanged from r282312, head/contrib/wpa/src/utils/browser.h projects/release-arm-redux/contrib/wpa/src/utils/http-utils.h - copied unchanged from r282312, head/contrib/wpa/src/utils/http-utils.h projects/release-arm-redux/contrib/wpa/src/utils/http_curl.c - copied unchanged from r282312, head/contrib/wpa/src/utils/http_curl.c projects/release-arm-redux/contrib/wpa/src/utils/platform.h - copied unchanged from r282312, head/contrib/wpa/src/utils/platform.h projects/release-arm-redux/contrib/wpa/src/utils/utils_module_tests.c - copied unchanged from r282312, head/contrib/wpa/src/utils/utils_module_tests.c projects/release-arm-redux/contrib/wpa/src/utils/xml-utils.c - copied unchanged from r282312, head/contrib/wpa/src/utils/xml-utils.c projects/release-arm-redux/contrib/wpa/src/utils/xml-utils.h - copied unchanged from r282312, head/contrib/wpa/src/utils/xml-utils.h projects/release-arm-redux/contrib/wpa/src/utils/xml_libxml2.c - copied unchanged from r282312, head/contrib/wpa/src/utils/xml_libxml2.c projects/release-arm-redux/contrib/wpa/src/wps/wps_module_tests.c - copied unchanged from r282312, head/contrib/wpa/src/wps/wps_module_tests.c projects/release-arm-redux/contrib/wpa/wpa_supplicant/eap_proxy_dummy.mak - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/eap_proxy_dummy.mak projects/release-arm-redux/contrib/wpa/wpa_supplicant/eap_proxy_dummy.mk - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/eap_proxy_dummy.mk projects/release-arm-redux/contrib/wpa/wpa_supplicant/examples/p2p-nfc.py - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/examples/p2p-nfc.py projects/release-arm-redux/contrib/wpa/wpa_supplicant/mesh.c - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/mesh.c projects/release-arm-redux/contrib/wpa/wpa_supplicant/mesh.h - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/mesh.h projects/release-arm-redux/contrib/wpa/wpa_supplicant/mesh_mpm.c - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/mesh_mpm.c projects/release-arm-redux/contrib/wpa/wpa_supplicant/mesh_mpm.h - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/mesh_mpm.h projects/release-arm-redux/contrib/wpa/wpa_supplicant/mesh_rsn.c - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/mesh_rsn.c projects/release-arm-redux/contrib/wpa/wpa_supplicant/mesh_rsn.h - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/mesh_rsn.h projects/release-arm-redux/contrib/wpa/wpa_supplicant/wmm_ac.c - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/wmm_ac.c projects/release-arm-redux/contrib/wpa/wpa_supplicant/wmm_ac.h - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/wmm_ac.h projects/release-arm-redux/contrib/wpa/wpa_supplicant/wpas_kay.c - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/wpas_kay.c projects/release-arm-redux/contrib/wpa/wpa_supplicant/wpas_kay.h - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/wpas_kay.h projects/release-arm-redux/contrib/wpa/wpa_supplicant/wpas_module_tests.c - copied unchanged from r282312, head/contrib/wpa/wpa_supplicant/wpas_module_tests.c projects/release-arm-redux/sys/x86/x86/cpu_machdep.c - copied unchanged from r282312, head/sys/x86/x86/cpu_machdep.c Deleted: projects/release-arm-redux/etc/tests/rc.d/ projects/release-arm-redux/lib/libc/Makefile.amd64 projects/release-arm-redux/lib/libc/Makefile.i386 projects/release-arm-redux/lib/librt/Makefile.amd64 projects/release-arm-redux/lib/librt/Makefile.i386 projects/release-arm-redux/lib/libthr/Makefile.amd64 projects/release-arm-redux/lib/libthr/Makefile.i386 projects/release-arm-redux/lib/msun/Makefile.amd64 projects/release-arm-redux/lib/msun/Makefile.i386 projects/release-arm-redux/share/doc/papers/hwpmc/ projects/release-arm-redux/sys/amd64/include/xen/xenpmap.h projects/release-arm-redux/sys/arm/amlogic/aml8726/files.smp projects/release-arm-redux/sys/arm/amlogic/aml8726/std.odroidc1 projects/release-arm-redux/sys/arm/amlogic/aml8726/std.vsatv102-m6 projects/release-arm-redux/sys/arm/freescale/imx/files.imx51 projects/release-arm-redux/sys/arm/freescale/imx/files.imx53 projects/release-arm-redux/sys/i386/conf/XEN projects/release-arm-redux/sys/i386/include/xen/features.h projects/release-arm-redux/sys/i386/include/xen/xenpmap.h projects/release-arm-redux/sys/i386/include/xen/xenstored.h projects/release-arm-redux/sys/i386/xen/ projects/release-arm-redux/sys/net/zlib.c projects/release-arm-redux/sys/net/zlib.h projects/release-arm-redux/sys/net/zutil.h projects/release-arm-redux/sys/powerpc/aim/machdep.c projects/release-arm-redux/sys/powerpc/aim/uma_machdep.c projects/release-arm-redux/sys/powerpc/booke/machdep.c projects/release-arm-redux/tools/regression/aio/aiotest/ projects/release-arm-redux/tools/regression/aio/kqueue/ projects/release-arm-redux/tools/regression/execve/ projects/release-arm-redux/tools/regression/fifo/ projects/release-arm-redux/tools/regression/file/dup/ projects/release-arm-redux/tools/regression/file/fcntlflags/ projects/release-arm-redux/tools/regression/file/flock/ projects/release-arm-redux/tools/regression/file/ftruncate/ projects/release-arm-redux/tools/regression/file/newfileops_on_fork/ projects/release-arm-redux/tools/regression/kqueue/ projects/release-arm-redux/tools/regression/mmap/ projects/release-arm-redux/tools/regression/mqueue/ Modified: projects/release-arm-redux/.arcconfig projects/release-arm-redux/Makefile projects/release-arm-redux/Makefile.inc1 projects/release-arm-redux/ObsoleteFiles.inc projects/release-arm-redux/UPDATING projects/release-arm-redux/bin/chflags/chflags.1 projects/release-arm-redux/bin/chflags/chflags.c projects/release-arm-redux/bin/chmod/chmod.1 projects/release-arm-redux/bin/chmod/chmod.c projects/release-arm-redux/bin/ed/ed.1 projects/release-arm-redux/bin/expr/expr.1 projects/release-arm-redux/bin/sh/jobs.c projects/release-arm-redux/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c projects/release-arm-redux/cddl/lib/libdtrace/tcp.d projects/release-arm-redux/contrib/gcclibs/libgomp/ChangeLog projects/release-arm-redux/contrib/gcclibs/libgomp/Makefile.am projects/release-arm-redux/contrib/gcclibs/libgomp/Makefile.in projects/release-arm-redux/contrib/gcclibs/libgomp/aclocal.m4 projects/release-arm-redux/contrib/gcclibs/libgomp/config.h.in projects/release-arm-redux/contrib/gcclibs/libgomp/configure projects/release-arm-redux/contrib/gcclibs/libgomp/configure.ac projects/release-arm-redux/contrib/gcclibs/libgomp/configure.tgt projects/release-arm-redux/contrib/gcclibs/libgomp/env.c projects/release-arm-redux/contrib/gcclibs/libgomp/iter.c projects/release-arm-redux/contrib/gcclibs/libgomp/libgomp.h projects/release-arm-redux/contrib/gcclibs/libgomp/libgomp.texi projects/release-arm-redux/contrib/gcclibs/libgomp/omp.h.in projects/release-arm-redux/contrib/gcclibs/libgomp/omp_lib.h.in projects/release-arm-redux/contrib/gcclibs/libgomp/team.c projects/release-arm-redux/contrib/ldns/drill/config.h projects/release-arm-redux/contrib/ldns/drill/drill.1 projects/release-arm-redux/contrib/libxo/Makefile.am projects/release-arm-redux/contrib/libxo/configure.ac projects/release-arm-redux/contrib/libxo/doc/libxo.txt projects/release-arm-redux/contrib/libxo/libxo/Makefile.am projects/release-arm-redux/contrib/libxo/libxo/libxo.c projects/release-arm-redux/contrib/libxo/libxo/xo.h projects/release-arm-redux/contrib/libxo/libxo/xo_error.3 projects/release-arm-redux/contrib/libxo/libxo/xo_format.5 projects/release-arm-redux/contrib/libxo/libxo/xo_open_container.3 projects/release-arm-redux/contrib/libxo/libxo/xoconfig.h projects/release-arm-redux/contrib/libxo/libxo/xoconfig.h.in projects/release-arm-redux/contrib/libxo/libxo/xoversion.h projects/release-arm-redux/contrib/libxo/m4/libtool.m4 projects/release-arm-redux/contrib/libxo/m4/ltoptions.m4 projects/release-arm-redux/contrib/libxo/m4/ltversion.m4 projects/release-arm-redux/contrib/libxo/tests/core/Makefile.am projects/release-arm-redux/contrib/libxo/tests/core/saved/test_01.JP.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_02.JP.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_05.H.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_05.HIPx.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_05.HP.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_05.J.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_05.JP.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_05.T.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_05.X.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_05.XP.out projects/release-arm-redux/contrib/libxo/tests/core/saved/test_09.JP.out projects/release-arm-redux/contrib/libxo/tests/core/test_05.c projects/release-arm-redux/contrib/libxo/xo/xo.1 projects/release-arm-redux/contrib/libxo/xohtml/xohtml.css projects/release-arm-redux/contrib/libxo/xohtml/xohtml.sh.in projects/release-arm-redux/contrib/libxo/xolint/Makefile.am projects/release-arm-redux/contrib/libxo/xolint/xolint.1 projects/release-arm-redux/contrib/libxo/xolint/xolint.pl projects/release-arm-redux/contrib/netbsd-tests/lib/libm/t_fmod.c projects/release-arm-redux/contrib/netbsd-tests/lib/libpthread/t_swapcontext.c projects/release-arm-redux/contrib/tcpdump/interface.h projects/release-arm-redux/contrib/tcpdump/netdissect.h projects/release-arm-redux/contrib/tcpdump/print-ip.c projects/release-arm-redux/contrib/tcpdump/print-pfsync.c projects/release-arm-redux/contrib/unbound/Makefile.in projects/release-arm-redux/contrib/unbound/compat/getentropy_linux.c projects/release-arm-redux/contrib/unbound/config.h projects/release-arm-redux/contrib/unbound/config.h.in projects/release-arm-redux/contrib/unbound/configure projects/release-arm-redux/contrib/unbound/configure.ac projects/release-arm-redux/contrib/unbound/daemon/remote.c projects/release-arm-redux/contrib/unbound/daemon/unbound.c projects/release-arm-redux/contrib/unbound/daemon/worker.c projects/release-arm-redux/contrib/unbound/doc/Changelog projects/release-arm-redux/contrib/unbound/doc/README projects/release-arm-redux/contrib/unbound/doc/example.conf projects/release-arm-redux/contrib/unbound/doc/example.conf.in projects/release-arm-redux/contrib/unbound/doc/libunbound.3 projects/release-arm-redux/contrib/unbound/doc/libunbound.3.in projects/release-arm-redux/contrib/unbound/doc/unbound-anchor.8 projects/release-arm-redux/contrib/unbound/doc/unbound-anchor.8.in projects/release-arm-redux/contrib/unbound/doc/unbound-checkconf.8 projects/release-arm-redux/contrib/unbound/doc/unbound-checkconf.8.in projects/release-arm-redux/contrib/unbound/doc/unbound-control.8 projects/release-arm-redux/contrib/unbound/doc/unbound-control.8.in projects/release-arm-redux/contrib/unbound/doc/unbound-host.1 projects/release-arm-redux/contrib/unbound/doc/unbound-host.1.in projects/release-arm-redux/contrib/unbound/doc/unbound.8 projects/release-arm-redux/contrib/unbound/doc/unbound.8.in projects/release-arm-redux/contrib/unbound/doc/unbound.conf.5 projects/release-arm-redux/contrib/unbound/doc/unbound.conf.5.in projects/release-arm-redux/contrib/unbound/iterator/iter_scrub.c projects/release-arm-redux/contrib/unbound/iterator/iter_utils.c projects/release-arm-redux/contrib/unbound/iterator/iter_utils.h projects/release-arm-redux/contrib/unbound/iterator/iterator.c projects/release-arm-redux/contrib/unbound/libunbound/libworker.c projects/release-arm-redux/contrib/unbound/libunbound/python/libunbound.i projects/release-arm-redux/contrib/unbound/services/listen_dnsport.c projects/release-arm-redux/contrib/unbound/services/localzone.c projects/release-arm-redux/contrib/unbound/services/localzone.h projects/release-arm-redux/contrib/unbound/smallapp/unbound-checkconf.c projects/release-arm-redux/contrib/unbound/smallapp/unbound-control-setup.sh projects/release-arm-redux/contrib/unbound/smallapp/unbound-control-setup.sh.in projects/release-arm-redux/contrib/unbound/smallapp/unbound-control.c projects/release-arm-redux/contrib/unbound/util/config_file.c projects/release-arm-redux/contrib/unbound/util/config_file.h projects/release-arm-redux/contrib/unbound/util/configlexer.lex projects/release-arm-redux/contrib/unbound/util/configparser.y projects/release-arm-redux/contrib/unbound/util/iana_ports.inc projects/release-arm-redux/contrib/unbound/util/net_help.c projects/release-arm-redux/contrib/unbound/util/rtt.c projects/release-arm-redux/contrib/unbound/util/rtt.h projects/release-arm-redux/contrib/unbound/validator/val_secalgo.c projects/release-arm-redux/contrib/unbound/validator/val_utils.c projects/release-arm-redux/contrib/unbound/validator/val_utils.h projects/release-arm-redux/contrib/unbound/validator/validator.c projects/release-arm-redux/etc/defaults/rc.conf projects/release-arm-redux/etc/mtree/BSD.tests.dist projects/release-arm-redux/etc/rc.d/Makefile projects/release-arm-redux/etc/rc.d/devd projects/release-arm-redux/etc/rc.d/hostid projects/release-arm-redux/etc/tests/Makefile projects/release-arm-redux/gnu/lib/libgomp/Makefile projects/release-arm-redux/gnu/lib/libgomp/config.h projects/release-arm-redux/gnu/usr.bin/cc/Makefile projects/release-arm-redux/lib/libarchive/config_freebsd.h projects/release-arm-redux/lib/libc/Makefile projects/release-arm-redux/lib/libc/gen/_once_stub.c projects/release-arm-redux/lib/libc/gen/getutxent.3 projects/release-arm-redux/lib/libc/gen/nice.3 projects/release-arm-redux/lib/libc/gen/posix_spawn.3 projects/release-arm-redux/lib/libc/gen/posix_spawn_file_actions_addopen.3 projects/release-arm-redux/lib/libc/gen/posix_spawn_file_actions_init.3 projects/release-arm-redux/lib/libc/gen/posix_spawnattr_getflags.3 projects/release-arm-redux/lib/libc/gen/posix_spawnattr_getpgroup.3 projects/release-arm-redux/lib/libc/gen/posix_spawnattr_getschedparam.3 projects/release-arm-redux/lib/libc/gen/posix_spawnattr_getschedpolicy.3 projects/release-arm-redux/lib/libc/gen/posix_spawnattr_getsigdefault.3 projects/release-arm-redux/lib/libc/gen/posix_spawnattr_getsigmask.3 projects/release-arm-redux/lib/libc/gen/posix_spawnattr_init.3 projects/release-arm-redux/lib/libc/include/compat.h projects/release-arm-redux/lib/libc/locale/duplocale.3 projects/release-arm-redux/lib/libc/locale/freelocale.3 projects/release-arm-redux/lib/libc/locale/newlocale.3 projects/release-arm-redux/lib/libc/locale/none.c projects/release-arm-redux/lib/libc/locale/querylocale.3 projects/release-arm-redux/lib/libc/locale/uselocale.3 projects/release-arm-redux/lib/libc/net/sctp_recvmsg.3 projects/release-arm-redux/lib/libc/nls/catopen.3 projects/release-arm-redux/lib/libc/regex/re_format.7 projects/release-arm-redux/lib/libc/regex/regcomp.c projects/release-arm-redux/lib/libc/regex/regex.3 projects/release-arm-redux/lib/libc/rpc/rpcbind.3 projects/release-arm-redux/lib/libc/stdio/open_memstream.3 projects/release-arm-redux/lib/libc/stdio/open_memstream.c projects/release-arm-redux/lib/libc/stdio/open_wmemstream.c projects/release-arm-redux/lib/libc/sys/closefrom.2 projects/release-arm-redux/lib/libc/sys/posix_openpt.2 projects/release-arm-redux/lib/libc/sys/procctl.2 projects/release-arm-redux/lib/libc/tests/db/Makefile projects/release-arm-redux/lib/libc/tests/sys/Makefile projects/release-arm-redux/lib/libcapsicum/libcapsicum_dns.c projects/release-arm-redux/lib/libcapsicum/libcapsicum_grp.c projects/release-arm-redux/lib/libcapsicum/libcapsicum_pwd.c projects/release-arm-redux/lib/libedit/el.c projects/release-arm-redux/lib/libgeom/geom_xml2tree.c projects/release-arm-redux/lib/libmd/mdXhl.c projects/release-arm-redux/lib/libnv/Makefile projects/release-arm-redux/lib/libnv/nv.3 projects/release-arm-redux/lib/libnv/tests/dnv_tests.cc projects/release-arm-redux/lib/libnv/tests/nv_tests.cc projects/release-arm-redux/lib/librt/Makefile projects/release-arm-redux/lib/libstand/Makefile projects/release-arm-redux/lib/libthr/Makefile projects/release-arm-redux/lib/libthr/tests/Makefile projects/release-arm-redux/lib/libthr/thread/thr_clean.c projects/release-arm-redux/lib/libxo/Makefile projects/release-arm-redux/lib/msun/Makefile projects/release-arm-redux/lib/msun/man/j0.3 projects/release-arm-redux/lib/msun/man/lgamma.3 projects/release-arm-redux/lib/msun/man/nextafter.3 projects/release-arm-redux/lib/msun/tests/Makefile projects/release-arm-redux/libexec/casper/dns/dns.c projects/release-arm-redux/libexec/casper/grp/grp.c projects/release-arm-redux/libexec/getty/subr.c projects/release-arm-redux/libexec/rtld-elf/rtld.c projects/release-arm-redux/release/Makefile.ec2 projects/release-arm-redux/release/arm/BEAGLEBONE.conf projects/release-arm-redux/release/arm/PANDABOARD.conf projects/release-arm-redux/release/arm/RPI-B.conf projects/release-arm-redux/release/arm/WANDBOARD-QUAD.conf projects/release-arm-redux/release/arm/ZEDBOARD.conf projects/release-arm-redux/release/arm64/make-memstick.sh projects/release-arm-redux/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/release-arm-redux/release/doc/share/xml/release.ent projects/release-arm-redux/release/doc/share/xml/sponsor.ent projects/release-arm-redux/release/scripts/mk-vmimage.sh projects/release-arm-redux/release/tools/vmimage.subr projects/release-arm-redux/sbin/atm/atmconfig/atmconfig.8 projects/release-arm-redux/sbin/camcontrol/camcontrol.8 projects/release-arm-redux/sbin/growfs/Makefile projects/release-arm-redux/sbin/growfs/growfs.c projects/release-arm-redux/sbin/ipfw/ipfw2.c projects/release-arm-redux/sbin/ipfw/ipfw2.h projects/release-arm-redux/sbin/ipfw/tables.c projects/release-arm-redux/share/doc/papers/Makefile projects/release-arm-redux/share/doc/papers/bufbio/bio.ms projects/release-arm-redux/share/doc/usd/06.bc/bc projects/release-arm-redux/share/doc/usd/18.msdiffs/ms.diffs projects/release-arm-redux/share/doc/usd/22.trofftut/tt00 projects/release-arm-redux/share/doc/usd/Makefile projects/release-arm-redux/share/doc/usd/contents/contents.ms projects/release-arm-redux/share/man/man4/ada.4 projects/release-arm-redux/share/man/man4/smb.4 projects/release-arm-redux/share/man/man4/urtwn.4 projects/release-arm-redux/share/man/man4/xen.4 projects/release-arm-redux/share/man/man9/BUS_BIND_INTR.9 projects/release-arm-redux/share/man/man9/BUS_CHILD_DELETED.9 projects/release-arm-redux/share/man/man9/BUS_CHILD_DETACHED.9 projects/release-arm-redux/share/man/man9/BUS_DESCRIBE_INTR.9 projects/release-arm-redux/share/man/man9/BUS_NEW_PASS.9 projects/release-arm-redux/share/man/man9/Makefile projects/release-arm-redux/share/man/man9/VOP_ADVISE.9 projects/release-arm-redux/share/man/man9/VOP_ALLOCATE.9 projects/release-arm-redux/share/man/man9/bus_adjust_resource.9 projects/release-arm-redux/share/man/man9/bus_generic_new_pass.9 projects/release-arm-redux/share/man/man9/bus_set_pass.9 projects/release-arm-redux/share/man/man9/getenv.9 projects/release-arm-redux/share/man/man9/panic.9 projects/release-arm-redux/share/man/man9/refcount.9 projects/release-arm-redux/share/man/man9/sglist.9 projects/release-arm-redux/share/man/man9/shm_map.9 projects/release-arm-redux/share/misc/committers-src.dot projects/release-arm-redux/share/mk/src.opts.mk projects/release-arm-redux/sys/amd64/amd64/apic_vector.S projects/release-arm-redux/sys/amd64/amd64/mp_machdep.c projects/release-arm-redux/sys/amd64/conf/GENERIC projects/release-arm-redux/sys/amd64/conf/NOTES projects/release-arm-redux/sys/amd64/include/smp.h projects/release-arm-redux/sys/amd64/include/vm.h projects/release-arm-redux/sys/amd64/include/vmm.h (contents, props changed) projects/release-arm-redux/sys/amd64/include/xen/xenfunc.h projects/release-arm-redux/sys/amd64/include/xen/xenvar.h projects/release-arm-redux/sys/amd64/vmm/amd/amdv.c projects/release-arm-redux/sys/amd64/vmm/amd/svm.c projects/release-arm-redux/sys/amd64/vmm/amd/svm_msr.c projects/release-arm-redux/sys/amd64/vmm/amd/vmcb.c projects/release-arm-redux/sys/amd64/vmm/intel/vmx_msr.c projects/release-arm-redux/sys/amd64/vmm/io/vatpic.c projects/release-arm-redux/sys/amd64/vmm/io/vatpit.c projects/release-arm-redux/sys/amd64/vmm/io/vhpet.c projects/release-arm-redux/sys/amd64/vmm/io/vioapic.c projects/release-arm-redux/sys/amd64/vmm/io/vlapic.c projects/release-arm-redux/sys/amd64/vmm/io/vpmtmr.c projects/release-arm-redux/sys/amd64/vmm/io/vrtc.c projects/release-arm-redux/sys/amd64/vmm/vmm.c projects/release-arm-redux/sys/amd64/vmm/vmm_instruction_emul.c projects/release-arm-redux/sys/amd64/vmm/vmm_ioport.c projects/release-arm-redux/sys/amd64/vmm/vmm_stat.c projects/release-arm-redux/sys/amd64/vmm/x86.c projects/release-arm-redux/sys/arm/allwinner/std.a10 projects/release-arm-redux/sys/arm/amlogic/aml8726/aml8726_mmc.c projects/release-arm-redux/sys/arm/amlogic/aml8726/aml8726_mmc.h projects/release-arm-redux/sys/arm/amlogic/aml8726/files.aml8726 projects/release-arm-redux/sys/arm/amlogic/aml8726/std.aml8726 projects/release-arm-redux/sys/arm/arm/busdma_machdep-v6.c projects/release-arm-redux/sys/arm/arm/busdma_machdep.c projects/release-arm-redux/sys/arm/arm/cpufunc.c projects/release-arm-redux/sys/arm/arm/locore-v4.S projects/release-arm-redux/sys/arm/arm/locore-v6.S projects/release-arm-redux/sys/arm/arm/pmap-v6-new.c projects/release-arm-redux/sys/arm/broadcom/bcm2835/bcm2835_mbox.c projects/release-arm-redux/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c projects/release-arm-redux/sys/arm/broadcom/bcm2835/std.bcm2836 projects/release-arm-redux/sys/arm/conf/EFIKA_MX projects/release-arm-redux/sys/arm/conf/IMX53 projects/release-arm-redux/sys/arm/conf/IMX6 projects/release-arm-redux/sys/arm/conf/ODROIDC1 projects/release-arm-redux/sys/arm/conf/RK3188 projects/release-arm-redux/sys/arm/conf/RPI2 projects/release-arm-redux/sys/arm/conf/VSATV102 projects/release-arm-redux/sys/arm/freescale/imx/std.imx51 projects/release-arm-redux/sys/arm/freescale/imx/std.imx53 projects/release-arm-redux/sys/arm64/arm64/bus_machdep.c projects/release-arm-redux/sys/arm64/arm64/bus_space_asm.S projects/release-arm-redux/sys/arm64/arm64/nexus.c projects/release-arm-redux/sys/arm64/arm64/pmap.c projects/release-arm-redux/sys/arm64/include/pmap.h projects/release-arm-redux/sys/boot/common/md.c projects/release-arm-redux/sys/boot/fdt/dts/arm/bcm2836.dtsi projects/release-arm-redux/sys/boot/fdt/dts/arm/rpi2.dts projects/release-arm-redux/sys/boot/forth/loader.conf projects/release-arm-redux/sys/boot/i386/common/edd.h projects/release-arm-redux/sys/boot/libstand32/Makefile projects/release-arm-redux/sys/boot/userboot/libstand/Makefile projects/release-arm-redux/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c projects/release-arm-redux/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/release-arm-redux/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c projects/release-arm-redux/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c projects/release-arm-redux/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c projects/release-arm-redux/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c projects/release-arm-redux/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c projects/release-arm-redux/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c projects/release-arm-redux/sys/cddl/dev/dtrace/amd64/dtrace_asm.S projects/release-arm-redux/sys/cddl/dev/dtrace/arm/dtrace_asm.S projects/release-arm-redux/sys/cddl/dev/dtrace/dtrace_hacks.c projects/release-arm-redux/sys/cddl/dev/dtrace/i386/dtrace_asm.S projects/release-arm-redux/sys/cddl/dev/dtrace/mips/dtrace_asm.S projects/release-arm-redux/sys/cddl/dev/dtrace/powerpc/dtrace_asm.S projects/release-arm-redux/sys/cddl/dev/profile/profile.c projects/release-arm-redux/sys/compat/linux/linux_getcwd.c projects/release-arm-redux/sys/conf/files projects/release-arm-redux/sys/conf/files.amd64 projects/release-arm-redux/sys/conf/files.arm64 projects/release-arm-redux/sys/conf/files.i386 projects/release-arm-redux/sys/conf/files.pc98 projects/release-arm-redux/sys/conf/files.powerpc projects/release-arm-redux/sys/conf/kern.mk projects/release-arm-redux/sys/conf/kern.pre.mk projects/release-arm-redux/sys/conf/options projects/release-arm-redux/sys/conf/options.amd64 projects/release-arm-redux/sys/conf/options.arm projects/release-arm-redux/sys/conf/options.arm64 projects/release-arm-redux/sys/conf/options.i386 projects/release-arm-redux/sys/dev/acpica/acpi.c projects/release-arm-redux/sys/dev/atkbdc/atkbd.c projects/release-arm-redux/sys/dev/bxe/bxe.h projects/release-arm-redux/sys/dev/cxgbe/t4_main.c projects/release-arm-redux/sys/dev/e1000/if_igb.c projects/release-arm-redux/sys/dev/hyperv/include/hyperv.h projects/release-arm-redux/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c projects/release-arm-redux/sys/dev/hyperv/storvsc/hv_vstorage.h projects/release-arm-redux/sys/dev/hyperv/utilities/hv_kvp.c projects/release-arm-redux/sys/dev/hyperv/utilities/hv_util.c projects/release-arm-redux/sys/dev/hyperv/vmbus/hv_channel.c projects/release-arm-redux/sys/dev/hyperv/vmbus/hv_channel_mgmt.c (contents, props changed) projects/release-arm-redux/sys/dev/hyperv/vmbus/hv_connection.c (contents, props changed) projects/release-arm-redux/sys/dev/hyperv/vmbus/hv_hv.c projects/release-arm-redux/sys/dev/hyperv/vmbus/hv_ring_buffer.c (contents, props changed) projects/release-arm-redux/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c projects/release-arm-redux/sys/dev/hyperv/vmbus/hv_vmbus_priv.h projects/release-arm-redux/sys/dev/ichsmb/ichsmb_pci.c projects/release-arm-redux/sys/dev/iicbus/pcf8563.c projects/release-arm-redux/sys/dev/ipmi/ipmi.c projects/release-arm-redux/sys/dev/ipmi/ipmi_kcs.c projects/release-arm-redux/sys/dev/ipmi/ipmi_smic.c projects/release-arm-redux/sys/dev/ipmi/ipmivars.h projects/release-arm-redux/sys/dev/ixgbe/if_ix.c projects/release-arm-redux/sys/dev/ixgbe/if_ixv.c projects/release-arm-redux/sys/dev/ixgbe/ix_txrx.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_82598.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_82598.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_82599.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_82599.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_api.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_api.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_common.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_common.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_dcb.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_dcb.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_dcb_82598.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_dcb_82598.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_dcb_82599.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_dcb_82599.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_mbx.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_mbx.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_osdep.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_phy.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_phy.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_type.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_vf.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_vf.h projects/release-arm-redux/sys/dev/ixgbe/ixgbe_x540.c projects/release-arm-redux/sys/dev/ixgbe/ixgbe_x540.h projects/release-arm-redux/sys/dev/ixl/ixl.h projects/release-arm-redux/sys/dev/mii/brgphy.c projects/release-arm-redux/sys/dev/mxge/if_mxge.c projects/release-arm-redux/sys/dev/pccbb/pccbb_pci.c projects/release-arm-redux/sys/dev/pci/pci.c projects/release-arm-redux/sys/dev/pci/pci_pci.c projects/release-arm-redux/sys/dev/pci/pci_subr.c projects/release-arm-redux/sys/dev/pci/pcib_private.h projects/release-arm-redux/sys/dev/pci/pcivar.h projects/release-arm-redux/sys/dev/smbus/smb.c projects/release-arm-redux/sys/dev/smbus/smb.h projects/release-arm-redux/sys/dev/smbus/smbconf.h projects/release-arm-redux/sys/dev/smbus/smbus.c projects/release-arm-redux/sys/dev/smbus/smbus.h projects/release-arm-redux/sys/dev/smbus/smbus_if.m projects/release-arm-redux/sys/dev/sound/pcm/dsp.c projects/release-arm-redux/sys/dev/usb/controller/dwc_otg.c projects/release-arm-redux/sys/dev/usb/usbdevs projects/release-arm-redux/sys/dev/usb/wlan/if_urtwn.c projects/release-arm-redux/sys/dev/virtio/network/if_vtnet.c projects/release-arm-redux/sys/dev/vt/hw/fb/vt_fb.c projects/release-arm-redux/sys/dev/vt/hw/vga/vt_vga.c projects/release-arm-redux/sys/dev/vt/vt_core.c projects/release-arm-redux/sys/dev/xen/balloon/balloon.c projects/release-arm-redux/sys/dev/xen/blkback/blkback.c projects/release-arm-redux/sys/dev/xen/control/control.c projects/release-arm-redux/sys/dev/xen/grant_table/grant_table.c projects/release-arm-redux/sys/dev/xen/netback/netback.c projects/release-arm-redux/sys/dev/xen/netfront/netfront.c projects/release-arm-redux/sys/fs/nfs/nfsport.h projects/release-arm-redux/sys/fs/nfsclient/nfs_clvfsops.c projects/release-arm-redux/sys/fs/nfsserver/nfs_nfsdkrpc.c projects/release-arm-redux/sys/geom/uncompress/g_uncompress.c projects/release-arm-redux/sys/geom/uzip/g_uzip.c projects/release-arm-redux/sys/i386/conf/DEFAULTS projects/release-arm-redux/sys/i386/conf/GENERIC projects/release-arm-redux/sys/i386/i386/apic_vector.s projects/release-arm-redux/sys/i386/i386/genassym.c projects/release-arm-redux/sys/i386/i386/machdep.c projects/release-arm-redux/sys/i386/i386/minidump_machdep.c projects/release-arm-redux/sys/i386/i386/mp_machdep.c projects/release-arm-redux/sys/i386/i386/support.s projects/release-arm-redux/sys/i386/i386/swtch.s projects/release-arm-redux/sys/i386/i386/sys_machdep.c projects/release-arm-redux/sys/i386/i386/vm_machdep.c projects/release-arm-redux/sys/i386/include/asmacros.h projects/release-arm-redux/sys/i386/include/cpufunc.h projects/release-arm-redux/sys/i386/include/intr_machdep.h projects/release-arm-redux/sys/i386/include/pcpu.h projects/release-arm-redux/sys/i386/include/pmap.h projects/release-arm-redux/sys/i386/include/segments.h projects/release-arm-redux/sys/i386/include/smp.h projects/release-arm-redux/sys/i386/include/vm.h projects/release-arm-redux/sys/i386/include/vmparam.h projects/release-arm-redux/sys/i386/include/xen/hypercall.h projects/release-arm-redux/sys/i386/include/xen/xen-os.h projects/release-arm-redux/sys/i386/include/xen/xenfunc.h projects/release-arm-redux/sys/i386/include/xen/xenvar.h projects/release-arm-redux/sys/i386/isa/npx.c projects/release-arm-redux/sys/i386/pci/pci_cfgreg.c projects/release-arm-redux/sys/i386/pci/pci_pir.c projects/release-arm-redux/sys/kern/imgact_elf.c projects/release-arm-redux/sys/kern/kern_descrip.c projects/release-arm-redux/sys/kern/kern_exec.c projects/release-arm-redux/sys/kern/kern_exit.c projects/release-arm-redux/sys/kern/kern_gzio.c projects/release-arm-redux/sys/kern/kern_intr.c projects/release-arm-redux/sys/kern/kern_jail.c projects/release-arm-redux/sys/kern/kern_proc.c projects/release-arm-redux/sys/kern/kern_racct.c projects/release-arm-redux/sys/kern/kern_rctl.c projects/release-arm-redux/sys/kern/kern_shutdown.c projects/release-arm-redux/sys/kern/kern_synch.c projects/release-arm-redux/sys/kern/kern_thr.c projects/release-arm-redux/sys/kern/link_elf.c projects/release-arm-redux/sys/kern/link_elf_obj.c projects/release-arm-redux/sys/kern/sched_4bsd.c projects/release-arm-redux/sys/kern/subr_dnvlist.c projects/release-arm-redux/sys/kern/subr_nvlist.c projects/release-arm-redux/sys/kern/subr_nvpair.c projects/release-arm-redux/sys/kern/subr_param.c projects/release-arm-redux/sys/kern/subr_trap.c projects/release-arm-redux/sys/kern/sysv_msg.c projects/release-arm-redux/sys/kern/sysv_sem.c projects/release-arm-redux/sys/kern/sysv_shm.c projects/release-arm-redux/sys/kern/uipc_shm.c projects/release-arm-redux/sys/kern/vfs_aio.c projects/release-arm-redux/sys/kern/vfs_bio.c projects/release-arm-redux/sys/mips/mips/busdma_machdep.c projects/release-arm-redux/sys/modules/ix/Makefile projects/release-arm-redux/sys/modules/ixv/Makefile projects/release-arm-redux/sys/modules/oce/Makefile projects/release-arm-redux/sys/modules/zlib/Makefile projects/release-arm-redux/sys/net/if_vlan.c projects/release-arm-redux/sys/net/netisr.c projects/release-arm-redux/sys/netgraph/ng_deflate.c projects/release-arm-redux/sys/netinet/in_kdtrace.c projects/release-arm-redux/sys/netinet/in_kdtrace.h projects/release-arm-redux/sys/netinet/ip_fw.h projects/release-arm-redux/sys/netinet/ip_ipsec.c projects/release-arm-redux/sys/netinet/libalias/libalias.3 projects/release-arm-redux/sys/netinet/sctp_indata.c projects/release-arm-redux/sys/netinet/siftr.c projects/release-arm-redux/sys/netinet/tcp_subr.c projects/release-arm-redux/sys/netinet/tcp_timewait.c projects/release-arm-redux/sys/netinet6/ip6_forward.c projects/release-arm-redux/sys/netinet6/ip6_ipsec.c projects/release-arm-redux/sys/netipsec/ipsec.c projects/release-arm-redux/sys/netipsec/ipsec.h projects/release-arm-redux/sys/netipsec/ipsec_input.c projects/release-arm-redux/sys/netipsec/ipsec_output.c projects/release-arm-redux/sys/netipsec/xform_ah.c projects/release-arm-redux/sys/netipsec/xform_esp.c projects/release-arm-redux/sys/netipsec/xform_ipcomp.c projects/release-arm-redux/sys/netpfil/ipfw/ip_fw2.c projects/release-arm-redux/sys/netpfil/ipfw/ip_fw_nat.c projects/release-arm-redux/sys/netpfil/ipfw/ip_fw_private.h projects/release-arm-redux/sys/netpfil/ipfw/ip_fw_sockopt.c projects/release-arm-redux/sys/netpfil/ipfw/ip_fw_table.c projects/release-arm-redux/sys/netpfil/ipfw/ip_fw_table.h projects/release-arm-redux/sys/opencrypto/cryptodeflate.c projects/release-arm-redux/sys/opencrypto/deflate.h projects/release-arm-redux/sys/powerpc/aim/mmu_oea64.c projects/release-arm-redux/sys/powerpc/booke/pmap.c projects/release-arm-redux/sys/powerpc/conf/GENERIC projects/release-arm-redux/sys/powerpc/ofw/ofw_machdep.c projects/release-arm-redux/sys/powerpc/powerpc/busdma_machdep.c projects/release-arm-redux/sys/sparc64/pci/apb.c projects/release-arm-redux/sys/sys/cdefs.h projects/release-arm-redux/sys/sys/nv.h projects/release-arm-redux/sys/sys/nv_impl.h projects/release-arm-redux/sys/sys/nvlist_impl.h projects/release-arm-redux/sys/sys/param.h projects/release-arm-redux/sys/sys/procctl.h projects/release-arm-redux/sys/sys/racct.h projects/release-arm-redux/sys/sys/seq.h projects/release-arm-redux/sys/sys/systm.h projects/release-arm-redux/sys/ufs/ffs/ffs_alloc.c projects/release-arm-redux/sys/ufs/ffs/ffs_vfsops.c projects/release-arm-redux/sys/ufs/ufs/inode.h projects/release-arm-redux/sys/vm/sg_pager.c projects/release-arm-redux/sys/vm/swap_pager.c projects/release-arm-redux/sys/vm/uma_int.h projects/release-arm-redux/sys/vm/vm_fault.c projects/release-arm-redux/sys/vm/vm_map.c projects/release-arm-redux/sys/vm/vm_mmap.c projects/release-arm-redux/sys/vm/vm_page.c projects/release-arm-redux/sys/vm/vm_pageout.c projects/release-arm-redux/sys/vm/vm_unix.c projects/release-arm-redux/sys/x86/acpica/srat.c projects/release-arm-redux/sys/x86/include/apicvar.h projects/release-arm-redux/sys/x86/include/mca.h projects/release-arm-redux/sys/x86/include/segments.h projects/release-arm-redux/sys/x86/pci/qpi.c projects/release-arm-redux/sys/x86/x86/busdma_bounce.c projects/release-arm-redux/sys/x86/x86/identcpu.c projects/release-arm-redux/sys/x86/x86/intr_machdep.c projects/release-arm-redux/sys/x86/x86/local_apic.c projects/release-arm-redux/sys/x86/x86/mca.c projects/release-arm-redux/sys/x86/xen/xen_intr.c projects/release-arm-redux/sys/x86/xen/xen_nexus.c projects/release-arm-redux/tests/sys/Makefile projects/release-arm-redux/tests/sys/kern/Makefile projects/release-arm-redux/tools/build/check-links.sh projects/release-arm-redux/tools/build/mk/OptionalObsoleteFiles.inc projects/release-arm-redux/tools/regression/aio/aiop/Makefile projects/release-arm-redux/tools/regression/aio/aiop/aiop.c projects/release-arm-redux/tools/regression/file/closefrom/closefrom.c projects/release-arm-redux/tools/regression/gaithrstress/gaithrstress.c projects/release-arm-redux/tools/regression/lib/libc/stdio/test-open_memstream.c projects/release-arm-redux/tools/regression/lib/libc/stdio/test-open_wmemstream.c projects/release-arm-redux/tools/regression/netinet/arphold/arphold.c projects/release-arm-redux/tools/regression/p1003_1b/Makefile projects/release-arm-redux/tools/regression/p1003_1b/fifo.c projects/release-arm-redux/tools/regression/p1003_1b/sched.c projects/release-arm-redux/tools/regression/p1003_1b/yield.c projects/release-arm-redux/tools/tools/tscdrift/tscdrift.c projects/release-arm-redux/usr.bin/Makefile projects/release-arm-redux/usr.bin/calendar/calendars/calendar.freebsd projects/release-arm-redux/usr.bin/calendar/calendars/calendar.holiday projects/release-arm-redux/usr.bin/col/col.c projects/release-arm-redux/usr.bin/hexdump/display.c projects/release-arm-redux/usr.bin/kdump/kdump.c projects/release-arm-redux/usr.bin/nfsstat/Makefile projects/release-arm-redux/usr.bin/nfsstat/nfsstat.1 projects/release-arm-redux/usr.bin/nfsstat/nfsstat.c projects/release-arm-redux/usr.bin/perror/perror.1 projects/release-arm-redux/usr.bin/perror/perror.c projects/release-arm-redux/usr.bin/procstat/procstat_rusage.c projects/release-arm-redux/usr.bin/protect/protect.1 projects/release-arm-redux/usr.bin/protect/protect.c projects/release-arm-redux/usr.bin/rctl/rctl.c projects/release-arm-redux/usr.bin/whois/whois.c projects/release-arm-redux/usr.sbin/bhyve/acpi.c projects/release-arm-redux/usr.sbin/bhyve/ioapic.c projects/release-arm-redux/usr.sbin/bhyve/ioapic.h projects/release-arm-redux/usr.sbin/bhyve/pci_emul.c projects/release-arm-redux/usr.sbin/bhyve/pci_irq.c projects/release-arm-redux/usr.sbin/bhyve/pci_irq.h projects/release-arm-redux/usr.sbin/bhyve/pm.c projects/release-arm-redux/usr.sbin/bluetooth/Makefile projects/release-arm-redux/usr.sbin/chown/chgrp.1 projects/release-arm-redux/usr.sbin/chown/chown.8 projects/release-arm-redux/usr.sbin/chown/chown.c projects/release-arm-redux/usr.sbin/crunch/crunchide/exec_elf32.c projects/release-arm-redux/usr.sbin/ctld/login.c projects/release-arm-redux/usr.sbin/etcupdate/etcupdate.8 projects/release-arm-redux/usr.sbin/etcupdate/etcupdate.sh projects/release-arm-redux/usr.sbin/etcupdate/tests/always_test.sh projects/release-arm-redux/usr.sbin/etcupdate/tests/conflicts_test.sh projects/release-arm-redux/usr.sbin/etcupdate/tests/fbsdid_test.sh projects/release-arm-redux/usr.sbin/etcupdate/tests/ignore_test.sh projects/release-arm-redux/usr.sbin/etcupdate/tests/preworld_test.sh projects/release-arm-redux/usr.sbin/etcupdate/tests/tests_test.sh projects/release-arm-redux/usr.sbin/etcupdate/tests/tzsetup_test.sh projects/release-arm-redux/usr.sbin/iovctl/iovctl.conf.5 projects/release-arm-redux/usr.sbin/jail/jail.8 projects/release-arm-redux/usr.sbin/mountd/mountd.8 projects/release-arm-redux/usr.sbin/mountd/mountd.c projects/release-arm-redux/usr.sbin/nfsd/nfsd.8 projects/release-arm-redux/usr.sbin/nfsd/nfsd.c projects/release-arm-redux/usr.sbin/ntp/doc/ntptime.8 projects/release-arm-redux/usr.sbin/pciconf/err.c projects/release-arm-redux/usr.sbin/smbmsg/smbmsg.c Directory Properties: projects/release-arm-redux/ (props changed) projects/release-arm-redux/cddl/ (props changed) projects/release-arm-redux/cddl/contrib/opensolaris/ (props changed) projects/release-arm-redux/contrib/bmake/ (props changed) projects/release-arm-redux/contrib/gcclibs/libgomp/ (props changed) projects/release-arm-redux/contrib/ldns/ (props changed) projects/release-arm-redux/contrib/tcpdump/ (props changed) projects/release-arm-redux/contrib/unbound/ (props changed) projects/release-arm-redux/contrib/wpa/ (props changed) projects/release-arm-redux/etc/ (props changed) projects/release-arm-redux/gnu/lib/ (props changed) projects/release-arm-redux/lib/libc/ (props changed) projects/release-arm-redux/sbin/ (props changed) projects/release-arm-redux/sbin/ipfw/ (props changed) projects/release-arm-redux/share/ (props changed) projects/release-arm-redux/share/doc/usd/10.exref/exref/ex.rm (props changed) projects/release-arm-redux/share/doc/usd/10.exref/summary/ex.summary (props changed) projects/release-arm-redux/share/doc/usd/11.vitut/edittut.ms (props changed) projects/release-arm-redux/share/doc/usd/12.vi/summary/vi.summary (props changed) projects/release-arm-redux/share/doc/usd/12.vi/vi/vi.chars (props changed) projects/release-arm-redux/share/doc/usd/12.vi/vi/vi.in (props changed) projects/release-arm-redux/share/doc/usd/12.vi/viapwh/vi.apwh.ms (props changed) projects/release-arm-redux/share/doc/usd/13.viref/ex.cmd.roff (props changed) projects/release-arm-redux/share/doc/usd/13.viref/ref.so (props changed) projects/release-arm-redux/share/doc/usd/13.viref/set.opt.roff (props changed) projects/release-arm-redux/share/doc/usd/13.viref/vi.cmd.roff (props changed) projects/release-arm-redux/share/doc/usd/13.viref/vi.ref (props changed) projects/release-arm-redux/share/man/man4/ (props changed) projects/release-arm-redux/sys/ (props changed) projects/release-arm-redux/sys/amd64/include/xen/ (props changed) projects/release-arm-redux/sys/amd64/vmm/ (props changed) projects/release-arm-redux/sys/boot/ (props changed) projects/release-arm-redux/sys/cddl/contrib/opensolaris/ (props changed) projects/release-arm-redux/sys/conf/ (props changed) projects/release-arm-redux/sys/dev/hyperv/ (props changed) projects/release-arm-redux/usr.bin/calendar/ (props changed) projects/release-arm-redux/usr.bin/procstat/ (props changed) projects/release-arm-redux/usr.sbin/bhyve/ (props changed) projects/release-arm-redux/usr.sbin/jail/ (props changed) Modified: projects/release-arm-redux/.arcconfig ============================================================================== --- projects/release-arm-redux/.arcconfig Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/.arcconfig Fri May 1 18:07:18 2015 (r282313) @@ -1,4 +1,5 @@ { "project.name": "S", - "phabricator.uri" : "https://reviews.freebsd.org/" + "phabricator.uri" : "https://reviews.freebsd.org/", + "history.immutable" : true } Modified: projects/release-arm-redux/Makefile ============================================================================== --- projects/release-arm-redux/Makefile Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/Makefile Fri May 1 18:07:18 2015 (r282313) @@ -373,19 +373,19 @@ kernel-toolchains: # existing system is. # .if make(universe) || make(universe_kernels) || make(tinderbox) || make(targets) -TARGETS?=amd64 arm i386 mips pc98 powerpc sparc64 # XXX Add arm64 to universe only if we have an external binutils installed. -# It does not build with the in-tree linnker. +# It does not build with the in-tree linker. .if exists(/usr/local/aarch64-freebsd/bin/ld) -TARGETS+=arm64 -TARGET_ARCHES_arm64?= aarch64 -.else +UNIVERSE_arm64=arm64 +.elif empty(${TARGETS}) universe: universe_arm64_skip universe_epilogue: universe_arm64_skip universe_arm64_skip: universe_prologue @echo ">> arm64 skipped - install aarch64-binutils port or package to build" .endif +TARGETS?=amd64 arm ${UNIVERSE_arm64} i386 mips pc98 powerpc sparc64 TARGET_ARCHES_arm?= arm armeb armv6 armv6hf +TARGET_ARCHES_arm64?= aarch64 TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32 TARGET_ARCHES_powerpc?= powerpc powerpc64 TARGET_ARCHES_pc98?= i386 Modified: projects/release-arm-redux/Makefile.inc1 ============================================================================== --- projects/release-arm-redux/Makefile.inc1 Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/Makefile.inc1 Fri May 1 18:07:18 2015 (r282313) @@ -1522,7 +1522,8 @@ cross-tools: .MAKE NXBENV= MAKEOBJDIRPREFIX=${OBJTREE}/nxb \ INSTALL="sh ${.CURDIR}/tools/install.sh" \ - VERSION="${VERSION}" + VERSION="${VERSION}" \ + PATH=${PATH}:${OBJTREE}/gperf_for_gcc/usr/bin NXBMAKE= ${NXBENV} ${MAKE} \ TBLGEN=${OBJTREE}/nxb-bin/usr/bin/tblgen \ CLANG_TBLGEN=${OBJTREE}/nxb-bin/usr/bin/clang-tblgen \ @@ -1535,7 +1536,21 @@ NXBMAKE= ${NXBENV} ${MAKE} \ MK_CLANG_EXTRAS=no MK_CLANG_FULL=no \ MK_LLDB=no +# native-xtools is the current target for qemu-user cross builds of ports +# via poudriere and the imgact_binmisc kernel module. +# For non-clang enabled targets that are still using the in tree gcc +# we must build a gperf binary for one instance of its Makefiles. On +# clang-enabled systems, the gperf binary is obsolete. native-xtools: .MAKE +.if ${MK_GCC_BOOTSTRAP} != "no" + mkdir -p ${OBJTREE}/gperf_for_gcc/usr/bin + ${_+_}@${ECHODIR} "===> ${_gperf} (obj,depend,all,install)"; \ + cd ${.CURDIR}/${_gperf} && \ + ${NXBMAKE} DIRPRFX=${_gperf}/ obj && \ + ${NXBMAKE} DIRPRFX=${_gperf}/ depend && \ + ${NXBMAKE} DIRPRFX=${_gperf}/ all && \ + ${NXBMAKE} DIRPRFX=${_gperf}/ DESTDIR=${OBJTREE}/gperf_for_gcc install +.endif mkdir -p ${OBJTREE}/nxb-bin/bin mkdir -p ${OBJTREE}/nxb-bin/sbin mkdir -p ${OBJTREE}/nxb-bin/usr Modified: projects/release-arm-redux/ObsoleteFiles.inc ============================================================================== --- projects/release-arm-redux/ObsoleteFiles.inc Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/ObsoleteFiles.inc Fri May 1 18:07:18 2015 (r282313) @@ -38,6 +38,69 @@ # xargs -n1 | sort | uniq -d; # done +# 20150501: Remove the nvlist_.*[vf] functions manpages. +OLD_FILES+=usr/share/man/man3/nvlist_addf_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_type.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_type.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_type.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_type.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_string.3.gz +# 20150429: +OLD_FILES+=usr/share/docs/papers/hwpmc.ascii.gz +# 20150427: test/sys/kern/mmap_test moved to test/sys/vm/mmap_test +OLD_FILES+=usr/tests/sys/kern/mmap_test # 20150418 OLD_FILES+=sbin/mount_oldnfs OLD_FILES+=usr/share/man/man8/mount_oldnfs.8.gz @@ -56,18 +119,6 @@ OLD_FILES+=usr/include/altq/altq_rmclass OLD_FILES+=usr/include/altq/altq_cbq.h OLD_FILES+=usr/include/altq/altq_rio.h OLD_DIRS+=usr/include/altq -# 20150410 -OLD_FILES+=usr/share/doc/usd/10.exref/paper.ascii.gz -OLD_FILES+=usr/share/doc/usd/10.exref/summary.ascii.gz -OLD_DIRS+=usr/share/doc/usd/10.exref -OLD_FILES+=usr/share/doc/usd/11.edit/paper.ascii.gz -OLD_DIRS+=usr/share/doc/usd/11.edit -OLD_FILES+=usr/share/doc/usd/12.vi/paper.ascii.gz -OLD_FILES+=usr/share/doc/usd/12.vi/summary.ascii.gz -OLD_FILES+=usr/share/doc/usd/12.vi/viapwh.ascii.gz -OLD_DIRS+=usr/share/doc/usd/12.vi -OLD_FILES+=usr/share/doc/usd/13.viref/paper.ascii.gz -OLD_DIRS+=usr/share/doc/usd/13.viref # 20150329 .if ${TARGET_ARCH} == "arm" OLD_FILES+=usr/include/bootconfig.h @@ -353,6 +404,10 @@ OLD_FILES+=usr/lib/debug/usr/lib32/i18n OLD_FILES+=usr/lib/debug/usr/lib32/private # 20141015: OpenSSL 1.0.1j import OLD_FILES+=usr/share/openssl/man/man3/CMS_sign_add1_signer.3.gz +.if ${MK_GCC} == "no" +# 20141009: gperf disabled by default +OLD_FILES+=usr/bin/gperf +.endif # 20140922: sleepq_calc_signal_retval.9 and sleepq_catch_signals.9 removed OLD_FILES+=usr/share/man/man9/sleepq_calc_signal_retval.9.gz OLD_FILES+=usr/share/man/man9/sleepq_catch_signals.9.gz Modified: projects/release-arm-redux/UPDATING ============================================================================== --- projects/release-arm-redux/UPDATING Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/UPDATING Fri May 1 18:07:18 2015 (r282313) @@ -31,6 +31,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20150423: + chmod, chflags, chown and chgrp now affect symlinks in -R mode as + defined in symlink(7); previously symlinks were silently ignored. + 20150415: The const qualifier has been removed from iconv(3) to comply with POSIX. The ports tree is aware of this from r384038 onwards. Modified: projects/release-arm-redux/bin/chflags/chflags.1 ============================================================================== --- projects/release-arm-redux/bin/chflags/chflags.1 Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/bin/chflags/chflags.1 Fri May 1 18:07:18 2015 (r282313) @@ -32,7 +32,7 @@ .\" @(#)chflags.1 8.4 (Berkeley) 5/2/95 .\" $FreeBSD$ .\" -.Dd April 8, 2013 +.Dd April 20, 2015 .Dt CHFLAGS 1 .Os .Sh NAME @@ -66,8 +66,9 @@ nor modify the exit status to reflect su .It Fl H If the .Fl R -option is specified, symbolic links on the command line are followed. -(Symbolic links encountered in the tree traversal are not followed.) +option is specified, symbolic links on the command line are followed +and hence unaffected by the command. +(Symbolic links encountered during traversal are not followed.) .It Fl h If the .Ar file @@ -83,8 +84,12 @@ If the option is specified, no symbolic links are followed. This is the default. .It Fl R -Change the file flags for the file hierarchies rooted -in the files instead of just the files themselves. +Change the file flags of the file hierarchies rooted in the files, +instead of just the files themselves. +Beware of unintentionally matching the +.Dq Pa ".." +hard link to the parent directory when using wildcards like +.Dq Li ".*" . .It Fl v Cause .Nm Modified: projects/release-arm-redux/bin/chflags/chflags.c ============================================================================== --- projects/release-arm-redux/bin/chflags/chflags.c Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/bin/chflags/chflags.c Fri May 1 18:07:18 2015 (r282313) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -65,7 +66,6 @@ main(int argc, char *argv[]) int Hflag, Lflag, Rflag, fflag, hflag, vflag; int ch, fts_options, oct, rval; char *flags, *ep; - int (*change_flags)(const char *, unsigned long); Hflag = Lflag = Rflag = fflag = hflag = vflag = 0; while ((ch = getopt(argc, argv, "HLPRfhv")) != -1) @@ -104,20 +104,23 @@ main(int argc, char *argv[]) usage(); if (Rflag) { - fts_options = FTS_PHYSICAL; if (hflag) - errx(1, "the -R and -h options " - "may not be specified together"); - if (Hflag) - fts_options |= FTS_COMFOLLOW; + errx(1, "the -R and -h options may not be " + "specified together."); if (Lflag) { - fts_options &= ~FTS_PHYSICAL; - fts_options |= FTS_LOGICAL; + fts_options = FTS_LOGICAL; + } else { + fts_options = FTS_PHYSICAL; + + if (Hflag) { + fts_options |= FTS_COMFOLLOW; + } } - } else - fts_options = hflag ? FTS_PHYSICAL : FTS_LOGICAL; - - change_flags = hflag ? lchflags : chflags; + } else if (hflag) { + fts_options = FTS_PHYSICAL; + } else { + fts_options = FTS_LOGICAL; + } flags = *argv; if (*flags >= '0' && *flags <= '7') { @@ -142,12 +145,21 @@ main(int argc, char *argv[]) err(1, NULL); for (rval = 0; (p = fts_read(ftsp)) != NULL;) { + int atflag; + + if ((fts_options & FTS_LOGICAL) || + ((fts_options & FTS_COMFOLLOW) && + p->fts_level == FTS_ROOTLEVEL)) + atflag = 0; + else + atflag = AT_SYMLINK_NOFOLLOW; + switch (p->fts_info) { case FTS_D: /* Change it at FTS_DP if we're recursive. */ if (!Rflag) fts_set(ftsp, p, FTS_SKIP); continue; - case FTS_DNR: /* Warn, chflag, continue. */ + case FTS_DNR: /* Warn, chflags. */ warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); rval = 1; break; @@ -156,16 +168,6 @@ main(int argc, char *argv[]) warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); rval = 1; continue; - case FTS_SL: /* Ignore. */ - case FTS_SLNONE: - /* - * The only symlinks that end up here are ones that - * don't point to anything and ones that we found - * doing a physical walk. - */ - if (!hflag) - continue; - /* FALLTHROUGH */ default: break; } @@ -175,7 +177,8 @@ main(int argc, char *argv[]) newflags = (p->fts_statp->st_flags | set) & clear; if (newflags == p->fts_statp->st_flags) continue; - if ((*change_flags)(p->fts_accpath, newflags) && !fflag) { + if (chflagsat(AT_FDCWD, p->fts_accpath, newflags, + atflag) == -1 && !fflag) { warn("%s", p->fts_path); rval = 1; } else if (vflag) { Modified: projects/release-arm-redux/bin/chmod/chmod.1 ============================================================================== --- projects/release-arm-redux/bin/chmod/chmod.1 Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/bin/chmod/chmod.1 Fri May 1 18:07:18 2015 (r282313) @@ -32,7 +32,7 @@ .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 .\" $FreeBSD$ .\" -.Dd January 26, 2009 +.Dd April 20, 2015 .Dt CHMOD 1 .Os .Sh NAME @@ -63,9 +63,9 @@ nor modify the exit status to reflect su .It Fl H If the .Fl R -option is specified, symbolic links on the command line are followed. -(Symbolic links encountered in the tree traversal are not followed by -default.) +option is specified, symbolic links on the command line are followed +and hence unaffected by the command. +(Symbolic links encountered during tree traversal are not followed.) .It Fl h If the file is a symbolic link, change the mode of the link itself rather than the file that the link points to. @@ -79,8 +79,12 @@ If the option is specified, no symbolic links are followed. This is the default. .It Fl R -Change the modes of the file hierarchies rooted in the files +Change the modes of the file hierarchies rooted in the files, instead of just the files themselves. +Beware of unintentionally matching the +.Dq Pa ".." +hard link to the parent directory when using wildcards like +.Dq Li ".*" . .It Fl v Cause .Nm Modified: projects/release-arm-redux/bin/chmod/chmod.c ============================================================================== --- projects/release-arm-redux/bin/chmod/chmod.c Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/bin/chmod/chmod.c Fri May 1 18:07:18 2015 (r282313) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -62,7 +63,7 @@ main(int argc, char *argv[]) FTS *ftsp; FTSENT *p; mode_t *set; - int Hflag, Lflag, Rflag, ch, error, fflag, fts_options, hflag, rval; + int Hflag, Lflag, Rflag, ch, fflag, fts_options, hflag, rval; int vflag; char *mode; mode_t newmode; @@ -126,18 +127,23 @@ done: argv += optind; usage(); if (Rflag) { - fts_options = FTS_PHYSICAL; if (hflag) - errx(1, - "the -R and -h options may not be specified together."); - if (Hflag) - fts_options |= FTS_COMFOLLOW; + errx(1, "the -R and -h options may not be " + "specified together."); if (Lflag) { - fts_options &= ~FTS_PHYSICAL; - fts_options |= FTS_LOGICAL; + fts_options = FTS_LOGICAL; + } else { + fts_options = FTS_PHYSICAL; + + if (Hflag) { + fts_options |= FTS_COMFOLLOW; + } } - } else - fts_options = hflag ? FTS_PHYSICAL : FTS_LOGICAL; + } else if (hflag) { + fts_options = FTS_PHYSICAL; + } else { + fts_options = FTS_LOGICAL; + } mode = *argv; if ((set = setmode(mode)) == NULL) @@ -146,12 +152,21 @@ done: argv += optind; if ((ftsp = fts_open(++argv, fts_options, 0)) == NULL) err(1, "fts_open"); for (rval = 0; (p = fts_read(ftsp)) != NULL;) { + int atflag; + + if ((fts_options & FTS_LOGICAL) || + ((fts_options & FTS_COMFOLLOW) && + p->fts_level == FTS_ROOTLEVEL)) + atflag = 0; + else + atflag = AT_SYMLINK_NOFOLLOW; + switch (p->fts_info) { case FTS_D: /* Change it at FTS_DP. */ if (!Rflag) fts_set(ftsp, p, FTS_SKIP); continue; - case FTS_DNR: /* Warn, chmod, continue. */ + case FTS_DNR: /* Warn, chmod. */ warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); rval = 1; break; @@ -160,16 +175,6 @@ done: argv += optind; warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); rval = 1; continue; - case FTS_SL: /* Ignore. */ - case FTS_SLNONE: - /* - * The only symlinks that end up here are ones that - * don't point to anything and ones that we found - * doing a physical walk. - */ - if (!hflag) - continue; - /* FALLTHROUGH */ default: break; } @@ -182,32 +187,25 @@ done: argv += optind; if (may_have_nfs4acl(p, hflag) == 0 && (newmode & ALLPERMS) == (p->fts_statp->st_mode & ALLPERMS)) continue; - if (hflag) - error = lchmod(p->fts_accpath, newmode); - else - error = chmod(p->fts_accpath, newmode); - if (error) { - if (!fflag) { - warn("%s", p->fts_path); - rval = 1; - } - } else { - if (vflag) { - (void)printf("%s", p->fts_path); + if (fchmodat(AT_FDCWD, p->fts_accpath, newmode, atflag) == -1 + && !fflag) { + warn("%s", p->fts_path); + rval = 1; + } else if (vflag) { + (void)printf("%s", p->fts_path); - if (vflag > 1) { - char m1[12], m2[12]; + if (vflag > 1) { + char m1[12], m2[12]; - strmode(p->fts_statp->st_mode, m1); - strmode((p->fts_statp->st_mode & - S_IFMT) | newmode, m2); - (void)printf(": 0%o [%s] -> 0%o [%s]", - p->fts_statp->st_mode, m1, - (p->fts_statp->st_mode & S_IFMT) | - newmode, m2); - } - (void)printf("\n"); + strmode(p->fts_statp->st_mode, m1); + strmode((p->fts_statp->st_mode & + S_IFMT) | newmode, m2); + (void)printf(": 0%o [%s] -> 0%o [%s]", + p->fts_statp->st_mode, m1, + (p->fts_statp->st_mode & S_IFMT) | + newmode, m2); } + (void)printf("\n"); } } if (errno) Modified: projects/release-arm-redux/bin/ed/ed.1 ============================================================================== --- projects/release-arm-redux/bin/ed/ed.1 Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/bin/ed/ed.1 Fri May 1 18:07:18 2015 (r282313) @@ -738,7 +738,7 @@ It is an error if no substitutions are p lines. The current address is set the last line affected. .Pp -.Ar Re +.Ar \&Re and .Ar replacement may be delimited by any character other than space and newline Modified: projects/release-arm-redux/bin/expr/expr.1 ============================================================================== --- projects/release-arm-redux/bin/expr/expr.1 Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/bin/expr/expr.1 Fri May 1 18:07:18 2015 (r282313) @@ -90,17 +90,17 @@ Return the evaluation of .Ar expr1 if neither expression evaluates to an empty string or zero; otherwise, returns zero. -.It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2 +.It Ar expr1 Bro =, >, >=, <, <=, != Brc Ar expr2 Return the results of integer comparison if both arguments are integers; otherwise, returns the results of string comparison using the locale-specific collation sequence. The result of each comparison is 1 if the specified relation is true, or 0 if the relation is false. -.It Ar expr1 Li "{+, -}" Ar expr2 +.It Ar expr1 Bro +, - Brc Ar expr2 Return the results of addition or subtraction of integer-valued arguments. -.It Ar expr1 Li "{*, /, %}" Ar expr2 +.It Ar expr1 Bro *, /, % Brc Ar expr2 Return the results of multiplication, integer division, or remainder of integer-valued arguments. -.It Ar expr1 Li : Ar expr2 +.It Ar expr1 Li \&: Ar expr2 The .Dq Li \&: operator matches Modified: projects/release-arm-redux/bin/sh/jobs.c ============================================================================== --- projects/release-arm-redux/bin/sh/jobs.c Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/bin/sh/jobs.c Fri May 1 18:07:18 2015 (r282313) @@ -1057,7 +1057,7 @@ waitforjob(struct job *jp, int *origstat CLEAR_PENDING_INT; } #if JOBS - else if (rootshell && iflag && propagate_int && + else if (rootshell && propagate_int && WIFSIGNALED(status) && WTERMSIG(status) == SIGINT) kill(getpid(), SIGINT); #endif Modified: projects/release-arm-redux/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c ============================================================================== --- projects/release-arm-redux/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c Fri May 1 18:07:18 2015 (r282313) @@ -793,6 +793,7 @@ dump_nvlist(nvlist_t *list, int indent) { nvpair_t *elem = NULL; boolean_t bool_value; + boolean_t *bool_array_value; nvlist_t *nvlist_value; nvlist_t **nvlist_array_value; uint_t i, count; @@ -853,6 +854,16 @@ dump_nvlist(nvlist_t *list, int indent) NVP(elem, string, char *, char *, "'%s'"); break; + case DATA_TYPE_BOOLEAN_ARRAY: + (void) nvpair_value_boolean_array(elem, + &bool_array_value, &count); + for (i = 0; i < count; i++) { + (void) printf("%*s%s[%d]: %s\n", indent, "", + nvpair_name(elem), i, + bool_array_value[i] ? "true" : "false"); + } + break; + case DATA_TYPE_BYTE_ARRAY: NVPA(elem, byte_array, uchar_t, int, "%u"); break; Modified: projects/release-arm-redux/cddl/lib/libdtrace/tcp.d ============================================================================== --- projects/release-arm-redux/cddl/lib/libdtrace/tcp.d Fri May 1 17:50:24 2015 (r282312) +++ projects/release-arm-redux/cddl/lib/libdtrace/tcp.d Fri May 1 18:07:18 2015 (r282313) @@ -241,3 +241,78 @@ translator tcpinfoh_t < struct tcphdr *p translator tcplsinfo_t < int s > { tcps_state = s; }; + +/* + * Convert a SIFTR direction value to a string + */ +#pragma D binding "1.12.1" SIFTR_IN +inline int SIFTR_IN = 1; +#pragma D binding "1.12.1" SIFTR_OUT +inline int SIFTR_OUT = 2; + +/* SIFTR direction strings. */ +#pragma D binding "1.12.1" siftr_dir_string +inline string siftr_dir_string[uint8_t direction] = + direction == SIFTR_IN ? "in" : + direction == SIFTR_OUT ? "out" : + "unknown" ; + +typedef struct siftrinfo { + struct timeval tval; + uint8_t direction; + uint8_t ipver; + uint32_t hash; + uint16_t tcp_localport; + uint16_t tcp_foreignport; + uint64_t snd_cwnd; + u_long snd_wnd; + u_long rcv_wnd; + u_long snd_bwnd; + u_long snd_ssthresh; + int conn_state; + u_int max_seg_size; + int smoothed_rtt; + u_char sack_enabled; + u_char snd_scale; + u_char rcv_scale; + u_int flags; + int rxt_length; + u_int snd_buf_hiwater; + u_int snd_buf_cc; + u_int rcv_buf_hiwater; + u_int rcv_buf_cc; + u_int sent_inflight_bytes; + int t_segqlen; + u_int flowid; + u_int flowtype; +} siftrinfo_t; + +#pragma D binding "1.12.1" translator +translator siftrinfo_t < struct pkt_node *p > { + direction = p == NULL ? 0 : p->direction; + ipver = p == NULL ? 0 : p->ipver; + hash = p == NULL ? 0 : p->hash; + tcp_localport = p == NULL ? 0 : ntohs(p->tcp_localport); + tcp_foreignport = p == NULL ? 0 : ntohs(p->tcp_foreignport); + snd_cwnd = p == NULL ? 0 : p->snd_cwnd; + snd_wnd = p == NULL ? 0 : p->snd_wnd; + rcv_wnd = p == NULL ? 0 : p->rcv_wnd; + snd_bwnd = p == NULL ? 0 : p->snd_bwnd; + snd_ssthresh = p == NULL ? 0 : p->snd_ssthresh; + conn_state = p == NULL ? 0 : p->conn_state; + max_seg_size = p == NULL ? 0 : p->max_seg_size; + smoothed_rtt = p == NULL ? 0 : p->smoothed_rtt; + sack_enabled = p == NULL ? 0 : p->sack_enabled; + snd_scale = p == NULL ? 0 : p->snd_scale; + rcv_scale = p == NULL ? 0 : p->rcv_scale; + flags = p == NULL ? 0 : p->flags; + rxt_length = p == NULL ? 0 : p->rxt_length; + snd_buf_hiwater = p == NULL ? 0 : p->snd_buf_hiwater; + snd_buf_cc = p == NULL ? 0 : p->snd_buf_cc; + rcv_buf_hiwater = p == NULL ? 0 : p->rcv_buf_hiwater; + rcv_buf_cc = p == NULL ? 0 : p->rcv_buf_cc; + sent_inflight_bytes = p == NULL ? 0 : p->sent_inflight_bytes; + t_segqlen = p == NULL ? 0 : p->t_segqlen; + flowid = p == NULL ? 0 : p->flowid; + flowtype = p == NULL ? 0 : p->flowtype; +}; Copied: projects/release-arm-redux/contrib/bmake/mk/cython.mk (from r282312, head/contrib/bmake/mk/cython.mk) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/release-arm-redux/contrib/bmake/mk/cython.mk Fri May 1 18:07:18 2015 (r282313, copy of r282312, head/contrib/bmake/mk/cython.mk) @@ -0,0 +1,96 @@ +# RCSid: +# $Id: cython.mk,v 1.6 2014/10/15 06:23:51 sjg Exp $ +# +# @(#) Copyright (c) 2014, Simon J. Gerraty +# +# This file is provided in the hope that it will +# be of use. There is absolutely NO WARRANTY. +# Permission to copy, redistribute or otherwise +# use this file is hereby granted provided that +# the above copyright notice and this notice are +# left intact. +# +# Please send copies of changes and bug-fixes to: +# sjg@crufty.net +# + +# this is what we build +CYTHON_MODULE = ${CYTHON_MODULE_NAME}${CYTHON_PYVERSION}.so + +CYTHON_MODULE_NAME?= it +CYTHON_SRCS?= ${CYTHON_MODULE_NAME}.pyx + +# this is where we save generated src +CYTHON_SAVEGENDIR?= ${.CURDIR}/gen + +# pyprefix is where python bits are +# which may not be where we want to put ours (prefix) +.if exists(/usr/pkg/include) +pyprefix?= /usr/pkg +.endif +pyprefix?= /usr/local + +PYTHON_VERSION?= 2.7 +PYTHON_H?= ${pyprefix}/include/python${PYTHON_VERSION}/Python.h +PYVERSION:= ${PYTHON_VERSION:C,\..*,,} + +# set this empty if you don't want to handle multiple versions +.if !defined(CYTHON_PYVERSION) +CYTHON_PYVERSION:= ${PYVERSION} +.endif + +CFLAGS+= -I${PYTHON_H:H} + +CYTHON_GENSRCS= ${CYTHON_SRCS:R:S,$,${CYTHON_PYVERSION}.c,} +SRCS+= ${CYTHON_GENSRCS} + +.SUFFIXES: .pyx .c .So + +CYTHON?= ${pyprefix}/bin/cython + +# if we don't have cython we can use pre-generated srcs +.if ${type ${CYTHON} 2> /dev/null || echo:L:sh:M/*} == "" +.PATH: ${CYTHON_SAVEGENDIR} +.else + +.if !empty(CYTHON_PYVERSION) +.for c in ${CYTHON_SRCS} +${c:R}${CYTHON_PYVERSION}.${c:E}: $c + ln -sf ${.ALLSRC:M*pyx} ${.TARGET} +.endfor +.endif + +.pyx.c: + ${CYTHON} ${CYTHON_FLAGS} -${PYVERSION} -o ${.TARGET} ${.IMPSRC} + + +save-gen: ${CYTHON_GENSRCS} + mkdir -p ${CYTHON_SAVEGENDIR} + cp -p ${.ALLSRC} ${CYTHON_SAVEGENDIR} + +.endif + +COMPILE.c?= ${CC} -c ${CFLAGS} + +.c.So: + ${COMPILE.c} ${PICFLAG} ${CC_PIC} ${.IMPSRC} -o ${.TARGET} + +${CYTHON_MODULE}: ${SRCS:S,.c,.So,} + ${CC} ${CC_SHARED:U-shared} -o ${.TARGET} ${.ALLSRC:M*.So} ${LDADD} + +# conf.host_target() is limited to uname -m rather than uname -p +_HOST_MACHINE!= uname -m +.if ${HOST_TARGET:M*${_HOST_MACHINE}} == "" +PY_HOST_TARGET:= ${HOST_TARGET:S,${_HOST_ARCH:U${uname -p:L:sh}}$,${_HOST_MACHINE},} +.endif + +MODULE_BINDIR?= ${.CURDIR:H}/${PY_HOST_TARGET:U${HOST_TARGET}} + +build-cython-module: ${CYTHON_MODULE} + +install-cython-module: ${CYTHON_MODULE} + test -d ${DESTDIR}${MODULE_BINDIR} || \ + ${INSTALL} -d ${DESTDIR}${MODULE_BINDIR} + ${INSTALL} -m 755 ${.ALLSRC} ${DESTDIR}${MODULE_BINDIR} + +CLEANFILES+= *.So ${CYTHON_MODULE} Copied: projects/release-arm-redux/contrib/bmake/mk/manifest.mk (from r282312, head/contrib/bmake/mk/manifest.mk) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/release-arm-redux/contrib/bmake/mk/manifest.mk Fri May 1 18:07:18 2015 (r282313, copy of r282312, head/contrib/bmake/mk/manifest.mk) @@ -0,0 +1,66 @@ +# $Id: manifest.mk,v 1.2 2014/10/31 18:06:17 sjg Exp $ +# +# @(#) Copyright (c) 2014, Simon J. Gerraty +# +# This file is provided in the hope that it will +# be of use. There is absolutely NO WARRANTY. +# Permission to copy, redistribute or otherwise +# use this file is hereby granted provided that +# the above copyright notice and this notice are +# left intact. +# +# Please send copies of changes and bug-fixes to: +# sjg@crufty.net +# + +# generate mtree style manifest supported by makefs in FreeBSD + +# input looks like +# MANIFEST= my.mtree +# for each MANIFEST we have a list of dirs +# ${MANIFEST}.DIRS += bin sbin usr/bin ... +# for each dir we have a ${MANIFEST}.SRCS.$dir +# that provides the absolute path to the contents +# ${MANIFEST}.SRCS.bin += ${OBJTOP}/bin/sh/sh +# ${MANIFEST}.SYMLINKS is a list of src target pairs +# for each file/dir there are a number of attributes +# UID GID MODE FLAGS +# which can be set per dir, per file or we use defaults +# eg. +# MODE.sbin = 550 +# MODE.usr/sbin = 550 +# MODE.dirs = 555 +# means that sbin and usr/sbin get 550 all other dirs get 555 +# MODE.usr/bin/passwd = 4555 +# MODE.usr/bin.files = 555 +# MODE.usr/sbin.files = 500 +# means passwd gets 4555 other files in usr/bin get 555 and +# files in usr/sbin get 500 +# STORE defaults to basename of src and target directory +# but we can use +# ${MANIFEST}.SRCS.sbin += ${OBJTOP}/bin/sh-static/sh-static +# STORE.sbin/sh-static = sbin/sh +# +# the above is a little overkill but means we can easily adapt to +# different formats + +UID.dirs ?= 0 +GID.dirs ?= 0 +MODE.dirs ?= 775 +FLAGS.dirs ?= + +UID.files ?= 0 +GID.files ?= 0 +MODE.files ?= 555 + +# a is attribute name d is dirname +M_DIR_ATTR = L:@a@$${$$a.$$d:U$${$$a.dirs}}@ +# as above and s is set to the name we store f as +M_FILE_ATTR = L:@a@$${$$a.$$s:U$${$$a.$$d.files:U$${$$a.files}}}@ + +# this produces the body of the manifest +# there should typically be a header prefixed +_GEN_MTREE_MANIFEST_USE: .USE + @(${${.TARGET}.DIRS:O:u:@d@echo '$d type=dir uid=${UID:${M_DIR_ATTR}} gid=${GID:${M_DIR_ATTR}} mode=${MODE:${M_DIR_ATTR}} ${FLAGS:${M_DIR_ATTR}}';@} \ + ${${.TARGET}.DIRS:O:u:@d@${${.TARGET}.SRCS.$d:O:u:@f@echo '${s::=${STORE.$d/${f:T}:U$d/${f:T}}}$s contents="$f" type=file uid=${UID:${M_FILE_ATTR}} gid=${GID:${M_FILE_ATTR}} mode=${MODE:${M_FILE_ATTR}} ${FLAGS:${M_FILE_ATTR}}';@}@} \ + set ${${.TARGET}.SYMLINKS}; while test $$# -ge 2; do echo "$$2 type=link link=$$1"; shift 2; done) > ${.TARGET} Copied: projects/release-arm-redux/contrib/bmake/mk/mkopt.sh (from r282312, head/contrib/bmake/mk/mkopt.sh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/release-arm-redux/contrib/bmake/mk/mkopt.sh Fri May 1 18:07:18 2015 (r282313, copy of r282312, head/contrib/bmake/mk/mkopt.sh) @@ -0,0 +1,94 @@ +: +# $Id: mkopt.sh,v 1.8 2014/11/15 07:07:18 sjg Exp $ +# +# @(#) Copyright (c) 2014, Simon J. Gerraty +# +# This file is provided in the hope that it will +# be of use. There is absolutely NO WARRANTY. +# Permission to copy, redistribute or otherwise +# use this file is hereby granted provided that +# the above copyright notice and this notice are +# left intact. +# +# Please send copies of changes and bug-fixes to: +# sjg@crufty.net +# + +# handle WITH[OUT]_* options in a manner compatible with +# options.mk and bsd.mkopt.mk in recent FreeBSD + +# no need to be included more than once +_MKOPT_SH=: + +# +# _mk_opt OPT default +# +# Set MK_$OPT +# +# The semantics are simple, if MK_$OPT has no value +# WITHOUT_$OPT results in MK_$OPT=no +# otherwise WITH_$OPT results in MK_$OPT=yes. +# Note WITHOUT_$OPT overrides WITH_$OPT. +# +# For backwards compatability reasons we treat WITH_$OPT=no +# the same as WITHOUT_$OPT. +# +_mk_opt() { + _d=$1 + _mo=MK_$2 _wo=WITHOUT_$2 _wi=WITH_$2 + eval "_mov=\$$_mo _wov=\$$_wo _wiv=\$$_wi" + + case "$_wiv" in + no) _wov=no;; + esac + _v=${_mov:-${_wov:+no}} + _v=${_v:-${_wiv:+yes}} + _v=${_v:-$_d} + _opt_list="$_opt_list $_mo" + case "$_v" in + yes|no) ;; # sane + 0|[NnFf]*) _v=no;; # they mean no + 1|[YyTt]*) _v=yes;; # they mean yes + *) _v=$_d;; # ignore bogus value + esac + eval "$_mo=$_v" +} + +# +# _mk_opts default opt ... [default [opt] ...] +# +# see _mk_opts_defaults for example +# +_mk_opts() { + _d=no + for _o in "$@" + do + case "$_o" in + yes|no) _d=$_o; continue;; + esac + _mk_opt $_d $_o + done +} + +_mk_opts_defaults() { + _mk_opts no $__DEFAULT_NO_OPTIONS yes $__DEFAULT_YES_OPTIONS +} + +case "/$0" in +*/mkopt*) + _list=no + while : + do + case "$1" in + *=*) eval "$1"; shift;; + --no|no) _list="$_list no"; shift;; + --yes|yes) _list="$_list yes"; shift;; + -DWITH*) eval "${1#-D}=1"; shift;; + [A-Z]*) _list="$_list $1"; shift;; + *) break;; + esac + done + _mk_opts $_list + ;; +esac + Copied: projects/release-arm-redux/contrib/bmake/mk/whats.mk (from r282312, head/contrib/bmake/mk/whats.mk) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/release-arm-redux/contrib/bmake/mk/whats.mk Fri May 1 18:07:18 2015 (r282313, copy of r282312, head/contrib/bmake/mk/whats.mk) @@ -0,0 +1,63 @@ +# $Id: whats.mk,v 1.1 2014/08/30 22:40:47 sjg Exp $ +# +# @(#) Copyright (c) 2014, Simon J. Gerraty +# +# This file is provided in the hope that it will +# be of use. There is absolutely NO WARRANTY. +# Permission to copy, redistribute or otherwise +# use this file is hereby granted provided that +# the above copyright notice and this notice are +# left intact. +# +# Please send copies of changes and bug-fixes to: +# sjg@crufty.net +# + +.if ${MK_WHATSTRING:Uno} != "no" +what_build_exts?= o +# it can be useful to embed a what(1) string in binaries +# so that the build location can be seen from a core file. +.if defined(PROG) && ${.MAKE.MAKEFILES:M*prog.mk} != "" +what_thing?= ${PROGNAME:U${PROG}} +what_build_thing?= ${PROG} +.elif defined(LIB) && ${.MAKE.MAKEFILES:M*lib.mk} != "" +# probably only makes sense for shared libs +# and the plumbing needed varies depending on *lib.mk +what_thing?= lib${LIB} +.if !empty(SOBJS) +_soe:= ${SOBJS:E:[1]} +what_build_exts= ${_soe} +SOBJS+= ${what_uuid}.${_soe} +.endif +.elif defined(KMOD) && ${.MAKE.MAKEFILES:M*kmod.mk} != "" +what_thing?= ${KMOD} +what_build_thing?= ${KMOD}.ko +.endif + +.if !empty(what_thing) +# a unique name that won't conflict with anything +what_uuid = what_${.CURDIR:T:hash} + +.if !empty(what_build_thing) +${what_build_thing}: ${what_build_exts:@e@${what_uuid}.$e@} +.endif +OBJS+= ${what_uuid}.o +CLEANFILES+= ${what_uuid}.c + +# we do not need to capture this +SUPPRESS_DEPEND+= *${what_uuid}.c + +SB?= ${SRCTOP:H} +SB_LOCATION?= ${HOST}:${SB} +what_location:= ${.OBJDIR:S,${SB},${SB_LOCATION},} + +# this works with clang and gcc +_what_t= const char __attribute__ ((section(".data"))) +_what1:= @(\#)${what_thing:tu} built ${%Y%m%d:L:localtime} by ${USER} +_what2:= @(\#)${what_location} + +${what_uuid}.c: + echo '${_what_t} ${what_uuid}1[] = "${_what1}";' > $@ ${.OODATE:MNO_META_CMP} + echo '${_what_t} ${what_uuid}2[] = "${_what2}";' >> $@ +.endif +.endif Copied: projects/release-arm-redux/contrib/bmake/unit-tests/comment.exp (from r282312, head/contrib/bmake/unit-tests/comment.exp) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/release-arm-redux/contrib/bmake/unit-tests/comment.exp Fri May 1 18:07:18 2015 (r282313, copy of r282312, head/contrib/bmake/unit-tests/comment.exp) @@ -0,0 +1,5 @@ +comment testing start +this is foo +This is how a comment looks: # comment +comment testing done +exit status 0 Copied: projects/release-arm-redux/contrib/bmake/unit-tests/comment.mk (from r282312, head/contrib/bmake/unit-tests/comment.mk) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/release-arm-redux/contrib/bmake/unit-tests/comment.mk Fri May 1 18:07:18 2015 (r282313, copy of r282312, head/contrib/bmake/unit-tests/comment.mk) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri May 1 21:37:37 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 52806591; Fri, 1 May 2015 21:37:37 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 418991FF8; Fri, 1 May 2015 21:37:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t41Lbbm2094332; Fri, 1 May 2015 21:37:37 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t41LbbF2094331; Fri, 1 May 2015 21:37:37 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201505012137.t41LbbF2094331@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 1 May 2015 21:37:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282324 - projects/em_mq/sys/dev/netmap X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2015 21:37:37 -0000 Author: sbruno Date: Fri May 1 21:37:36 2015 New Revision: 282324 URL: https://svnweb.freebsd.org/changeset/base/282324 Log: Use single assignment for number of tx/rx rings. Modified: projects/em_mq/sys/dev/netmap/if_em_netmap.h Modified: projects/em_mq/sys/dev/netmap/if_em_netmap.h ============================================================================== --- projects/em_mq/sys/dev/netmap/if_em_netmap.h Fri May 1 21:26:40 2015 (r282323) +++ projects/em_mq/sys/dev/netmap/if_em_netmap.h Fri May 1 21:37:36 2015 (r282324) @@ -327,8 +327,7 @@ em_netmap_attach(struct adapter *adapter na.nm_txsync = em_netmap_txsync; na.nm_rxsync = em_netmap_rxsync; na.nm_register = em_netmap_reg; - na.num_tx_rings = adapter->num_queues; - na.num_rx_rings = adapter->num_queues; + na.num_tx_rings = na.num_rx_rings = adapter->num_queues; netmap_attach(&na); } From owner-svn-src-projects@FreeBSD.ORG Fri May 1 21:39:09 2015 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 82CF1703; Fri, 1 May 2015 21:39:09 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6DC95100D; Fri, 1 May 2015 21:39:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t41Ld9OS094610; Fri, 1 May 2015 21:39:09 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t41Ld6kc094594; Fri, 1 May 2015 21:39:06 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <201505012139.t41Ld6kc094594@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Fri, 1 May 2015 21:39:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282325 - in projects/em_mq: . bin/chflags bin/chmod cddl/contrib/opensolaris/lib/libnvpair cddl/lib/libdtrace contrib/gcclibs/libgomp contrib/gcclibs/libgomp/config/bsd contrib/gcclibs... X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 May 2015 21:39:09 -0000 Author: sbruno Date: Fri May 1 21:39:04 2015 New Revision: 282325 URL: https://svnweb.freebsd.org/changeset/base/282325 Log: MFH @282324 Added: projects/em_mq/contrib/gcclibs/libgomp/ChangeLog.gcc44 - copied unchanged from r282324, head/contrib/gcclibs/libgomp/ChangeLog.gcc44 projects/em_mq/contrib/gcclibs/libgomp/config/bsd/ - copied from r282324, head/contrib/gcclibs/libgomp/config/bsd/ projects/em_mq/contrib/gcclibs/libgomp/config/linux/affinity.c - copied unchanged from r282324, head/contrib/gcclibs/libgomp/config/linux/affinity.c projects/em_mq/contrib/gcclibs/libgomp/config/linux/proc.c - copied unchanged from r282324, head/contrib/gcclibs/libgomp/config/linux/proc.c projects/em_mq/contrib/gcclibs/libgomp/config/mingw32/proc.c - copied unchanged from r282324, head/contrib/gcclibs/libgomp/config/mingw32/proc.c projects/em_mq/contrib/gcclibs/libgomp/config/posix/affinity.c - copied unchanged from r282324, head/contrib/gcclibs/libgomp/config/posix/affinity.c projects/em_mq/lib/libc/stdlib/reallocarray.3 - copied unchanged from r282324, head/lib/libc/stdlib/reallocarray.3 projects/em_mq/lib/libc/stdlib/reallocarray.c - copied unchanged from r282324, head/lib/libc/stdlib/reallocarray.c projects/em_mq/share/dtrace/siftr - copied unchanged from r282324, head/share/dtrace/siftr projects/em_mq/sys/dev/ixgbe/ixgbe_x550.c - copied unchanged from r282324, head/sys/dev/ixgbe/ixgbe_x550.c projects/em_mq/sys/dev/ixgbe/ixgbe_x550.h - copied unchanged from r282324, head/sys/dev/ixgbe/ixgbe_x550.h projects/em_mq/sys/powerpc/aim/aim_machdep.c - copied unchanged from r282324, head/sys/powerpc/aim/aim_machdep.c projects/em_mq/sys/powerpc/booke/booke_machdep.c - copied unchanged from r282324, head/sys/powerpc/booke/booke_machdep.c projects/em_mq/sys/powerpc/powerpc/machdep.c - copied unchanged from r282324, head/sys/powerpc/powerpc/machdep.c projects/em_mq/sys/powerpc/powerpc/uma_machdep.c - copied unchanged from r282324, head/sys/powerpc/powerpc/uma_machdep.c projects/em_mq/tests/freebsd_test_suite/ - copied from r282324, head/tests/freebsd_test_suite/ projects/em_mq/tests/sys/vm/ - copied from r282324, head/tests/sys/vm/ projects/em_mq/usr.bin/cxxfilt/ - copied from r282324, head/usr.bin/cxxfilt/ projects/em_mq/usr.bin/soelim/ - copied from r282324, head/usr.bin/soelim/ Deleted: projects/em_mq/share/doc/papers/hwpmc/ projects/em_mq/sys/amd64/include/xen/xenpmap.h projects/em_mq/sys/i386/conf/XEN projects/em_mq/sys/i386/include/xen/features.h projects/em_mq/sys/i386/include/xen/xenpmap.h projects/em_mq/sys/i386/include/xen/xenstored.h projects/em_mq/sys/i386/xen/ projects/em_mq/sys/powerpc/aim/machdep.c projects/em_mq/sys/powerpc/aim/uma_machdep.c projects/em_mq/sys/powerpc/booke/machdep.c projects/em_mq/tests/sys/kern/mmap_test.c projects/em_mq/usr.bin/soeliminate/ Modified: projects/em_mq/.arcconfig projects/em_mq/Makefile projects/em_mq/Makefile.inc1 projects/em_mq/ObsoleteFiles.inc projects/em_mq/UPDATING projects/em_mq/bin/chflags/chflags.1 projects/em_mq/bin/chflags/chflags.c projects/em_mq/bin/chmod/chmod.1 projects/em_mq/bin/chmod/chmod.c projects/em_mq/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c projects/em_mq/cddl/lib/libdtrace/tcp.d projects/em_mq/contrib/gcclibs/libgomp/ChangeLog projects/em_mq/contrib/gcclibs/libgomp/Makefile.am projects/em_mq/contrib/gcclibs/libgomp/Makefile.in projects/em_mq/contrib/gcclibs/libgomp/aclocal.m4 projects/em_mq/contrib/gcclibs/libgomp/config.h.in projects/em_mq/contrib/gcclibs/libgomp/configure projects/em_mq/contrib/gcclibs/libgomp/configure.ac projects/em_mq/contrib/gcclibs/libgomp/configure.tgt projects/em_mq/contrib/gcclibs/libgomp/env.c projects/em_mq/contrib/gcclibs/libgomp/iter.c projects/em_mq/contrib/gcclibs/libgomp/libgomp.h projects/em_mq/contrib/gcclibs/libgomp/libgomp.texi projects/em_mq/contrib/gcclibs/libgomp/omp.h.in projects/em_mq/contrib/gcclibs/libgomp/omp_lib.h.in projects/em_mq/contrib/gcclibs/libgomp/team.c projects/em_mq/contrib/libxo/libxo/libxo.c projects/em_mq/contrib/mdocml/config.h projects/em_mq/etc/defaults/rc.conf projects/em_mq/etc/mtree/BSD.tests.dist projects/em_mq/etc/rc.d/devd projects/em_mq/etc/rc.d/hostid projects/em_mq/gnu/lib/libgomp/Makefile projects/em_mq/gnu/lib/libgomp/config.h projects/em_mq/gnu/usr.bin/cc/Makefile projects/em_mq/gnu/usr.bin/groff/src/preproc/Makefile projects/em_mq/include/stdlib.h projects/em_mq/lib/libc/stdlib/Makefile.inc projects/em_mq/lib/libc/stdlib/Symbol.map projects/em_mq/lib/libcapsicum/libcapsicum_dns.c projects/em_mq/lib/libcapsicum/libcapsicum_grp.c projects/em_mq/lib/libcapsicum/libcapsicum_pwd.c projects/em_mq/lib/libmandoc/Makefile projects/em_mq/lib/libnv/Makefile projects/em_mq/lib/libnv/nv.3 projects/em_mq/lib/libnv/tests/dnv_tests.cc projects/em_mq/lib/libnv/tests/nv_tests.cc projects/em_mq/lib/msun/tests/Makefile projects/em_mq/libexec/casper/dns/dns.c projects/em_mq/libexec/casper/grp/grp.c projects/em_mq/libexec/getty/subr.c projects/em_mq/libexec/rtld-elf/rtld.c projects/em_mq/release/Makefile.ec2 projects/em_mq/release/arm/BEAGLEBONE.conf projects/em_mq/release/arm/PANDABOARD.conf projects/em_mq/release/arm/RPI-B.conf projects/em_mq/release/arm/WANDBOARD-QUAD.conf projects/em_mq/release/arm/ZEDBOARD.conf projects/em_mq/release/arm64/make-memstick.sh projects/em_mq/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/em_mq/release/doc/share/xml/release.ent projects/em_mq/release/doc/share/xml/sponsor.ent projects/em_mq/release/tools/vmimage.subr projects/em_mq/share/doc/papers/Makefile projects/em_mq/share/doc/papers/bufbio/bio.ms projects/em_mq/share/doc/usd/06.bc/bc projects/em_mq/share/doc/usd/10.exref/exref/ex.rm (contents, props changed) projects/em_mq/share/doc/usd/18.msdiffs/ms.diffs projects/em_mq/share/doc/usd/22.trofftut/tt00 projects/em_mq/share/doc/usd/contents/contents.ms projects/em_mq/share/man/man4/xen.4 projects/em_mq/share/mk/src.opts.mk projects/em_mq/sys/amd64/amd64/apic_vector.S projects/em_mq/sys/amd64/conf/GENERIC projects/em_mq/sys/amd64/conf/NOTES projects/em_mq/sys/amd64/include/vmm.h (contents, props changed) projects/em_mq/sys/amd64/include/xen/xenfunc.h projects/em_mq/sys/amd64/include/xen/xenvar.h projects/em_mq/sys/amd64/vmm/amd/amdv.c projects/em_mq/sys/amd64/vmm/amd/svm_msr.c projects/em_mq/sys/amd64/vmm/amd/vmcb.c projects/em_mq/sys/amd64/vmm/intel/vmx_msr.c projects/em_mq/sys/amd64/vmm/io/vatpic.c projects/em_mq/sys/amd64/vmm/io/vatpit.c projects/em_mq/sys/amd64/vmm/io/vhpet.c projects/em_mq/sys/amd64/vmm/io/vioapic.c projects/em_mq/sys/amd64/vmm/io/vlapic.c projects/em_mq/sys/amd64/vmm/io/vpmtmr.c projects/em_mq/sys/amd64/vmm/io/vrtc.c projects/em_mq/sys/amd64/vmm/vmm.c projects/em_mq/sys/amd64/vmm/vmm_instruction_emul.c projects/em_mq/sys/amd64/vmm/vmm_ioport.c projects/em_mq/sys/amd64/vmm/vmm_stat.c projects/em_mq/sys/amd64/vmm/x86.c projects/em_mq/sys/arm/amlogic/aml8726/aml8726_mmc.c projects/em_mq/sys/arm/amlogic/aml8726/aml8726_mmc.h projects/em_mq/sys/arm/arm/busdma_machdep-v6.c projects/em_mq/sys/arm/arm/busdma_machdep.c projects/em_mq/sys/arm/arm/pmap-v6-new.c projects/em_mq/sys/arm64/arm64/bus_machdep.c projects/em_mq/sys/arm64/arm64/bus_space_asm.S projects/em_mq/sys/arm64/arm64/pmap.c projects/em_mq/sys/arm64/include/pmap.h projects/em_mq/sys/boot/forth/loader.conf projects/em_mq/sys/boot/sparc64/loader/main.c projects/em_mq/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c projects/em_mq/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c projects/em_mq/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c projects/em_mq/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c projects/em_mq/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c projects/em_mq/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c projects/em_mq/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c projects/em_mq/sys/conf/files projects/em_mq/sys/conf/files.amd64 projects/em_mq/sys/conf/files.i386 projects/em_mq/sys/conf/files.powerpc projects/em_mq/sys/conf/kern.mk projects/em_mq/sys/conf/kern.pre.mk projects/em_mq/sys/conf/options projects/em_mq/sys/conf/options.amd64 projects/em_mq/sys/conf/options.arm64 projects/em_mq/sys/conf/options.i386 projects/em_mq/sys/dev/acpica/acpi.c projects/em_mq/sys/dev/atkbdc/atkbd.c projects/em_mq/sys/dev/e1000/if_em.c projects/em_mq/sys/dev/e1000/if_igb.c projects/em_mq/sys/dev/hyperv/include/hyperv.h projects/em_mq/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c projects/em_mq/sys/dev/hyperv/storvsc/hv_vstorage.h projects/em_mq/sys/dev/hyperv/utilities/hv_kvp.c projects/em_mq/sys/dev/hyperv/utilities/hv_util.c projects/em_mq/sys/dev/hyperv/vmbus/hv_channel.c projects/em_mq/sys/dev/hyperv/vmbus/hv_channel_mgmt.c (contents, props changed) projects/em_mq/sys/dev/hyperv/vmbus/hv_connection.c (contents, props changed) projects/em_mq/sys/dev/hyperv/vmbus/hv_hv.c projects/em_mq/sys/dev/hyperv/vmbus/hv_ring_buffer.c (contents, props changed) projects/em_mq/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c projects/em_mq/sys/dev/hyperv/vmbus/hv_vmbus_priv.h projects/em_mq/sys/dev/ixgbe/if_ix.c projects/em_mq/sys/dev/ixgbe/if_ixv.c projects/em_mq/sys/dev/ixgbe/ix_txrx.c projects/em_mq/sys/dev/ixgbe/ixgbe.h projects/em_mq/sys/dev/ixgbe/ixgbe_82598.c projects/em_mq/sys/dev/ixgbe/ixgbe_82598.h projects/em_mq/sys/dev/ixgbe/ixgbe_82599.c projects/em_mq/sys/dev/ixgbe/ixgbe_82599.h projects/em_mq/sys/dev/ixgbe/ixgbe_api.c projects/em_mq/sys/dev/ixgbe/ixgbe_api.h projects/em_mq/sys/dev/ixgbe/ixgbe_common.c projects/em_mq/sys/dev/ixgbe/ixgbe_common.h projects/em_mq/sys/dev/ixgbe/ixgbe_dcb.c projects/em_mq/sys/dev/ixgbe/ixgbe_dcb.h projects/em_mq/sys/dev/ixgbe/ixgbe_dcb_82598.c projects/em_mq/sys/dev/ixgbe/ixgbe_dcb_82598.h projects/em_mq/sys/dev/ixgbe/ixgbe_dcb_82599.c projects/em_mq/sys/dev/ixgbe/ixgbe_dcb_82599.h projects/em_mq/sys/dev/ixgbe/ixgbe_mbx.c projects/em_mq/sys/dev/ixgbe/ixgbe_mbx.h projects/em_mq/sys/dev/ixgbe/ixgbe_osdep.h projects/em_mq/sys/dev/ixgbe/ixgbe_phy.c projects/em_mq/sys/dev/ixgbe/ixgbe_phy.h projects/em_mq/sys/dev/ixgbe/ixgbe_type.h projects/em_mq/sys/dev/ixgbe/ixgbe_vf.c projects/em_mq/sys/dev/ixgbe/ixgbe_vf.h projects/em_mq/sys/dev/ixgbe/ixgbe_x540.c projects/em_mq/sys/dev/ixgbe/ixgbe_x540.h projects/em_mq/sys/dev/ixl/ixl.h projects/em_mq/sys/dev/usb/usbdevs projects/em_mq/sys/dev/usb/wlan/if_urtwn.c projects/em_mq/sys/dev/virtio/network/if_vtnet.c projects/em_mq/sys/dev/vt/hw/fb/vt_fb.c projects/em_mq/sys/dev/vt/hw/vga/vt_vga.c projects/em_mq/sys/dev/xen/balloon/balloon.c projects/em_mq/sys/dev/xen/blkback/blkback.c projects/em_mq/sys/dev/xen/control/control.c projects/em_mq/sys/dev/xen/grant_table/grant_table.c projects/em_mq/sys/dev/xen/netback/netback.c projects/em_mq/sys/dev/xen/netfront/netfront.c projects/em_mq/sys/i386/conf/DEFAULTS projects/em_mq/sys/i386/conf/GENERIC projects/em_mq/sys/i386/i386/apic_vector.s projects/em_mq/sys/i386/i386/genassym.c projects/em_mq/sys/i386/i386/machdep.c projects/em_mq/sys/i386/i386/minidump_machdep.c projects/em_mq/sys/i386/i386/support.s projects/em_mq/sys/i386/i386/swtch.s projects/em_mq/sys/i386/i386/sys_machdep.c projects/em_mq/sys/i386/i386/vm_machdep.c projects/em_mq/sys/i386/include/asmacros.h projects/em_mq/sys/i386/include/cpufunc.h projects/em_mq/sys/i386/include/intr_machdep.h projects/em_mq/sys/i386/include/pcpu.h projects/em_mq/sys/i386/include/pmap.h projects/em_mq/sys/i386/include/segments.h projects/em_mq/sys/i386/include/smp.h projects/em_mq/sys/i386/include/vmparam.h projects/em_mq/sys/i386/include/xen/hypercall.h projects/em_mq/sys/i386/include/xen/xen-os.h projects/em_mq/sys/i386/include/xen/xenfunc.h projects/em_mq/sys/i386/include/xen/xenvar.h projects/em_mq/sys/i386/isa/npx.c projects/em_mq/sys/i386/pci/pci_cfgreg.c projects/em_mq/sys/i386/pci/pci_pir.c projects/em_mq/sys/kern/imgact_elf.c projects/em_mq/sys/kern/kern_descrip.c projects/em_mq/sys/kern/kern_exit.c projects/em_mq/sys/kern/kern_intr.c projects/em_mq/sys/kern/kern_jail.c projects/em_mq/sys/kern/kern_racct.c projects/em_mq/sys/kern/kern_rctl.c projects/em_mq/sys/kern/kern_synch.c projects/em_mq/sys/kern/kern_thr.c projects/em_mq/sys/kern/sched_4bsd.c projects/em_mq/sys/kern/subr_dnvlist.c projects/em_mq/sys/kern/subr_nvlist.c projects/em_mq/sys/kern/subr_nvpair.c projects/em_mq/sys/kern/subr_param.c projects/em_mq/sys/kern/subr_trap.c projects/em_mq/sys/kern/sysv_msg.c projects/em_mq/sys/kern/sysv_sem.c projects/em_mq/sys/kern/sysv_shm.c projects/em_mq/sys/mips/mips/busdma_machdep.c projects/em_mq/sys/modules/ix/Makefile projects/em_mq/sys/modules/ixv/Makefile projects/em_mq/sys/netinet/in_kdtrace.c projects/em_mq/sys/netinet/in_kdtrace.h projects/em_mq/sys/netinet/siftr.c projects/em_mq/sys/netinet/tcp_timewait.c projects/em_mq/sys/netipsec/ipsec_input.c projects/em_mq/sys/netipsec/ipsec_output.c projects/em_mq/sys/netpfil/ipfw/ip_fw_sockopt.c projects/em_mq/sys/netpfil/ipfw/ip_fw_table.c projects/em_mq/sys/powerpc/aim/mmu_oea64.c projects/em_mq/sys/powerpc/booke/pmap.c projects/em_mq/sys/powerpc/conf/GENERIC projects/em_mq/sys/powerpc/ofw/ofw_machdep.c projects/em_mq/sys/powerpc/powerpc/busdma_machdep.c projects/em_mq/sys/sys/nv.h projects/em_mq/sys/sys/nv_impl.h projects/em_mq/sys/sys/nvlist_impl.h projects/em_mq/sys/sys/param.h projects/em_mq/sys/sys/racct.h projects/em_mq/sys/sys/seq.h projects/em_mq/sys/vm/swap_pager.c projects/em_mq/sys/vm/vm_fault.c projects/em_mq/sys/vm/vm_map.c projects/em_mq/sys/vm/vm_mmap.c projects/em_mq/sys/vm/vm_page.c projects/em_mq/sys/vm/vm_pageout.c projects/em_mq/sys/vm/vm_unix.c projects/em_mq/sys/x86/include/apicvar.h projects/em_mq/sys/x86/include/segments.h projects/em_mq/sys/x86/x86/busdma_bounce.c projects/em_mq/sys/x86/x86/cpu_machdep.c projects/em_mq/sys/x86/x86/identcpu.c projects/em_mq/sys/x86/x86/intr_machdep.c projects/em_mq/sys/x86/x86/local_apic.c projects/em_mq/sys/x86/xen/xen_intr.c projects/em_mq/sys/x86/xen/xen_nexus.c projects/em_mq/tests/sys/Makefile projects/em_mq/tests/sys/aio/Makefile projects/em_mq/tests/sys/aio/aio_kqueue_test.c projects/em_mq/tests/sys/aio/aio_test.c projects/em_mq/tests/sys/aio/lio_kqueue_test.c projects/em_mq/tests/sys/kern/Makefile projects/em_mq/tests/sys/mqueue/Makefile projects/em_mq/tests/sys/mqueue/mqtest1.c projects/em_mq/tests/sys/mqueue/mqtest2.c projects/em_mq/tests/sys/mqueue/mqtest3.c projects/em_mq/tests/sys/mqueue/mqtest4.c projects/em_mq/tests/sys/mqueue/mqtest5.c projects/em_mq/tests/sys/mqueue/mqueue_test.sh projects/em_mq/tools/build/check-links.sh projects/em_mq/tools/build/mk/OptionalObsoleteFiles.inc projects/em_mq/usr.bin/Makefile projects/em_mq/usr.bin/col/col.c projects/em_mq/usr.bin/m4/misc.c projects/em_mq/usr.bin/rctl/rctl.c projects/em_mq/usr.sbin/bhyve/acpi.c projects/em_mq/usr.sbin/chown/chgrp.1 projects/em_mq/usr.sbin/chown/chown.8 projects/em_mq/usr.sbin/chown/chown.c projects/em_mq/usr.sbin/crunch/crunchide/exec_elf32.c projects/em_mq/usr.sbin/mountd/mountd.8 projects/em_mq/usr.sbin/mountd/mountd.c projects/em_mq/usr.sbin/nfsd/nfsd.8 projects/em_mq/usr.sbin/nfsd/nfsd.c Directory Properties: projects/em_mq/ (props changed) projects/em_mq/cddl/ (props changed) projects/em_mq/cddl/contrib/opensolaris/ (props changed) projects/em_mq/contrib/gcclibs/libgomp/ (props changed) projects/em_mq/contrib/mdocml/ (props changed) projects/em_mq/etc/ (props changed) projects/em_mq/gnu/lib/ (props changed) projects/em_mq/include/ (props changed) projects/em_mq/lib/libc/ (props changed) projects/em_mq/share/ (props changed) projects/em_mq/share/man/man4/ (props changed) projects/em_mq/sys/ (props changed) projects/em_mq/sys/amd64/include/xen/ (props changed) projects/em_mq/sys/amd64/vmm/ (props changed) projects/em_mq/sys/boot/ (props changed) projects/em_mq/sys/cddl/contrib/opensolaris/ (props changed) projects/em_mq/sys/conf/ (props changed) projects/em_mq/sys/dev/hyperv/ (props changed) projects/em_mq/usr.sbin/bhyve/ (props changed) Modified: projects/em_mq/.arcconfig ============================================================================== --- projects/em_mq/.arcconfig Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/.arcconfig Fri May 1 21:39:04 2015 (r282325) @@ -1,4 +1,5 @@ { "project.name": "S", - "phabricator.uri" : "https://reviews.freebsd.org/" + "phabricator.uri" : "https://reviews.freebsd.org/", + "history.immutable" : true } Modified: projects/em_mq/Makefile ============================================================================== --- projects/em_mq/Makefile Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/Makefile Fri May 1 21:39:04 2015 (r282325) @@ -373,19 +373,19 @@ kernel-toolchains: # existing system is. # .if make(universe) || make(universe_kernels) || make(tinderbox) || make(targets) -TARGETS?=amd64 arm i386 mips pc98 powerpc sparc64 # XXX Add arm64 to universe only if we have an external binutils installed. -# It does not build with the in-tree linnker. +# It does not build with the in-tree linker. .if exists(/usr/local/aarch64-freebsd/bin/ld) -TARGETS+=arm64 -TARGET_ARCHES_arm64?= aarch64 -.else +UNIVERSE_arm64=arm64 +.elif empty(${TARGETS}) universe: universe_arm64_skip universe_epilogue: universe_arm64_skip universe_arm64_skip: universe_prologue @echo ">> arm64 skipped - install aarch64-binutils port or package to build" .endif +TARGETS?=amd64 arm ${UNIVERSE_arm64} i386 mips pc98 powerpc sparc64 TARGET_ARCHES_arm?= arm armeb armv6 armv6hf +TARGET_ARCHES_arm64?= aarch64 TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32 TARGET_ARCHES_powerpc?= powerpc powerpc64 TARGET_ARCHES_pc98?= i386 Modified: projects/em_mq/Makefile.inc1 ============================================================================== --- projects/em_mq/Makefile.inc1 Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/Makefile.inc1 Fri May 1 21:39:04 2015 (r282325) @@ -1263,7 +1263,8 @@ _gperf= gnu/usr.bin/gperf .endif .if ${MK_GROFF} != "no" -_groff= gnu/usr.bin/groff +_groff= gnu/usr.bin/groff \ + usr.bin/soelim .endif .if ${MK_VT} != "no" @@ -1522,7 +1523,8 @@ cross-tools: .MAKE NXBENV= MAKEOBJDIRPREFIX=${OBJTREE}/nxb \ INSTALL="sh ${.CURDIR}/tools/install.sh" \ - VERSION="${VERSION}" + VERSION="${VERSION}" \ + PATH=${PATH}:${OBJTREE}/gperf_for_gcc/usr/bin NXBMAKE= ${NXBENV} ${MAKE} \ TBLGEN=${OBJTREE}/nxb-bin/usr/bin/tblgen \ CLANG_TBLGEN=${OBJTREE}/nxb-bin/usr/bin/clang-tblgen \ @@ -1535,7 +1537,21 @@ NXBMAKE= ${NXBENV} ${MAKE} \ MK_CLANG_EXTRAS=no MK_CLANG_FULL=no \ MK_LLDB=no +# native-xtools is the current target for qemu-user cross builds of ports +# via poudriere and the imgact_binmisc kernel module. +# For non-clang enabled targets that are still using the in tree gcc +# we must build a gperf binary for one instance of its Makefiles. On +# clang-enabled systems, the gperf binary is obsolete. native-xtools: .MAKE +.if ${MK_GCC_BOOTSTRAP} != "no" + mkdir -p ${OBJTREE}/gperf_for_gcc/usr/bin + ${_+_}@${ECHODIR} "===> ${_gperf} (obj,depend,all,install)"; \ + cd ${.CURDIR}/${_gperf} && \ + ${NXBMAKE} DIRPRFX=${_gperf}/ obj && \ + ${NXBMAKE} DIRPRFX=${_gperf}/ depend && \ + ${NXBMAKE} DIRPRFX=${_gperf}/ all && \ + ${NXBMAKE} DIRPRFX=${_gperf}/ DESTDIR=${OBJTREE}/gperf_for_gcc install +.endif mkdir -p ${OBJTREE}/nxb-bin/bin mkdir -p ${OBJTREE}/nxb-bin/sbin mkdir -p ${OBJTREE}/nxb-bin/usr Modified: projects/em_mq/ObsoleteFiles.inc ============================================================================== --- projects/em_mq/ObsoleteFiles.inc Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/ObsoleteFiles.inc Fri May 1 21:39:04 2015 (r282325) @@ -38,6 +38,72 @@ # xargs -n1 | sort | uniq -d; # done +# 20150501 +OLD_FILES+=usr/bin/soeliminate +OLD_FILES+=usr/share/man/man1/soeliminate.1.gz +# 20150501: Remove the nvlist_.*[vf] functions manpages. +OLD_FILES+=usr/share/man/man3/nvlist_addf_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addf_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_addv_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsf_type.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_existsv_type.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freef_type.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_null.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_freev_type.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getf_string.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_binary.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_bool.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_descriptor.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_number.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_nvlist.3.gz +OLD_FILES+=usr/share/man/man3/nvlist_getv_string.3.gz +# 20150429: +OLD_FILES+=usr/share/docs/papers/hwpmc.ascii.gz +# 20150427: test/sys/kern/mmap_test moved to test/sys/vm/mmap_test +OLD_FILES+=usr/tests/sys/kern/mmap_test # 20150418 OLD_FILES+=sbin/mount_oldnfs OLD_FILES+=usr/share/man/man8/mount_oldnfs.8.gz @@ -341,6 +407,10 @@ OLD_FILES+=usr/lib/debug/usr/lib32/i18n OLD_FILES+=usr/lib/debug/usr/lib32/private # 20141015: OpenSSL 1.0.1j import OLD_FILES+=usr/share/openssl/man/man3/CMS_sign_add1_signer.3.gz +.if ${MK_GCC} == "no" +# 20141009: gperf disabled by default +OLD_FILES+=usr/bin/gperf +.endif # 20140922: sleepq_calc_signal_retval.9 and sleepq_catch_signals.9 removed OLD_FILES+=usr/share/man/man9/sleepq_calc_signal_retval.9.gz OLD_FILES+=usr/share/man/man9/sleepq_catch_signals.9.gz Modified: projects/em_mq/UPDATING ============================================================================== --- projects/em_mq/UPDATING Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/UPDATING Fri May 1 21:39:04 2015 (r282325) @@ -31,6 +31,15 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20150501: + soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. + If you need the GNU extension from groff soelim(1), install groff + from package: pkg install groff, or via ports: textproc/groff. + +20150423: + chmod, chflags, chown and chgrp now affect symlinks in -R mode as + defined in symlink(7); previously symlinks were silently ignored. + 20150415: The const qualifier has been removed from iconv(3) to comply with POSIX. The ports tree is aware of this from r384038 onwards. Modified: projects/em_mq/bin/chflags/chflags.1 ============================================================================== --- projects/em_mq/bin/chflags/chflags.1 Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/bin/chflags/chflags.1 Fri May 1 21:39:04 2015 (r282325) @@ -32,7 +32,7 @@ .\" @(#)chflags.1 8.4 (Berkeley) 5/2/95 .\" $FreeBSD$ .\" -.Dd April 8, 2013 +.Dd April 20, 2015 .Dt CHFLAGS 1 .Os .Sh NAME @@ -66,8 +66,9 @@ nor modify the exit status to reflect su .It Fl H If the .Fl R -option is specified, symbolic links on the command line are followed. -(Symbolic links encountered in the tree traversal are not followed.) +option is specified, symbolic links on the command line are followed +and hence unaffected by the command. +(Symbolic links encountered during traversal are not followed.) .It Fl h If the .Ar file @@ -83,8 +84,12 @@ If the option is specified, no symbolic links are followed. This is the default. .It Fl R -Change the file flags for the file hierarchies rooted -in the files instead of just the files themselves. +Change the file flags of the file hierarchies rooted in the files, +instead of just the files themselves. +Beware of unintentionally matching the +.Dq Pa ".." +hard link to the parent directory when using wildcards like +.Dq Li ".*" . .It Fl v Cause .Nm Modified: projects/em_mq/bin/chflags/chflags.c ============================================================================== --- projects/em_mq/bin/chflags/chflags.c Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/bin/chflags/chflags.c Fri May 1 21:39:04 2015 (r282325) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -65,7 +66,6 @@ main(int argc, char *argv[]) int Hflag, Lflag, Rflag, fflag, hflag, vflag; int ch, fts_options, oct, rval; char *flags, *ep; - int (*change_flags)(const char *, unsigned long); Hflag = Lflag = Rflag = fflag = hflag = vflag = 0; while ((ch = getopt(argc, argv, "HLPRfhv")) != -1) @@ -104,20 +104,23 @@ main(int argc, char *argv[]) usage(); if (Rflag) { - fts_options = FTS_PHYSICAL; if (hflag) - errx(1, "the -R and -h options " - "may not be specified together"); - if (Hflag) - fts_options |= FTS_COMFOLLOW; + errx(1, "the -R and -h options may not be " + "specified together."); if (Lflag) { - fts_options &= ~FTS_PHYSICAL; - fts_options |= FTS_LOGICAL; + fts_options = FTS_LOGICAL; + } else { + fts_options = FTS_PHYSICAL; + + if (Hflag) { + fts_options |= FTS_COMFOLLOW; + } } - } else - fts_options = hflag ? FTS_PHYSICAL : FTS_LOGICAL; - - change_flags = hflag ? lchflags : chflags; + } else if (hflag) { + fts_options = FTS_PHYSICAL; + } else { + fts_options = FTS_LOGICAL; + } flags = *argv; if (*flags >= '0' && *flags <= '7') { @@ -142,12 +145,21 @@ main(int argc, char *argv[]) err(1, NULL); for (rval = 0; (p = fts_read(ftsp)) != NULL;) { + int atflag; + + if ((fts_options & FTS_LOGICAL) || + ((fts_options & FTS_COMFOLLOW) && + p->fts_level == FTS_ROOTLEVEL)) + atflag = 0; + else + atflag = AT_SYMLINK_NOFOLLOW; + switch (p->fts_info) { case FTS_D: /* Change it at FTS_DP if we're recursive. */ if (!Rflag) fts_set(ftsp, p, FTS_SKIP); continue; - case FTS_DNR: /* Warn, chflag, continue. */ + case FTS_DNR: /* Warn, chflags. */ warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); rval = 1; break; @@ -156,16 +168,6 @@ main(int argc, char *argv[]) warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); rval = 1; continue; - case FTS_SL: /* Ignore. */ - case FTS_SLNONE: - /* - * The only symlinks that end up here are ones that - * don't point to anything and ones that we found - * doing a physical walk. - */ - if (!hflag) - continue; - /* FALLTHROUGH */ default: break; } @@ -175,7 +177,8 @@ main(int argc, char *argv[]) newflags = (p->fts_statp->st_flags | set) & clear; if (newflags == p->fts_statp->st_flags) continue; - if ((*change_flags)(p->fts_accpath, newflags) && !fflag) { + if (chflagsat(AT_FDCWD, p->fts_accpath, newflags, + atflag) == -1 && !fflag) { warn("%s", p->fts_path); rval = 1; } else if (vflag) { Modified: projects/em_mq/bin/chmod/chmod.1 ============================================================================== --- projects/em_mq/bin/chmod/chmod.1 Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/bin/chmod/chmod.1 Fri May 1 21:39:04 2015 (r282325) @@ -32,7 +32,7 @@ .\" @(#)chmod.1 8.4 (Berkeley) 3/31/94 .\" $FreeBSD$ .\" -.Dd January 26, 2009 +.Dd April 20, 2015 .Dt CHMOD 1 .Os .Sh NAME @@ -63,9 +63,9 @@ nor modify the exit status to reflect su .It Fl H If the .Fl R -option is specified, symbolic links on the command line are followed. -(Symbolic links encountered in the tree traversal are not followed by -default.) +option is specified, symbolic links on the command line are followed +and hence unaffected by the command. +(Symbolic links encountered during tree traversal are not followed.) .It Fl h If the file is a symbolic link, change the mode of the link itself rather than the file that the link points to. @@ -79,8 +79,12 @@ If the option is specified, no symbolic links are followed. This is the default. .It Fl R -Change the modes of the file hierarchies rooted in the files +Change the modes of the file hierarchies rooted in the files, instead of just the files themselves. +Beware of unintentionally matching the +.Dq Pa ".." +hard link to the parent directory when using wildcards like +.Dq Li ".*" . .It Fl v Cause .Nm Modified: projects/em_mq/bin/chmod/chmod.c ============================================================================== --- projects/em_mq/bin/chmod/chmod.c Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/bin/chmod/chmod.c Fri May 1 21:39:04 2015 (r282325) @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -62,7 +63,7 @@ main(int argc, char *argv[]) FTS *ftsp; FTSENT *p; mode_t *set; - int Hflag, Lflag, Rflag, ch, error, fflag, fts_options, hflag, rval; + int Hflag, Lflag, Rflag, ch, fflag, fts_options, hflag, rval; int vflag; char *mode; mode_t newmode; @@ -126,18 +127,23 @@ done: argv += optind; usage(); if (Rflag) { - fts_options = FTS_PHYSICAL; if (hflag) - errx(1, - "the -R and -h options may not be specified together."); - if (Hflag) - fts_options |= FTS_COMFOLLOW; + errx(1, "the -R and -h options may not be " + "specified together."); if (Lflag) { - fts_options &= ~FTS_PHYSICAL; - fts_options |= FTS_LOGICAL; + fts_options = FTS_LOGICAL; + } else { + fts_options = FTS_PHYSICAL; + + if (Hflag) { + fts_options |= FTS_COMFOLLOW; + } } - } else - fts_options = hflag ? FTS_PHYSICAL : FTS_LOGICAL; + } else if (hflag) { + fts_options = FTS_PHYSICAL; + } else { + fts_options = FTS_LOGICAL; + } mode = *argv; if ((set = setmode(mode)) == NULL) @@ -146,12 +152,21 @@ done: argv += optind; if ((ftsp = fts_open(++argv, fts_options, 0)) == NULL) err(1, "fts_open"); for (rval = 0; (p = fts_read(ftsp)) != NULL;) { + int atflag; + + if ((fts_options & FTS_LOGICAL) || + ((fts_options & FTS_COMFOLLOW) && + p->fts_level == FTS_ROOTLEVEL)) + atflag = 0; + else + atflag = AT_SYMLINK_NOFOLLOW; + switch (p->fts_info) { case FTS_D: /* Change it at FTS_DP. */ if (!Rflag) fts_set(ftsp, p, FTS_SKIP); continue; - case FTS_DNR: /* Warn, chmod, continue. */ + case FTS_DNR: /* Warn, chmod. */ warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); rval = 1; break; @@ -160,16 +175,6 @@ done: argv += optind; warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); rval = 1; continue; - case FTS_SL: /* Ignore. */ - case FTS_SLNONE: - /* - * The only symlinks that end up here are ones that - * don't point to anything and ones that we found - * doing a physical walk. - */ - if (!hflag) - continue; - /* FALLTHROUGH */ default: break; } @@ -182,32 +187,25 @@ done: argv += optind; if (may_have_nfs4acl(p, hflag) == 0 && (newmode & ALLPERMS) == (p->fts_statp->st_mode & ALLPERMS)) continue; - if (hflag) - error = lchmod(p->fts_accpath, newmode); - else - error = chmod(p->fts_accpath, newmode); - if (error) { - if (!fflag) { - warn("%s", p->fts_path); - rval = 1; - } - } else { - if (vflag) { - (void)printf("%s", p->fts_path); + if (fchmodat(AT_FDCWD, p->fts_accpath, newmode, atflag) == -1 + && !fflag) { + warn("%s", p->fts_path); + rval = 1; + } else if (vflag) { + (void)printf("%s", p->fts_path); - if (vflag > 1) { - char m1[12], m2[12]; + if (vflag > 1) { + char m1[12], m2[12]; - strmode(p->fts_statp->st_mode, m1); - strmode((p->fts_statp->st_mode & - S_IFMT) | newmode, m2); - (void)printf(": 0%o [%s] -> 0%o [%s]", - p->fts_statp->st_mode, m1, - (p->fts_statp->st_mode & S_IFMT) | - newmode, m2); - } - (void)printf("\n"); + strmode(p->fts_statp->st_mode, m1); + strmode((p->fts_statp->st_mode & + S_IFMT) | newmode, m2); + (void)printf(": 0%o [%s] -> 0%o [%s]", + p->fts_statp->st_mode, m1, + (p->fts_statp->st_mode & S_IFMT) | + newmode, m2); } + (void)printf("\n"); } } if (errno) Modified: projects/em_mq/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c ============================================================================== --- projects/em_mq/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/cddl/contrib/opensolaris/lib/libnvpair/libnvpair.c Fri May 1 21:39:04 2015 (r282325) @@ -793,6 +793,7 @@ dump_nvlist(nvlist_t *list, int indent) { nvpair_t *elem = NULL; boolean_t bool_value; + boolean_t *bool_array_value; nvlist_t *nvlist_value; nvlist_t **nvlist_array_value; uint_t i, count; @@ -853,6 +854,16 @@ dump_nvlist(nvlist_t *list, int indent) NVP(elem, string, char *, char *, "'%s'"); break; + case DATA_TYPE_BOOLEAN_ARRAY: + (void) nvpair_value_boolean_array(elem, + &bool_array_value, &count); + for (i = 0; i < count; i++) { + (void) printf("%*s%s[%d]: %s\n", indent, "", + nvpair_name(elem), i, + bool_array_value[i] ? "true" : "false"); + } + break; + case DATA_TYPE_BYTE_ARRAY: NVPA(elem, byte_array, uchar_t, int, "%u"); break; Modified: projects/em_mq/cddl/lib/libdtrace/tcp.d ============================================================================== --- projects/em_mq/cddl/lib/libdtrace/tcp.d Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/cddl/lib/libdtrace/tcp.d Fri May 1 21:39:04 2015 (r282325) @@ -241,3 +241,78 @@ translator tcpinfoh_t < struct tcphdr *p translator tcplsinfo_t < int s > { tcps_state = s; }; + +/* + * Convert a SIFTR direction value to a string + */ +#pragma D binding "1.12.1" SIFTR_IN +inline int SIFTR_IN = 1; +#pragma D binding "1.12.1" SIFTR_OUT +inline int SIFTR_OUT = 2; + +/* SIFTR direction strings. */ +#pragma D binding "1.12.1" siftr_dir_string +inline string siftr_dir_string[uint8_t direction] = + direction == SIFTR_IN ? "in" : + direction == SIFTR_OUT ? "out" : + "unknown" ; + +typedef struct siftrinfo { + struct timeval tval; + uint8_t direction; + uint8_t ipver; + uint32_t hash; + uint16_t tcp_localport; + uint16_t tcp_foreignport; + uint64_t snd_cwnd; + u_long snd_wnd; + u_long rcv_wnd; + u_long snd_bwnd; + u_long snd_ssthresh; + int conn_state; + u_int max_seg_size; + int smoothed_rtt; + u_char sack_enabled; + u_char snd_scale; + u_char rcv_scale; + u_int flags; + int rxt_length; + u_int snd_buf_hiwater; + u_int snd_buf_cc; + u_int rcv_buf_hiwater; + u_int rcv_buf_cc; + u_int sent_inflight_bytes; + int t_segqlen; + u_int flowid; + u_int flowtype; +} siftrinfo_t; + +#pragma D binding "1.12.1" translator +translator siftrinfo_t < struct pkt_node *p > { + direction = p == NULL ? 0 : p->direction; + ipver = p == NULL ? 0 : p->ipver; + hash = p == NULL ? 0 : p->hash; + tcp_localport = p == NULL ? 0 : ntohs(p->tcp_localport); + tcp_foreignport = p == NULL ? 0 : ntohs(p->tcp_foreignport); + snd_cwnd = p == NULL ? 0 : p->snd_cwnd; + snd_wnd = p == NULL ? 0 : p->snd_wnd; + rcv_wnd = p == NULL ? 0 : p->rcv_wnd; + snd_bwnd = p == NULL ? 0 : p->snd_bwnd; + snd_ssthresh = p == NULL ? 0 : p->snd_ssthresh; + conn_state = p == NULL ? 0 : p->conn_state; + max_seg_size = p == NULL ? 0 : p->max_seg_size; + smoothed_rtt = p == NULL ? 0 : p->smoothed_rtt; + sack_enabled = p == NULL ? 0 : p->sack_enabled; + snd_scale = p == NULL ? 0 : p->snd_scale; + rcv_scale = p == NULL ? 0 : p->rcv_scale; + flags = p == NULL ? 0 : p->flags; + rxt_length = p == NULL ? 0 : p->rxt_length; + snd_buf_hiwater = p == NULL ? 0 : p->snd_buf_hiwater; + snd_buf_cc = p == NULL ? 0 : p->snd_buf_cc; + rcv_buf_hiwater = p == NULL ? 0 : p->rcv_buf_hiwater; + rcv_buf_cc = p == NULL ? 0 : p->rcv_buf_cc; + sent_inflight_bytes = p == NULL ? 0 : p->sent_inflight_bytes; + t_segqlen = p == NULL ? 0 : p->t_segqlen; + flowid = p == NULL ? 0 : p->flowid; + flowtype = p == NULL ? 0 : p->flowtype; +}; Modified: projects/em_mq/contrib/gcclibs/libgomp/ChangeLog ============================================================================== --- projects/em_mq/contrib/gcclibs/libgomp/ChangeLog Fri May 1 21:37:36 2015 (r282324) +++ projects/em_mq/contrib/gcclibs/libgomp/ChangeLog Fri May 1 21:39:04 2015 (r282325) @@ -1,6 +1,223 @@ -2007-07-19 Release Manager +2010-05-22 Release Manager - * GCC 4.2.1 released. + * GCC 4.3.5 released. + +2010-05-06 Ralf Wildenhues + + PR other/43620 + * configure.ac (AM_INIT_AUTOMAKE): Add no-dist. + * configure: Regenerate. + * aclocal.m4: Regenerate. + * config.h.in: Regenerate. + * Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + +2009-08-19 Tobias Burnus + + PR fortran/41102 + omp_lib.h.in: Fix -std=f95 errors. + +2009-08-14 Uros Bizjak + + Backport from mainline: + 2008-12-26 Uros Bizjak + + * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets. + +2009-08-04 Release Manager + + * GCC 4.3.4 released. + +2009-01-24 Release Manager + + * GCC 4.3.3 released. + +2008-12-05 Janis Johnson + + Backport from mainline: + 2008-05-15 Janis Johnson + + * testsuite/lib/libgomp.exp: Load new torture support. + +2008-12-02 Janis Johnson + + Backport from mainline: + 2008-11-26 Janis Johnson + + PR testsuite/28870 + * testsuite/lib/libgomp.exp: Include new timeout library files. + (libgomp_target_compile): Set timeout value from new proc. + +2008-08-27 Release Manager + + * GCC 4.3.2 released. + +2008-06-12 Jakub Jelinek + + PR middle-end/36506 + * testsuite/libgomp.c/reduction-5.c: New test. + +2008-06-06 Release Manager + + * GCC 4.3.1 released. + +2008-05-23 Jakub Jelinek + + PR c++/36308 + * testsuite/libgomp.c++/ctor-11.C: New test. + * testsuite/libgomp.c++/ctor-12.C: New test. + +2008-05-07 Jakub Jelinek + + PR middle-end/36106 + * testsuite/libgomp.c/atomic-5.c: New test. + * testsuite/libgomp.c/atomic-6.c: New test. + * testsuite/libgomp.c/autopar-1.c: New test. + +2008-03-18 Jakub Jelinek + + PR middle-end/35611 + * testsuite/libgomp.c/atomic-4.c: New test. + + PR libgomp/35625 + * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end. + (gomp_iter_guided_next): Likewise. + * testsuite/libgomp.c/pr35625.c: New test. + +2008-03-13 Jakub Jelinek + + PR middle-end/35185 + * testsuite/libgomp.c++/pr35185.C: New test. + +2008-03-12 Jakub Jelinek + + PR middle-end/35549 + * testsuite/libgomp.c/pr35549.c: New test. + +2008-03-06 Jakub Jelinek + + * testsuite/libgomp.c/atomic-3.c: New test. + +2008-03-05 Release Manager + + * GCC 4.3.0 released. + +2008-02-15 Jakub Jelinek + + PR middle-end/35196 + * testsuite/libgomp.c/pr35196.c: New test. + + PR middle-end/35130 + * testsuite/libgomp.fortran/pr35130.f90: New test. + * testsuite/libgomp.c/pr35130.c: New test. + +2008-01-25 Jakub Jelinek + + PR middle-end/33880 + * testsuite/libgomp.c/pr33880.c: New test. + * testsuite/libgomp.fortran/pr33880.f90: New test. + +2008-01-24 David Edelsohn + + * configure: Regenerate. + +2008-01-08 Jakub Jelinek + + * configure.ac: Move futex checking into ../config/futex.m4. + * configure: Rebuilt. + * aclocal.m4: Rebuilt. + * Makefile.in: Rebuilt. + + * configure.tgt: Rename have_tls to gcc_cv_have_tls to match + 2007-10-15 ../config/tls.m4 change. + +2007-12-19 Jakub Jelinek + + PR c++/34513 + * testsuite/libgomp.c/pr34513.c: New test. + * testsuite/libgomp.c++/pr34513.C: New test. + +2007-12-17 Jack Howarth + + PR target/32765 + * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin. + +2007-12-04 Jakub Jelinek + + * omp.h.in (__GOMP_NOTHROW): Define. Use it on omp_* prototypes. + +2007-12-03 Jakub Jelinek + + * testsuite/libgomp.c/private-1.c: New test. + +2007-11-29 Andris Pavenis + Paolo Bonzini + + * Makefile.am: Use space as vpath separator. Use 'vpath %' + instead of 'VPATH ='. + * Makefile.in: Regenerate. + +2007-11-23 Matthias Klose + + * configure.ac: Adjust makeinfo version check. + * configure: Regenerate. + +2007-11-10 Jakub Jelinek + + PR fortran/34020 + * testsuite/libgomp.fortran/pr34020.f90: New test. + +2007-11-06 Jakub Jelinek + + PR c++/33894 + * testsuite/libgomp.c++/atomic-1.C: New test. + +2007-10-25 Jakub Jelinek + + PR libgomp/33275 + * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate): + Make x and y integers rather than (implicit) reals. Add private (j) + clause to the last omp parallel. + +2007-10-15 Maciej W. Rozycki + + * configure: Regenerate following changes to ../config/tls.m4. + +2007-09-28 Jakub Jelinek + + * testsuite/libgomp.fortran/stack.f90: New test. + +2007-09-10 Danny Smith + + * config/mingw32/proc.c: New file. + +2007-09-05 Uros Bizjak + + * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets. + (main): Use __get_cpuid to get i386 target fetaures. + * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets. + (main): Use __get_cpuid to get x86_64 target fetaures. + +2007-08-15 Jack Howarth + + PR target/32765 + * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin. + * testsuite/libgomp.fortran/crayptr2.f90: Likwise. + +2007-07-12 Jakub Jelinek + + PR fortran/32550 + * testsuite/libgomp.fortran/pr32550.f90: New test. + * testsuite/libgomp.fortran/crayptr2.f90: New test. + +2007-07-05 H.J. Lu + + * aclocal.m4: Regenerated. + +2007-07-05 Tobias Burnus + + PR fortran/32359 + * testsuite/libgomp.fortran/pr32359.f90: New. 2007-07-02 Jakub Jelinek @@ -21,9 +238,117 @@ * testsuite/libgomp.c/pr32362-2.c: New test. * testsuite/libgomp.c/pr32362-3.c: New test. -2007-05-13 Release Manager +2007-06-07 Jakub Jelinek + + * team.c (gomp_team_start): Fix setting up thread_attr + stack size. + +2007-06-02 Paolo Bonzini + + * configure: Regenerate. + +2007-05-23 Steve Ellcey + + * Makefile.in: Regenerate. + * configure: Regenerate. + * aclocal.m4: Regenerate. + * testsuite/Makefile.in: Regenerate. + +2007-05-04 Jakub Jelinek + + * config/linux/proc.c: New file. + + PR libgomp/28482 + * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux. + +2007-04-19 Daniel Franke + + * libgomp.texi (GOMP_CPU_AFFINITY): Updated. - * GCC 4.2.0 released. +2007-04-16 Matthias Klose + + * configure.tgt (i[456]86-*-linux*): Only add ia32 specific + flags if not building with -m64. + * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march + flag for i?86-*-* targets, if current target matches -m64. + +2007-04-14 Steve Ellcey + + * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS. + * Makefile.in: Regenerate. + +2007-04-07 John David Anglin + + PR testsuite/31369 + * testsuite/libgomp.c++/c++.exp: Don't use concat when setting + ld_library_path. + * testsuite/libgomp.fortran/fortran.exp: Likewise. + +2007-04-04 Jakub Jelinek + + * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern + decls. + (gomp_init_affinity, gomp_init_thread_affinity): New prototypes. + * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables. + (parse_affinity): New function. + (initialize_env): Call it and gomp_init_affinity. + * team.c (gomp_team_start): If gomp_cpu_affinity != NULL, + create new pthread_attr_t and call gomp_init_thread_affinity + on it for each thread before passing the attribute to pthread_create. + * config/linux/affinity.c: New file. + * config/posix/affinity.c: New file. + * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test. + * configure: Rebuilt. + * config.h.in: Rebuilt. + * Makefile.am (libgomp_la_SOURCES): Add affinity.c. + * Makefile.in: Rebuilt. + +2007-03-23 Andreas Tobler + + * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for + *-*-darwin*. + * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library + and use it if found. + +2007-03-18 Uros Bizjak + + * testsuite/config/default.exp: New file. + * testsuite/lib/libgomp.exp: New file. + * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init, + libgomp_target_compile, libgomp_option_help, libgomp_option_proc, + load_lib *, load_gcc_lib *): Move to libgomp.exp. + (libgomp_load): Remove. + * testsuite/lib/libgomp.exp (libgomp_init): Compute + always_ld_library_path, not ld_library_path. Set additional_flags + to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets. + (target_compile): Do not call libgomp_init. Append lang_library_path + and lang_link_flags to options. + * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2. Set + ld_library_path from always_ld_library_path. Set LD_LIBRARY_PATH + here. + * testsuite/libgomp.c++/c++.exp: Set ld_library_path from + always_ld_library_path. Set LD_LIBRARY_PATH here. + * testsuite/libgomp.fortran/fortran.exp: Ditto. + * testsuite/libgomp.c/atomic-1.c: Set dg-options to + "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for + CX8 flag. + * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for + lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3. + * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options. + * testsuite/libgomp.c/pr29947-1.c: Ditto. + * testsuite/libgomp.c/atomic-10.c: Ditto. + +2007-03-21 Jakub Jelinek + + * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add + dg-final cleanup-modules line. + * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise. + * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise. + * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise. + * testsuite/libgomp.fortran/threadprivate2.f90: Likewise. + * testsuite/libgomp.fortran/reduction5.f90: Likewise. + * testsuite/libgomp.fortran/threadprivate3.f90: Likewise. + * testsuite/libgomp.fortran/threadprivate1.f90: Likewise. 2007-03-18 Andreas Schwab @@ -31,15 +356,32 @@ extraction. * configure: Regenerate. +2007-03-01 Brooks Moses + + * Makefile.am: Add install-pdf target as copied from + automake v1.10 rules. + * Makefile.in: Regenerate + 2007-02-07 Jakub Jelinek + PR libgomp/28486 + * configure: Regenerate. + PR c++/30703 * testsuite/libgomp.c++/pr30703.C: New test. -2007-02-07 Daniel Franke +2007-02-02 Jakub Jelinek - Backport from mainline: - 2007-01-31 Daniel Franke + Revert: + 2006-07-05 Eric Christopher + * configure.ac: Depend addition of -pthread on host OS. + * configure: Regenerate. + +2007-01-31 Ralf Wildenhues + + * libgomp.texi: Fix spacing after abbreviations. + +2007-01-31 Daniel Franke PR libgomp/30546 * configure.ac: Add check for makeinfo @@ -50,74 +392,47 @@ * Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***